如何在没有本地化资源的情况下在 Android 上支持不常见的语言?

发布于 2025-01-09 21:54:16 字数 1121 浏览 0 评论 0原文

在Android的语言首选项中,许多语言都会显示“可能在某些应用程序中不可用”的备注(我假设这些是Android本身未本地化的语言)。挪威新挪威语就是一个例子:

在此处输入图像描述

在 Android 应用程序中,当通过这些语言访问首选语言列表时,

context.getResources().getConfiguration().getLocales().toLanguageTags();

如果应用程序不包含这些语言的本地化资源,这些语言似乎会从列表的开头移动。对于 Android 设置中没有该注释的语言,情况则不然。

例如,根据上面屏幕截图的配置,如果应用包含带有非空资源文件的 values-nn 文件夹,则首选语言将返回为 nn-NO,en -美国,it-IT。如果应用不包含任何带有尼诺斯克语特定语言标签的资源文件夹,则首选语言将返回为 en-US,nn-NO,it-IT。本质上,美国英语被移到新挪威语之前。

此外,按照 这里似乎对此行为没有影响。将 nn 添加到此列表而不添加相应资源时,行为保持不变。

如果应用程序使用第三方翻译工具(例如 Xamarin/.NET 资源文件)并且没有本地化的 Android 资源,则这是相关的。如果应用程序使用以最喜欢的语言显示文本的常见方法,则新挪威语等语言将无法在应用程序中使用。作为解决方法,可以添加虚拟资源。

鉴于上述 Android 行为,我有以下问题:

  1. 是否有一个选项可以指定 Android 应用程序支持哪些语言而不使用资源文件夹/文件?
  2. Android 文档是否存在有关这些语言和此行为的信息?

In the language preferences of Android, many languages show the remark "May not be available in some apps" (I assume these are languages for which Android itself is not localized). Norwegian Nynorsk is an example:

enter image description here

In an Android App, when accessing the list of preferred languages via

context.getResources().getConfiguration().getLocales().toLanguageTags();

these languages seem to be moved from the start of the list if the App does not contain localized resources for them. The same is not true for languages which do not have the remark in the Android settings.

As an example, given the configuration of the screenshot above, if the app contains a values-nn folder with a non-empty resource file, the preferred languages are returned as nn-NO,en-US,it-IT. If the app does not contain any resource folder with a Nynorsk specific language tag, the preferred languages are returned as en-US,nn-NO,it-IT. Essentially, US English is moved before Nynorsk.

Additionally, specifying the supported languages in the resConfigs section as described here seems to have no impact on this behavior. When adding nn to this list without adding corresponding resources, the behavior remains unchanged.

This is relevant if an App uses a third party translation tool (e.g. Xamarin/.NET resource files) and does not have localized Android resources. If the App uses the common approach of displaying texts in the most preferred language, languages like Nynorsk would not be usable in the App. As a workaround, dummy resources can be added.

Given the Android behavior described above, I have the following questions:

  1. Is there an option to specify which languages an Android App supports without using resource folders/files?
  2. Does Android documentation exist regarding these languages and this behavior?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文