vscode国际化插件-直接显示对应字串为中文

1,611 阅读2分钟

背景:由于经常遇到需要国际化的项目,每次要了解字串是什么意思,都要去搜索对应的字串是什么意思,比较消耗时间

i18n-ally

功能

i18n-ally 支持多种前端框架,包括 Angular、Vue 和 React。默认情况下,它支持使用 translate 管道符的 Angular、Vue 中的 $t 方法和 React 的 react-i18next 库。此外,它还可以通过自定义匹配字段来支持其他框架或自定义用法。以下是 i18n-ally 的主要功能:

  • 扫描项目并提取所有需要翻译的字符串;
  • 将提取的字符串存储在 JSON 或其他资源文件中以便翻译;
  • 与 Google 翻译 API 集成以自动完成翻译;
  • 支持多种语言的翻译,并可视化显示每种语言翻译的状态;
  • 在代码中直接查看和编辑翻译文本;
  • 自定义匹配字段以支持其他框架或自定义用法。

annotation-animated.gif

支持的框架

image.png

默认支持的框架包括 vue、angular、react 等原生的 i18n 工具

配置

在vscode中下载i18n-ally插件后,在settings.json 中配置

{
  // 资源文件路径
  "i18n-ally.localesPaths": ["src/locale", "src/common/lang"],

  // 资源文件的文件种类,默认为json
  "i18n-ally.enabledParsers": ["js", "ts"],

  // 资源文件的文件名作为第一个key
  "i18n-ally.namespace": true,

  // 资源的key
  "i18n-ally.pathMatcher": "{namespaces}/{locale}.js",

  // 默认展示语言
  "i18n-ally.displayLanguage": "zh",

  // flat({"a.b.c": "..."}) or nested({"a": {"b": {"c": "..."}}})
  "i18n-ally.keystyle": "nested"
}

自定义匹配字段

如果不在其中需要自定义

新建.vscode/i18n-ally-custom-framework.yml, 在其中写入

# 在哪些文件中显示翻译
languageIds:
  - html
  - javascript
  - typescript
  - javascriptreact
  - typescriptreact

usageMatchRegex:
  # The following example shows how to detect `t("your.i18n.keys")`
  # the `{key}` will be placed by a proper keypath matching regex,
  # you can ignore it and use your own matching rules as well
  - "\\s?['\"`]({key})['\"`]\\s?\\|\\s?i18n"
  - "[^\\w\\d]t\\(['\"`]({key})['\"`]"
  - "[^\\w\\d]transform\\(['\"`]({key})['\"`]"

monopoly: true

上述自定义主要是针对一下形式的国际化

{{ 'xx.xx.xx' | i18n }}

transfrom('xx.xx.xx')

文档

i18n-ally 文档