(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
Panda Antivirus Pro - Лицензии для SMB - (лицензия на 1 год)
SmartBear TestComplete Platform - Node-Locked License - (Includes 1 year Maintenance)
Business Studio 4.2 Enterprise. Конкурентная лицензия + Business Studio Portal 4.2. Пользовательская именная лицензия.
TeeGrid VCL/FMX Source Code single license
SmartBear QAComplete Concurrent User Subscription License - On Premise (1 Year Subscription)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
СУБД Oracle "с нуля"
Компьютерные книги. Рецензии и отзывы
Новые материалы
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
Delphi - проблемы и решения
Краткие описания программ и ссылки на них
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Где можно найти «Пакет анализа» для Excel ? (56)
Коллеги, подскажите, где можно скачать надстройку к Excel под названием «Пакет анализа», после...
 
Пишу программы на заказ для студентов (151)
Пишу для студентов на с, с++, паскаль в средах ms visual studio, qt, builder, borland c, delphi....
 
Пишу программы на заказ профессионально (2096)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
Как изменить шрифт Wordpad? (3)
Как изменить шрифт Wordpad по умолчанию? Там Таймс, а мне, допустим, Ариал нужен. Можно ли...
 
Ищу программиста для написания программы (8)
Ищу программиста ,владеющего Вижуал Бэйсик и программированием в Экселе, для написания...
 
 
 



    
rambler's top100 Rambler's Top100