Цель этого документа — помочь переводчикам. Вначале даётся общее описание технической стороны перевода. Затем рассматривается собственно перевод на примере голландского языка. В конце приводится ряд рекомендаций и правил.
Важное замечание: если вы хотите переводить файлы в каталоге docs (не web), никогда не делайте этого в ветке master. Переводы всегда выполняются в отдельных ветках и только после того, как будет обновлена английская версия документации. Например, для перевода документации QGIS 1.8 необходимо использовать ветку manual_en_v1.8. По всем вопросам, пожалуйста, обращайтесь к qgis-community-team на http://lists.osgeo.org/mailman/listinfo/qgis-community-team.
Для иллюстрирования процесса перевода мы возьмем описание модуля теплокарта. В этом примере мы выполним перевод с английского на голландский, но общие принципы будут одинаковы и для остальных языков и документов.
Сама документация создаётся в формате rst. Затем, при помощи скрипта, формируются файлы переводов .po для английского языка в каталоге /QGIS-Documentation/i18n/en.
Эти «оригиналы» копируются скриптом в подкаталоги других языков внутри каталога i18n.
Именно в этих .po-файлах выполняется перевод английского текста. Для этого служат специальные редакторы. Для работы в режиме онлайн используется сервис Transifex. Если же вы предпочитаете работать без выхода в интернет — используйте Qt Linguist, который входит в состав инструментов разработчика Qt.
Чтобы начать работу, загрузите файл .po и добавьте в него перевод.
После того, как весь файл переведён и загружен на сервер, при следующем запуске скрипта сборки будет создан соответствующий файл .mo.
Файлы .mo ипользуются для создания локализованого результата.
Когда исходный документ в формате rst будет обновлен, создаётся новый файл .po. Его содержимое будет объединено с содержимым уже существующий файлов .po для каждого языка. Это значит, что если в уже переведенный документ будут добавлены новые строки, в .po файле нужно будет перевести только новые/измененные строки. Таким образом, объем работы по обновлению перевода для следующей версии QGIS должен быть относительно небольшим.
Для примера мы возьмем относительно небольшой файл с описанием модуля теплокарта. Исходный текст можно посмотреть здесь:
QGIS-Documentation/source/docs/user_manual/plugins/plugins_heatmap.rst
Почему мы выбрали именно этот файл?
Он соответствует текущей версии QGIS. Если документ не обновлялся для соответствия текущей версии QGIS, в его начале будет следующий текст.
|updatedisclamer|
Эта строка создаёт в конечном документе блок с предупреждением. Если начать переводить документ с такой строкой, то скорее всего в дальнейшем к нему придется вернуться.
Кроме того, файл содержит изображения, подзаголовки, ссылки и подстановки.
И кроме того, его автором являюсь я, так что мне проще его переводить ;-).
В процессе сборки был создан английский файл .po, который можно найти здесь:
QGIS-Documentation/i18n/en/LC_MESSAGES/docs/user_manual/plugins/plugins_heatmap.po
Соответствующий голландский файл .po (на самом деле это копия исходного файла), расположен в:
QGIS-Documentation/i18n/nl/LC_MESSAGES/docs/user_manual/plugins/plugins_heatmap.po
Рядом с файлом .po вы можете заметить маленький файл .mo, который показывает, что переведённых строк нет.
Я возьму этот файл .po и начну переводить его. И в процессе перевода покажу какие именно части (элементы RST) нуждаются в переводе.
При первом открытии файла .po Qt Linguist отображает следующий диалог:
Figure Translation 1:
Поле «Язык перевода» должно быть заполнено правильно. В поле «Исходный язык» можно оставить значение по умолчанию POSIX, аналогично и с полем «Страна/Регион» — там можно оставить «Любая страна».
После нажатия на кнопку [OK] Qt Linguist загрузит строки и можно будет приступать к переводу, см. рисунок Figure translation 2.
Figure Translation 2:
На панели инструментов находится ряд кнопок, облегчающих работу.
Пометить перевод как завершённый и перейти к следующему незавершённому. Если элемент нуждается в переводе, введите перевод в соответствующее поле и нажмите эту кнопку. Если элемент не переводится, оставьте поле перевода пустым и нажмите кнопку.
linguist_next_todo| Следующий незавершённый перевод — выполняет переход к первому непереведённому элементу. Полезна, когда исходный документ был изменён и только новые/одновлённые строки нуждаются в переводе.
Предыдущий незавершённый перевод, выполняет поиск в обратном направлении и переходит к первому найденному непереведённому элементу.
Теперь можно начинать перевод файла plugin_heatmap!
Первые два элемента не нуждаются в переводе. Просто нажмите кнопку на панели инструменов, отмечая их как переведённые и переходя к следующим элементам.
Дойдя до третьего элемента, мы видим, что он выглядит достаточно интересно:
The |heatmap| :sup:`Heatmap` plugin allows to create a heatmap from a point vector map. A heatmap is a raster map showing the density or magnitude of point related information. From the result "hotspots" can easily be identified.
|heatmap| слова между | являются подстановками и никогда не переводятся! Они будут заменены другим текстом или изображением!
:sup:`Heatmap` `` элемент ``:sup: является элементом форматирования и переводит заданный текст в верхний индекс. Такое оформление используется для отображения всплывающих подсказок. Перевод всплывающих подсказок в документации и в интерфейсе QGIS должен совпадать!
Весь остальной обычный текст можно переводить!
Пятый блок текста содержит элемент разметки :ref:, который обычно используется для создания ссылки на другой раздел документации. Текст, следующий за элементом :ref: ни в коем случае нельзя переводить, так как это уникальный идентификатор!
First this core plugin needs to be activated using the Plugin Manager (see Section :ref:`load_core_plugin`). After activation the heatmap icon |heatmap| can be found in the Raster Toolbar.
В нашем случае «load_core_plugin» является идентификатором ссылки, расположенным перед некоторым заголовком. Элемент :ref: будет заменен на текст заголовка и превращен в гиперссылку. Если заголовок, на который сслыается этот элемент, переведен, то все ссылки будут автоматически переведены.
Следующий блок текста содержит элемент :menuselection: за которым следует текст пункта меню QGIS. Он должен быть переведён точно так же как и пункт меню в самом приложении.
Select from menu :menuselection:`View -->` :menuselection:`Toolbars -->` :menuselection:`Raster` to activate the Raster Toolbar when it is not yet activated.
В нашем примере «View –>» будет переведено как «Beeld –>», так как именно такой перевод используется в голландской локализации QGIS.
Чуть позже мы встретим вот такой элемент:
The |heatmap| :sup:`Heatmap` toolbutton starts the Dialog of the Heatmap plugin (see figure_heatmap_2_).
Он содержит ссылку на рисунок figure_heatmap_2_, как и в случае со ссылкой на раздел, этот текст не нужно изменять! Описания ссылок из RST не извлекаютя при формировании файлов .po, и, соответственно, не могут быть изменены. Это значит, что ссылки на рисунки не могут быть переведены. При создании HTML вы увидите figure_heatmap_2, а при создании PDF — figure_heatmap_2_ будет заменено на номер рисунка.
Следующий блок содержит несколько элементов разметки:
**Input Point dialog**: Provides a selection of loaded point vector maps.
Не удаляйте символы звездочки в этой строке. Они указывают на использование полужирного начертания текста. Чаще всего таким образом выделяются подписи в диалогах и они должны переводиться точно так же, как и в приложении.
Следующий блок текста содержит элемент :guilabel:.
When the |checkbox| :guilabel:`Advanced` checkbox is checked it will give acces to additional advanced options.
Текст «Advanced» в этом элементе должен переводиться как и в QGIS.
Следующий блок содержит текст ``airports``. Апострофы используются для создания моноширинного текста. В нашем случае это строковая величина и она не нуждается в переводе.
For the following example, we will use the ``airports`` vector point layer from the QGIS sample dataset (see :ref:`label_sampledata`). Another exellent QGIS tutorial on making heatmaps can be found on `http://qgis.spatialthoughts.com <http://qgis.spatialthoughts.com/2012/07/tutorial-making-heatmaps-using-qgis-and.html>`_.
Этот блок также содержит гиперссылку на внешний источник. URL, разумеется, должен оставаться неизменным, но вы можете перевести непосредственно текст ссылки “http://qgis.spatialthoughts.com”, который будет виден пользователю. Никогда не удаляйте подчеркивание в конце гиперссылок, так как они являются их составной частью!
Не изменяйте подстановки вида |nix|
Не изменяйте ссылки, начинающиеся с :ref:
Не изменяйте ссылки, заканчивающиеся подчеркиванием, например, figure_1_
Не изменяйте адрес гиперссылок, но при необходимости можете изменять их описание. Обязательно оставляйте символ подчеркивания в конце гиперссылки.
Переводите текст, после элементов :sup:, :guilabel: и :menuselection:. Проверяйте как они переведены в QGIS и используйте этот перевод.
Текст, заключённый в двойные звёздочки или апострофы часто яавляется некоторыми значениями или именами файлов. Иногда он должен переводиться, иногда — нет.
Будьте внимательны и используйте точно такие же апострофы, как и в исходном тексте.
Не добавляейте в конце переведённых строк символ возврата каретки, иначе текст не будет переведён при создании HTML.
Следуйте этим простым правилам и ваш перевод будет выглядеть хорошо!