Órdenes de gestión#

Nota

Running management commands under a different user than the one running your webserver can result in files getting wrong permissions, please check Permisos del sistema de archivos for more details.

You will find basic management commands (available as ./manage.py in the Django sources, or as an extended set in a script called weblate installable atop Weblate).

Invocar órdenes de gestión#

Como ya se mencionó, la invocación dependerá de cómo instaló Weblate.

If using virtualenv for Weblate, you can either specify the full path to weblate, or activate the virtualenv prior to invoking it:

# Direct invocation
~/weblate-env/bin/weblate

# Activating virtualenv adds it to search path
. ~/weblate-env/bin/activate
weblate

If you are using source code directly (either from a tarball or Git checkout), the management script is ./manage.py available in the Weblate sources. To run it:

python ./manage.py list_versions

If you’ve installed Weblate using the pip installer, or by using the ./setup.py script, the weblate is installed to your path (or virtualenv path), from where you can use it to control Weblate:

weblate list_versions

For the Docker image, the script is installed like above, and you can run it using docker exec:

docker exec --user weblate <container> weblate list_versions

For docker-compose-plugin the process is similar, you just have to use docker compose exec:

docker compose exec --user weblate weblate weblate list_versions

In case you need to pass it a file, you can temporary add a volume:

docker compose exec --user weblate /tmp:/tmp weblate weblate importusers /tmp/users.json

For docker-compose the process is similar, you just have to use docker-compose exec:

docker-compose exec --user weblate weblate weblate list_versions

In case you need to pass it a file, you can temporary add a volume:

docker-compose exec --user weblate /tmp:/tmp weblate weblate importusers /tmp/users.json

add_suggestions#

weblate add_suggestions <project> <component> <language> <file>#

Imports a translation from the file to use as a suggestion for the given translation. It skips duplicated translations; only different ones are added.

--author USER@EXAMPLE.COM#

E-mail of author for the suggestions. This user has to exist prior to importing (you can create one in the admin interface if needed).

Ejemplo:

weblate --author michal@cihar.com add_suggestions weblate application cs /tmp/suggestions-cs.po

auto_translate#

weblate auto_translate <project> <component> <language>#

Distinto en la versión 4.6: Parámetro agregado para el modo de traducción.

Realiza traducciones automáticas basadas en las traducciones de otros componentes.

--source PROJECT/COMPONENT#

Specifies the component to use as source available for translation. If not specified all components in the project are used.

--user USERNAME#

Specify username listed as author of the translations. «Anonymous user» is used if not specified.

--overwrite#

Whether to overwrite existing translations.

--inconsistent#

Whether to overwrite existing translations that are inconsistent (see Incoherente).

--add#

Automatically add language if a given translation does not exist.

--mt MT#

Use machine translation instead of other components as machine translations.

--threshold THRESHOLD#

Similarity threshold for machine translation, defaults to 80.

--mode MODE#

Specify translation mode, default is translate but fuzzy or suggest can be used.

Ejemplo:

weblate auto_translate --user nijel --inconsistent --source weblate/application weblate website cs

celery_queues#

weblate celery_queues#

Displays length of Celery task queues.

checkgit#

weblate checkgit <project|project/component>#

Prints current state of the back-end Git repository.

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components.

commitgit#

weblate commitgit <project|project/component>#

Commits any possible pending changes to the back-end Git repository.

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components, or use --file-format to filter based on the file format.

commit_pending#

weblate commit_pending <project|project/component>#

Commits pending changes older than a given age.

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components.

--age HOURS#

Age in hours for committing. If not specified the value configured in Configuración de componentes is used.

Nota

This is automatically performed in the background by Weblate, so there no real need to invoke this manually, besides forcing an earlier commit than specified by Configuración de componentes.

cleanuptrans#

weblate cleanuptrans#

Cleans up orphaned checks and translation suggestions. There is normally no need to run this manually, as the cleanups happen automatically in the background.

cleanup_ssh_keys#

weblate cleanup_ssh_keys#

Nuevo en la versión 4.9.1.

Performs cleanup of stored SSH host keys:

  • Removes deprecated RSA keys for GitHub which might cause issues connecting to GitHub.

  • Removes duplicate entries in host keys.

Ver también

Repositorios SSH

createadmin#

weblate createadmin#

Creates an admin account with a random password, unless it is specified.

--password PASSWORD#

Permite proporcionar una contraseña mediante la línea de órdenes, de modo que no se genere una aleatoria.

--no-password#

Do not set password, this can be useful with –update.

--username USERNAME#

Use the given name instead of admin.

--email USER@EXAMPLE.COM#

Specify the admin e-mail address.

--name#

Specify the admin name (visible).

--update#

Update the existing user (you can use this to change passwords).

dump_memory#

weblate dump_memory#

Export a JSON file containing Weblate Translation Memory content.

dumpuserdata#

weblate dumpuserdata <file.json>#

Dumps userdata to a file for later use by importuserdata.

Consejo

