📜  如何使用 JavaScript 检测浏览器语言偏好?(1)

📅  最后修改于: 2023-12-03 15:38:02.800000             🧑  作者: Mango

如何使用 JavaScript 检测浏览器语言偏好?

在开发多语言网站时,了解用户的语言偏好是非常重要的。在 JavaScript 中,可以通过以下两种方法来检测浏览器的语言偏好:

方法一:使用 navigator.language 属性

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 对象

Intl 对象是 ECMAScript 国际化 API 的一部分,它提供了一些用于操作字符串、数字、日期等的国际化功能。其中,Intl 对象的 DateTimeFormatNumberFormatCollator 三个子对象都提供了 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 代码,但通常也足够使用。