为什么 android 设置中的语言选择部分没有显示所有可用的语言环境?

Why the language selection section in android settings doesn't show all the available locales?

当您使用此代码

打印 android 中的所有可用语言环境时

语言环境[] 语言环境 = Locale.getAvailableLocales();

您会在“设置”->“语言和输入”->“语言”中找到您无法select的语言环境。

例如,从设置中您会发现只有 5 个英语语言环境

虽然前面代码中支持的语言环境数量更多。 例如:

09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-cc
09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-ck
09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-cm
09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-cx
09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-dg
09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-dm
09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-er
09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-fj
09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-fk
09-14 16:03:04.835 12432-12720/com.q.sampleapp I/locale: en-fm
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-gb
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-gd
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-gg
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-gh
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-gi
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-gm
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-gu
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-gy
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-hk
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-ie
09-14 16:03:04.836 12432-12720/com.q.sampleapp I/locale: en-im

所以问题是为什么它们不相同?以及如何在设置 -> 语言和输入中更改该列表。

提前致谢。

支持一种语言需要的不仅仅是语言环境。您有一份支持的语言列表和一份支持的语言环境列表。你不能指望它们是相同的。另一方面,由于一种语言可以有多个区域设置,因此您也将拥有更少的语言。