我正在尝试在一个简单的网络应用程序中添加本地化。 根据
Mozilla 文档,有一个
languagechange
事件。
我的问题是:
这是我尝试过的。
<html lang='ar-SA'>
我希望更改根 html 标签上的 lang 属性会触发
languagechange
事件,进而我可以使用该事件来加载新语言中的内容,但事实并非如此。
我在这里错过了一些明显的东西吗?
当用户的首选语言更改时,将在全局范围对象上触发 languagechange 事件。
window.onlanguagechange = function(event) {
console.log('languagechange event detected!');
};
检查您的浏览器兼容性
这会对您有所帮助,在这段代码中,我连续访问浏览器 HTML lang 属性并进行 lang 属性值更改。
let currentLanguage = document.querySelector('[lang]').attributes.lang.value.toString();
setInterval(function () {
let Language = document.querySelector('[lang]').attributes.lang.value.toString();
if (currentLanguage != Language) {
let LanguageName = new Intl.DisplayNames(["en"], { type: 'language' });
console.log('Translated Language :', LanguageName.of(Language));
currentLanguage = Language;
} clearInterval();
},);