浏览器中何时触发 html languagechange 事件?

问题描述 投票:0回答:2

我正在尝试在一个简单的网络应用程序中添加本地化。 根据

Mozilla 文档
,有一个 languagechange 事件。

我的问题是:

  • 此事件何时实际触发?

这是我尝试过的。

  • 页面 html 标签具有 lang 属性
    <html lang='ar-SA'>
  • 用户可以使用一些下拉菜单切换到另一种语言。
  • 下拉菜单,将 html 标签上的 lang 属性更改为所需的 lang

我希望更改根 html 标签上的 lang 属性会触发

languagechange
事件,进而我可以使用该事件来加载新语言中的内容,但事实并非如此。

我在这里错过了一些明显的东西吗?

javascript html localization dom-events
2个回答
0
投票

当用户的首选语言更改时,将在全局范围对象上触发 languagechange 事件。

window.onlanguagechange = function(event) {
  console.log('languagechange event detected!');
};

检查您的浏览器兼容性


-1
投票

这会对您有所帮助,在这段代码中,我连续访问浏览器 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();
},);

© www.soinside.com 2019 - 2024. All rights reserved.