Proyectos de traducción

Organización de traducción

Weblate organiza el contenido traducible del sistema de control de versiones del proyecto o los componentes en una estructura semejante a un árbol.

  • The bottom level object is Configuración de proyectos, which should hold all translations belonging together (for example translation of an application in several versions and/or accompanying documentation).

  • On the level above, Configuración de componentes, which is actually the component to translate, you define the VCS repository to use, and the mask of files to translate.

  • Above Configuración de componentes there are individual translations, handled automatically by Weblate as translation files (which match the mask defined in Configuración de componentes) appear in the VCS repository.

Weblate supports a wide range of translation formats (both bilingual and monolingual ones) supported by Translate Toolkit, see Formatos de archivo admitidos.


You can share cloned VCS repositories using URL internos de Weblate. Using this feature is highly recommended when you have many components sharing the same VCS. It improves performance and decreases required disk space.

Añadir proyectos y componentes de traducción

Distinto en la versión 3.2: An interface for adding projects and components is included, and you no longer have to use La interfaz administrativa de Django.

Distinto en la versión 3.4: The process of adding components is now multi staged, with automated discovery of most parameters.

Based on your permissions, new translation projects and components can be created. It is always permitted for users with the Add new projects permission, and if your instance uses billing (e.g. like see Facturación), you can also create those based on your plans allowance from the user account that manages billing.

Puede ver su plan de facturación actual en una página separada:


The project creation can be initiated from there, or using the menu in the navigation bar, filling in basic info about the translation project to complete addition of it:


After creating the project, you are taken directly to the project page:


Creating a new translation component can be initiated via a single click there. The process of creating a component is multi-staged and automatically detects most translation parameters. There are several approaches to creating component:

Desde control de versiones

Crea el componente a partir de un repositorio de control de versiones remoto.

Desde componente existente

Creates additional component to existing one by choosing different files.

Rama adicional

Creates additional component to existing one, just for different branch.

Cargar archivos de traducción

Upload translation files to Weblate in case you do not have version control or do not want to integrate it with Weblate. You can later update the content using the web interface or API.

Traducir documento

Cargue un documento único y tradúzcalo.

Comenzar de cero

Create blank translation project and add strings manually.

Once you have existing translation components, you can also easily add new ones for additional files or branches using same repository.

Primero debe suplir el nombre y la ubicación del repositorio:


En la próxima página verá una lista de recursos traducibles detectados:


Como último paso, revise la información del componente de traducción y supla datos opcionales:


Configuración de proyectos

Create a translation project and then add a new component for translation in it. The project is like a shelf, in which real translations are stacked. All components in the same project share suggestions and their dictionary; the translations are also automatically propagated through all components in a single project (unless turned off in the component configuration), see Memory Management.

These basic attributes set up and inform translators of a project:

Nombre del proyecto

Verbose project name, used to display the project name.

«Slug» del proyecto

Project name suitable for URLs.

Sitio web del proyecto

URL where translators can find more info about the project.

Lista de correo

Mailing list where translators can discuss or comment translations.

Instrucciones de traducción

URL to more site with more detailed instructions for translators.

Set Language-Team header

Whether Weblate should manage the Language-Team header (this is a GNU gettext only feature right now).

Utilizar memoria de traducción compartida

Whether to use shared translation memory, see Memoria de traducción compartida for more details.

Contribuir a la memoria de traducción compartida

Whether to contribute to shared translation memory, see Memoria de traducción compartida for more details.

Control de acceso

Configure per project access control, see Control de acceso al proyecto for more details.

Default value can be changed by DEFAULT_ACCESS_CONTROL.

Activar revisiones

Enable review workflow for translations, see Revisores dedicados.

Activar revisiones de origen

Enable review workflow for source strings, see Source strings reviews.

Alias de idiomas

Define language codes mapping when importing translations into Weblate. Use this when language codes are inconsistent in your repositories and you want to get a consistent view in Weblate or in case you want to use non-standard naming of your translation files.

