Этот код дает мне только английское имя приложения, если файл .desktop не имеет параметров «Name [*]» (как в totem.desktop), а только «X-Ubuntu-Gettext-Domain: totem»:
[ 110]Этот подобный код дает правильный результат для vlc.desktop.
Ubuntu Dash показывает правильные локализованные имена для всех приложений.
Как я могу получить локализованные имена приложений в python?
Извините за мой английский.
Я нашел решение. Этот код прекрасно работает:
from gi.repository import Gio from xdg.DesktopEntry import DesktopEntry app = Gio.app_info_get_default_for_type('video/x-flv', True) filename = app.get_filename() de = DesktopEntry(filename) print de.getName()
Вам нужно получить значение для X-Ubuntu-Gettext-Domain
и получить перевод из этого домена с чем-то вроде gettext.dgettext(domain, app_name)
. Однако большинство названий приложений не переводятся / не должны переводиться.