avatar_Teodorrrro

Stardock SkinStudio 8.0.0.1

Автор Teodorrrro, 13 января 2014, 15:35:00

« 3D Via Virtools | MAGIX Audio & Music Lab 2014 »

TeodorrrroАвтор темы

Для работы SkinStudio 8 необходима WindowBlinds 8.
Сайт: Войдите на сайт для перехода по ссылке
На боковых панелях программы не удалось убрать кракозябры, за текст в них отвечают Sections.ini и SubSections.ini (причём в главном окне надписи из этого файла отображаются нормально). В файлах менял кодировки - не помогло.

Скриншот:


За материалами - в личку.

Leserg

Да там, как по мне, "темный лес с бабами ягами"! Насколько мне со своей колокольни удалось выяснить, намудрили с преобразованием кодировок ANSI->UTF8. Короче к каждому символу строки прибавляется нулевой байт. Для нижней половины таблицы ASCII (0-127) - нет проблем, а тех символов, что выше (127-255), получается бред. Возможно я ошибаюсь, т.к. еще неуверенно себя чувствую в поиске и устранению проблем с кодировками.
Кто ищет, тот всегда найдет!

Nexus

teodorrrro, а что это за файл с расширением .lpu? Куда он тулится? Вобщем немного позже углублюсь в эту проблему, так как
нужно добить одну прогу...

ЦитироватьКороче, к каждому символу строки прибавляется нулевой байт.
Точно такая же фигня срабатывет и при работе с Qt приложениями.

TeodorrrroАвтор темы

Цитироватьфайл с расширением .lpu
Проект перевода Passolo.

Nexus

teodorrrro, где взять на него ключ? Что-то не найду нигде, может искал не там где надо.

TeodorrrroАвтор темы

Цитироватьключ?
Ключа в свободном доступе нет, а у меня лицензия.  :smile:

Nexus

Найдена причина возникновения крякозяблей на боковых панелях после считывания строк с файлов Sections.ini и SubSections.ini. Проблема в самом коде программы, теперь буду думать как все это нормализовать.

Nexus

teodorrrro, решена проблена с крякозяблями на боковых панелях, добавил свою процедуру на ассемблере и все отлично пашет :biggrin:  .
Осталось теперь решить проблему со строками, которые справа отображаются синим цветом - там тоже своя заковыка, нужно немного повозиться.

Да, какой тебе нужно файл переделывать, тот что с русским переводом или оригинальный английский файл?

TeodorrrroАвтор темы

Класс! Исходный английский.

Leserg

Цитироватьдобавил свою процедуру на ассемблере
А можно подробней? Что за процедура, что она делает, куда и как ты её добавил, если не затруднит. :smile:
Кто ищет, тот всегда найдет!

Nexus

teodorrrro, отдаю файл, в котром решена проблема только с боковыми панелями слева, то есть, там, где считываются строки с различных INI файлов. К сожалению, я не могу решить ТЕХНИЧЕСКИ проблему со строками, которые располагаются справа и выделены синим цветом. Дело в том, что они переводятся в Юникод(а потом и в крякозябли) на системном уровне в нулевом кольце, куда отладчику доступ запрещен, только через WinHex можно наблюдать как портятся строки в памяти. Поэтому нету никакой возможности как либо повлиять на перекодировку этих строк. Даже через редактор ресурсов(Ресторатор) нельзя поменять этим строкам никакие свойства. Есть, конечно, теоретическая возможность поменять громаднейший фрагмент кода программы, чтобы правильно формировалось окно с этими стоками, но это уже будет мазохизм, а не решение проблем с крякозяблями :biggrin:

Показать / Скрыть текст

Leserg, просто добавил в конец файла небольшой фрагмент кода-перекодировщика:

PUSH EAX
PUSH EDX
PUSH ECX
ADD EAX,EAX
ADD EAX,6
PUSH EAX
PUSH EDX
PUSH -1
PUSH EDI
PUSH 0
PUSH 4E3
CALL DWORD PTR DS:[]
POP ECX
POP EDX
POP EAX
JMP 004681D4


На скрине это будет выглядеть так:
Показать / Скрыть текст
[свернуть]

Чтобы эта процедура была задействована нужно поменять это:
Показать / Скрыть текст
[свернуть]

на это:
Показать / Скрыть текст
[свернуть]

Leserg

Nexus, спасибо! Будет теперь чем заняться на досуге. Я так понимаю, что эту функцию можно использовать везде, где встречаются проблемные места с кодировками. Единственный момент, так это правильно определить место внедрения. :wacko:
Кто ищет, тот всегда найдет!

TeodorrrroАвтор темы

Благодарю за проделанное исследование! :surprised:  

Цитата: Nexusнельзя поменять этим строкам никакие свойства


Кстати, в Радиаликсе при смене ANSI_CHARSET на RUSSIAN_CHARSET для элементов окна с этими злополучными элементами ничего не происходит.
Показать / Скрыть текст
[свернуть]

WYLEK

Друзья, не вставляйте такие большие картинки - шаблон разваливаете.
Есть же картинки с превью...

Nexus

ЦитироватьКстати, в Радиаликсе при смене ANSI_CHARSET на RUSSIAN_CHARSET для элементов окна с этими злополучными элементами ничего не происходит.
Да строка даже шрифт использует другой чем в этом ресурсе, и свойства строки не используются. Программа использует строку для своих нужд, а свойства отбрасывает. Чтобы прикрутить ей свойства с ресурсов нужно нехило перелопатить код, но оно того не стоит, так как займет много времени для написания кода в одиночку. Вот так по придурошному сделана программа :wacko:  

ЦитироватьДрузья, не вставляйте такие большие картинки - шаблон разваливаете. Есть же картинки с превью...
Понял, исправился :tongue:

* Ваши права на сайте

    Light Portal

  • Вы можете просматривать элементы портала
  • Вы не можете управлять блоками
  • Вы не можете управлять своими страницами
  • Вы не можете размещать свои страницы без модерации

    Simple Machines

  • Вы не можете удалять темы.
  • Вы не можете создавать темы.
  • Вы не можете отвечать на сообщения.
  • Вы не можете прикреплять файлы.
  • Вы не можете изменять свои сообщения.
  • Вы не можете удалять свои сообщения.

Яндекс.Метрика Каталог@MAIL.RU - каталог ресурсов интернет