корректировка_перевода_приложений_на_основе_gettext

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

корректировка_перевода_приложений_на_основе_gettext [2023/01/06 13:21] – created mariafкорректировка_перевода_приложений_на_основе_gettext [2023/01/06 13:29] (current) mariaf
Line 1: Line 1:
 +======  Корректировка перевода приложений, созданных на основе 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_.jpg?nolink|Корректировка перевода приложений, созданных основе gettext, изображение №1}}
 +
 +В случае с калькулятором там написана команда mate-calc.
 +
 +{{::корректировка_перевода_приложений_на_основе_gettext_2_.jpg?nolink|Корректировка перевода приложений, созданных основе gettext, изображение №2}}
 +<code>
 +[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 ~]$ 
 +</code>
 +
 +Из имени пакета отбрасываем версию, и ссылка на репозиторий пакета получается такая: https://git.altlinux.org/gears/m/mate-calc.git. Файл перевода у данного пакета: po/ru.po. Скачать его по ссылке "raw".
 +
 +Открыть файл ru.po в poedit внести изменения в перевод, сохраниться. Пусть в данном примере вместо слова «Помощь» будет его марийский перевод :) В момент сохранения появится файл ru.mo.
 +
 +{{::корректировка_перевода_приложений_на_основе_gettext_3.jpg?nolink|Корректировка перевода приложений, созданных основе gettext, изображение №3}}
 +
 +Чтобы по имени пакета определить, какой файл заменить созданным .mo, можно использовать команду
 +<code>
 +[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 ~]$ 
 +</code>
 +
 +Чтобы не копировать файл при при каждом изменении, создать символическую ссылку, желательно, сохранив исходный файл. Примерно такими командами (скорректировать под свою ситуацию!):
 +<code>
 +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
 +</code>
 +
 +Надписи будут меняться после сохранения изменений в poedit и перезапуска редактируемого приложения.
 +
 +{{::корректировка_перевода_приложений_на_основе_gettext_4.jpg?nolink|Корректировка перевода приложений, созданных основе gettext, изображение №4}}
 +
 +Символы подчеркивания в надписях ставятся перед буквами, по которым в сочетании с клавишей Alt получается комбинация для доступа, например, к пункту меню с клавиатуры. Символ % с идущей за ним буквой, а возможно даже и цифрами с буквами, обозначает место, куда в ходе работы программы подставляются значения, формирующиеся во время ее выполнения.
 +
 +Чтобы перевод использовался не только у Вас, надо поделиться им. Для этого файл надо отправить в апстрим (главный репозиторий). Каждый проект имеет свою специфику приема изменений. Ссылку на апстрим можно найти в файле .spec исходного кода пакета. В нашем случае это http://mate-desktop.org/