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

前言

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

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

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

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

但是,在大型项目中,使用格式化字符串的方式甚至都不够,我们还需要对文案进行提取以及国际化的打包。这个时候,就需要用到 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


猜你喜欢

  • npm 包 @mongoosejs/async-hooks 使用教程

    介绍 @mongoosejs/async-hooks 是一个 Node.js 的 npm 包,它提供了异步钩子的实现,可以在 Node.js 的异步 I/O 操作时检测异步操作的开始和结束,还可以在 ...

    4 年前
  • npm 包 @omkartech/generate-schema 使用教程

    在前端开发中,我们经常需要编写表单和结构化数据的表达式。而对于要把这些数据存储在数据库或网络中,一般需要将其转化成结构化的数据格式,例如 JSON 或 XML。因此,为了更加高效地完成这些任务,我们可...

    4 年前
  • npm 包 inst-tinymce-locales 使用教程

    inst-tinymce-locales 是一个用于 TinyMCE 富文本编辑器的 npm 包,其中包含了多种语言的本地化资源,可以帮助开发者快速构建多语言网站。

    4 年前
  • npm 包 @buttercup/google-auth-library 使用教程

    在前端开发过程中,我们经常需要对用户进行身份验证和授权。Google 提供了一个强大的身份验证和授权服务,名为 Google Cloud Platform(GCP),以及一个支持 GCP 的 Goog...

    4 年前
  • npm 包 cssvar-interaction 使用教程

    介绍 在使用前端框架时,我们可能需要经常改变页面元素的样式。cssvar-interaction 是一个可以帮助我们更方便地管理 CSS 变量的工具。使用该工具,我们可以将 CSS 变量看作 Java...

    4 年前
  • npm 包 ssbjs 使用教程

    什么是 ssbjs ssbjs 是一款基于 JavaScript 的前端库,其主要功能是实现针对网页应用的许多实用的功能,如表单验证、API 调用封装、复杂对象存储管理等等,它是非常容易使用的,同时也...

    4 年前
  • npm 包 bitexpert-cs-jscs 使用教程

    前言 在前端开发中,代码的风格和规范非常重要,它可以提高代码的可读性、维护性、可靠性等等。而 bitexper-cs-jscs 就是一个帮助我们进行代码规范检查的 npm 包。

    4 年前
  • npm 包 bitexpert-cs-jshint 使用教程

    1. 什么是 bitexpert-cs-jshint? bitexpert-cs-jshint 是一个基于 JSHint 的 JavaScript 静态代码分析工具。

    4 年前
  • npm 包 bitexpert-cs-scsslint 使用教程

    在前端开发中,sass 和 scss 已成为常见的 CSS 预编译语言。但是,由于其语法灵活而复杂,易导致代码出错,为了保证代码质量和规范化,我们需要一个可靠的 scss 代码审核工具,这就是我们今天...

    4 年前
  • npm 包 grunt-mntyjs 使用教程

    什么是 grunt-mntyjs? grunt-mntyjs 是一个基于 Grunt 的前端工具,用于编译和打包 JavaScript 和 CSS 文件。它可以帮助你自动化前端工作流程,提高工作效率。

    4 年前
  • npm 包 ng2-combobox 使用教程

    前言 ng2-combobox 是一个基于 Angular 2 开发的下拉框组件,可以用于多种场景下的下拉框选择。它支持自定义显示项、数据异步加载、远程搜索等功能,非常实用。

    4 年前
  • npm 包 awilix-koa 使用教程

    简介 awilix-koa 是一个基于 awilix 进行封装的 Koa 框架依赖注入解决方案,它可以帮助你更加便捷地管理依赖注入,提升前后端开发效率。 开始使用 安装 在使用 awilix-koa ...

    4 年前
  • npm 包 norcal 使用教程

    在前端开发过程中,我们通常需要使用到各种 npm 包来快速搭建应用或增强功能。其中一个比较好用的 npm 包就是 norcal,它提供了一些实用的工具来解决前端开发中的一些常见问题。

    4 年前
  • npm包 design-units 使用教程

    在前端开发中,我们经常需要使用一些单位来描述视觉设计上的尺寸和距离,比如像素(px)、百分比(%)、em、rem等等。npm包design-units就是一个针对于前端开发者,提供了一种更加便捷的方式...

    4 年前
  • npm 包 redux-connected-ui 使用教程

    在前端开发中,我们经常需要使用库或框架来提高开发效率和代码质量。其中,redux-connected-ui 包就是一个很好的库,它可以让我们更加轻松地使用 Redux 和 React 构建复杂的 UI...

    4 年前
  • npm 包 @bidvine/react-summernote 使用教程

    前言 在现代前端开发中,富文本编辑器是必不可少的工具之一。市面上有很多成熟的富文本编辑器,其中 Summernote 是目前比较流行的一款。 在 React 项目中,我们可以使用 npm 包 @bid...

    4 年前
  • npm 包 gt-ion-range-slider 使用教程

    简介 gt-ion-range-slider 是一款实用的基于 IonRangeSlider 库开发而来的 JQuery 插件,它为前端工程师提供了一个快速方便的方式来增加自定义滑块功能。

    4 年前
  • npm 包 @bethesdalc/winston-mongodb 使用教程

    前言 在前端开发中,日志是一个非常重要的特性,能够帮助开发者快速定位问题。winston 是一个非常流行的 Node.js 日志库,可以支持多种日志存储方式,其中之一就是 MongoDB。

    4 年前
  • npm 包 @you54f/s3-batch-upload 使用教程

    如果你是一名前端工程师,那么你一定会用到 Amazon S3 这个对象存储服务。然而,当你需要上传多个文件到 S3 时,如果一个一个手动上传,那将是非常耗时的一件事情。

    4 年前
  • npm 包 gravy-sass 使用教程

    前言 在现代的 Web 开发中,前端开发技术日趋复杂。为了提高开发效率,许多前端工具应运而生,其中以 npm 包的使用最为常见。gravy-sass 是一个常用的 npm 包之一,可以帮助我们更方便地...

    4 年前

相关推荐

    暂无文章