По данным Google, Android официально поддерживает около 57 языков/диалектов . Конечно, поскольку Android является открытым исходным кодом, ничто не мешает производителю устройства, поставщику услуг сотовой связи или даже конечному пользователю добавить поддержку новых языков/диалектов.
Теперь, только потому, что это возможно, это не означает, что это было сделано, или, по крайней мере, что это было сделано в достаточно большом масштабе, чтобы оказать влияние. Например, я, скорее всего, не буду тратить время на перевод своего приложения на язык, который 5 человек вручную добавили на свои устройства, однако, если производитель устройств решил добавить поддержку дополнительного языка, который сейчас находится в руках некоторых тысячи пользователей, это может быть полезным переводом, даже если он официально не поддерживается AOSP.
Итак, есть ли способ узнать это? Или, если не официально, есть ли какие-то неофициальные свидетельства того, что такие вещи происходят?
Исходя из предыдущего опыта создания AOSP, языковые строки для всех аспектов системы хранятся в файле xml, который можно найти в исходном файле framework/base/core/res/res AOSP . Внутри этого каталога в исходном коде есть values-XXX/strings.xml и values-XXX/do-not-translate.xml , где XXX — это код страны ISO, основанный на стандартных рекомендациях. Он встраивается и генерируется в файле framework-res.apk, который находится в ПЗУ live system в каталоге /system/framework .
В существующем ПЗУ можно «как бы» добавить в него переводы путем его декомпиляции, но усилия не будут стоить того, поскольку XML-данные компилируются и «теряются при переводе ». Я говорю «что-то вроде» очень расплывчато, так как в результате может получиться, что это может работать, а может и не работать, но усилия будут большими и, возможно, нарушат существующие основные функции Android.
Вы, безусловно, можете добавить языковую надстройку для клавиатуры, но это все.
С точки зрения разработчиков, что касается локализации, принцип почти такой же, как и в исходниках AOSP. Поэтому, если разработчик хочет добавить поддержку французского языка, он может просто создать файл values-fr/strings.xml и засунуть туда французские переводы и так далее. Конечно, будут такие варианты, как, например, канадский французский, швейцарский французский. Таким образом, их файлы будут иметь следующий вид: values-fr-rCA/strings.xml , values-fr-rCH для примера.
Именно здесь CM поддерживает большинство языков и находится в постоянном движении из-за того, что пользователи замечают неправильные переводы и т. д.
Только Google предоставляет основные языки, такие как итальянский, французский, немецкий, испанский, английский (как США, так и Великобритания), и это лишь некоторые из них.
Ну, на самом деле это не отвечает на мой вопрос, но после дальнейших размышлений и без какой-либо достоверной информации мы решили придерживаться только официально поддерживаемого списка локалей и просто быть осторожными с тем, как мы переводим для этих локалей. Например, мы предоставим два набора испанских переводов, ES и US, и постараемся сделать переводы для США подходящими для более широкой латиноамериканской испаноязычной аудитории, а не для США.
Брайан Денни
Скотт В.
Брайан Денни
Скотт В.