我找到了一个非常简单的方法来 implement translation (或本地化)我的 Google Chrome 扩展程序,但这似乎仅适用于 .json
、css
和 js
文件。
但是如何本地化我的 html
内容,比如在弹出窗口或选项窗口中?
最佳答案
你会做的是这个。
首先,在您的 HTML 中使用与 Chrome 在其他任何地方所需的语法相同的语法。所以你的基本 popup.html
将是:
<!DOCTYPE html>
<html>
<head>
<title>__MSG_app_title__</title>
</head>
<body>
<a href="http://example.com/" title="__MSG_prompt001__">__MSG_link001__</a>
<!-- Need to call our JS to do the localization -->
<script src="popup.js"></script>
</body>
</html>
然后在 _locales\en\messages.json
中提供通常的翻译:
{
"app_title": {
"message": "MyApp",
"description": "Name of the extension"
},
"link001": {
"message": "My link",
"description": "Link name for the page"
},
"prompt001": {
"message": "Click this link",
"description": "User prompt for the link"
}
}
最后,您的 popup.js
将执行实际的本地化:
function localizeHtmlPage()
{
//Localize by replacing __MSG_***__ meta tags
var objects = document.getElementsByTagName('html');
for (var j = 0; j < objects.length; j++)
{
var obj = objects[j];
var valStrH = obj.innerHTML.toString();
var valNewH = valStrH.replace(/__MSG_(\w+)__/g, function(match, v1)
{
return v1 ? chrome.i18n.getMessage(v1) : "";
});
if(valNewH != valStrH)
{
obj.innerHTML = valNewH;
}
}
}
localizeHtmlPage();
关于javascript - 我的 Google Chrome 扩展程序的 HTML 页面国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25467009/