Tag: resourcebundle

java.util.MissingResourceException:无法找到bundle java.util.PropertyResourceBundle,key的资源

我不知道最近发生了什么。 这是我的Titles_en_US.properties文件: WEBSITE.TITLE = Hello World FOOTER.DISCLAIMER = Disclaimer FOOTER.TERMS_OF_USE = Terms of Use FOOTER.PRIVACY_POLICY = Privacy Policy 这是我的方法: private String getTitle() throws Exception { System.out.println(“\n\n==>”+getProperty(“FOOTER.DISCLAIMER”,LabelsFile())); return getProperty(“WEBSITE.TITLE”, LabelsFile()); } FOOTER.DISCLAIMER和WEBSITE.TITLE位于相同的属性文件中,但其中一个正在运行,而另一个正在抛出以下错误: ==>Disclaimer Resources.ResourceBundle.java:getProperty() java.util.MissingResourceException: Can’t find resource for bundle java.util.PropertyResourceBundle, key WEBSITE.TITLE 请告诉我哪里弄错了? UPDATE 我注意到,当我提供换行时,它的工作正常。 无法理解为什么资源包不从第一行属性文件中读取?

Java加载资源Class.class.getResource vs .class.getResource

两者有什么区别 ? 我的资源文件打包在根级别包中。 并且调用Class.class.getResource(“/ rec.txt”)似乎适用于我测试的特定情况。 但是,当我尝试在更大的环境(hadoop)中使用此jar作为依赖时,这不起作用(返回null)。 但是,将“Class”更改为代码中的任何特定类修复它。 有人会抛出一些光。

在Java中动态更改ResourceBundle Locale

在加载ResourceBundle之后是否可以执行此操作? 我在Tomcat下工作并尝试了不同的代码示例,但它们都没有为我工作。 有什么建议吗?

如何清除ResourceBundle缓存

这是使用Guice在Tomcat上运行的webapp。 根据文档,我们应该能够调用ResourceBundle.clearCache(); 清除ResourceBundle缓存并可能从bundle属性文件中获取最新信息。 我们还尝试了以下方法: Class klass = ResourceBundle.getBundle(“my.bundle”).getClass().getSuperclass(); Field field = klass.getDeclaredField(“cacheList”); field.setAccessible(true); ConcurrentHashMap cache = (ConcurrentHashMap) field.get(null); cache.clear(); // If i debug here I can see the cache is now empty! 和 ResourceBundle.clearCache(this.class.getClassLoader()); 我期待的行为是: 启动tomcat并点击页面,然后显示“Hello World” 将包含“Hello World”的属性文件更改为“Goodbye Earth” 使用servlet清除缓存 点击页面,期待看到’Goodbye Earth’ 所以问题是,ResourceBundle.clearCache()实际上是如何工作的? 还有一些我们需要清除的通用文件缓存吗?

使用UTF-8的getBytes()不适用于大写德语变音符号

对于开发,我正在使用ResourceBundle直接从IDE中的resources-directory读取UTF-8编码的属性文件(我在Eclipse中的文件属性中设置该文件)(native2ascii用于生产的方式),例如: menu.file.open.label=&Öffnen… label.btn.add.name=&Hinzufügen label.btn.remove.name=&Löschen 由于这会在使用非ASCII字符时导致字符编码问题,我以为我会满意: ResourceBundle resourceBundle = ResourceBundle.getBundle(“messages”, Locale.getDefault()); String value = resourceBundle.getString(key); value = new String(value.getBytes(), “UTF-8”); 嗯,它确实适用于小写德语变音符号,但不适用于大写的变音符号, ß也不起作用。 这是使用getString(key)读取的值和使用new String(value.getBytes(), “UTF-8”)转换后的值: &Löschen => &Löschen &Hinzufügen => &Hinzufügen &Ã?ber => &??ber &SchlieÃ?en => &Schlie??en &Ã?ffnen… => &??ffnen… 最后三个应该是: &Ã?ber => &Über &SchlieÃ?en => &Schließen &Ã?ffnen… => &Öffnen… 我想我离真相不太远,但我在这里错过了什么? 谷歌发现了类似的东西 ,但仍然没有答案。 编辑:更多代码