Esto resulta útil cuando hay que migrar o fusionar instalaciones de Weblate.

import_demo#

weblate import_demo#

Nuevo en la versión 4.1.

Creates a demo project with components based on <https://github.com/WeblateOrg/demo>. Make sure the celery tasks are running before running this command.

Puede ser de utilidad si está desarrollando Weblate.

import_json#

weblate import_json <json-file>#

Batch import of components based on JSON data.

The imported JSON file structure pretty much corresponds to the component object (see GET /api/components/(string:project)/(string:component)/). You have to include the name and filemask fields.

--project PROJECT#

Specifies where the components will be imported from.

--main-component COMPONENT#

Use the given VCS repository from this component for all of them.

--ignore#

Skip (already) imported components.

--update#

Update (already) imported components.

Ejemplo de archivo JSON:

[
  {
    "slug": "po",
    "name": "Gettext PO",
    "file_format": "po",
    "filemask": "po/*.po",
    "new_lang": "none"
  },
  {
    "name": "Android",
    "filemask": "android/values-*/strings.xml",
    "template": "android/values/strings.xml",
    "repo": "weblate://test/test",
    "file_format": "aresource"
  }
]

Ver también

import_memory

import_memory#

weblate import_memory <file>#

Importa un archivo TMX o JSON en la memoria de traducción de Weblate.

--language-map LANGMAP#

Allows mapping languages in the TMX to the Weblate translation memory. The language codes are mapped after normalization usually done by Weblate.

--language-map en_US:en will for example import all en_US strings as en ones.

This can be useful in case your TMX file locales happen not to match what you use in Weblate.

import_project#

weblate import_project <project> <gitrepo> <branch> <filemask>#

Batch imports components into project based on the file mask. It is based on the Detección de componentes add-on, so you might want to use that instead.

<project> names an existing project, into which the components are to be imported.

The <gitrepo> defines the Git repository URL to use, and <branch> signifies the Git branch. To import additional translation components from an existing Weblate component, use a weblate://<project>/<component> URL for the <gitrepo>.

The <filemask> defines file discovery for the repository. It can be either be made simple using wildcards, or it can use the full power of regular expressions.

The simple matching uses ** for component name and * for language, for example: **/*.po

The regular expression has to contain groups named component and language. For example: (?P<language>[^/]*)/(?P<component>[^-/]*)\.po

The import matches existing components based on files and adds the ones that do not exist. It does not change already existing ones.

--name-template TEMPLATE#

Customize the name of a component using Django template syntax.

For example: Documentation: {{ component }}

--base-file-template TEMPLATE#

Customize the base file for monolingual translations.

For example: {{ component }}/res/values/string.xml

--new-base-template TEMPLATE#

Customize the base file for addition of new translations.

For example: {{ component }}/ts/en.ts

--file-format FORMAT#

You can also specify the file format to use (see Formatos de archivo admitidos), the default is auto-detection.

--language-regex REGEX#

You can specify language filtering (see Configuración de componentes) with this parameter. It has to be a valid regular expression.

--main-component#

You can specify which component will be chosen as the main one—the one actually containing the VCS repository.

--license NAME#

Specify the overall, project or component translation license.

--license-url URL#

Specify the URL where the translation license is to be found.

--vcs NAME#

In case you need to specify which version control system to use, you can do it here. The default version control is Git.

To give you some examples, let’s try importing two projects.

First The Debian Handbook translations, where each language has separate a folder with the translations of each chapter:

weblate import_project \
    debian-handbook \
    git://anonscm.debian.org/debian-handbook/debian-handbook.git \
    squeeze/master \
    '*/**.po'

Then the Tanaguru tool, where the file format needs be specified, along with the base file template, and how all components and translations are located in single folder:

