![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Kagami |
![]()
Сообщение
#1
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Недавно я заинтересовался вопросом - "А сколько у нас в ПП сегментов, перевод которых совпадает с оригиналом (совпадающие сегменты)?". Быстро набросал программку и получил следующий результат: из 100000 сегментов совпадающих 75000. Если просто выкинуть их из ПП (например, с помощью TMXCleaner), то потом все равно придется их вводить. Но можно сделать по-другому:
1. При следующем объединении выделить все совпадающие в отдельный файл (я ради интереса написал QTMXSplitter). 2. Переводчикам взять файл только с несовпадающими сегментами. 3. Переводить файлы как обычно. 4. При объединении объединить файлы переводчиков в один, извлечь из него совпадающие сегменты и объединить их с файлом, полученным в п. 1. "+": Меньше размер ПП, меньше трафика, быстрее анализ в омеге. "-": Больше работы объединяющему, некоторые сегменты придется помечать как переведенные заново. Кто что думает по этому поводу? |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Я думаю, что лучше из ПП переводчика вычленять новые сегменты, т.е. отдельная программа. И эту разностную ПП отправлять.
|
|
|
Kagami |
![]()
Сообщение
#3
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Для меня более важна скорость анализа в Омеге, чем объем пересылаемого файла.
P.S. А программу для diff'а TMX еще никто не писал? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Kagami |
![]()
Сообщение
#5
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Я написал программу для сравнивания двух файлов омеги.
Она создает новый файл омеги содержащий только сегменты, которых нет в первом файле, и сегменты, значение которых было изменено. Сейчас подчищу код и попробую зарегиться на гиториусе ![]() |
|
|
Kagami |
![]()
Сообщение
#6
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
На гиториусе зарегился, но он у меня ключи не принимает... Так что пока выкладываю тут.
Прикрепленные файлы
|
|
|
Kagami |
![]()
Сообщение
#7
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Вот новая версия. Чуть пофиксил баги, доработал API для указания исходного языка и языка перевода. Будет пару часиков свободного времени и креативное настроение, напишу еще класс TMXMerger
![]() P.S. Что-то гиториус у меня так ключи не принимает. Похоже какой-то глюк ![]()
Прикрепленные файлы
|
|
|
Kagami |
![]()
Сообщение
#8
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Теперь исходники переехали на сюда - http://gitorious.org/qtmxtools
|
|
|
Kagami |
![]()
Сообщение
#9
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Добавил возможность объединения ПП из двух файлов. При этом программа берет сегменты которые есть только в одном файле, а для сегментов которые есть в обоих файлах и у которых различается перевод выводит оригинал, оба варианта и спрашивает какой оставить.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Kagami, я тут собрался документацию обновить, и решил собрать общую ПП (Novak куда-то пропал) и обнаружил странную вещь, Твоя программа дала разницу только для моей ПП, делал так:
(имя исполняемого фала я изменил)Здесь comon.tmx - общая ПП с прошлого раза. Может я не правильно делал? |
|
|
Kagami |
![]()
Сообщение
#11
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Это по меньшей мере странно. Вроде ты все делал правильно. Вот только если ошибки нет, то ты получил бы 3 файла, если бы была ошибка, ты бы не получил ничего... А тут есть один файл.. Буду думать.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#12
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
ты бы не получил ничего... А тут есть один файл.. Буду думать. нет, я получил 3 файла, diff*, но два из них пустые (твой и Алекса): Т.е. за месяц ничего не появилось? Ведь проверялась Qt 4.6, и должны быть хоть какие-то отличия от 4.4 и у тебя и у Алекса
|
|
|
Kagami |
![]()
Сообщение
#13
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Скомпилил программу под виндой и она у меня вообще не работала - не видела параметры командной строки. Кажется я нашел баг в libqxt. Она не правильно парсит параметры под виндой. Попробуй сделать так:
Раскрывающийся текст
После этой правки у меня все заработало как надо. Надо будет еще раз все проверить и написать разработчикам. P.S. Под виндой надо использовать "/diff" вместо "--diff" и т.д. Надо будет поправить пример использования. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Кажется я нашел баг в libqxt. Она не правильно парсит параметры под виндой. Попробуй сделать так: это я исправил, там просто настройки нужно задать: мне виндовые слэши не нравятся.Я тебе на гиториусе "запрос на слияние" отправил Собственно я озадачен тем, что ПП ни у тебя ни у Алекса не изменились, если это действительно так, то я соберу общую (добавив только свои изменения). Если же изменения были, надо прогу проверить. |
|
|
Kagami |
![]()
Сообщение
#15
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Изменения однозначно были. После исправления бага в libqxt у меня создалось три файла без проблем. Проверял на WinXP SP3 Qt SDK 2010.02 (Qt 4.6.2).
P.S. Я не хотел жестко зашивать префикс параметров на "--", но, наверно, так все-таки удобнее будет. |
|
|
alex977 |
![]()
Сообщение
#16
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 310 Регистрация: 19.6.2008 Из: Россия, МО, г.Мытищи Пользователь №: 206 Спасибо сказали: 77 раз(а) Репутация: ![]() ![]() ![]() |
Собственно я озадачен тем, что ПП ни у тебя ни у Алекса не изменились, если это действительно так, то я соберу общую (добавив только свои изменения). Если же изменения были, надо прогу проверить. Перевел "с нуля" porting4.html и scripting.html (1000+ сегментов, 1 Мб разницы с tmx от 07.12.2009). Также поправлял перевод на разных версиях (около 300 файлов, несколько сотен сегментов "до-перевода" и "пере-перевода", плюс исправление опечаток). |
|
|
Litkevich Yuriy |
![]()
Сообщение
#17
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Изменения однозначно были. вот и я из-за этого озадачился, т.к. в каждом фале есть title, у которого стоит номер версии, и этот сегмент должен был добавится в память переводов.P.S. Я не хотел жестко зашивать префикс параметров на "--", но, наверно, так все-таки удобнее будет. вообще мне их творение не понравилось, ключей не так много, здесь было бы удобнее вручную всё сделать.
|
|
|
Kagami |
![]()
Сообщение
#18
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Юр, ну как, получилось сделать diff?
P.S. Попробовал сделать --merge под виндой. Чертова разница в кодировках ![]() Сообщение отредактировал Kagami - 24.2.2010, 21:35 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#19
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Kagami |
![]()
Сообщение
#20
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Непонятно... у меня все делает... Какая у тебя версия Qt? Еще можно попробовать сразу сделать merge: "qtmxtools --merge common.tmx kagami.tmx merged1.tmx --locale CP866" и посмотреть, будет ли он выводить варианты для выбора.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#21
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Kagami, я разобрался, извиняюсь, что создал такую суматоху.
Первопричину я не выяснил. Но суть такова, что с файлами ПП, в какой-то момент намудрил. Взял по новой ваши файлы из рабочей копии и всё сработало. Но доку собирать буду в выходные, сейчас времени нет. Чуть погодя выложу несколько терминов по которым обнаружил конфликт. |
|
|
Kagami |
![]()
Сообщение
#22
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
P.S.Кстати, а у нас что-то объединение ПП затянулось... ага, есть такое дело. Времени не хватает, т.к. приходится проверять, являются ли сегменты просто конфликтными, или они являются исправлениями старых переводов.Да, это проблема. Но ее можно обойти. Пусть у нас есть старая общая ПП и три ПП переводчиков - твоя, моя, и Алекса. Сначала делаем три диффа - сравниваем старую общую ПП с ПП переводчиков. Получаем три файла отличий. И объединяем их. Все отличающиеся сегменты будут конфликтными. В результате будет общий дифф, который мы объединяем со старой общей ПП. В этом случае все отличающиеся сегменты будут исправлениями старых переводов. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#23
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
В результате будет общий дифф в этом-то и проблема, уже эти три содержат конфликты между собой.Я их по одному гружу в олифант, к ранее загруженой общей ПП. И там смотрю, если номер сегмента (олифант их нумерует по порядку импортирования) больше, значит это новый вариант перевода. Ну и пытаюсь понять, новый вариант лучше старого или наоборот. Лишний, конфликтующий, сегмент удаляю. Но эта процедура, для свыше сотни сегментов, здорово утомляет глаза. Поэтому боюсь накосячить. Вынужден прерываться. В этом случае все отличающиеся сегменты будут исправлениями старых переводов. иногда эти исправления не соответсвуют нашему глоссарию, или просто содержат ошибки, поэтому они не всегда лучше старых.
|
|
|
Kagami |
![]()
Сообщение
#24
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Мм... При объединении qtmxtools выводит сегмент, два варианта перевода и предлагает выбрать какой оставить (введя номер сегмента и нажать Enter). Ничего больше руками делать не надо.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#25
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Kagami, тут проблемка вылезла, делал diff, получил сообщение:
ASSERT: "isStartElement() && name() == "tuv"" in file src\abstracttmxreader.cpp, line 131 Сделал вот так вот: , т.е. хочу получить номер строки на которой споткнулся читатель, получил в консоли 636 349. Но в файле их всего 8 093
|
|
|
Kagami |
![]()
Сообщение
#26
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
А можно файлики получить? попробую сам посмотреть.
P.S. У меня в планах есть мысль переписать это дело немного. Вынести эти классы в библиотеку и прикрутить гуй (ну и консольную версию оставить). Правда пока времени свободного почти нет:( Сообщение отредактировал Kagami - 25.4.2010, 17:43 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#27
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
архив kot.tmx:
![]() запускал так:
где qtrtt_2010.04.10.tmx - ПП, которую я выложил после объединения на FTP'шник |
|
|
Kagami |
![]()
Сообщение
#28
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Все очень просто. Номер строки правильный. Ошибка произошла в qtrtt_2010.04.10.tmx. На этой строке какой-то непонятный тег <prop type="x-olf-flag">1</prop>. Интересно, откуда он взялся? Посмотрел на файл внимательней - там таких еще штук 14. Чем ты обрабатывал ПП?
UPD. Закоммитил на гиториус новую версию - она выводит номер строки, имя файла и какая ошибка. Сообщение отредактировал Kagami - 25.4.2010, 20:17 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#29
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
какой-то непонятный тег <prop type="x-olf-flag">1</prop>. Интересно, откуда он взялся? Посмотрел на файл внимательней - там таких еще штук 14. Чем ты обрабатывал ПП? это просто свойство, это допустимый тэг.Обрабатывал Olifant'ом хотя странно, что они там есть, видимо я забыл очистить флажки. Я вот начинал переводить, да в октябре остановился, может быть будет полезным: ![]() Посмотри в нём приложение "A. Sample Document" там приведён пример наиболее вероятного документа |
|
|
Kagami |
![]()
Сообщение
#30
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Очень интересная штука. Надо подумать как добавить поддержку всех тегов...
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#31
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Kagami |
![]()
Сообщение
#32
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy, попробуй новую версию. У меня вроде отработало правильно.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#33
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
угу, диф создался
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#34
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Kagami, тут столкнулся с необходимостью в ещё одной функции - patch. Должно работать так:
в отличие от --merge программа ничего не должна спрашивать у пользователя, она просто должна применить разностную ПП (qtrtt_diff_05.02_04.10.tmx) к исходной, чтобы получилась новая. В случае конфликтов приоритет отдаётся разностной ПП. Сможешь такую штуку сделать? |
|
|
Kagami |
![]()
Сообщение
#35
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Хехе, я как раз думал сегодня в эту сторону. Решил сделать так. При диффе сохранять в разностную ПП информацию является ли сегмент новым, а если нет, то исходный вариант? с помощью тегов <prop> и <note> (тогда можно будет diff поглядеть и откорректировать прямо в файлике). И добавить ключик --force [n] для режима --merge чтобы он выбирал указанный вариант - 1 или 2 (по умолчанию 2) - без запроса пользователя. Но если хочешь, могу и --patch сделать. Думаю вечером появится в гиториусе
![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#36
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
мне больше подуше вариант классический. Т.е. разность это разность (но в случае с ПП, конечно, нужно чтобы это была полноценная память переводов, а не то, что делает unix'овая программа diff, т.е. без спец информации). А patch просто интуитивно понятный ключ.
Если есть интересные мысли по поводу специнформации, то мне, как пользователю, было бы удобнее разрешать её появление в tmx-файле только при дополнительном ключе. А по умолчанию, чтобы просто чистая ПП была. П.С. к стати говоря проект твой весьма впечатляющий, хоть и маленький и не приметный на первый взгляд. Я думаю, надо тебе место в подфоруме проекты выделить. И сделать там два раздельчика русскоязычный и англоязычный. Пюс написать команде OmegaT, чтобы они добавили твой проект в свой раздел Third-party software. Многим инструмент понадобится. Тем более, что работает он шутсрее явовских |
|
|
Kagami |
![]()
Сообщение
#37
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Добавил режим "patch". Для добавления специнформации в diff я сделаю дополнительный ключик.
P.S. Раздел на форуме можно сделать, но добавлять информацию на сайт омеги мне кажется рановато. Есть еще несколько вещей, которые я хотел бы сделать перед этим. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#38
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Есть еще несколько вещей, которые я хотел бы сделать перед этим. тебе решать. Просто я пользуюсь почти каждый день. Т.к. я соорудил себе робота который готовит документацию для выкладывания на сайт. И блох в нём много ещё. Твоя программа позволяет мне очень просто делать разные файлики для проверки робота.
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 22.4.2025, 5:50 |