Complementos#

Los complementos proporcionan formas de personalizar y automatizar el flujo de trabajo de la traducción. Los administradores pueden añadir y gestionar complementos desde el menú ManageAdd-ons de cada componente de la traducción.

Consejo

You can also configure add-ons using API, DEFAULT_ADDONS, or install_addon.

../_images/addons.webp

Complementos integrados#

Traducción automática#

ID del complemento:

weblate.traducir automáticamente.traducir automáticamente

Configuración:

mode

Modo de traducción automatizada

Opciones disponibles:

suggest – Añadir como sugerencia

translate – Añadir como traducción

fuzzy – Añadir como «Necesita edición»

filter_type

Filtro de búsqueda

Observe que traducir todas las cadenas descartará todas las traducciones existentes.

Opciones disponibles:

all – Todas las cadenas

nottranslated – Cadenas no traducidas

todo – Cadenas inacabadas

fuzzy – Cadenas marcadas para ser editas

check:inconsistent – Comprobación fallida: Inconsistente

auto_source

Fuente de traducciones automáticas

Opciones disponibles:

others – Otros componentes de la traducción

mt – Traducción automática

component

Componente

Escriba el slug de un componente para usar lo como origen, manténgalo en blanco para usar todos los componentes del proyecto actual.

engines

Motores de traducción automática

threshold

Umbral de puntuación

Disparadores:

actualización de componentes, diaria

Traduce automáticamente las cadenas mediante traducción automática u otros componentes.

Se desencadena:

  • Cuando aparecen cadenas nuevas en un componente.

  • Una vez al mes por cada componente; esto puede configurarse mediante las BACKGROUND_TASKS.

CDN de regionalización de JavaScript#

Nuevo en la versión 4.2.

ID del complemento:

weblate.cdn.cdnjs

Configuración:

threshold

Umbral de traducción

Umbral para la inclusión de traducciones.

css_selector

Selector de CSS

Selector de CSS para detectar elementos regionalizables.

cookie_name

Nombre de la «cookie» de idioma

Nombre de la «cookie» que almacena la preferencia de idioma.

files

Extraer cadenas desde archivos HTML

Lista de nombres de archivo en el repositorio actual o URL remotos que analizar en busca de cadenas traducibles.

Disparadores:

diario, confirmación posterior del repositorio, actualización posterior del repositorio

Publica las traducciones en una red de entrega de contenidos para su uso al regionalizar JavaScript o HTML.

Puede usarse para traducir páginas estáticas HTML o cargar cadenas de localización en el código JavaScript.

Genera una URL única para su componente que pueda incluir para localizarlas en las páginas HTML . Consulte Traducir HTML y JavaScript mediante la CDN de Weblate para más detalles.

Nota

This add-on requires additional configuration on the Weblate server. LOCALIZE_CDN_PATH configures where generated files will be written (on a filesystem), and LOCALIZE_CDN_URL defines where they will be served (URL). Serving of the files is not done by Weblate and has to be set up externally (typically using a CDN service).

This add-on is configured on Hosted Weblate and serves the files via https://weblate-cdn.com/.

Quitar cadenas vacías#

Nuevo en la versión 4.4.

ID del complemento:

weblate.cleanup.blank

Configuración:

Este complemento no tiene configuración.

Disparadores:

repositorio post-commit, repositorio post-actualización

Quita las cadenas que carecen de traducción de los archivos de traducción.

Use esto para no tener cadenas vacías en los ficheros de traducción (por ejemplo si su biblioteca de localización los marca como faltantes en vez de usar la cadena original).

Limpieza de archivos de traducción#

ID del complemento:

weblate.cleanup.generic

Configuración:

Este complemento no tiene configuración.

Disparadores:

repositorio pre-commit, repositorio post-actualización

Actualiza todos los archivos de traducción para que coincidan con el archivo de base monolingüe. Para la mayoría de los formatos de archivo, esto implica quitar las claves de traducción obsoletas que ya no están en el archivo de base.

Adición de idiomas faltantes#

ID del complemento:

weblate.consistencia.idiomas

Configuración:

Este complemento no tiene configuración.

Disparadores:

diario, repositorio después de ser añadido

Garantiza que en todos los componentes de un proyecto se utilice el mismo conjunto de idiomas.

Los idiomas que faltan se verifican una vez cada 24 horas y también cuando se agregan nuevos idiomas en Weblate.

A diferencia de la mayoría de los demás complementos, este afecta a todo el proyecto.

Consejo

Traducción automática de cadenas recién agregadas con Traducción automática.

Detección de componentes#

ID del complemento:

weblate.discovery.discovery

Configuración:

match

Expresión regular utilizada para relacionar con los archivos de traducción

file_format

Formato de archivo

name_template

Personalizar el nombre del componente

base_file_template

Definir el nombre del archivo de base monolingüe

Dejar vacío para archivos de traducción bilingües.

new_base_template

Definir el archivo de base para traducciones nuevas

Nombre del archivo utilizado para traducciones nuevas. Para gettext seleccione un archivo .pot.

intermediate_template

Archivo de idioma intermediario

Nombre del archivo de traducción intermediario. En la mayoría de los casos es un archivo provisto por los desarrolladores y se utiliza al crear las cadenas de origen finales.

language_regex

Filtro de idioma

Expresión regular para filtrar los archivos de traducción cuando se busca una máscara de archivo.

copy_addons

Clonar complementos del componente principal a los nuevos

remove

Quitar componentes de archivos inexistentes

confirm

Confirmo que las coincidencias anteriores parecen correctas

Disparadores:

repositorio posterior al ser actualizado

Añade o quita automáticamente componentes del proyecto en función de los cambios de los archivos en el sistema de control de versiones.

La coincidencia se realiza mediante expresiones regulares que permiten una configuración compleja, pero se requieren algunos conocimientos para hacerlo. Se pueden encontrar algunos ejemplos de unos casos comunes en la sección de ayuda del complemento.

The regular expression to match translation files has to contain two named groups to match component and language. All named groups in the regular expression can be used as variables in the template fields.

You can use Django template markup in all filename fields, for example:

{{ component }}

Nombre de componente emparejado

{{ component|title }}

Nombre de archivo del componente con la primera letra mayúscula

{{ path }}: {{ component }}

Custom match group from the regular expression

Cuando presiona :guilabel:`Save`aparecerá una vista previa de los componentes coincidentes donde podrá verificar si la configuración se ajusta a sus necesidades:

../_images/addon-discovery.webp

Component discovery examples#

One folder per language#

Una carpeta por idioma que contiene los archivos de traducción de los componentes.

Regular expression:

(?P<language>[^/.]*)/(?P<component>[^/]*)\.po

Matching files:
  • cs/application.po

  • cs/website.po

  • de/application.po

  • de/website.po

Gettext locales layout#

Estructura habitual para almacenar archivos PO de gettext.

Regular expression:

locale/(?P<language>[^/.]*)/LC_MESSAGES/(?P<component>[^/]*)\.po

Matching files:
  • locale/cs/LC_MESSAGES/application.po

  • locale/cs/LC_MESSAGES/website.po

  • locale/de/LC_MESSAGES/application.po

  • locale/de/LC_MESSAGES/website.po

Complex filenames#

Usando tanto el nombre del componente como el del idioma dentro del nombre del archivo.

Regular expression:

src/locale/(?P<component>[^/]*)\.(?P<language>[^/.]*)\.po

Matching files:
  • src/locale/application.cs.po

  • src/locale/website.cs.po

  • src/locale/application.de.po

  • src/locale/website.de.po

Repeated language code#

Usar el lenguaje tanto en la ruta como en el nombre del archivo.

Regular expression:

locale/(?P<language>[^/.]*)/(?P<component>[^/]*)/(?P=language)\.po

Matching files:
  • locale/cs/application/cs.po

  • locale/cs/website/cs.po

  • locale/de/application/de.po

  • locale/de/website/de.po

Split Android strings#

Cadenas de recursos de Android, divididas en varios archivos.

Regular expression:

res/values-(?P<language>[^/.]*)/strings-(?P<component>[^/]*)\.xml

Matching files:
  • res/values-cs/strings-about.xml

  • res/values-cs/strings-help.xml

  • res/values-de/strings-about.xml

  • res/values-de/strings-help.xml

Matching multiple paths#

Proyecto Maven de varios módulos con traducciones de propiedades de Java.

Regular expression:

(?P<originalHierarchy>.+/)(?P<component>[^/]*)/src/main/resources/ApplicationResources_(?P<language>[^/.]*)\.properties

Component name:

{{ originalHierarchy }}: {{ component }}

Matching files:
  • parent/module1/submodule/src/main/resources/ApplicationResources_fr.properties

  • parent/module1/submodule/src/main/resources/ApplicationResource_es.properties

  • parent/module2/src/main/resources/ApplicationResource_de.properties

  • parent/module2/src/main/resources/ApplicationResource_ro.properties

Consejo

El complemento de detección de los componentes utiliza URL internos de Weblate. Es una forma conveniente de compartir la configuración de VCS entre múltiples integrantes. Los componentes vinculados utilizan el repositorio local del componente principal configurado al completar weblate://project/main-component en el campo Repositorio de código fuente (en Manage ↓ :guilabel: ConfiguraciónSistema de control de versiones) de cada componente respectivo. Esto también ahorra tiempo con la configuración y los recursos del sistema.

Edición en masa#

ID del complemento:

weblate.flags.bulk

Configuración:

q

Consulta

state

Estado que definir

Opciones disponibles:

-1 – No modificar

10 – Necesita ser editado

20 – Traducido

30 – Aprobado

add_flags

Indicadores de traducción que añadir

remove_flags

Indicadores de traducción que quitar

add_labels

Etiquetas que añadir

remove_labels

Etiquetas que quitar

Disparadores:

actualización de los componentes

Edite los indicadores, las etiquetas o los estados de las cadenas de manera masiva.

Automatice el etiquetado comenzando con la consulta de búsqueda NO tiene: etiqueta y agregue etiquetas hasta que todas las cadenas tengan todas las etiquetas requeridas. También se pueden realizar otras operaciones automatizadas para los metadatos de Weblate.

Ejemplos:

Etiquetar cadenas nuevas automáticamente#

Consulta de búsqueda

NO tiene:etiqueta

Etiquetas que añadir

reciente

Marcar todas las cadenas del registro de cambios de Archivos de metadatos de tiendas de aplicaciones como de solo lectura#

Consulta de búsqueda

idioma:es Y clave:cambios/

Indicadores de traducción que añadir

read-only

Marcar traducciones sin cambios como «Necesitan edición»#

ID del complemento:

weblate.banderas.mismo_editar

Configuración:

Este complemento no tiene configuración.

Disparadores:

unidad posterior a la creación

Cada vez que se importa una cadena traducible nueva desde el VCS y esta corresponde a una cadena de origen, se marca como necesaria la edición en Weblate. Esto es útil sobre todo para aquellos formatos de archivo que incluyen las cadenas de origen de las cadenas no traducidas.

Consejo

También es posible que desee ajustar la verificación Traducción no modificada agregando el indicador strict-same a Indicadores de traducción.

Ver también

Estados de traducción

Marcar cadenas de origen nuevas como «Necesitan edición»#

ID del complemento:

weblate.flags.source_edit

Configuración:

Este complemento no tiene configuración.

Disparadores:

unidad posterior a la creación

Cuando se importa una cadena de origen nueva desde el VCS, se marca como necesaria la edición en Weblate. De esta manera usted puede filtrar y editar cadenas de origen escritas por los desarrolladores con facilidad.

Ver también

Estados de traducción

Marcar traducciones nuevas como «Necesitan edición»#

ID del complemento:

weblate.flags.target_edit

Configuración:

Este complemento no tiene configuración.

Disparadores:

unidad posterior a la creación

Cuando se importa una cadena traducible nueva desde el VCS, se marca como necesaria la edición en Weblate. De esta manera usted puede filtrar y editar las traducciones creadas por los desarrolladores con facilidad.

Ver también

Estados de traducción

Llenar las líneas de solo lectura con la fuente#

Nuevo en la versión 4.18.

ID del complemento:

weblate.generate.fill_read_only

Configuración:

Este complemento no tiene configuración.

Disparadores:

actualización de componentes, diaria

Completa las cadenas de traducción de solo lectura con las de origen.

Generador de estadísticas#

ID del complemento:

weblate.generar.generar

Configuración:

filename

Nombre del archivo generado

template

Contenido del archivo generado

Disparadores:

compromiso previo del repositorio

Genera un archivo con información detallada sobre el estado de la traducción.

Es posible utilizar una plantilla de Django tanto en el nombre de archivo como en el contenido; vea Marcación de plantilla para obtener una descripción a detalle de la marcación.

Por ejemplo, para generar un archivo resumen para cada una de las traducciones:

Nombre del archivo generado

locale/{{ código_de_idioma }}.json

Contenido
{
   "language": "{{ language_code }}",
   "strings": "{{ stats.all }}",
   "translated": "{{ stats.translated }}",
   "last_changed": "{{ stats.last_changed }}",
   "last_author": "{{ stats.last_author }}",
}

Prerrellenar traducción con original#

Nuevo en la versión 4.11.

ID del complemento:

weblate.generate.prefill

Configuración:

Este complemento no tiene configuración.

Disparadores:

actualización de componentes, diaria

Completa las cadenas de traducción con las de origen.

Todas las cadenas no traducidas del componente se rellenarán con la cadena de origen y se marcarán como: Necesitan edición. Use esto cuando no pueda tener cadenas vacías en los archivos de traducción.

Generación de pseudorregiones#

Nuevo en la versión 4.5.

ID del complemento:

weblate.generar.pseudolocalización

Configuración:

source

Cadenas de origen

target

Traducción de destino

Se sobrescribirán todas las cadenas de esta traducción

prefix

Prefijo de cadena fijo

var_prefix

Prefijo de cadena variable

suffix

Sufijo de cadena fijo

var_suffix

Sufijo de cadena variable

var_multiplier

Multiplicador de partes variable

En cuántas ocasiones debe repetirse la parte de la variable, en función de la longitud de la cadena original.

include_readonly

Incluir cadenas de solo lectura

Disparadores:

actualización de componentes, diaria

Genera una traducción mediante la adición automática de un prefijo y un sufijo a las cadenas de origen.

Las pseudolocales son útiles para encontrar cadenas que no están preparadas para la localización. Esto se hace alterando todas las cadenas fuente traducibles para facilitar la detección de cadenas no alteradas al ejecutar la aplicación en el idioma pseudolocal.

También es posible encontrar cadenas cuyas contrapartes localizadas no se ajusten al diseño.

El uso de las partes variables hace posible buscar cadenas que podrían no encajar en la interfaz de usuario después de la localización; amplía el texto en función de la longitud de la cadena de origen. Las partes variables se repiten por la longitud del texto multiplicada por el multiplicador. Por ejemplo, Hola mundo con el sufijo variable _ y el multiplicador variable de 1 se convierte en Hola mundo___________: el sufijo se repite una vez para cada carácter de la cadena de origen.

Las cadenas se generarán acorde a la pauta siguiente:

Prefijo de cadena fija Prefijo de cadena variable Cadena fuente Sufijo de cadena variable Sufijo de cadena fija

Consejo

Puede utilizar idiomas reales para las pruebas, pero hay pseudolocales dedicados disponibles en Weblate : en_XA y ar_XB.

Consejo

Puede utilizar este complemento para iniciar la traducción a una nueva configuración regional de un idioma existente o un idioma similar. Una vez que agregue la traducción al componente, siga hasta el complemento . Ejemplo: Si tiene fr y desea iniciar la traducción de fr_CA , simplemente establezca fr como fuente, fr_CA como destino, y deje el prefijo y el sufijo en blanco.

Desinstale el complemento una vez que haya completado la nueva traducción para evitar que Weblate cambie las traducciones realizadas después de la copia.

Contribuidores en comentarios#

ID del complemento:

weblate.obtener texto.autores

Configuración:

Este complemento no tiene configuración.

Disparadores:

compromiso previo del repositorio

Actualiza el comentario en la cabecera del archivo PO para incluir los nombres de los contribuidores y los años de las contribuciones.

La cabecera del archivo PO lucirá semejante a la siguiente:

# Michal Čihař <michal@weblate.org>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.

Actualizar variable ALL_LINGUAS en el archivo «configure»#

ID del complemento:

weblate.obtener texto.configurar

Configuración:

Este complemento no tiene configuración.

Disparadores:

repositorio posterior a la adición, diariamente

Actualiza la variable ALL_LINGUAS del archivo configure, configure.in o cualquier archivo configure.ac siempre que se añade una traducción nueva.

Personalizar la salida de gettext#

ID del complemento:

weblate.obtener texto.personalizar

Configuración:

width

Ajuste de renglones largos

De manera predeterminada, gettext ajusta los renglones a los 77 caracteres y en los saltos de renglón. Con el parámetro –no-wrap ajusta solo en los saltos.

Opciones disponibles:

77 – Envuelve líneas en 77 caracteres y en líneas nuevas (xgettext por defecto)

65535 – Solo ajustar líneas en líneas nuevas (like “xgettext –no-wrap”)

-1 – Sin ajuste de línea

Disparadores:

poscarga de almacenamiento

Permite la personalización del comportamiento de salida de gettext, por ejemplo, ajuste de líneas.

Cuenta con las opciones siguientes:

  • Ajustar renglones a los 77 caracteres y en saltos de renglón

  • Ajustar renglones únicamente en los saltos

  • No ajustar renglones

Nota

De manera predeterminada, gettext ajusta los renglones a los 77 caracteres y en los saltos de renglón. Con el parámetro --no-wrap ajusta solo en los saltos.

Actualizar archivo LINGUAS#

ID del complemento:

weblate.obtener texto.lenguas

Configuración:

Este complemento no tiene configuración.

Disparadores:

repositorio posterior a la adición, diariamente

Actualiza el archivo LINGUAS al añadir una traducción nueva.

Generar archivos MO#

ID del complemento:

weblate.obtener texto.mo

Configuración:

path

Ruta del archivo MO generado

Si no se especifica, se utilizará la ubicación del archivo PO.

fuzzy

Incluir cadenas que necesitan edición

Las cadenas que necesitan edición (borrosas) no suelen estar listas para su uso como traducciones.

Disparadores:

compromiso previo del repositorio

Genera automáticamente un archivo MO por cada archivo PO modificado.

La ubicación del archivo MO generado puede personalizarse y el campo correspondiente utiliza Marcación de plantilla.

Nota

If a translation is removed, its PO file will be deleted from the repository, but the MO file generated by this add-on will not. The MO file must be removed from the upstream manually.

Actualizar archivos PO para que coincidan con POT (msgmerge)#

ID del complemento:

weblate.obtener texto.combinación de mensajes

Configuración:

previous

Conservar los msgid anteriores de las cadenas traducidas

no_location

Quitar ubicaciones de cadenas traducidas

fuzzy

Usar coincidencia aproximada

Disparadores:

repositorio posterior al ser actualizado

Actualiza todos los archivos PO (tal como se configuraron mediante Máscara de archivos) a juego con el archivo POT (según esté configurado por Plantilla para traducciones nuevas) utilizando msgmerge.

Se activa cada vez que se extraen nuevos cambios del repositorio ascendente. La mayoría de las opciones de línea de comandos de msgmerge se pueden configurar a través de la configuración del complemento.

Concentrar consignas de Git#

ID del complemento:

weblate.git.squash

Configuración:

squash

Concentración de consignas

Opciones disponibles:

all – Todas las confirmaciones en una

idioma – Por idioma

archivo – Por archivo

autor – Por autor

append_trailers

Añadir renglones finales al mensaje de consigna concentrada

