【问题标题】:Java-based i18n/L10n [closed]基于 Java 的 i18n/L10n [关闭]
【发布时间】:2011-02-01 09:56:35
【问题描述】:

我已经看到在经典 ASP 购物车中实现的国际化是一个最大规模(int,String)键值对的整体字典,其中调用代码向字典传递一个整数,表示要返回哪个字符串(与所需语言 id 进行二进制或运算),每个唯一 int 的值是“国际化”字符串。

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

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

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

这里只是请求一些思考的食物,非常感谢任何朝着正确方向的轻推:-)

【问题讨论】:

    标签: java internationalization


    【解决方案1】:

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

    你可以找到一个很好的答案here。 Netbeans 也有一个很好的示例tutorial

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

    【讨论】:

      【解决方案2】:

      您可以创建您的属性文件并将它们插入iL10Nz

      为了避免上下文问题,最好为您逐步创建的每个字符串提供一个 scrrenshot。这将为您翻译成的语言带来回报

      查看http://www.myl10n.net

      【讨论】:

        【解决方案3】:

        你可以看看Gettext Commons。它是 gettext-way 中的 i18n,用于 Java。它具有用于生成、更新和编译 PO 文件的 Maven 插件。个人使用一段时间后发现使用标准 ResourceBundles 更容易。

        【讨论】:

          【解决方案4】:

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

          您可以获得用于在 Netbeans IDE 上国际化 Project 的强大工具。

          看这篇文章:Internationalizing a GUI Form

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-05-31
            • 2016-01-06
            • 2011-07-24
            • 2010-09-28
            • 2011-07-29
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多