如何更改标签中显示的文本(国际化)

时间:2014-03-06 07:07:46

标签: javascript html

我有一个包含类似

的html文件
> <label id="remem" for"remem"><input type"checkbox"
> name="remem"/>Test</label>

现在我正在处理i18n并正在翻译这些单词。我需要做的是将Test一词翻译成另一种语言。

如何以编程方式更改标签(在我的示例中为“Test”)?我应该处理什么属性?

谢谢!

3 个答案:

答案 0 :(得分:1)

使用<span>

id标记内添加文字
> <label id="remem" for"remem"><input type"checkbox"
> name="remem"/><span id="rememText">Test</span></label>

然后你可以使用javascript来操作文本。

document.getElementById("rememText").innerHTML = "another language";

答案 1 :(得分:1)

@ SajithNair的答案肯定有效,对于小项目来说,这是非常可行的。

但是,对于大型项目,您可能会发现需要更有条理的东西。

选择1

让服务器端代码处理它。

根据您的服务器端框架,这可能是最佳解决方案。

选择2

让客户端框架处理它。

如果您使用Knockout之类的东西,使用正确的绑定装饰标签并让Knockout魔法发生是一件简单的事情。

<label for="myfield">
  <span data-bind="html: resources.myFieldLabelText"></span>
  <input id="myfield" name="myfield">
</label>

选择3

如果您没有使用Knockout,或者您决定使所有资源都可观察到太多,那么使用数据属性然后以这种方式交换文本就可以了。

<label for="myfield">
  <span data-label-resource="myfieldResourceKey"></span>
  <input id="myfield" name="myfield">
</label>

jQuery / sizzle有一个很好的引擎来处理data-*找到的东西,否则你可以回到querySelectorAll。如果失败并且您支持ANCIENT浏览器,您可以使用DOM。

使用像这样的资源键而不是基于每个字段进行临时处理的优点是,如果您重新使用值(例如,条目或显示,或者您在多个页面上使用它) )你只有一个需要翻译的资源,而不是多个实例。

答案 2 :(得分:0)

试试这个

 <span id="rememText">Test</span>

 $("#rememText").innerHtml("string text");

<span id="rememText">Test</span>
$("#rememText").val("string text");