• Логический шрифт 5 0 5 1
avatar_Leserg

Логический шрифт

Автор Leserg, 12 мая 2015, 11:24:00

« Борьба с крякозябликами. Часть вторая | Freemore ISO Maker Burner »

LesergАвтор темы

Логический шрифт
Исправляем некорректное отображение кириллицы


Итак, вы сделали перевод любимой программы на русский язык, создали локализованный файл, запустили приложение и, вдруг, вместо знакомых символов видите какую-то несуразицу, типа ""Id`e^aa`o, `i^u ^ed`a^e^ic"y`a"e`e^e`e!". Блин, что делать?Самое простое решение — выполнить замену кодовых страниц в операционной системе и добавить в реестр параметры подмены шрифтов. К сожалению, такое решение является грубым и будет работать только на вашей системе. Другие пользователи, воспользовавшись вашей работой, вместо текста на русском увидят эту несуразицу и им также придется вносить изменения в свою систему. Это в свою очередь может быть чревато негативными последствиями для других приложений. Впрочем я не буду останавливаться на этом подробно, а предлагаю вам решить проблему отображения символов кириллицы более изящно — в самом файле приложения. Конечно для этого нужны умение работы с отладчиком, знание API-функций и понимание ассемблерных инструкций. Решение не из простых и потребует от вас определенных навыков. Надеюсь, что это небольшое руководство поможет вам самостоятельно справиться с этой проблемой.

Надеюсь, что это небольшое руководство поможет вам самостоятельно справиться с этой проблемой.

В данном руководстве рассматриваются API-функции CreateFont и CreateFontIndirect, которые используются для создания логического шрифта. Этот шрифт впоследствии также может использоваться приложением для вывода текстовой и другой информации.



Читаем здесь
Кто ищет, тот всегда найдет!

dinis124

Спасибо, очень познавательно и много нового.

LesergАвтор темы

ЦитироватьДовольно редкостное явление.
Я с этим сталкиваюсь довольно часто, в связи с этим и появилась задумка написать это руководство.

ЦитироватьЕще бы надо создать мануал по программам на Дельфи, где в ресурсах встречаются ANSI_CHARSET
Nexus, я писал об этом в своих руководствах. Да толку ноль, их никто не читает, как впрочем и это. :sad:
Кто ищет, тот всегда найдет!

Kopejkin

Цитировать...никто не читает...
Позвольте с вами не согласиться! Читают!
Другое дело -  откликов нет/мало. Причина, как мне кажется, в серьезности материала, требующего осмысления, попыток практического применения, изучения дополнительных материалов и т.п.
Например, для меня  - это пока не очень понятно и довольно-таки сложно. И не потому, что плохо написано. Как раз, наоборот - это мне не хватает знаний!
Ваш материал уникален и он будет востребован. Поэтому, не поддавайтесь сомнениям и продолжайте.
Спасибо!

Stalevar

ЦитироватьДа толку ноль, их никто не читает, как впрочем и это
Читают, ещё как читают!
Статья очень полезная, лично я почерпнул из неё многое.
А то уже наверное Nexus устал мне кодировку править.
Храни меня Господь от тех, кому я верю. Кому не верю - тех остерегусь я сам.

druc

Leserg, СПАСИБО, присоединяюсь к предыдущим отзывам. И уже попытался применить на практике к одной проблемной для меня программе (точнее крякнутому основному исполняемому файлу) написанной на C++ (правда пока безуспешно, но в этом мои слабые познания, а точнее их отсутствие о C).

LesergАвтор темы

Спасибо, парни, за поддержку. Согласен, что информация не простая, требует некоторого осмысления и лежит совершенно в иной плоскости от того, что обычно принято считать локализацией. Смею вас заверить, что это еще цветочки по сравнению с теми дебрями, которые вас поджидают при попытке локализации приложений написанных при использовании библиотеки Qt. :biggrin:
Кто ищет, тот всегда найдет!

Nexus

ЦитироватьСмею вас заверить, что это еще цветочки по сравнению с теми дебрями, которые вас поджидают при попытке локализации приложений написанных при использовании библиотеки Qt.
Чувствую, камень в мой огород :biggrin:  
Я вот как раз и хотел на тебя навесить написание мануала по QT, но ты ж не захотел :happy:

LesergАвтор темы

ЦитироватьЯ вот как раз и хотел на тебя навесить написание мануала по QT, но ты ж не захотел
Но как можно написать про то, чего никогда не делал, не понимаешь и не знаешь как это делается? Попроси, например, ruslangxp написать такое руководство. Что из этого выйдет? Толковый материал получается у того, кто сам занимался вопросом и его решением. У нас на форуме есть неплохой топик, где мы делимся особенностями той и иной программы. Ребята, просто возьмите и напишите с чем вы столкнулись при локализации и как решили этот вопрос. Это неоценимый опыт, которым можно пользоваться, изменять и подстраивать под свои нужды. Nexus, у тебя здорово получается править Qt приложения под поддержку кириллицы, но ты не рассказываешь, КАК ты это делаешь! :wink:
Кто ищет, тот всегда найдет!

WYLEK

ЦитироватьНо как можно написать про то, чего никогда не делал, не понимаешь и не знаешь как это делается?

Согласен, надо мануал с картинками и кроликом, как всегда, и подробный метод нахождения.
А писать его должен ты, Nexus, тебе не отвертеться :biggrin:

Nexus

Leserg, вот как раз по CreateFontIndirect есть интересный экземпляр и тоже решается таким способом:

Прикол в том, что так просто здесь не выкрутиться, нужно проявить смекалку чтобы решить багу. Попробуй, получится ли у тебя догадаться в чем загвоздка :biggrin:  Если нет, то подскажу решение, хотя смльно сомневаюсь что подсказка понадобится :happy:

WYLEK

ЦитироватьLeserg, вот как раз по CreateFontIndirect есть интересный экземпляр и тоже решается таким способом:

Друзья, файлы пересылайте в личке, этот файл пролеченный и выставлять его на всеобщее обозрение рановато.

LesergАвтор темы

Цитата: Nexusвот как раз по CreateFontIndirect есть интересный экземпляр... Попробуй, получится ли у тебя догадаться в чем загвоздка...


Кто ищет, тот всегда найдет!

LesergАвтор темы

Цитата: Nexusвот как раз по CreateFontIndirect есть интересный экземпляр... Попробуй, получится ли у тебя догадаться в чем загвоздка...


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

Кто ищет, тот всегда найдет!

Nexus

ЦитироватьВ данном руководстве рассматриваются API-функции CreateFont и CreateFontIndirect
Довольно редкостное явление. У меня такое было всего один раз, но зато намучался я изрядно :wacko:  

Еще бы надо создать мануал по программам на Дельфи, где в ресурсах встречаются ANSI_CHARSET. Довольно часто переводчики наступают на эти грабли.

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

    Light Portal

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

    Simple Machines

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

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