Complementos

Add-ons provide ways to customize and automate the translation workflow. Admins can add and manage add-ons from the OperationsAdd-ons menu of each respective translation project or component. Add-ons can be also installed site-wide in Interfaz de administración.

Consejo

También puede configurar los complementos usando API, DEFAULT_ADDONS o install_addon.

../_images/addons.webp

Eventos que adjunta disparador

Instalación de adjunto

Disparado cuando se está instalando el complemento.

Actualización de componente

Disparador cuando sucede un cambio dentro del componente como por ejemplo:

  • Cadenas son modificadas dentro del repositorio.

  • Una cadena es añadida.

  • Una traducción nueva es añadida.

Diario

Disparado diariamente, pero adjuntos usualmente desglosa la carga diaria entre componentes dependiendo en BACKGROUND_TASKS.

Cambios de evento

Disparador tras ser creado un evento de Cambio.

Repositorio tras añadir

Disparador justo tras la traducción nueva sea añadida y ejecutada.

Repositorio post-efectuado

Disparador justo tras los cambios sean ejecutados.

Repositorio post-efectuar

Disparador justo tras el repositorio sea puesto en el nivel superior.

Repositorio posterior al ser actualizado

Disparador en cuanto los cambios nuevos son subidos desde el repositorio actual.

Repositorio pre-ejecutado

Disparado tan solo antes de los cambios sean ejecutados.

Repositorio pre-aplicado

Disparado en el momento de que el repositorio es subido a la última versión.

Repositorio pre-actualizado

Disparado justo antes que intentara actualizar el repositorio.

Poscarga de almacenamiento

Disparado cuando el archivo es interpretado por Weblate.

Unidad post-guardada

Disparado justa tras la cada es guardada.

Unidad pre-creación

Disparado justo tras la cadena nuevamente creada es guardada.

Complementos integrados

Traducción automática

ID del complemento:

weblate.autotranslate.autotranslate

Configuración:

mode

Modo de traducción automatizada

Elecciones disponibles:

suggest

Añadir como sugerencia

translate

Añadir como traducción

fuzzy

Agregar como «Necesita ser editado»

q

Consulta de búsqueda

See Searching for strings for how to define a filter using a search query. Please note that translating all strings will discard all existing translations.

auto_source

Fuente de traducciones automáticas

Elecciones 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 máquinas de traducción

threshold

Umbral de puntuación

Disparadores:

Instalación de adjunto, Actualización de componente, Diario

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

CDN de regionalización de JavaScript

Added in version 4.2.

ID del complemento:

weblate.cdn.cdnjs

Configuración:

threshold

Umbral de traducción

El porcentaje de cadenas traducidas que deben ser presentadas para traducción a ser incluidas.

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 interpretar en busca de cadenas traducibles.

Disparadores:

Instalación de adjunto, Diario, Repositorio post-efectuado, Repositorio posterior al ser actualizado

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

Este complemento requiere una configuración adicional en el servidor Weblate. LOCALIZE_CDN_PATH configura dónde se escribirán los archivos generados (en un “filesystem”), y LOCALIZE_CDN_URL define dónde se servirán (URL). Weblate no se encarga de servir los archivos, sino que debe configurarse externamente (normalmente mediante un servicio CDN).

Este complemento se configura en Alojado en Weblate y sirve los archivos a través de https://weblate-cdn.com/.

Quitar cadenas vacías

Added in version 4.4.

ID del complemento:

weblate.cleanup.blank

Configuración:

Este complemento no tiene configuración.

Disparadores:

Instalación de adjunto, Repositorio post-efectuado, Repositorio posterior al ser actualizado

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:

Instalación de adjunto, Repositorio posterior al ser actualizado, Repositorio pre-ejecutado

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.

En el caso de formatos con contenido adicional además de las cadenas de traducción (como Archivos HTML, Archivos RC de Windows o Formato OpenDocument), esto también sincroniza el archivo de traducción con el archivo base.

Adición de idiomas faltantes

ID del complemento:

weblate.consistency.languages

Configuración:

Este complemento no tiene configuración.

Disparadores:

Instalación de adjunto, Diario, Repositorio tras añadir

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:

Instalación de adjunto, 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.

La expresión regular para buscar archivos de traducción debe contener dos grupos de nombres para buscar el componente y el idioma. Todos los grupos con nombre de la expresión regular pueden utilizarse como variables en los campos de plantilla.

