Как я могу получить локализованные имена приложений в Python?

Этот код дает мне только английское имя приложения, если файл.desktop не имеет опций "Name[*]" (как в totem.desktop), а только "X-Ubuntu-Gettext-Domain: totem":

из gi.repository import Gio
app = Gio.app_info_get_default_for_type('video/x-flv', True)
распечатать app.get_name()

Этот код дает мне правильный результат для vlc.desktop.

Ubuntu Dash показывает правильные локализованные имена для всех приложений.

Как я могу получить локализованные имена приложений в Python?

Извините за мой английский.

2 ответа

Решение

Я нашел решение. Этот код отлично работает:

из gi.repository import Gio
из xdg.DesktopEntry импортировать DesktopEntry

app = Gio.app_info_get_default_for_type ('video / x-flv', True)
filename = app.get_filename ()
de = DesktopEntry (имя файла)

распечатать de.getName()

Вам нужно будет получить значение для X-Ubuntu-Gettext-Domainи получить перевод из этого домена с чем-то вроде gettext.dgettext(domain, app_name), Однако большинство названий приложений не / не должны переводиться.

Другие вопросы по тегам