категории | RSS

Русификация программ написанных на Питоне

Статья посвящена переводу программ написанных на 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
Статья для конкурса

AndreyKrot
2009-08-05T16:57:43Z
Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 10

#10   Devil777    

хм, чет тут всё трудно так расписанноsmile...сделать можно всё гораздо проще: ставим Ded (лучший на мой взгляд текстовый редактор для 9ки), открываем через него нужный py файл выбираем в настройках проги кодировку и редактируем, не забывая конечно менять u\'text\' на ru(\'текст\')...если выбор кодировки в проге не помог, то после импорта модулей вписываем def ru(x):
return x.decode(\'windows-1251\') где за место windows-1251 можно вписать любую другую кодировку, к примеру utf-8 ну а с файлами pyc прекрасно справляется mobinexsmile...


0 ответить

#10   AndreyKrot    

Отвечая на претензии в мой адрес хотелось бы сказать, что данная статья является результатом сбора, обобщения и анализа материала полученного из различных источников и тем самым да я являюсь автором статьи, но не создателем метода и алгоритма перевода питоновских скриптов!!! Основным назначением статьи было не участие в конкурсе а создание краткого мануала по данной теме для всех кто столкнулся с такой проблемой!


* редактировал(а) AndreyKrot 17:51 6 авг 2009

0 ответить

#10   tekken    

Обычно, язык лежит в файле с расширением pyc. И для перевода достаточно поставить программу MobilHex и переводить на здоровье. Но за статью спасибо.


0 ответить

#10   dmol    

Автор статьи, сдирая инфу с моего поста и заменяя слова синонимами - потерял суть описанного. Хплор реально не работает с утф-8, но прога ZntxHan это затем исправит.
Автор, а на эти строки уже сил не хватило? smilesmile
appuifw.app.menu = [(u\"Back\", start), (u\"About\", abt), (u\"Exit\", quit)]
appuifw.app.menu = [(ru(\"Назад\"), start), (ru(\"О программе\"), abt), (ru(\"Выход\"), quit)]
Я их привела от фонаря, для примера, когда поясняла суть. smilesmile
По условю конкурса нельзя использовать чужие статьи. А чужие посты-инструкции с других форумов можно? smile
Вопрос, конечно риторический, думаю, что сейчас все хором мне ответят - что можно smile


0 ответить

#10   Canth    

Иксплор не работает с утф8(не сохраняет в ней, только читает), самый вариант открыть дедит. Про pyc файлы напиши.


0 ответить

#10   rap-st    

Mobil HEX без всяких проблем и возьни переводит .ру, .рус файлы


0 ответить

#10   Dark_angelll    

Можно. И чаще всего не только дефолт.пу переводить надо, а и другие скрипты лежащие с ним в папке


0 ответить

#10   Art-Lesh    

А Dedом можно переводить?


0 ответить

#10   vlad007700    

Щас прочитаемsmile
-------------
Добавлено в 17.11: Хм.. Очень интересно и познавательноsmile Выставляй на конкурсsmile


0 ответить

Яндекс.Метрика