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

Логический шрифтИсправляем некорректное отображение кириллицыИтак, вы сделали перевод любимой программы на русский язык, создали локализованный
  1. Оффлайн

    Автор темы

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

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




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

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

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



    Читаем здесь
    Сообщение отредактировал 26 апреля 2018 - 16:02

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

    12 мая 2015 - 11:24 / #1
  2. Оффлайн

    dinis124

    Звание: Бывалый

    Проверенные

    Сообщений: 290

    Создано тем: 13

    Рейтинг: 4

    Репа: 0

    Баллы: 51

    Был: 2020-05-02 14:08

    Лайков: 4

    Спасибо, очень познавательно и много нового.
    12 мая 2015 - 12:13 / #2
  3. Оффлайн

    Автор темы

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Довольно редкостное явление.

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

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

    Nexus, я писал об этом в своих руководствах. Да толку ноль, их никто не читает, как впрочем и это.sad

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

    14 мая 2015 - 00:42 / #3
  4. Оффлайн

    Stalevar

    Звание: Эксперт

    Команда

    Сообщений: 488

    Создано тем: 85

    Рейтинг: 6

    Репа: (59|59|0)

    Баллы: 51

    Страна: не указана!

    Был: 2015-05-25 08:56

    Лайков: 22

    Да толку ноль, их никто не читает, как впрочем и это

    Читают, ещё как читают!
    Статья очень полезная, лично я почерпнул из неё многое.
    А то уже наверное Nexus устал мне кодировку править.

    Храни меня Господь от тех, кому я верю. Кому не верю - тех остерегусь я сам.

    15 мая 2015 - 08:29 / #4
  5. Оффлайн

    druc

    Звание: Бывалый

    Команда сайта

    Сообщений: 317

    Создано тем: 26

    Рейтинг: 5

    Репа: (151|151|0)

    Баллы: 501

    Страна: не указана!

    Был: 2024-11-28 12:50

    Лайков: 189

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

    Автор темы

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

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

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

    17 мая 2015 - 22:21 / #6
  7. Оффлайн

    Nexus

    Забанен

    Сообщений: 611

    Создано тем: 20

    Репа: 0

    Баллы: 0

    Был: 2022-07-03 23:07

    Лайков: 7

    Смею вас заверить, что это еще цветочки по сравнению с теми дебрями, которые вас поджидают при попытке локализации приложений написанных при использовании библиотеки Qt.

    Чувствую, камень в мой огородbiggrin
    Я вот как раз и хотел на тебя навесить написание мануала по QT, но ты ж не захотелhappy
    17 мая 2015 - 22:55 / #7
  8. Оффлайн

    Автор темы

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Я вот как раз и хотел на тебя навесить написание мануала по QT, но ты ж не захотел

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

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

    17 мая 2015 - 23:29 / #8
  9. Оффлайн

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2195

    Создано тем: 317

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3580

    Был: 2024-12-02 08:50

    Лайков: 202

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


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

    18 мая 2015 - 12:28 / #9
  10. Оффлайн

    Nexus

    Забанен

    Сообщений: 611

    Создано тем: 20

    Репа: 0

    Баллы: 0

    Был: 2022-07-03 23:07

    Лайков: 7

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

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

Статистика форума, пользователей онлайн: 2 (за последние 20 минут)

Создано тем
1197
Всего сообщений
15772
Пользователей
18032
Новый участник
VOVABOBR