Как добавить новый язык?

ПЗУ вторичного рынка, которое я использую, похоже, имеют список языков, сокращенный до пары вариантов, вероятно, для экономии места.

Я хотел бы добавить язык обратно в систему. Я уже могу установить локаль с помощью таких программ, как MoreLocale 2 , чтобы приложения с поддержкой моего языка запускались с правильным кодом локали, однако это не добавляло отсутствующих системных языков. Было бы неплохо иметь систему на другом языке, но главное — получить файлы словарей для автозаполнения клавиатуры . Как можно добавить файлы языковой поддержки для языка ввода в систему или ПЗУ?

Я могу получить доступ к другим ПЗУ или проекту AOSP, чтобы копировать что-то, но я не знаю, с чего начать. Какие файлы мне нужны и какие изменения необходимо внести? Есть ли простой способ сделать это, скажем, с помощью языкового пакета или это полностью хакерство?

Мой ПЗУ полностью укоренен, и у меня есть adbдоступ, если это необходимо. Это Android 2.3.7 ( неофициальный порт CM 7.1 для Dream/Sapphire ), и я использую стандартную клавиатуру Android. Язык, который я хочу, - турецкий, хотя, если у кого-то нет загрузки, чтобы указать мне, что это в основном процесс, который я ищу здесь.

Насколько я знаю, сторонние клавиатуры должны предоставлять свои собственные языковые наборы. Если вы можете найти стороннюю клавиатуру, которая вам нравится, которая поддерживает турецкий язык, то это может быть самый простой способ. Кроме того, похоже, что CM не поддерживает турецкий язык: github.com/CyanogenMod/android_vendor_cyanogen/blob/gingerbread/… (смотрите в разделе «Переводчики»). Но вы всегда можете помочь им перевести.
@BryanDenny: Полный CyanogenROM (который у меня есть на другом телефоне) имеет встроенную поддержку турецкого языка, только некоторые урезанные версии для Dream (и других) несовершенны. Я много знаю об альтернативных клавиатурах с поддержкой турецкого языка, но очень хочу, чтобы они использовались для стандартной клавиатуры Android (некоторые клавиатуры Market отлично работают, но требуют слишком много оперативной памяти для Dream, а более легкие вообще не очень хорошо работают). Я знаю, что настроить стандартную клавиатуру сложнее, но это мой вопрос (и почему я спрашиваю).
@BryanDenny: На github, на который вы ссылались, показаны переводчики для интерфейса, специфичного для Cyanogen. ПЗУ CyanogenMod обычно имеют полный языковой набор, предлагаемый AOSP, включая турецкий. Лишь несколько специфичных для ПЗУ надстроек не имеют переведенных строк... но когда ПЗУ не скомпилировано с полным списком локалей, должен быть способ добавить поддержку определенного языка. Что я могу вытащить из другого ROM, чтобы добавить язык?
Понятия не имею, я занимался разработкой для Android (даже с поддержкой нескольких языков в приложении), но я не занимался разработкой с ПЗУ. Извините, я хотел бы помочь больше. Я бы также посмотрел на форумах CM или XDA.

Ответы (2)

Добавление полной языковой поддержки для устройства выполняется на уровне ПЗУ, языки, которые будет поддерживать клавиатура по умолчанию, добавляются перед компиляцией, а клавиатура Android дает вам возможность загружать словари только для тех языков, которые она поддерживает. Хорошим обходным решением является загрузка приложения для клавиатуры (например, GOKeyboard), которое поддерживает добавление в него языков.

Приложения для изменения локали хороши, но они могут быть не такими точными в своем переводе, как ромы, которые были созданы или специально переведены на определенный/ваш желаемый язык. Если ваш язык Bi-Di (двунаправленный, например, иврит или арабский) и ПЗУ не поддерживает его, это также может привести к ошибкам!

Лучшим решением будет прошивка нового ПЗУ с нужным языком, либо стандартного ПЗУ, созданного для вашего региона производителем вашего устройства, либо пользовательского ПЗУ. Cyanogen хорош тем, что он, вероятно, поддерживает все языки, соответствующие стандарту Unicode (включая турецкий).

Спасибо. В любом случае Cyanogen, безусловно, мой первый выбор, но на самом деле есть ПЗУ, которые лучше работают на одном из моих устройств, основным недостатком которого является отсутствие языковой поддержки.
но почему в официальном ПЗУ нет, например, иврита, а в более старом Samsung s4 с официальным ПЗУ, который я купил полгода назад, он есть? может это просто скрытая опция?

Посмотреть это видео

https://www.google.com/search?ei=MLpoXaXLLYHykwXjwqHADQ&q=android+setting+language+missing&oq=android+setting+language+mis&gs_l=psy-ab.3.0.33i22i29i30l2.271266.274795..276526...0.2.. 0.208.2395.0j13j2......0....1..gws-wiz.......0i71j35i39j0i67j0j0i20i263j0i203j0i22i30.5sRaXAommog#kpvalbx=_R7toXaWQEdHxkwWXnIv4CA22

TL;DW

  • установить приложение morelocale
  • используйте abd, чтобы изменить разрешение приложенияpm grant dogfooderz.com.morelocales android.permission.CHANGE_CONFIGURATION
  • используйте приложение, чтобы изменить язык

ПРИМЕЧАНИЕ: если вы получите

Security exception: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS

см. этот ответ https://stackoverflow.com/questions/52079343/how-can-i-use-adb-to-grant-permission-without-root