Текущий раздел:

Описания RDS

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

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

§4.6. Файл перевода в формате CSV

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

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

### §4.6. Файл перевода в формате CSV

Описывается структура файла перевода, экспортированного в формате CSV (значения, разделенные запятой).

CSV-файл перевода похож на файлы переводов схем, но, в отличие от них, он всегда имеет только два столбца: служебный столбец и столбец текста. Пользователь может менять тексты только во втором столбце. Первая строка файла – служебная, пользователь не должен менять тексты в обоих ее столбцах.

Данные в файле перевода записываются следующим образом:

RDSINTERFACEDESCRIPTION | CODING\АБВГД\TYPE\Language\MOD\имя_языка…
группа.объект.параметр | значение
группа.объект.параметр | значение
…

В первом столбце первой строки записан текст «RDSINTERFACEDESCRIPTION» – это служебная метка, по которой формат файла опознается при импорте. Во втором столбце закодированы параметры, для которых был экспортирован файл: тип модификации «язык» (после «TYPE\») и имя языка (после «MOD\»). После «CODING\» в этом столбце записаны русские буквы «АБВГД» для проверки кодировки файла. Если файл перевода экспортируется для DAT-файла описания интерфейса пользователя, а не для автокомпилируемых моделей, то во втором столбце после «DAT\» будет содержаться имя исходного DAT-файла, в котором обратная косая черта «\» заменена на звездочку «*». Сохраненное имя DAT-файла используется при импорте файла перевода только для того, чтобы предупредить пользователя, если он позже попытается импортировать этот файл для какого-то другого описания.

Далее во всех строках в первом столбце записаны имена группы объектов (окна или раздела интерфейса), конкретного объекта (поля ввода, пункта меню) и параметра этого объекта (заголовок, подсказка и т.п.), разделенные точками. Во втором столбце записан текст значения параметра, который пользователь может менять при переводе.

При экспорте файла все тексты берутся в двойные кавычки. По спецификации формата это не обязательно, но так надежнее. При загрузке файла RDS следует спецификациям RFC 4180⇗: в кавычках должны быть тексты, содержащие двойные кавычки, символы разделителя и разрывы строк. В качестве разрыва строки используется комбинация CRLF (0x0D, 0x0A).

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

      "RDSINTERFACEDESCRIPTION","CODING\АБВГД\TYPE\Language\MOD\English\DAT\Rds.dat"
      "TMainForm.M_File1.Caption","File"
      "TMainForm.M_NewSystem.Caption","New"
      "TMainForm.M_Templates.Caption","New by template"
      "TMainForm.M_LoadSystem.Caption","Open..."
      "TMainForm.M_LoadInCopy.Caption","Open separate..."
      "TMainForm.M_SaveSystem.Caption","Save"
      …

В данном случае «…MOD\English» во втором столбце первой строки указывает на то, что файл экспортирован для языка «English», а «…DAT\Rds.dat» – на то, что файл экспортирован для описания интерфейса «Rds.dat».

Текст «TMainForm.M_File1.Caption» в первом столбце второй строки говорит о том, что эта строка описывает параметр «Caption» (заголовок) объекта «M_File1» (в данном случае это пункт главного меню «Файл») главного окна RDS («TMainForm»). Во втором столбце этой строки записан заголовок этого пункта меню в английском варианте – «File».

Списки вариантов выпадающих списков в CSV-файлах описываются многострочными текстами, состоящими из строк вида «индекс=значение», где индекс – начинающийся с нуля номер варианта в списке, а значение – текст этого варианта, видимый пользователю. Точно так же эти списки описываются в DAT- и INI-файлах, но в CSV-файлах вместо символа перевода строки «\n» используется настоящий перевод строки. Например, описание выпадающего списка из DAT-файла вида

      [TTextProperties]
      …
      CB_Alignment.List=0=Влево\n1=По центру\n2=Вправо

после экспорта в CSV-файл будет выглядеть следующим образом:

      "TTextProperties_Frame.CB_Alignment.List","0=Влево
      1=По центру
      2=Вправо"

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

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

      "Messages.AuxModuleAbout.Text
      Messages.ToolModuleAbout.Text","О модуле"

указывает на то, что одно и то же значение «О модуле» имеют параметры «Text» объектов «AuxModuleAbout» и «ToolModuleAbout» секции «Messages». Если в этом файле перевести текст «О модуле», при импорте файла он будет присвоен этим двум объектам одновременно. Переводчик может, при желании, вручную разделить эту запись на две, соблюдая правила формата CSV, и дать параметрам разные значения:

      "Messages.AuxModuleAbout.Text","About auxiliary module"
      "Messages.ToolModuleAbout.Text","About tool module"

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