Объединение tmx-файлов, Маленькое руководство по объединению файлов с помощью TMXMerger |
Здравствуйте, гость ( Вход | Регистрация )
Объединение tmx-файлов, Маленькое руководство по объединению файлов с помощью TMXMerger |
Novak |
14.1.2009, 8:27
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 319 Регистрация: 15.3.2008 Из: Замкадыш Пользователь №: 121 Спасибо сказали: 28 раз(а) Репутация: 6 |
На страничке ресурсов программы OmegaT есть ссылка для скачивания java-сценария TMXMerger, предназначенного для объединения tmx-файлов.
Синтаксис у этого сценария очень простой: Цитата TMXMerger-1.0.jar <исходный файл 1> <исходный файл 2> <результирующий файл> Например, при Цитата TMXMerger-1.0.jar source_1.tmx source_2.tmx project_save.tmx Объединяются два файла source_1.tmx и source_2.tmx В результирующем файле будут записаны все пары переводов, что были в первом и втором файле. Если встретились разные переводы одного сегмента в исходных файлах, то все варианты будут записаны в результирующем файле. Получится запись примерно такого вида:
После этого нужно вычистить этот файл от лишний дублирующих записей. С этим справляется сама OmegaT. Если создать проект со всеми необходимыми файлами для перевода и подложить в него наш объединённый tmx-файл, то остаётся только запустить генерацию переведённых файлов, и лишние записи из нашего исходного файла перевода будут удалены. При этом сохраняется первая запись из встреченных. Потому при объединении файл, который был передан первым в скрипт TMXMerger имеет больший приоритет в плане дублирования записей. Мне кажется, что стоит ещё немного поэкспериментировать, в эту тему писать результаты этих опытов. После этого дополнить это руководство и выложить в вики и траке. Сообщение отредактировал Novak - 14.1.2009, 8:29
Причина редактирования: Немного дополнил
|
|
|
Litkevich Yuriy |
14.1.2009, 9:11
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Потому при объединении файл, который был передан первым в скрипт TMXMerger имеет больший приоритет в плане дублирования записей. я к такому же выводу пришел, но не эксперементально.я как-то упоминал программу Olifant из Okapi Framework Открыл в ней наш объедененный файл project_save.tmx (7820 кБ), отсортировал сегменты по оригинальным, увидел две пустые строчки и удалил их, затем экспотировал в TMX, получил файл весом 6641 кБ, т.е. олифант что-то выкинул. Но я не разбирался - слишком много сегментов аж глаза разбегаются. Можно в Олифанте находить дубликаты (автоматически с проставлением флажков), затем сортировать по наличию флажков и смотреть какой сегмент удалить. Омега всякий раз при сохранении меняет сегменты местами из-за чего в хранилище отправляется много информации (около 3 МБ). Можно в этом олифанте перед фиксацией правки сортировать ПП, а потом уже фиксировать правку. |
|
|
alex977 |
15.1.2009, 13:20
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 310 Регистрация: 19.6.2008 Из: Россия, МО, г.Мытищи Пользователь №: 206 Спасибо сказали: 77 раз(а) Репутация: 8 |
При этом сохраняется первая запись из встреченных. Потому при объединении файл, который был передан первым в скрипт TMXMerger имеет больший приоритет в плане дублирования записей. Вручную обрабатывать - глаза потерять можно. В неявном приоритете первой записи уже заложено, что такой способ использовать нельзя. Нужно что-нибудь более автоматизированное. Хотя бы для работы только с вариантами перевода. Смотрю Olifant. |
|
|
Novak |
15.1.2009, 15:33
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 319 Регистрация: 15.3.2008 Из: Замкадыш Пользователь №: 121 Спасибо сказали: 28 раз(а) Репутация: 6 |
|
|
|
Litkevich Yuriy |
15.1.2009, 15:40
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
alex977 |
15.1.2009, 17:02
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 310 Регистрация: 19.6.2008 Из: Россия, МО, г.Мытищи Пользователь №: 206 Спасибо сказали: 77 раз(а) Репутация: 8 |
Всмысле вручную? В том смысле, что если использовать только tmxmerge и редактировать результирующий файл руками - это совсем никуда не годится. Вообще. А автоматизировать - чтобы видеть какие есть варианты и у кого они были (где из предыдущего файл, где уже из измененного кем-то) и выбирать вариант перевода уже только для этих сегментов. Цитата Я вручную потом бегло просматриваю. Опять-таки - все сегменты? А если их будет под 200 000? Сообщение отредактировал alex977 - 15.1.2009, 17:04 |
|
|
Litkevich Yuriy |
15.1.2009, 17:16
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А автоматизировать - чтобы видеть какие есть варианты и у кого они были (где из предыдущего файл, где уже из измененного кем-то) и выбирать вариант перевода уже только для этих сегментов. я собрался делать подобную штуку, но забросил - времени нет. Идея:Есть программа "Х", запускаем ее и импортируем TMX в нее. Программа сохраняет все сегменты в БД, там же хранятся связи сегментов друг с другом. При импортировании следующего файла программа ищет сегмент, например анлийский, в БД если есть такой же, но нет связи с неким новым (например, новый вариант перевода), то добавляет новый вариант и связывает его с соответствующим сегментом плюс ставит флажек "новый связанный сегмент". После импорта всего TMX'а, программа показывает пользователю сегменты у которых появились новые связи, ну и связанные сегменты тоже, помечая новый цветом. Т.е. получается QTreeView. Пользователю предоставляется специальный столбец "Верно" с флажком (QCheckBox) в этом столбце отмечается какой из связанных сегментов считать верным. Далее импортируются остальные TMX'ы и процедура выбора верных повторяется. По завершении обработки из БД экспортируются данные в TMX, но только те сегменты, которые либо единственные, либо имеют флажек "Верно". Я пока сделал только набросок базы в FireBird, и собрался делать проксимодель для TMX'ов, чтобы сразу смотреть TMX'ы в QTreeView, ну и еще несколько экспериментов провел. |
|
|
alex977 |
15.1.2009, 18:15
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 310 Регистрация: 19.6.2008 Из: Россия, МО, г.Мытищи Пользователь №: 206 Спасибо сказали: 77 раз(а) Репутация: 8 |
Я тоже немного думал обо всем об этом.
Только немного с другой точки зрения. При работе обновляется довольно небольшой процент сегментов (во всяком случае на текущем этапе). И дальше этот процент будет только уменьшаться - общее количество сегментов будет расти, а количество сегментов подвергнутых редактированию оставаться примерно на одном уровне. Мысль была такая - в программе, где идет перевод, в каждый сегмент записывается дата изменения. В программе объединения tmx-файлов назначается базовый файл (общий файл предыдущего поколения) и файлы с изменениями. Все сегменты которые уже есть в базовом файле и не изменились в файлах с изменениями - игнорируются. Работа идет только с сегментами, которых нет или дата изменения которых позже, чем в в базовом файле предыдущего поколения. На выходе получаем новый базовый файл. Но дальше мыслей дело пока не пошло. :-( Сообщение отредактировал alex977 - 15.1.2009, 18:18 |
|
|
Novak |
15.1.2009, 20:19
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 319 Регистрация: 15.3.2008 Из: Замкадыш Пользователь №: 121 Спасибо сказали: 28 раз(а) Репутация: 6 |
в смысле последние? Последние обновлённые файлы переводов из наших проектов делаю первыми при передаче. Таким образом должны переводы исправляться. Имхо, Алекс прав, дальше будет всё меньше тех сегментов, что обновляются. Это будет касаться только исправлений. Потому ни о каких 200000 речь не идёт. И тмх файл я вручную не правлю. Говорю же, Омега берёт идущий первым вариант перевода, остальные выбрасывает. У нас есть свн, потому восстановить какой-либо перевод не составит труда, так что пока у нас приемлемая в плане траты усилий схема работы. Не нужно бояться ошибок, они будут, от них никуда не деться. Главное - их исправлять. Так что всё будет хорошо) |
|
|
alex977 |
17.1.2009, 12:46
Сообщение
#10
|
Активный участник Группа: Участник Сообщений: 310 Регистрация: 19.6.2008 Из: Россия, МО, г.Мытищи Пользователь №: 206 Спасибо сказали: 77 раз(а) Репутация: 8 |
Вопрос.
У себя в файле tmx (вручную) я исправил ошибку. К примеру, заметил слово "фукнция" и исправил на "функция". После объединения файла ошибка опять появилась. :-( Проблему я вижу в том, что если мною был отредактирован какой-то сегмент, а у кого-то он остался в старом варианте, то нельзя предугадать - попадет в объединенный файл исправленный вариант перевода или же останется исходный, а все исправления будут отброшены. Разумеется, можно восстановить из версий, но из-за одного сегмента... Может быть тогда вообще не трогать сегменты где уже есть перевод - даже если есть ошибки/опечатки? |
|
|
Текстовая версия | Сейчас: 22.11.2024, 18:42 |