Voyager 支持根据不同的设置或用户习惯在页面上显示不同的语言,配置非常简单。
语言配置文件放在 resources 文件下的languages
文件夹下,没有自行创建即可。然后在languages
文件夹下创建两个语言文件夹,如chinese
和english
。语言配置文件保存在相应的语言文件夹下,扩展名为.lang
,一般一个模块创建一个语言文件即可。可以创建多层文件夹,比如父级模块、子模块等,一般对于中小型项目,一层目录足够用了。创建好的文件目录结构如下:
语言文件的名称可根据模块的名称设置,建议是英文单词,多个单词之间使用中线-
隔开,如job-task
。不同语言文件夹下的语言文件名必须一一对应,否则切换语言时找不到相应的配置。
语言文件使用 properties 文件相同的设置规则,即标签名=语言文字
。
在 chinese 文件夹下的carton.lang
文件中输入
在 english 文件夹下的carton.lang
文件中输入
标签名可以由英文字母、数字和中线-
组成,多个单词之间可以由-
分隔,一定不能包含等号=
和小数点.
。等号左侧标签名不能有空格,但是右侧语言文字可以有空格。
语言标签及对应的语言文字设置好之后,可以在页面上引用,格式为# 语言标签 #
,中间的空格可有可无。示例如下:
如果当前语言是中文,则执行结果为
语言标签可以使用在页面的任何地方,包括 PQL 语句中的字符串常量。例如
当一个页面要使用非常多语言标签时,如果每个占位符都输入模块名会非常麻烦,可以通过include
语法引入整个模块,引入之后可省略模块名。
支持同时引入多个语言模块,模块名之间使用逗号,
隔开,但如果不同的模块之间有相同名称的语言标签,会使用先引用的模块中的语言标签。未引入语言模块的标签依然可以通过原来的点规则引用。
可以在配置文件中设置默认语言,详见 Voyager 设置中的voyager.language
项。
一般情况下需要根据用户的操作系统语言或用户自行更改界面语言,Voyager 可以将用户设置保存在 Cookie 中,并会优先调取 Cookie 中的值,Cookie 名称为 language
。即要切换语言,更新language
的值即可。
参考链接