|
|
|
@ -30,7 +30,6 @@ setLocalTranslate('cl_lib3', sys.modules[__name__])
|
|
|
|
|
|
|
|
|
|
__ = getLazyLocalTranslate(_)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Locale(object):
|
|
|
|
|
# http://www.localeplanet.com/icu/
|
|
|
|
|
langData = OrderedDict([
|
|
|
|
@ -523,6 +522,31 @@ class Locale(object):
|
|
|
|
|
return wrapper
|
|
|
|
|
raise AttributeError("'Locale' object has no attribute '%s'" % attrname)
|
|
|
|
|
|
|
|
|
|
def getLang(self, **kw):
|
|
|
|
|
"""
|
|
|
|
|
Получить язык по указанному полю.
|
|
|
|
|
|
|
|
|
|
getLang(keymap="ua-utf")
|
|
|
|
|
"""
|
|
|
|
|
if not kw:
|
|
|
|
|
raise AttributeError("getLang: field missed")
|
|
|
|
|
field = next(iter(kw.keys()))
|
|
|
|
|
if field not in self.fields:
|
|
|
|
|
raise AttributeError("getLang: wrong field")
|
|
|
|
|
return self.getLangByField(field, kw[field])
|
|
|
|
|
|
|
|
|
|
def __getattr__(self, attrname):
|
|
|
|
|
"""
|
|
|
|
|
Обработка getKeymap, getXkblayout
|
|
|
|
|
"""
|
|
|
|
|
if attrname.startswith('get'):
|
|
|
|
|
fieldname = attrname[3:].lower()
|
|
|
|
|
if fieldname in self.fields:
|
|
|
|
|
def wrapper(fieldvalue):
|
|
|
|
|
return self.getFieldByLang(fieldname, fieldvalue)
|
|
|
|
|
return wrapper
|
|
|
|
|
raise AttributeError("'Locale' object has no attribute '%s'" % attrname)
|
|
|
|
|
|
|
|
|
|
def getLangByField(self, field, value):
|
|
|
|
|
value = value or ""
|
|
|
|
|
if field == 'locale':
|
|
|
|
|