npm 包 localize-router-http-loader 使用教程

前言

在开发前端应用中,经常会使用路由来实现展示页面的功能。而在应用多语言的情况下,我们通常需要对应不同语言的页面地址。localize-router-http-loader 这个 npm 包就是帮助我们在 Angular 应用中实现多语言路由的工具,本篇文章将介绍如何使用这个包。

安装

该包依赖 angular、@ngx-translate/core 和 @ngx-translate/http-loader,需要先安装这些包,可以使用以下命令:

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

配置

  1. app.module.ts 中导入包:

    ------ - -------- - ---- ----------------
    ------ - ------------- - ---- ----------------------------
    ------ - ------------- ------ - ---- ------------------
    ------ -
      -----------------------
      ---------------------
      -------------------------
      -----------------------
      ---------------------------
    - ---- ------------------------------
    ------ - ---------------- ---------------- ---------------- - ---- ----------------------
    ------ - ----------------- ---------- - ---- -----------------------
    ------ - ------------ - ---- ------------------
    ------ - ------------- - ---- ------------------------
    ------ - -------------- - ---- --------------------------
    
    ----- ------- ------ - -
      - ----- --- ---------- ------------- --
      - ----- -------- ---------- -------------- --
    --
    
    ------ -------- --------------------------- ----------- -
      ------ --- ------------------------------ ----------------- --------------
    -
    
    -----------
      -------- -
        --------------
        -----------------
        -----------------------------
        -------------------------
          ------- -
            -------- ----------------
            ----------- ----------------------
            ----- -------------
          --
        ---
        ------------------------------------ -
          ------- -
            -------- ---------------
            --------- ------------------------
            ----- ------------------ --------- ------------------------
          --
          -------------- -----
          ---------------- -----
          -------------------- -- -- -
            ----- ---- - -------------------
            ------ ------------------- - ------- - --------
          --
        ---
      --
      ------------- -------------- -------------- ----------------
      ---------- -
        -
          -------- -----------------------
          --------- -
            ---------------- -----
          --
        --
        -----------------------
      --
      ---------- ---------------
    --
    ------ ----- --------- --
  2. app.component.ts 中添加代码:

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

    这段代码的作用是监听语言变化事件并更新路由。

示例

我们假设有以下两种语言的页面:

  • 英文版:/en/home/en/about
  • 中文版:/zh-CN/home/zh-CN/about

assets/i18n/ 文件夹下创建 en-lang.jsonzh-CN-lang.json 两个翻译文件:

en-lang.json:

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

zh-CN-lang.json:

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

app-routing.module.ts 中将路由改为多语言路由:

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

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

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

在组件中使用翻译:

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

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

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

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

-

html 中使用:

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

深度解析

LocalizeRouterModule.forRoot(routes, options) 是创建本地化模块最重要的方法。它有两个参数:

  1. routes: Angular 的原始路由配置
  2. options: 参数对象,其中 parser 是最重要的属性

parser 是本地化路由解析器。我们可以定义自己的解析器,需要实现 LocalizeParser 接口,并将其注入到 parser 属性中。但是, localize-router 为我们提供了直接可用的默认解析器 LocalizeUniversalLoader

LocalizeRouterModule.forRoot 方法中,我们配置了一些通用的 options,包括 useCachedLangalwaysSetPrefix 等。这些通用属性相对简单,都有默认值,可以自行查阅官方说明文档。

这两个方法的设置还要结合整个应用初始化时的语言环境,而这个环境是由 defaultLangFunction 方法来定义的。默认情况下,它会检测浏览器语言设置并返回相应语言,否则返回英文。

在组件中,我们需要监听路由变化事件,以便及时更新本地化路由。 LocalizeRouterService.changeLanguage 方法返回可订阅的流,它会在语言环境变更时执行。

最后,在 HTML 文件中应用翻译。TranslatePipengx-translate 的核心管道,它可以将一个 key 转换成相应的翻译文本。在这个例子中,它被应用于 h1 元素和 p 元素中的 homeabout,因此 ngx-translate 将查找相应翻译文件,并返回对应的翻译文本。

总结

以上是使用 localize-router 在 Angular 中实现多语言路由的过程与方法。通过本地化路由,可以轻松实现多语言页面的切换、跳转和共享等功能。相信通过学习本文,您可以更好地理解 localize-router 的工作原理和使用方法,提升自己的前端开发能力。

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


