【发布时间】:2017-05-27 10:16:47
【问题描述】:
我遇到了一个问题。可以使用 ResourceBundle 从属性或文本文件中读取键和值,但我有一些 i18n 网页内容存储在属性/文本文件中。
我想在访问网站各个页面时显示相关的语言内容。 Java ResourceBundle 中是否有任何选项可以显示整个文件内容而不是显示键和值?
请指教
【问题讨论】:
标签: java utf-8 internationalization resourcebundle
我遇到了一个问题。可以使用 ResourceBundle 从属性或文本文件中读取键和值,但我有一些 i18n 网页内容存储在属性/文本文件中。
我想在访问网站各个页面时显示相关的语言内容。 Java ResourceBundle 中是否有任何选项可以显示整个文件内容而不是显示键和值?
请指教
【问题讨论】:
标签: java utf-8 internationalization resourcebundle
ResourceBundle 并非真正用于此目的。下面是一种使用 apache commons-io 库的简单方法。如果您更喜欢纯 Java 方法,可以使用 Scanner 等。
import static java.nio.charset.StandardCharsets.UTF_8;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
public class DummyJunk {
public static void main(String[] args) {
try{
String s = FileUtils.readFileToString(new File("/path/to/file"), UTF_8);
System.out.println(s);
}catch(IOException e ){
e.printStackTrace();
}
}
}
【讨论】:
Disclaimer_en_US、Disclaimer_fa_IR 和 Disclaimer_ar_AE,那么当我们必须检测浏览器语言时,我必须添加额外的代码来说明应该显示哪个文件并且更复杂。
I would instead suggest maintaining all these disclaimers as individual files and maintain a mapping of locale to file name in a properties file which will be read using ResourceBundle.