npm 包 tns-i18n 使用教程

在移动应用开发中,国际化是十分重要的一项工作。tns-i18n 是一个基于 Angular 的国际化解决方案,可以很好地支持多语言应用的开发。本文将为你详细介绍 tns-i18n 的使用方法和注意事项。

安装

首先,我们需要使用 npm 安装 tns-i18n 包。在终端中执行以下命令:

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

配置

  1. 在 app.module.ts 中导入三个模块:

    ------ - --------- ---------------- - ---- ----------------
    ------ - -------------------------- - ---- --------------------------------
    ------ - ------------- - ---- -------------------
    
  2. 在 imports 列表中加入这三个模块的引用:

    -----------
        -------- -
            ---------------------------
            ------------------------
            ---
        --
        ---
    --
    
  3. 把 TNSI18nModule 和 NativeScriptLocalizeModule 直接加到 imports 列表中。在 NO_ERRORS_SCHEMA 中加入 TNSI18nModule 所依赖的 module。

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

使用

  1. 定义消息(messages)和语言(locales)

    • 在项目根目录下创建 locales 子目录
    • 在 locales 目录下创建 messages.json 文件,并定义你的消息(key-value 键值对)
    • 在 locales 目录下创建类似 en-US,zh-CN 这样的文件夹,并在这些文件夹中创建 messages.json,分别定义这种语言下的消息
    • messages.json 中的键名就是我们使用时的字符串,值就是对应的本地化字符串
    • 例如 messages.json 中定义了 "hello": "你好",则我们在代码中使用 "hello" 就会得到 "你好" 这个字符串
    -
        -------- -----
        ------ ----
    -
    
  2. 使用翻译服务

    ------ - ---------- ------ - ---- ----------------
    ------ - ---------------- - ---- -------------------
    
    ------------
        --------- -------
        ------------ -----------------------
    --
    ------ ----- ------------- ---------- ------ -
        ------------
            ------- ---------- ----------------
        - - -
    
        ---------- -
            ---------------------------------------------
        -
    -
    
    • 使用 TranslateService 可以得到一个包含翻译方法的实例。它提供了一个“instant”方法来直接得到一个翻译后的字符串。
    • 使用 instant 方法,我们可以传入 messages.json 中的键值来得到本地化字符串。
    • instant 方法支持 node.js 风格的占位符,比如 ${variableName}
    • 例如:console.log(this.translate.instant("salary", {name: "小明", amount: 1000}));
  3. 当语言发生变化时更新 UI

    ------ - ---------- ------ - ---- ----------------
    ------ - ---------------- - ---- -------------------
    
    ------------
        --------- -------
        ------------ -----------------------
    --
    ------ ----- ------------- ---------- ------ -
        ------------
            ------- ---------- ----------------
        - -
            ---------------------------------------------- -- -
                ---------------------------------------------
            ---
        -
    
        ---------- -
            ---------------------------------------------
        -
    -
    
    • TranslateService 还提供了一个名为 onLangChange 的 Observable,它会在当前语言发生变化时触发。
    • 通过订阅 onLangChange,我们可以在语言发生变化时更新 UI。

意义与指导

tns-i18n 可以很好地方便我们进行多语言的开发。通过提供依赖注入机制、Observable 订阅等工具,还简化了我们在语言切换时需要更新的内容。因此,对于需要国际化的应用程序,使用 tns-i18n 非常友好。

完整的 TypeScript 示例代码:

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

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

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

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

快来使用 tns-i18n 吧!

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


