RU/Работа с переводами KDE через SVN: Difference between revisions
Aspotashev (talk | contribs) |
(KF6 + Gitlab) |
||
Line 1: | Line 1: | ||
== Начало работы == | == Начало работы == | ||
Перед тем как начать вносить изменения в репозиторий KDE, необходимо создать на своём компьютере рабочую копию части репозитория (если попробовать выгрузить весь репозиторий KDE, это может занять слишком много времени). | Перед тем как начать вносить изменения в репозиторий KDE, необходимо создать на своём компьютере рабочую копию части репозитория (если попробовать выгрузить весь репозиторий KDE, это может занять слишком много времени). | ||
Этот раздел описывает работу с платформой KDE Frameworks 5. По мере перехода программ на Frameworks 6, может потребоваться заменить '''kf5''' на '''kf6''' в путях к указанным расположениям. | |||
Какие части репозитория могут понадобиться переводчику: | Какие части репозитория могут понадобиться переводчику: | ||
Line 11: | Line 13: | ||
* '''trunk/l10n-kf5/templates''' и '''branches/stable/l10n-kf5/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 формы множественного числа. | ||
* '''trunk/l10n-kf5/documentaton''' и '''branches/stable/l10n-kf5/documentaton''' — оригинал документации на английском языке в формате DocBook. Используется для обновления русской документации, которая находится в каталоге '''trunk/l10n-kf5/ru/docs''' ('''branches/stable/l10n-kf5/ru/docs''' для стабильной ветки). | * '''trunk/l10n-kf5/documentaton''' и '''branches/stable/l10n-kf5/documentaton''' — оригинал документации на английском языке в формате DocBook. Используется для обновления русской документации, которая находится в каталоге '''trunk/l10n-kf5/ru/docs''' ('''branches/stable/l10n-kf5/ru/docs''' для стабильной ветки). | ||
* https:// | * https://invent.kde.org/ — исходный код большинства пакетов/программ (отдельные Git-репозитории для каждого пакета). | ||
* https:// | * https://invent.kde.org/sdk/pology — исходный код Pology (инструмент для алгоритмической обработки файлов переводов .po). | ||
== Конфликты == | == Конфликты == |
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).