Как перевести текст во внешнем javascript-файле? (Django)
У меня есть файл JavaScript, который добавляет элементы к телу в зависимости от взаимодействия с пользователем.
Прямо сейчас в моем шаблоне index.html я объявляю глобальные переменные с переведенным текстом:
{% block main %}
<script>
let TRANSLATION = {% trans "my text" %}
</script>
{% endblock %}
После того, как Django переведет текст в моем шаблоне index, мой JavaScript файл может взять переведенный текст и добавить его, используя что-то вроде:
element.innerHTML = TRANSLATION;
Я знаю, что это очень грязный способ перевода текста, который будет использовать JavaScript, потому что некоторым пользователям этот текст не понадобится, и в этих случаях я буду тратить ресурсы на переменные, которые я не буду использовать.
Итак, вопрос: каков чистый и правильный способ перевода текста для внешних JavaScript файлов?
Большую часть работы будет выполнять django. Следуйте их документации: https://docs.djangoproject.com/en/4.0/topics/i18n/translation/#internationalization-in-javascript-code
Чуть ниже на странице также описано, как сгенерировать языковой файл для вашего javascript-кода. Позже у вас будет два языковых файла, один для вашего django-приложения и один для вашего javascript-кода.
Возможно, вы можете проверить Transifex Native вместо стандартного Django i18n. Он использует облачную локализацию, без использования файлов перевода. Вы можете переводить шаблоны Django и код Javascript как отдельные пути кода, используя их i18n SDK.
Это Django SDK: https://developers.transifex.com/docs/django-sdk