繁体   English   中英

JDeveloper 和国际化

[英]JDeveloper and Internationalization

我发现很难在一个简单的 web 应用程序中实现它。 我将 l10n.properties 文件放在根 WEB-INF 下,但我不明白如何阅读它们。 我使用了 PropertiesResourceBundle.getBundle(baseName, locale) 但我不明白我必须为 baseName 写什么。 我在一些线程上读到我必须将本地文件放在类路径中:对吗? 我在哪里可以在 JDeveloper 中设置类路径?

提前致谢

除非您需要在后端读取资源文件(这意味着不是直接在您的 web 前端),否则在任何情况下都不应使用ResourceBundle.getBundle()尤其是PropertiesResourceBundle.getBundle()的子类它。

根据应用程序的类型(无论是 JSP 还是 JSF),您访问资源的方式会有所不同。
在简单的 JSP 的情况下,您将使用JSTL和 fmt:message 标签来翻译 UI,就像这里和 StackOverflow 上的无数问题(只需使用屏幕右上角的搜索引擎)。
对于 JSF/Facelets,您需要在 faces-config.xml 中设置适当的变量,并且只需使用有效的表达式语言查询。 更多内容可以在这个优秀的教程中找到。

回到你原来的问题,你传递给ResourceBundle.getBundle()的基本名称(除非你真的知道你在做什么,否则一定不要使用子类)与你正在访问它的 class 的路径有关(这意味着它应该是相同的源目录)。 另一件事是在这里传递什么。 假设您的资源文件名类似于messages.properties、messages_de.properties、messages_es_MX.properties 等,您只需将“messages”作为baseName,因此相关调用看起来像ResourceBundle.getBundle("messages", theLocale); 其中 theLocale 是您的Locale object - 应该检测到这个(在 JSP 世界中它有点棘手,在 JSF/Facelets 中它就像Locale theLocale = FacesContext.getCurrentInstance().getViewRoot().getLocale();一样简单而已。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM