npm 包 loopback-i18n 使用教程

阅读时长 4 分钟读完

在前端开发中,国际化是一个很常见的需求。npm 包 loopback-i18n 是一个为 LoopBack 应用程序提供国际化支持的模块。本文将为您介绍 loopback-i18n 的使用方法。

安装 loopback-i18n

首先,您需要使用 npm 安装 loopback-i18n。在终端窗口中,输入以下命令即可:

配置 loopback-i18n

接下来,您需要修改应用程序的配置文件,以启用 loopback-i18n。在 server/config.json 文件中添加以下代码:

在这段代码中,我们添加了三个配置项:

  • defaultLocale: 默认的语言环境;
  • locales: 支持的语言环境列表;
  • fallbackLocale: 如果用户请求的语言环境不受支持,使用该语言环境。

接下来,您还需要修改 server/middleware.json 文件,添加以下内容:

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

这段配置代码将 i18n#init 中间件添加到了应用程序的 initial 阶段。

创建翻译文件

接下来,我们需要创建翻译文件。在根目录下创建 locales 文件夹,在该文件夹内创建两个语言环境的文件夹,例如 enzh。在每个语言环境的文件夹中,创建一个 JSON 文件,例如 en.jsonzh.json

在这些 JSON 文件中,您需要添加您要翻译的文本。例如:

使用 loopback-i18n

现在,您已经完成了 loopback-i18n 的配置。接下来我们来看如何在应用程序中使用它。

假设您的应用程序有一个控制器,如下所示:

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

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

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

现在,我们来把这个控制器国际化。修改控制器,如下所示:

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

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

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

在这个控制器中,我们使用了 req.__() 函数来获取翻译后的文本。当该函数被调用时,它会尝试查找用户请求的语言环境中的对应文本。如果找不到对应文本,则会尝试使用 fallbackLocale

总结

在本文中,我们为您介绍了如何使用 loopback-i18n 在 LoopBack 应用程序中添加国际化支持。首先,我们学习了如何安装和配置 loopback-i18n,然后我们创建了翻译文件,并学习了如何在应用程序中使用 loopback-i18n。我们希望本文能够帮助您更好地理解 loopback-i18n,并在您的应用程序中实现国际化功能。

完整示例代码请参见:https://github.com/strongloop/loopback-i18n-example

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

纠错
反馈