Навигация:
<< >> Оглавление Указатель

Описание пользователя

Глава 4. Перевод интерфейса пользователя RDS

§4.5. Формат INI-файла перевода

Описывается структура файла перевода, экспортированного в формате INI-файлов Windows.

INI-файл перевода по своей структуре очень похож на DAT-файл описания интерфейса пользователя. У них, фактически, одинаковый формат, только в файле перевода нет секций «$Types» и «$Params» – вместо них он начинается с секции «$Descr», которой нет в DAT-файлах.

Секция «$Descr», с которой начинается файл перевода, содержит два основных параметра: тип модификации интерфейса «язык» («Type=Language») и имя языка, для которого файл создан («Mod=имя_языка»). Кроме того, если файл перевода экспортируется для DAT-файла описания интерфейса, а не для автокомпилируемых моделей, то в этой секции также будет содержаться имя исходного DAT-файла («Dat=имя_файла»), в котором обратная косая черта «\» удвоена. Сохраненное имя DAT-файла используется при импорте файла перевода только для того, чтобы предупредить пользователя, если он позже попытается импортировать этот файл для какого-то другого описания.

При экспорте файла «Dll\Common.dat» для перевода на язык с именем «English», например, начальная секция файла будет выглядеть так:

  [$Descr]
  Type=Language
  Mod=English
  Dat=Dll\\Common.dat

Далее следуют такие же секции для групп объектов интерфейса, как и в DAT-файле:

  [имя_группы]
  имя_объекта1.параметр1=значение
  имя_объекта1.параметр2=значениеимя_объекта2.параметр1=значение

Каждая секция соответствует одной группе объектов (например, окну), имя группы является именем секции. Далее в строках секции перечисляются все объекты с их параметрами (имя параметра отделено от имени объекта точкой), и, после знака равенства, значение данного параметра данного объекта. Сразу после экспорта это будет либо значение по умолчанию из DAT-файла, либо, если перевод уже был сделан, предыдущий текст перевода. Задача пользователя – ввести после знаков равенства нужные тексты переводов. Как и в DAT-файлах, для многострочных текстов коды перевода строк необходимо заменять на принятые в языке программирования C сочетания «\n» или «\r\n» (желательно сохранять такую же разбивку на строки, какая была до перевода).

Для приведенного в фрагмента файла описания интерфейса «Rds.dat» начало секции описания интерфейса пользователя главного окна RDS после перевода может выглядеть так (порядок строк в секции может быть другим):

  [TMainForm]
  M_File1.Caption=File
  M_NewSystem.Caption=New
  M_Templates.Caption=New by template
  M_LoadSystem.Caption=Open...
  M_LoadInCopy.Caption=Open separate...
  M_SaveSystem.Caption=Save
  …

Здесь «TMainForm» – имя группы, использующееся для описания главного окна. Строка «M_File1.Caption=File» означает, что параметр «Caption» (заголовок) объекта «M_File1» (в данном случае это пункт главного меню «Файл») в английском варианте интерфейса имеет значение «File».

Содержимое выпадающих списков в этом формате указывается точно так же, как и в DAT-файлах, т.е. в виде многострочного текста «0=первый вариант\n1=второй вариант\n…». Перевод выпадающего списка выравнивания текста из будет выглядеть так:

  CB_Alignment.List=0=Left\n1=Center\n2=Right

Поскольку порядок перечисления пунктов списка не важен, можно написать и так:

  CB_Alignment.List=1=Center\n2=Right\n0=Left

Результат будет тем же.

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

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

Если при экспорте был установлен флажок «объединять одинаковые» (см. рис. 506), то в экспортированном файле могут появиться описания следующего вида:

  имя_объекта2.параметр2:=имя_группы1.имя_объекта1.параметр1

Здесь вместо знака равенства используется сочетание двоеточия со знаком равенства. Такая запись означает, что значение параметра «параметр2» объекта «имя_объекта2» из текущей описываемой группы в точности совпадает со значением параметра «параметр1» объекта «имя_объекта1» группы «имя_групы1» (при этом этот объект «имя_объекта1» со своими параметрами обязательно должен быть описан в файле до этой записи, т.е. ссылка возможна только на значение уже описанного объекта).

Переводчик может либо оставить такую запись без изменения, переведя только текст первого объекта (параметр второго автоматически получит то же значение), либо заменить «:=» на «=» и дать второму объекту другой текст перевода.

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


<< >> Оглавление Указатель