在Java源代码中国际化消息

介绍

必威国际有限公司詹金斯使用定位器库和Maven插件实现国际化。

它的目的是生成对应于Java组的类. properties在构建过程中使本地化文本在代码中可用的文件。

在Je必威国际有限公司nkins中,Localizer被配置为操作名为Messages.properties(和Messages_XX.properties对于本地化的变体)。在Jenkins核心和插件的构建过程中,生成必威国际有限公司消息每组的班级Messages.properties文件。

例子

例如,考虑以下资源文件:

src / main /资源/ org/example/package/Messages.properties

的例子。Description =本地化的一个简单示例

src / main /资源/ org/example/package/Messages_de.properties

的例子。描述= einfaches Beispiel f\u00fcr Lokalisierung

第一个文件是默认的本地化关键描述(除非有更具体的本地化可用),而第二个文件提供德语本地化。

本地化器将从这些资源文件中生成一个类似如下的类:

org.example.package公共消息私人最后静态ResourceBundleHolder holder = ResourceBundleHolder.get(Messages.class);(1)公共静态字符串Example_Description () {(2)返回holder.format (的例子。描述);}公共静态可以定位的_Example_Description () {(3)返回可以定位的(持有人,的例子。描述);}}
1 ResourceBundleHolder内部实用程序类是否包装对本地化的访问. properties文件
2 的方法返回本地化的字符串的例子。描述属性文件条目
3. 生成的方法返回可以定位的实例的例子。描述属性文件条目

生成的方法名对应于属性文件中的键(但由于Java标识符的限制,不完全匹配)。资源文件中的每个键将导致生成一对方法:一个返回字符串,另一个回来了可以定位的可以定位的是Localizer库提供的一种类型,它允许将消息本地化到特定的区域设置。然而,这很少是需要的,作为一个调用Messages.Example_Description ()将返回当前区域设置的本地化消息。

带有参数的本地化消息

如果Messages.properties引用占位符,则静态方法将带有参数生成。参见下面的示例Messages.properties摘录,并从中生成一个静态方法。

Messages.properties内容:

ItemGroupMixIn.may_not_copy_as_it_contains_secrets_and_=May not copy {0} as it contains secrets and {1} has {2}/{3} but not /{4}

生成的源代码:

公共静态字符串ItemGroupMixIn_may_not_copy_as_it_contains_secrets_and_ (对象arg0,对象__arg1、对象最长,对象长度,对象arg4) {返回holder.format (ItemGroupMixIn.may_not_copy_as_it_contains_secrets_and_arg0, arg1, arg2, arg3, arg4);}

有关参数在本地化消息中的更高级用法,请参见先进的定位

参考文献