国际化

Reactive Form 提供了国际化支持,本章着重介绍如何配置默认表单引擎的国际化语言。

切换语言

Reactive 核心及内置的表单引擎共享一个全局的国际化实例,该实例已经提供了中文及英文两种语言模板, 可在 Reactive 对象实例化之前进行切换。在下例中,我们将语言模板切换为中文。

定义语言模板

国际化实例接受语言模板的定义和覆盖,我们可以使用 i18n#define() 方法单独或批量定义语言模板。在定义语言模板时,如果模板路径已存在,该路径对应的语言模板会被覆盖, 但该路径下的子路径中已定义的语言模板不会被覆盖。

i18n#define() 方法除了可以用来定义语言模板,还可以用来查看国际化实例中已定义的语言模板,当不给予任何参数调用该方法时, 该方法会返回实例中所有的语言模板定义。

关于语言模板的定义和查看,具体请参考下面的示例。

获取语言模板

在国际化实例中定义的语言模板可通过 i18n#translate() 方法按照模板路径获取,模板中的变量可被替换。在获取语言模板时, 模板路径无需包含定义时的顶级路径,这是因为顶级路径是区分语言的标识,会根据国际化实例当前目标语言自动拼接。 具体请看下面的示例。

小结

  • i18n#define() 方法用于定义语言模板。
  • i18n#translate() 方法用于按路径获取语言模板,调用时模板路径不包含顶级路径。
  • i18n#define() 方法不传入任何参数调用时,返回实例中所有语言模板定义构成的对象。