Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Работа .desktop файлов и их отображение в Nautilus  (Прочитано 1219 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн barh

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Добрый день, форумчане!

Насколько я понял, меню в Ubuntu формируется файлами *.desktop в /usr/share/applications и ~/.local/share/applications

Захотел изменить названия некоторых "ярлыков" в меню.
Например, переименовать "Текстовый редактор" в "gedit".
Нашёл файл gedit.desktop, открыл текстовым редактором и не обнаружил там названия ярлыка равным "Текстовый редактор", а обнаружил там это:
GenericName=Text EditorGenericName['ru'] в этом файле нет, однако же название этого ярлыка в меню "Текстовый редактор", а не "Text Editor".

Зашёл в /usr/share/applications/ через Nautilus и увидел, что имена файлов отображаются не так как из терминала командой ls.
Клик правой кнопкой на нужном ярлыке и свойства показали поля (Описание, Комментарий и т.п.). В самом файле я не видел подобного описания и комментария.
Скриншот: http://i.imgur.com/24dagKo.png

Так вот четыре вопроса:
1. Откуда берутся данные в полях "Описание" и "Комментарий" через Nautilus для файлов *.desktop? В самих файлах такой информации нет.
2. Почему Nautilus меняет настоящие названия файлов в каталоге /usr/share/applications на более читабельные для обычного пользователя?
3. Меню может формироваться только на основании файлов *.desktop в /usr/share/applications/ и ~/.local/share/applications ?
4. Как "применить" сделанные изменения, что бы в меню, например, после удаления файла .desktop - ярлык переставал отображаться?

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4491
    • Просмотр профиля
barh,
в /usr/share/locale-langpack/ru/LC_MESSAGES/ хранятся откомпилированые файлы переводов для каждого приложения/пакета, например, для Текстового редактора "Gedit" там имеется файл gedit.mo просмотреть его содержимое можно во встроенном въювере Midnight Commander`а или так

Оффлайн РыжийПёс

  • Активист
  • *
  • Сообщений: 786
  • 好红狼
    • Просмотр профиля
2) - Потому что так решили разработчики. Хотите реальные имена *.desktop файлов - используйте какой-нибудь другой ФМ.
3) - На основе файлов *.desktop формируются пункты меню, иерархию папок и принципы сортировки ярлыков смотрите в *.menu файлах папке /etc/xdg/menus, а сами папки в меню (их название на разных языках и значок) в файлах *.directory в папке /usr/share/desktop-directories или ~.local/share/desktop-directories.
4) - Это зависит от DE, если изменения не проявляются сразу, то нужно просто подождать какое-то время, либо перезайти в систему или перезагрузить компьютер.
Каждый отдельно взятый человек, перешедший на GNU Linux, приближает всё остальное человечество к Светлому Будущему.

Оффлайн barh

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
F12, РыжийПёс,
Спасибо большое за ответы, вы мне очень помогли.

Отвечу более подробно сам на свой первый вопрос, возможно, кто-то найдёт тему через поисковик и ему это поможет.

1. Поля "Описание" и "Комментарий" в Nautilus берутся по значениям (GenericName и Comment) из самого файла *.desktop и соответствующего значения из файла /usr/share/locale-langpack/ru/LC_MESSAGES/*.mo
Подробная информация в официальной документации Ubuntu: https://help.ubuntu.ru/wiki/редактирование_локализации

Но у меня появился ещё один вопрос, например, я хочу сделать локализацию какой-то программы только для конкретного пользователя. Отредактировал файл *.mo и сохранил его в ~/.local/share/locale-langpack/ru/LC_MESSAGES/*.mo , но после разлогина/логина изменений в переводе не обнаружил.
Как локализовать программу для конкретного пользователя?

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4491
    • Просмотр профиля
barh,
я конечно могу ошибаться, но, по-моему, существует возможность локализации только системы в целом, хотя, наверное можно настроить систему так чтоб, например, для Пользователя 1 использовалась русская локализация, а для Пользователя 2 сербская, но при этом все равно будут использоваться общесистемные файлы локализации, а не какие-то пользовательские ::)

Оффлайн КНВ

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
F12,
А если подменить во второй локали системные мошки на свои? У меня в минте, например, две русских локали по дефолту было. Можно одну переделать.

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4491
    • Просмотр профиля
А если подменить во второй локали системные мошки на свои?
и как система будет выбирать между ними?..

У меня в минте, например, две русских локали по дефолту было. Можно одну переделать.

А как это было реализовано?.. где физически были расположены файлы переводов 1-й и 2-й локалей?..


Оффлайн КНВ

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Цитировать
А как это было реализовано?..
Не знаю - давно это было.  :idiot2:
« Последнее редактирование: 20 Июня 2019, 06:28:47 от zg_nico »

 

Страница сгенерирована за 0.032 секунд. Запросов: 23.