(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Создание многоязычных приложений, переводимых пользователями (download, исходники)

Источник: tsilang

TЗадача создания многоязычных приложений, в которые пользователи могут добавлять свои переводы и языки, гораздо проще, чем видится на первый взгляд. Конечно, учитывая, что мы используем TsiLang Components Suite в своих разработках.

Рассмотрим решение данной задачи на примере проекта MastApp из папки примеров Delphi.

1. Перевод проекта

На переводе проекта мы не будем долго останавливаться, подразумевая, что Вы уже освоили эту часть. Можно только обратить внимание на используемые компоненты.

В проекте мы будем использовать один TsiLangDispatcher, один TsiLang и TsiLangLinked на остальных формах.

Мастер перевода TsiLang

Изображение 1. Мастер перевода Delphi.

Вставляем TsiLang и TsiLangDispatcher на модуль MastData, так как он создается автоматически и используется всеми модулями проекта.

2. Создание файла переводов.

После ввода переводов для всех форм, а можно и не вводить переводы, оставив только английские термины, мы можем экспортировать переводы во внешний файл. Для этого воспользуемся функцией File/Save/Load Translations/Save Project из меню TsiLang Expert (TsiLang Expert находится в меню Tools). Мы рекомендуем использовать SIB файлы для хранения переводов, так как работа с ними гораздо быстрее, по сравнению с SIL файлами. Но Вы можете выбрать и SIL файлы, так как они хранят данные в обычном текстовом виде и могут быть отредактированы любым текстовым редактором.

3. Использование внешнего файла и динамическое изменение доступных языков.

Вы можете использовать два варианта:

  1. Задать имя файла в свойстве FileName для TsiLangDispatcher
  2. Проверять наличие файла в установленном месте в коде и потом загружать его самостоятельно.

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

procedure TMastData.DataModuleCreate(Sender: TObject);
var
  sOurSibFile: string;
begin
  // вычисление названия файла 
  sOurSibFile := ExtractFilePath(Application.ExeName) + 'TheNameOfYourFile.sib';
  // проверяем, существует ли такой файл 
  if FileExists(sOurSibFile) then
  begin
   // выставляем значение свойства 
   // это позволит автоматически загружать формы, созданные позднее 
    siLangDispatcher1.FileName := sOurSibFile;
   // загружаем переводы в уже созданные формы 
    siLangDispatcher1.LoadAllFromFile(sOurSibFile);
  end;
end;

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

Для динамического отображения доступных языков мы:

  • Добавим новый пункт меню в главное меню приложения.

Добавление меню языков

Изображение 2. Добавление меню языков Delphi.

  • Добавим код, настраивающий пункты меню, соответственно имеющимся языкам. Его можно добавить в код события OnShow для главной формы проекта:
 // изменение языка при выборе пункта меню 
procedure TMainForm.LanguageMenuItemClick(Sender: TObject);
begin
  MastData.siLangDispatcher1.ActiveLanguage := TMenuItem(Sender).Tag;
  TMenuItem(Sender).Checked := True;
end;

procedure TMainForm.FormShow(Sender: TObject);
var
   MenuItem: TMenuItem;
   I: Integer;
begin
  for I := 1 to MastData.siLangDispatcher1.NumOfLanguages do
  begin
    MenuItem := TMenuItem.Create(Self);
       // устанавливаем заголовок 
    MenuItem.Caption := MastData.siLangDispatcher1.LangNames[I - 1];
       // устанавливаем тэг для удобства переключения языков 
    MenuItem.Tag := I;
    MenuItem.RadioItem := True;
       // отображаем текущий выбор языка 
    MenuItem.Checked := I = MastData.siLangDispatcher1.ActiveLanguage;
     // устанавливаем обработчик выбора языка 
    MenuItem.OnClick := LanguageMenuItemClick;
       // добавляем пункт меню 
    Language1.Add(MenuItem);
  end;
end;

Внимание! Код обновления и отображения языков должен выполняться после загрузки файла переводов.

4. Заключение.

Теперь запускаем проект на выполнение и "вот и все"! Как видите, задача, казавшаяся сложной, решена в течение нескольких минут, используя TsiLang Components Suite. Пользователи смогут переводить Ваше приложение без Вашего участия и перекомпиляции.

Ссылки по теме

Файлы для загрузки

В каталоге Download Вы можете найти другие полезные материалы - утилиты, программы, документацию, исходники, электронные книги. Если Вы обнаружили неработающую ссылку, пожалуйста, помогите другим посетителям и администратору каталога Download - сообщите об этом редактору.



 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Дискуссии и обсуждения общего плана »
Написать редактору 
 Рекомендовать » Дата публикации: 18.01.2010 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
ESET NOD32 Cyber Security Pro, лицензия на 1 год
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
IBM DOMINO ENTERPRISE CLIENT ACCESS LICENSE AUTHORIZED USER ANNUAL SW SUBSCRIPTION & SUPPORT RENEWAL
Inventory 9
ESET NOD32 Smart Security Business Edition newsale for 5 user, лицензия на 1 год
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
MakerBot Replicator 5th GEN
CubeX
3D сканер SENSE
PrintBox3D One
PICASO 3D Designer (Желтый)
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новые материалы
Краткие описания программ и ссылки на них
Delphi - проблемы и решения
Новые программы для Windows
Компьютерная библиотека: книги, статьи, полезные ссылки
Компьютерный дизайн - Все графические редакторы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Пишу программы на заказ профессионально (1925)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
проблемы с установкой Rational Rose Enterprise Edition (11)
Привет! Есть проблема, прошу совета. Скачал с rational.com Rational Rose Enterprise Edition,...
 
Вакансия Web-разработчик. Нижний Новгород. Полная занятость (1)
Дружная команда молодых специалистов Интернет-агентства разыскивает Web-разработчика на полную...
 
Программы Delphi на заказ (224)
Пишу программы в среде Delphi на заказ http://bddelphi.ucoz.ru/
 
Вакансия, Москва, Офис. Руководитель группы разработки 100-150к (2)
Мы собираем команду для реализации амбициозного B2B проекта. Ищем энергичных профессионалов,...
 
 
 



    
rambler's top100 Rambler's Top100