java - 将国家名称翻译成其他语言

标签 java locale

我搜索了解决方案,但没有找到。

我有这样的信息:

String locale = "en_GB";
String country = "Japonia"; //It means Japan in polish

我需要将国家名称“Japonia”翻译成字符串区域设置中指示的语言,即“Japan”。有什么办法吗?

最佳答案

(答案基于 comment by Elliott Frisch)

Java 运行时库没有翻译 API,但是 Locale只要你知道ISO 3166 alpha-2 country code,类就可以用来获取任何语言的任何国家的名称。 , 和 ISO 639 alpha-2 or alpha-3 language code .

国家日本​​示例:

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));

输出

Japan
Japonia
日本
Giappone

关于java - 将国家名称翻译成其他语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44190906/

相关文章:

java - Java 实例级别的同步

java - 什么是好的安全框架或 API?

java - 从 TLS 获取证书链以使用 OCSP

java - 如何使用 createRow() 将行添加到 View 对象后删除行

linux - 在 WINE 中更改语言环境

Java 程序在 ObjectMapper.writeValue(System.out, responseData) 之后终止 - Jackson Library

android - 如何在不重新创建 Activity 的情况下更改 Android 应用程序中的语言?

windows - 如何在 Windows 控制台中设置 LOCALE

android - getString 返回错误的语言字符串

java - 为什么 YAML 解析出来的时间戳不对?