Как перевести текст во внешнем 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-кода.

https://docs.djangoproject.com/en/4.0/topics/i18n/translation/#creating-message-files-from-javascript-source-code

Возможно, вы можете проверить Transifex Native вместо стандартного Django i18n. Он использует облачную локализацию, без использования файлов перевода. Вы можете переводить шаблоны Django и код Javascript как отдельные пути кода, используя их i18n SDK.

Это Django SDK: https://developers.transifex.com/docs/django-sdk

и JS: https://developers.transifex.com/docs/javascript-sdk

Вернуться на верх