基于Java的i18n / L10n

时间:2011-02-01 09:56:35

标签: java internationalization

我看到国际化在经典的ASP购物车中实现为最庞大的(int,String)键值对的单片词典,其中调用代码将字典传递给整数字典要返回哪个字符串(带有所需语言ID的二进制或“)”,每个唯一int的值是“国际化”字符串。

这似乎是实施i18n的一种非常非常非常可怕的方式。

我正处于基于Java的Swing应用程序的“预设计”(如果存在这样的事情)阶段,我希望将其国际化。不是说我说英语以外的任何东西(哈!)但是将来扩展到其他语言而不必重构20,000个字符串会很好。

所以,这引出了一个问题:围绕基于Java的i18n(以及L10n)的最佳实践是什么?什么样的类和&使用结构?显然,如果这个作为一个大的 com.myproject.i18n 包并且“Internationalizer”类作为我的其余代码的公共网关,我希望这是一个单例类,是的?

这里只是要求一些考虑周到的食物,非常感谢正确方向的任何推动: - )

4 个答案:

答案 0 :(得分:4)

这个想法是解决属性文件。它们易于使用,您可以轻松扩展此系统。

你可以找到一个很好的答案here。 Netbeans还有一个很好的样本tutorial

在您的语言正确后,您需要software来切换区域设置,本地化日期和金额等.Kin Toedter的工具非常可靠。您可以将这些bean添加到IDE中,然后将它们拖放到JPanels中。

答案 1 :(得分:2)

您可以创建属性文件并将其插入iL10Nz

为了避免上下文问题,最好为逐渐创建的每个字符串设置一个scrrenshot。这将取消您将翻译成的语言

检查http://www.myl10n.net

答案 2 :(得分:1)

您可以查看Gettext Commons。它是gettext中的i18n - 用于Java的方式。它有Maven插件,用于生成,更新和编译PO文件。个人使用一段时间后发现使用标准的Res​​ourceBundles更容易。

答案 3 :(得分:0)

我使用netbeans开发基于Swing Application Framework [SAF]的GUI应用程序

您可以获得强大的工具,以便在Netbeans IDE上实现Project的国际化。

看看这篇文章:Internationalizing a GUI Form