Алгоритм адаптации Qt документации... |
Здравствуйте, гость ( Вход | Регистрация )
Алгоритм адаптации Qt документации... |
ViGOur |
20.12.2007, 14:32
Сообщение
#1
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Возьмем к примеру класс QString, по идее основная масса исправлений приходится на описание функций.
Возникает вопрос, какой алгоритм однозначно без ошибок поменяет английское описание на русское, когда есть и то и то, но русское немного устаревшее, вроде того, что меньше функций. Или добавлено совсем чуть-чуть дополнительного текста. Разметка примерно такая: Английский вариант
Русский вариант:
Сообщение отредактировал ViGOur - 20.12.2007, 14:34 |
|
|
ViGOur |
20.12.2007, 18:24
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Как вариант, можно взять старые английскую версию и русскую версии, распарсить их по тегам, и вогнать в QMap<QString, QString>.
Ключем будет английский вариант, а значением русский. После чего читаем новую версию, парсим на лету и сравниваем с ключами в QMap, если совпадает, то английскую строку на русскую. Это как вариант, но хотелось бы еще рассматреть какие-нибудь варианты. |
|
|
Tonal |
21.12.2007, 8:24
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Я бы нарисовал на python-е.
Документы разбираются например BeautifulSoup, потом идёшь по деревам параллельно и перекидываешь строки из русского в английское. Как маркеры синхронизации использовать текст в тагах <h3 class="fn"> и аналогичных. Оставь ссылку на несколько русских файлов - на выходных помучаю. |
|
|
ViGOur |
21.12.2007, 8:53
Сообщение
#4
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
От akorchagin перевод Qt 4.1.0.
Но вся проблема в том, что как я посмотрел, например в том же QString в Qt 4.3.2 по сравнению с 4.1.0 описание явно отличается, явно изменилось описание, вместо последовательного разбито на части, некоторые строки вообще убраны, ну и конечно же добавлено много функций. Поэтому я думаю, что обычными маркерами не отделаться... |
|
|
Admin |
21.12.2007, 9:05
Сообщение
#5
|
Администратор Группа: Администратор Сообщений: 646 Регистрация: 9.10.2007 Из: crossplatform.ru Пользователь №: 1 Спасибо сказали: 17 раз(а) Репутация: 2 |
|
|
|
Tonal |
22.12.2007, 18:28
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
|
|
|
ViGOur |
22.12.2007, 18:32
Сообщение
#7
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Надо просто свою писать, и сразу на русском. :-) Возможно, но прежде чем писать свою неплохо было бы перевести и хорошо написанную, правда на английском. Хотя у меня есть идея написать документацию в примерах по Qt, подробно описывающию применение всех функций каждого из классов. Но это пока идея, и пока не знаю, хорошая или нет. |
|
|
ViGOur |
2.1.2008, 21:41
Сообщение
#8
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Тема еще пока актуальна!
На даный момент бодаюсь с обработкой регулярными выражениями, и при сдвиге в форматитировании немного в сторону результат получается не тот, что ожидался, может быть это и из-за того, что я плохо знаю регулярные выражения. |
|
|
Tonal |
4.1.2008, 23:54
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Не надо регекспы. Там все файлы в формате xhtml - нормально парсяться любым xml парсером.
Все описания функции/свойства находяться на одном уровне. Всегда начинаются с тага <h3 class="fn"> его первый ребёнок - пустой якорь, например <a name="checkable-prop"></a> Дальше идём по братьям до следующего подобного <h3 class="fn">, или до пустого <p />, за которым сразу <address>. Вот код на python для выдёргивания:
Собственно, осталось нарисовать алгоритм слияния - он тоже довольно прост... Но есть одно маленькое но: Что, если в новой версии поменялось описание функции, или, например её аргументы? Тогда, при пакетной конвертации оно неглядя замениться старым вариантом, что не есть хорошо. Напрашивается полуавтоматный конвертор, который бы давал возможность просматривать описания перев их заменой и даже править по ходу. Мне кажется, вполне можне нарисовать на основе приведённого алгоритма |
|
|
ViGOur |
5.1.2008, 1:39
Сообщение
#10
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Что, если в новой версии поменялось описание функции, или, например её аргументы? Это ерунда, так как по английскому и русскому оригиналам делается некий словарик, который загоняется в QMap, ключем является английское предложение, значением русское, если ключ и значение одинаковы, то это или название функции или не переведенный фрагмент, следовательно не учитывается. После чего читается новый документ, который нужно перевести, и при парсинге идет сверка с полученным ранее "словариком", и в случае совпадения ключей замена их английского значения на русское.Тогда, при пакетной конвертации оно неглядя замениться старым вариантом, что не есть хорошо. Но в данном подходе тоже есть но, так как кажется в описании класса QString было некое изменение, что-то вроде: было: variable - descriprion стало: variable is descriprion в следствии чего не переведенный фрагмент. Подумываю правильным ли будет в этом случае разбивать на слова и если будет например 90% сходство английского варинта (ключей), то менять его на русский. Честно говоря не подумал о XML парсинге попробую, спасибо... |
|
|
Текстовая версия | Сейчас: 21.12.2024, 8:06 |