我有这个要求,我需要将等效的国家代码转换为德语国家名称。我正在为我的代码使用区域设置生成器。
这是我的代码:
我做的第一个是这样的:
Locale locale = new Locale("GERMANY", "AT");
生成输出:德语(奥地利)
第二个:
Locale aLocale = new Locale.Builder().setLanguage("de").setRegion("AT").build();
生成输出:德语(奥地利)
我需要的是将奥地利的国家代码"AT"
转换为德语,它应该生成Österreich
。
Locale
的方法getDisplayCountry()
可以采用Locale
参数来尝试用哪种语言显示它。例如:
Locale locale = new Locale("de", "AT");
System.out.println(locale.getDisplayCountry(locale));
指纹给我
Österreich
如果您想要整个语言环境的名称,只需使用getDisplayName()
和参数,而不是getDisplayCountry()
。
这不能保证适用于所有区域设置的组合。根据文档:
如果返回的名称不能根据[提供的Locale
参数]进行本地化(例如,我们没有克罗地亚的日文名称),则此函数返回英文名称,最后返回ISO代码作为最后的值。
另请注意,德语的语言代码是"de"
,而不是"GERMANY"
。
JavaLocale
不是翻译服务。它们用于描述本地化组件,例如您可能有一个Map
如果你想把文本翻译成另一种语言,你需要使用某种翻译服务,比如谷歌的翻译API。