Puedes utilizar la plantilla de lenguaje de marcado Django en todos los campos de nombre de archivo, por ejemplo:

{{ component }}

Nombre de componente emparejado

{{ component|title }}

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

{{ path }}: {{ component }}

Grupo de concordancia personalizado a partir de la expresión regular

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

../_images/addon-discovery.webp

Ejemplos de búsqueda de componentes

Una carpeta por idioma

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

Expresión regular:

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

Archivos coincidentes:
  • cs/application.po

  • cs/website.po

  • de/application.po

  • de/website.po

Disposición de las configuraciones regionales de Gettext

Estructura habitual para almacenar archivos PO de gettext.

Expresión regular:

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

Archivos coincidentes:
  • locale/cs/LC_MESSAGES/application.po

  • locale/cs/LC_MESSAGES/website.po

  • locale/de/LC_MESSAGES/application.po

  • locale/de/LC_MESSAGES/website.po

Nombres de archivo complejos

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

Expresión regular:

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

Archivos coincidentes:
  • src/locale/application.cs.po

  • src/locale/website.cs.po

  • src/locale/application.de.po

  • src/locale/website.de.po

Código lingüístico repetido

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

Expresión regular:

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

Archivos coincidentes:
  • locale/cs/application/cs.po

  • locale/cs/website/cs.po

  • locale/de/application/de.po

  • locale/de/website/de.po

Cadenas divididas de Android

Cadenas de recursos de Android, divididas en varios archivos.

Expresión regular:

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

Archivos coincidentes:
  • res/values-cs/strings-about.xml

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

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

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

Coincidiendo con varias rutas

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

Expresión regular:

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

Nombre del componente:

{{ originalHierarchy }}: {{ component }}

Archivos coincidentes:
  • 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

Component discovery add-on uses URL internos de Weblate. It’s a convenient way to share VCS setup between multiple components. Linked components use the local repository of the main component set up by filling weblate://project/main-component into the Repositorio de código fuente field (in OperationsSettingsVersion control system) of each respective component. This saves time with configuration and system resources too.

Consejo

Ensure the new component contains the full set of translatable languages with Adición de idiomas faltantes.

Advertencia

To be discovered, a new component must contain a file that matches base_file_template and at least one file with a name that matches match – i.e., the component must contain a base language file and at least one existing translation. Otherwise, it will be ignored.

Edición en masa

ID del complemento:

weblate.flags.bulk

Configuración:

q

Consulta

state

Estado que definir

Elecciones disponibles:

-1

No cambiar

10

Necesita edición

20

Traducido

30

Aprobadas

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:

Instalación de adjunto, Actualización de componente

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

Ejemplos:

Etiquetar cadenas nuevas automáticamente

Consulta de búsqueda

NOT has:label

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

language:en AND key:changelogs/

Indicadores de traducción que añadir

read-only

Marcar determinadas cadenas como de solo lectura

Consulta de búsqueda

source:r"^\`\`[.a-zA-Z0-9_-]*\`\`$" AND language:en

Indicadores de traducción que añadir

read-only

Marcar traducciones sin cambios como «Necesitan edición»

ID del complemento:

weblate.flags.same_edit

Configuración:

Este complemento no tiene configuración.

Disparadores:

Unidad pre-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 pre-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 pre-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

Added in version 4.18.

ID del complemento:

weblate.generate.fill_read_only

Configuración:

Este complemento no tiene configuración.

Disparadores:

Instalación de adjunto, Actualización de componente, Diario

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

Generador de estadísticas

ID del complemento:

weblate.generate.generate

Configuración:

filename

Nombre del archivo generado

template

Contenido del archivo generado

Disparadores:

Repositorio pre-ejecutado

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; consulte 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/{{ language_code }}.json

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

Prerellenar traducción con original

Added in version 4.11.

ID del complemento:

weblate.generate.prefill

Configuración:

Este complemento no tiene configuración.

Disparadores:

Instalación de adjunto, Actualización de componente, Diario

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

Added in version 4.5.

ID del complemento:

weblate.generate.pseudolocale

Configuración:

source

Cadenas de origen

target

Traducción de destino

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

prefix

Texto estático antepuesto

var_prefix

Texto variable antepuesto

suffix

Texto estático adjunto

var_suffix

Texto variable adjunto

var_multiplier

