1

我遇到了一个奇怪的兼容性问题,我不能使用字符串作为我的 JSON 的键。例如,如果下面的 JSON 是我的翻译文件,

{
    "modules" : {
        "localization": {
          "modal" : "Modal localized (en-US)"
          }
    }
}

系统只能在没有键为字符串的情况下接受它,即:

{
    modules : {
        localization: {
          modal : "Modal localized (en-US)"
          }
    }
}

是否可以配置 i18next 来实现这一目标?

4

1 回答 1

0

来自http://i18next.com/pages/doc_init.html

<html>
    <head>
        <script type="text/javascript" src="jquery-1.11.1.js"></script>
        <script type="text/javascript" src="i18next-1.7.4.js"></script>
    </head>
    <body>
        <h1 data-i18n='key'>My First Heading</h1>
    </body>
    <script type="text/javascript">
        var resources = {
            dev: { translation: { key: 'value' } },
            en: { translation: { key: 'value' } },            
            'en-US': { translation: { key: 'value' } }
        };

        i18n.init({ 
            resStore: resources,
            lng: 'en-US'
        }, function(t) {
            $("h1").i18n();
        });
    </script>
</html>

如果这对您更有效,您可以通过其他方式将对象加载到资源中,这只是一个简单的演示。我找不到任何方法可以将 'en-US' 作为字符串 - 如果它周围没有引号,它会抱怨 '-'。这可以防止它加载外部资源,所以我认为你必须自己处理从某个地方加载资源。

于 2014-11-02T11:12:07.630 回答