Автор Тема: Проблема - русский текст отображается мусором  (Прочитано 64106 раз)

Оффлайн seryi

  • Новичок
  • *
  • Сообщений: 13
Рядом с EXE лежит шрифт .TTF западноевропейский - может от него проблемы?

Оффлайн KiLLWarez

  • Новичок
  • *
  • Сообщений: 14
Цитата: seryi
Рядом с EXE лежит шрифт .TTF западноевропейский - может от него проблемы?
Делаем больше, удаляем шрифт. Софтина все еще запускается и работает.

Оффлайн seryi

  • Новичок
  • *
  • Сообщений: 13
Ей Богу не знаю. Может это связано с тем, что прога отображает текст также как в рабочем окне браузера или блокнота, т. е. жестко заданная кодировка и шрифт?...

Оффлайн ZeroChaos

  • Root Admin
  • Ветеран
  • *****
  • Сообщений: 1376
  • The Dragon Reborn
    • zerolab.net
Тема перенесена в новый форум.

Добавлено:
KiLLWarez, поднял описание в шапку.
« Последнее редактирование: 16 Июля 2009, 13:47:38 от ZeroChaos »
The Wheel of Time turns, and Ages come and pass, leaving memories that become legend. Legend fades to myth, and even myth is long forgotten when the Age that gave it birth comes again... There are neither beginnings nor endings to the turning of the Wheel of Time. But it was a beginning. R. Jordan

Оффлайн KiLLWarez

  • Новичок
  • *
  • Сообщений: 14
Суть проблемы заключается в том, что введенный русский текст (в любых кодировках) в диалогах программы отображается похоже в западно-европейской кодировке. Замена NLS-файлов или их ключей в реестре, а также ключей FontMapper и FontSub... не помогает.

ZeroChaos, подними описание в шапку темы, сам я шапку редактировать уже не могу.
« Последнее редактирование: 16 Июля 2009, 13:39:54 от ZeroChaos »

Оффлайн VIPer

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1063
Я обнаружил, что xwxtoimg.exe сжат криптором Armadillo v1.7 (см. снимок экрана).
Загрузите распаковщик Armadillo по адресу http://unpacking.narod.ru/armadillo.html.
« Последнее редактирование: 16 Июля 2009, 14:42:15 от VIPer »

СССР

Оффлайн KiLLWarez

  • Новичок
  • *
  • Сообщений: 14
Вероятнее всего DiE врет.

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

Ну и скрин от PEiD впридачу.

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
Цитата: VIPer
Я обнаружил, что xwxtoimg.exe сжат криптором Armadillo v1.7 (см. снимок экрана).
Загрузите распаковщик Armadillo по адресу http://unpacking.narod.ru/armadillo.html.
Нет, файл ничем не запакован. Все секции чистые. Вот блин разработчики намудрили!  
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн VIPer

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1063
Попробуйте тогда кодировку UTF-8, но это конец проекту будет. Очень громоздкие тексты будут в этом формате, которые не уместятся в оригинальный размер.

СССР

Оффлайн KiLLWarez

  • Новичок
  • *
  • Сообщений: 14
UTF-8 тоже не подходит. И конечно он невероятно увеличил бы проект.

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

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

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

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

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


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

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

Пока у меня выход один - мучать разработчиков, чтобы помочь им руссифицировать софтину.

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
Нет, все таки UTF-8. Такая же фигня как и в nanozip, но если в nanozip можно было хоть как-то русифицировать программу, то здесь это практически невозможно из-за скрипта - его невозможно удлинить почему-то. Решение найдено - кодировка UTF-8, но вот браться за русификацию такого геммора никому не советую.  
P.S. Кстати, версия TCL 8.5.3, см. скрин ниже:
« Последнее редактирование: 18 Июля 2009, 01:55:08 от Solenij »
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн KiLLWarez

  • Новичок
  • *
  • Сообщений: 14
Но UTF не воспринимается, если просто заменить строку. Видимо еще где-то в коде скрипта нужно сделать set font или setlocale.

Я компенсировал размеры удаляя незначительные строки, как например параметры у того MessageBox'а что на первом скрине. Вот только со всем кодом не помогает.

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
Цитата: KiLLWarez
Но UTF не воспринимается, если просто заменить строку. Видимо еще где-то в коде скрипта нужно сделать set font или setlocale.

Я компенсировал размеры удаляя незначительные строки, как например параметры у того MessageBox'а что на первом скрине. Вот только со всем кодом не помогает.
Как это не воспринимается, я же не от балды написал, что стоит кодировка UTF-8. Это скрипт, а значит надо правильно его переводить - слова не должны быть ни больше, ни меньше чем исходное слово. Я писал выше, что если переводить эту программу, то надо просто напросто переписывать целый скрипт и использовать кодировку UTF-8.
А вот пример переведенного окна о выходе из программы:

А здесь можно скачать екзешник с переведенным этим окном: СКАЧАТЬ
Может, вы просто неправильно используете кодировку UTF-8?
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн KiLLWarez

  • Новичок
  • *
  • Сообщений: 14
Цитата: Solenij
Может, вы просто неправильно используете кодировку UTF-8?

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

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

ps: Еще возникли вопросы типа, а реально ли такое написать в удобоваримой форме и т.п., но это от усталосли, странные выходные были.

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
Цитата: KiLLWarez
Вероятнее всего, сейчас перепроверю.

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

ps: Еще возникли вопросы типа, а реально ли такое написать в удобоваримой форме и т.п., но это от усталосли, странные выходные были.
Вообще когда русифицируешь программу путем изменения кодировки, то лучше это делать напрямую, прямо через HEX-редактор, так надежнее.
По поводу UTF-редактора, могу посоветовать маленькую программу. Суть её - она показывает написанное слово в пяти самых популярных кодировках, и именно в HEX-кодах. Кстати, советую её всем держать на винте, кто занимается русификацией ПО, иногда хорошо помогает.
Ссылка на программу: СКАЧАТЬ
И еще по теме могу порекомендовать онлайн-кодировщик текста. Очень много различных кодировок. Иногда тоже выручал.
Ссылка на онлайн-кодировщик: ПЕРЕЙТИ
А по поводу русификации этой программы, могу сказать следующее. Я немного исследовал программу и понял, что русифицировать ее можно либо, взяв скрипт ресурсов интерфейса у разработчиков и переписать (русифицировать) его в кодировке UTF-8, а потом воткнуть его в программу, либо найти и сломать процедуру шифровки/расшифровки скрипта, наподобии как русифицировать PE Explorer.
Уважайте труд других людей - они будут уважать Ваш!!!