Comandos de gerência

Nota

Executar comandos de gerenciamento sob um usuário diferente daquele que executa seu servidor web pode resultar em arquivos recebendo permissões erradas, por favor, confira Permissões do sistema de arquivos para mais detalhes.

Você encontrará comandos básicos de gerenciamento (disponíveis como ./manage.py nas fontes do Django ou como um conjunto estendido em um script chamado weblate instalável em cima do Weblate).

Invocando comandos de gerenciamento

Como mencionado anteriormente, sua invocação depende de como você instalou o Weblate.

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

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

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

Se você estiver usando o código-fonte diretamente (de um tarball ou checkout Git), o script de gerenciamento é ./manage.py disponível nos fontes do Weblate. Para executá-lo:

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 Python environment path), from where you can use it to control Weblate:

weblate list_versions

Para a imagem Docker, o script é instalado como acima e você pode executá-lo usando docker exec:

docker exec --user weblate <container> weblate list_versions

Para docker-compose-plugin o processo é semelhante, você apenas tem que usar docker compose exec:

docker compose exec --user weblate weblate weblate list_versions

Caso precise passar um arquivo para ele, você pode adicionar temporariamente um volume:

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

add_suggestions

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

Importa uma tradução do arquivo para usar como sugestão para a tradução fornecida. Ele pula traduções duplicadas; apenas os diferentes são adicionados.

--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).

Exemplo:

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

auto_translate

weblate auto_translate <project> <component> <language>

Alterado na versão 4.6: Adicionado parâmetro para o modo de tradução.

Executa tradução automática com base em outras traduções de 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 Inconsistente).

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

Exemplo:

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

backup

weblate backup

Runs configured backups synchronously, without using Celery. It first updates the settings and database backup dumps in DATA_DIR, then runs the selected Borg backup service or services.

--list

Lists configured backup service IDs.

--service ID

Runs one backup service by ID.

--all

Runs all enabled backup services.

Use Django’s standard --verbosity 2 option to show backup service output. Failed backup service output is shown even without increased verbosity.

Exemplos:

weblate backup --list
weblate backup --service 1 --verbosity 2
weblate backup --all

For Docker Compose deployments, you can stop the regular Weblate container and run the command in a one-off container using docker compose run. The database and configured backup storage still need to be available.

docker compose stop weblate
docker compose run --rm --user weblate weblate weblate backup --list
docker compose run --rm --user weblate weblate weblate backup --service 1 --verbosity 2

benchmark

weblate benchmark

Imports given content into Weblate, useful for benchmarking.

Example of performance profiling
# Run benchmark with a profiling
python -m cProfile -o benchmark.prof ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip

# Convert to SVG for visualization
uvx gprof2dot -f pstats benchmark.prof | dot -Tsvg -o benchmark.svg

# Display SVG
firefox ./benchmark.svg
Exemplo de perfil de memória
# Run benchmark under memray
uvx memray run ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip

# Render the profile
uvx memray flamegraph ./memray-manage.py.2554179.bin

# Display it
fixefox memray-flamegraph-manage.py.2554179.html

billing_demo

weblate billing_demo

Adicionado na versão 5.15.

Creates a demo billing project. Can be executed multiple times to add additional invoices and billing events.

This can be useful when developing Weblate. Needs Cobrança installed.

celery_queues

weblate celery_queues

Exibe o tamanho das filas de tarefas do Celery.

checkgit

weblate checkgit <project|project/component>

Imprime o status atual do repositório Git de backend.

Você pode definir qual projeto ou componente atualizar (por exemplo, weblate/application) ou usar --all para atualizar todos os componentes existentes.

commitgit

weblate commitgit <project|project/component>

Faz commit de todas as alterações pendentes possíveis para o repositório Git de backend.

Você pode definir qual projeto ou componente atualizar (por exemplo, weblate/application) ou usar --all para atualizar todos os componentes existentes, ou use --file-format para filtrar com base no formato do arquivo.

commit_pending

weblate commit_pending <project|project/component>

Faz commit de alterações pendentes anteriores a uma determinada idade.

Você pode definir qual projeto ou componente atualizar (por exemplo, weblate/application) ou usar --all para atualizar todos os componentes existentes.