猜你喜欢

  • npm 包 handbrake-bin 使用教程

    手动转换视频格式可以是一项繁琐而费时的任务,但是幸运的是,有开发者创建了基于 ffmpeg 的 npm 包,可以很方便地在命令行中转换视频格式。其中一款 npm 包就是 handbrake-bin,本...

    3 年前
  • npm 包 zinky-setupresponse 使用教程

    简介 zinky-setupresponse 是一个针对前端开发的 npm 包,旨在为开发者提供方便快捷的 mock 数据模拟。使用 zinky-setupresponse 可以让开发者轻松地模拟接口...

    3 年前
  • npm 包 atom-toolbox 使用教程

    什么是 atom-toolbox? atom-toolbox 是一个提供了多个实用工具的 npm 包,旨在提升 Atom 编辑器的开发效率。其中包含了多个插件及工具,比如对齐、复制行等,可以通过该 n...

    3 年前
  • npm 包 phonegap-plugin-barcodescanner-new 使用教程

    在前端开发中,我们经常需要使用二维码扫描的功能,而 phonegap-plugin-barcodescanner-new 是一个使用 PhoneGap 来扫描二维码的插件,本篇文章将为大家介绍该插件的...

    3 年前
  • npm 包 angular4-word-cloud 使用教程

    介绍 angular4-word-cloud 是一个适用于 Angular 4 及以上版本的 npm 包,它提供了一个简单易用的 API 来生成词云。使用这个库可以帮助我们更好地实现数据可视化,让数据...

    3 年前
  • npm 包 mailsac 使用教程

    介绍 mailsac 是一款基于 Node.js 开发的邮件服务商,旨在提供简易、快速且可靠的邮件收发服务。它通过 npm 包进行将自己的服务与 Node.js 程序联系在一起,提供邮件的发送和接收功...

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

    在前端开发中,Git 是我们常用的代码版本控制工具之一,许多项目需要通过 Git 进行代码管理和协作开发。但是对于一些 Git 的初学者,Git 的命令行操作不太容易掌握,因此需要一些简化 Git 操...

    3 年前
  • npm 包 express-req-tracker 使用教程

    介绍 express-req-tracker 是一个基于 Node.js 的 express 框架的中间件,用于记录请求处理的时间、请求方式、请求地址以及请求参数等信息,方便开发人员追踪分析大量的请求...

    3 年前
  • npm 包 azaleas 使用教程

    在前端开发中,有很多必备的工具和库。其中,npm 包是必不可少的一部分,它们可以帮助我们更方便、高效地完成开发任务。其中,azaleas 是一个非常实用的 npm 包,它提供了一组工具函数,能够帮助开...

    3 年前
  • npm 包 choo-websocket 使用教程

    什么是 choo-websocket? choo-websocket 是一个基于 Websocket 实现的客户端与服务器端通信解决方案,它通过 npm 包的形式提供给前端开发者使用。

    3 年前
  • npm 包 fot 使用教程

    什么是 npm? npm(全称:Node Package Manager)是 Node.js 的包管理工具,它可以帮助我们更方便地引入、安装、管理和分享 JavaScript 代码。

    3 年前
  • npm 包 electron-forge-template-3rt 使用教程

    前言 electron-forge-template-3rt 是一个基于 Electron 和 React 技术栈的项目模板。通过使用这个模板,开发者可以快速搭建一个 Electron 应用,并且可以...

    3 年前
  • npm 包 gulp-mockup 使用教程

    随着前端开发越来越火热,许多优秀的前端工具应运而生,以方便我们更加高效地进行开发。其中,gulp-mockup 就是一款非常优秀的工具,它可以帮助我们在前端开发过程中快速地生成模拟数据,从而提高我们的...

    3 年前
  • npm 包 ichimoku 使用教程

    介绍 Ichimoku 是一种用于技术分析的指标,旨在显示行情趋势、支撑和阻力水平,以及机会的买入和卖出信号。npm 包 ichimoku 是 JavaScript 实现的 ichimoku 技术指标...

    3 年前
  • npm 包 jsld 使用教程

    在前端开发中,我们经常需要处理日期、时间等数据类型。jsld(JavaScript Lightweight Date)是一个轻量级的 JavaScript 库,可以方便地处理日期、时间、时区等相关数据...

    3 年前
  • npm 包 left-padding 使用教程

    在日常前端开发中,经常需要对一些数字或字符串进行格式化处理。其中,左边的填充 0 是一个常见的需求,比如将 5 转化为 0005,或者将 1 转化为 0000000001。

    3 年前
  • npm 包 bitcore-polis 使用教程

    介绍 bitcore-polis 是一个基于 bitcore-lib 的 Polis 钱包工具包,可以用来生成 Polis 钱包地址、创建、签名和广播 Polis 交易以及使用 Polis 进行多重签...

    3 年前
  • npm 包 wx-voice 使用教程

    在前端开发过程中,我们经常需要使用语音合成及识别的功能。如果要自己从头写这些功能,不仅耗时费力,而且可能存在一些不可预测的问题。不过,幸运的是,现在有许多方便易用的第三方库可以帮助我们完成这些任务。

    3 年前
  • npm 包 btc-conv 使用教程

    简介 btc-conv 是一个用于将比特币(BTC)转换为各种国际货币的 npm 包。它支持多种货币转换,并且具有简单易用的 API。 安装 首先,你需要在本地安装 Node.js 和 npm。

    3 年前
  • npm包polis-util使用教程

    简介 polis-util是一个JavaScript工具库,可以在前端开发中方便地进行数据处理、字符串操作、日期处理等常用操作。本文将详细介绍如何使用polis-util来提高前端开发效率。

    3 年前

相关推荐

    暂无文章