maposmatic-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Maposmatic-dev] [PATCH ocitysmap] Zen Karma ++ (Readability counts).


From: David Decotigny
Subject: [Maposmatic-dev] [PATCH ocitysmap] Zen Karma ++ (Readability counts).
Date: Mon, 4 Jan 2010 10:23:20 +0100

Though I've been credited for the original implementation of the
language class lookup based on python introspection, it's not really
zen. This patch proposes a more pythonic approach.
---
 ocitysmap/i18n.py |   66 +++++++++++++++++++++++++----------------------------
 1 files changed, 31 insertions(+), 35 deletions(-)

diff --git a/ocitysmap/i18n.py b/ocitysmap/i18n.py
index 6cfdc7f..e830bb1 100644
--- a/ocitysmap/i18n.py
+++ b/ocitysmap/i18n.py
@@ -176,42 +176,38 @@ class i18n_generic(i18n):
     def first_letter_equal(self, a, b):
         return a == b
 
+# When not listed in the following map, default language class will be
+# i18n_generic
 language_class_map = {
-    # 'code_CODE.UTF-8': 'i18n_class', # example for new language
-    'C': 'i18n_generic',
-    'fr_BE.UTF-8': 'i18n_fr_generic',
-    'fr_FR.UTF-8': 'i18n_fr_generic',
-    'fr_CA.UTF-8': 'i18n_fr_generic',
-    'fr_CH.UTF-8': 'i18n_fr_generic',
-    'fr_LU.UTF-8': 'i18n_fr_generic',
-    'en_AG': 'i18n_generic',
-    'en_AU.UTF-8': 'i18n_generic',
-    'en_BW.UTF-8': 'i18n_generic',
-    'en_CA.UTF-8': 'i18n_generic',
-    'en_DK.UTF-8': 'i18n_generic',
-    'en_GB.UTF-8': 'i18n_generic',
-    'en_HK.UTF-8': 'i18n_generic',
-    'en_IE.UTF-8': 'i18n_generic',
-    'en_IN': 'i18n_generic',
-    'en_NG': 'i18n_generic',
-    'en_NZ.UTF-8': 'i18n_generic',
-    'en_PH.UTF-8': 'i18n_generic',
-    'en_SG.UTF-8': 'i18n_generic',
-    'en_US.UTF-8': 'i18n_generic',
-    'en_ZA.UTF-8': 'i18n_generic',
-    'en_ZW.UTF-8': 'i18n_generic',
-    'de_BE.UTF-8': 'i18n_generic',
-    'nl_BE.UTF-8': 'i18n_generic',
-    'it_IT.UTF-8': 'i18n_it_generic',
-    'it_CH.UTF-8': 'i18n_it_generic',
+    'fr_BE.UTF-8': i18n_fr_generic,
+    'fr_FR.UTF-8': i18n_fr_generic,
+    'fr_CA.UTF-8': i18n_fr_generic,
+    'fr_CH.UTF-8': i18n_fr_generic,
+    'fr_LU.UTF-8': i18n_fr_generic,
+    'en_AG': i18n_generic,
+    'en_AU.UTF-8': i18n_generic,
+    'en_BW.UTF-8': i18n_generic,
+    'en_CA.UTF-8': i18n_generic,
+    'en_DK.UTF-8': i18n_generic,
+    'en_GB.UTF-8': i18n_generic,
+    'en_HK.UTF-8': i18n_generic,
+    'en_IE.UTF-8': i18n_generic,
+    'en_IN': i18n_generic,
+    'en_NG': i18n_generic,
+    'en_NZ.UTF-8': i18n_generic,
+    'en_PH.UTF-8': i18n_generic,
+    'en_SG.UTF-8': i18n_generic,
+    'en_US.UTF-8': i18n_generic,
+    'en_ZA.UTF-8': i18n_generic,
+    'en_ZW.UTF-8': i18n_generic,
+    'de_BE.UTF-8': i18n_generic,
+    'nl_BE.UTF-8': i18n_generic,
+    'it_IT.UTF-8': i18n_it_generic,
+    'it_CH.UTF-8': i18n_it_generic,
 }
 
 def install_translation(language, locale_path):
-    def _construct_by_name(cname,*p,**k):
-        """Instantiate an object from its class name with two parameters
-           p and k. Python black-magic given by d2"""
-        return globals()[cname](*p,**k)
-
-    return _construct_by_name(language_class_map[language], language,
-                              locale_path)
-
+    """Return a new i18n class instance, depending on the specified
+    language name"""
+    language_class = language_class_map.get(language, i18n_generic)
+    return language_class(language, locale_path)
-- 
1.6.3.3





reply via email to

[Prev in Thread] Current Thread [Next in Thread]