什么网站可以做长图,中国网站为什么要备案,北京seo网络优化招聘网,杭州网站建设制作公司什么是国际化#xff1f;
国际化也称作i18n#xff0c;其来源是英文单词 internationalization的首末字符和n#xff0c;18为中间的字符数。由于软件发行可能面向多个国家#xff0c;对于不同国家的用户#xff0c;软件显示不同语言的过程就是国际化。通常来讲#xff0…什么是国际化
国际化也称作i18n其来源是英文单词 internationalization的首末字符和n18为中间的字符数。由于软件发行可能面向多个国家对于不同国家的用户软件显示不同语言的过程就是国际化。通常来讲软件中的国际化是通过配置文件来实现的假设要支撑两种语言那么就需要两个版本的配置文件。
Java国际化
(1)Java自身是支持国际化的java.util.Locale用于指定当前用户所属的语言环境等信息javautil.ResourceBundle用于查找绑定对应的资源文件。Locale包含了language信息和countrv信息Locale创建默认locale对象时使用的静态方法 //This method must be called only for creating the Locale.* //constants due to making shortcuts. private static Locale createConstant(string lang, string country) { BaseLocale base BaseLocale.createInstance(langcountry); return getInstance(basenu11); } (2)配置文件命名规则:basename language country.properties 必须遵循以上的命名规则iava才会识别。其中basename是必须的语言和国家是可选的。这里存在一个优先级概念如果同时提供了messages.properties和messages zh_CN.propertes两个配置文件如果提供的locale符合en_CN那么优先查找messages en CN.propertes配置文件如果没查找到再查找messages.pronerties配置文件。最后提示下所有的配置文件必须放在classpath中一般放在resources目录下。
演示Java国际化 第一步创建子模块spring6-i18n引入spring依赖 第二步在resource目录下创建两个配置文件: messages_zh_CN.properties和messages_en_GB.properties testGB test
testChina test
第三步测试
public class ResourceI18n {public static void main(String[] args) {ResourceBundle bundle1 ResourceBundle.getBundle(messages, new Locale(zh, CN));String value1 bundle1.getString(test);System.out.println(value1);ResourceBundle bundle2 ResourceBundle.getBundle(messages,new Locale(en,GB));String value2 bundle2.getString(test);System.out.println(value2);}
}
MessageSource接口 spring中国际化是通过MessageSource这个接口来支持的
常见实现类 ResourceBundleMessageSource 这个是基于Java的ResourceBundle基础类实现允许仅通过资源名加载国际化资源
ReloadableResourceBundleMessageSource
这个功能和第一个类的功能类似多了定时刷新功能允许在不重启系统的情况下更新资源的信息
StaticMessageSourcek 它允许通过编程的方式提供国际化信息一会我们可以通过这个来实现db中存储国际化信息的功能 使用Spring6国际化 第一步创建资源文件 国际化文件命名格式:基本名称_语言_国家.properties
{0},{1}这样内容就是动态参数
创建yogurt_en_GB.properties
www.yogurt.comwelcome {0},时间:{1}
创建yogurt_zh_CN.properties
www.yogurt.com欢迎{0},时间:{1}
创建bean文件
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdbean idmessageSource classorg.springframework.context.support.ReloadableResourceBundleMessageSourceproperty namebasenameslistvalueyogurt/value/list/propertyproperty namedefaultEncodingvalueutf-8/value/property/bean/beans
第二步测试
public class ResourceI18n {public static void main(String[] args) {ApplicationContext context new ClassPathXmlApplicationContext(bean.xml);Object[] objs {yogurt, new Date().toString()};String value context.getMessage(www.yogurt.com, objs, Locale.CHINA);System.out.println(value);}
}