当大型网站开拓不同国家不同语言的网点时,页面交互也需要适配当地语言,不同语言文案的管理就是其中一个跨不过去的问题。
本文以Java SpringBoot服务为例,Spring中提供了一个MessageSource接口,用于适配不同国家语言的文案展示。
我们可以先定义一个MessageSource的Bean实现
@Configuration
public class AppConfig {
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasenames(
"classpath:i18n/messages"
);
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
}
其中申明了MessageSource引入的资源路径。
同时,在resources目录下配置文案资源如下:
资源命名需遵循以下格式:
basename_customlanguage_CUSTOMCOUNTRY.properties
其中,customlanguage是必填项,小写,CUSTOMCOUNTRY为选填项,大写。
文案资源文件的内容为key=value的格式
上述准备工作完成后,就可以在具体场景中调用了。
调用时指定key名和Locale参数,匹配具体的语言国家。
通过在不同文案资源文件中配置相同的key,不同的value。然后在服务的配置文件中设定语言国家选项,代码运行时读取配置项,就可以实现根据语言国家设置返回不同的当地翻译文案了。