Locale.getAvaialableLocales()
为您提供设备中可用的所有语言环境。
但是设备安装的字体仅支持其中一些可用的语言环境
我使用了 Resources.getSystem().getAssets().getLocales()
它返回“设置->语言和输入->语言”选项中可用的列表语言。
但是该设备能够支持更多“设置->语言和输入->语言”中不存在的语言。
例如 在我的 Karbon 设备中 Resources.getSystem().getAssets().getLocales() 返回 只有“印地语”和“旁遮普语”作为支持语言。 但是当使用“远足”应用程序选择“泰卢固语”语言时,该设备工作正常。
那么有什么方法可以检查设备是否支持特定语言。
最佳答案
好问题 Siva。
到目前为止,很多人都在讨论同样的事情,但都没有答案。
google groups discussion is here
Locale.getAvailableLocales()
也不是 Resources.getSystem().getAssets().getLocales()
为您提供一组正确的区域设置,您可以依赖这些区域设置来支持应用程序语言。
原因是,
它们都为您提供了该操作系统支持的所有语言环境的列表。操作系统可能支持超过 100 种语言,但设备制造商可能不会将所有这些语言字体(ttf 文件)放在/system/fonts/(或任何系统字体目录)中只是为了节省 ROM 内存。他们所做的是,因为他们制作特定区域的 rom,所以他们只放置与该特定区域相关的字体(区域设置)。这就是您在美洲 ROM 中找不到印度地方语言的原因。
解决它的最好方法是, 在您的应用程序 Assets 中包含您想要支持的任何语言的所有 ttf 文件, 就像我们支持不同的语言字符串一样。
但要注意字体许可和所有问题。
希望这对您有所帮助。
关于android - 如何检查android中的设备是否支持特定语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35763413/