Согласно документации в Language and Locale произошли улучшения в ресурсо-Resolution стратегии от Android 7.0 (уровень API 24), который легко понять со следующей таблицей: Improved Resource-Resolution strategyAndroid 7,0 Нуга подхватывает строки по умолчанию, когда язык устройства en_US
Согласно моим требованиям, я хочу, чтобы langauge по умолчанию для моего приложения был en_US. Итак, я не предоставляю отдельные ресурсы для en_US. У меня также есть ресурсы en_GB, представленные отдельно.
Теперь, согласно стратегии разрешения, если язык моего устройства является en_US, тогда порядок, в котором он должен искать ресурсы, - en_US -> en -> en_GB -> default, что означает для всех локалей en, в моем случае en_GB будет выбран, так как у меня нет ресурса «en» отдельно, но присутствует дочерний элемент en_GB.
Но, когда я выбираю свой язык устройства en_US, он правильно выбирает язык по умолчанию (en_US в моем случае), а не en_GB, что именно то, что мне нужно, если язык устройства является en_US. Когда выбран какой-либо другой язык, например en_IN или en_AU, он захватывает en_GB.
Один из способов решения этого вопроса заключается в том, что я предоставляю en_US строки в 'en' и en_GB отдельно, что приведет к моему желаемому поведению. Но я не могу понять, почему строки по умолчанию собираются, когда я выбираю en_US в качестве языка устройства.
Это en_US - это язык по умолчанию для Android, и когда en_US выбран как язык устройства, он выбирает строки по умолчанию, если en_US не предоставляется отдельно?
Кажется, что все еще происходит. Я думал, что это специфично для en_CA. Это похоже на ошибку платформы. Вы случайно открыли ошибку с Android? Смотрите нашу дискуссию здесь: [Локализация для Канады по умолчанию в Великобритании; должен по умолчанию использоваться по умолчанию] (https://stackoverflow.com/q/45511769/1306419) –
Я создал отчет об ошибке здесь: issuetracker.google.com/issues/64429534. Не стесняйтесь предлагать изменения, чтобы улучшить его, или комментировать/ставить его так, чтобы его можно было посмотреть. Благодарю. –