npm 包 ngx-i18next 使用教程

什么是 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


猜你喜欢

  • npm 包 pagerduty-alert 使用教程

    简介 PagerDuty 是一款强大的工具,用于在生产环境中实时监控和处理问题。如果您正在寻找一种简单而又可靠的方法,以便将错误通知发送到 PagerDuty,请考虑使用 pagerduty-aler...

    2 年前
  • npm包cerebro-laravel使用教程

    简介 cerebro-laravel是一个npm包,旨在帮助开发者更加高效地构建Laravel应用程序。它提供了一些常用的功能,如Artisan命令和路由查询,以及其他一些实用功能。

    2 年前
  • npm 包 homebridge-yamahaamp 使用教程

    前言 homebridge-yamahaamp 是一个基于 Node.js 平台的 npm 包,它能够将您的 Yamaha 音响设备接入 HomeKit 中,使您可以通过 Siri 语音或 Apple...

    2 年前
  • npm 包 react-native-progressbar 使用教程

    在开发前端应用程序时,经常需要包含进度条,让用户直观地了解操作的进展。而使用 react-native-progressbar,我们可以轻松实现这个功能。 react-native-progressb...

    2 年前
  • npm 包 weight.css 使用教程

    在前端开发中,很多时候需要设计简单的 UI 元素,比如按钮、表单等等。这些元素可能在不同的页面和项目中用到,如果每次都从头开始设计样式,会浪费很多时间和精力。为了解决这个问题,很多开发者使用 CSS ...

    2 年前
  • npm 包 should2assert 使用教程

    在前端开发中,经常需要进行单元测试,以保证代码的正确性和稳定性。而测试中常使用断言库来测试代码的正确性。should2assert 就是一个 npm 包,它可以将 should.js 中的语法转换为 ...

    2 年前
  • npm 包 generator-docker-laravel 使用教程

    随着容器化技术的发展,Docker 已经成为了众多开发者不可或缺的一部分。在 Laravel 开发中,我们通常也需要使用 Docker 来转移和运行我们的项目。如果你正在寻找一个快速轻松的方法来创建 ...

    2 年前
  • npm 包 npm-test-test-test 使用教程

    什么是 npm 包 npm(Node Package Manager)是 Node.js 的包管理器。它可以供开发者方便地下载和共享代码,尤其是 JavaScript 应用中使用的模块。

    2 年前
  • npm 包 nee-smart-table 使用教程

    简介 nee-smart-table 是一个基于 Angular 的数据表格插件。它具有强大的数据绑定功能和可定制化的样式和行为。此插件适用于想要创建高质量、可扩展的数据表格的开发人员。

    2 年前
  • npm 包 butter-theme-dark 使用教程

    介绍 但是方案是一种前端开发中经常使用的工具,它可以让开发者在开发过程中更加高效地复用代码。而 butter-theme-dark 就是一种跟主题有关的 npm 包。

    2 年前
  • npm 包 eslint-plugin-css-in-js 使用教程

    介绍 eslint-plugin-css-in-js 是一个用于检查在 JavaScript 中嵌入 CSS 代码的 Eslint 插件。它支持多种 CSS-in-JS 库,包括 styled-com...

    2 年前
  • npm 包 egg-webpack-dev-server 使用教程

    简介 egg-webpack-dev-server 是一个 Egg.js 插件,可以将 Webpack 封装进来,提供方便快捷的本地开发环境,适用于前端开发。 安装 通过 npm 安装 egg-web...

    2 年前
  • npm 包 redux-local-state 使用教程

    什么是 redux-local-state? redux-local-state 是一个用于 React 应用的 npm 包,它提供了一种在 Redux 中管理本地组件状态的方式,让你不再为 Reac...

    2 年前
  • npm 包 admin-plugin-healthcheck 使用教程

    在前端开发中,一个好的管理系统是必不可少的。admin-plugin-healthcheck 是一个非常有用的 npm 包,它提供了对系统健康状态的监测和管理功能。

    2 年前
  • npm 包 my-google-news 使用教程

    介绍 my-google-news 是一款基于 Google News API 的 npm 包,可用于获取 Google News 上的新闻信息,并提供多种方法对新闻数据进行处理和筛选。

    2 年前
  • npm 包 ng-remote-table 使用教程

    前端开发需要一些实用的工具库和框架,而 npm 是一个非常不错的开源资源库,可以帮助我们快速安装、更新和管理我们所需的前端工具库和框架。ng-remote-table 是一个基于 Angular 的表...

    2 年前
  • npm 包 redux-ajaxable 使用教程

    前言 在前端开发的过程中,我们需要与后端进行数据交互,这就需要用到 ajax。redux-ajaxable 是一个能够帮助我们更便捷地进行数据交互的 npm 包。本文将介绍 redux-ajaxabl...

    2 年前
  • npm 包 news-fetch 使用教程

    前言 作为前端开发人员,我们经常需要获取网络上的新闻或其他相关数据。但是,从互联网上获取这些数据并不是一件简单的事情。需要编写 HTTP 请求、解析返回的数据等等。

    2 年前
  • npm 包 wordpress-theme-generator 使用教程

    随着 WordPress 成为了当今最为流行的内容管理系统之一,越来越多的人开始使用它来创建和发布自己的博客、网站和应用。而 WordPress 主题作为许多 WordPress 用户最为常用的形式之...

    2 年前
  • npm 包 grunt-localtunnel-client 使用教程

    grunt-localtunnel-client 是一个可以让前端开发者轻松将本地开发服务器暴露在互联网上的 npm 包。在传统的前端开发环境中,我们需要自行购买域名和服务器才能实现本地服务器的访问。

    2 年前

相关推荐

    暂无文章