Cloned DMOJ
This commit is contained in:
parent
f623974b58
commit
49dc9ff10c
513 changed files with 132349 additions and 39 deletions
40
judge/user_translations.py
Normal file
40
judge/user_translations.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
from django.conf import settings
|
||||
from django.utils import six
|
||||
from django.utils.safestring import SafeData, mark_safe
|
||||
|
||||
if settings.USE_I18N:
|
||||
from django.utils.translation.trans_real import DjangoTranslation, get_language
|
||||
|
||||
_translations = {}
|
||||
|
||||
def translation(language):
|
||||
global _translations
|
||||
if language not in _translations:
|
||||
_translations[language] = DjangoTranslation(language, domain='dmoj-user')
|
||||
return _translations[language]
|
||||
|
||||
def do_translate(message, translation_function):
|
||||
"""Copied from django.utils.translation.trans_real"""
|
||||
# str() is allowing a bytestring message to remain bytestring on Python 2
|
||||
eol_message = message.replace(str('\r\n'), str('\n')).replace(str('\r'), str('\n'))
|
||||
|
||||
if len(eol_message) == 0:
|
||||
# Returns an empty value of the corresponding type if an empty message
|
||||
# is given, instead of metadata, which is the default gettext behavior.
|
||||
result = ''
|
||||
else:
|
||||
translation_object = translation(get_language())
|
||||
result = getattr(translation_object, translation_function)(eol_message)
|
||||
if not isinstance(result, six.text_type):
|
||||
result = result.decode('utf-8')
|
||||
|
||||
if isinstance(message, SafeData):
|
||||
return mark_safe(result)
|
||||
|
||||
return result
|
||||
|
||||
def gettext(message):
|
||||
return do_translate(message, 'gettext')
|
||||
else:
|
||||
def gettext(message):
|
||||
return message
|
Loading…
Add table
Add a link
Reference in a new issue