Multiplicador de texto variable

En cuántas ocasiones repetirse el texto variable dependiente en la longitud de la cadena original.

include_readonly

Incluir cadenas de solo lectura

Disparadores:

Instalación de adjunto, Actualización de componente, Diario

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. Los textos variables son repetidos por la longitud del texto multiplicada por el multiplicador. Por ejemplo, Hola mundo con el texto 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:

Texto estático antepuesto Texto variable antepuesto Cadena fuente Texto de variable pospuesto Texto estático pospuesto

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.

Colaboradores en comentarios

ID del complemento:

weblate.gettext.authors

Configuración:

Este complemento no tiene configuración.

Disparadores:

Repositorio pre-ejecutado

Actualiza la parte de comentarios del encabezado del archivo PO para incluir los nombres de los colaboradores y los años de las colaboraciones.

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.

Actualización de la variable ALL_LINGUAS en el archivo «configurar»

ID del complemento:

weblate.gettext.configure

Configuración:

Este complemento no tiene configuración.

Disparadores:

Instalación de adjunto, Diario, Repositorio tras añadir

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

Removed in version 5.13: Replaced by File format parameters.

ID del complemento:

weblate.gettext.customize

Configuración:

width

Ajuste de renglones largos

By default, gettext wraps lines at 77 characters and at newlines. With the –no-wrap parameter, wrapping is only done at newlines.

Elecciones disponibles:

77

Ajustar renglones a los 77 caracteres y en saltos (valor predet. xgettext)

65535

Ajustar renglones únicamente en los saltos (como «xgettext –no-wrap»)

-1

No ajustar renglones

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

By default, gettext wraps lines at 77 characters and at newlines. With the --no-wrap parameter, wrapping is only done at newlines.

Actualizar archivo LINGUAS

ID del complemento:

weblate.gettext.linguas

Configuración:

Este complemento no tiene configuración.

Disparadores:

Instalación de adjunto, Diario, Repositorio tras añadir

Actualiza el archivo LINGUAS cuando se añade una nueva traducción.

Generar archivos MO

ID del complemento:

weblate.gettext.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:

Repositorio pre-ejecutado

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

Si se elimina una traducción, su fichero PO se eliminará del repositorio, pero no el fichero MO generado por este complemento. El fichero MO debe eliminarse manualmente del repositorio.

Actualizar archivos PO para que coincidan con POT (msgmerge)

Distinto en la versión 5.13:

guilabel:

Settings configuration has been moved to File format parameters.

ID del complemento:

weblate.gettext.msgmerge

Configuración:

Este complemento no tiene configuración.

Disparadores:

Instalación de adjunto, 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.

Most msgmerge command-line options can be set up through file format parameters configuration.

Concentrar consignas de Git

ID del complemento:

weblate.git.squash

Configuración:

squash

Concentración de consignas

Elecciones disponibles:

all

Todas las consignas en una sola

language

Por idioma

file

Por archivo

author

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:

Instalación de adjunto, Repositorio post-efectuado

Concentrar las consignas de Git antes de enviar los cambios.

Consejo

Para evitar conflictos innecesarios, se recomienda configurar la recepción automática de cambios ascendentes mediante webhooks o API, ver Actualizar repositorios.

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

Distinto en la versión 5.12: Avoid spaces after separators opcional añadida.

Removed in version 5.13: Replaced by File format parameters.

ID del complemento:

weblate.json.customize

Configuración:

sort_keys

Ordenar claves de JSON

use_compact_separators

Evitar espacios tras separadores

indent

Sangría JSON

style

Estilo de sangría de JSON

Elecciones disponibles:

spaces

Espacios

tabs

Tabuladores

Disparadores:

Poscarga de almacenamiento

Permite ajustar el comportamiento de salida de JSON, por ejemplo, sangría, ordenación o formato de compactación utilizando espacio en blanco mínimo.

Formatear el archivo de propiedades de Java

ID del complemento:

weblate.properties.sort

Configuración:

case_sensitive

Activar la clasificación por mayúsculas y minúsculas

Disparadores:

Repositorio pre-ejecutado

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.removal.comments

Configuración:

age

Días para guardar

Disparadores:

Instalación de adjunto, 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.removal.suggestions

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:

Instalación de adjunto, 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.update

Configuración:

Este complemento no tiene configuración.

Disparadores:

Instalación de adjunto, 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.

