Русификация программ написанных на Питоне
Статья посвящена переводу программ написанных на Python, поскольку русификация таких приложений немного отличается от перевода прочих ресурсов.
Для удобства работы необходимо иметь полный доступ на смартфоне, т.е. иметь доступ к системным папкам и установленные следующие приложения:
Программа для распаковки и упаковки sis пакетов - SmartSIS 2.2.6
Файловый менеджер - X-plore 1.22
Редактора pyc, py, rsc и class-файлов - ZntxHan 1.73
и соответственно: Python 1.4.5 Final, MegaPyModulePack
Выбираем нужную нам программу, которую мы решаем перевести, распаковываем ее для перевода с помощью приложения SmartSIS. В разобранном виде можем посмотреть ее содержимое с помощью файл-менеджера. Выбираем файл, который нам нужен для перевода (по умолчанию чаще используются файлы с таким именем как - default.py).
Открываем файл default.py (в этом файле на самом деле алгоритмы, так вот среди них в скобках есть те надписи которые употребляются в программе, мы и будем переводить эти слова на русский язык) встроенным текстовым редактором в X-plore, предварительно выставив в настройках файл-менеджера кодировку (UTF-8 ). В открытом для редактирования файле под строкой import appuifw вставляем новую строку (вообще возможно и в самом верху нашего файла):
def ru(x):return x.decode('utf-8')
Далее ищем строки типа:
appuifw.app.menu = [(u"Back",start),(u"About",abt),(u"Exit",quit)]
и меняем их, пока не переводя никакие слова на русский язык, на такие:
appuifw.app.menu = [(ru("Back"),start),(ru("About"),abt),(ru("Exit"),quit)]
Сохраняем, отключив галочку "Сохранить в Юникоде". Редактируемую программу не запускаем.
Открываем файл теперь в программе ZntxHan 1.73 (редактора pyc, py, rsc и class-файлов) редактируем необходимые нам строки, т.е. переводим слова - выбираем строку нажимаем на нее (джойстиком по центру) и переводим жмем ОК и получаем уже переведенную строку и сохраняемся.
Когда перевод будет закончен мы можем перенести отредактированный нами файл в системную папку на смартфоне при уже установленной программе, посмотрев путь в SmartSIS, или запаковать его с программой (копируем наш уже переведенный файл default.py в SmartSIS, заменяя прежний и запаковываем программу). Перед перепаковкой убедитесь, что программа работает правильно, а русский текст отображается без ошибок.
Теперь нужно удалить установленную ранее переводимую нами программу и установить только что собранную вами, что бы проверить правильность ее установки и качество перевода.
Помимо вышеупомянутых программ для перевода файла default.py на смарте можно пользоваться программой Twotowers - редактор скриптов.
Перевод также возможно проделать и на ПК. Для перевода на компьютере нам понадобится такой блокнот как Notepad++ , найти его не сложно. Открываем в нем файл default.py, и под строкой import appuifw, как было нами описано выше, вставляем новую строку (либо вообще в самом верху файла):
def ru(x):return x.decode('utf-8') .
Далее ищем строки типа:
appuifw.app.menu = [(u"Back",start),(u"About",abt),(u"Exit",quit)]
и меняем их на такие:
appuifw.app.menu = [(ru("Назад"),start),(ru("О программе"),abt),(ru("Выход"),quit)] , здесь уже возможно попутно переводить необходимые нам слова на русский язык.
Выбираем в меню пункт Кодировки - Преобразовать в UTF-8 без BOM и сохраняем переведенный файл. Все готово.
Автор статьи Я, т.е AndreyKrot
Статья для конкурса
Комментарии 10
Отвечая на претензии в мой адрес хотелось бы сказать, что данная статья является результатом сбора, обобщения и анализа материала полученного из различных источников и тем самым да я являюсь автором статьи, но не создателем метода и алгоритма перевода питоновских скриптов!!! Основным назначением статьи было не участие в конкурсе а создание краткого мануала по данной теме для всех кто столкнулся с такой проблемой!
Автор статьи, сдирая инфу с моего поста и заменяя слова синонимами - потерял суть описанного. Хплор реально не работает с утф-8, но прога ZntxHan это затем исправит.
Автор, а на эти строки уже сил не хватило?
appuifw.app.menu = [(u\"Back\", start), (u\"About\", abt), (u\"Exit\", quit)]
appuifw.app.menu = [(ru(\"Назад\"), start), (ru(\"О программе\"), abt), (ru(\"Выход\"), quit)]
Я их привела от фонаря, для примера, когда поясняла суть.
По условю конкурса нельзя использовать чужие статьи. А чужие посты-инструкции с других форумов можно?
Вопрос, конечно риторический, думаю, что сейчас все хором мне ответят - что можно
Можно. И чаще всего не только дефолт.пу переводить надо, а и другие скрипты лежащие с ним в папке
Щас прочитаем
-------------
Добавлено в 17.11: Хм.. Очень интересно и познавательно Выставляй на конкурс
хм, чет тут всё трудно так расписанно...сделать можно всё гораздо проще: ставим Ded (лучший на мой взгляд текстовый редактор для 9ки), открываем через него нужный py файл выбираем в настройках проги кодировку и редактируем, не забывая конечно менять u\'text\' на ru(\'текст\')...если выбор кодировки в проге не помог, то после импорта модулей вписываем def ru(x):
return x.decode(\'windows-1251\') где за место windows-1251 можно вписать любую другую кодировку, к примеру utf-8 ну а с файлами pyc прекрасно справляется mobinex...
0 ответить