我寻找解决方案,但没有找到任何解决方案。
我有这样的信息:
String locale = "en_GB";
String country = "Japonia"; //It means Japan in polish
我需要将国家/地区名称“Japonia”翻译为字符串区域设置中指示的语言,即“Japan”。有什么办法可以做到吗?
(答案基于埃利奥特·弗里施评论 https://stackoverflow.com/questions/44190906/translate-country-name-into-other-language/44191182#comment75395973_44190906)
Java 运行时库没有翻译 API,但是Locale https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html类可以用来获取任何语言的任何国家的名称,只要你知道ISO 3166 alpha-2 国家/地区代码 https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements,以及ISO 639 alpha-2 或 alpha-3 语言代码 https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes#Partial_ISO_639_table.
国家示例Japan
:
Locale countryJapan = new Locale.Builder().setRegion("JP"/*Japan*/).build();
Locale langEnglish = new Locale.Builder().setLanguage("en"/*English*/).build();
Locale langPolish = new Locale.Builder().setLanguage("pl"/*Polish*/).build();
Locale langJapanese = new Locale.Builder().setLanguage("ja"/*Japanese*/).build();
Locale langItalian = new Locale.Builder().setLanguage("it"/*Italian*/).build();
System.out.println(countryJapan.getDisplayCountry(langEnglish));
System.out.println(countryJapan.getDisplayCountry(langPolish));
System.out.println(countryJapan.getDisplayCountry(langJapanese));
System.out.println(countryJapan.getDisplayCountry(langItalian));
Output
Japan
Japonia
日本
Giappone
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)