【问题标题】:i18n text through attr data-binding not showing up通过 attr 数据绑定的 i18n 文本未显示
【发布时间】:2016-04-24 18:56:19
【问题描述】:

我的主页(根)包含名为 levelvalue 的 observable,并且正在为其保存一些价值。

子页面中的html如下:

<ol>
    <li><span data-bind="attr:{id:$root.levelvalue,'data-i18n':$root.levelvalue}"></span>
    </li>
</ol>

问题在于 &lt;li&gt; 中的值没有显示在浏览器中,即使该值在浏览器开发人员工具 (F12) 中正确显示如下:

<span data-bind="attr:{'data-i18n':$root.levelvalue}" data-i18n="applications"/>

这是 i18n 翻译的问题吗?

注意:页面上的所有其他值即使使用 i18n 也能正常显示。

【问题讨论】:

  • i18next 在什么时候翻译页面(不是我用过的东西)?例如,如果它是在页面加载时完成的,knout 将在它发生后设置属性。您需要一些方法来重新触发 i18next 以运行 - 理想的路线可能是自定义绑定处理程序将两者链接在一起。
  • 你在 i18n 使用什么库?
  • @JotaBe 问题被标记为 i18next,所以我假设它是 this one,尽管问题本身没有特别提及。
  • 快速谷歌似乎表明已经有 at least one 绑定处理程序,也可能是 duplicate question
  • i18next-1.6.3.............这个问题非常令人困惑,因为浏览器工具显示正确的值正在加载到“data-i18n”属性。但 i18n 没有加载 Text 属性。

标签: javascript html knockout.js i18next


【解决方案1】:

在其视图模型中加载带有以下代码的空白弹出窗口(模板)可以解决问题:

i18n.init({
            "lng": 'en',
            "debug": true,
            "fallbackLng": 'en',
            "resGetPath": AppConstants.get('LOCALIZEDPATH') + '/__ns__-__lng__.json',
            ns: {
                namespaces: ['resource'],
                defaultNs: 'resource'
            }
        }, function (call) {
            $(document).i18n();
        });

正在寻找更好的解决方案...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多