javascript - L20n.js : localize dynamically created strings

标签 javascript localization internationalization l20n

在我的应用程序中,我可以通过标签本地化大部分字符串,如 l20n.js 文档中所述。但有时我必须本地化动态创建的字符串。喜欢:document.getElementById(id).innerHTML = "some text";

我使用 Polymer 和自定义网络组件,因此主要目标是为任何本地化案例创建一个函数。 如果我尝试 document.l10n.get(string);,我会得到 TypeError: document.l10n.get is not a function

最好的方法是什么?在官方文档中找不到解决方案。

最佳答案

由于 document.l10n 是 L20n 的 View 类的一个实例,您可以使用 formatValueformatValues 适用于您的用例的方法。请参阅documentation了解详情。

这两种方法都返回 promise ,因此您需要执行如下操作:

document.l10n.formatValue('hello', { who: 'world' }).then(
  hello => document.getElementById(id).textContent = hello
);

您可以分配给 textContentinnerHTML。请记住,L20n 允许在翻译中使用 HTML,并且它只会在使用声明性 data-l10n-id 方法时清理它们。因此,如果您想手动分配给 innerHTML,您可能需要确保您信任翻译的内容。将来我想添加一个特殊的 API,使用与声明性方法相同的清理方法将翻译应用到 DOM 元素(bug 1228021)。

关于javascript - L20n.js : localize dynamically created strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35068334/

相关文章:

javascript - Dispatch 不将操作发送到 reducer

xcode - 导出应用程序进行本地化,不包括在 Xcode 6 Xliff 中使用 NSLocalizedString 创建的字符串

java - 下拉菜单中的 i18n 使用 s :select tag

java - 如何在 Wicket 6.0 中的区域设置更改后刷新有状态页面?

Angular 2 i18n-国际化 : message. xlf 为空

javascript - 异步系统中的不可变数据

javascript - 如何使用 JavaScript 伪造占位符文本?

javascript - 根据不同的停放域更改 HTML 链接

iphone - 是否可以强制本地化为另一种语言?

c# - 为枚举提供本地化的最佳方式是什么?