示例#1
0
def get_translation_for_key(item):
    from django.core.exceptions import ObjectDoesNotExist
    from django.utils.translation import get_language
    from translator.models import Translation
    from django.core.cache import cache

    if getattr(settings, "DJANGO_TRANSLATOR_ENABLED", True):
        lang = get_language()
        key = get_key(lang, item)
        result = cache.get(key)

        try:
            if not result:
                try:
                    result = Translation.objects.get(key=item).description
                except ObjectDoesNotExist:
                    result = Translation(key=item)
                    result.description = item
                    result.save()
                    result = result.description
                cache.set(key, result)
        except OperationalError:
            logging.getLogger(__name__).info("Unable to get translation for {0}".format(item), )
            result = item
    else:
        result = item

    return mark_safe(result)
示例#2
0
def get_translation_for_key(item):
    from django.core.exceptions import ObjectDoesNotExist
    from django.utils.translation import get_language
    from translator.models import Translation
    from django.core.cache import cache

    lang = get_language()
    key = u'{0}-{1}'.format(lang, item)
    result = cache.get(key)
    if not result:
        try:
            result = Translation.objects.get(key=item).description
        except ObjectDoesNotExist:
            result = Translation(key=item)
            result.description = item
            result.save()
            result = unicode(result.description)
        cache.set(key, result)
    return mark_safe(result)