l20n.js-如何从javascript访问本地化子实体
在这个例子中,我可以看到如何访问LOL资源中的变量l20n.js-如何从javascript访问本地化子实体,javascript,localization,l20n,Javascript,Localization,L20n,在这个例子中,我可以看到如何访问LOL资源中的变量 <brandName { nominative: "Firefox", genitive: "Firefoksa", dative: "Firefoksowi", accusative: "Firefoksa", instrumental: "Firefoksem", locative: "Firefoksie" }> <about "O {{ brandName.locative }}">
<brandName {
nominative: "Firefox",
genitive: "Firefoksa",
dative: "Firefoksowi",
accusative: "Firefoksa",
instrumental: "Firefoksem",
locative: "Firefoksie"
}>
<about "O {{ brandName.locative }}">
但这对我不起作用。我调试了一点,但我觉得我是在浪费时间,可能已经有一个简单的方法可以做到这一点。有吗?这在L20n中是不可能的,因为作为一名开发人员,您无法确定所有语言中都会定义
命名的。请继续阅读,找出原因
在英语中,您的示例很可能如下所示:
<brandName "Firefox">
<about "About {{ brandName }}">
当您现在尝试在JavaScript中检索brandName
的翻译时,您将获得namitive
键的值,“Firefox”:
可以添加到实体以存储元数据,如下所示:
<brandName {
*nominative: "Firefox",
genitive: "Firefoksa",
dative: "Firefoksowi",
accusative: "Firefoksa",
instrumental: "Firefoksem",
locative: "Firefoksie"
}>
<about "O {{ brandName.locative }}">
<brandName "Firefox"
accesskey: "F"
>
Stas,谢谢您的帮助。Re:没有了。这次要提名!这似乎是一个很好的例子,它可以使用默认值,在本例中是唯一的值。也许我应该使用属性?例如:。这看起来我可以通过javascript访问。我不确定这是否是最好的解决方案。我建议不要像你提到的那样硬编码复数。有些语言可能使用两种或三种不同的复数形式(例如,在波兰语中:“2 Firefoksy”、“5 Firefoksów”)。您心目中的用例是什么?也许还有另一种方法可以实现您想要的目标?@Staś,有没有一种方法可以从HTML中访问实体属性,而不是使用JS。e、 g.
公共实体属性映射到HTML属性,因此如果brandName
实体定义了一个新的accesskey
属性,则带有data-l10n-id=“brandName”
的元素将获得一个新的accesskey
属性。您是否考虑了一个特定的用例,而该用例并不满足于这种行为?
document.l10.get('brandName');
// "Firefox"
<brandName "Firefox"
accesskey: "F"
>
document.l10.getEntity('brandName');
// { value: "Firefox", attributes: { accesskey: "F" } }