gpt4 book ai didi

java - 避免 .properties 文件 GNU Gettext java

转载 作者:搜寻专家 更新时间:2023-11-01 02:26:38 25 4
gpt4 key购买 nike

首先,我的问题与那两个类似:

JAVA gettext commons

error reading .po file in java

  • 我想使用 GNU Gettext 实用程序来国际化我的应用程序。我设法通过使用正确的键值对创建 translations.properties 文件来让它工作,但它不会得到我的 translations_fr_CA.properties 即使我明确地将语言环境设置为fr_CA 或 Locale.CANADA_FRENCH。这是我的第一期。

  • 第二个也是最重要的问题:我无法摆脱 .properties 文件,它是垃圾,因为我不能使用漂亮的 gettext complete msgid。我设法使用 msgfmt --java2 [...] 将我的 .po 文件编译为 .class,但是如果没有 .properties 文件,ResourceBundle 将无法加载。

这是我当前测试项目的压缩文件:java_gettext_testing.zip

我在 zip 中包含了 gnu.gettext.GettextResource 以使其更简单。您可以使用 javac test/*.java 进行编译并使用 java test.test

运行

感谢您的帮助!

最佳答案

我终于明白了。我不知道为什么,但我不能在不将它们放入包中的情况下使用 .class 文件。我修改了我的结构,最后我可以用

编译我的 .po 文件
msgfmt --java2 -d . -r test.translations translations.po

这会将 ./translations.po 文件编译为 test/translations.class,并为其提供适当的包信息。

现在我可以做到了

ResourceBundle myRes = ResourceBundle.getBundle("test.translations"); // load my test/translations.class file

GettextResource.gettext(myRes, "message id to translate");

仍然需要让语言环境正常工作,但我现在已经掌握了基本要素。

编辑 这个问题帮助我理解了 msgfmt 正在将 .po 文件编译成“真正的”Java 对象 How to use ResourceBundle

关于java - 避免 .properties 文件 GNU Gettext java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21188667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com