[game-data-packager] 01/01: fix en_GB autodetection

Alexandre Detiste detiste-guest at moszumanska.debian.org
Sun Nov 1 10:24:52 UTC 2015


This is an automated email from the git hooks/post-receive script.

detiste-guest pushed a commit to branch master
in repository game-data-packager.

commit 5550591a16170a784ea6ca7c6dbb90a7dc3528c3
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Sun Nov 1 11:24:21 2015 +0100

    fix en_GB autodetection
---
 debian/changelog           | 15 +++++++++++++++
 game_data_packager/util.py | 36 ++++++++++++++++++++++++++----------
 2 files changed, 41 insertions(+), 10 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 0e4c3ad..c011af6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+game-data-packager (44) UNRELEASED; urgency=medium
+
+  New game support:
+
+
+  Support for new languages and versions:
+
+
+  Other changes:
+
+  [ Alexandre Detiste ]
+  * fix en_GB auto-detection
+
+ -- Simon McVittie <smcv at debian.org>  Sun, 01 Nov 2015 11:10:56 +0100
+
 game-data-packager (43) unstable; urgency=medium
 
   New game support:
diff --git a/game_data_packager/util.py b/game_data_packager/util.py
index 47a439b..7d39704 100644
--- a/game_data_packager/util.py
+++ b/game_data_packager/util.py
@@ -159,7 +159,10 @@ class PackageCache:
 
 PACKAGE_CACHE = PackageCache()
 
-def prefered_lang():
+def prefered_langs():
+    if prefered_langs.langs is not None:
+        return prefered_langs.langs
+
     lang_raw = []
     if 'LANGUAGE' in os.environ:
         lang_raw = os.getenv('LANGUAGE').split(':')
@@ -167,22 +170,35 @@ def prefered_lang():
         lang_raw.append(os.getenv('LANG'))
     lang_raw.append('en')
 
-    lang_pref = []
+    prefered_langs.langs = []
     for lang in lang_raw:
         lang = lang.split('.')[0]
         if not lang or lang == 'C':
             continue
-        if lang in ('en_GB', 'pt_BR'):
-            lang_pref.append(lang)
-        lang_pref.append(lang[0:2])
-    return lang_pref
+        if lang in ('en_US', 'en_GB', 'pt_BR'):
+            prefered_langs.langs.append(lang)
+        lang = lang[0:2]
+        if lang not in prefered_langs.langs:
+            prefered_langs.langs.append(lang)
+
+    return prefered_langs.langs
+
+prefered_langs.langs = None
 
 def lang_score(lang):
-    langs = prefered_lang()
-    if lang not in langs:
-        return 0
+    langs = prefered_langs()
+
+    if lang in langs:
+        return len(langs) - langs.index(lang)
+
+    for l in langs:
+        if l == lang[0:2]:
+            score = len(langs) - langs.index(l)
+            if score > 1:
+                score -= 1
+            return score
 
-    return len(langs) - langs.index(lang)
+    return 0
 
 def ascii_safe(string, force=False):
     if sys.stdout.encoding != 'UTF-8' or force:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list