--age HOURS

Age in hours for committing. If not specified the value configured in Configuração de componente is used.

Nota

Isso é realizado automaticamente em segundo plano pelo Weblate, de modo que não há necessidade real de invocar isso manualmente, além de forçar um commit anterior do que o especificado por Configuração de componente.

cleanuptrans

weblate cleanuptrans

Limpa verificações e sugestões de tradução órfãs. Normalmente, não há necessidade de executá-lo manualmente, pois as limpezas acontecem automaticamente em segundo plano.

cleanup_memory

weblate cleanup_memory

Adicionado na versão 5.13.

Removes all obsolete entries with pending status from the translation memory.

cleanup_ssh_keys

weblate cleanup_ssh_keys

Adicionado na versão 4.9.1.

Executa a remoção das chaves de host SSH armazenadas:

  • Remove as chaves RSA descontinuadas do GitHub que podem causar problemas de conexão com o GitHub.

  • Remove entradas duplicadas nas chaves do host.

Ver também

Repositórios SSH

createadmin

weblate createadmin

Cria uma conta admin com uma senha aleatória, a menos que seja especificada.

--password PASSWORD

Provides a password on the command-line, to not generate a random one.

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

Exporta um arquivo JSON contendo conteúdo de memória de tradução do Weblate.

dumpuserdata

weblate dumpuserdata <file.json>

Despeja dados de usuário em um arquivo para uso posterior por importuserdata.

Dica

Isso é útil ao migrar ou mesclar instâncias do Weblate.

import_demo

weblate import_demo

Adicionado na versão 4.1.

Cria um projeto de demonstração com componentes baseados em <https://github.com/WeblateOrg/demo>. Certifique-se de que as tarefas de Celery estejam em execução antes de executar este comando.

Isso pode ser útil ao desenvolver Weblate.

--delete

Removes existing demo project.

import_json

weblate import_json <json-file>

Importação em lote de componentes com base em dados JSON.

A estrutura do arquivo JSON importado corresponde basicamente ao objeto do componente (consulte GET /api/components/(string:project)/(string:component)/). Você deve incluir os campos name e filemask.

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

Exemplo de arquivo 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 também

import_memory

import_memory

weblate import_memory <file>

Importa um arquivo para a memória de tradução do Weblate.

Os formatos de arquivo compatíveis são TMX, JSON, XLIFF, PO, CSV.

Especificar um idioma de origem e um de destino pode ser necessário para formatos diferentes de JSON e TMX.

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

--source-language SOURCE_LANG

Specifies the source language for imported translations. Typically needed for formats where the languages cannot be determined from the file itself.

--target-language TARGET_LANG

Specifies the target language for imported translations. Typically needed for formats where the languages cannot be determined from the file itself.

import_project

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

Importa componentes em lote para o projeto com base na máscara do arquivo. Ele é baseado no complemento Descoberta de componente, portanto, talvez seja melhor usá-lo.

<project> é o nome de um projeto existente, para o qual os componentes devem ser importados.

O <gitrepo> define a URL do repositório Git a ser usada, e <branch> significa o ramo Git. Para importar componentes de tradução adicionais de um componente Weblate existente, use uma URL weblate://<project>/<component> para o <gitrepo>.

O <filemask> define a descoberta de arquivos para o repositório. Pode ser simplificado usando curingas ou pode usar todo o poder das expressões regulares.

A correspondência simples usa ** para o nome do componente e * para o idioma, por exemplo: **/*.po

A expressão regular deve conter grupos chamados component e language. Por exemplo: (?P<language>[^/]*)/(?P<component>[^-/]*)\.po.

A importação corresponde aos componentes existentes com base em arquivos e adiciona aqueles que não existem. Isso não altera os já existentes.

--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 arquivo de localização), the default is auto-detection.

--language-regex REGEX

You can specify language filtering (see Configuração de componente) 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.

Para dar alguns exemplos, vamos tentar importar dois projetos.

Primeiro as traduções do Manual do Debian, onde cada idioma separou uma pasta com as traduções de cada capítulo:

weblate import_project \
    debian-handbook \
    https://salsa.debian.org/hertzog/debian-handbook.git \
    bullseye/main \
    '*/**.po'

