如何在Web应用程序chrome.18n中设计语言切换器

时间:2018-07-13 16:37:03

标签: jquery localization internationalization google-chrome-app

我们的软件是使用Chrome.i18n由html,css和Javascript编写的。 我们的语言位于_locales / en / messages.json文件夹中。现在,我需要将我们的产品(例如中文版)国际化。因此,它将是_locales / zh / messages.json ..现在问题来了,无论如何我都找不到切换语言环境的功能。它总是打开en / messages.json。

console.log(chrome.i18n.getUILanguage());始终打印出

SO是否有chrome.i18n.setUILanguage(zh)之类的功能?

Chrome应用似乎通过您的计算机Ui语言找到了语言路径。

所以,我只想设计一个下拉列表供用户切换语言

这是我的html代码

<select class="dropdown" id="selectlanguage">
  <option id="enBtn" value="en">English</option>
  <option id="zhBtn" value="zh">简体中文</option>
</select>

javascript代码

    'use strict';

function localize() {
    var localized = 0;

    var translate = function(messageID) {
        localized++;

        return chrome.i18n.getMessage(messageID);
    };

    $('[i18n]:not(.i18n-replaced').each(function() {
        var element = $(this);

        element.html(translate(element.attr('i18n')));
        element.addClass('i18n-replaced');

    });

    $('[i18n_title]:not(.i18n_title-replaced').each(function() {
        var element = $(this);

        element.attr('title', translate(element.attr('i18n_title')));
        element.addClass('i18n_title-replaced');
    });

    $('[i18n_value]:not(.i18n_value-replaced').each(function() {
        var element = $(this);

        element.val(translate(element.attr('i18n_value')));
        element.addClass('i18n_value-replaced');
    });

    $('[i18n_placeholder]:not(.i18n_placeholder-replaced').each(function() {
        var element = $(this);

        element.attr('placeholder', translate(element.attr('i18n_placeholder')));
        element.addClass('i18n_placeholder-replaced');
    });

    return localized;
}

需要一个JavaScript代码来更改语言环境...................

1 个答案:

答案 0 :(得分:0)

在wOxxOm上Pi带,看起来它使用的是chrome:// chrome / settings / languages中的设置,因此,不仅您不能以编程方式切换语言,而且您不想这样做并且不应该这样做至。尝试查询该设置,并根据返回的内容设置本地化文件。