faster languages.py, still disabled plurals
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.00.0 (2012-08-27 01:42:58) dev
|
Version 2.00.0 (2012-08-27 07:41:29) dev
|
||||||
|
|||||||
+21
-15
@@ -35,10 +35,21 @@ is_gae = settings.global_settings.web2py_runtime_gae
|
|||||||
|
|
||||||
DEFAULT_ACCEPT_LANGUAGE = 'en'
|
DEFAULT_ACCEPT_LANGUAGE = 'en'
|
||||||
|
|
||||||
|
def safe_eval(text):
|
||||||
|
if text.strip():
|
||||||
|
try:
|
||||||
|
import ast
|
||||||
|
return ast.literal_eval(text)
|
||||||
|
except ImportError:
|
||||||
|
return eval(text,{},{})
|
||||||
|
return None
|
||||||
|
|
||||||
# used as default filter in translator.M()
|
# used as default filter in translator.M()
|
||||||
markmin = lambda s: render(regex_param.sub(
|
def markmin_aux(m):
|
||||||
lambda m: '{' + markmin_escape(m.group('s')) + '}',
|
return '{%s}' % markmin_escape(m.group('s'))
|
||||||
s), sep='br', autolinks=None, id_prefix='' )
|
def markmin(s):
|
||||||
|
return render(regex_param.sub(markmin_aux,s),
|
||||||
|
sep='br', autolinks=None, id_prefix='')
|
||||||
|
|
||||||
NUMBERS = (int,long,float)
|
NUMBERS = (int,long,float)
|
||||||
|
|
||||||
@@ -149,18 +160,16 @@ def read_dict_aux(filename):
|
|||||||
fp.close()
|
fp.close()
|
||||||
# clear cache of processed messages:
|
# clear cache of processed messages:
|
||||||
clear_cache(tcache.setdefault(filename, ({}, allocate_lock())))
|
clear_cache(tcache.setdefault(filename, ({}, allocate_lock())))
|
||||||
if not lang_text.strip():
|
|
||||||
return {}
|
|
||||||
try:
|
try:
|
||||||
return eval(lang_text)
|
return save_eval(lang_text) or {}
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
status = 'Syntax error in %s (%s)' % (filename, e)
|
status = 'Syntax error in %s (%s)' % (filename, e)
|
||||||
logging.error(status)
|
logging.error(status)
|
||||||
return {'__corrupted__':status}
|
return {'__corrupted__':status}
|
||||||
|
|
||||||
|
|
||||||
def read_dict(filename):
|
def read_dict(filename):
|
||||||
""" return dictionary with translation messages
|
"""
|
||||||
|
return dictionary with translation messages
|
||||||
"""
|
"""
|
||||||
return getcfs('lang:'+filename, filename,
|
return getcfs('lang:'+filename, filename,
|
||||||
lambda: read_dict_aux(filename))
|
lambda: read_dict_aux(filename))
|
||||||
@@ -625,7 +634,6 @@ class translator(object):
|
|||||||
languages = regex_language.findall(languages.lower())
|
languages = regex_language.findall(languages.lower())
|
||||||
elif not languages or languages[0] is None:
|
elif not languages or languages[0] is None:
|
||||||
languages = []
|
languages = []
|
||||||
if languages:
|
|
||||||
for lang in languages:
|
for lang in languages:
|
||||||
if lang+'.py' in self.filenames:
|
if lang+'.py' in self.filenames:
|
||||||
language = lang
|
language = lang
|
||||||
@@ -646,19 +654,17 @@ class translator(object):
|
|||||||
else:
|
else:
|
||||||
language = DEFAULT_ACCEPT_LANGUAGE
|
language = DEFAULT_ACCEPT_LANGUAGE
|
||||||
langfile = None
|
langfile = None
|
||||||
if languages and langfile:
|
self.accepted_language = language
|
||||||
|
if langfile:
|
||||||
self.language_file = ospath.join(self.langpath,langfile)
|
self.language_file = ospath.join(self.langpath,langfile)
|
||||||
self.t = read_dict(self.language_file)
|
self.t = read_dict(self.language_file)
|
||||||
self.cache = tcache.setdefault(self.language_file,
|
self.cache = tcache.setdefault(self.language_file,
|
||||||
({},allocate_lock()))
|
({},allocate_lock()))
|
||||||
# self.set_plural(language)
|
|
||||||
self.accepted_language = language
|
|
||||||
else:
|
else:
|
||||||
self.accepted_language = DEFAULT_ACCEPT_LANGUAGE
|
|
||||||
self.language_file = None
|
self.language_file = None
|
||||||
self.cache = tcache[None]
|
|
||||||
self.t = {}
|
self.t = {}
|
||||||
# self.set_plural(DEFAULT_ACCEPT_LANGUAGE)
|
self.cache = tcache[None]
|
||||||
|
# self.set_plural(language)
|
||||||
return languages
|
return languages
|
||||||
|
|
||||||
def __call__(self, message, symbols={}, language=None, lazy=None):
|
def __call__(self, message, symbols={}, language=None, lazy=None):
|
||||||
|
|||||||
Reference in New Issue
Block a user