The typical use case might be mapping American English to English: en_US:en

Multiple mappings to be separated by comma: en_GB:en,en_US:en

Using non standard code: ia_FOO:ia


The language codes are mapped when matching the translation files and the matches are case sensitive, so make sure you use the source language codes in same form as used in the filenames.

Ver también

Parsing language codes

Configuración de componentes

A component is a grouping of something for translation. You enter a VCS repository location and file mask for which files you want translated, and Weblate automatically fetches from this VCS, and finds all matching translatable files.

You can find some examples of typical configurations in the Formatos de archivo admitidos.


Es aconsejable mantener un tamaño razonable para los componentes de traducción. Divídala en secciones que tengan sentido para su proyecto (por ejemplo, por aplicaciones o complementos, capítulos o sitios web).

Weblate puede manejar con facilidad traducciones de decenas de miles de cadenas, pero es más difícil distribuir el trabajo y coordinar los traductores al utilizar componentes de tales dimensiones.

Should the language definition for a translation be missing, an empty definition is created and named as «cs_CZ (generated)». You should adjust the definition and report this back to the Weblate authors, so that the missing languages can be included in next release.

The component contains all important parameters for working with the VCS, and for getting translations out of it:

Nombre de componente

Verbose component name, used to display the component name.

«Slug» del componente

Component name suitable for URLs.

Proyecto del componente

Configuración de proyectos where the component belongs.

Sistema de control de versiones

VCS to use, see Integración de control de versiones for details.

Repositorio de código fuente

VCS repository used to pull changes.

Ver también

See Accessing repositories for more details on specifying URLs.


This can either be a real VCS URL or weblate://project/component indicating that the repository should be shared with another component. See URL internos de Weblate for more details.

URL de envío al repositorio

Repository URL used for pushing. This setting is used only for Git and Mercurial and push support is turned off for these when this is empty.

Ver también

See Accessing repositories for more details on how to specify a repository URL and Enviar cambios efectuados en Weblate for more details on pushing changes from Weblate.

Explorador del repositorio

URL of repository browser used to display source files (location of used messages). When empty, no such links will be generated. You can use Template markup.

For example on GitHub, use something like:{{branch}}/{{filename}}#L{{line}}

In case your paths are relative to different folder, you might want to strip leading directory by parentdir filter (see Template markup):{{branch}}/{{filename|parentdir}}#L{{line}}

URL de repositorio exportado

URL where changes made by Weblate are exported. This is important when Regionalización continua is not used, or when there is a need to manually merge changes. You can use Git exporter to automate this for Git repositories.

Rama del repositorio

Which branch to checkout from the VCS, and where to look for translations.

Rama a la que enviar

Branch for pushing changes, leave empty to use Rama del repositorio.


This is currently only supported for Git, GitLab and GitHub, it is ignored for other VCS integrations.

File mask

Mask of files to translate, including path. It should include one «*» replacing language code (see Language definitions for info on how this is processed). In case your repository contains more than one translation file (e.g. more gettext domains), you need to create a component for each of them.

For example po/*.po or locale/*/LC_MESSAGES/django.po.

In case your filename contains special characters such as [, ], these need to be escaped as [[] or []].

Archivo de base monolingüe

Base file containing string definitions for Componentes monolingües.

Editar archivo de base

Whether to allow editing the base file for Componentes monolingües.

Archivo de idioma intermediario

Intermediate language file for Componentes monolingües. In most cases this is a translation file provided by developers and is used when creating actual source strings.

When set, the source translation is based on this file, but all others are based on Archivo de base monolingüe. In case the string is not translated in source translation, translating to other languages is prohibited. This provides Quality gateway for the source strings.

Plantilla para traducciones nuevas

Base file used to generate new translations, e.g. .pot file with gettext.


In many monolingual formats Weblate starts with blank file by default. Use this in case you want to have all strings present with empty value when creating new translation.

Formato de archivo

Translation file format, see also Formatos de archivo admitidos.

Dirección para informar de errores en las cadenas de origen

Email address used for reporting upstream bugs. This address will also receive notification about any source string comments made in Weblate.

Permitir propagación de traducciones

You can turn off propagation of translations to this component from other components within same project. This really depends on what you are translating, sometimes it’s desirable to have make use of a translation more than once.

It’s usually a good idea to turn this off for monolingual translations, unless you are using the same IDs across the whole project.

Default value can be changed by DEFAULT_TRANSLATION_PROPAGATION.

Activar sugerencias

Whether translation suggestions are accepted for this component.

Votar sugerencias

Turns on vote casting for suggestions, see Votar sugerencias.

Aceptar sugerencias automáticamente

Automatically accept voted suggestions, see Votar sugerencias.

Indicadores de traducción

Customization of quality checks and other Weblate behavior, see Personalizar el comportamiento.

Comprobaciones obligatorias

List of checks which can not be ignored, see Enforcing checks.

Licencia de la traducción

License of the translation (does not need to be the same as the source code license).

Acuerdo de contribuidor

Acuerdo de usuario que debe aprobarse antes de que un usuario pueda traducir este componente.

Adición de traducciones nuevas

How to handle requests for creation of new languages. Available options:

Contactar a responsables

User can select desired language and the project maintainers will receive a notification about this. It is up to them to add (or not) the language to the repository.

Apuntar a la URL con instrucciones de traducción

User is presented a link to page which describes process of starting new translations. Use this in case more formal process is desired (for example forming a team of people before starting actual translation).

Crear archivo de idioma nuevo

User can select language and Weblate automatically creates the file for it and translation can begin.

Desactivar adición de traducciones nuevas

There will be no option for user to start new translation.

Estilo de código de idioma

Personalice el código de idioma utilizado para generar el nombre de archivo de las traducciones creadas por Weblate.

Estilo de fusión

You can configure how updates from the upstream repository are handled. This might not be supported for some VCSs. See Fusionar o cambiar base for more details.

Default value can be changed by DEFAULT_MERGE_STYLE.

Commit, add, delete, merge and addon messages

Message used when committing a translation, see Template markup.


Nombre de consignante

Name of the committer used for Weblate commits, the author will always be the real translator. On some VCSs this might be not supported.

Default value can be changed by DEFAULT_COMMITER_NAME.

Correo electrónico de consignante

Email of committer used for Weblate commits, the author will always be the real translator. On some VCSs this might be not supported. The default value can be changed in DEFAULT_COMMITER_EMAIL.

Enviar al consignar

Whether committed changes should be automatically pushed to the upstream repository. When enabled, the push is initiated once Weblate commits changes to its internal repository (see Consignas diferidas). To actually enable pushing Repository push URL has to be configured as well.

Antigüedad de cambios por consignar

Sets how old changes (in hours) are to get before they are committed by background task or commit_pending management command. All changes in a component are committed once there is at least one older than this period.

Default value can be changed by COMMIT_PENDING_HOURS.

Bloquear al producirse un error

Enables locking the component on repository error (failed pull, push or merge). Locking in this situation avoids adding another conflict which would have to be resolved manually.

The component will be automatically unlocked once there are no repository errors left.

Idioma del código fuente

Language used for source strings. Change this if you are translating from something else than English.


In case you are translating bilingual files from English, but want to be able to do fixes in the English translation as well, you might want to choose English (Developer) as a source language to avoid conflict between name of the source language and existing translation.

For monolingual translations, you can use intermediate translation in this case, see Archivo de idioma intermediario.

Filtro de idioma

Regular expression used to filter the translation when scanning for filemask. This can be used to limit the list of languages managed by Weblate.


You need to list language codes as they appear in the filename.

Some examples of filtering:

Descripción del filtro

Expresión regular

Solo los idiomas seleccionados


Excluir idiomas


Filter two letter codes only


Excluir archivos no lingüísticos


