npm 包 ngx-i18next 使用教程

阅读时长 7 分钟读完

什么是 ngx-i18next ?

ngx-i18next 是 Angular 的一个非常流行的国际化插件。它可以帮助你在你的 Angular 应用程序中轻松地实现国际化和多语言支持。它基于 i18next 国际化库,可以自动检测用户浏览器的语言设置并返回相应的翻译文本。

安装 ngx-i18next

安装 ngx-i18next 很简单,只需要在项目的根目录下运行以下命令:

配置 ngx-i18next

使用 ngx-i18next 前,需要在项目的 AppModule 中导入 NgxI18nModule 并进行配置。首先,应该从 ngx-i18next 包中导入 I18nModule:

然后,你需要在 AppModule 中配置 I18nModule。在你的 AppModule 中,添加 I18nModule,同时还需要通过 use 静态方法来设置 ngx-i18next 应该使用的翻译文件:

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

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

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

在上面的例子中,我们导入了两个翻译文件:en.json 和 fr.json,然后使用静态方法 use 方法来设置 ngx-i18next 应该使用哪个文件。第二个参数表示地区,如果没有指定则使用默认的英语。

打开 app.component.html,在要翻译的元素上添加 i18n 属性。例如:

由于我们已经配置了 ngx-i18next 应该使用的翻译文件,ngx-i18next 会自动在视图中查找与当前语言对应的翻译字符串。

在组件中使用 ngx-i18next

不仅可以在模板中使用 ngx-i18next,还可以在组件中使用。以组件定义如下:

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

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

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

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

在组件类中,我们导入 I18nService,这个服务包含了语言列表和更改语言的方法。在上面的例子中,我们展示了 changeLanguage 方法,该方法用来更改当前语言。在模板中添加按钮:

当点击按钮时,changeLanguage 方法会将当前语言更改为英语或法语。

使用 ngx-i18next 部署应用

使用 ngx-i18next 部署应用非常简单。只需将翻译文件传递给前端服务器即可。你可以将这些文件打包到应用程序中,或者可以在部署应用程序之前通过网络加载它们。

具体来说,我们可以将翻译文件打包到应用程序中。在 Angular 项目中,通常将翻译文件放置在项目根目录下的 i18n 文件夹下。例如,我们有一个叫做“en.json”的文件,它的内容如下:

然后,我们在 app.module.ts 文件中添加以下代码:

注意,这里使用 require 动态地引入了翻译文件。

现在,我们已经打包好了翻译文件。在生产环境下,这可以减少服务器请求,因为将翻译文件打包到应用程序中意味着只需要一个请求:应用程序代码。如果你需要更改某个语言,则只需要在你的本地代码库中更改相应的 en.json 文件即可。

总结

ngx-i18next 是国际化方面的一大利器。本文介绍了如何在 Angular 应用程序中使用 ngx-i18next 以及如何部署应用。希望这篇文章对你有帮助,也希望你在开发过程中能够顺利地使用 ngx-i18next。

示例代码:

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

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

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

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

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

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

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

纠错
反馈