From Fedora Project Wiki
Line 228: Line 228:
{{Anchor|msgmerge}}
{{Anchor|msgmerge}}


=== Что происходит с msgmerge? (#msgmerge) ===
=== Что делает msgmerge? (#msgmerge) ===


Любой PO-файл должен содержать те же записи, что и соответствующий ему POT, даже если они не переведены. Если в файле *.PO отсуствуют записи, то эти записи в окончательном продукте не будут переведены. Получается парадокс: PO-файл полностью переведён, а статистика на сайте показывает обратное или, ещё хуже, приложение содержит текст на английском языке.
Любой PO-файл должен содержать те же записи, что и соответствующий ему POT, даже если они не переведены. Если в файле *.PO отсуствуют записи, то эти записи в окончательном продукте не будут переведены. Получается парадокс: PO-файл полностью переведён, а статистика на сайте показывает обратное или, ещё хуже, приложение содержит текст на английском языке.


В идеале для всех PO-файлов нужно выполнить операцию объединения (msgmerge) после каждого обновления POT. Но поскольку это не всегда происходит, иногда переводчикам приходится это делать самостоятельно. Веб-утилиты сайта исполняют <code>msgmerge</code>, прежде чем будет рассчитана статистика. Так, они выполняют объединение записей из существующего PO-файла с новыми записями из POT-файла и уже после этого показывают статистику. Они также предоставляют ссылку к полученному PO-файлу, загрузить который можно выбрав соответствующий значок справа.
В идеале для всех PO-файлов нужно выполнить операцию объединения (msgmerge) после каждого обновления POT. Но поскольку это не всегда происходит, иногда переводчикам приходится самостоятельно убедиться, что файл был вовремя обновлён. Веб-утилиты сайта исполняют <code>msgmerge</code> каждый раз ДО расчёта статистики. Так, они выполняют объединение записей из существующего PO-файла с новыми записями из POT-файла и уже после этого показывают статистику. Они также покажут ссылку к полученному PO-файлу, загрузить который можно выбрав соответствующий значок справа.


Чтобы убедиться, что PO-файл действительно полностью переведён:
Чтобы убедиться, что PO-файл действительно полностью переведён:


# На странице статистики загрузите PO-файл и затем опять его отправьте.
# На странице статистики загрузите PO-файл и затем опять его отправьте. Просмотрите результат.
# С помощью VCS напрямую загрузите PO-файл и выполните msgmerge прежде чем приступить к работе над ним. Для модулей с поддержкой intltool (им соответствует файл <code>po/POTFILES.in</code>):
# С помощью VCS напрямую загрузите PO-файл и выполните msgmerge прежде чем приступить к работе над ним. Для модулей с поддержкой intltool (им соответствует файл <code>po/POTFILES.in</code>):
<pre>cd po && intltool-update <language>
<pre>cd po && intltool-update <language>

Revision as of 02:14, 24 September 2009

Часто задаваемые вопросы о выполнении переводов в проекте Fedora

Здесь приведены наиболее часто встречающиеся вопросы о проекте локализации Fedora.

Подробную информацию о выполнении переводов можно найти в краткой инструкции по переводу Fedora

Обозначения

Transifex :: Приложение Django для получения переводов и сбора статистики (Сайт разработки Transifex). Сайт переводов: https://translate.fedoraproject.org/

VCS :: Система контроля версий (Version Control System). CVS, Subversion, Mercurial (hg) также являются системами VCS.

Общие вопросы

Как можно получить файлы для перевода? (#get-files)

Чтобы загрузить PO-файл для перевода модуля, перейдите на страницу статистики этого модуля, в списке языков найдите Russian (ru) и справа от индикатора прогресса нажмите значок загрузки.

Как можно отправить готовый перевод? (#submit)

Все модули, для которых принимаются переводы в системе Transifex, перечислены здесь: https://translate.fedoraproject.org/projects/

Нажмите отмеченную стрелкой кнопку, появится поле для выбора файла. Выберите переведенный файл и нажмите кнопку "Send".

Как сообщить об ошибках или отправить свои предложения?

Например, если невозможно отправить перевод пакета XYZ или получить его статистику перевода, то можно создать отчёт на этой странице.

  • Сообщения об ошибках и предложения по улучшению работы Transifex следует отправлять сюда: http://transifex.org/newticket

Пример: запрос включения в статистику информации о пользователе, который последним отправил файл, или запрос добавления возможности сортировки статистики.

Но быстрее всего связаться с группой администраторов FLP можно напрямую в канале IRC #fedora-l10n.

Вопросы по веб-сайту

Сайт проекта локализации Fedora расположен по адресу http://translate.fedoraproject.org/.

Как сообщить об ошибках сайта проекта переводов или отправить свои предложения? (#bugs)

Сообщения об ошибках и предложения по улучшению сайта рекомендуется регистрировать в Bugzilla (компонент Website). Выборку существующих отчётов можно просмотреть здесь.

Прежде чем создавать новый запрос, просмотрите этот список и убедитесь, что об этой проблеме ещё не сообщалось. Также можно задать вопрос в канале #fedora-l10n. В теле запроса подробно опишите проблему, укажите модуль и выпуск, время события (UTC) и ваше имя пользователя Fedora. Если вы считаете, что проблема связана с конкретным файлом, включите информацию об этом файле.

Если проблема связана с инфраструктурой Transifex, а не Fedora, то запрос следует создать в системе отчётов Transifex.

Как создать новую команду перевода? (#new-team)

Если вы хотите заниматься координацией переводов, вам сюда (ссылка на статью на англ.)

Чтобы добавить новую команду, создайте запрос в Bugzilla.

Укажите язык, ваше имя и учетную запись FAS, электронный адрес, а также ссылку на страницу вашей команды и адрес рассылки (если они существуют).

Как создать компонент Bugzilla для русского языка? (#bugzilla-team)

Для каждого языка существует отдельный компонент в системе регистрации ошибок Bugzilla, что позволяет облегчить перенаправление отчетов людям, которые смогут исправить ошибки. Список поддерживаемых языков можно найти в файле owners.list по адресу /cvs/l10n/owners/.

За дальнейшей информацией можно обратиться к координатору переводов (ссылка на статью на англ.) .

Для создания отчета об ошибке необходимо зарегистрироваться в Bugzilla. Новую учетную запись можно создать на странице Create Bugzilla account

Если у вас уже есть учетная запись Bugzilla, можно приступить к созданию нового отчета об ошибке. В списке "Component" выберите "Russian [ru]" и в поле "Description" подробно опишите проблему. При необходимости заполните остальные поля.

Завершив, нажмите кнопку "Commit".

Что это за предупреждения на странице статистики? (#stats-warnings)

Эти сообщения позволяют определить проекты с проблемами, вызванными адаптацией переводов. Обычно они не оказывают влияния на работу переводчиков, их решение входит в компетенцию разработчиков и администраторов.

Ошибки intltool (#intltool-errors)

Это наиболее распространенные ошибки (например, "Can't generate POT file"). Обычно означает, что модуль не использует intltool для извлечения строк, поэтому нет стопроцентной гарантии, что все строки, которые требуется перевести, будут включены в POT-файл. Если сообщение содержит "Using old one", то будет использоваться POT-файл, предоставленный переводчиком.

File:L10N FAQ l10nerror1.png

Сообщение: "There are some missing files from POTFILES.in" (#missing-files)

Если сообщения содержат "There are some missing files from POTFILES.in", это означает, что не все исходные файлы использовались при извлечении строк. Об этой ошибке рекомендуется сообщить разработчикам (создайте запрос в Bugzilla).

File:L10N FAQ l10nerror2.png

Сообщение: "Entry for this language is not present in (ALL_)LINGUAS file" (#missing-from-linguas)

Некоторые проекты используют специальные файлы, такие как po/LINGUAS и po/Makefile, для определения того, какие языки включены в поставку того или иного продукта. Так, перечисленные в этих файлах языки включены в комплект поставки, все остальные -- не включены.

Если эти файлы расположены в VCS, интерфейс статистики выполнит поиск языка в файле. Если язык не указан, будет показано предупреждение "Entry for this language is not present in (ALL_)LINGUAS file". В этом случае надо указать язык в соответствующем файле LINGUAS или в переменной в файле Makefile.

Если вы уверены, что в комплект поставки модуля включены все языки, то это сообщение можно проигнорировать.

Cообщение: "Don't know where to look if this language is actually used" (#where-to-look)

Если сообщение содержит "Don't know where to look if this language is actually used", это означает, что язык не указан в файлах po/LINGUAS, Makefile. При использовании intltool это служит доказательством того, что язык не входит в комплект поставки заданного продукта (например, flp-website ). В других ситуациях это сообщение можно просто проигнорировать.

File:L10N FAQ l10nerror3.png

Другие ошибки (например, сообщение "Missing files from POTFILES.in") и "Can't generate POT file" (#error-no-pot)

Некоторые модули не предоставляют POT-файл и полностью полагаются на intltool в его создании. Всё это замечательно, но администратору нужно убедиться, что POT-файл можно сгенерировать так, чтобы при этом не произошел сбой intltool (подсказка: intltool -r или -m), так как в этом случае POT-файл не будет создан. В результате вы увидите показанное ниже сообщение.

Об этом сразу следует сообщить разработчикам, чтобы они могли исправить эту проблему (например, обновить POTFILES.{in,skip} и не забывать их регулярно обновлять).

Пример отчёта об ошибке для отсутствующих в POTFILES.{in,skip} файлов.

File:L10N FAQ l10n-error-inexistent-potfilesin.png

Мой файл полностью переведён, но при тестировании приложения виден английский текст! (#missing-strings)

Это не сильно похоже на вопрос. Тем не менее...

Возможные причины:

  • Вероятно, этот текст не был отмечен разработчиком для перевода, поэтому он не был включён в POT-файл и, как следствие, в PO-файл. В этом случае разработчику потребуется извлечь этот текст с помощью gettext.
  • Исходные файлы не были включены при сборке (intltool).
  • POT-файл давно не обновлялся. На странице компонента можно проверить дату создания файла. Если файл был создан давно, об этом следует сообщить администраторам.
  • Надо выполнить msmerge для вашего PO-файла. В этом случае статистика в Transifex покажет меньше 100% (так как Transifex автоматически выполняет эту операцию). Загрузите заново файл с Transifex или, если вы знаете как это сделать, выполните msmerge с POT-файлом самостоятельно.

Как часто обновляется статистика? (#update-frequency)

Статистика обновляется автоматически после получения переведённых файлов.

Так, на странице модуля можно увидеть время последнего обновления. Пример: Download POT file POT file (217 messages) — updated on 2007-09-24 01:43:00 MST. (MST is UTC-7).


Мой PO-файл полностью переведён, но не показан на странице. В чём дело? (#100-percent)

Наиболее вероятные причины:

  • Статистика обновляется не сразу, а по расписанию. В этом случае следует дождаться следующего обновления. См. #live
  • Возможно, для отправленного вами PO-файла сначала нужно выполнить msgmerge, так как, может быть, он не содержит последние добавленные строки. Скажем, вы загрузили PO-файл из VCS, перевели его и отправили обратно. Прежде чем выполнить сбор статистики, Transifex выполнит msgmerge (операцию объединения изменений в файле *.pot с переведённым файлом *.po).

Как добавить модуль в Transifex? (#add-transifex)

Чтобы добавить новые файлы для перевода через Transifex, сначала нужно создать учётную запись VCS. Подробности описаны на странице Infrastructure/SOP/Translations.

Шаг 1: Откройте доступ к модулю

Если модуль расположен в инфраструктуре Fedora:

  • Если вы являетесь координатором проекта, добавьте пользователя "transif" в группу проекта в Fedora Account System и поручитесь за него.
  • Если вы не являетесь координатором, откройте запрос о добавлении этого пользователя в Bugzillа и свяжите его с отчётом #436824 так, чтобы новый запрос его блокировал. Пример: #438122
  • Transifex использует этого пользователя для передачи переводов в репозиторий. Не стоит его удалять, так как это нарушит процесс отправки переводов.
  • Перейдите к шагу 2.

Если модуль расположен где-то в другом месте:

  1. Ваш репозиторий должен разрешать доступ через SSH. DimitrisGlezos поможет вам создать пару ключей и предоставит общедоступный ключ.
  2. Создайте учётную запись VCS (например, transifex-fedora), указав общедоступный ключ, и предоставьте ей права записи при доступе к модулю.
  3. Откройте доступ только для каталогов и файлов, которые переводчикам будет разрешено изменять (например, /po/*). Если это невозможно, нестрашно. Доступ можно ограничить в самой системе Transifex с помощью regex.
  4. Проверьте настройки.
  5. Добавьте комментарий в теле запроса Bugzilla и сообщите, что всё готово.
  6. Перейдите к шагу 2.

Шаг 2: Сообщите нам об изменениях

Создайте запрос в Bugzilla и укажите следующую информацию:

Имя модуля
Описание
Веб-страница проекта
Корень VCS, модуль, ветвь
Фильтр файлов (например, <code>po/.*</code>)
Changelog (если доступен)
Веб-страница для доступа к VCS
<ссылка на отчёт для шага 1> (если существует)

Кто-нибудь проверит наличие доступа записи, добавит модуль в Transifex, убедится в возможности отправки переводов и ответит на запрос.

Наконец, сообщите об изменениях в список рассылки fedora-trans-list. Всё!

Другие вопросы

Почему для модуля X нет файла *.POT? (#no-pot)

При сборке пакета некоторые разработчики используют утилиту gettext для извлечения строк, другие же пользуются intltool, что позволяет создавать POT-файл динамически. Поэтому для таких модулей POT-файл в VCS не существует, так как в нем просто нет необходимости. Таким образом, чтобы обновить PO-файл (msgmerge), выполните следующее:

cd po && intltool-update <language>

Если нужно создать POT-файл, измените команду так:

cd po && intltool-update --pot

Обратите внимание, что при отсутствии POT-файла обязательно, чтобы команда intltool-update завершилась успешно (см. [#missing-files-no-pot] ). Если это не удалось или, может, вы хотите, чтобы POT-файл в любом случае был добавлен в VCS, создайте запрос в Bugzilla для интересующего вас модуля и попросите разработчиков добавить файл.

Для интересующего меня модуля нет PO-файлов и статистики! Можно это исправить? (#no-po-files)

К сожалению, нет. Эту проблему может решить разработчик, поэтому рекомендуется создать запрос в Bugzilla (для Fedora и Red Hat) или в Trac (для fedorahosted.org).

Что делает msgmerge? (#msgmerge)

Любой PO-файл должен содержать те же записи, что и соответствующий ему POT, даже если они не переведены. Если в файле *.PO отсуствуют записи, то эти записи в окончательном продукте не будут переведены. Получается парадокс: PO-файл полностью переведён, а статистика на сайте показывает обратное или, ещё хуже, приложение содержит текст на английском языке.

В идеале для всех PO-файлов нужно выполнить операцию объединения (msgmerge) после каждого обновления POT. Но поскольку это не всегда происходит, иногда переводчикам приходится самостоятельно убедиться, что файл был вовремя обновлён. Веб-утилиты сайта исполняют msgmerge каждый раз ДО расчёта статистики. Так, они выполняют объединение записей из существующего PO-файла с новыми записями из POT-файла и уже после этого показывают статистику. Они также покажут ссылку к полученному PO-файлу, загрузить который можно выбрав соответствующий значок справа.

Чтобы убедиться, что PO-файл действительно полностью переведён:

  1. На странице статистики загрузите PO-файл и затем опять его отправьте. Просмотрите результат.
  2. С помощью VCS напрямую загрузите PO-файл и выполните msgmerge прежде чем приступить к работе над ним. Для модулей с поддержкой intltool (им соответствует файл po/POTFILES.in):
cd po && intltool-update <language>

Для других:

export L='el' && mv $L.po $L.previous.po && msgmerge $L.previous.po *pot > $L.po

Как переводить файлы .desktop?

Просмотрите это сообщение.


При попытке получения или отправки файла я получаю ошибку "Permission denied" (#ssh-key-denied)

В большинстве случаев эта проблема связана с несоответствием ключей SSH. Когда пользователь создаёт новую учётную запись, мы ей сопоставляем ключ SSH. При этом мы попросим пользователя отправить на сервер общедоступную часть ключа (расположена в локальном каталоге ~/.ssh/), после чего для идентификации пользователя будет использоваться этот ключ. Это обеспечивает больший уровень защиты по сравнению с использованием обычных паролей. Если вы не можете пройти аутентификацию на cvs.fedoraproject.org, это означает, что используемый вами SSH-ключ не соответствует ключам на наших серверах.

Если вы недавно изменили ключ SHH, его надо заново отправить.

Если же вы ключ не изменяли, убедитесь, что используется верный ключ (например, скопируйте их с вашего другого компьютера).