我在表格中擁有所有的資源捆綁值,並按照要求進行了格式設置。我必須根據用戶選擇在頁面頂部的下拉菜單中更改網站中的語言。如果我使用語言代碼作爲en_US,那麼它的工作正常。如果我使用en-Us作爲語言代碼,那麼它不起作用。可能是什麼問題。遵循什麼是正確的?爲en-US和en_US創建語言環境有什麼區別?
22
A
回答
17
「en」是由ISO 639指定的語言代碼,而美國是3166
在Java中指定的國家代碼,Locale對象識別語言languageCode_countryCode(如EN_US),而不是爲languageCode- countryCode。
21
「en-US」是一個IETF language tag。雖然Java'a Locale類明顯基於IETF語言標記,但在將語言代碼與國家代碼(以及變體)分開時,它使用下劃線代替連字符,因此在等效的Locale
上調用toString()
會給您en_US
。
從Java 7開始,您可以使用Locale.forLanguageTag(String)
和toLanguageTag()
在語言標記和Locale
對象之間進行轉換。
將字符串轉換爲Locale
對象時,通過分割連字符和下劃線上的組件,降低第一個組件(語言代碼)和上方第二個組件(國家代碼)來標準化是一個好主意。
6
或者你可以使用 Locale us = Locale.forLanguageTag("en-US")
和us.toLanguageTag()
,這將爲你做轉換,而不必創建你自己的容易出錯的實現。
1
從Java8開始, 應使用語言標記「en-US」來完成區域設置的初始化。Locale.forLanguageTag(「en-US」)。toString();返回輸出:en_US
Locale.forLanguageTag(「en_US」)不會創建所需的語言環境。它將默認爲系統區域設置。 Locale.forLanguageTag(「en_US」)。toString()返回null
相關問題
- 1. 自然語言和編程語言在語法環境中有什麼區別?
- 2. Java:sv和sv_SE語言環境有什麼區別?
- 3. Postgres上的C和Posix語言環境有什麼區別?
- 4. 爲.NET構建靜態和動態語言有什麼區別?
- 5. 編程語言和腳本語言有什麼區別?
- 6. fb like button顯示allways作爲語言環境en_US
- 7. 創建和新建有什麼區別?
- 8. 爲什麼沒有語言'en_US'的翻譯?
- 9. 在JavaScript中斷言庫,測試框架和測試環境有什麼區別?
- 10. 有關Windows的系統和環境變量有什麼區別?
- 11. Codeigniter系統/語言應用程序/語言有什麼區別?
- 12. 爲什麼OSX上的語言環境沒有更改?
- 13. 很熱,在MAC OS X中獲取格式爲「en_US」的鍵盤佈局語言和語言環境?
- 14. Vista環境變量中的%TMP%和%TEMP%有什麼區別?
- 15. BFC和堆疊環境有什麼區別?
- 16. 'de'和'de-DE'語言代碼有什麼區別?
- 17. 遞歸和遞歸枚舉語言有什麼區別
- 18. 腳本語言和模式匹配技術有什麼區別?
- 19. Io語言中newSlot和setSlot有什麼區別?
- 20. .NET語言之間有什麼區別和相似之處?
- 21. Racket(lisp編程語言)中的[]和()括號有什麼區別?
- 22. 學習HTML和學習編程語言有什麼區別?
- 23. C語言中ptr = my_array和ptr =&my_array [0] [0]有什麼區別?
- 24. 循環和迭代有什麼區別?
- 25. document.write和return語句有什麼區別?
- 26. Symfony2語言環境
- 27. 術語語言和語言實現有區別嗎?
- 28. 爲什麼不設置語言環境修復此UnicodeError?
- 29. 在Django中有什麼像request.LANGUAGE_CODE語言環境文化嗎?
- 30. 構建和部署有什麼區別?
此答案是在java代碼中做什麼的最佳答案。對於其他語言/框架,並非如此。在使用不同約定的框架之間進行調用時,您需要了解需要知道轉換的編碼器的「pratfall」。建議使用您正在調用的框架的約定。當您調用另一個框架時,請提供進行轉換的「代理」。爲什麼?它消除了需要知道被調用的框架使用不同的約定。貢獻者只會「看到」使用那一個的慣例將會避免這種失敗。 – DaBlick