猜你喜欢

  • npm 包 racy-deploy 使用教程

    什么是 racy-deploy? racy-deploy 是一个基于 Node.js 平台的自动化化部署工具,可以帮助开发者快速、高效地部署前端项目,支持多种部署方式和部署环境。

    3 年前
  • npm 包 react-native-baidu-trace 使用教程

    在使用 react-native 开发移动应用时,我们可能需要使用一些第三方库来实现更丰富的功能。Baidu Trace 是百度提供的一种轻量级的位置信息采集和处理服务,可以帮助我们获取用户的实时定位...

    3 年前
  • npm 包 wj-carousels 使用教程

    前言 在当今互联网的时代,网站与移动端 App 开发成为各个企业发展的重要方式,而前端开发作为整个开发过程中的重要环节,使用 npm 包 wj-carousels 可以方便的实现轮播图的特效,从而优化...

    3 年前
  • npm包 @paraponera/antd使用教程

    前端开发中,我们经常使用一些现成的框架和组件来加速开发进程。而Ant Design 是一套优秀的React UI组件库,在众多前端开发中广受欢迎。同时,@paraponera/antd 是在Ant D...

    3 年前
  • npm 包 @lrnwebcomponents/paper-input 使用教程

    介绍 @lrnwebcomponents/paper-input 是一个基于 Polymer 和 Material Design 的 Web 组件库,它提供了一个高度可定制的文本输入框组件,并且还支持...

    3 年前
  • npm 包 @lrnwebcomponents/parallax-effect 使用教程

    在现代 Web 开发中,视差效果是常常被使用的技术之一。它是一种能够让您的页面看起来更加生动、更具层次感的效果。而现在,您可以通过使用 npm 包 @lrnwebcomponents/parallax...

    3 年前
  • npm 包 easy-lottie-react-native 使用教程

    什么是 easy-lottie-react-native easy-lottie-react-native 是一个 React Native 的 npm 包,用于在 React Native 项目中方...

    3 年前
  • npm 包 git-collab 使用教程

    在开发过程中,Git 经常用来管理版本控制,而 git-collab 这个 npm 包则能够方便地协作开发,同时也能够简化一些本地部署的问题。本篇文章将会详细介绍 npm 包 git-collab 的...

    3 年前
  • npm 包 android-avd-manager 使用教程

    前言 随着移动设备的普及和智能化,尤其是安卓手机的应用数量和用户量增长迅速,越来越多的开发者开始投入到安卓开发中。为了能够更方便地进行安卓应用的开发和测试,我们通常需要使用安卓模拟器。

    3 年前
  • npm 包 paypal-spotlight 使用教程

    引言 paypal-spotlight 是一个基于 React 开发的可自定义的搜索框组件。它可以针对网站或应用程序的搜索需求而进行配置,以实现更优秀的用户体验和搜索结果。

    3 年前
  • npm 包 simple-react-scripts 使用教程

    简介 simple-react-scripts 是基于 create-react-app 的一个简化版,可以帮助开发者快速搭建 React 应用并启动本地开发服务器。

    3 年前
  • npm 包 @lrnwebcomponents/lrnapp-gallery-grid 使用教程

    简介 @lrnwebcomponents/lrnapp-gallery-grid 是一个前端组件库,适用于 React 和 Web Component 应用程序。它提供了一个具有良好交互性和美观外观的...

    3 年前
  • npm 包 git-branch-batch 使用教程

    在前端开发过程中,使用 Git 是必不可少的版本控制工具。Git 的分支功能为团队协作和项目管理带来了极大的便利,但在大型项目中,分支数量可能会变得非常多,这时手动删除分支就会变得非常烦琐。

    3 年前
  • npm包@lrnwebcomponents/swipe-action使用教程

    在前端开发中,实现滑动删除等操作是非常常见的需求。 @lrnwebcomponents/swipe-action是一个npm包,提供了方便的滑动操作组件,可以大大减少我们的开发时间和工作量。

    3 年前
  • npm 包 commitlint-config-czx 使用教程

    随着前端开发的发展,代码的提交规范已经成为了必要的标准。commitlint-config-czx 是一种使用简单、功能强大的规范包,让我们更好地管理我们的代码。 什么是 commitlint-con...

    3 年前
  • npm 包 flow-singleton 使用教程

    前言 随着前端代码逐渐变得复杂,代码中出现的 bug 越来越多。Flow 是 Facebook 出品的静态类型检查工具,可以帮助我们开发更加健壮的代码。但是使用 Flow 也有一些问题,比如多次引用同...

    3 年前
  • NPM包 token-sort使用教程

    介绍 在前端开发中,我们常会遇到需要对字符串进行排序的需求。而NPM包token-sort就是专门用于字符串排序的工具。 它能够根据定义的规则将字符串数组进行排序。

    3 年前
  • npm 包 @programming-languages-logos/lua 使用教程

    简介 @programming-languages-logos/lua 是一种用于制作比特币的开源编程语言 Lua 的官方 npm 包。它的安装方法非常简单,只需要使用 npm 命令即可。

    3 年前
  • npm 包 justows.conn.tmpl 使用教程

    介绍 justows.conn.tmpl 是一个基于模板引擎的npm包,它可用于处理在前端开发中使用到的模板。这个包采用简单的语法,适用于前端开发人员,无论是使用 React,Vue 还是其他的框架,...

    3 年前
  • npm 包 easy-helpful-utils 使用教程

    简介 在前端开发中,我们经常需要用到一些常用的工具函数。而在实际项目开发时,写这些函数的过程往往会浪费很多时间,同时也会影响代码的可维护性和开发效率。这时我们可以使用 npm 包,方便地引用现有的工具...

    3 年前

相关推荐

    暂无文章