npm 包 babel-plugin-extract-format-message 使用教程

阅读时长 4 分钟读完

前言

在前端应用的国际化过程中,文案的管理一直是一个棘手的问题。传统的做法是在代码中使用字符串常量表示文案,然后在后端通过模板引擎等方式进行替换。这样的做法缺点显而易见:不便于前端的维护,也不便于翻译人员的协作。针对这个问题,一种新的解决方案出现了:使用格式化字符串来管理文案。

格式化字符串不仅可以表示文案的内容,还可以包含参数信息,例如:

这样的字符串可以被翻译人员翻译,并在程序运行时替换参数。

但是,在大型项目中,使用格式化字符串的方式甚至都不够,我们还需要对文案进行提取以及国际化的打包。这个时候,就需要用到 babel-plugin-extract-format-message 这个 npm 包了。下面,我们就来具体介绍一下它的使用教程。

安装

首先,我们需要安装 babel-plugin-extract-format-message 这个 npm 包。可以使用 npm 或者 yarn 进行安装:

在安装完成之后,我们需要配置 babel 以使用这个插件。在 .babelrc 或者 babel.config.js 中添加如下配置:

-- -------------------- ---- -------
-
  ---------- -
    -------------------------- -
      ---------- --------- ---------
      --------- ------------
      -------------------- -----------------
      ------------------------ ----------------
      --------------------------- --
    --
  -
-

其中,各个配置项的含义如下:

  • locales:表示要提取哪些语言。这个值是一个数组,可以包含多个语言。
  • output:表示提取出来的文案应该输出到哪个目录。这个值是一个字符串。
  • defaultMessageKey:表示默认的文案键名,如果在代码中没有指定键名,那么就使用这个默认值。这个值是一个字符串。
  • formatMessageFunction:表示格式化字符串的函数名。这个值是一个字符串。
  • additionalComponentNames:表示要额外监听哪些组件。这个值是一个数组。

使用

在配置完成之后,我们就可以在代码中使用格式化字符串了。babel-plugin-extract-format-message 会自动提取这些格式化字符串并生成对应的 .json 文件。下面是一个例子:

-- -------------------- ---- -------
------ ----- ---- -------

----- ------------- - ------ ------ -- ------- -------- --- ---- -------- ------ ----------

----- --- - -- -- -
  ----- ---- - ------
  ----- ----- - -
  ------ -
    -----
      --- ------------ ---- --- ---
      ----------------------- -----------
    ------
  -
-

------ ------- ---

在执行编译命令后,我们可以在 ./locales 目录下找到对应的 JSON 文件。它的格式如下:

其中,"Hello, {name}! You have {count} unread messages." 就是该文案在代码中的值。"defaultMessage" 是默认的键名。"zh-CN" 是中文翻译,"en-US" 是英文翻译。

结语

通过上面的介绍,我们学习了如何使用 babel-plugin-extract-format-message 这个 npm 包来管理前端应用的格式化字符串。这个库不仅可以帮助我们提取文案,还可以进行国际化打包。希望本文对读者有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006734b890c4f7277583798

纠错
反馈