Las líneas de acompañamiento son líneas similares a las cabeceras de correo electrónico RFC 822, al final de la parte libre de un mensaje de confirmación, como «Coautor: …».

commit_message

Mensaje de consigna

Este mensaje de consigna se utilizará en sustitución de los mensajes combinados de las consignas concentradas.

Disparadores:

repositorio posterior a ser confirmado

Concentrar las consignas de Git antes de enviar los cambios.

Las consignas Git se pueden concentrar antes de enviar los cambios en uno de los modos siguientes:

  • Todas las consignas en una sola

  • Por idioma

  • Por archivo

  • Por autor

Se conservarán los mensajes de consigna originales pero la autoría se perderá, a menos que seleccione Por autor o personalice el mensaje de consigna para incluirla.

Los mensajes de confirmación originales se pueden anular opcionalmente con un mensaje de confirmación personalizado.

Existe la opción de quitar los renglones finales (como Co-authored-by: ) de los mensajes de consigna originales y reañadirlos al mensaje de la consigna concentrada. Co-authored-by: asegurará además la debida acreditación a cada uno de los traductores.

Personalizar la salida de JSON#

ID del complemento:

weblate.json.personalizado

Configuración:

sort_keys

Ordenar claves de JSON

indent

Sangría JSON

style

Estilo de sangría de JSON

Opciones disponibles:

espacios – Espacios

pestañas – Pestañas

Disparadores:

poscarga de almacenamiento

Permite ajustar el comportamiento de salida de JSON, por ejemplo, sangría o clasificación.

Formatear el archivo de propiedades de Java#

ID del complemento:

weblate.propiedades.ordenar

Configuración:

Este complemento no tiene configuración.

Disparadores:

compromiso previo del repositorio

Formatea y ordena el archivo de propiedades de Java.

  • Consolida nuevas líneas a las de Unix.

  • Formateo en mayúsculas de secuencias de escape Unicode (en caso de que estén presentes).

  • Elimina las líneas en blanco y los comentarios.

  • Ordena las cadenas por las claves.

  • Deja las cadenas duplicadas.

Retiro de comentarios obsoletos#

ID del complemento:

weblate.eliminación.comentarios

Configuración:

age

Días para guardar

Disparadores:

Diario

Fijar un plazo para el borrado de los comentarios.

Esto puede resultar útil para quitar los comentarios antiguos que pueden ya no ser aplicables. Utilícela con cuidado, pues el hecho de que un comentario sea antiguo no necesariamente denota que ha perdido importancia.

Retiro de sugerencias obsoletas#

ID del complemento:

weblate.eliminación.sugerencias

Configuración:

age

Días para guardar

votes

Umbral de votos

Umbral para eliminación. Este campo no surte ningún efecto si se desactivan los votos.

Disparadores:

Diario

Fijar un plazo para el borrado de sugerencias.

Puede ser muy útil en relación con la votación de sugerencias (ver Revisión por pares) para eliminar sugerencias que no reciben suficientes votos positivos en un período de tiempo determinado.

Actualizar archivos RESX#

ID del complemento:

weblate.resx.actualizar

Configuración:

Este complemento no tiene configuración.

Disparadores:

repositorio posterior al ser actualizado

Actualiza todos los archivos de traducción para que coincidan con el archivo de base monolingüe original. Las cadenas no utilizadas se retiran y las nuevas se añaden como copias de las cadenas de origen.

Consejo

Use Limpieza de archivos de traducción si solo desea eliminar las claves de traducción obsoletas.

Personalizar la salida XML#

Nuevo en la versión 4.15.

ID del complemento:

weblate.xml.customize

Configuración:

closing_tags

Incluir etiqueta de cierre para etiquetas XML vacías

Disparadores:

poscarga de almacenamiento

Permite ajustar el comportamiento de la salida XML, por ejemplo el cierre de etiquetas.

Personalizar salida de YAML#

ID del complemento:

weblate.yaml.personalizar

Configuración:

indent

Sangría YAML

width

Ajuste de renglones largos

Opciones disponibles:

80 – Envuelve líneas en 80 caracteres

