Корректировка перевода приложений, созданных на основе gettext

В исходных кодах программ переводы хранятся в специальных текстовых файлах с расширением .po, удобных для редактирования человеком, а во время работы программы используется файл перевода, удобный для компьютера - с расширением .mo. Поэтому для создания собственного перевода надо редактировать файлы .po, генерировать по ним .mo и заменять стандартные .mo на свои. Подробнее теорию и ссылки на еще большие подробности можно найти тут https://ru.wikipedia.org/wiki/Gettext.

Для удобного редактирования .po и генерации .mo существует программа poedit, поэтому надо установить её через пункт главного меню “Настройки/Менеджер пакетов” или командами

sudo apt-get update
sudo apt-get install poedit

Из удобств poedit — возможность накапливать память переводов и делиться ею с другими переводчиками для получения автоматических подсказок, повышающих производительность труда.

Найти в исходном коде пакета файл ru.po, содержащий переводы строк с английского на русский. Исходный код пакетов находится по ссылке https://git.altlinux.org/gears/. Пакеты сгруппированы по каталогам, названным первой буквой имени пакета. Имя пакета можно узнать по имени исполняемого файла, который в нем находится. Имя исполняемого файла можно узнать, например, через пункт контекстного меню (вызывается правой кнопкой) “Изменить приложение…” пункта главного меню, которым запускается программа.

Корректировка перевода приложений, созданных основе gettext, изображение №1

В случае с калькулятором там написана команда mate-calc.

Корректировка перевода приложений, созданных основе gettext, изображение №2

[keremet@host-128 ~]$ which mate-calc
/usr/bin/mate-calc
[keremet@host-128 ~]$ rpm -qf /usr/bin/mate-calc
mate-calc-1.24.1-alt1.x86_64
[keremet@host-128 ~]$ 

Из имени пакета отбрасываем версию, и ссылка на репозиторий пакета получается такая: https://git.altlinux.org/gears/m/mate-calc.git. Файл перевода у данного пакета: po/ru.po. Скачать его по ссылке “raw”.

Открыть файл ru.po в poedit внести изменения в перевод, сохраниться. Пусть в данном примере вместо слова «Помощь» будет его марийский перевод :) В момент сохранения появится файл ru.mo.

Корректировка перевода приложений, созданных основе gettext, изображение №3

Чтобы по имени пакета определить, какой файл заменить созданным .mo, можно использовать команду

[keremet@host-128 ~]$ rpm -ql mate-calc-1.24.1-alt1.x86_64|grep mo$|grep ru
/usr/share/locale/ru/LC_MESSAGES/mate-calc.mo
[keremet@host-128 ~]$ 

Чтобы не копировать файл при при каждом изменении, создать символическую ссылку, желательно, сохранив исходный файл. Примерно такими командами (скорректировать под свою ситуацию!):

sudo mv /usr/share/locale/ru/LC_MESSAGES/mate-calc.mo /usr/share/locale/ru/LC_MESSAGES/mate-calc.mo_old
sudo ln -s /home/keremet/mate-calc/ru.mo /usr/share/locale/ru/LC_MESSAGES/mate-calc.mo

Надписи будут меняться после сохранения изменений в poedit и перезапуска редактируемого приложения.

Корректировка перевода приложений, созданных основе gettext, изображение №4

Символы подчеркивания в надписях ставятся перед буквами, по которым в сочетании с клавишей Alt получается комбинация для доступа, например, к пункту меню с клавиатуры. Символ % с идущей за ним буквой, а возможно даже и цифрами с буквами, обозначает место, куда в ходе работы программы подставляются значения, формирующиеся во время ее выполнения.

Чтобы перевод использовался не только у Вас, надо поделиться им. Для этого файл надо отправить в апстрим (главный репозиторий). Каждый проект имеет свою специфику приема изменений. Ссылку на апстрим можно найти в файле .spec исходного кода пакета. В нашем случае это http://mate-desktop.org/