Incluir todos los archivos (predeterminado)


Expresión regular de variantes

Regular expression used to determine the variants of a string, see Variantes de cadenas.


Los propietarios y los gestores del proyecto pueden editar la mayoría de los demás campos, en la interfaz de Weblate.


Se ofrecen primero a los traductores los componentes con mayor prioridad.

Acceso restringido

By default the component is visible to anybody who has access to the project, even if the person can not perform any changes in the component. This makes it easier to keep translation consistency within the project.

Enable this in case you want to grant access to this component explicitly - the project level permissions will not apply and you will have to specify component or component list level permission in order to grant access.

Default value can be changed by DEFAULT_RESTRICTED_COMPONENT.


This applies to project managers as well - please make sure you will not loose access to the component after toggling the status.

Template markup

Weblate uses simple markup language in several places where text rendering is needed. It is based on The Django template language, so it can be quite powerful.

Currently it is used in:

There following variables are available in the component templates:

{{ language_code }}

Código de idioma

{{ language_name }}

Nombre del idioma

{{ component_name }}

Nombre de componente

{{ component_slug }}

«Slug» del componente

{{ project_name }}

Nombre del proyecto

{{ project_slug }}

«Slug» del proyecto

{{ url }}

URL de traducción

{{ filename }}

Nombre de archivo de traducción

{{ stats }}

Translation stats, this has further attributes, examples below.

{{ stats.all }}

Total strings count

{{ stats.fuzzy }}

Count of strings needing review

{{ stats.fuzzy_percent }}

Percent of strings needing review

{{ stats.translated }}

Translated strings count

{{ stats.translated_percent }}

Translated strings percent

{{ stats.allchecks }}

Number of strings with failing checks

{{ stats.allchecks_percent }}

Percent of strings with failing checks

{{ author }}

Author of current commit, available only in the commit scope.

{{ addon_name }}

Name of currently executed addon, available only in the addon commit message.

The following variables are available in the repository browser or editor templates:


current branch


line in file


filename, you can also strip leading parts using the parentdir filter, for example {{filename|parentdir}}

You can combine them with filters:

{{ component|title }}

You can use conditions:

{% if stats.translated_percent > 80 %}Well translated!{% endif %}

There is additional tag available for replacing characters:

{% replace component "-" " " %}

You can combine it with filters:

{% replace component|capfirst "-" " " %}

There are also additional filter to manipulate with filenames:

Directory of a file: {{ filename|dirname }}
File without extension: {{ filename|stripext }}
File in parent dir: {{ filename|parentdir }}
It can be used multiple times:  {{ filename|parentdir|parentdir }}

…and other Django template features.

Importing speed

Fetching VCS repository and importing translations to Weblate can be a lengthy process, depending on size of your translations. Here are some tips:

Optimize configuration

The default configuration is useful for testing and debugging Weblate, while for a production setup, you should do some adjustments. Many of them have quite a big impact on performance. Please check Puesta en marcha de entorno de producción for more details, especially:

Check resource limits

If you are importing huge translations or repositories, you might be hit by resource limitations of your server.

  • Check the amount of free memory, having translation files cached by the operating system will greatly improve performance.

  • Disk operations might be bottleneck if there is a lot of strings to process—the disk is pushed by both Weblate and the database.

  • Additional CPU cores might help improve performance of background tasks (see Tareas en segundo plano con Celery).

Disable unneeded checks

Some quality checks can be quite expensive, and if not needed, can save you some time during import if omitted. See CHECK_LIST for info on configuration.

Creación automática de componentes

In case your project has dozen of translation files (e.g. for different gettext domains, or parts of Android apps), you might want to import them automatically. This can either be achieved from the command line by using import_project or import_json, or by installing the Detección de componentes addon.

To use the addon, you first need to create a component for one translation file (choose the one that is the least likely to be renamed or removed in future), and install the addon on this component.

For the management commands, you need to create a project which will contain all components and then run import_project or import_json.