Есть ли в продаже устройства, поддерживающие больше языков, чем официально поддерживаемые Google?

По данным Google, Android официально поддерживает около 57 языков/диалектов . Конечно, поскольку Android является открытым исходным кодом, ничто не мешает производителю устройства, поставщику услуг сотовой связи или даже конечному пользователю добавить поддержку новых языков/диалектов.

Теперь, только потому, что это возможно, это не означает, что это было сделано, или, по крайней мере, что это было сделано в достаточно большом масштабе, чтобы оказать влияние. Например, я, скорее всего, не буду тратить время на перевод своего приложения на язык, который 5 человек вручную добавили на свои устройства, однако, если производитель устройств решил добавить поддержку дополнительного языка, который сейчас находится в руках некоторых тысячи пользователей, это может быть полезным переводом, даже если он официально не поддерживается AOSP.

Итак, есть ли способ узнать это? Или, если не официально, есть ли какие-то неофициальные свидетельства того, что такие вещи происходят?

Я бы сказал, что CyanogenMod, вероятно, был бы лучшим ответом для ПЗУ, поддерживающего несколько языков, в которые пользователи могут вносить свой вклад. Посмотрите в разделе «переводчики» в их журнале изменений, в списке 17 языков github.com/CyanogenMod/android_vendor_cyanogen/blob/gingerbread/… Но в рамках разработчика я бы не стал заморачиваться с меньшими языками. Я лично использую краудсорсинг для своих языков, поэтому самые популярные, безусловно, будут сделаны первыми (но я ничего не имею против включения других, менее известных языков).
@BryanDenny, согласно той странице, на которую вы ссылаетесь, поддерживаемые языки для CyanogenMod на самом деле являются подмножеством языков, поддерживаемых Google. Я ищу возможность языков, которых НЕТ в списке Google.
@ScottW Да, но CM представляет собой компиляцию исходного кода Android, что означает, что можно (или, по крайней мере, должно быть) включать дополнительные языки. Я не знаю точных деталей, потому что я раньше не компилировал исходный код Android, но я предполагаю, что это будет похоже на разработку приложения и включение нового файла xml со всеми строками, определенными на новом языке.
@BryanDenny да, это определенно технически осуществимо. Я надеюсь узнать, действительно ли это было сделано в каком-либо масштабе, который мог бы повлиять на рынок. Нас попросили поддерживать определенный список языков, включая те, которые не входят в список поддерживаемых языков AOSP. Итак, я пытаюсь выяснить, есть ли реальная ценность в поддержке языков, не входящих в список AOSP, или это просто пустая трата времени и денег.

Ответы (2)

Исходя из предыдущего опыта создания 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, и постараемся сделать переводы для США подходящими для более широкой латиноамериканской испаноязычной аудитории, а не для США.