-
Notifications
You must be signed in to change notification settings - Fork 4
Home
DV_Translate
Модуль автоматического перевода интерфейса MIUI v6
Основная идея:
• Возможность использовать официальные англо-китайские прошивки с обновлениями и при этом русский интерфейс. • Перевод интерфейса программ «на лету». • Возможность быстрого редактирования перевода.
Зачем это: На MIUI v5 я пользовался модулем WSMTranslation (Модуль русского перевода для WSM). Так как проект видимо не развивается дальше, решил попробовать написать что-то подобное для MIUI v6. За основу проекта был взят Xposed модуль resOverloader (https://github.com/babuilyas/resOverloader). За основу перевода был взят перевод от MIUI.su (с прошивки 4.10.31).
Как это работает:
• DV_Translate - это Xposed модуль и работает только в составе WSM Tools.
• Модуль меняет язык системы на русский и переводит системные ресурсы MIUI фреймворка.
• При загрузке любого приложения - проверяется наличие на карте памяти (SD-карте) каталога \dv_translate\application_name
где application_name – это полное название пакета приложения (например: com.android.mytestapp)
Если в этом каталоге есть файлы с переведенными строками strings.xml и переведенными массивами строк arrays.xml, модуль попытается подменить в приложении эти строковые ресурсы.
Как установить: Установить WSM Tools. (Скачать его можно с сайта http://burgerz.pro/wsm-project). Установить WSM фреймворк (через меню WSM Tools->Фреймворк->Установить) Установить модуль DV_Translate.apk Активировать модуль в WSM Tools. Перезагрузить телефон.
Как использовать: Если у вас уже есть готовый перевод в каталоге dv_translate\ - после перезагрузки телефона модуль автоматически будет пытаться переводить ресурсы приложений. Для создания своего перевода приложения - создайте подкаталог sdcard\dv_translate\имя_приложения (имя_приложения – это имя пакета приложения). Положите туда файлы с переведенными ресурсами (strings.xml и/или arrays.xml). Перевод применится после перезапуска приложения. Чтобы не создавать файлы вручную, можно распаковать переводимое приложение с помощью apktools. Оригинальные файлы strings.xml и arrays.xml будут находятся в каталоге приложения \res\values. Имя пакета приложения можно узнать из файла AndroidManifest.xml - <manifest … package="com.android.имя">.
Особенности релиза: • Xposed не работает в ART, поэтому модуль предназначен только для тех, кто использует Dalvik. • Если WSM вызывает постоянную перезагрузку устройства, скорее всего у вас используются конфликтные xposed модули (Например Mi-Tools или MiThemes). Отключите WSM, деактивируйте лишние WSM модули и переустановите WSM фреймворк. • Пока мне не удалось реализовать подмену строчек с множественным значением (plurals) из файлов. • Замену plurals строк у некоторых приложений модуль выполняет автоматически. Если это вызывает проблемы с запуском приложения, обработку plurals можно отключить. Создайте в папке перевода приложения файл pluralsdisable.xml любого содержания и при запуске приложения модуль не будет пытаться заменить эти ресурсы. • Не все приложения после перезапуска телефона переводятся. Если приложение не перевелось – можете попробовать закрыть его. Делается это так – 1 вариант: Долгое нажатие на значке приложения в меню недавних приложений (вызывается кнопкой Меню)->Закрыть. 2 Вариант: Зайти в Настройки-> Все приложения -> Все -> Имя_приложения -> Закрыть (Settings->Installed apps->All-> Имя_приложения -> Force stop). После перезапуска приложения перевод должен применится. Я после перезапуска выполняю следующее: Settings->Installed apps->All->Рабочий стол MIUI->Force stop Settings->Installed apps->All->Контакты и телефон->Force stop Settings->Installed apps->All->Settings->Force stop
• Некоторые приложения переводятся только частично. Хотя в логе WSM пишется, что все ресурсы у приложений успешно заменены. Пока что не нашел решения, как исправить. Напр. не переводится com.android.phone (соответственно пункты в меню Настройки->мобильная сеть, Настройки->вызовы), а также погода и компас. • Присутствует недоперевод и ошибки перевода. К сожалению, при таком методе перевода всегда будет присутствовать недоперевод каких-либо ресурсов. Если же Вы обнаружите ошибки перевода – можете смело править соответствующие файлы в каталоге перевода приложения.
Модуль создан и проверялся в следующей конфигурации: Создан с помощью Android Studio Использовался XposedBridgeApi-54.
Телефон: Xiaomi MI2S Прошивка: Официальная (special edition) miui_MI2Beta_X.X.X_4.4 c сайта en.miui.com WSM Tools: Версия 2.3.5. (App_process: Версии 58. XposedBridge.jar: Версии 56).
Перевод успешно пережил ОТА–обновления.
Автор: Дмитрий В. (Он же DiffeR). Если у вас есть идеи как реализовать то, что у меня пока не вышло, или какой-нибудь дополнительный функционал в модуле – можно написать мне на форуме 4pda.ru мой ник DiffeR777.
Успешных переводов!