Complementos
Nuevo en la versión 2.19.
Add-ons provide ways to customize and automate the translation workflow. Admins can add and manage add-ons from the Manage ↓ Add-ons menu of each respective translation component.
Consejo
También puede configurar los complementos usando API, DEFAULT_ADDONS
o install_addon
.

Built-in add-ons
Traducción automática
Nuevo en la versión 3.9.
- Add-on ID
weblate.autotranslate.autotranslate
- Configuración
mode
Modo de traducción automatizada
Available choices:
suggest
– Add as suggestiontranslate
– Add as translationfuzzy
– Add as needing editfilter_type
Filtro de búsqueda
Observe que traducir todas las cadenas descartará todas las traducciones existentes.
Available choices:
all
– All stringsnottranslated
– Untranslated stringstodo
– Unfinished stringsfuzzy
– Strings marked for editcheck:inconsistent
– Failing check: Inconsistentauto_source
Fuente de la traducción automática
Available choices:
others
– Other translation componentsmt
– Machine translationcomponent
Componentes
Introduzca el componente que deberá utilizarse como fuente. Manténgalo vacío para utilizar todos los componentes del proyecto actual.
engines
Motores de traducción automática
threshold
Umbral de puntuación
- Disparadores
component update, daily
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.
- Add-on ID
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
daily, repository post-commit, repository post-update
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.
Generates a unique URL for your component you can include in HTML pages to localize them. See Traducir HTML y JavaScript mediante la CDN de Weblate for more details.
Quitar cadenas vacías
Nuevo en la versión 4.4.
- Add-on ID
weblate.cleanup.blank
- Configuración
This add-on has no configuration.
- Disparadores
repository post-commit, repository post-update
Quita las cadenas que carecen de traducción de los archivos de traducción.
Use this to not have any empty strings in translation files (for example if your localization library displays them as missing instead of falling back to the source string).
Limpieza de archivos de traducción
- Add-on ID
weblate.cleanup.generic
- Configuración
This add-on has no configuration.
- Disparadores
repository pre-commit, repository post-update
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
- Add-on ID
weblate.consistency.languages
- Configuración
This add-on has no configuration.
- Disparadores
daily, repository post-add
Garantiza que en todos los componentes de un proyecto se utilice el mismo conjunto de idiomas.
Missing languages are checked once every 24 hours, and when new languages are added in Weblate.
Unlike most others, this add-on affects the whole project.
Consejo
Auto-translate the newly added strings with Traducción automática.
Detección de componentes
- Add-on ID
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
Regular expression to filter translation files against when scanning for file mask.
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
repository post-update
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.
Triggered each time the VCS is updated, and otherwise similar to
the import_project
management command. This way you can track
multiple translation components within one VCS.
The matching is done using regular expressions enabling complex configuration, but some knowledge is required to do so. Some examples for common use cases can be found in the add-on help section.
Once you hit Save, a preview of matching components will be presented, from where you can check whether the configuration actually matches your needs:

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 Manage ↓ Settings ↓
Version control system) of each respective component.
This saves time with configuration and system resources too.
Ver también
Edición en masa
Nuevo en la versión 3.11.
- Add-on ID
weblate.flags.bulk
- Configuración
q
Consulta
state
Estado que definir
Available choices:
-1
– Do not change10
– Needs editing20
– Translated30
– Approvedadd_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
component update
Edite los indicadores, las etiquetas o los estados de las cadenas de manera masiva.
Automate labeling by starting out with the search query NOT has:label
and add labels till all strings have all required labels.
Other automated operations for Weblate metadata can also be done.
Ejemplos:
Consulta de búsqueda |
|
---|---|
Etiquetas que añadir |
recent |
Consulta de búsqueda |
|
---|---|
Indicadores de traducción que añadir |
|
Marcar traducciones sin cambios como «Necesitan edición»
Nuevo en la versión 3.1.
- Add-on ID
weblate.flags.same_edit
- Configuración
This add-on has no configuration.
- Disparadores
unit post-create
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
You might also want to tighthen the Traducción no modificada check by adding
strict-same
flag to Indicadores de traducción.
Ver también
Marcar cadenas de origen nuevas como «Necesitan edición»
- Add-on ID
weblate.flags.source_edit
- Configuración
This add-on has no configuration.
- Disparadores
unit post-create
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
Marcar traducciones nuevas como «Necesitan edición»
- Add-on ID
weblate.flags.target_edit
- Configuración
This add-on has no configuration.
- Disparadores
unit post-create
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
Generador de estadísticas
- Add-on ID
weblate.generate.generate
- Configuración
filename
Nombre del archivo generado
template
Contenido del archivo generado
- Disparadores
repository pre-commit
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 }}", }
Ver también
Prerrellenar traducción con original
Nuevo en la versión 4.11.
- Add-on ID
weblate.generate.prefill
- Configuración
This add-on has no configuration.
- Disparadores
component update, daily
Completa las cadenas de traducción con las de origen.
All untranslated strings in the component will be filled with the source string, and marked as needing edit. Use this when you can not have empty strings in the translation files.
Generación de pseudorregiones
Nuevo en la versión 4.5.
- Add-on ID
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
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.
- Disparadores
component update, daily
Genera una traducción mediante la adición automática de un prefijo y un sufijo a las cadenas de origen.
Pseudolocales are useful to find strings that are not prepared for localization. This is done by altering all translatable source strings to make it easy to spot unaltered strings when running the application in the pseudolocale language.
Finding strings whose localized counterparts might not fit the layout is also possible.
Using the variable parts makes it possible to look for strings which might not
fit into the user interface after the localization - it extends the text based
on the source string length. The variable parts are repeated by length of the
text multiplied by the multiplier. For example Hello world
with variable
suffix _
and variable multiplier of 1 becomes Hello world___________
-
the suffix is repeated once for each character in the source string.
Las cadenas se generarán acorde a la pauta siguiente:
Fixed string prefix Variable string prefix Source string Variable string suffix Fixed string suffix
Consejo
You can use real languages for testing, but there are dedicated pseudolocales available in Weblate - en_XA and ar_XB.
Consejo
You can use this add-on to start translation to a new locale of an existing language or similar language. Once you add the translation to the component, follow to the add-on. Example: If you have fr and want to start fr_CA translation, simply set fr as the source, fr_CA as the target, and leave the prefix and suffix blank.
Uninstall the add-on once you have the new translation filled to prevent Weblate from changing the translations made after the copying.
Contribuidores en comentarios
- Add-on ID
weblate.gettext.authors
- Configuración
This add-on has no configuration.
- Disparadores
repository pre-commit
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@cihar.com>, 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»
- Add-on ID
weblate.gettext.configure
- Configuración
This add-on has no configuration.
- Disparadores
repository post-add, daily
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
- Add-on ID
weblate.gettext.customize
- 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.
Available choices:
77
– Wrap lines at 77 characters and at newlines65535
– Only wrap lines at newlines-1
– No line wrapping- Disparadores
storage post-load
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
- Add-on ID
weblate.gettext.linguas
- Configuración
This add-on has no configuration.
- Disparadores
repository post-add, daily
Actualiza el archivo LINGUAS al añadir una traducción nueva.
Generar archivos MO
- Add-on ID
weblate.gettext.mo
- Configuración
path
Ruta del archivo MO generado
Si no se especifica, se utilizará la ubicación del archivo PO.
- Disparadores
repository pre-commit
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.
Actualizar archivos PO para que coincidan con POT (msgmerge)
- Add-on ID
weblate.gettext.msgmerge
- Configuración
previous
Conservar los msgid anteriores de las cadenas traducidas
no_location
Quitar ubicaciones de cadenas traducidas
fuzzy
Usar coincidencia aproximada
- Disparadores
repository post-update
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.
Triggered whenever new changes are pulled from the upstream repository. Most msgmerge command-line options can be set up through the add-on configuration.
Concentrar consignas de Git
- Add-on ID
weblate.git.squash
- Configuración
squash
Concentración de consignas
Available choices:
all
– All commits into onelanguage
– Per languagefile
– Per fileauthor
– Per authorappend_trailers
Añadir renglones finales al mensaje de consigna concentrada
Los renglones finales se asemejan a cabeceras de correo RFC 822 y se añaden a la sección libre de un mensaje de consigna. Tales renglones pueden contener indicaciones como: «Co-authored-by: …».
commit_message
Mensaje de consigna
Este mensaje de consigna se utilizará en sustitución de los mensajes combinados de las consignas concentradas.
- Disparadores
repository post-commit
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.
The original commit messages can optionally be overridden with a custom commit message.
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
- Add-on ID
weblate.json.customize
- Configuración
sort_keys
Ordenar claves de JSON
indent
Sangría JSON
style
Estilo de sangría de JSON
Available choices:
spaces
– Spacestabs
– Tabs- Disparadores
storage post-load
Permite ajustar el comportamiento de salida de JSON, por ejemplo, sangría o clasificación.
Format the Java properties file
- Add-on ID
weblate.properties.sort
- Configuración
This add-on has no configuration.
- Disparadores
repository pre-commit
Formats and sorts the Java properties file.
Consolidates newlines to Unix ones.
Uppercase formatting of Unicode escape sequences (in case they are present).
Strips blank lines and comments.
Sorts the strings by the keys.
Drops duplicate strings.
Retiro de comentarios obsoletos
Nuevo en la versión 3.7.
- Add-on ID
weblate.removal.comments
- Configuración
age
Días para guardar
- Disparadores
daily
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
Nuevo en la versión 3.7.
- Add-on ID
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
daily
Fijar un plazo para el borrado de sugerencias.
Can be very useful in connection with suggestion voting (see Revisión por pares) to remove suggestions which don’t receive enough positive votes in a given timeframe.
Actualizar archivos RESX
Nuevo en la versión 3.9.
- Add-on ID
weblate.resx.update
- Configuración
This add-on has no configuration.
- Disparadores
repository post-update
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 if you only want to remove stale translation keys.
Personalizar salida de YAML
Nuevo en la versión 3.10.2.
- Add-on ID
weblate.yaml.customize
- Configuración
indent
Sangría YAML
width
Ajuste de renglones largos
Available choices:
80
– Wrap lines at 80 chars100
– Wrap lines at 100 chars120
– Wrap lines at 120 chars180
– Wrap lines at 180 chars65535
– No line wrappingline_break
Saltos de renglón
Available choices:
dos
– DOS (\r\n)unix
– UNIX (\n)mac
– MAC (\r)- Disparadores
storage post-load
Permite ajustar el comportamiento de salida de YAML, como la longitud de los renglones y los saltos.
Customizing list of add-ons
The list of add-ons is configured by WEBLATE_ADDONS
.
To add another add-on, simply include the absolute class name in this setting.
Writing add-on
You can write your own add-ons too, create a subclass of
weblate.addons.base.BaseAddon
to define the add-on metadata, and
then implement a callback to do the processing.
Ver también
Executing scripts from add-on
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 © 2012–2022 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
"""Example pre commit script."""
from django.utils.translation import gettext_lazy as _
from weblate.addons.events import EVENT_PRE_COMMIT
from weblate.addons.scripts import BaseScriptAddon
class ExamplePreAddon(BaseScriptAddon):
# Event used to trigger the script
events = (EVENT_PRE_COMMIT,)
# Name of the addon, has to be unique
name = "weblate.example.pre"
# Verbose name and long descrption
verbose = _("Execute script before commit")
description = _("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 Custom quality checks, add-ons and auto-fixes.
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
Nuevo en la versión 2.11.
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
Nuevo en la versión 2.14.
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
Nuevo en la versión 3.9.
Componente slug utilizado para construir la URL.
- WL_PROJECT_SLUG
Nuevo en la versión 3.9.
Slug del proyecto utilizado para construir la URL.
- WL_COMPONENT_NAME
Nuevo en la versión 3.9.
Nombre del componente.
- WL_PROJECT_NAME
Nuevo en la versión 3.9.
Nombre del proyecto.
- WL_COMPONENT_URL
Nuevo en la versión 3.9.
URL del componente.
- WL_ENGAGE_URL
Nuevo en la versión 3.9.
URL de participación del proyecto.
Ver también
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.