Информация в данной статье актуальна только для СТАРЫХ версий IDE, до RAD Studio 2009!

(В современных версиях IDE юникод полностью поддерживается автоматически)

В случаях, когда язык по умолчанию в системе отличается от юникодного языка, может возникнуть проблема с поддержкой юникодных языков под Delphi или C++Builder. TsiLang поддерживает юникод достаточно хорошо, но необходимо выполнить ряд дополнительных настроек для корректного отображения и редактирования таких языков.

Для начала необходимо настроить Fonts и Charsets в Translation Editor. Для этого необходимо:

  • Удостовериться, что операционная система поддерживает редактирование нужного языка, например в Блокноте.
  • Открыть TsiLang Translation Editor (двойной щелчок на TsiLang).
  • Выбрать секцию Fonts в Дереве Переводов и установить шрифт, поддерживающий необходимый язык. Обычно, Tahoma поддерживает большинство языков.
  • Переключиться в секцию Charsets в Дереве и установить подходящий скрипт (Charset) для языка.
  • Выбрать в меню Tools->Default Languages и добавить настройки для необходимого языка в список настроек по умолчанию. Например, как показано на рисунке ниже:
Шрифты по умолчанию.

Шрифты по умолчанию.

  • После этого Вы сможете редактировать и видеть данные языки в Translation Editor.

К сожалению, не все элементы управления Delphi поддерживают отображение языков, в зависимости от установленного шрифта и скрипта. Многие элементы отображаются, только используя системные настройки для default locale. Для решения этой проблемы можно воспользоваться одним из нижеследующих:

  • Установить этот язык как язык по умолчанию. (Иногда может понадобиться также, установить его в опции “Language for non-Unicode programs” панели управления.)
  • Использовать Unicode VCL вместо стандартных. Unicode элементы управления, такие как TMS Unicode Component Pack или LMD ElPack поддерживаются TsiLang.
  • Заменить стандартные VCL элементы, которые являются просто суперклассами для стандартных элементов Windows (TButton, TCheckbox и прочие) на элементы управления, которые рисуются, используя Font и Charset. Например, TButton может быть заменен на TBitBtn. Также может понадобиться добавить owner-draw функциональность в элементы, аналогов для которых не найти в стандартной поставке, к примеру TComboBox. В данном случае необходимо отрисовывать каждый пункт списка самостоятельно в событии OnDrawItem и использовать настройки для Font и Charsets для отрисовки текста.

Третий способ самый сложный, тогда как первые два – наиболее простые.

Домашняя страница TsiLang Components Suite: https://www.tsilang.ru.

Скачать последнюю версию можно с https://www.tsilang.ru/download-tsilang-components-suite/

Эта статья в PDF формате доступна здесь: adding_support_for_far_east_or_other_unicode_languages_ru.pdf.