更改 data-l10n-id 属性时,innerhtml 值不会更改
innerhtml value does not change when data-l10n-id attribute is changed
我想将单击按钮的标签从“开始”更改为“重新启动”。我的应用程序将以多种语言提供,为此我正在使用 L10n.js 库。按钮的标签可以有 2 个值(“Start”和“Restart”))定义如下 app.properties:
start = Start
restart = Restart
text = this is some text
another-text = this is another text
按钮定义如下(使用按钮构建块):
<body>
<p id="sometext" data-l10n-id="text"></p>
<section data-type="sidebar" role="region" class="skin-dark">
<section style="margin-bottom: 30px">
<button id="startbutton" class = "recommend" data-l10n-id="start">Start</button>
</section>
</div>
</section>
</body>
加载页面后,将显示正确的按钮(和段落)值。 data-l10n-id 属性和相应的值应在单击时更改:
document.getElementById("startbutton").addEventListener("click", function( event ) {
this.setAttribute("data-l10n-id", "restart");
document.getElementById("sometext").setAttribute("data-l10n-id", "another-text");
});
正在查看 DOM 属性已更改但未更改应显示的值:
<p id="sometext" data-l10n-id="another-text">this is some text</p>
<section data-type="sidebar" role="region" class="skin-dark">
<section style="margin-bottom: 30px">
<button id="startbutton" class="recommend" data-l10n-id="restart">Start</button>
</section>
</section>
我做错了什么吗?欢迎任何评论!谢谢。
这里有一个使用 l10n.js
的演示应用程序:https://github.com/tuxor1337/fxos-l10n-demo
请注意 HTML 文档的 <head>
部分包含有关可用语言环境的信息:
<link rel="localization" href="locales/testing.{locale}.properties" />
<meta name="availableLanguages" content="en-US" />
此外,我们不仅包括 l10n.js
,还包括 JavaScript 的 Promise
的垫片,因为 l10n.js
需要它,但它不是 Firefox 的一部分 OS 1.3:
<script src="es6-promise.js" defer></script>
<script src="l10n.js" defer></script>
<script src="app.js" defer></script>
我使用 Firefox OS 模拟器成功测试了 1.3 和 2.0 版的代码。请注意,l10n.js
的实现略有不同。我使用了 gaia 中使用的 Mozilla 实现:https://github.com/mozilla-b2g/gaia/blob/master/shared/js/l10n.js
我想将单击按钮的标签从“开始”更改为“重新启动”。我的应用程序将以多种语言提供,为此我正在使用 L10n.js 库。按钮的标签可以有 2 个值(“Start”和“Restart”))定义如下 app.properties:
start = Start
restart = Restart
text = this is some text
another-text = this is another text
按钮定义如下(使用按钮构建块):
<body>
<p id="sometext" data-l10n-id="text"></p>
<section data-type="sidebar" role="region" class="skin-dark">
<section style="margin-bottom: 30px">
<button id="startbutton" class = "recommend" data-l10n-id="start">Start</button>
</section>
</div>
</section>
</body>
加载页面后,将显示正确的按钮(和段落)值。 data-l10n-id 属性和相应的值应在单击时更改:
document.getElementById("startbutton").addEventListener("click", function( event ) {
this.setAttribute("data-l10n-id", "restart");
document.getElementById("sometext").setAttribute("data-l10n-id", "another-text");
});
正在查看 DOM 属性已更改但未更改应显示的值:
<p id="sometext" data-l10n-id="another-text">this is some text</p>
<section data-type="sidebar" role="region" class="skin-dark">
<section style="margin-bottom: 30px">
<button id="startbutton" class="recommend" data-l10n-id="restart">Start</button>
</section>
</section>
我做错了什么吗?欢迎任何评论!谢谢。
这里有一个使用 l10n.js
的演示应用程序:https://github.com/tuxor1337/fxos-l10n-demo
请注意 HTML 文档的 <head>
部分包含有关可用语言环境的信息:
<link rel="localization" href="locales/testing.{locale}.properties" />
<meta name="availableLanguages" content="en-US" />
此外,我们不仅包括 l10n.js
,还包括 JavaScript 的 Promise
的垫片,因为 l10n.js
需要它,但它不是 Firefox 的一部分 OS 1.3:
<script src="es6-promise.js" defer></script>
<script src="l10n.js" defer></script>
<script src="app.js" defer></script>
我使用 Firefox OS 模拟器成功测试了 1.3 和 2.0 版的代码。请注意,l10n.js
的实现略有不同。我使用了 gaia 中使用的 Mozilla 实现:https://github.com/mozilla-b2g/gaia/blob/master/shared/js/l10n.js