Em seguida, a ferramenta Tanaguru, onde o formato do arquivo precisa ser especificado, junto com o modelo de arquivo base, e como todos os componentes e traduções estão localizados em uma única pasta:

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

Um exemplo mais complexo de análise de nomes de arquivo para obter o componente correto e o idioma de um nome de arquivo como 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$'

Filtrando apenas traduções em um idioma escolhido:

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

Importando a documentação do Sphinx dividida em vários arquivos:

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

A documentação de importação do Sphinx dividida em vários arquivos e diretórios:

$ 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 também

Exemplos mais detalhados podem ser encontrados no capítulo Começando com a internacionalização, alternativamente você pode querer usar import_json.

import_projectbackup

weblate import_projectbackup <project_name> <project_slug> <username> <filename>

Adicionado na versão 5.10.

Importa Backups de nível de projeto.

Dica

Normalmente, é mais confortável importar o projeto quando Adicionando projetos e componentes de tradução.

importuserdata

weblate importuserdata <file.json>

Importa dados do usuário de um arquivo criado por dumpuserdata.

importusers

weblate importusers --check <file.json>

Importa usuários do despejo JSON do banco de dados auth_users do Django.

--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 site using:

./manage.py dumpdata auth.User > users.json

Dica

Use dumpuserdata for dumping data from other Weblate server as that includes user settings as well.

Ver também

Migrando de Pootle

install_addon

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

Instala um complemento para um conjunto de componentes.

--addon ADDON

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

--configuration CONFIG

JSON encoded configuration of an add-on.

--update

Update the existing add-on configuration.

Você pode definir em qual projeto ou componente instalar o complemento (por exemplo weblate/application) ou usar --all para incluir todos os componentes existentes.

To install Gerar arquivos MO for all components:

weblate install_addon --addon weblate.gettext.mo --configuration '{"fuzzy": true}' --update --all

Ver também

Complementos

install_machinery

Adicionado na versão 4.18.

weblate install_machinery --service SERVICE

Instala um serviço de sugestões automáticas em todo o site.

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

Para instalar DeepL:

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

list_addons

weblate list_addons

Lista os complementos no reStructuredText como um modelo para Complementos.

--sections {events,addons,parameters}

Filter the generated output to just the add-on event sections, the built-in add-on sections, or the shared add-on parameter sections. If omitted, all generated sections are shown.

list_permissions

weblate list_permissions

Lista as permissões em reStructuredText como um modelo para Controle de acesso.

list_checks

weblate list_checks

Lista verificações de qualidade em reStructuredText como um modelo para Verificações e correções, Verificações e correções.

--sections {checks,flags}

Filter the generated output to just the quality check sections or the shared check flag sections. If omitted, all generated sections are shown.

Nota

Using --output requires selecting exactly one value in --sections so each generated snippet is written to its own file. This matches the Contribuir com a documentação do Weblate workflow and the make -C docs update-docs targets.

list_languages

weblate list_languages <locale>

Lista os idiomas suportados na marcação MediaWiki – códigos de idioma, nomes em inglês e nomes localizados.

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

list_machinery

weblate list_machinery

Lista os serviços de sugestões automáticas no reStructuredText como um modelo para Sugestões automáticas.

list_translators

weblate list_translators <project|project/component>

Lista tradutores por idioma contribuído para o projeto em questão:

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

List names by language code instead of language name.

Você pode definir qual projeto ou componente usar (por exemplo, weblate/application) ou usar --all para listar os tradutores de todos os componentes existentes.

list_versions

weblate list_versions

Lista todas as dependências do Weblate e suas versões.

list_file_format_params

weblate list_file_format_params

Lista os parâmetros do formato do arquivo.

list_change_events

weblate list_change_events

Lists all possible change event types.

list_format_features

weblate list_format_features

Generates RST documentation snippets describing the supported features for every file format.

The command generates one file for every format, that can be found in the specified output directory.

--output PATH

Directory where the format feature snippets will be written.

Nota

