RU/Локальная установка переводов: Difference between revisions
Appearance
< 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 | # Аналогично, файлы <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
Чтобы убедиться в правильности вашего перевода интерфейса, рекомендуется проверять переводы в действии — на реально запущенной программе.
Для этого перед запуском программы нужно скомпилировать и установить ваш новый (или нестандартный) файл перевода:
- Для компиляции используется программа msgfmt: она преобразует файл .po в двоичный файл .mo, подходящий для чтения большинством программ от KDE.
- Установить файл .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 нужны другие подходы
- Некоторые компоненты KF5 (например, KCoreAddons) вместо двоичных файлов .mo требуют другой формат — .qm. Соответствующие файлы переводов имеют имена, заканчивающиеся на _qt.po, например kcoreaddons5_qt.po.
- Файлы *._desktop_.po хранят переводы строк, которые периодически переносятся в файлы .desktop в репозиториях исходного кода. Зачем именно файлы .desktop оказываются в программных пакетах для установки большинством пользователей. Таким образом, инструмент msgfmt здесь не подойдёт.
- Аналогично, файлы *._json_.po хранят переводы строк для файлов .json (чаще всего это файлы описания загружаемых модулей, например purpose/src/plugins/youtube/youtubeplugin.json — параметры модуля Purpose для публикации на YouTube). Инструмент msgfmt тоже не подойдёт, вместо этого можно каким-либо образом отредактировать файлы .json либо дождаться автоматического их обновления, после чего пересобрать программу из новых исходников.
- Аналогично, файлы *.appdata.po хранят переводы строк для файлов *.appdata.xml. Строки затем применяются для текстового описания программы в магазинах приложений типа Plasma Discover.
- Файлы из trunk/l10n-kf5/ru/messages/www/ предназначены для перевода на русский различных веб-сайтов: https://kde.org/ , https://docs.krita.org/ , https://gcompris.net/ и других. Для этих сайтов используются различные инструменты развёртывания переводов из файлов .po, msgfmt опять же неприменим.