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.

Se estiver usando o virtualenv para Weblate, você pode especificar o caminho completo para weblate ou ativar o virtualenv antes de invocá-lo:

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

# Activating virtualenv 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

Se você instalou o Weblate usando o instalador pip ou pip3, ou usando o script . /setup.py, o weblate é instalado em seu caminho (ou caminho virtualenv), de onde você pode usá-lo para controlar o 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 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>

Novo na versão 2.5.

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 do autor para sugestões. Este usuário deve existir antes da importação (você pode criar um na interface administrativa, se necessário).

Exemplo:

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

auto_translate

weblate auto_translate <project> <component> <language>

Novo na versão 2.5.

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

Especifica o componente a ser usado como fonte disponível para tradução. Se não for especificado, todos os componentes do projeto serão usados.

--user USERNAME

Especifica o nome de usuário listado como autor das traduções. “Usuário anônimo” é usado se não for especificado.

--overwrite

Se deve sobrescrever as traduções existentes.

--inconsistent

Se deve substituir as traduções existentes que são inconsistentes (veja Inconsistente).

--add

Adiciona automaticamente o idioma se uma determinada tradução não existir.

--mt MT

Use a tradução automática em vez de outros componentes como traduções de máquina.

--threshold THRESHOLD

Limite de similaridade para tradução de máquina, o padrão é 80.

--mode MODE

Especifica o modo de tradução tendo como o padrão translate, mas fuzzy ou suggest pode ser usado.

Exemplo:

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

celery_queues

weblate celery_queues

Novo na versão 3.7.

Exibe o tamanho das filas de tarefas do Celery.

checkgit

weblate checkgit <project|project/component>

Imprime o estado 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.

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

Idade em horas para fazer commit. Se não for especificado, o valor configurado em Configuração de componente é usado.

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_ssh_keys

weblate cleanup_ssh_keys

Novo 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

Fornece uma senha na linha de comando, para não gerar uma senha aleatória.

--no-password

Não define a senha, isso pode ser útil com –update.

--username USERNAME

Use o nome dado em vez de admin.

--email USER@EXAMPLE.COM

Especifica o endereço de e-mail do administrador.

--name

Especifica o nome (visível) do administrador.

--update

Atualiza o usuário existente (você pode usar isso para alterar as senhas).

Alterado na versão 2.9: Adicionados os parâmetros --username, --email, --name e --update.

dump_memory

weblate dump_memory

Novo na versão 2.20.

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

Novo na versão 4.1.

Cria um projeto de demonstração com componentes baseados em <https://github.com/WeblateOrg/demo>.

Isso pode ser útil ao desenvolver Weblate.

import_json

weblate import_json <json-file>

Novo na versão 2.7.

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

Especifica de onde os componentes serão importados.

--main-component COMPONENT

Usa o repositório VCS fornecido deste componente para todos eles.

--ignore

Pula os componentes (já) importados.

--update

Atualiza os componentes (já) importados.

Alterado na versão 2.9: Os parâmetros --ignore e --update existem para lidar com componentes já importados.

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>

Novo na versão 2.20.

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

--language-map LANGMAP

Permite mapear idiomas no TMX para a memória de tradução do Weblate. Os códigos de idioma são mapeados após a normalização geralmente feita pelo Weblate.

--language-map en_US:en vai, por exemplo, importar todos os textos en_US como en.

Isso pode ser útil caso as localidades do seu arquivo TMX não correspondam ao que você usa no Weblate.

import_project

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

Alterado na versão 3.0: O comando import_project agora é baseado na extensão Descoberta de componente, levando a algumas mudanças no comportamento e quais parâmetros são aceitos.

Executa importação em lote de componentes para o projeto com base na máscara de arquivo.

<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

Personaliza o nome de um componente usando a sintaxe do modelo Django.

Por exemplo: Documentation: {{ component }}

--base-file-template TEMPLATE

Personaliza o arquivo base para traduções monolíngues.

Por exemplo: {{ component }}/res/values/string.xml

--new-base-template TEMPLATE

Personaliza o arquivo base para adicionar novas traduções.

Por exemplo: {{ component }}/ts/en.ts

--file-format FORMAT

Você também pode especificar o formato de arquivo a ser usado (veja Formatos de arquivos suportados), o padrão é a detecção automática.

--language-regex REGEX

Você pode especificar a filtragem de idioma (veja Configuração de componente) com este parâmetro. Tem que ser uma expressão regular válida.

--main-component

Você pode especificar qual componente será escolhido como o principal – aquele que realmente contém o repositório VCS.

--license NAME

Especifica a licença de tradução geral, projeto ou componente.

--license-url URL

Especifica a URL onde a licença de tradução pode ser encontrada.

--vcs NAME

Caso você precise especificar qual sistema de controle de versão usar, você pode fazê-lo aqui. O controle de versão padrão é 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 \
    git://anonscm.debian.org/debian-handbook/debian-handbook.git \
    squeeze/master \
    '*/**.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.

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

Com esta opção irá apenas verificar se determinado arquivo pode ser importado e reportar possíveis conflitos decorrentes de nomes de usuários ou e-mails.

Você pode descartar os usuários da instalação existente do Django usando:

weblate dumpdata auth.User > users.json

install_addon

Novo na versão 3.2.

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

Instala uma extensão para um conjunto de componentes.

--addon ADDON

Nome da extensão a ser instalada. Por exemplo, weblate.gettext.customize.

--configuration CONFIG

Configuração codificada em JSON de uma extensão.

--update

Atualiza a configuração existente da extensão.

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

Para instalar Personalizar saída do gettext para todos os componentes:

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

Ver também

Extensões

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.

Isso é usado para gerar <https://wiki.l10n.cz/Slovn%C3%ADk_s_n%C3%A1zvy_jazyk%C5%AF>.

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

Lista os nomes pelo código do idioma em vez do nome do idioma.

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.

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

Força a atualização, mesmo que os arquivos devam estar atualizados.

--lang LANGUAGE

Limita o processamento a um único idioma.

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

move_language

weblate move_language source target

Novo na versão 3.0.

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

Força o commit de todas as alterações pendentes, antes de fazer o push.

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

Desativa a atualização automática de grupos existentes (apenas adiciona novos).

--no-projects-update

Impede atualizações automáticas de grupos para projetos existentes. Isso permite adicionar grupos recém-adicionados a projetos existentes, consulte 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

Desativa as atualizações automáticas de idiomas existentes (apenas adiciona novos).

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.

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 os ganchos no repositório para acionar Ganchos de notificação, ao invés da pesquisa regular por updategit.