The generated documentation files are meant to be included in documentation sources such as Formatos de arquivo de localização. See also weblate/formats/management/commands/list_format_features.py for customization and merging logic.

loadpo

weblate loadpo <project|project/component>

Recarrega traduções de disco (por exemplo, caso você tenha feito algumas atualizações no repositório VCS).

--force

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

--lang LANGUAGE

Limit processing to a single language.

Você pode definir qual projeto ou componente atualizar (por exemplo, weblate/application) ou usar --all para atualizar todos os componentes existentes.

Nota

Você raramente precisa invocar isso, o Weblate carregará automaticamente os arquivos alterados para cada atualização do VCS. Isso é necessário no caso de você alterar manualmente um repositório Weblate VCS subjacente ou em alguns casos especiais após uma atualização.

lock_translation

weblate lock_translation <project|project/component>

Impede outras traduções de um componente.

Dica

Útil caso você queira fazer alguma manutenção no repositório subjacente.

Você pode definir qual projeto ou componente atualizar (por exemplo, weblate/application) ou usar --all para atualizar todos os componentes existentes.

Ver também

unlock_translation

migrate

weblate migrate

Migra o banco de dados para o esquema atual do Weblate. As opções de linha de comando são descritas em Django migrate.

Dica

Caso você queira executar uma instalação não interativamente, você pode usar weblate migrate --noinput e, em seguida, criar um usuário administrativo usando createadmin comando.

move_language

weblate move_language source target

Permite mesclar o conteúdo do idioma. Isso é útil ao atualizar para uma nova versão que contém apelidos para idiomas anteriormente desconhecidos que foram criados com o sufixo (generated). Ele move todo o conteúdo do idioma fonte source para o de destino target.

Exemplo:

weblate move_language cze cs

Depois de mover o conteúdo, você deve verificar se sobrou algo (isto está sujeito a condições de corrida quando alguém atualiza o repositório enquanto isso) e remover o idioma (generated).

pushgit

weblate pushgit <project|project/component>

Faz um push das alterações com commit feito para o repositório VCS upstream.

--force-commit

Force commits any pending changes, prior to pushing.

Você pode definir qual projeto ou componente atualizar (por exemplo, weblate/application) ou usar --all para atualizar todos os componentes existentes.

Nota

O Weblate faz o push das mudanças automaticamente se Enviar ao fazer commit na Configuração de componente está ativada, que é o padrão.

unlock_translation

weblate unlock_translation <project|project/component>

Desbloqueia um determinado componente, disponibilizando-o para tradução.

Dica

Útil caso você queira fazer alguma manutenção no repositório subjacente.

Você pode definir qual projeto ou componente atualizar (por exemplo, weblate/application) ou usar --all para atualizar todos os componentes existentes.

Ver também

lock_translation

setupgroups

weblate setupgroups

Configura grupos padrão e, opcionalmente, atribui todos os usuários a esse grupo padrão.

--no-privs-update

Turns off automatic updating of existing groups (only adds new ones).

--no-projects-update

Prevents automatic updates of groups for existing projects. This allows adding newly added groups to existing projects, see Controle de acesso do projeto.

Ver também

Lista de privilégios

setuplang

weblate setuplang

Atualiza a lista de idiomas definidos no Weblate.

--no-update

Turns off automatic updates of existing languages (only adds new ones).

updatechecks

weblate updatechecks <project|project/component>

Atualiza todas as verificações para todos os textos.

Dica

Útil para atualizações que fazem grandes mudanças nas verificações.

Você pode definir qual projeto ou componente atualizar (por exemplo, weblate/application) ou usar --all para atualizar todos os componentes existentes.

Nota

As verificações são recalculadas regularmente pelo Weblate em segundo plano; a frequência pode ser configurada por meio da BACKGROUND_TASKS.

updategit

weblate updategit <project|project/component>

Busca repositórios VCS remotos e atualiza o cache interno.

Você pode definir qual projeto ou componente atualizar (por exemplo, weblate/application) ou usar --all para atualizar todos os componentes existentes.

Nota

Normalmente, é melhor configurar hooks no repositório para acionar o Ganchos de notificação, em vez de acionar regularmente as atualizações pelo updategit.