def get_desktop(self, key, translated=True):
" get generic option under 'Desktop Entry'"
# never translate the pkgname
if key == "X-AppInstall-Package":
return self.get(self.DE, key)
# shortcut
if not translated:
return self.get(self.DE, key)
# first try dgettext
if self.has_option_desktop("X-Ubuntu-Gettext-Domain"):
value = self.get(self.DE, key)
if value:
domain = self.get(self.DE, "X-Ubuntu-Gettext-Domain")
translated_value = gettext.dgettext(domain, value)
if value != translated_value:
return translated_value
# then try app-install-data
value = self.get(self.DE, key)
if value:
translated_value = gettext.dgettext("app-install-data", value)
if value != translated_value:
return translated_value
# then try the i18n version of the key (in [de_DE] or
# [de]) but ignore errors and return the untranslated one then
try:
locale = getdefaultlocale(('LANGUAGE', 'LANG', 'LC_CTYPE',
'LC_ALL'))[0]
if locale:
if self.has_option_desktop("%s[%s]" % (key, locale)):
return self.get(self.DE, "%s[%s]" % (key, locale))
if "_" in locale:
locale_short = locale.split("_")[0]
if self.has_option_desktop("%s[%s]" % (key, locale_short)):
return self.get(self.DE, "%s[%s]" %
(key, locale_short))
except ValueError:
pass
# and then the untranslated field
return self.get(self.DE, key)
评论列表
文章目录