RU/Работа с переводами KDE через SVN: Difference between revisions

From KDE Community Wiki
< RU
(Moved http://l10n.lrn.ru/wiki/Работа_с_переводами_KDE_через_SVN)
 
(KF6 + Gitlab)
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
== Начало работы ==
== Начало работы ==
Перед тем как начать вносить изменения в репозиторий KDE, необходимо создать на своём компьютере рабочую копию части репозитория (если попробовать выгрузить весь репозиторий KDE, это может занять слишком много времени).
Перед тем как начать вносить изменения в репозиторий KDE, необходимо создать на своём компьютере рабочую копию части репозитория (если попробовать выгрузить весь репозиторий KDE, это может занять слишком много времени).
Этот раздел описывает работу с платформой KDE Frameworks 5. По мере перехода программ на Frameworks 6, может потребоваться заменить '''kf5''' на '''kf6''' в путях к указанным расположениям.


Какие части репозитория могут понадобиться переводчику:
Какие части репозитория могут понадобиться переводчику:
* '''trunk/l10n-kde4/ru''' — здесь находятся русские переводы для приложений KDE из разрабатываемой ветки ('''trunk''') и для нестабильных версий приложений, выпускающихся отдельно от KDE.
* '''trunk/l10n-kf5/ru''' — здесь находятся русские переводы для пакетов/приложений KDE из разрабатываемой ветки ('''master''').
* '''branches/stable/l10n-kde4/ru''' — русские переводы для приложений KDE из стабильной ветки (с конца июня до конца декабря 2010 года это ветка '''4.5''') и для стабильных версий приложений, выпускающихся отдельно от KDE. На основе файлов из этого каталога собирается пакет kde-l10n-ru для большинства дистрибутивов.
* '''branches/stable/l10n-kf5/ru''' — русские переводы для приложений KDE из стабильной ветки. Например, если в ближайшие недели ожидается новый функциональный выпуск Plasma 5.16.0, то в stable находятся переводы для 5.16.0, а в trunk — для разрабатываемого следующего функционального выпуска 5.17.x. Если у пакета/приложения есть обе ветки переводов trunk и stable, то в большинстве случаев в ближайший релиз пойдут файлы переводов из stable. Поэтому приоритетнее переводить те строки, которые ещё не переведены в stable.


Используя только эти два каталога, уже вполне можно работать над переводами KDE.
Используя только эти два каталога, уже вполне можно работать над переводами KDE.
Однако, и другие каталоги могут быть очень полезны:
Однако, и другие каталоги могут быть очень полезны:
* '''trunk/l10n-kde4/scripts''' — скрипты, имеющие отношение к локализации KDE. В подкаталоге '''lokalize''' находятся некоторые сценарии для Lokalize, среди них сценарий '''opensrc''' (он служит для открытия файлов исходного кода из Lokalize).
* '''trunk/l10n-kf5/scripts''' — скрипты, имеющие отношение к локализации KDE. В подкаталоге '''lokalize''' находятся некоторые сценарии для Lokalize, среди них сценарий '''opensrc''' (он служит для открытия файлов исходного кода из Lokalize).
* '''trunk/l10n-kde4/templates''' — шаблоны переводов (файлы .pot). Они бывают полезны, если нужно запустить '''merge_all.sh''' или '''msgmerge'''. Кроме того, при наличии этих шаблонов, Lokalize будет показывать их на вкладке "Обзор проекта", что позволит одним щелчком мыши начать перевод полностью непереведённого файла. Однако, не надо забывать о том, что русские переводы KDE перешли на 4 формы множественного числа, а Lokalize при создании файла перевода будет по-прежнему использовать 3 формы множественного числа.
* '''trunk/l10n-kf5/templates''' и '''branches/stable/l10n-kf5/templates''' — шаблоны переводов (файлы .pot). Они бывают полезны, если нужно запустить '''merge_all.sh''' или '''msgmerge'''. Кроме того, при наличии этих шаблонов, Lokalize будет показывать их на вкладке "Обзор проекта", что позволит одним щелчком мыши начать перевод полностью непереведённого файла. Однако, не надо забывать о том, что русские переводы KDE перешли на 4 формы множественного числа, а Lokalize при создании файла перевода будет по-прежнему использовать 3 формы множественного числа.
* '''branches/stable/l10n-kde4/templates''' — шаблоны переводов для стабильной ветки.
* '''trunk/l10n-kf5/documentaton''' и '''branches/stable/l10n-kf5/documentaton''' — оригинал документации на английском языке в формате DocBook. Используется для обновления русской документации, которая находится в каталоге '''trunk/l10n-kf5/ru/docs''' ('''branches/stable/l10n-kf5/ru/docs''' для стабильной ветки).
* '''trunk/l10n-kde4/documentaton''' и '''branches/stable/l10n-kde4/documentaton''' — оригинал документации на английском языке в формате DocBook. Используется для обновления русской документации, которая находится в каталоге '''trunk/l10n-kde4/ru/docs''' ('''branches/stable/l10n-kde4/ru/docs''' для стабильной ветки).
* https://invent.kde.org/ — исходный код большинства пакетов/программ (отдельные Git-репозитории для каждого пакета).
* '''trunk/l10n-support''' — вспомогательный каталог для работы над локализацией. Русской командой KDE он пока не используется, но именно в нём находится Pology.
* https://invent.kde.org/sdk/pology — исходный код Pology (инструмент для алгоритмической обработки файлов переводов .po).
* '''trunk/KDE''' — исходный код программ, входящих в состав KDE SC.
* '''trunk/extragear''', '''trunk/kdereview''', '''trunk/playground''' — исходный код других программ, которые переводятся русской командой KDE.
* '''trunk/koffice''' — исходный код KOffice.
 
Не все программы, локализация которых происходит в репозитории KDE, хранят свой исходный код в этом SVN-репозитории. Amarok и Konversation вместо SVN используют Git-репозитории:
[email protected]:amarok/amarok.git                        ([http://projects.kde.org/projects/amarok/repository веб-страница])
[email protected]:konversation/konversation.git            ([http://projects.kde.org/projects/konversation/repository веб-страница])
 
Файлы переводов из каталога '''trunk/l10n-kde4/ru/messages/qt''' относятся к переводам библиотеки Qt, на которой основаны программы KDE. Поэтому может оказаться полезным и исходный код Qt, находящийся тоже в репозитории Git:
git://gitorious.org/qt/qt.git                            ([http://qt.gitorious.org/qt веб-страница])
== Scripty ==


== Конфликты ==
== Конфликты ==
Line 37: Line 28:
Но как теперь разрешить возникший конфликт? Есть несколько возможностей:
Но как теперь разрешить возникший конфликт? Есть несколько возможностей:
* После запуска '''svn up''' скопировать <файл>.po.mine в <файл>.po, убрать лишние файлы и зафиксировать изменения. Таким образом, вы проигнорируете изменения от '''scripty''' и оставите только свои изменения. Следующей ночью '''scripty''' снова обновит файл перевода, и всё встанет на свои места.
* После запуска '''svn up''' скопировать <файл>.po.mine в <файл>.po, убрать лишние файлы и зафиксировать изменения. Таким образом, вы проигнорируете изменения от '''scripty''' и оставите только свои изменения. Следующей ночью '''scripty''' снова обновит файл перевода, и всё встанет на свои места.
* Если вы не хотите ждать следующего запуска '''scripty''', можно выполнить ту же работу за него. Для этого нужно запустить '''scripts/merge_all.sh''' из каталога '''l10n-kde4'''.
* Если вы не хотите ждать следующего запуска '''scripty''', можно выполнить ту же работу за него. Для этого нужно запустить '''scripts/merge_all.sh''' из каталога '''l10n-kf5'''.
* Если нужно обновить всего лишь несколько файлов переводов, то нет необходимости запускать скрипт '''merge_all.sh'''. Можно воспользоваться '''msgmerge''':
* Если нужно обновить всего лишь несколько файлов переводов, то нет необходимости запускать скрипт '''merge_all.sh'''. Можно воспользоваться '''msgmerge''':
  msgmerge --previous -q -o ru/messages/kdeedu/kstars.po \
  msgmerge --previous -q -o ru/messages/kdeedu/kgeography.po \
     ru/messages/kdeedu/kstars.po templates/messages/kdeedu/kstars.pot
     ru/messages/kdeedu/kgeography.po templates/messages/kdeedu/kgeography.pot
* Объединить файлы переводов при помощи Lokalize (такой способ подойдёт и в случае, если два переводчика по ошибке стали работать над одним файлов в SVN).
* Объединить файлы переводов при помощи Lokalize (такой способ подойдёт и в случае, если два переводчика по ошибке стали работать над одним файлов в SVN).


== Ссылки ==
== Ссылки ==
* [http://l10n.kde.org/docs/translation-howto/check-gui.html#gui-commit Committing Your Work to SVN]
* [http://l10n.kde.org/docs/translation-howto/check-gui.html#gui-commit Committing Your Work to SVN]

Latest revision as of 15:53, 14 April 2023

Начало работы

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

Этот раздел описывает работу с платформой KDE Frameworks 5. По мере перехода программ на Frameworks 6, может потребоваться заменить kf5 на kf6 в путях к указанным расположениям.

Какие части репозитория могут понадобиться переводчику:

  • trunk/l10n-kf5/ru — здесь находятся русские переводы для пакетов/приложений KDE из разрабатываемой ветки (master).
  • branches/stable/l10n-kf5/ru — русские переводы для приложений KDE из стабильной ветки. Например, если в ближайшие недели ожидается новый функциональный выпуск Plasma 5.16.0, то в stable находятся переводы для 5.16.0, а в trunk — для разрабатываемого следующего функционального выпуска 5.17.x. Если у пакета/приложения есть обе ветки переводов trunk и stable, то в большинстве случаев в ближайший релиз пойдут файлы переводов из stable. Поэтому приоритетнее переводить те строки, которые ещё не переведены в stable.

Используя только эти два каталога, уже вполне можно работать над переводами KDE. Однако, и другие каталоги могут быть очень полезны:

  • trunk/l10n-kf5/scripts — скрипты, имеющие отношение к локализации KDE. В подкаталоге lokalize находятся некоторые сценарии для Lokalize, среди них сценарий opensrc (он служит для открытия файлов исходного кода из Lokalize).
  • trunk/l10n-kf5/templates и branches/stable/l10n-kf5/templates — шаблоны переводов (файлы .pot). Они бывают полезны, если нужно запустить merge_all.sh или msgmerge. Кроме того, при наличии этих шаблонов, Lokalize будет показывать их на вкладке "Обзор проекта", что позволит одним щелчком мыши начать перевод полностью непереведённого файла. Однако, не надо забывать о том, что русские переводы KDE перешли на 4 формы множественного числа, а Lokalize при создании файла перевода будет по-прежнему использовать 3 формы множественного числа.
  • trunk/l10n-kf5/documentaton и branches/stable/l10n-kf5/documentaton — оригинал документации на английском языке в формате DocBook. Используется для обновления русской документации, которая находится в каталоге trunk/l10n-kf5/ru/docs (branches/stable/l10n-kf5/ru/docs для стабильной ветки).
  • https://invent.kde.org/ — исходный код большинства пакетов/программ (отдельные Git-репозитории для каждого пакета).
  • https://invent.kde.org/sdk/pology — исходный код Pology (инструмент для алгоритмической обработки файлов переводов .po).

Конфликты

Конфликты изменений возникают, когда пересекающиеся части файла изменяются одновременно в репозитории и в рабочей копии на вашем компьютере. Говоря о переводах, конфликты могут возникнуть при нескоординированной работе над одним файлом в SVN нескольких переводчиков.

В чём выражаются конфликты: при попытке выполнения команды svn up SVN сообщает о конфликте и отказывается выполнить svn up для файла (т.е. отказывается "добавить" к изменениям в рабочей копии те изменения, которые были сделаны в репозитории с момента последнего запуска svn up).

Конфликты со scripty

Но часто конфликты возникают всего лишь из-за вмешательства сервиса обновления файлов переводов (scripty).

Например, вы решили поработать над одним из файлов перевода. Перед этим, конечно, рекомендуется запустить svn up. И вот, вы начали редактировать файл перевода, но, не успев зафиксировать изменения в репозитории, захотели спать. Ночью запустился scripty, который добавил, изменил, удалил или поменял местами строки в файле перевода. На следующий день вы запускаете svn up и обнаруживаете конфликт, потому что SVN не знает о структуре файлов переводов, и поэтому не может соотнести ваши изменения в файле с изменениями от scripty. Этот пример намекает нам на то, что лучше почаще фиксировать свои изменения в репозитории, чтобы избежать конфликтов.

Но как теперь разрешить возникший конфликт? Есть несколько возможностей:

  • После запуска svn up скопировать <файл>.po.mine в <файл>.po, убрать лишние файлы и зафиксировать изменения. Таким образом, вы проигнорируете изменения от scripty и оставите только свои изменения. Следующей ночью scripty снова обновит файл перевода, и всё встанет на свои места.
  • Если вы не хотите ждать следующего запуска scripty, можно выполнить ту же работу за него. Для этого нужно запустить scripts/merge_all.sh из каталога l10n-kf5.
  • Если нужно обновить всего лишь несколько файлов переводов, то нет необходимости запускать скрипт merge_all.sh. Можно воспользоваться msgmerge:
msgmerge --previous -q -o ru/messages/kdeedu/kgeography.po \
    ru/messages/kdeedu/kgeography.po templates/messages/kdeedu/kgeography.pot
  • Объединить файлы переводов при помощи Lokalize (такой способ подойдёт и в случае, если два переводчика по ошибке стали работать над одним файлов в SVN).

Ссылки