RU/Работа с переводами KDE через SVN: Difference between revisions
(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- | * '''trunk/l10n-kf5/ru''' — здесь находятся русские переводы для пакетов/приложений KDE из разрабатываемой ветки ('''master'''). | ||
* '''branches/stable/l10n- | * '''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- | * '''trunk/l10n-kf5/scripts''' — скрипты, имеющие отношение к локализации KDE. В подкаталоге '''lokalize''' находятся некоторые сценарии для Lokalize, среди них сценарий '''opensrc''' (он служит для открытия файлов исходного кода из Lokalize). | ||
* '''trunk/l10n- | * '''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''' для стабильной ветки). | |||
* '''trunk/l10n- | * https://invent.kde.org/ — исходный код большинства пакетов/программ (отдельные Git-репозитории для каждого пакета). | ||
* | * https://invent.kde.org/sdk/pology — исходный код Pology (инструмент для алгоритмической обработки файлов переводов .po). | ||
== Конфликты == | == Конфликты == | ||
Line 37: | Line 28: | ||
Но как теперь разрешить возникший конфликт? Есть несколько возможностей: | Но как теперь разрешить возникший конфликт? Есть несколько возможностей: | ||
* После запуска '''svn up''' скопировать <файл>.po.mine в <файл>.po, убрать лишние файлы и зафиксировать изменения. Таким образом, вы проигнорируете изменения от '''scripty''' и оставите только свои изменения. Следующей ночью '''scripty''' снова обновит файл перевода, и всё встанет на свои места. | * После запуска '''svn up''' скопировать <файл>.po.mine в <файл>.po, убрать лишние файлы и зафиксировать изменения. Таким образом, вы проигнорируете изменения от '''scripty''' и оставите только свои изменения. Следующей ночью '''scripty''' снова обновит файл перевода, и всё встанет на свои места. | ||
* Если вы не хотите ждать следующего запуска '''scripty''', можно выполнить ту же работу за него. Для этого нужно запустить '''scripts/merge_all.sh''' из каталога '''l10n- | * Если вы не хотите ждать следующего запуска '''scripty''', можно выполнить ту же работу за него. Для этого нужно запустить '''scripts/merge_all.sh''' из каталога '''l10n-kf5'''. | ||
* Если нужно обновить всего лишь несколько файлов переводов, то нет необходимости запускать скрипт '''merge_all.sh'''. Можно воспользоваться '''msgmerge''': | * Если нужно обновить всего лишь несколько файлов переводов, то нет необходимости запускать скрипт '''merge_all.sh'''. Можно воспользоваться '''msgmerge''': | ||
msgmerge --previous -q -o ru/messages/kdeedu/ | msgmerge --previous -q -o ru/messages/kdeedu/kgeography.po \ | ||
ru/messages/kdeedu/ | 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).