[Top][All Lists]
[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