This package has been deprecated

Author message:

use @umu-team/i18n-extract-loader instead

i18n-extract-loader

0.2.8 • Public • Published

i18n-extract-loader

npm package npm package

Webpack loader to extract i18n text into json.

Install

npm i -D i18n-extract-loader

Usage

webpack.config.js

module.exports = {
  module: {
    rules: [
      {
        test: /\.jsx?$/,
        use: [
          'ts-loader',
          {
            loader: 'i18n-extract-loader',
            options: {
              locale: 'en-us',
            },
          },
        ],
      },
    ];
  }
}

Options

  • locale 执行的语言参数, e.g. zh-cn
    • type: string
    • defaut: en-us
  • pattern 多语定界符
    • type: RegExp
    • defaut: /__\((.+?)\)/g
  • isExtract 是否执行抽取,此操作会清空本地的变更语言文件,生成新的变更语言文件
    • type: bool
    • defaut: false
  • isTranslate 是否执行替换操作,将变更语言文件中的翻译同步到组件的语言文件中
    • type: bool
    • defaut: false
  • debug 调试模式,打印执行信息
    • type: bool
    • defaut: false

Workflow

工具一共会产生三种文件:

  • 组件多语文件,文件级别的语言文件,位于文件同级目录下的 __i18n__ 文件夹
  • 全局缓存语言文件,位于项目根目录 .i18n-cache 下,不提交,存放项目所有文案
  • 全局变更语言文件,位于项目根目录 __i18n__,不提交,存放本次新增文案

假如配置 npm script 如下:

{
  "scripts":{
    "dev": "webpack --config webpack.dev.js",
    "extract": "npm run dev -- --env.isExtract=true --env.locale=all",
    "translate": "npm run dev -- --env.isTranslate=true --env.locale=all",
  }
}

文案新增及更新

代码中新增了文案,或者将代码中原有文案进行了更新。

  • 新增文案,执行 npm extract 会清空本地的变更文件,将组件中文案抽取到缓存及组件的多语文件中,如果缓存中不存在或者文案不一样,同时会抽取到变更文件中;
  • 将生成的变更多语文件进行翻译,执行 npm translate。会将变得文件中的翻译同步到缓存及组件多语文件中。

更新某个翻译文案

比如需要更新某个文案的英文翻译,直接更改该文案所在组件的多语文件。非中文的文案直接在代码中修改,生成一条新的文案,而不是修改语言文件。

TODOs

  • time, currency, plural localization support
  • file split, sotre the merged file into cache

Package Sidebar

Install

npm i i18n-extract-loader

Weekly Downloads

2

Version

0.2.8

License

MIT

Unpacked Size

9.91 kB

Total Files

6

Last publish

Collaborators

  • umu-duanjun
  • librajt
  • wayou