Этот сайт создан как клуб русификаторщиков. Для нас существуют три основных правила.
1. Мы никому и ничего не должны!
2.Один пришедший на сайт толковый русификаторщик дороже всех пользователей.
3. Мы делаем русификаторы для своего сайта, но в оригинале ими могут пользоваться все в интернете.
Небольшая статья по устранению "крякозяблей" в программах, это действительно моя первая статья в жизни, писал преимущественно ночью, сколько сил после работы хватало... На примере рассматривается разбор шестнадцатеричного редактора WinHex в дизассемблере. Пожалуй, одна из легких ситуаций, которую можно без проблем решить.
Nexus, при чтении твоего труда, у меня сложилось впечатление, что это твоя не первая статья. Стиль изложения и подача материала носят черты профессионализма. Это не похоже на сочинение первоклассника "Как я провел этим летом", а говорит о неком опыте (или таланте) в литературной сфере.
Не знаю как по плагину выложить материал - мудрено там очень... Ну да это будет третья часть. О художественной стилистике - слишком много книг читал . Но это действительно моя первая статья в жизни, писал преимущественно ночью, сколько сил после работы хватало... Кстати, а какими ты инструментами создавал статьи? Особенно красивые цветные обводы строк, у меня что под мышку подвернулось, то и применил.
На этой странице ( https://wylek.ru/forum/showtopic-17 ), скачал файл "Борьба с крякозябликами.pdf". В нем так описывается легкий прием на тему кодировок: "Самый простой вариант решения – это смена кодовой страницы в реестре Windows в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsCodePage. Наобум сменил значение в строке “1252”, из c_1252.nls превратил в c_1251.nls. Перезагрузил компьютер – сработало!". Для эксперимента с кодировкой ISO-8859-5 хотел попробовать такой способ, но в реестре слишком много таких элементов и непонятно, какие из них следует подправить. Поэтому и вопрос. Как ее найти? Примеры этих элементов, в которых возможно бы изменять теоретически: HKEY_CLASSES_ROOT/Interface/MIME/Database/Charset/csISOLatinCyrillic/AliasForCharset/ HKEY_CLASSES_ROOT/Interface/MIME/Database/Charset/Cyrillic/AliasForCharset/ HKEY_CLASSES_ROOT/Interface/MIME/Database/Charset/ISO-8859-5/AliasForCharset/ HKEY_CLASSES_ROOT/Interface/MIME/Database/Charset/ISO-8859-5:1988/AliasForCharset/ HKEY_CLASSES_ROOT/Interface/MIME/Database/Charset/iso-8859-5/Codepage [+InternetEncoding] HKEY_CLASSES_ROOT/Interface/MIME/Database/Charset/iso-ir-144/AliasForCharset/ HKEY_CLASSES_ROOT/Interface/MIME/Database/Codepage/28595/BodyCharset [+Description, +Encoding, +Family] HKEY_lOCAL_MACHINE/SOFTWARE/Classes/CLSID/interface/MIME/Charset/csISOLatinCyrillic/AliasForCharset HKEY_lOCAL_MACHINE/SOFTWARE/Classes/CLSID/interface/MIME/Charset/Cyrillic/AliasForCharset HKEY_lOCAL_MACHINE/SOFTWARE/Classes/CLSID/interface/MIME/Charset/ISO-8859-5/AliasForCharset HKEY_lOCAL_MACHINE/SOFTWARE/Classes/CLSID/interface/MIME/Charset/ISO-8859-5:1988/AliasForCharset HKEY_lOCAL_MACHINE/SOFTWARE/Classes/CLSID/interface/MIME/Charset/iso-8859-5/Codepage [+InternetEncoding] HKEY_lOCAL_MACHINE/SOFTWARE/Classes/CLSID/interface/MIME/Charset/iso-ir-144/AliasForCharset/ HKEY_lOCAL_MACHINE/SOFTWARE/Classes/CLSID/interface/MIME/Codepage/28595/BodyCharset [+Description, +Encoding, +Family]
Сообщение отредактировал greg 30 марта 2024 - 20:10
Как то делал перевод небольшой программы и в некоторых местах были крякозябры. Победил их с помощью x64dbg дело оказало в структуре LOGFONT, а именно в значение lfCharSet, некоторые европейцы при заполнение ставят значение ANSI_CHARSET(кодировка для европейских языков), а надо ставить DEFAULT_CHARSET(кодировка зависимая от системы). Нашел место заполнения структуры по функций CreateFontIndirect и заменил 0 на 1 и это исправило крякозябры
Можно ли что-то сделать, чтобы в программе отображался русский
Язык берётся из файла ...\HeliosPaint\language\language.txt Чтобы переключить на другой, нужно переименовать файл, например language_de.txt в language.txt тогда язык будет немецким. Исходные переводы в ANSI 1252, а при переводе на русский в ANSI 1251. Программа любую локаль врубает на 1252 и в итоге все переведенное выглядит крокозябрами.
HeliosPaint и language.txt переведенный на русский язык https://www.upload.ee/files/18576867/HeliosPaint.zip.html
Программа любую локаль врубает на 1252 и в итоге все переведенное выглядит крокозябрами.
Оригинальная кодировка локали - UTF-8. Если русскую локалочку в UTF-8 сохранить вылезают очень красивые кракозяблики. Впрочем, и другие кодировки дают такой же эффект. По крайней мере в Notepad++. И если русские слова написать английскими буквами - получаем вот такую хрень: Может какая то программная фича, не поддерживающая кириллицу...