Внешние файлы переводов SIL и SIB в TsiLang

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

В этой статье сравним оба формата, рассмотрим экспорт и импорт переводов, покажем загрузку файлов во время работы приложения и разберём рекомендации для реальных проектов.

Зачем нужны внешние файлы переводов?

TsiLang позволяет хранить переводы непосредственно в .DFM-файлах приложения. Это удобно для небольших проектов. Но если приложение регулярно обновляется, отдельные файлы переводов дают несколько преимуществ:

  • Обновление переводов без перекомпиляции приложения
  • Вынос переводов из DFM и уменьшение файлов форм
  • Удобная работа с внешними переводчиками
  • Использование системы контроля версий в процессе локализации
  • Загрузка языковых данных во время работы приложения

Чем отличаются SIL и SIB?

TsiLang поддерживает два формата внешних файлов:

Характеристика.SIL — текстовый.SIB — двоичный
ФорматЧитаемый INI-форматДвоичный формат
РедактированиеТекстовый редактор или SIL EditorSIL Editor
Подходит дляКонтроля версий и совместной работы с переводчикамиПоставки приложения и быстрой загрузки во время работы
Скорость загрузкиНиже, чем у SIBОчень высокая
Читается в текстовом редактореДаНет
Совет
Практическая рекомендация

Во время разработки используйте .SIL: текстовый формат удобен для совместной работы и контроля версий. Перед выпуском приложения файлы можно преобразовать в .SIB, чтобы ускорить загрузку переводов.

Экспорт и импорт переводов

Откройте TsiLang Expert через меню Tools в RAD Studio, Delphi или C++Builder. Если для интерфейса TsiLang выбран русский язык, используйте следующие команды в разделе Файл:

  • Экспорт

    Сохранить в файл (Save to File) → Проект (Project) или Формы (Form(s)).

  • Импорт

    Загрузить из файла (Load from File) → Проект (Project) или Формы (Form(s)).

Переводы также можно объединять, сохраняя существующие записи и добавляя обновления.

Загрузка переводов во время работы приложения

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

// be sure to adjust file path to the actual file!
siLangDispatcher1.FileName := 'MyAppTranslations.sil';

// or for binary files
// siLangDispatcher1.FileName := 'MyAppTranslations.sib';

siLangDispatcher1.LoadAllFromFile(siLangDispatcher1.FileName);

Сначала задаётся свойство FileName компонента TsiLangDispatcher. Благодаря этому формы, созданные позже во время работы приложения, тоже загрузят переводы из указанного файла.

Вызов LoadAllFromFile загружает переводы во все уже созданные формы приложения.

TsiLangDispatcher также обеспечивает согласованное переключение языка во всех подключённых к нему формах.

Рекомендации по работе с внешними файлами

  • Храните файлы в папке относительно каталога приложения

    Например, в подпапке lang. При запуске проверяйте путь, полученный относительно каталога приложения.

  • Ускоряйте загрузку переводов

    Используйте SIB, когда важно сократить время загрузки.

  • Используйте SIL Editor

    Редактор позволяет удобно изменять файлы .SIL и .SIB. Его можно бесплатно передавать переводчикам и конечным пользователям.

Наши приложения Resource Builder, HelloApp Studio, SIL Editor и Dictionary Manager используют описанный подход.

Что это даёт на практике

  • Распределённая команда может работать параллельно: разработчики добавляют функции, переводчики обновляют языковые файлы.
  • Заказчики и региональные команды могут исправлять переводы после выпуска, не получая доступа к исходному коду.
  • SIL удобно хранить в Git, а SIB — включать в процесс подготовки выпуска приложения.

Обновляйте переводы независимо от приложения

Внешние файлы позволяют отделить работу над переводами от разработки приложения. Команда может совместно редактировать языковые версии, обновлять их без изменения исходного кода и поставлять в удобном формате — как для внутренних инструментов, так и для продуктов, предназначенных для международного рынка.

Начать можно с руководства Перевод формы Delphi с помощью ИИ: первый запуск. О том, как пользователям создавать собственные переводы, читайте в статье Создание многоязычных приложений с переводами пользователей.

Авторские права © 1998-2026 Игорь Ситиков, SiComponents. TsiLang®, Resource Builder® и SiComponents® являются зарегистрированными товарными знаками Игоря Ситикова. RAD Studio, Delphi и C++Builder являются товарными знаками и/или зарегистрированными товарными знаками Embarcadero Technologies, Inc.