##// END OF EJS Templates
caches: use individual namespaces per user to prevent beaker caching problems....
caches: use individual namespaces per user to prevent beaker caching problems. - especially for mysql in case large number of data in caches there could be critical errors storing cache, and thus preventing users from authentication. This is caused by the fact that we used single namespace for ALL users. It means it grew as number of users grew reaching mysql single column limit. This changes the behaviour and now we use namespace per-user it means that each user-id will have it's own cache namespace fragmenting maximum column data to a single user cache. Which we should never reach.

File last commit:

r2487:fcee5614 default
r2591:36829a17 stable
Show More
translation.py
64 lines | 1.9 KiB | text/x-python | PythonLexer
release: update copyright year to 2018
r2487 # Copyright (C) 2016-2018 RhodeCode GmbH
i18n: Add module that creates a translation string factory.
r50 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
notifications: fixed translation problem in my notifications.
r1387 from pyramid.i18n import TranslationStringFactory, TranslationString
i18n: Add module that creates a translation string factory.
r50
# Create a translation string factory for the 'rhodecode' domain.
pylons: remove pylons as dependency...
r2351 from pyramid.threadlocal import get_current_request
i18n: Add module that creates a translation string factory.
r50 _ = TranslationStringFactory('rhodecode')
dan
integrations: add integration support...
r411
pylons: remove pylons as dependency...
r2351
class _LazyString(object):
dan
integrations: add integration support...
r411 def __init__(self, *args, **kw):
self.args = args
self.kw = kw
pull-requests: trigger merge simulation during PR creation. Fixes #5396
r2168 def eval(self):
pylons: remove pylons as dependency...
r2351 req = get_current_request()
translator = _
if req:
translation: fix wrong argument call on request
r2353 translator = req.translate
pylons: remove pylons as dependency...
r2351 return translator(*self.args, **self.kw)
pull-requests: trigger merge simulation during PR creation. Fixes #5396
r2168
def __unicode__(self):
return unicode(self.eval())
dan
integrations: add integration support...
r411 def __str__(self):
pull-requests: trigger merge simulation during PR creation. Fixes #5396
r2168 return self.eval()
pylons: remove pylons as dependency...
r2351 def __repr__(self):
return self.__str__()
pull-requests: trigger merge simulation during PR creation. Fixes #5396
r2168 def __mod__(self, other):
return self.eval() % other
def format(self, *args):
return self.eval().format(*args)
dan
integrations: add integration support...
r411
def lazy_ugettext(*args, **kw):
""" Lazily evaluated version of _() """
pylons: remove pylons as dependency...
r2351 return _LazyString(*args, **kw)
utils: switched age function to use lazy translated pyramid translation mechanism.
r1317
def _pluralize(msgid1, msgid2, n, mapping=None):
if n == 1:
return _(msgid1, mapping=mapping)
else:
return _(msgid2, mapping=mapping)