2012-05-31 69 views
3

我正在用Java編寫應用程序。此應用程序可以使用ResourceBundle s進行國際化。我想讓用戶選擇他想要的應用程序所具有的語言。還有一個問題:如何列出程序的可用語言?我不想使用Locale.getAvailableLocales(),因爲我不知道該應用是否具有所選語言的.properties文件。還有第二個問題:我可以添加在.jar文件外添加額外語言文件的功能嗎?最後一個問題:是否有更好的國際化解決方案?國際化 - 列出並添加語言

問候

+0

*「我想讓用戶選擇他想要的語言」*它由操作系統免費提供。 –

+0

不......我的意思是:「我想讓用戶選擇他想要的應用程序的語言」:) – m4tx

+0

只是一個簡單的問題:爲什麼你要強制用戶選擇他/她的語言而不是檢測Locale ?我真的不知道爲什麼這麼多人犯這個錯誤。 –

回答

2

你可以只保存在你的應用程序的一些常量支持的區域設置固定列表。如果您需要使此動態,我看到兩個解決方案:

  • 使用屬性文件列出支持的語言環境,並在啓動時從此屬性文件加載它們。
  • 遍歷可用的語言環境(或語言),嘗試加載相應的捆綁軟件屬性文件(使用Class.getResourceAsStream()),並且認爲如果您獲得InputStream,則支持該語言環境,如果您得到空值,則不支持。

除了jar之外,你可以通過在classpath中加入一些目錄來添加一個bundle。將屬性文件放在這個目錄中(尊重包層次結構),等等。