2011年10月19日 星期三

Java 的多國語言:在 ResourceBundle 中使用絕對路徑

原本 ResourceBundle 是依照 package name 來做相對路徑的
不過在我們的專案中,因為 NAND 容量不夠,必須把資源檔放在別的地方
所以只能以絕對路徑去指定它的位置。


參考資料:Using absolute path bundle file

String resourcePath = "/home/username/";
String resourceFileName = "language";
Locale currentLocale = Locale.getDefault();
File resourceFile = new File(resourcePath);
URL resourceUrl = resourceFile .toURI().toURL();
URL[] urls = {resourceUrl };  
ClassLoader loader = new URLClassLoader(urls);  
ResourceBundle bundle = ResourceBundle.getBundle(resourceFileName, currentLocale, loader);  

以上面的例子,ResourceBundle 就會去抓 /home/username/language.properties 跟它的其他語系檔了
例如如果是英語就會抓 /home/username/language_en_US.properties。

沒有留言: