【发布时间】:2011-07-23 22:36:26
【问题描述】:
我是 Python Django 开发者
我想尝试一下Java。
在 django 中,我曾经按如下方式进行翻译:
from django.utils.translation import ugettext_lazy as _
然后如果在 locale/en/django.po 文件中的 .po 文件中指定了翻译
_("hello world")
问题1:Java中是否有类似的东西?
我找到了那些:
但没有一个是我要找的
我按照例子做了
import java.util.ResourceBundle;
import java.util.MissingResourceException;
public class i18n {
private static ResourceBundle myResources = ResourceBundle.getBundle("messages");
public static String _ (String originalStr) {
try {
return myResources.getString(originalStr);
} catch (MissingResourceException e) {
return originalStr;
}
}
}
后来
import static i18n._;
问题 2:但是messages.properties 文件应该放在哪里?
- 我想为这些文件创建一个单独的语言环境目录。
-
整个包和子包的翻译
- locale/messages_en_US.properties
- locale/messages_en_UK.properties
- locale/messages_en_AU.properties
- 等等……
问题3:这部分有异常捕获好像不行,你知道为什么吗?
问题 4:i18n 是否有 JavaEE 标准?
本以为java EE应该有标准化的app目录布局,i18和war目录内容,但是玩了几天java觉得很乱。因此,我能够在 Internet 上找到的每个示例开源代码都是完全不同的。从 Google Wave 协议项目开始,到示例小应用程序结束。
问题 5:是否有 JavaEE 编码理念或最佳实践?
我找到了Strategy for Web Applications,但开发人员似乎并不关心它。测试安置,同样的事情。每个人在不同的地方都有它们。模板中的 sql 查询之类的逻辑,WTF...
【问题讨论】:
-
有没有办法根据源代码自动生成 .properties 文件? gted.org/gettext_java_tutorial.htm 之类的东西(gettext 或 ResourceBundle)是行业标准的?
标签: java internationalization jakarta-ee enterprise directory-structure