maposmatic-dev
[Top][All Lists]
Advanced

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

[Maposmatic-dev] [PATCH 2/2] Add logic for tr_TR street index


From: Thomas Petazzoni
Subject: [Maposmatic-dev] [PATCH 2/2] Add logic for tr_TR street index
Date: Sat, 28 Apr 2012 00:20:04 +0200

Signed-off-by: Thomas Petazzoni <address@hidden>
---
 ocitysmap2/i18n.py |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/ocitysmap2/i18n.py b/ocitysmap2/i18n.py
index 7a99255..de9d199 100644
--- a/ocitysmap2/i18n.py
+++ b/ocitysmap2/i18n.py
@@ -662,6 +662,40 @@ class i18n_pl_generic(i18n):
     def first_letter_equal(self, a, b):
         return a == b
 
+class i18n_tr_TR_generic(i18n):
+    APPELLATIONS = [ u"Sokak", u"Sokağı" ]
+    DETERMINANTS = []
+    SPACE_REDUCE = re.compile(r"\s+")
+    PREFIX_REGEXP = re.compile(r"^(?P<prefix>(%s)(%s)?)\s?\b(?P<name>.+)" %
+                                    ("|".join(APPELLATIONS),
+                                     "|".join(DETERMINANTS)), re.IGNORECASE
+                                                                 | re.UNICODE)
+
+    def __init__(self, language, locale_path):
+        self.language = str(language)
+        _install_language(language, locale_path)
+
+    def upper_unaccent_string(self, s):
+        return s.upper()
+
+    def language_code(self):
+        return self.language
+
+    def user_readable_street(self, name):
+        #
+        # Make sure name actually contains something,
+        # the PREFIX_REGEXP.match fails on zero-length strings
+        #
+        if len(name) == 0:
+            return name
+
+        name = name.strip()
+        name = self.SPACE_REDUCE.sub(" ", name)
+        name = self.PREFIX_REGEXP.sub(r"\g<name> (\g<prefix>)", name)
+        return name
+
+    def first_letter_equal(self, a, b):
+        return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
 
 class i18n_de_generic(i18n):
     #
@@ -823,6 +857,7 @@ language_class_map = {
     'pl_PL.UTF-8': i18n_pl_generic,
     'nb_NO.UTF-8': i18n_generic,
     'nn_NO.UTF-8': i18n_generic,
+    'tr_TR.UTF-8': i18_tr_TR_generic,
 }
 
 def install_translation(locale_name, locale_path):
-- 
1.7.5.4




reply via email to

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