Зачем изобретать колесо, если кто-то уже позаботился об этом?

Локализация программного обеспечения очень важна, если вы хотите расширить охват рынка и продавать продукт иностранным клиентам. Разработчики, работающие с RAD Studio, Delphi или C ++ Builder, могут выбрать три различных способа добавления многоязычной поддержки в свои приложения. Во-первых, вы можете сделать это с помощью Resource DLL Wizard. Во-вторых, вы можете написать свой собственный инструмент. Однако, так же, как и с чем-либо, что сделано вручную и эксклюзивно, написание вашего инструмента будет стоить вам времени и энергии, которые могут быть вложены в более важные вещи. Если вы хотите ускорить жизненный цикл разработки, лучше всего использовать готовый инструмент, такой как TsiLang Components Suite. Это удобный, простой в использовании и гарантированно хорошо работающий инструмент. В любом случае, зачем изобретать колесо, если кто-то уже позаботился об этом, и люди знают, что это “колесо” отлично работает?!

«Это то, что можно назвать хорошо вложенными деньгами»

Клиенты по всему миру используют TsiLang Components Suite, и это уже помогает им сделать их программное обеспечение многоязычным. Стив Джорди является одним из них. Он работает инженером-программистом в TiltSoft, Швейцария. Его компания специализируется на разработке программного обеспечения для мониторинга вулканов, которое распространяется среди конечных пользователей во многих странах мира. Прежде чем перейти на TsiLang, компания искала простой в использовании, но мощный инструмент для локализации своих приложений для других стран. Наряду с простотой и ценой, одним из их особых требований было то, что программное обеспечение должно позволить конечным пользователям переводить приложение самостоятельно. Ни один из других компонентов не смог удовлетворить их требования.

«Мы исследовали и опробовали множество решений», – говорит Стив. «Все они описывали себя, как лучший инструмент. Мы выбрали TsiLang потому что, в отличии от него, ни один из других инструментов не был действительно лучшим. Только у TsiLang был словарь, только у TsiLang был такой механизм диспетчера, который позволяет программировать переключение языка только в одном месте. Только TsiLang смог перевести заголовки столбцов DBGrid и т. д. С помощью этого программного обеспечения мы можем локализовать наше программное обеспечение за считанные часы. Это экономит время и усилия и помогает нам больше сосредоточиться на разработке самого проекта. Мы можем порекомендовать TsiLang Components Suite без единого колебания. Это то, что можно назвать хорошо вложенными деньгами».

TsiLang Components Suite делает процесс локализации двухминутной поездкой

Чтобы дать представление о том, как легко использовать программное обеспечение TsiLang, мы хотели бы использовать пример MDIAPP, включенный в стандартную поставку Delphi. Давайте перейдем к мультиязычности за 7 шагов!

  • Откройте или создайте пример проекта MDIApp.dpr в RAD Studio, Delphi или C++ Builder.
  • Шаг 1. Запустите TsiLang Expert из IDE. Вы можете сделать это через меню Tools. В открывшемся окне TsiLang Expert вы можете увидеть панель главного меню и панель инструментов. Ниже вы можете просмотреть список всех доступных форм проекта. Выберите все из них.
TsiLang Expert
  • Шаг 2. Выберите в меню эксперта «File | Wizard» или нажмите соответствующую кнопку на панели инструментов. Нажмите кнопку «Next» в появившемся мастере, чтобы запустить его.
  • Выберите основную форму и установите тип TsiLang в поле со списком справа. Для всех остальных форм в списке установите TsiLangLinked.
Мастер переводов. Шаг 1
  • Настройте параметры, как показано ниже, и нажмите кнопку «Next».
Мастер переводов. Шаг 2

Ввод переводов одним щелчком мыши

  • Шаг 3. После завершения работы мастера формы проекта уже почти полностью многоязычны. Просто дважды щелкните по любой форме в Expert, чтобы открыть редактор переводов, и введите переводы для записей пользовательского интерфейса. Чтобы предотвратить перевод любого элемента, вы можете оставить значения для других языков пустыми или добавить этот элемент в список исключений.
Редактор переводов
  • Дважды щелкните другие формы в TsiLang Expert, чтобы ввести переводы для элементов управления, размещенных на этих формах.

Перевод строк в исходном коде

  • Шаг 4. На следующем шаге мы переведем все строки, использованные в наших исходных файлах. Щелкните по «MainForm» и выберите команду «File | Source | With Form…» в меню TsiLang Expert. Эта команда откроет форму, отображающую все строковые константы, найденные в исходном коде вашего юнита. Вы можете удалить любую константу из этого списка, если не хотите, чтобы эта константа была переведена. Просто выберите строку с нужной константой и нажмите кнопку «Delete».
Поиск строк в коде

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

После нажатия кнопки «Modify Source» все перечисленные строки будут заменены методом GetTextOrDefault() компонента TsiLang. Этот метод возвращает строковое значение на основе идентификатора входной строки в зависимости от активного языка интерфейса или значения для первого языка, если перевод недоступен.

Исходные значения строк будут помещены в свойство TsiLang «Strings». Вы можете перевести их, дважды щелкнув по этому свойству в Инспекторе Объектов.

Тонкая настройка

  • Шаг 5. Чтобы сделать ваше приложение по-настоящему многоязычным, вам необходимо заменить компоненты TSaveDialog, TOpenDialog, TFontDialog и TPrintDialog на TsiSaveDialog, TsiOpenDialog, TsiFontDialog и TsiPrintDialog. Эти компоненты доступны на странице палитры компонентов “SiDialogs”. Свяжите их с TsiLang, установив свойство “siLang”. Откройте редактор заголовков стандартных диалоговых окон, дважды щелкнув свойство «DlgsCaptions» в TsiLang в Object Inspector и введите переводы для общих строк диалога.

Код для смены языка

  • Шаг 6. Чтобы добавить код переключения языка, выполните следующие действия:
    • Добавьте новый пункт меню под названием «Язык» на верхний уровень главного меню.
    • Добавьте пункты «Английский» и «Немецкий» в меню «Язык».
    • Установите свойство RadioItem для этих элементов в значение True и свойство Checked для английского элемента – True.
    • Установите свойство Tag в значение 1 для английского элемента и в 2 для немецкого элемента.
    • Добавьте следующий код для обработчика событий OnClick для обоих элементов:
procedure TMainForm.German1Click(Sender: TObject);
begin 
   siLangDispatcher1.ActiveLanguage := TComponent(Sender).Tag;
   TMenuItem(Sender).Checked := True;
end;
  • Шаг 7. Скомпилируйте ваш проект и запустите его. Ваше приложение – многоязычное!

Вы можете скачать TsiLang Components Suite с нашей страницы для скачивания.