Webhook de Slack

Added in version 5.12.

ID del complemento:

weblate.webhook.slack

Configuración:

webhook_url

URL de Webhook

events

Eventos modificados

Elecciones disponibles:

0

Recurso actualizado

1

Traducción completada

2

Traducción modificada

3

Comentario añadido

4

Sugerencia añadida

5

Traducción añadida

6

Traducida automáticamente

7

Sugerencia aceptada

8

Traducción revertida

9

Traducción cargada

13

Añadido una cadena a la fuente

14

Componente bloqueado

15

Componente desbloqueado

17

Cambios realizados

18

Cambios impulsados

19

Repositorio restablecido

20

Repositorio fusionado

21

Repositorio reorganizado

22

Fallo en la fusión del repositorio

23

Fallo en la actualización del repositorio

24

El análisis falló

25

Traducción eliminada

26

Sugerencia borrada

27

Traducción sustituida

28

Fallo en la inserción del repositorio

29

Sugerencia borrada durante la limpieza

30

Cadena de origen cambiada

31

Cadena añadida

32

Estado cambiado en lotes

33

Cambios en la visualización

34

Usuario añadido

35

Usuario eliminado

36

Traducción aprobada

37

Marcada para edición

38

Componente eliminado

39

Proyecto suprimido

41

Proyecto renombrado

42

Componente renombrado

43

Componente trasladado

45

Colaborador unido

46

Anuncio publicado

47

Alerta activada

48

Idioma agregado

49

Idioma requerido

50

Proyecto creado

51

Componente creado

52

Usuario invitado

53

Notificación del repositorio recibida

54

Traducción reemplazada por la cargada

55

Licencia cambiada

56

Ha cambiado el acuerdo de licencia del contribuidor

57

Captura de pantalla añadida

58

Captura de pantalla cargada

59

Cadena actualizada en el repositorio

60

Complemento instalado

61

Cambió la configuración del complemento

62

Complemento desinstalado

63

Cadena eliminada

64

Comentario eliminado

65

Comentario resuelto

66

Explicación actualizada

67

Categoría eliminada

68

Categoría renombrada

69

Categoría movida

70

Error al guardar la cadena

71

Cadena añadida al repositorio

72

Cadena actualizada al cargar

73

Cadena añadida al cargar

74

Traducción actualizada mediante la carga de las fuentes

75

Traducción de componentes finalizada

76

Comprobación forzada aplicada

77

Cambio propagado

78

Archivo cargado

79

Indicadores adicionales actualizados

80

Fuente subida

81

Fuente cambiada

82

Fuente eliminada

Disparadores:

Cambios de evento

Envía notificaciones a un canal de Slack en función de los eventos seleccionados.

Advertencia

El contenido de la notificación puede mostrar etiquetas HTML. Este es un problema conocido que pronto se abordará; ver https://github.com/WeblateOrg/weblate/issues/15056.

Consejo

Para obtener una URL de webhook, siga los pasos descritos en la documentación Slack Incoming Webhooks

Webhook

Added in version 5.11.

ID del complemento:

weblate.webhook.webhook

Configuración:

webhook_url

URL de Webhook

secret

Secreto

Cadena codificada en base64 no válida

events

Eventos modificados

Elecciones disponibles:

0

Recurso actualizado

1

Traducción completada

2

Traducción modificada

3

Comentario añadido

4

Sugerencia añadida

5

Traducción añadida

6

Traducida automáticamente

7

Sugerencia aceptada

8

Traducción revertida

9

Traducción cargada

13

Añadido una cadena a la fuente

14

Componente bloqueado

15

Componente desbloqueado

17

Cambios realizados

18

Cambios impulsados

19

Repositorio restablecido

20

Repositorio fusionado

21

Repositorio reorganizado

22

Fallo en la fusión del repositorio

23

Fallo en la actualización del repositorio

24

El análisis falló

25

Traducción eliminada

26

Sugerencia borrada

27

Traducción sustituida

28

Fallo en la inserción del repositorio

29

Sugerencia borrada durante la limpieza

30

Cadena de origen cambiada

31

Cadena añadida

32

Estado cambiado en lotes

33

Cambios en la visualización

34

Usuario añadido

35

Usuario eliminado

36

Traducción aprobada

37

Marcada para edición

38

Componente eliminado

39

Proyecto suprimido

41

