本地化两个字母的 ISO 国家代码?

Localizing the two-letter ISO country codes?

可以使用 new Locale("", iso).getDisplayName() 本地化国家/地区名称,但是有没有一种本地化 ISO 代码本身的方法?在我的小部件中,我使用它们来代表不同的国家。对于一种语言(比如阿拉伯语)来说,用另一个字母表中的两个字母 ISO 代码来表示国家似乎是错误的。我在这里有什么选择?

根据定义,ISO 国家代码是固定的字符串。他们的想法是他们是国际化的,独立于语言。它们为以标准化、语言中立的方式传输关于一个国家的信息提供了基础;然后可以以本地化格式显示此信息,但本地化代码会违背其目的。

ISO 国家代码旨在用于机器可读数据,用于程序和系统之间的通信。它们并不打算显示给用户,但出于各种原因,它们可能会被用户看到。将它们本地化仍然是错误的举动;正确的解决方法是更改​​传递它们的软件而不是正确的本地化。