Краткий справочник переводчика KDE
Содержание
- 1 С чего начать?
- 1.1 Где можно пообщаться с участниками команды переводчиков?
- 1.2 Хочу что-нибудь перевести. Как определиться с выбором программы?
- 1.3 Возможно, кто-то уже переводит выбранную мной программу, как избежать лишней работы?
- 1.4 Где взять материалы для перевода?
- 1.5 Хочу перевести приложение, основанное на библиотеках KDE, но не являющееся частью KDE. Обязательно ли советоваться с командой переводчиков KDE?
- 2 Как переводить?
- 2.1 Есть ли какие-то общие рекомендации?
- 2.2 Как избежать ошибок?
- 2.3 Что следует учесть при переводе документации?
- 2.4 Как собрать переведённую документацию и посмотреть, что получилось?
- 2.5 Хочу подготовить новые качественные снимки окон для документации. Что следует учесть?
- 2.6 Я пользуюсь Windows. Как мне помочь с переводом KDE?
- 3 Что делать с готовыми файлами локализации?
- 4 Как улучшить качество переводов?
С чего начать?
Где можно пообщаться с участниками команды переводчиков?
Пообщаться на тему перевода KDE, вступить в команду переводчиков, а также задать вопросы относительно спорных моментов перевода можна в списке рассылки команды переводчиков. Ознакомиться с архивом списка рассылки вы можете здесь. Послать письмо в список можно лишь после оформления подписки.
Хочу что-нибудь перевести. Как определиться с выбором программы?
Прежде чем начать переводить, определитесь с вашими интересами. Согласитесь, вряд ли перевод будет удачным, если вы никогда не пользовались и не собираетесь пользоваться программой, которую переведёте. Выберите программу, которой пользуетесь из-за её удобства или в силу служебной необходимости.
Найдите пункт программы на этой странице. Обратите внимание на то, что переводы многих программ KDE состоят из двух частей: перевода интерфейса программы (как правило, название пункта такого перевода совпадает с названием программы) и перевода дополнительных элементов интерфейса (эти переводы выполняются с помощью пунктов, названия который начинаются с desktop). Проверьте, есть ли непереведённые сообщения (показаны красным цветом). Если всё переведено, откройте эту страницу и поищите перевод документации. Если и документация переведена полностью, обратитесь к этой странице и поищите нелокализированные или устаревшие снимки окон программы. Если и с этим всё в порядке, откройте страницу вики KDE и посмотрите, не требуется ли обновление странице избранной вами программы.
И наконец, локализация программ KDE не ограничивается переводом интерфейса или документации. Вы можете помочь в локализации других полезных компонентов. Приблизительный список можна найти тут.
Возможно, кто-то уже переводит выбранную мной программу, как избежать лишней работы?
Представьтесь в списке рассылки и сообщите о своих планах. Если никто из участников команды переводчиков не занимается переводом выбранной Вами программы, принимайтесь за дело.
Где взять материалы для перевода?
Переводы KDE осуществляются с помощью инструмента перевода Lokalize. Если вы ещё не знакомы с возможностями программы, внимательно прочтите справку к ней (чтобы открыть окно справки, достаточно нажать клавишу F1). Для полноценного доступа ко всем возможностям программы вам придется загрузить весь комплект русских переводов KDE. При создании проекта перевода (пункт меню Проект >Создать новый проект) соответствующие файлы будут загружены автоматически (конечно же, только если вы этого захотите)). Среди загруженных файлов будет и нужный вам файл. После завершения загрузки достаточно открыть проект перевода (клавиша F4), найти в дереве переводов файл и открыть его в редакторе двойным клацаньем левой кнопки мыши.
Если по каким-либо причинам вы не желаете или не можете загрузить всё дерево переводов, достаточно одного файла (с расширением po или pot). Ссылку на нужный вам файл можна найти на этой странице (интерфейс) или этой странице (документация). Мы не рекомендуем пользоваться этим путём по следующим причинам:
- Без загрузки полного комплекта вы не получите удобного доступа к глоссарию команды переводчиков. Старайтесь использовать согласованный командой глоссарий и соблюдать нормы перевода.
- Если программу ещё никто не переводил, вероятно, в ней много сообщений, которые уже были ранее переведены другими участниками команды перевода. Их можно заполнить с помощью памяти переводов (подробное описание приведено в справке к Lokalize). Если комплект переводов не будет загружен, доступа к памяти переводов вы, естественно, не получите.
Хочу перевести приложение, основанное на библиотеках KDE, но не являющееся частью KDE. Обязательно ли советоваться с командой переводчиков KDE?
Многие популярные программы (Kdenlive, k9copy) основаны на библиотеках KDE, но частью KDE не являются. Конечно же, вы можете переводить ни с кем не советуясь. Однако, если вам нужен добрый совет или помощь в улучшении качества перевода, вам всё же стоит сотрудничать с русской командой переводчиков KDE. Кроме того, часть перевода так или иначе будет загружена из перевода библиотек KDE, поэтому без должной основы и однородности использованной терминологии качественного перевода у вас не получится.
Как переводить?
Есть ли какие-то общие рекомендации?
Не спешите, постарайтесь взвесить всё с точки зрения пользователя. Для проверки работы воспользуйтесь возможностями Lokalize по локальной установке файлов перевода. После компиляции перевода интерфейса запустите программу и попробуйте с ней немного поработать.
Если у вас возникли вопросы (по использованию программы, контролю качества или самого перевода), не стесняйтесь задавать их в списке рассылки.
Как избежать ошибок?
Во-первых, следует придерживаться следующих правил:
Переменные
Переменные в KDE, начиная с версии 4, не обозначаются, подобно переменным Gtk/Gnome, а нумеруются:
<span style='color: %1;'>[Who:%2] <b><u>Username</u></b>: %3, <b><u>Address</u> </b>: %4, <b><u>Server</u></b>: %5, <b><u>Nick</u></b>: %6, <b><u>Flags</ u></b>: %7, <b><u>Hops</u></b>: %8, <b><u>Real Name</u></b>: %9</span>
В русском языке часто фразы переводов строятся так, что порядок переменных может быть совершенно иным. Не стесняйтесь менять местами переменные.
Коментарии
С введением нумерации возникает проблема определения назначения переменных. Эту проблему решают комментарии. С комментарием можно ознакомится на одной из левых панелей просмотра данных Lokalize. Пример:
#: statusbar/StatusBar.cpp:339 #, kde-format msgctxt "%1 is number of tracks, %2 is time" msgid "%1 track (%2)" msgid_plural "%1 tracks (%2)"
На левой панели вы увидите:
%1 is number of tracks, %2 is time
Как видим, комментарий описывает всё что нужно. К счастью, современные программы для перевода (автономные: Lokalize, Gtranslator, Virtaal, PoEdit, OmegaT и серверные: Pootle, Rosetta, Narro) поддерживают показ комментариев, поэтому можно спокойно переводить сообщения, не заглядывая постоянно в код программы.
Формы множественного числа
В KDE 3 была ужасно неочевидная форма записи форм множественного числа:
#: kilestdtools.cpp: 171 # c-format msgid "" "_n:%n error\n" "%n errors" msgstr "" "%n ошибка\n" "%n ошибки\n" "%n ошибок"
Сейчас от этой формы избавились. Теперь форма записи полностью совпадает со стандартной:
#: kilestdtools.cpp: 204 # kde-format msgid "1 error" msgid_plural "%1 errors" msgstr[0] "%1 ошибка" msgstr[1] "%1 ошибки" msgstr[2] "%1 ошибок"
Первой из форм соответствуют числа 1, 21, 31 и т.д., второй — 2, 3, 4, 22, 23 и т.д., третей — 5, 6, 7 и т.д. Все эти формы будут показаны на вкладках перевода Lokalize.
Разметка
В процессе перевода встречаются конструкции вида
<interface>%1</interface> is invalid.<nl/>Local Admin rule: <icode>%2</icode>
Элементы в угловых скобках — разметка. Не переводите её. Не стоит также вводить разметку вручную: вставить элемент разметки можно с помощью контекстного меню (достаточно нажать комбинацию клавиш Ctrl+T).
Этим же приёмом можно воспользоваться для контроля качества: в нашем примере пропущен элемент разметки <br>. Его следует добавить нажатием клавиши Enter. |
Благодарности авторам перевода
Довольно долгое время подобные вопросы оставались неурегулированными (в некоторых программах это состояние сохранилось и сейчас). Авторы программ записывали переводчиков в файлы CREDITS, создавали специальные файлы, которые программа обрабатывала при запуске или открытия вспомогательного окна «О программе». В современном KDE благодарности переводчикам являются частью самих файлов перевода.
- В интерфейсе программ:
#: rc.cpp: 46 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Иван Иванов,Пётр Петров"
#: rc.cpp: 47 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "ivan@goodhost.org,petrov@nicehost.org"
Как видим, в KDE записи имен и адресов электронной почты разделены между двумя записями. Каждый элемент записи отделяется от других запятой.
Пожалуйста, не переводите буквально: «ИМЕНА ПЕРЕВОДЧИКОВ» или «АДРЕСА ЭЛЕКТРОННОЙ ПОЧТЫ ПЕРЕВОДЧИКОВ»!
- В документации к программам:
#. tag: trans_comment #: index.docbook: 57 # no-c-format msgid "ROLES_OF_TRANSLATORS" msgstr "" "<othercredit Role=\"translator\"> <firstname>Иван</" "firstname> <surname>Иванов</surname> <affiliation> <address> <email>" "ivan@somewhere.org</ email> </ address> </ affiliation> <contrib>Перевод" "на русский</contrib> </othercredit> <othercredit role = \"translator" "\"> <firstname>Пётр </ firstname> <surname> Петров</" "surname> <affiliation> <address> <email>petrov@nevermind.net</email> </address> </" "affiliation> <contrib>Дополнение перевода на русский</contrib> </othercredit>"
Здесь мы видим XML-код, который можно просто скопировать из памяти переводов Lokalize и заполнить собственными данными. Кроме того, предусмотрено ещё одна запись в конце файла:
#. tag: trans_comment #: index.docbook: 1917 # no-c-format msgid "CREDIT_FOR_TRANSLATORS" msgstr "" "<para>Перевод на русский: Иван Иванов <email>ivan@host.ru" "</email></para><para>Дополнение перевода на русский: Пётр " "Петров <email>petrov@nevermind.net</email> </para>"
Замечания здесь те же: не переводите буквально!
Во-вторых, проверьте качество перевода простой командой
msgfmt -v -c ваш_файл.po
Если смысл появившихся сообщений об ошибках вам не ясен, сообщите о них в списке рассылки (не забудьте процитировать соответствующий фрагмент файла перевода).
В-третьих, соблюдайте правила орфографии. Стоит проверить переведенные файлы на возможные ошибки скриптом
#!/bin/bash for i in *.po do sed "s/[&]//g"<$i|sed "s/ё/е/g"|aspell -l ru list|sort|uniq>${i%.*}.err done |
В-четвёртых, важным в проверке перевода является выявление ошибок, связанных с неправильным использованием тегов в сообщениях интерфейса программы. Выявить такие ошибки можно с помощью Pology. Впрочем, вы можете оставить эту работу на усмотрение координатора перевода. Не забудьте, однако, сообщить о том, что этой проверки вы не выполняли.
Что следует учесть при переводе документации?
Если вы переводите документацию, помните, что переведенный вами файл справки будет собран и добавлен в пакеты KDE, только если этот перевод будет готов на 100%. Один справочник можете состоять из нескольких модулей, не забывайте об их переводе.
Как собрать переведённую документацию и посмотреть, что получилось?
Установите пакет kdesdk-po2xml и загрузите документацию к программе. Загрузку документации следует выполнить в папку «корневая папка перевода/documentation/название модуля/название программы» командой:
svn co svn://anonsvn.kde.org/home/kde/trunk/l10n-kde4/documentation/название_модуля/название_программы
Загрузите скрипты обработки переводов:
svn co svn://anonsvn.kde.org/home/kde/trunk/l10n-kde4/scripts/
Если вы уже куда загрузили эту документацию, не огорчайтесь, папку с документацией можно просто передвинуть в надлежащее место - загружать всё ещё раз не нужно.
По завершению перевода справки попробуйте собрать документацию программы командой
scripts/update_xml ru название_модуля/название_программы
выполненной из корневой папки ваших переводов.
Если при компиляции будет показано сообщения об ошибках, вам следует внимательно с ними ознакомиться. Обычно причин ошибок может быть три: ошибки в тегах XML при переводе, создание новых записей авторов и названий программ (entities), ошибки в оригинальном файле DocBook.
Разберем все возможные варианты последовательно:
1) Вы допустили ошибку при переводе. Внимательно прочитайте сообщение, выведены скриптом update_xml. Найдите первую ошибку. Если легко удается идентифицировать ложное сообщение, откройте его в Lokalize, перейдите в конец сообщения и нажмите комбинацию клавиш Ctrl+T. В ответ программа покажет список тегов сообщения. Обратите внимание на тег, который выделен: возможно, именно его вы пропустили или расположили неправильно. Если идентифицировать ошибочное сообщение не удалось, вы можете попробовать собрать черновик документации и определить сообщение по строке ошибки: скопируйте соответствующий файл docbook и файл po в другую папку и выполните команду
po2xml файл.docbook файл.po> translated.docbook
По номеру строки с ошибкой определите ошибочное сообщение и исправьте его.
2) Авторы документации создали новые записи в файлах типовых записей (такие ошибки можно обнаружить по характерным сообщениям о неопределенных записях entities). Для сбора документации вам придется загрузить новые файлы записей
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs/kdoctools/customization/entities
и переписать их в / usr/share/apps/ksgmltools2/customization/entities
3) Если два описанных способы не дали результатов, попробуйте проверить DocBook на корректность командой
checkXML index.docbook
Если будет показано сообщение об ошибке, сообщите о нём в список рассылки переводчиков KDE.
Если всё прошло удачно, скопируйте готовые файлы справки (update_xml создаст их в каталоге /ru/docs/название модуля/название программы) в отдельный каталог тестирования. Для преобразования документации в формат HTML воспользуйтесь командой
meinproc4 index.docbook
Попробуйте вычитать документацию и исправить ошибочно переведенные сообщения.
Хочу подготовить новые качественные снимки окон для документации. Что следует учесть?
Конечно же, переведенная документация лучше выглядит с полностью локализованным элементами. Для создания снимков окон можно воспользоваться KSnapshot (просто откройте окно локализованной программы и нажмите PrintScreen). Образцы соответствующих снимков можно найти в каталоге /documentation с оригинальной документацией. Следует придерживаться размеров изображений оригиналов, а также использовать типовую тему KDE (в текущей версии Oxygen).
Я пользуюсь Windows. Как мне помочь с переводом KDE?
Lokalize можно установить с помощью обычного инсталятора KDE для Windows. При установке выберите соответствующий пункт в модуле kdesdk.
Если вы работаете за учётной записью, в названии которой нет символов кириллицы, воспользуйтесь Virtaal.
В крайнем случае можете воспользоваться poEdit. К сожалению, poEdit не соответствует по набору возможностей требованиям к современному инструменту локализации.
Что делать с готовыми файлами локализации?
Всё. Готово. Куда слать файлы?
Запакуйте файлы архиватором Ark в любой удобный для вас формат и отошлите архив с сопроводительным письмом в список рассылки переводчиков.
Хочу отправлять переводы самостоятельно!
Если Вы желаете и имеете достаточные навыки, признанные другими участниками команды, вы можете вносить переводы в хранилище самостоятельно.
Пожалуйста, ознакомьтесь с этими инструкциями. Заполните соответствующую веб-форму, в которой укажите цель своего вступления в команду KDE.
После отправки данных из формы вы подождать, возможно, другие участники команды перевода выскажут возражения относительно вашего вступления. Если таких возражений не будет отправлено, вы станете участником или участницей русской команды по переводу KDE с правом самостоятельных вкладов.
Пожалуйста, будьте осмотрительными, от ваших действий зависит не только ваша личная репутация, но и репутация всей вашей команды.
Как улучшить качество переводов?
Как пользоваться Pology?
Созданный Чаславом Иличем набор скриптов на языке Python под общим названием Pology является чрезвычайно полезным инструментом поиска и редактирования переводов.
Загрузить Pology можно с помощью следующей команды:
svn co svn://anonsvn.kde.org/home/kde/trunk/l10n-support/pology
Скрипты набора находятся в каталоге /scripts.
Приведём несколько полезных команд:
1) Найти и открыть в Lokalize все строки без учета акселератора, содержащих «(c)» в шаблоне и не содержат «©» в переводе (из каталога scripts Pology):
./posieve.py find-messages ../../ru/messages/ -saccel:'&' -stransl -smsgid:'\(c\)' -snmsgstr:'©' -slokalize
2) Упорядочить заголовки всех файлов перевода:
./posieve.py normalize-header ../../ru
3) Получить статистику перевода определенной папки (kdepim):
./posieve.py stats ../../ru/messages/kdepim
4) Снять обозначения неточного перевода со всех переводов, где изменился лишь контекст (для kstars):
./posieve unfuzzy-context-only -snoreview -seqmsgid ../../ru/messages/kdeedu/kstars.po
5) Заменить все английские кавычки на русские типографские в переводе (kstars):
./posieve.py fancy_quote ../../ru/messages/kdeedu/kstars.po -slongdouble:'«','»'
Можно ли воспользоваться возможностями Translate Toolkit?
Конечно! Контроль соответствия элементов начальной строки и элементов перевода целесообразно осуществлять с помощью программы pofilter.
Фильтры
accelerators проверить соответствие акселераторов в строках acronyms проверить, не изменены ли аббревиатуры blank проверить, не состоит ли «перевод» лишь с пробелов brackets проверить, совпадает количество скобок в начальном строке и в переводе compendiumconflicts проверить наличие конфликтов с резюме Gettext (#-#-#-#-#) credits проверить, содержатся в строках данные о переводчиках вместо обычных (неправильных) переводов. doublequoting проверить парность кавычек в обоих строках doublespacing проверить наличие лишних двойных пробелов, по сравнению с исходным строкой doublewords проверить наличие повторов слов в переводах emails проверить, не переведены ли адреса endpunc проверить, совпадает пунктуация конце строк endwhitespace проверить, нет лишних пробелов в конце строк escapes проверить правильность экранирования escape-последовательностей filepaths проверить, не переведены ли адреса файлов functions проверить, не переведены ли названия функций hassuggestion найти модули с предложениями перевода isfuzzy найти модули, которые переведены неточно isreview найти модули, обозначенные для дальнейшего рецензирования long проверить, не является перевод значительно длиннее начальной строки musttranslatewords проверить, переведены ли слова, специально обозначенные для перевода newlines проверить, совпадают отметки разрывов строк notranslatewords проверить, имеются ли в переводах слова, помеченные как такие, которые нельзя переводить nplurals проверить, правильным является количество форм множественного числа numbers проверить, соответствуют ли числа в начальной строке и строке перевода options проверить, не переведены ли названия параметров printf проверить, совпадают строки форматирования printf puncspacing проверить, правильно ли расставлены пробелы после знаков препинания purepunc проверить, не изменены ли строки, состоящие только из знаков препинания sentencecount проверить, совпадает количество предложений в начальной строке и строке перевода short проверить, не является перевод намного более коротким по сравнению с оригиналом simplecaps проверить, не является регистр букв значительно расходящимся simpleplurals найти для редактирования формы множественного числа singlequoting проверить соответствие одинарных кавычек в строках spellcheck найти слова, не соответствующие правилам правописания startcaps проверить, использованы заглавные буквы в начале предложения startpunc проверить, совпадает ли пунктуация в начале строк startwhitespace проверить, совпадает количество пробелов в начале строк tabs проверить, совпадает табуляция в обеих строках unchanged найти «переводы», которые совпадают с начальными строками untranslated найти строки, которые не переведены urls проверить, не переведены ли адреса URL validchars проверить, использованы ли в переводе лишь корректные символы variables проверить, использованы ли в переводе соответствующие формы переменных xmltags проверить, не переведены ли теги XML/HTML
Примеры
pofilter -kde ru ru-check
Использовать стандартные параметры проверки для KDE. Проверить все PO-файлы в каталоге ru и вывести все сообщения об ошибках в каталог ru-check (создать каталог, если его не существует).
pofilter -t isfuzzy -t untranslated ru ru-check
Выполнить только проверки isfuzzy и untranslated. Программа создаст файлы с сообщениями, которые либо были обозначены, как переведены неточно или не были переведены.
pofilter -excludefilter=simplecaps -nofuzzy ru ru-check
Выполнить фильтрацию по всем фильтрами, кроме simplecaps. Кроме того, проверка будет выполнена только для сообщений, которые не были обозначены, как переведеные неточно.
pofilter -language=ru dir dir-check
Проверить с помощью pofilter русские переводы с учетом правил языка (пунктуации, пробелов, кавычек и т.д.). Некоторые из фильтров будут выключены.
pofilter -excludefilter=untranslated
Проверить с помощью pofilter, пропустить непереведённые сообщения.