Chrome扩展程序和翻译

时间:2012-03-08 14:20:10

标签: javascript internationalization google-chrome-extension

我有一个英文的Chrome扩展程序,一切正常。

展望国际化,我阅读了以下细节: http://code.google.com/chrome/extensions/i18n.html

我创建了相关的JSON文件并检查了它们的有效性。

现在我正在尝试允许支持我的选项页面以支持多种语言。 它只是静态HTML。

从上面的链接中,它表示您可以使用格式

  __MSG_messagename__

在JSON和css文件中。

我也可以在我的HTML文件中使用它吗?必须做类似的事情似乎有点过分了。

function getMessage() {
  var message = chrome.i18n.getMessage("click_here", ["string1", "string2"]);
  document.getElementById("languageSpan").innerHTML = message;
}

每个需要翻译的字符串!

我的测试表明除了设置innerHTML之外别无选择,如果页面有很多支持的话需要支持

由于

2 个答案:

答案 0 :(得分:3)

不幸的是,没有内置的框架,但不要放弃。我创造了一个可以让你做到你想要的东西;

https://gist.github.com/1977657#file_i18n.coffee

我在Template扩展程序中使用它,因为它简化了页面中的i18n以及源代码。只需调用i18n.init一次,它就会在该页面上查找具有i18n属性的所有元素,并相应地修改它们,它甚至支持字符串替换,只需要额外的工作。

实施例

<a href="https://chrome.google.com/webstore/detail/dcjnfaoifoefmnbhhlbppaebgnccfddf" i18n-content="name" i18n-values=".style.direction:@@bidi_dir;title:description"></a>
<!-- Will be modified to something like this... -->
<a href="https://chrome.google.com/webstore/detail/dcjnfaoifoefmnbhhlbppaebgnccfddf" i18n-content="name" i18n-values=".style.direction:@@bidi_dir;title:description" style="direction: ltr" title="Quickly and easily copies info on the current page using a simple and unique template system">Template</a>

为了更好地理解,我建议您查看代码本身,但是对于更多示例,您应该查看我的选项页面的codeHTML来源。

我希望你觉得它很有用。

答案 1 :(得分:2)

您目前无法直接在HTML文件中使用消息格式:仅在您的清单和CSS文件中。但是,功能请求会打开一个错误:您可以为http://crbug.com/115800加注星标以跟踪进度。

该错误指出了一种解决方法(sorta):您可以为每种语言提供完全独立的HTML文件。我知道,这是一个糟糕的解决方法,但是如果那对你很有意义的话就在那里。 :)