有人可以帮助我理解为什么使用 ResourceBundle
的国际化在 Google App Engine Servlet 中的工作方式与在命令行 Java 应用程序中的工作方式不同吗?
以下片段:
ResourceBundle resource_en_US, resource_de_DE, resource_ja_JP;
resource_en_US = ResourceBundle.getBundle(bundleBasename, Locale.US);
resource_de_DE = ResourceBundle.getBundle(bundleBasename, new Locale("de_DE"));
resource_ja_JP = ResourceBundle.getBundle(bundleBasename, new Locale("ja_JP"));
logger.info("resource_en_US:"+ resource_en_US.getLocale());
logger.info("resource_de_DE:"+ resource_de_DE.getLocale());
logger.info("resource_ja_JP:"+ resource_ja_JP.getLocale());
在 GAE 中仅记录 en_US
。
resource_en_US:en_US
resource_de_DE:en_US
resource_ja_JP:en_US
但在命令行 Java 程序中记录适当的语言环境。
resource_en_US:en_US
resource_de_DE:de_DE
resource_ja_JP:ja_JP
最佳答案
确保您的属性文件被复制到 WEB-INF/classes 中。您可以使用命令 shell 来检查这一点。
关于java - Google App Engine Servlet 中的 ResourceBundle 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10736571/