DKLang Localization Package — это набор классов, предназначенных для облегчения локализации (перевода на другие языки) приложений, написанных на Delphi.
Особенности
- Простота использования. Положите на форму экземпляр
TDKLanguageController
, сохраните проект (при этом автоматически будет создан исходный языковой файл) и добавьте пару строк кода: вы получаете работающее многоязычное приложение! Подробности реализации см. в прилагаемых примерах. - Полная интеграция с библиотекой визуальных компонентов Delphi VCL. Возможность автоматизированного отслеживания изменений в структуре и свойствах форм, фреймов, модулей данных и т. п., и компонентов, им принадлежащих.
- Полная поддержка Unicode.
- Запоминание значений строковых свойств. Запоминание свойств класса
TStrings
, элементов списков классаTCollection
и потомковTPersistent
. При этом сохраняются лишь свойства, опознаваемые streaming-механизмом Delphi, как хранимые (stored). - Возможность определения набора строковых констант для проекта. Обращение к константам производится по имени (применяется быстрый бинарный поиск по имени).
- Хранение переводов в обычных текстовых файлах, доступных для редактирования любым текстовым редактором. Кроме того, имеется и намного более совершенный инструмент для редактирования переводов, DKLang Translation Editor, предоставляющий гораздо больше возможностей.
- Автоматическое переключение языка во всех отображаемых формах путём изменения языка глобального экзмепляра класса
TDKLanguageManager
. - В невизуальном компоненте до и после смены текущего языка вызываются специальные события.
- Возможность игнорирования любых свойств, а также принудительного сохранения свойств, опознаваемых, как несохраняемые (not stored). Эти свойства определяются с помощью списком
IgnoreList
иStoreList
компонентаTDKLanguageController
, соответственно, при этом поддерживаются маски имён (например,*.Font.Name
). - Автоматическое формирование так называемого исходного языкового файла (файла с расширением
.dklang
), содержащего исходные данные для локализации всего проекта. - Возможность применения механизма локализации без визуальной составляющей (форм и компонентов), только для локализации констант.
- Возможность сборки проекта с использованием runtime-библиотеки DKLang.
- Thread-safe-дизайн, позволяющий применять механизм в многопоточных приложениях. При этом обеспечивается неблокирующее чтение данных несколькими потоками одновременно.
Авторы
- Дмитрий Канн — изначальный дизайн и разработка до версии 3 включительно.
- Брюс Миллер (Bruce J. Miller) — текущий разработчик (начиная с версии 4).
Документация
Полная документация проекта доступна по этой ссылке.
Лицензия
Если иное не указано явно, это программное обеспечение может распространяться по одной из следующих лицензий:
Программное обеспечение и любая сопроводительная документация предоставляются без каких-либо гарантий. Вы используете их исключительно на свой страх и риск.
Поддержка
Исходный код
Чтобы загрузить самую новую версию исходных кодов, склонируйте мой репозиторий на GitHub:
git clone https://github.com/yktoo/dklang.git