MSI Lab - Форум по русификации

Основные форумы => RusMe - РусМи! => Тема начата: KiLLWarez от 18 Июня 2009, 01:10:52

Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 18 Июня 2009, 01:10:52
Название программы: WXtoIMG
Версия: 2.9.0.5
Размер: 8,5 мегабайт
Язык программы: английский,
Официальный сайт: www.wxtoimg.com (http://www.wxtoimg.com)
Ссылка на программу: wxinst2905c.exe (http://www.wxtoimg.com/downloads/wxinst2905c.exe)
Ссылка на «лекарство» (по возможности): -
Снимок экрана места проблемы:

Друзья, помогите пожалуйста. Взялся попробовать перевести программу. Однако пилотная программа у меня не самая лучшая для этого. Она написана на скриптовом языке TCL (+TK) и чем-то завернута для работы в Windows. В обычном файле строк нету ни в каком виде, потому что скрипт собран в байт-код. Однако если сделать дамп, то скрипт видел и строки его тоже видны. Первая же попытка перевести подтверждение при выходе из программы обламывается. Подробности на скриншоте. Предвижу некоторые вопросы и замечания, поэтому сразу говорю, не Unicode, русский текст в Win1251.

Подозреваю что нужно найти в файле что-то вроде таблицы на скриншоте и заменить часть на русские литеры. Поправьте если я ошибаюсь.
Название: Проблема - русский текст отображается мусором
Отправлено: shkiper от 18 Июня 2009, 09:42:12
Программа, я так понял WxtoImg. Чем и как ты дамп делал?
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 18 Июня 2009, 10:28:28
Цитата: shkiper
Программа, я так понял WxtoImg. Чем и как ты дамп делал?

Что первое под руку попалось, толи LordPE толи что-то такое. На самом деле что первое под руку попалось. Софта этого с давних пор много скопилось. Вот только дамп получился 82 мегабайта.

Нашелся. PEiD.
Название: Проблема - русский текст отображается мусором
Отправлено: shkiper от 18 Июня 2009, 10:33:21
Я двумя разными прогами делал, тоже 82-83 метра получалось, но они не рабочие. В смысле не запускаются. Ты уж уточни чем, чтоб у меня такой же получился, а лучше запакуй 7-zip'ом с теми настройками как на скрине, архив получится всего 1,3 мегабайта и выложи на какой-нибудь обменник или сюда.
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 18 Июня 2009, 11:05:59
Цитата: shkiper
Я двумя разными прогами делал, тоже 82-83 метра получалось, но они не рабочие. В смысле не запускаются. Ты уж уточни чем, чтоб у меня такой же получился, а лучше запакуй 7-zip'ом с теми настройками как на скрине, архив получится всего 1,3 мегабайта и выложи на какой-нибудь обменник или сюда.

Форум файлик почему-то отвергает, поэтому в .RAR на 4Shared
Название: Проблема - русский текст отображается мусором
Отправлено: shkiper от 18 Июня 2009, 11:12:35
И где он?  Я ссылку так не угадаю
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 18 Июня 2009, 11:47:02
Какая-то беда сегодня с инетом, не с первой попытки удалось вот http://ifolder.ru/12699638 (http://ifolder.ru/12699638)
Название: Проблема - русский текст отображается мусором
Отправлено: shkiper от 18 Июня 2009, 11:54:41
ОМГ! Вот это прога! А чем ты ее переводишь? Я открыл кое-как это 80-метровое чудовище, а там только жестко кодированные строки без ссылок и никаких ресурсов нет. Чем ты ее переводить пытаешься? У меня даже на жестко кодированные строки все ссылки фиксированные, что значит перевод должен быть не длиннее оригинала.
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 18 Июня 2009, 12:02:18
Если лениться, тогда жесткие строки. Но если ты внимательно посмотришь, то увидишь там TCL. Хотя вот с ним я пока не знаю что делать. Господа, но мой вопрос остается в силе: как с правиться с кракозябликами в первом скриншоте?
Название: Проблема - русский текст отображается мусором
Отправлено: shkiper от 18 Июня 2009, 12:43:50
Я с TCL до этого не сталкивался, это первый случай, так что с кракозябликами помочь не могу.

P.S. Чем эти TCL переводить-то? Хочу изучить.
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 18 Июня 2009, 16:48:34
TCL ничем переводить не нада, это язык программирования, типа Python. А кракозяблики на скриншоте не поэтому. Ну да ладно, я сам разберусь. А размер файла, кстати, выровнялся до размера оригинального .exe, только пришлось секции перемещать и исправлять смещения.

По переводу пока не расскажу. Есть идеи как раздвинуть все это. А вот зяблики нада победить.
Название: Проблема - русский текст отображается мусором
Отправлено: seryi от 18 Июня 2009, 17:42:32
Ну то что на скриншотике - это латиница, самая популярная кодировка что используют европейцы и американцы, стоит во второй половине после английских букв в кодировке Windows-1252, а нам надо получить Windows-1251. [hex] значения латиницы и кириллицы равны, поэтому надо чтобы программа самостоятельно использовала кодировку Windows-1251 всокупе со шрифтом поддерживающим кириллицу.
Если Windows русский, то многие стандартные шрифты уже имеют по умолчанию кириллицу, а вот самый простой способ юзать русскую кодировку - подменить европейскую.
Если WinXP - то просто в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
в параметре 1252 указать файлик c_1251.nls,
либо файлик c_1251.nls скопировать на рабочий стол, потом переименовать в c_1252.nls и кинуть с заменой в C:\WINDOWS\system32.
Оба способа нуждаются в перезагрузке компьютера, 2й способ проще для более поздних Windows после XP (Vista, 7, ...).
Название: Проблема - русский текст отображается мусором
Отправлено: shkiper от 19 Июня 2009, 11:56:21
Я тоже добился нормального размера программы, но как там переводить - ума не приложу. Шаблонные редакторы курят в сторонке, даже OgreGUI не находит текстовые строки для тестового перевода. Ты б сказал чем ты переводишь, а вдвоем проблема быстрее решится с кракозябликами. Или предыдущий пост помог?
Название: Проблема - русский текст отображается мусором
Отправлено: seryi от 19 Июня 2009, 17:17:25
Можно переводить c Hex Editor Neo или WinHex c дополнительной раскладкой
( http://rapidshare.com/files/233577422/WinHexRu.exe (http://rapidshare.com/files/233577422/WinHexRu.exe) ) .
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 20 Июня 2009, 12:38:31
Замена NLS не помогла. Причем ни реестр, ни замена файлов. DLL Cache тоже заменил.

Перевод делать руками. Любой HEX редактор или как я - Far Manager, только отключить опцию чтоб редактор не заменял табуляцию и прочее на пробелы.Остается вопрос с зябликами. Вероятнее всего не ту NLS надо менять. Как бы это проверить кроме замены всех подряд по очереди?
Название: Проблема - русский текст отображается мусором
Отправлено: seryi от 20 Июня 2009, 18:43:38
Рядом с EXE лежит шрифт .TTF западноевропейский - может от него проблемы?
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 20 Июня 2009, 23:35:16
Цитата: seryi
Рядом с EXE лежит шрифт .TTF западноевропейский - может от него проблемы?
Делаем больше, удаляем шрифт. Софтина все еще запускается и работает.
Название: Проблема - русский текст отображается мусором
Отправлено: seryi от 21 Июня 2009, 10:00:53
Ей Богу не знаю. Может это связано с тем, что прога отображает текст также как в рабочем окне браузера или блокнота, т. е. жестко заданная кодировка и шрифт?...
Название: Проблема - русский текст отображается мусором
Отправлено: ZeroChaos от 16 Июля 2009, 08:14:43
Тема перенесена в новый форум.

Добавлено:
KiLLWarez, поднял описание в шапку.
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 16 Июля 2009, 12:35:16
Суть проблемы заключается в том, что введенный русский текст (в любых кодировках) в диалогах программы отображается похоже в западно-европейской кодировке. Замена NLS-файлов или их ключей в реестре, а также ключей FontMapper и FontSub... не помогает.

ZeroChaos, подними описание в шапку темы, сам я шапку редактировать уже не могу.
Название: Проблема - русский текст отображается мусором
Отправлено: VIPer от 16 Июля 2009, 14:41:33
Я обнаружил, что xwxtoimg.exe сжат криптором Armadillo v1.7 (см. снимок экрана).
Загрузите распаковщик Armadillo по адресу http://unpacking.narod.ru/armadillo.html (http://unpacking.narod.ru/armadillo.html).
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 16 Июля 2009, 17:30:26
Вероятнее всего DiE врет.

Хотя бы потому что я просто сдампил программу при помощи PEiD 0.95, руками изменил размеры секций и поправил файлик (всмысле лишние нолики из него убрал, чтобы секция кода была не 82 мегабайта, а как надо). Такое с Армой просто не прокатило бы.

Ну и скрин от PEiD впридачу.
Название: Проблема - русский текст отображается мусором
Отправлено: Solenij от 16 Июля 2009, 17:30:44
Цитата: VIPer
Я обнаружил, что xwxtoimg.exe сжат криптором Armadillo v1.7 (см. снимок экрана).
Загрузите распаковщик Armadillo по адресу http://unpacking.narod.ru/armadillo.html (http://unpacking.narod.ru/armadillo.html).
Нет, файл ничем не запакован. Все секции чистые. Вот блин разработчики намудрили!  
Название: Проблема - русский текст отображается мусором
Отправлено: VIPer от 16 Июля 2009, 19:34:14
Попробуйте тогда кодировку UTF-8, но это конец проекту будет. Очень громоздкие тексты будут в этом формате, которые не уместятся в оригинальный размер.
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 17 Июля 2009, 10:12:46
UTF-8 тоже не подходит. И конечно он невероятно увеличил бы проект.

Из того что удалось нарыть. Софтина написана на Tcl с применением Tk.

Цитирую Wiki (http://ru.wikipedia.org/wiki/Tcl):
Tcl (от англ. Tool Command Language — «командный язык инструментов», читается «тикль») — скриптовый язык высокого уровня.

Tcl часто применяется совместно с графической библиотекой Tk (Tool Kit). Связку Tcl/Tk по-русски иногда называют «Так-тикль».

Области применения языка — быстрое прототипирование, создание графических интерфейсов для консольных программ (пакетов программ), встраивание в прикладные программы, тестирование. Иногда Tcl применяется для создания CGI скриптов.

Tcl, наряду с Perl и Python, стал одним из трёх классических скриптовых языков общего назначения. Эта троица фигурирует не только в качестве списка свободных дистрибутивов, собираемых в ActiveState, но и, например, как языки, на которых (помимо диалекта PL/pgSQL) можно писать триггеры и хранимые процедуры популярного сервера БД PostgreSQL.


Далее. Какая версия Tcl/Tk у нас? Выше 8-ми, это однозначно, подробности здесь (http://ru.wikipedia.org/wiki/Tk), выдеру кусочек:
Начиная с Tcl/Tk 8 графический интерфейс имеет «родной» для ОС вид, то есть графические элементы будут выглядеть так же как и стандартные для данной ОС.

Т.к. это своя оконная библиотека, следовательно она весь текст рисует сама. Где-то читал что с версии 8.5 начали поддерживать unicode. До этого были проблемы с языками, которые разработчики Tcl не желали исправляться потому что "скоро выйдет unicode-версия".

Пока у меня выход один - мучать разработчиков, чтобы помочь им руссифицировать софтину.
Название: Проблема - русский текст отображается мусором
Отправлено: Solenij от 17 Июля 2009, 16:04:17
Нет, все таки UTF-8. Такая же фигня как и в nanozip, но если в nanozip можно было хоть как-то русифицировать программу, то здесь это практически невозможно из-за скрипта - его невозможно удлинить почему-то. Решение найдено - кодировка UTF-8, но вот браться за русификацию такого геммора никому не советую.  
P.S. Кстати, версия TCL 8.5.3, см. скрин ниже:
(http://img526.imageshack.us/img526/7351/97444450.png)
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 19 Июля 2009, 12:15:07
Но UTF не воспринимается, если просто заменить строку. Видимо еще где-то в коде скрипта нужно сделать set font или setlocale.

Я компенсировал размеры удаляя незначительные строки, как например параметры у того MessageBox'а что на первом скрине. Вот только со всем кодом не помогает.
Название: Проблема - русский текст отображается мусором
Отправлено: Solenij от 19 Июля 2009, 17:22:23
Цитата: KiLLWarez
Но UTF не воспринимается, если просто заменить строку. Видимо еще где-то в коде скрипта нужно сделать set font или setlocale.

Я компенсировал размеры удаляя незначительные строки, как например параметры у того MessageBox'а что на первом скрине. Вот только со всем кодом не помогает.
Как это не воспринимается, я же не от балды написал, что стоит кодировка UTF-8. Это скрипт, а значит надо правильно его переводить - слова не должны быть ни больше, ни меньше чем исходное слово. Я писал выше, что если переводить эту программу, то надо просто напросто переписывать целый скрипт и использовать кодировку UTF-8.
А вот пример переведенного окна о выходе из программы:
(http://img517.imageshack.us/img517/2218/46287176.png)
А здесь можно скачать екзешник с переведенным этим окном: СКАЧАТЬ (http://file.qip.ru/file/95361000/1ea700f3/WXtoImg_Dumped.html)
Может, вы просто неправильно используете кодировку UTF-8?
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 20 Июля 2009, 01:09:09
Цитата: Solenij
Может, вы просто неправильно используете кодировку UTF-8?

Вероятнее всего, сейчас перепроверю.

Немудрено, почему я ошибся. Чтобы написать в UTF-8 что-нибудь обновил Far Manager до 2.0, у них там новая версия все лики Unicode уметь читать начала. А вот писать - это под вопросом. Наверное CopyPaste в ANSI из чистого файла прокатит, а вот просто редактировать файл и пхать туда UTF текст не получается. О чем успешно сам Far и предупреждает. А есть ли UTF редактор вменяемый?

ps: Еще возникли вопросы типа, а реально ли такое написать в удобоваримой форме и т.п., но это от усталосли, странные выходные были.
Название: Проблема - русский текст отображается мусором
Отправлено: Solenij от 20 Июля 2009, 01:47:45
Цитата: KiLLWarez
Вероятнее всего, сейчас перепроверю.

Немудрено, почему я ошибся. Чтобы написать в UTF-8 что-нибудь обновил Far Manager до 2.0, у них там новая версия все лики Unicode уметь читать начала. А вот писать - это под вопросом. Наверное CopyPaste в ANSI из чистого файла прокатит, а вот просто редактировать файл и пхать туда UTF текст не получается. О чем успешно сам Far и предупреждает. А есть ли UTF редактор вменяемый?

ps: Еще возникли вопросы типа, а реально ли такое написать в удобоваримой форме и т.п., но это от усталосли, странные выходные были.
Вообще когда русифицируешь программу путем изменения кодировки, то лучше это делать напрямую, прямо через HEX-редактор, так надежнее.
По поводу UTF-редактора, могу посоветовать маленькую программу. Суть её - она показывает написанное слово в пяти самых популярных кодировках, и именно в HEX-кодах. Кстати, советую её всем держать на винте, кто занимается русификацией ПО, иногда хорошо помогает.
Ссылка на программу: СКАЧАТЬ (http://file.qip.ru/file/95407850/daed3fca/LoveString_185.html)
И еще по теме могу порекомендовать онлайн-кодировщик текста. Очень много различных кодировок. Иногда тоже выручал.
Ссылка на онлайн-кодировщик: ПЕРЕЙТИ (http://rgo.ru/projects/soft_online/kodirovka)
А по поводу русификации этой программы, могу сказать следующее. Я немного исследовал программу и понял, что русифицировать ее можно либо, взяв скрипт ресурсов интерфейса у разработчиков и переписать (русифицировать) его в кодировке UTF-8, а потом воткнуть его в программу, либо найти и сломать процедуру шифровки/расшифровки скрипта, наподобии как русифицировать PE Explorer.
Название: Проблема - русский текст отображается мусором
Отправлено: KiLLWarez от 20 Июля 2009, 01:56:51
В дампе скрипт уже разобран и исполняется линейно. Там есть где позаимствовать место. Достаточно много. Ваш результат повторить удалось. Теперь думаю что с этим всем делать. Надо попробовать подвигать скрипт, если получится, тогда и к регистрации приступим, а затем и к руссификации. Я уже тоже думаю про разработчика. В коде скрипта нашел какую-то трансляцию интерфейса на разные языки, в том числе и русский. Хотя в интерфейсе программы этого нету.
Название: Проблема - русский текст отображается мусором
Отправлено: Solenij от 20 Июля 2009, 01:58:21
Цитата: KiLLWarez
В коде скрипта нашел какую-то трансляцию интерфейса на разные языки, в том числе и русский. Хотя в интерфейсе программы этого нету.
Да, я тоже видел. А некоторые моменты кстати в кодировке Java.