是否有非开发人员(翻译人员)编辑资源包的工具?

我们在公司里做的是让外部翻译人员翻译我们的软件……好吧……如何把它… cvs co someModule ant translation.export(在这个目标后面有一个自制的ant任务,将所有资源包一起导出为一个大的tab-seperated文本文件,列:不同的语言,每行所有语言为一个键) 一些VB工具对文件做了一些事情(你不想知道) 翻译人员在他们的专栏中使用Excel 有人收集并合并翻译 VB工具 ant翻译。import cvs提交 …最佳案例:1到8之间的2周,开发继续…… 第一个问题:你如何处理这个问题? 我的想法是构建一个带有web-gui的工具,允许翻译人员直接在cvs模块上工作(在后台结账并提交“保存”,可能在后台标记)。 我们从学员的实施开始,得到了类似概念certificate的东西。 在我们继续开发之前,我想知道 第二个问题:你知道一个类似的工具吗? 和/或 第三个问题:你会使用这样的工具吗?

JSF国际化f:loadbundle或通过faces-config:性能点

有两种方法可以将属性文件加载到JSF 2.0中。 全局资源包全局加载属性文件,以便所有jsf页面都可以访问消息。 您可以创建“faces-config.xml”文件并显式声明属性文件。 faces-config.xml中 com.mkyong.messages msg 选项2:本地资源包在本地或仅为指定页面加载属性文件。 在需要访问messages.properties中的消息的页面中声明标记。 在这两个中哪一个给了我更好的表现? 假设我使用第一个选项,是否意味着在应用程序启动期间所有捆绑包都被加载或是否是延迟加载? (一经请求) 如果选择第二个选项,是否可能导致每个ViewRoot多次加载bundle? Java ResourceBundle是工厂类,它在servlet容器中提供单例对象吗? 我的意思是getBundle方法是工厂方法,它总是创建单独的对象? ResourceBundle myResources = ResourceBundle.getBundle(“MyResources”, currentLocale); 假设我有一个页面abc.xhtml,我使用的是f:loadBundle,有1000个用户访问此页面,这是否意味着会创建1000个resouceBundle对象? 或者它只是所有页面实例共享的对象?

在junit测试期间无法加载ResourceBundle

我正在尝试编写一些Junit测试来测试我们的应用程序中的旧类。 代码正在尝试加载ResourceBundle(用于翻译)但失败了。 我想问题是类路径相关但我无法弄明白。 代码在/ src中布局,我的测试在/ test中。 给定一个相对于/ src的基本名称的ResourceBundles,比如“foo / bar / baz”。 我的测试使用与app本身相同的类路径,所以我不明白它为什么找不到捆绑包。 什么错误的想法?

如何在使用ResourceBundle API获取的属性文件中转义花括号

在属性文件中,我有一个key=A: {{0}, {1}}, B: {{2}, {3}} 。 我期待一个字符串”A: {0, 1}, B: {1, 2}” 。 花括号内的数字正在解析。 如何在不绑定任何值的情况下包含字符“{”? 我也尝试通过逃避这个“// {”这个角色。 即使我无法得到预期的结果。 错误java.lang.IllegalArgumentException:无法解析参数编号0,1发生。

字符串常量与Java Web应用程序中的资源包

从过去的一年开始,我们开发了一个应用程序,我们使用静态字符串常量来存储常量。 像public static final String PAYMENT_CHEQUE =“check”; 我在哪里要求ie在jsp页面中以及Action类我将引用上面的字符串常量我在考虑资源包之后想到的属性文件,我的问题是 如果我使用属性文件与静态字符串常量相比,是否有任何性能损失? 哪个更好的静态字符串常量和属性文件键值对? 这是个好主意我们在jsp中使用静态字符串常量(For Labeling)吗? 请建议我