Proyecto renombrado

42

Componente renombrado

43

Componente trasladado

45

Colaborador unido

46

Anuncio publicado

47

Alerta activada

48

Idioma agregado

49

Idioma requerido

50

Proyecto creado

51

Componente creado

52

Usuario invitado

53

Notificación del repositorio recibida

54

Traducción reemplazada por la cargada

55

Licencia cambiada

56

Ha cambiado el acuerdo de licencia del contribuidor

57

Captura de pantalla añadida

58

Captura de pantalla cargada

59

Cadena actualizada en el repositorio

60

Complemento instalado

61

Cambió la configuración del complemento

62

Complemento desinstalado

63

Cadena eliminada

64

Comentario eliminado

65

Comentario resuelto

66

Explicación actualizada

67

Categoría eliminada

68

Categoría renombrada

69

Categoría movida

70

Error al guardar la cadena

71

Cadena añadida al repositorio

72

Cadena actualizada al cargar

73

Cadena añadida al cargar

74

Traducción actualizada mediante la carga de las fuentes

75

Traducción de componentes finalizada

76

Comprobación forzada aplicada

77

Cambio propagado

78

Archivo cargado

79

Indicadores adicionales actualizados

80

Fuente subida

81

Fuente cambiada

82

Fuente eliminada

Disparadores:

Cambios de evento

Envía notificaciones a servicios externos basadas en eventos seleccionados, siguiendo la especificación estándar de webhooks.

La carga útil de la solicitud cumple con el esquema Weblate Messaging La descripción de OpenAPI también se puede encontrar en /api/docs/. Cuerpo de solicitud de muestra:

{
   "change_id": 99,
   "action": "Translation changed",
   "timestamp": "2019-08-24T14:15:22Z",
   "target": "Nazdar svete!",
   "old": "Nazdar!",
   "source": "Hello, world",
   "url": "/translate/project-slug/component-slug/cs/?checksum=46add148a53cab6f",
   "author": "author-username",
   "user": "user-username",
   "project": "project-slug",
   "component": "component-slug",
   "translation": "cs"
}

Cuerpo de solicitud de muestra con categorías:

{
   "change_id": 8910,
   "action": "Component renamed",
   "timestamp": "2025-06-11T07:15:09Z",
   "target": ["new-name"],
   "old": ["component-slug"],
   "url": "/projects/project-slug/parent-category/child-category/sub-category/component-slug/",
   "user": "testuser",
   "project": "project-slug",
   "component": "component-slug",
   "category": [
      "sub-category",
      "child-category",
      "parent-category"
   ]
}

Encabezados de solicitud de muestra:

{
   "webhook-id": "7f1c5477f6275a69af7b83236c20cb1a",
   "webhook-timestamp": "1748505623.044281",
   "webhook-signature": "v1,Ceo5qEr07ixe2NLpvHk3FH9bwy/WavXrAFQ/9tdO6mc="
}

La webhook-signature es una lista separada por espacios de firmas HMAC generadas utilizando la cadena secret, la carga útil de la solicitud, la webhook-timestamp y el webhook-id. Esto garantiza la autenticidad e integridad de la solicitud de webhook.

Para verificar una solicitud, puede utilizar el método Webhook.verify de la biblioteca standardwebhooks o una implementación de la «Especificación Estándar de Webhooks».

Personalizar la salida XML

Added in version 4.15.

Removed in version 5.13: Replaced by File format parameters.

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

Removed in version 5.13: Replaced by File format parameters.

ID del complemento:

weblate.yaml.customize

Configuración:

indent

Sangría YAML

width

Ajuste de renglones largos

Elecciones disponibles:

80

Ajustar renglones a 80 caracteres

100

Ajustar renglones a 100 caracteres

120

Ajustar renglones a 120 caracteres

180

Ajustar renglones a 180 caracteres

65535

No ajustar renglones

line_break

Saltos de renglón

Elecciones 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: set[AddonEvent] = {
        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, consulte Controles de calidad personalizados, complementos y auto-correcciones.

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.

Registro de la actividad del complemento

El registro de la actividad del complemento realiza un seguimiento de la ejecución del complemento y puede utilizarse para realizar un seguimiento de la actividad del complemento.

Los registros pueden ser eliminados después de un cierto intervalo de tiempo configurando el parámetro ADDON_ACTIVITY_LOG_EXPIRY.