weblate import_project \
    --file-format=properties \
    --base-file-template=web-app/tgol-web-app/src/main/resources/i18n/%s-I18N.properties \
    tanaguru \
    https://github.com/Tanaguru/Tanaguru \
    master \
    web-app/tgol-web-app/src/main/resources/i18n/**-I18N_*.properties

More complex example of parsing of filenames to get the correct component and language out of a filename like src/security/Numerous_security_holes_in_0.10.1.de.po:

weblate import_project \
    tails \
    git://git.tails.boum.org/tails master \
    'wiki/src/security/(?P<component>.*)\.(?P<language>[^.]*)\.po$'

Filtering only translations in a chosen language:

./manage import_project \
    --language-regex '^(cs|sk)$' \
    weblate \
    https://github.com/WeblateOrg/weblate.git \
    'weblate/locale/*/LC_MESSAGES/**.po'

Importing Sphinx documentation split to multiple files:

$ weblate import_project --name-template 'Documentation: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/**.po'

Importing Sphinx documentation split to multiple files and directories:

$ weblate import_project --name-template 'Directory 1: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir1/**.po'
$ weblate import_project --name-template 'Directory 2: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir2/**.po'

Ver también

More detailed examples can be found in the Starting with internationalization chapter, alternatively you might want to use import_json.

importuserdata#

weblate importuserdata <file.json>#

Imports user data from a file created by dumpuserdata.

importusers#

weblate importusers --check <file.json>#

Imports users from JSON dump of the Django auth_users database.

--check#

With this option it will just check whether a given file can be imported and report possible conflicts arising from usernames or e-mails.

You can dump users from the existing Django installation using:

weblate dumpdata auth.User > users.json

install_addon#

weblate install_addon --addon ADDON <project|project/component>#

Instala un complemento a un conjunto de componentes.

--addon ADDON#

Name of the add-on to install. For example weblate.gettext.customize.

--configuration CONFIG#

Configuración codificada en JSON de un complemento.

--update#

Actualice la configuración del complemento existente.

You can either define which project or component to install the add-on in (for example weblate/application), or use --all to include all existing components.

To install Personalizar la salida de gettext for all components:

weblate install_addon --addon weblate.gettext.customize --configuration '{"width": -1}' --update --all

Ver también

Complementos

install_machinery#

Nuevo en la versión 4.18.

weblate install_machinery --service SERVICE#

Installs an site-wide automatic suggestion service.

--service SERVICE#

Name of the service to install. For example deepl.

--configuration CONFIG#

JSON encoded configuration of a service.

--update#

Update the existing service configuration.

To install DeepL:

weblate install_service --service deepl --configuration '{"key": "x", "url": "https://api.deepl.com/v2/"}' --update

list_languages#

weblate list_languages <locale>#

Lists supported languages in MediaWiki markup - language codes, English names and localized names.

This is used to generate <https://wiki.l10n.cz/Slovn%C3%ADk_s_n%C3%A1zvy_jazyk%C5%AF>.

list_translators#

weblate list_translators <project|project/component>#

Lists translators by contributed language for the given project:

[French]
Jean Dupont <jean.dupont@example.com>
[English]
John Doe <jd@example.com>
--language-code#

List names by language code instead of language name.

You can either define which project or component to use (for example weblate/application), or use --all to list translators from all existing components.

list_versions#

weblate list_versions#

Lists all Weblate dependencies and their versions.

loadpo#

weblate loadpo <project|project/component>#

Reloads translations from disk (for example in case you have done some updates in the VCS repository).

--force#

Force update, even if the files should be up-to-date.

--lang LANGUAGE#

Limit processing to a single language.

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components.

Nota

You seldom need to invoke this, Weblate will automatically load changed files for every VCS update. This is needed in case you manually changed an underlying Weblate VCS repository or in some special cases following an upgrade.

lock_translation#

weblate lock_translation <project|project/component>#

Prevents further translation of a component.

Consejo

Useful in case you want to do some maintenance on the underlying repository.

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components.

Ver también

unlock_translation

migrate#

weblate migrate#

Migrates database to current Weblate schema. The command line options are described at Django migrate.

Consejo

In case you want to run an installation non interactively, you can use weblate migrate --noinput, and then create an admin user using createadmin command.

move_language#

weblate move_language source target#

Allows you to merge language content. This is useful when updating to a new version which contains aliases for previously unknown languages that have been created with the (generated) suffix. It moves all content from the source language to the target one.

Ejemplo:

weblate move_language cze cs

After moving the content, you should check whether there is anything left (this is subject to race conditions when somebody updates the repository meanwhile) and remove the (generated) language.

pushgit#

weblate pushgit <project|project/component>#

Pushes committed changes to the upstream VCS repository.

--force-commit#

Force commits any pending changes, prior to pushing.

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components.

Nota

Weblate pushes changes automatically if Enviar al consignar in Configuración de componentes is turned on, which is the default.

unlock_translation#

weblate unlock_translation <project|project/component>#

Desbloquea el componente que se indique para que se pueda traducir.

Consejo

Useful in case you want to do some maintenance on the underlying repository.

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components.

Ver también

lock_translation

setupgroups#

weblate setupgroups#

Configura los grupos predeterminados y, opcionalmente, asigna todos los usuarios a ese grupo predeterminado.

--no-privs-update#

Desactiva la actualización automática de los grupos existentes (solamente añade los nuevos).

--no-projects-update#

Prevents automatic updates of groups for existing projects. This allows adding newly added groups to existing projects, see Control de acceso al proyecto.

setuplang#

weblate setuplang#

Actualiza la lista de idiomas definidos en Weblate.

--no-update#

Desactiva la actualización automática de los idiomas existentes (solamente añade los nuevos).

updatechecks#

weblate updatechecks <project|project/component>#

Actualiza todas las comprobaciones para todas las cadenas.

Consejo

Useful for upgrades which do major changes to checks.

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components.

Nota

Checks are recalculated regularly by Weblate in the background, the frequency can be configured via BACKGROUND_TASKS.

updategit#

weblate updategit <project|project/component>#

Fetches remote VCS repositories and updates the internal cache.

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components.

Nota

Usually it is better to configure hooks in the repository to trigger Actuadores de notificación, instead of regular triggering the updates by updategit.