Chrome插件i18n多语言实现

i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。Chrome插件框架中i18n的封装API:

chrome.i18n.getMessage(name)

用到的字符都可以定义成__MSG_extName__类似这样的格式,然后通过这个API来调用,例如:

chrome.i18n.getMessage(‘extName‘)

在调用这个接口前还需要做一些准备工作:

1. 插件的目录结构定义, 蓝色高亮部分为多语言文件夹:

myextension

|

|---_locales

|       |------ en --------- messages.json

|       |------ zh_CN ---- messages.json

|       |------ ...

|--- *.js

|--- *.html

|--- *.*

2. manifest.json 定义, 如果创建了_locales, default_locale字段必须要定义:

{
   "name": "name",
   "version": "1.6",
   "default_locale" : "zh_CN",
   "manifest_version": 2,
   ...
}

3.messages.json 文件定义多语言符号,格式如下:

{
  "extName": {
    "message": "插件名称",
    "description": "描述"
  },
  "extDescription": {
    "message": "插件描述",
    "description": "描述2"
  },

  "width": {    "message": "200px",    "description": "css width"  }
}

在messages.json定义的符号可以在manifest.json和*.css文件中直接使用, 例如:

manifest.json:

{
   "name": "__MSG_extName__",
   "version": "1.6",
   "default_locale" : "zh_CN",
   "manifest_version": 2,
   "description": "__MSG_extDescription__",
   ...
}

css文件

#div-test {

  width: __MSG_width__;

}

javascript文件:

var title = chrome.i18n.getMessage("extName");
document.getElementById(‘div-test‘).innerHTML = title;

*.html文件

暂时还没找到对应的接口,按照帮助文档的说法,HTML界面的多语言初始化放在js文件中, 这样就工作OK了。但是这种方式不推荐,另外一种方案: 正则。

在标签里面使用__MSG_XXX__, 遍历所有TextNode节点,替换节点内容。

点此下载

时间: 2024-10-15 14:01:18

Chrome插件i18n多语言实现的相关文章

17. Vue 使用Element-ui的国际语言插件i18n导致DatePicker日期控件英文错乱

先附上链接,详细请参考:https://blog.csdn.net/github_39532240/article/details/79192780 再来说说我的情况吧,因为项目需要语言的国际化所以就采用了Vue支持的i18n语言国际化,但是当使用了之后发现Element-ui组件的DatePicker日期控件发生英文错乱,如下图所示: 具体原因呢,是出在实现element插件的多语言切换的方法的使用上,如图所示: 之前的写法是上面注释掉的,解决方法呢就是下面那个了.改了之后,抱着忐忑的心情试了

实用chrome插件

2015年最实用的9款chrome插件 随着14年chrome浏览器的市场超过IE浏览器,chrome凭借它强劲性能和出色的使用体验真正的登上了平民级的殿堂.今天小编就为大家推荐9款自己常用的chrome插件神器. 1.非常实用的chrome新标签页---Infinity新标签页 Infinity新标签页插件是一款可以把chrome默认新标签页换成一个美观实用的infinity新标签页,不仅有简洁美观的页面,还有快速拨号,邮件提醒,天气预报,笔记功能,待办事项,壁纸,历史记录管理等. 2.Chr

Chrome插件(Extensions)开发攻略

目录 为什么需要 为什么是Chrome 需要准备什么 如何开始 Page Action Chrome插件结构 学习资料 我的例子 调试 调试Content Scripts 调试Background 调试Popup 一些问题 总结 为什么需要 简单地说,浏览器插件,可以大大的扩展你的浏览器的功能.包括但不仅限于这些功能:捕捉特定网页的内容,捕捉HTTP报文,捕捉用户浏览动作,改变浏览器地址栏/起始页/书签/Tab等界面元素的行为,与别的站点通信,修改网页内容--给你增加许多想象空间,试想想看,你可

来说一说chrome扩展和chrome插件到底有什么区别?

想讨论chrome扩展和chrome插件区别这个话题很久了!但是迟迟没有写.因为我自己也没有搞清楚这两者之间的区别!回想当初是因为需要寻找番羽墙插件才想到去搜索到chrome插件. 想讨论chrome扩展和chrome插件区别这个话题很久了!但是迟迟没有写.因为我自己也没有搞清楚这两者之间的区别!回想当初是因为需要寻找番羽墙插件才想到去维护一个类似的插件网.我甚至问过身边很多程序员这两者之间的区别,说实话能说清楚的也没有几个.今日在论坛里看到有热心的网友推荐这个chrome网,甚是欣慰.但是看到

推荐几款专门为Github党量身定做的Chrome插件

GitHub是世界知名的代码托管网站,在中国也有相当多的项目托管在GitHub,给广大程序员和编程爱好者带来了方便,GitHub是很多开发者远程协作的重要工具,其社交化编码的理念伴随着开源运动改变着整个开发社区的生态,无数优质项目依托GitHub在全球开源开发者的参与下蓬勃发展.GitHub作为一款基于Git的代码管理工具和协同工具是很优秀的,然而作为代码浏览和搜索工具,就和IDE差的很远了.不然为什么到今天GitHub连个侧栏的文件树没有,很多开发者要专门去下载浏览器插件才能有文件树.当然,今

2018-10-19 Chrome插件实现GitHub代码离线翻译v0.0.4

续前文Chrome插件实现GitHub代码翻译v0.0.3. 添加了对驼峰命名的支持. 由于调用浏览器插件-离线英汉词典进行词汇翻译, 因此也不依赖于任何在线翻译服务. Chrome插件: 官网链接 支持所有编程语言 因为并不需要对源代码进行语法分析(之前Java源码英翻中进展-内测上线中使用了语法分析, 工作量大很多), 因此原则上已经支持所有编程语言的源代码. 但对一些编程语言效果更好, 见下面效果. Java: 源码来源 Python: 源码来源 C: 源码来源 接下去添加C的关键词翻译后

chrome插件,让你事半功倍

平时chrome插件用多了,发现在工作中有很多插件特别好用,让你事半功倍.于是我抽时间整理了一些非常好用的chrome插件分享给大家,其中有些插件是我已经离不开,每天都在用的.希望这篇文章能帮助你找到适合你的插件,提升工作效率. 工作类# FeHelper[强烈推荐]# FeHelper是一个Web前端助手,由中国人开发,集成了非常多很实用的前端工具,比如:字符串编解码.代码美化.JSON格式化查看.二维码生成器.编码规范检测.JS正则表达式等.虽然是前端工具大合集,但是在我们做软件测试或者其他

这是一款借助chrome 插件的微信机器人

1.chrome kit微信机器人简介(github:https://github.com/LinuxForYQH/chrome_kit) 借助chrome 插件 js注入来实现消息的发送 chrome devtool api的调用来监听https请求 打开微信登录界面,在扫码登录前必须先打开toolbar(F12 或者 鼠标右键检查),如上所说因为借助了chrome devtool api所以需要打开toolbar才能执行相关dev域的js. 2.相关开发原理介绍 https://develo

试着开发chrome插件

我的第一个chrome插件,是app形式的 代码如下 创建一个文件: 1.manifest.json 1 { 2 "version": "1.0", 3 "manifest_version": 2, 4 "app":{ 5 "launch":{ 6 "web_url":"http://www.cnblogs.com/zzzzw" 7 }, 8 "urls&q