npm 包 i18next-scanner 使用教程

在前端开发中,国际化(i18n)技术扮演着重要的角色。i18n 可以提高网站或应用程序的可用性和可访问性,并使其更具有全球范围的适用性。有很多工具和框架可用于实现国际化,其中一个非常流行的工具就是 i18next,它是一个支持多语言的 JavaScript 库。i18next-scanner 可以帮助我们自动提取 JavaScript 中的 i18n 字符串,并将它们保存在 JSON 或 PO 文件中,以便翻译员进行翻译。本文将介绍 i18next-scanner 的使用方法,并提供示例代码。

安装 i18next-scanner

安装 i18next-scanner 的最简单方法是通过 npm 进行安装:

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

配置 i18next-scanner

在安装完 i18next-scanner 后,我们需要先创建一个配置文件,以告诉 i18next-scanner 哪些文件应该被扫描,如何解析 i18n 字符串,以及如何将它们保存到文件中。下面是一个示例配置文件的内容:

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

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

配置项说明:

  • input: 要扫描的文件路径。可以使用 glob 匹配模式来匹配多个文件。
  • output: 保存翻译结果的路径。 $LOCALE, $NAMESPACE 表示占位符,会被实际的语言代码和命名空间替换。
  • options: 其他配置选项。
    • debug: 是否打印调试信息。
    • sort: 是否按照键名进行排序。
    • func: 用于匹配 i18n 函数的配置。
      • list: 匹配函数名的数组。
      • extensions: 匹配文件扩展名的数组。
    • lngs: 支持的语言列表。
    • ns: 命名空间列表。
    • defaultNs: 默认的命名空间。
    • defaultValue: 当字符串没有被翻译时的默认值。
    • resource: 用于读写翻译文件的配置。
      • loadPath: 读取文件的路径。
      • savePath: 保存文件的路径。
      • jsonIndent: JSON 文件的缩进量。
      • lineEnding: 行末的换行符。
    • nsSeparator: 命名空间分隔符。
    • keySeparator: 键名分隔符。
    • interpolation: 插值表达式的配置。

执行 i18next-scanner

配置好后,我们可以使用 i18next-scanner 进行扫描:

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

这里使用了 npx 命令来执行 i18next-scanner,以确保我们使用的是项目中安装的 i18next-scanner。-c 参数指定了使用哪个配置文件。

执行成功后,i18n 字符串会被提取并保存在相应的翻译文件中。

在 JavaScript 中使用 i18next

在编写使用 i18next 的代码时,我们需要创建一个 i18next 对象,并将其初始化:

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

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

这里使用了 i18next、i18next-http-backend、i18next-browser-languagedetector 和 i18next-sprintf-postprocessor 四个包,它们分别用于:

  • i18next: i18next 核心包。
  • i18next-http-backend: 用于从远程服务器加载翻译文件的插件。
  • i18next-browser-languagedetector: 用于检测浏览器语言的插件。
  • i18next-sprintf-postprocessor: 用于支持插值表达式的插件。

示例代码

下面是一个示例代码,演示如何在 React 中使用 i18next:

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

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

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

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

其中,useTranslation 是一个自定义的 React Hook,它用于获取当前组件所需的翻译函数。'home' 参数代表使用 home 命名空间中的字符串。t 函数用于获取翻译后的字符串。

总结

i18next-scanner 是一个非常有用的工具,它可以帮助我们自动提取 i18n 字符串,极大地提高了国际化的效率。只需简单的配置文件,就可以快速扫描项目中的 i18n 字符串,并将其保存在 JSON 或 PO 文件中,以便翻译员进行翻译。此外,本文还提供了如何配置 i18next 和示例代码,以帮助您更好地理解并使用 i18n 技术。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64231


