我有一个英文的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之外别无选择,如果页面有很多支持的话需要支持
由于
答案 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>
为了更好地理解,我建议您查看代码本身,但是对于更多示例,您应该查看我的选项页面的code和HTML来源。
我希望你觉得它很有用。
答案 1 :(得分:2)
您目前无法直接在HTML文件中使用消息格式:仅在您的清单和CSS文件中。但是,功能请求会打开一个错误:您可以为http://crbug.com/115800加注星标以跟踪进度。
该错误指出了一种解决方法(sorta):您可以为每种语言提供完全独立的HTML文件。我知道,这是一个糟糕的解决方法,但是如果那对你很有意义的话就在那里。 :)