100 – Envuelve líneas en 100 caracteres

120 – Envuelve líneas en 120 caracteres

180 – Envuelve líneas en 180 caracteres

65535 – Sin ajuste de línea

line_break

Saltos de renglón

Opciones disponibles:

dos – DOS (\r\n)

unix – UNIX (\n)

mac – MAC (\r)

Disparadores:

poscarga de almacenamiento

Permite ajustar el comportamiento de salida de YAML, como la longitud de los renglones y los saltos.

Personalización de la lista de complementos#

La lista de complementos se configura mediante WEBLATE_ADDONS. Para agregar otro complemento, simplemente incluya el nombre absoluto de la clase en esta configuración.

Complemento de escritura#

También puede escribir sus propios complementos, crear una subclase de weblate.addons.base.BaseAddon para definir los metadatos del complemento y luego implementar una devolución de llamada para realizar el procesamiento.

Ver también

Developing add-ons

Ejecutar scripts desde el complemento#

Los add-ons pueden utilizarse para ejecutar scripts externos. Esto solía estar integrado en Weblate, pero ahora tienes que escribir algo de código para envolver tu script con un add-on.

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Example pre commit script."""

from django.utils.translation import gettext_lazy

from weblate.addons.events import AddonEvent
from weblate.addons.scripts import BaseScriptAddon


class ExamplePreAddon(BaseScriptAddon):
    # Event used to trigger the script
    events = (AddonEvent.EVENT_PRE_COMMIT,)
    # Name of the addon, has to be unique
    name = "weblate.example.pre"
    # Verbose name and long description
    verbose = gettext_lazy("Execute script before commit")
    description = gettext_lazy("This add-on executes a script.")

    # Script to execute
    script = "/bin/true"
    # File to add in commit (for pre commit event)
    # does not have to be set
    add_file = "po/{{ language_code }}.po"

Para obtener instrucciones de instalación, vea Controles de calidad personalizados, complementos y autocorrecciones.

El script se ejecuta con el directorio actual establecido en la raíz del repositorio VCS para cualquier componente dado.

Además, las variables de entorno siguientes están a su disposición:

WL_VCS#

Sistema de control de versiones utilizado.

WL_REPO#

URL del repositorio del proyecto originario.

WL_PATH#

Ruta absoluta al repositorio del sistema de control de versiones.

WL_BRANCH#

Rama del repositorio configurada en el componente actual.

WL_FILEMASK#

Máscara de archivos para el componente actual.

WL_TEMPLATE#

Nombre de archivo de plantilla para traducciones monolingües (puede quedar vacío).

WL_NEW_BASE#

Nombre del archivo utilizado para crear traducciones nuevas (puede quedar vacío).

WL_FILE_FORMAT#

Formato de archivo utilizado en el componente actual.

WL_LANGUAGE#

Idioma de la traducción procesada actualmente (no disponible para actuadores a nivel componente).

WL_PREVIOUS_HEAD#

HEAD anterior después de la actualización (sólo disponible después de ejecutar el hook posterior a la actualización).

WL_COMPONENT_SLUG#

Componente slug utilizado para construir la URL.

WL_PROJECT_SLUG#

Slug del proyecto utilizado para construir la URL.

WL_COMPONENT_NAME#

Nombre del componente.

WL_PROJECT_NAME#

Nombre del proyecto.

WL_COMPONENT_URL#

URL del componente.

WL_ENGAGE_URL#

URL de participación del proyecto.

Procesando el repositorio después de la actualización#

Se puede utilizar para actualizar los archivos de traducción cuando el código fuente del VCS cambia. Para conseguirlo, recuerda que Weblate sólo ve los archivos confirmados en el VCS, por lo que debes commit los cambios como parte del script.

Por ejemplo, con Gulp puede hacerlo a través del código a continuación:

#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json

Procesamiento de traducciones preconsigna#

Utilice el script commitn para cambiar automáticamente una traducción antes de confirmarla en el repositorio.

Se pasa como un único parámetro que consiste en el nombre de archivo de una traducción actual.