国际化支持
框架对国际化支持主要通过i18n模块对文本消息进行动态转换,只需要两步就可以实现多语言支持。
#
i18n资源定义- i18n资源文件命名
i18n资源文件名必须严格按要求定义,由2部分组成,第一部分为资源名称,默认为i18n,可以通过配置修改,通常默认即可,不建议修改。 第二部分为语言代码,为浏览器支持的国际语言编码,例如en_US,zh_CN等。完整文件名看起来像下面这样:
- i18n_en_US.properties
- i18n_zh_CN.properties
- 词典定义
在资源文件中按key=value的键值对方式定义语言词典,例如:
i18n_en_US.properties
上面是英文版本,下面是中文版本
i18n_zh_CN.properties
还可以再添加其他语言版本,只需要另外建立一个后缀名和语言代码对应的资源文件即可。
- 状态消息
本框架对状态消息有统一管理要求,状态消息包括正常提示、警告或错误消息等,每个消息都需要有消息编码和http状态码。 默认以status.yml文件名进行存储,每个应用还可以自定义扩展状态消息,以应用名加status后缀命名,例如:Main-status.yml。 这类状态消息默认以英文存储,然后通过上面的资源文件支持多语言转换。此类状态消息在资源文件中的键名需要加上status前缀,例如:
Main-status.yml
上面是状态消息,里面包含有成功提示和错误消息,需要通过下面的方式实现多语言支持:
i18n_en_US.properties
i18n_zh_CN.properties
#
开启i18n支持开启国际化支持很简单,只需要加载i18nServerModule模块即可,见下面实例:
#
i18n应用实例上面讲解了分2步实现国际化支持,具体实例可以参考examples下的i18n演示项目,针对系统内部、json/xml输出、模版文件输出等各类场景进行了多语言支持的演示。 需要提示的是,在请求的时候系统会自动识别浏览器的语言来切换初始语言,后续切换语言需要在url后面带入参数,例如:?_locale=zh_CN,?_locale=en_US,每次切换会自动记忆当前语言,如果需要再此切换可以再次带入参数。
更多i18n国际化支持的设定和应用文档将在后续不断完善,重点内容将以专题形式提供。