Экспорт в XLIFF

Теперь необходимо выделить строки из tra-файла в какой-нибудь удобный для переводчиков формат. В последнее время таким признан общедоступный открытый формат XLIFF. Итак, будет колдовать.

Экспорт в XLIFF

Для эксопрта нам понадобится инструментарий Okapi frameworks. В нем есть утилита Rainbow, которая позволит выделять и возвращать обратно сообщения. Okapi требует библиотеку MS .NET 2.0, так что это будет не так просто :).

Общий вид Rainbow

Главное окно представляет из себя несколько вкладок, выделенных цветами - Input List 1 (синий), 2 (красный) и 3 (зеленый). В зависимости от активной вкладки входных документов соответсвующим образом окрашивается вкладка Output. Мы будем использовать только один входящий список, поэтому можно не обращать внимания на остальные вкладки.

Настройка

Сначала создаем проект. Неважно, как он будет называться, но он будет существовать. В главном окне необходимо задать корень каталогов (Root 1) - путь, где расположен наш обожаемый 0-68599.tra. Задав путь, теперь добавим файл с помощью кнопки Add Files. Выбрав файл, необходимо задать его тип - дважды щелкаем по полю под столбцом Filter Settings и выбираем фильтр для обычных текстовых файлов (TXT - Plain Text).

Настройки фильтра

Теперь необходимо изменить параметры фильтра - Imput -> Edit Filter Parameter. Во вкладке Rules удаляем все правила и добавляем новое - допустим String.tra. Справа отмечаем пункт - Extract the strings. Ниже отмечаем параметры правила (Rules Options) - Multiline (Многострочный) и Dot also matches line-feed (Точка также означает конец строки). Теперь нажимаем кнопку Edit Expression… В появившемся окне в поле Start вводим следующую конструкцию - @\d+\s+=\s. В Content вводим следующее - ~.*?~, а End оставляем пустым.

Смысл этих строк в следующем. Как мы уже видели, структура tra-файла такова, что каждое сообщение начинается с @, цифры и знака =. С помощью регулярного выражения мы указываем на то, что каждое сообщение начинается @, затем идет конструкция \d+, означающая, что далее идет одна или несколько цифр, затем \s+ - один или несколько пробелов, символ = и один пробел (\s). Все просто :). В Content указывается, что должен захватывать Rainbow - все то, что между ~.

Во вкладке Strings указываем в Start и End Characters по одной тильде (их мы будем отбрасывать, они нам не нужны). Все, готово!

Экстракция

Когда все готово, можно попробовать выделить нужные нам сообщения. Нажимаем Utilites -> Text Extraction. В появившемся окне выбираем целевой формат - XLIFF (XML Localization Interchange File Format). В Format Options… указываем
Include a <target> element for each <trans-unit> и The existing translation if aviable, a copy of source text otherwise. В Package указываем каталог, куда все добро будет сохранено. Отмечаем две галочки - Copy original files… и Create Rainbow project for Text Merging.

Все, можно запускать. Через некоторое время в указанном каталоге появится файл Work\0-68599.tra.xlf. Теперь мы готовы к настоящему действию!

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License