kopia lustrzana https://github.com/hholzgra/ocitysmap
Support for Italian
rodzic
6dfd44ce8c
commit
00d1e4a15c
|
|
@ -118,6 +118,48 @@ class i18n_fr_generic(i18n):
|
|||
def first_letter_equal(self, a, b):
|
||||
return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
|
||||
|
||||
class i18n_it_generic(i18n):
|
||||
APPELLATIONS = [ u"Via", u"Piazza", u"Scali", u"Strada", u"Largo",
|
||||
u"Corso", u"Viale", ]
|
||||
DETERMINANTS = [ u" delle", u" dell'", u" dei", u" degli",
|
||||
u" della", u" di", u"" ]
|
||||
|
||||
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)
|
||||
|
||||
# for IndexPageGenerator._upper_unaccent_string
|
||||
E_ACCENT = re.compile(ur"[éèêëẽ]", re.IGNORECASE | re.UNICODE)
|
||||
I_ACCENT = re.compile(ur"[íìîïĩ]", re.IGNORECASE | re.UNICODE)
|
||||
A_ACCENT = re.compile(ur"[áàâäã]", re.IGNORECASE | re.UNICODE)
|
||||
O_ACCENT = re.compile(ur"[óòôöõ]", re.IGNORECASE | re.UNICODE)
|
||||
U_ACCENT = re.compile(ur"[úùûüũ]", 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):
|
||||
s = self.E_ACCENT.sub("e", s)
|
||||
s = self.I_ACCENT.sub("i", s)
|
||||
s = self.A_ACCENT.sub("a", s)
|
||||
s = self.O_ACCENT.sub("o", s)
|
||||
s = self.U_ACCENT.sub("u", s)
|
||||
return s.upper()
|
||||
|
||||
def language_code(self):
|
||||
return self.language
|
||||
|
||||
def user_readable_street(self, 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_generic(i18n):
|
||||
def __init__(self, language, locale_path):
|
||||
|
|
@ -133,8 +175,8 @@ class i18n_generic(i18n):
|
|||
def first_letter_equal(self, a, b):
|
||||
return a == b
|
||||
|
||||
language_class_map = { # 'code_CODE.UTF-8': i18n_template_code_CODE(), # example for
|
||||
# new language
|
||||
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',
|
||||
|
|
@ -158,7 +200,10 @@ language_class_map = { # 'code_CODE.UTF-8': i18n_template_code_CODE(), # example
|
|||
'en_ZA.UTF-8': 'i18n_generic',
|
||||
'en_ZW.UTF-8': 'i18n_generic',
|
||||
'de_BE.UTF-8': 'i18n_generic',
|
||||
'nl_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):
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue