我打算國際化我用Java編寫的程序。 我希望安裝我的程序的過程中會有顯示的一些問題,如:如何在Java中國際化應用程序?
- 在哪個國家你是
- 哪種語言,你preffer(這裏應該建議lanuage(個),所選國家
- 其它必要的問題
粥那個節目將放入內存中的所有必要信息:
- 貨幣使用dispalying
- 其他必要的(標準)信息
的
已經爲其他程序執行此項工作的某人的貢獻將受到高度讚賞。
我打算國際化我用Java編寫的程序。 我希望安裝我的程序的過程中會有顯示的一些問題,如:如何在Java中國際化應用程序?
粥那個節目將放入內存中的所有必要信息:
的
已經爲其他程序執行此項工作的某人的貢獻將受到高度讚賞。
java中最常用的方法是使用ResourceBundle。
您可以爲每種語言創建一個屬性文件,並在其中放置應用程序的所有文本。使用正確的名稱創建新文件是添加新語言的難點。
所以要編輯這些文件,只需使用任何文本編輯器即可。
在Java中,您通常可以通過撥打Locale.getLocale()
獲取語言和國家信息。這是用戶的系統(或帳戶)配置的內容。然後,您不必在設置中詢問,或者至少可以爲您的用戶提供良好的默認選擇。
許多語言環境中的「常用數字格式」(包括貨幣換算)等大多數信息已包含在Java運行時中,並且可以使用不同的API,如NumberFormat,DateFormat,PrintWriter,Formatter,Collator等。查看use page for class Locale
以瞭解已經存在的內容(以及您自己還需要做的)。
我假設你的意思是桌面應用程序(因爲安裝程序)。在這種情況下,通過閱讀this鏈接開始思考i18n。
至於你寫的是什麼,向用戶詢問他在哪裏是沒有意義的。你也不需要在內存中存儲任何東西。只需使用當前的區域設置,它通過可檢測:
Locale currentLocale = Locale.getDefault();
當你有這樣的對象,就可以輕鬆格式的日期,時間,貨幣和數字採用適當的格式類:
DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.getDefault());
DateFormat dateTimeFormatter = DateFormat.getDateTimeInstance(
DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.getDefault());
Date now = new Date();
String formattedDate = dateFormatter.format(now);
String formattedDateAndTime = dateTimeFormatter.format(now);
等,只需閱讀鏈接。您可能還需要支持區域感知排序(通過所謂的Collator)和字符串國際化(通過Augusto提到的ResourceBundle)。你也需要學習MessageFormat來格式化複合字符串(而不是僅僅連接它們)。
這還不是全部,i18n實際上是一個巨大的話題,但這將是一個好的開始。
問題是? –
不錯的問題描述。你的問題是什麼? –
這種語言可能是好的開始,所以你可以問你在哪個國家使用該語言。 –