【问题标题】:i18next with multiple HTML pages带有多个 HTML 页面的 i18next
【发布时间】:2020-06-13 22:44:21
【问题描述】:

我有一个网页,它由许多与锚标签链接的 HTML 页面组成。对于此页面的翻译,我使用 i18next。在每个页面中,翻译似乎都有效,但问题是,在我更改语言并移至不同页面后,所选语言未应用,并再次设置为默认语言。我已阅读有关 sessionStorage 的信息,因为它可能会解决这个问题,但似乎无法实现它。 js切换语言:

function changeLanguageManual (lang) {
if (lang) {
    i18next.changeLanguage(lang);

}
jqueryI18next.init(i18next, $);
$('body').localize();

}

基本上我想实现的是,当我导航到不同的内部 HTML 页面时,所选语言保持不变,并且未设置为默认语言。

【问题讨论】:

    标签: javascript jquery html locale i18next


    【解决方案1】:

    i18next 的 API 文档指出 changeLanguage 是一个异步方法(返回一个 Promise)。尝试在回调中调用jQueryi18init

    i18next.changeLanguage('en', (err, t) => {
        if (err) return console.log('something went wrong loading', err);
        jqueryI18next.init(i18next, $);
        $('body').localize();
    });
    

    【讨论】:

    • 我将此脚本复制到我的 i18next.js 文件中,它似乎工作正常,直到我再次尝试更改语言。由于在所有 HTML 页面中都导入了相同的 js 文件,因此它总是初始化提供的第一种语言。有没有什么方法可以使一页中选择的语言对其他人保持不变?
    • 是的,你可以google一下SessionStorage和LocalStorage。同一个域的所有页面都可以存储和读取同一个会话或本地存储实例
    猜你喜欢
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    相关资源
    最近更新 更多