关于springcloud:SpringCloud整合Dubbo3实战高并发下的微服务架构设计内附ppt上山的阿科姿

105次阅读

共计 1916 个字符,预计需要花费 5 分钟才能阅读完成。

download:SpringCloud 整合 Dubbo3 实战高并发下的微服务架构设计内附 ppt 上山的阿科姿

国际化示例程序
如果您查看国际化的源代码,您会留神到硬编码的英文音讯已被删除。因为音讯不再是硬编码的,而且语言代码是在运行时指定的,所以同一个可执行文件能够在世界范畴内散发。本地化不须要从新编译。这个打算曾经国际化了。

您可能想晓得音讯文本产生了什么变动,或者语言和国家代码的含意。别放心,在示例程序一步步国际化的过程中,你会学到这些概念。

1。创立属性文件
属性存储无关程序或环境特色的信息。该文件是纯文本格式的。您简直能够应用任何文本编辑器来创立文件。

在示例中,属性文件存储了要显示的音讯的可翻译文本。在程序国际化之前,该文本的英文版本是硬编码的,并在 System.out.println 中申明。默认属性文件名为 MessagesBundle.properties,蕴含以下行:

问候 = 你好
辞别 = 再见
询问 = 你好吗?
当初,音讯位于属性文件中,它们能够被翻译成各种语言。不须要批改源代码。法语翻译人员创立了一个名为 Messages Bundle fr fr . properties 的名称,其中蕴含以下几行:

问候 = 你好。
再见。
询问 = 评论 allez-vous?
请留神,等号左边的值已被转换,但右边的键没有扭转。这些键不能被扭转,因为当程序取得翻译的文本时它们将被援用。

属性的名称很重要。例如,音讯 bundle fr fr.properties 文件蕴含 FR 语言代码和 FR 国家代码。创立广告代码时也会用到这些代码区域设置对象。

2。定义区域
的 Locale 对象标识特定的语言和国家。以下语句定义了语言为英语、国家为美国的区域设置:

aLocale = 新的区域设置 (” en “,” US “);
下一个示例创立一个对象,其中区域设置在加拿大和法国应用法语:

caLocale = 新的区域设置 (” fr “,” CA “);
frLocale = 新的区域设置(” fr “,” FR “);
该打算是灵便的。该程序不应用硬编码的语言和国家代码,而是在运行时从命令行获取它们:

String language = new String(args[0]);
String country = new String(args[1]);
currentLocale = 新的区域设置(语言,国家);
Locale 对象只是一个标识符。定义一个区域设置,而后将其传递给执行有用工作的其余对象,例如格式化日期和数字。这些对象是区域敏感的,因为它们的行为是基于区域的。ResourceBundle 是区域敏感对象的一个例子。

3。创立 ResourceBundle
ResourceBundle 对象蕴含特定于区域设置的对象。您应用 ResourceBundle 对象来隔离敏感数据,例如可翻译的文本。在示例程序中,ResourceBundle 由蕴含咱们想要显示的音讯文本的属性文件反对。

的 ResourceBundle 创立如下:

messages = resource bundle . get bundle(” messages bundle “,current locale);
参数被传递给 getBundle 办法,以确定将拜访哪个属性文件。第一个参数 MessagesBundle 指的是这组属性文件:

MessagesBundle_en_US . 属性
音讯绑定_fr_FR.properties
MessagesBundle_de_DE . 属性
的区域设置是 getBundle,它指定抉择了哪个 MessagesBundle 文件。什么时候。。。创立的区域设置时,语言代码和国家代码已传递给其构造函数。请留神,随后的语言和国家代码音讯是在属性文件的名称中。

当初你要做的就是从 ResourceBundle 开始。

4。从 ResourceBundle 获取文本
该文件蕴含键值对。包含程序将显示的翻译文本。能够从 ResourceBundle 和 getString 办法开始。例如,要检索由 greetings 键标识的音讯,能够如下调用 getString:

string msg 1 = messages . getstring(” greetings “);
示例程序应用关键字 greetings,因为它反映了音讯的内容,但它可能曾经应用了另一个字符串,如 s1 或 msg1。请记住,这个键是硬编码在程序中的,它必须存在于属性文件中。如果您的翻译器不小心批改了属性文件中的键,getString 将找不到该音讯。

论断
仅仅 … 如你所见,将程序国际化并不难。它须要一些打算和一些额定的编码,但益处是微小的。为了让您对国际化过程有一个大抵的理解,本课中的示例程序通过了无意的简化。在浏览前面的课程时,你会理解到 Java 编程语言更高级的国际化性能。

正文完
 0