javascript - 根据语言偏好更改网站版本

标签 javascript

我的网站有法语版和英语版:
*example.com/是我的英文版本。
*example.com/fr/是我的法语版本。

因此,他们可以通过单击标志来更改网站版本,但默认情况下,如果他们到达 example.com,它将是英文的。

我想为他们提供与他们的语言偏好相对应的版本,我通过以下方式检测语言偏好:

var language = window.navigator.userLanguage || window.navigator.language;

但是我应该使用什么代码,以便当他们到达网页时,它会根据用户语言偏好提供版本?

如果网站提供法语版本,但用户想要英语版本,仍然可以手动更改。

最佳答案

您必须重定向它们:

if (window.navigator.language === 'fr') {
    window.location.href = "http://example.com/fr/";
}

请记住,window.navigator.language 属性是 implemented differently across browsers您可能必须在数组中找到您的首选语言(例如 window.navigator.languages)。

更好的选择是在服务器端检查 HTTP 请求的 Accept-Language header ,并在服务器端进行相应的重定向。

还有JavaScript-based国际化方法,但它们通常不涉及重定向网站。

关于javascript - 根据语言偏好更改网站版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36857865/

相关文章:

javascript - 在html中连接Js

javascript - 如果我在本地声明我的变量,为什么我的动画不工作?

javascript - 如果 src 为空则隐藏图像

javascript - 单击 shift + mouse-left-click 时 Internet Explorer 浏览器问题,文本自动突出显示

javascript - 当我尝试保存提交表单中的值时,本地存储给出未定义的结果

javascript - 谁能解释一下 Reacts 的单向数据绑定(bind)和 Angular 的双向数据绑定(bind)之间的区别

javascript - 正确地将 JavaScript 添加到 Razor 页面

javascript - 使用 Redux 存储作为 Post API 调用的输入

javascript - 无法在输入框中输入密码

javascript - 想要使用 javascript 在 firefox 的允许弹出选项中添加弹出条目