gpt4 book ai didi

internationalization - 通过小部件外部的标记实现 Dojo 国际化

转载 作者:行者123 更新时间:2023-12-04 08:19:47 24 4
gpt4 key购买 nike

Dojo 自定义小部件可以按照概述的步骤通过 _templated mixin 进行国际化 herehere .然后小部件模板中的占位符如下所示:${i18n.username} 会自动替换为适当的语言翻译。

在小部件之外执行类似的 nls 语言替换的最简单方法是什么?理想情况下,我想向标签添加一个属性以替换其中的所有占位符,包括嵌套标签。是否有某种类型的容器小部件已经做到了这一点?

或者 Dojo 开发是否假设一切都在(自定义)小部件中?我需要本地化不使用小部件的现有代码。

到目前为止我找到的最佳解决方案是:

最佳答案

我假设外部 html 中的符号是 ${i18n.username}。这将找到任何具有 class="i18nReplace" 的节点并替换 innerHTML的节点。我没有对此进行任何测试,但我希望您可以将其用作起点。

dojo.require("dojo.i18n");
dojo.require("dojo.query");
dojo.requireLocalization("myI18n", "myI18N"); // This will need to be modified to get your i18n files

dojo.addOnLoad(function() {
var i18n = dojo.i18n.getLocalization("myI18n", "myI18N");
dojo.query(".i18nReplace").forEach(function(node, index, arr){

node.innerHTML = dojo.replace(node.innerHTML, { i18n: i18n } );

// blindly doing this, does not support nested tags.
// you could add conditional logic to check for children
// and if they exist separately process them, otherwise
// replace the html.
});
});

关于internationalization - 通过小部件外部的标记实现 Dojo 国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10082536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com