tns-i18n
by burawi | v0.0.10
NativeScript 国际化模块
npm i --save tns-i18n

tns-i18n

这是一个实现国际化简单的 Nativescript 插件。

它将 _L 函数添加到全局变量和 XML 文件中,您可以在应用程序的任何位置使用它。

它受到 nativescript-i18n 的启发,它们之间的唯一区别是,使用此插件 您不需要每次更改后重新构建应用程序,因此您可以继续平滑地观看应用程序。

该模块检测首选用户语言,并在应用程序处理该语言的情况下显示该语言中的文本,如果没有处理,它将加载您选择的默认语言的文本。

喜欢视频吗?

这是一个关于此插件的简短 视频教程

安装

tns plugin add tns-i18n

用法

导入

app.js 中导入模块,在其他任何内容之前

您必须提及默认语言代码

require('tns-i18n')('en'); // We set 'en' as default language
var application = require("application");

application.start({ moduleName: "./home" });

创建区域设置

现在,在 app 文件夹中创建一个 i18n 文件夹。

app
|___ i18n
|___ en.js
|___ ar.js
.
.
.
.
.
.

必须导出在文件中

包含字符串的文件必须导出一个字符串的对象。

例如:en.js

module.exports = {
greetings: 'Hello %s',
bye: 'Nice to meet you %s, see you in %s days'
};

加载字符串

XML

在 XML 文件中

<Label text="{{_L('greetings')}}"></Label>

JS

_L("greetings")

替换

该模块支持替换 %s

例如

<Label text="{{_L('greetings', 'My friend')}}"></Label>
<!-- Will give: Hello My friend -->

多替换

对于多替换,您可以使用数组,分隔参数或两者都使用。

例如

<Label text="{{_L('bye', 'My friend', '5')}}"></Label>
<!-- Will give: Nice to meet you My friend, see you in 5 days -->

或者

<Label text="{{_L('bye', ['My friend', '5'])}}"></Label>
<!-- Will give: Nice to meet you My friend, see you in 5 days -->