📅  最后修改于: 2023-12-03 15:38:02.800000             🧑  作者: Mango
在开发多语言网站时,了解用户的语言偏好是非常重要的。在 JavaScript 中,可以通过以下两种方法来检测浏览器的语言偏好:
navigator
对象提供了一种获取用户浏览器信息的方法。其中,navigator.language
属性返回用户首选语言的 ISO 639-1 代码。例如,如果用户的偏好语言为英语,那么 navigator.language
的值将是 'en'
。下面是一个简单的示例:
if (navigator.language === 'en') {
console.log('User prefers English.');
} else if (navigator.language === 'ja') {
console.log('User prefers Japanese.');
} else {
console.log('User prefers some other language.');
}
Intl
对象是 ECMAScript 国际化 API 的一部分,它提供了一些用于操作字符串、数字、日期等的国际化功能。其中,Intl
对象的 DateTimeFormat
、NumberFormat
和 Collator
三个子对象都提供了 resolvedOptions()
方法来获取当前浏览器环境的语言偏好。下面是一个示例:
const language = Intl.DateTimeFormat().resolvedOptions().locale;
if (language === 'en') {
console.log('User prefers English.');
} else if (language === 'ja') {
console.log('User prefers Japanese.');
} else {
console.log(`User prefers ${language}.`);
}
注意,在使用 Intl
对象之前需要先检测浏览器是否支持该对象,例如:
if (typeof Intl === 'undefined') {
console.log('Intl object not supported in this browser.');
} else {
// use Intl object
}
以上两种方法都可以用来检测浏览器的语言偏好,由于区域设置等其他因素的影响,得到的语言代码可能并不是精确的 ISO 639-1 代码,但通常也足够使用。