猜你喜欢

  • NPM 包 Binary-Search 使用教程

    二分查找是一种重要的算法,它在实际应用中能帮助我们快速定位目标元素。在前端开发中,我们常常需要对大量数据进行快速查找和排序。为了提高开发效率,我们可以利用 NPM 包 Binary-Search,来快...

    5 年前
  • npm 包 zip-dir 使用教程

    在前端开发中,有时需要将文件夹打包为 zip 文件进行网络传输或本地存储。为了方便,我们可以利用 npm 包 zip-dir 来打包文件夹,本文将详细介绍 zip-dir 的使用教程。

    5 年前
  • npm 包 ws.js 使用教程

    ws.js 是一个 Node.js 上的实现 WebSocket 协议的库。它提供了面向 WebSocket 应用程序的高度优化的 API 和 WebSocket 协议的实现。

    5 年前
  • npm 包 wcf.js 使用教程

    wcf.js 是一款使用 Node.js 编写的 npm 包,旨在为前端开发者提供 WCF 服务的连接工具。本文将向您介绍如何使用 wcf.js 连接 WCF 服务,包括安装、基本用法、参数设置等方面...

    5 年前
  • npm 包 purifycss 使用教程

    #npm 包 purifycss 使用教程 简介 purifycss 是一个可以剔除未使用 CSS 代码的 npm 包,可以在构建后将未使用的 CSS 代码从生产文件中剔除,减小包大小,提高加载速度。

    5 年前
  • npm 包 babel-plugin-transform-array-from 使用教程

    在前端开发中,我们经常需要使用数组。但是在实际的应用中,由于不同浏览器所支持的 JS 版本不同,在使用一些最新的 ES6 或 ES7 数组扩展方法时会遇到兼容性问题。

    5 年前
  • npm 包 seekjs 使用教程

    介绍 seekjs 是一个基于 AMD 加载器的 JavaScript 模块化方案,它提供了一种简单的方式来编写可重用、面向对象的代码,使得前端开发变得更加低耦合和高可维护。

    5 年前
  • npm 包 string.padstart 使用教程

    在前端开发中,我们经常需要对字符串进行处理,其中一个常见的需求就是在字符串左侧填充指定的字符或者字符串使其达到指定长度,这个需求可以通过使用 string.padStart() 方法来实现。

    5 年前
  • npm 包 seek2-cli 使用教程

    什么是 seek2-cli? seek2-cli 是一个基于 Node.js 平台的命令行工具,它提供了一套快速生成基础代码的解决方案。通过 seek2-cli 可以帮助开发者快速的初始化一个前端项目...

    5 年前
  • npm 包 async-replace 使用教程

    在前端开发中,我们经常会需要进行字符串替换操作。而在某些情况下,这种替换操作可能非常复杂,甚至需要进行异步处理。这时候,npm 包 async-replace 就非常有用了。

    5 年前
  • npm 包 elm-css 使用教程

    前言 作为前端开发人员,我们经常需要使用 CSS 来布局和美化页面。然而,CSS 的语法复杂,选择器繁多,导致样式难以维护。此时,一个能够强类型化样式的工具就显得尤为重要。

    5 年前
  • npm 包 Hogan 使用教程

    在前端开发中,我们常常需要渲染模板,以便快速生成静态页面。而在 Node.js 中,npm 包 Hogan 是一种十分常用的模板引擎,它允许我们使用 Mustache 语法来生成 HTML、CSS 和...

    5 年前
  • npm 包 gulp-banner 使用教程

    介绍 在前端开发的过程中,我们经常需要将一些公共的信息添加到我们的代码中,比如项目的作者、日期等信息。gulp-banner 是一个能够帮助我们在编译前自动添加这些信息的 npm 包。

    5 年前
  • npm 包 underscore.template 使用教程

    背景 在前端开发中,我们经常需要渲染一些动态的 HTML 页面。最常见的方式就是使用模板引擎。在这里我们介绍一款非常好用的 npm 包:underscore.template,它提供了强大的模板渲染功...

    5 年前
  • npm 包 gulp-any-template 使用教程

    简介 在前端开发中,我们经常需要将我们的 HTML、CSS 和 JavaScript 文件转化为一些可以被浏览器识别的格式,如HTML、CSS 和 JavaScript。

    5 年前
  • npm 包 elm-factory 使用教程

    在前端开发中,有很多工具和技术可以帮助开发人员快速构建高质量的应用程序。其中一个非常流行的技术就是 Elm,它是一种函数式编程语言,可以帮助开发人员构建可靠和高效的 Web 应用程序。

    5 年前
  • npm 包 bisheng-plugin-toc 使用教程

    在前端开发中,我们经常会用到 markdown ,它是一种轻量级的标记语言,用以简化 HTML 的编写。我们可以使用一些 markdown 编辑器(如 VSCode、Typora 等)来编辑 mark...

    5 年前
  • npm 包 bisheng-plugin-react 使用教程

    bisheng-plugin-react 是一个基于 React 的 bisheng 插件,可以帮助用户在 Markdown 文件中编写 React 组件。 安装 使用 npm 安装 bisheng-...

    5 年前
  • npm 包 bisheng-plugin-description 使用教程

    前言 对于前端开发人员来说,编写文档是常常需要去做的一项工作,而且好的文档可以帮助我们更好的沟通和协作。在 React 生态系统中,由 Ant Financial 开发的 Bisheng 作为一款文档...

    5 年前
  • npm 包 react-sublime-video 使用教程

    介绍 react-sublime-video 是一款基于 React.js 的视频插件,它可以轻松地在网页上嵌入视频并进行控制。同时,它还具备处理自动播放、保持视频纵横比、响应式布局等特性,使得我们可...

    5 年前

相关推荐

    暂无文章