Tengo un archivo JavaScript que agrega elementos al cuerpo según la interacción del usuario.
Ahora mismo en mi plantilla index.html estoy declarando variables globales con el texto traducido:
{% block main %} <script> let TRANSLATION = {% trans "my text" %} </script> {% endblock %}Entonces, después de que Django traduzca el texto en mi plantilla de índice, mi archivo JavaScript puede tomar el texto traducido y agregarlo usando algo como:
element.innerHTML = TRANSLATION;Sé que esta es una forma muy sucia de traducir el texto que usará JavaScript porque algunos usuarios no necesitarán ese texto y en esos casos estaré desperdiciando recursos con variables que no usaré.
Entonces, la pregunta es: ¿Cuál es la forma limpia y correcta de traducir texto para archivos JavaScript externos?
Django realizará la mayor parte del trabajo. Siga su documentación: https://docs.djangoproject.com/en/4.0/topics/i18n/translation/#internationalization-in-javascript-code
Un poco más abajo en la página también se documenta cómo generar el archivo de idioma para su código javascript. Tendrá dos archivos de idioma más tarde, uno para su aplicación django y otro para su código javascript.