Имя пользователя:
Пароль:
 

Название темы: Перевод программы.
Показать сообщение отдельно

Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


А вот какое решение получилось у меня в итоге:
Код: Выделить весь код
//Запись определяющая переводы объекта. Name - имя компонента.
  //пусть первый элемент массива Caption соответствует русскому языку,
  //2ой - английскому.
  //Для компонент имеющих сложную структуру - помимо собственного заголовка
  //еще и элементы тоже подлежащие переводу, массив Caption заполнять следующим
  //образом - .Caption[1]:='Заголовок*Элемент1*Элемент2*...*ЭлементN';
  //          .Caption[2]:='Caption*Item1*Item2*...*ItemN';
  //или без Заголовок/Caption если он не нужен
  Type
    TCmpCaptions = Record
      Name: String;
      Caption: Array [1..2] Of String;
    End;
    TACmpCaptions = Array of TCmpCaptions;

  //выполняет поиск компонент на родителе Owner, сравнивая их имена с именами
  //в массиве CmpCaptions и если обнаружит совпадение выполнит смену кэпшена
  //на строку из соответствующей записи массива, с учетом стороны перевода
  //Возвращаемое значение - число непереведенных компонент
  Function MakeTranslate(Owner: TComponent; LangType: Integer; CmpCaptions: TACmpCaptions): Integer;
Есть нарекания? Советы?

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 08:06, 01-07-2003 | #4

Название темы: Перевод программы.