提问者:小点点

使用区域设置将英语国家名称更改为德语


我有这个要求,我需要将等效的国家代码转换为德语国家名称。我正在为我的代码使用区域设置生成器。

这是我的代码:

我做的第一个是这样的:

Locale locale = new Locale("GERMANY", "AT");

生成输出:德语(奥地利)

第二个:

Locale aLocale = new Locale.Builder().setLanguage("de").setRegion("AT").build();

生成输出:德语(奥地利)

我需要的是将奥地利的国家代码"AT"转换为德语,它应该生成Österreich


共2个答案

匿名用户

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。