| |
| корректировка_перевода_приложений_на_основе_gettext [2023/01/06 13:21] – created mariaf | корректировка_перевода_приложений_на_основе_gettext [2023/01/06 13:29] (current) – mariaf |
|---|
| | ====== Корректировка перевода приложений, созданных на основе 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/ |