【问题标题】:Java and GNU gettext for internationalization用于国际化的 Java 和 GNU gettext
【发布时间】:2010-10-09 10:20:18
【问题描述】:

有没有人有使用 GNU gettext 开发大型 Java 应用程序以实现国际化的经验?我发现我真的很喜欢在我的源代码中包含英文文本,但我想确保我所做的对于我参与的相对较大的软件项目来说是实用的。

如果您有这方面的经验,您使用什么来查找 Java 中的资源?我目前正在试用 Gettext Commons (http://code.google.com/p/gettext-commons/),目前看来运行良好。

在您的源代码中保留原始文本的任何 gettext 替代方法? Windows 上支持的类似工具会很棒。

【问题讨论】:

    标签: java internationalization gettext


    【解决方案1】:

    JSOM 开源 OpenStreetMap Java 编辑器项目正在使用 Gettext 库来处理其所有翻译,并且由于人们能够使用各种翻译工具(如 KBabel、poedit、launchpad.. .) 使用 po 文件,因此那里没有平台限制。 此外,我不太明白为什么您认为上述设置不能在任何平台上使用 - 您当然可以在 Windows 中使用 gettext,请参阅:herehere

    鉴于 gettext 的受欢迎程度,我当然会推荐它。

    【讨论】:

    • 感谢您的回答。我在尝试让 Windows 版本的 gettext 正常工作时遇到了问题,但这些问题可能需要付出更多努力才能解决。我使用 Cygwin 在我的 Windows 桌面上运行 GNU 版本,效果很好。
    【解决方案2】:

    您可以改用plain old Java message resource bundles

    编辑:嗯,我们在开发团队中真正使用的是标准TMX format,它允许您在 XML 文件中指定本地化字符串。它是翻译工具常用的格式。 Here is a free one,让您更轻松地编辑这些文件。

    尽管如此,我之前没有提到它,因为它并没有提供任何优于消息资源包的真正优势或功能,除了借助 XML 处理工具更好的编码处理(在处理国际化文字时,编码可能是一个真正的痛苦用不同于英语的语言)。

    此外,我们真正使用的是我们的软件是我们自己的框架,它解析这种 XML 格式并让我们在语言之间切换(在 HTML 页面或 Swing 框架中),而无需重新启动我们的应用程序。开发一个以这种方式处理字面翻译的简单库并不难,但缺点是您必须实现它。

    【讨论】:

    • 我正在评估 Java 内置的 I18N 功能作为一个选项,但我想知道 gettext 是否是一个实用的替代方案,因为它确实有一些优点(例如处理复数,代码可读性) 在资源包上。
    猜你喜欢
    • 2011-10-07
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2012-08-12
    • 2010-09-11
    • 2011-08-04
    • 2013-08-18
    • 2013-06-16
    相关资源
    最近更新 更多