原文地址:https://waynegong.cn/posts/954.html

Chrome 浏览器扩展进行 i18n 国际化多语言适配需要进行三处修改:

  1. 在特定目录按照特定格式编写多语言配置的 messages.json 文件;
  2. manifest.json 中设置默认语言;
  3. 修改项目代码,通过 __MSG_messagename__getMessage 方法获取本地化内容;

编写多语言配置

多语言文件位于扩展根目录的 _locales/{_localeCode_}/messages.json 路径下

支持的 _localeCode_ 可参考 languages.cc

以英语 en 为例,_localCode_/en/messages.json 如下:

{"title": {"message": "hello world", // title 字段的英语表示,必填"description": "Title string"  // 当前字段的描述信息(注释),可选},...
}

配置默认语言

多语言配置编写完成后,还必须在 manifest.json 中设置默认语言 default_locale 才能生效。

使用本地化内容

在 Javascript 中,可通过调用 getMessage 方法获取本地化之后的内容,具体参数参考 getMessage API

在不支持 getMessage 方法的环境下(例如 json、css、html),可使用 __MSG_messagename__ 占位符获取本地化内容。

多语言降级

当扩展程序在特定 _localeCode_ 目录下没有找到本地化内容时,会按照一定规则进行搜索:

  • 未找到当前地区的语言时,降级到当前大的语言环境,例如未找到 en_US 时,会尝试搜索 en 目录;
  • 未满足上述条件时,则会使用 default_locale 配置的语言;
  • 否则返回 "" 空字符;

多语言调试

调试多语言配置时,需要修改到特定的语言环境,具体方法参考:

  • Windows
  • MacOS
  • Linux

其他方法

API 文档

浏览器扩展开发 - i18n 国际化多语言配置相关推荐

  1. # 前后端国际化多语言配置

    前后端国际化多语言配置 前端(Vue ElementUI) 项目前端使用Vue+Elementui 编写 i18n.js 在这个js 中引入ElementUI的多语言资源,引入本地的多语言资源 // ...

  2. SpringBoot系列之i18n国际化多语言支持教程

    SpringBoot系列之i18n国际化多语言支持教程 文章目录 1.环境搭建 2.resource bundle资源配置 3.LocaleResolver类 4.I18n配置类 5.Thymelea ...

  3. 常见浏览器扩展开发笔记(chrome firefox 360 baidu qq sougou liebao uc opera)

    浏览器扩展开发貌似时下很冷门啊,但是不少企业还是有类似的应用,360的抢票插件啊,笔者最近在做的网页翻译扩展之类的.笔者在开发的过程中,遇到了不少坑,说是坑,说白了就是各个厂商支持的API不统一导致的 ...

  4. 【vue-element-admin】4.x 添加 i18n 国际化多语言切换

    花裤衩前辈的vue-element-admin模块在4.x的大版本中去除了对i18n国际化的支持,本次因项目需要,在一个基于 vue-element-admin V4.2.1 版本模板开发的项目中,需 ...

  5. ☘gMIS吉密斯i18n国际化多语言更新

    gMIS吉密斯部署和使用范围日益扩大,跨国多语言版本成为迫切需要的功能,早在2018年年中就考虑要增加这一功能--在gMIS吉密斯中实现多语言版本的支持.以期实现gMIS吉密斯的跨行业.跨地区和国际化 ...

  6. Firefox(火狐)浏览器扩展开发初探

    最近开发一个FF的扩展,自动完成公司的订餐操作,主要完成的功能很简单:登陆网站,执行一个特定操作,并在ff的状态栏内显示执行的成功或者失败的状态.以前没有写过FF扩展,需要从头学习,在完成这个扩展过程 ...

  7. qt linux 国际化,多语言,配置CLion管理Qt项目国际化支持

    随着Qt 6的发布,cmake也正式宣告接管qmake的工作了. 在之前的一篇博客里我介绍了如何使用cmake管理你的qt项目,不过有一点我没有讲,那就是对国际化(i18n)的处理. 今天我们就来介绍 ...

  8. Chrome浏览器扩展开发之自动化操作页面

    Chrome浏览器支持扩展(Extension)开发,来定制扩展现有的功能,如:自动登录,定时刷新,抢票等功能,本文以一个简单的小例子,简述Google Chrome 扩展开发的基本步骤,仅供学习分享 ...

  9. Chrome浏览器扩展开发系列之一:初识Google Chrome扩展

    1.       Google Chrome扩展简介 Google Chrome扩展是一种软件,以增强Chrome浏览器的功能. Google Chrome扩展使用HTML.JavaScript.CS ...

最新文章

  1. 第1课第4.4节_Android硬件访问服务编写HAL代码
  2. php heahd,heaheader phpder 详解
  3. 文件描述符在内核态下的一些小把戏
  4. select * 映射错误_高性能IO模型分析-浅析Select、Poll、Epoll机制(三)
  5. 基于QEMU的NVRAM仿真
  6. 一组匹配中国大陆手机号的正则表达式
  7. 基于JAVA+Servlet+JSP+MYSQL的失物招领系统
  8. UITableView 协议方法中更好的 switch 使用方案
  9. seajs的模块化开发--实践笔记
  10. 如何卸载zabbix且删除
  11. 图像分割各种评测标准
  12. 计算机组装与维护启发式教学,电工技能与电子工艺技术实训
  13. win10永久禁用驱动数字签名强制的方法
  14. android viewgroup点击变色,Android ViewGroup点击效果(背景色)
  15. HTML实例网页代码 简单的个人博客网站设计与实现 (div+css)
  16. python爬duitang的摄影类图片
  17. Flutter中AspectRatio、Card 卡片组件
  18. python中颜色红色的表示_matplotlib中的绿色到红色的颜色映射,以d的中值为中心...
  19. Centos 图形界面与Dos界面切换
  20. OpenStack挂载ISO,安装原版windows

热门文章

  1. 接入腾讯广告联盟 Android SDK时遇到的坑
  2. Mosaix首席科学家劳逆:弱监督学习是未来发展趋势
  3. 顺丰快递代码表java,SF-CSIM-EXPRESS-SDK-V1.3 顺丰下单java后台demo代码 - 下载 - 搜珍网...
  4. 【俗话编程】什么是对象?
  5. 真兰仪表通过深交所注册:拟募资17.4亿 上半年净利下降27%
  6. LC,SC,FC ,ST,MPO分别代表什么
  7. 群晖 6.1 重置 mysql,重置群晖Synology NAS
  8. 前端追梦人Cytoscape.js教程
  9. 利用OpenCV读图绘制栅格导航
  10. LPC(Low Pin Count) 与SIO(Super IO)