npm 包 ember-i18n-macros 使用教程

阅读时长 5 分钟读完

简介

ember-i18n-macros 是一个用于 Ember.js 应用的国际化库,它提供了一系列的工具,让我们在编写 Ember 应用的时候非常容易地做国际化。

常规的国际化方案通常是将不同语言的字符串保存在不同的 JSON 文件中,但是使用 ember-i18n-macros 可以让我们直接使用字符串模板的方式进行国际化,让国际化变得更加简单。

安装

安装最新版本的 ember-i18n-macros 非常简单,只需要通过 npm 来安装即可。

使用

使用 ember-i18n-macros 进行国际化主要有两步:

  1. 定义国际化模板
  2. 使用模板

这里我们假设我们需要使用 ember-i18n-macros 对一个按钮的文字进行国际化。

定义国际化模板

在定义国际化模板之前,我们需要先在应用中使用 ember-i18n-macros。

在 app.js 中,我们可以这样定义:

这样,我们就可以通过 myI18n 来定义国际化模板了。

对于一个按钮的文字,我们可以定义如下模板:

这个模板通过键 "buttonText" 来标识,之后是一个对象,对象的每个属性就是一个语言代码和对应的文本。

使用模板

定义好国际化模板之后,就可以在按钮上使用它了。

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

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

在这个组件中,我们通过 computed 属性来计算按钮的文字,然后返回 myI18n('buttonText') 的调用结果即可。

处理变量

除了简单的文本之外,一些国际化模板中包含复杂的语句,这时候我们就需要处理一些变量。

例如,我们可能需要对一个订单的状态进行国际化,并加上对应的图标:

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

-- ---

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

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

-- ---

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

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

在这个例子中,我们在国际化模板中使用了两个变量:一个是图标,另一个是订单状态。

我们通过定义 orderIcon 来获取一个与订单状态对应的图标,并在 orderState 函数中将这个图标作为变量传入到国际化模板中。

整个过程就是这样,除了国际化模板的定义方式,其他方面基本与一般的 Ember.js 开发差不多,所以相对来说比较容易上手。

总结

这篇文章主要介绍了如何使用 npm 包 ember-i18n-macros 进行 Ember.js 应用的国际化,其中介绍了如何定义国际化模板、如何处理变量等等,希望能够对大家有所帮助,同时也希望大家能够多多尝试,发掘其更多的潜力。

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

纠错
反馈