Traducir HTML y JavaScript mediante la CDN de Weblate¶
A partir de Weblate 4.2 es posible exportar la localización a una CDN usando el complemento CDN de regionalización de JavaScript.
Nota
Esta característica está configurara en Hosted Weblate. Requiere configuración adicional en su instalación, consulte LOCALIZE_CDN_URL y LOCALIZE_CDN_PATH.
Una vez instalado en su componente, consolidará las traducciones realizadas (consulte Consolidaciones diferidas) en el CDN y podrá utilizarlas en sus páginas web para localizarlas.
Creación del componente¶
Primero, debe crear un componente monolingüe que contendrá sus cadenas, consulte Añadir proyectos y componentes de traducción para obtener instrucciones genéricas sobre eso.
Si ya tiene un repositorio inicial (por ejemplo el que contiene archivos HTML), cree un archivo JSON vacío en el repositorio para el idioma de origen (consulte Idioma del código fuente), por ejemplo locales/en.json. El contenido debe ser {} para indicar un objeto vacío. Una vez que lo tenga, podrá importar el repositorio a Weblate y comenzar con la configuración del complemento.
Consejo
En caso de que tenga traducciones existentes, puede colocarlas en los archivos JSON de idioma y estas se utilizarán en Weblate.
Para aquellos que no desean utilizar un repositorio existente (o no tienen uno), elijan Comenzar desde cero al crear el componente y elijan Archivo JSON como formato de archivo (está bien elegir cualquier formato monolingüe en este punto).
Configurar el complemento CDN de Weblate¶
El complemento CDN de regionalización de JavaScript proporciona escasas opciones de configuración.
- Umbral de traducción
Las traducciones traducidas sobre este umbral será incluida en el CDN.
- Selector de CSS
Configura cuales cadenas desde los documentos HTML sean traducidas, consulte Extracción de cadenas para la CDN de Weblate y Traducción de HTML mediante la CDN de Weblate.
- Nombre de la «cookie» de idioma
Nombre de la galleta la cual contenga idioma del usuario seleccionado. Utilizado en el snippet de JavaScript para Traducción de HTML mediante la CDN de Weblate.
- Extraer cadenas desde archivos HTML
Listado de archivos en el repositorio o las URL donde Weblate buscará cadenas traducibles y ofrecerlas para una traducción, consulte Extracción de cadenas para la CDN de Weblate.
Extracción de cadenas para la CDN de Weblate¶
Las cadenas de traducción deben estar presentes en Weblate . Puede administrarlas manualmente, usar el API para crearlas o enumerar archivos o URL mediante Extraer cadenas de archivos HTML y Weblate las extraerá automáticamente. Los archivos deben estar presentes en el repositorio o contener URL remotas que Weblate descargará y analizará periódicamente . Las URL remotas están restringidas por ALLOWED_ASSET_DOMAINS, incluyendo cualquier destino de redirección.
La configuración predeterminada para selector CSS extrae elementos con la clase CSS l10n, por ejemplo, extraería dos cadenas de los siguientes fragmentos:
<section class="content">
<div class="row">
<div class="wrap">
<h1 class="section-title min-m l10n">Maintenance in progress</h1>
<div class="page-desc">
<p class="l10n">We're sorry, but this site is currently down for maintenance.</p>
</div>
</div>
</div>
</section>
En caso de que no desee modificar el código existente, también puede utilizar * como selector para procesar todos los elementos.
Nota
Por ahora, solo se extrae el texto de los elementos. Este complemento no admite la localización de atributos de elementos ni de elementos con elementos heredados.
Traducción de HTML mediante la CDN de Weblate¶
To localize an HTML document, you need to load the weblate.js script:
<script src="https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/weblate.js" async></script>
Al cargar, encontrará automáticamente todos los elementos traducibles que coincidan (basándose en la configuración de selector CSS) y sustituirá su texto por una traducción.
El idioma del usuario se detecta a partir de la cookie configurada y vuelve a los idiomas preferidos del usuario configurados en el navegador.
El Nombre de la cookie de idioma puede ser útil para la integración con otras aplicaciones (por ejemplo, elija django_language al usar Django ).
Regionalización de JavaScript¶
Las traducciones individuales son exportadas como archivos JSON bilingües bajo el CDN. Para obtener una puede utilizar el código siguiente:
fetch(("https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/cs.json")
.then(response => response.json())
.then(data => console.log(data));
En este caso, hace falta implementar la lógica de regionalización.