Package: obmenu
Version: 1.0-2
Followup-For: Bug #655363
The problem is in the language-matching code. It chooses
"ca@valencia" when the language is "en" because "en" occurs as a
substring.
I'm attaching a patch which addresses this. It also eliminates a lot
of duplication by treating parseDirectoryFile as a special case of
parseDesktopFile.
--- /usr/bin/obm-xdg.old 2011-05-01 18:34:12.000000000 -0400
+++ /usr/bin/obm-xdg 2012-01-10 14:40:48.000000000 -0500
@@ -184,42 +184,7 @@
self.parseXml(dom.documentElement)
def parseDirectoryFile(self, filename, language):
- title = ""
- accuracy = 0
-
- if language:
- l = language.split(".")[0].split("_")
- if len(l) == 2:
- lang_major = l[0]
- lang_minor = l[1]
- else:
- lang_major = l[0]
- lang_minor = None
- else:
- lang_major = "en"
- lang_minor = None
-
- for line in open(filename):
- i = line.split("=")[0].lower()
- n = line.find("=")
- if i[0:4] == "name":
- name = line[n+1:]
- if "[" in line[:n]:
- lang = line[:n].split("[")[1].split("]")[0]
- else:
- lang = None
-
- if lang:
- if lang_major in lang and (title == "" or accuracy < 2):
- title = name
- accuracy = 2
- if lang_minor and lang_major in lang and lang_minor in lang:
- title = name
- accuracy = 3
- elif title == "":
- accuracy = 1
- title = name
- return unicode(title.strip() ,"utf-8")
+ return self.parseDesktopFile(filename, language)["name"]
def parseDesktopFile(self, filename, language):
title = ""
@@ -250,10 +215,10 @@
lang = None
if lang:
- if lang_major in lang and (title == "" or accuracy < 2):
+ if lang.startswith(lang_major + '_') and (title == "" or accuracy < 2):
title = name
accuracy = 2
- if lang_minor and lang_major in lang and lang_minor in lang:
+ if lang_minor and lang_major + '_' + lang_minor == lang:
title = name
accuracy = 3
elif title == "":