1) Как я могу использовать идентификаторы для моего перевода вместо фактической строки в Django?
2) Как определить язык по умолчанию?
Пример:
Вместо обычного django way => {% trans "Это заголовок, который иногда меняется"%}
Я хочу использовать.
{% mytrans "specificpage_seo_title"%}
И если указанная строка c недоступна на текущем языке, она должна вернуться к языку по умолчанию / резервному.
В настоящее время моя реализация выглядит так и работает:
class SimpleNode(Node):
def __init__(self, inputstr):
self.inputstr = inputstr
def render(self, context):
return self.inputstr
@register.tag("mytrans")
def mytrans(parser, token):
inputstr = token.split_contents()[1].replace("\"", "")
transstr = _(inputstr)
if inputstr == transstr: # If equal fall back to english
lang = get_language().split('-')[0]
activate('en')
transstr = _(inputstr)
activate(lang)
else:
return do_translate(parser ,token)
return SimpleNode(transstr)
Если у кого-то есть лучший способ написать эту функцию =>, пожалуйста, дайте мне знать.
Я пытаюсь закодировать это поведение для {% blocktrans%}. Любая идея, как это сделать?
Ссылка на текущую Django реализацию: https://github.com/django/django/blob/master/django/templatetags/i18n.py