如何在 python 中获取应用程序的本地化名称?

如何在 python 中获取应用程序的本地化名称?

如果 .desktop 文件没有“Name[*]”选项(例如在 totem.desktop 中)而只有“X-Ubuntu-Gettext-Domain: totem”,则此代码仅提供英文应用程序名称:

从 gi.repository 导入 Gio
app = Gio.app_info_get_default_for_type('video/x-flv', True)
打印应用程序.get_name()

类似的代码给了我 vlc.desktop 的正确结果。

Ubuntu Dash 显示所有应用程序的正确的本地化名称。

如何在 python 中获取应用程序的本地化名称?

对不起我的英语不好。

答案1

您需要获取 的值X-Ubuntu-Gettext-Domain,然后使用 之类的内容从该域获取翻译gettext.dgettext(domain, app_name)。不过,大多数应用程序名称都不应翻译。

答案2

我找到了解决方案。此代码运行完美:

从 gi.repository 导入 Gio
从 xdg.DesktopEntry 导入 DesktopEntry

app = Gio.app_info_get_default_for_type('video/x-flv', True)
文件名 = app.get_filename()
de = DesktopEntry(文件名)

打印 de.getName()

相关内容