Jump to content

RU/Локальная установка переводов: Difference between revisions

From KDE Community Wiki
< RU
Aspotashev (talk | contribs)
Aspotashev (talk | contribs)
 
(One intermediate revision by the same user not shown)
Line 21: Line 21:
Пример запуска (будет создан или заменён файл ~/.local/share/locale/ru/LC_MESSAGES/dolphin.mo):
Пример запуска (будет создан или заменён файл ~/.local/share/locale/ru/LC_MESSAGES/dolphin.mo):
  tru5 messages/applications/dolphin.po
  tru5 messages/applications/dolphin.po
Как вариант, вместо файла-сценария можно использовать bash-функцию, как описано [https://mail.kde.org/pipermail/kdevelop-devel/2016-December/056014.html здесь].


=== Для каких файлов .po нужны другие подходы ===
=== Для каких файлов .po нужны другие подходы ===
Line 27: Line 29:
# Файлы <tt>*._desktop_.po</tt> хранят переводы строк, которые периодически переносятся в файлы <tt>.desktop</tt> в репозиториях исходного кода. Зачем именно файлы <tt>.desktop</tt> оказываются в программных пакетах для установки большинством пользователей. Таким образом, инструмент <tt>msgfmt</tt> здесь не подойдёт.
# Файлы <tt>*._desktop_.po</tt> хранят переводы строк, которые периодически переносятся в файлы <tt>.desktop</tt> в репозиториях исходного кода. Зачем именно файлы <tt>.desktop</tt> оказываются в программных пакетах для установки большинством пользователей. Таким образом, инструмент <tt>msgfmt</tt> здесь не подойдёт.
# Аналогично, файлы <tt>*._json_.po</tt> хранят переводы строк для файлов <tt>.json</tt> (чаще всего это файлы описания загружаемых модулей, например <tt>purpose/src/plugins/youtube/youtubeplugin.json</tt> — параметры модуля Purpose для публикации на YouTube). Инструмент <tt>msgfmt</tt> тоже не подойдёт, вместо этого можно каким-либо образом отредактировать файлы .json либо дождаться автоматического их обновления, после чего пересобрать программу из новых исходников.
# Аналогично, файлы <tt>*._json_.po</tt> хранят переводы строк для файлов <tt>.json</tt> (чаще всего это файлы описания загружаемых модулей, например <tt>purpose/src/plugins/youtube/youtubeplugin.json</tt> — параметры модуля Purpose для публикации на YouTube). Инструмент <tt>msgfmt</tt> тоже не подойдёт, вместо этого можно каким-либо образом отредактировать файлы .json либо дождаться автоматического их обновления, после чего пересобрать программу из новых исходников.
# Аналогично, файлы <tt>*.appdata.po</tt> хранят переводы строк для файлов <tt>*.appdata.xml</tt>. Строки затем применяются для текстового описания программы в магазинах приложений типа [https://userbase.kde.org/Discover|Plasma Discover].
# Аналогично, файлы <tt>*.appdata.po</tt> хранят переводы строк для файлов <tt>*.appdata.xml</tt>. Строки затем применяются для текстового описания программы в магазинах приложений типа [https://userbase.kde.org/Discover Plasma Discover].
# Файлы из <tt>trunk/l10n-kf5/ru/messages/www/</tt> предназначены для перевода на русский различных веб-сайтов: https://kde.org/ , https://docs.krita.org/ , https://gcompris.net/ и других. Для этих сайтов используются различные инструменты развёртывания переводов из файлов .po, <tt>msgfmt</tt> опять же неприменим.
# Файлы из <tt>trunk/l10n-kf5/ru/messages/www/</tt> предназначены для перевода на русский различных веб-сайтов: https://kde.org/ , https://docs.krita.org/ , https://gcompris.net/ и других. Для этих сайтов используются различные инструменты развёртывания переводов из файлов .po, <tt>msgfmt</tt> опять же неприменим.

Latest revision as of 21:19, 10 March 2019

Чтобы убедиться в правильности вашего перевода интерфейса, рекомендуется проверять переводы в действии — на реально запущенной программе.

Для этого перед запуском программы нужно скомпилировать и установить ваш новый (или нестандартный) файл перевода:

  1. Для компиляции используется программа msgfmt: она преобразует файл .po в двоичный файл .mo, подходящий для чтения большинством программ от KDE.
  2. Установить файл .mo можно в пользовательском каталоге ~/.local/share/locale/ru/LC_MESSAGES/. Этот каталог имеет приоритет над общесистемным каталогом /usr/share/locale/ru/LC_MESSAGES/.

Установка перевода при помощи Lokalize

TBD

Установка перевода из командной строки

Можно вручную запускать команду msgfmt, а можно немного упростить себе жизнь, используя bash-сценарий (назовём его tru5):

#!/bin/sh
PO_FILE="$1"
DEST=$HOME/.local/share/locale/ru/LC_MESSAGES/$(basename -s .po "$PO_FILE").mo
mkdir -p $HOME/.local/share/locale/ru/LC_MESSAGES/
msgfmt -v "$PO_FILE" -o "$DEST"

Пример запуска (будет создан или заменён файл ~/.local/share/locale/ru/LC_MESSAGES/dolphin.mo):

tru5 messages/applications/dolphin.po

Как вариант, вместо файла-сценария можно использовать bash-функцию, как описано здесь.

Для каких файлов .po нужны другие подходы

  1. Некоторые компоненты KF5 (например, KCoreAddons) вместо двоичных файлов .mo требуют другой формат — .qm. Соответствующие файлы переводов имеют имена, заканчивающиеся на _qt.po, например kcoreaddons5_qt.po.
  2. Файлы *._desktop_.po хранят переводы строк, которые периодически переносятся в файлы .desktop в репозиториях исходного кода. Зачем именно файлы .desktop оказываются в программных пакетах для установки большинством пользователей. Таким образом, инструмент msgfmt здесь не подойдёт.
  3. Аналогично, файлы *._json_.po хранят переводы строк для файлов .json (чаще всего это файлы описания загружаемых модулей, например purpose/src/plugins/youtube/youtubeplugin.json — параметры модуля Purpose для публикации на YouTube). Инструмент msgfmt тоже не подойдёт, вместо этого можно каким-либо образом отредактировать файлы .json либо дождаться автоматического их обновления, после чего пересобрать программу из новых исходников.
  4. Аналогично, файлы *.appdata.po хранят переводы строк для файлов *.appdata.xml. Строки затем применяются для текстового описания программы в магазинах приложений типа Plasma Discover.
  5. Файлы из trunk/l10n-kf5/ru/messages/www/ предназначены для перевода на русский различных веб-сайтов: https://kde.org/ , https://docs.krita.org/ , https://gcompris.net/ и других. Для этих сайтов используются различные инструменты развёртывания переводов из файлов .po, msgfmt опять же неприменим.