Comandos de gerência

Nota

Executar comandos de gestão sob um utilizador diferente daquele que executa o seu servidor web pode resultar em ficheiros a receber permissões erradas, por favor, confira Permissões do sistema de ficheiros para mais detalhes.

Encontrará comandos básicos de gestão (disponíveis como ./manage.py nas fontes do Django ou como um conjunto estendido num script chamado weblate instalável em cima do Weblate).

Invocando comandos de gestão

Como mencionado anteriormente, a invocação depende de como instalou o Weblate.

Se estiver a usar o virtualenv para Weblate, 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 estiver a usar o código-fonte diretamente (de um tarball ou checkout Git), o script de gestão é . /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 virtualenv path), from where you can use it to control Weblate:

weblate list_versions

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

docker exec --user weblate <container> weblate list_versions

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

docker-compose exec --user weblate weblate weblate list_versions

Caso precise passar-le um ficheiro, 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 fcheiro para usar como sugestão para a tradução fornecida. Pula traduções duplicadas; apenas os diferentes são adicionados.

--author USER@EXAMPLE.COM

E-mail do autor para sugestões. Este utilizador 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 utilizador listado como autor das traduções. «Utilizador 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, a predefiniçã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

Veja também

Tradução automática

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.

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.

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.

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.

Veja também

Repositórios SSH

createadmin

weblate createadmin

Cria uma conta admin com uma palavra-passe aleatória, a menos que seja especificada.

--password PASSWORD

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

--no-password

Não define a palavra-passe, 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 utilizador existente (pode usar isto para alterar palavras-passe).

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 ficheiro JSON que contem o conteúdo de memória de tradução do Weblate.

dumpuserdata

weblate dumpuserdata <file.json>

Despeja dados de utilizador num ficheiro 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>. Certifique-se de que as tarefas de Celery estejam em execução antes de executar este comando.

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 ficheiro JSON importado corresponde basicamente ao objeto do componente (consulte GET /api/components/(string:project)/(string:component)/). 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 ficheiro 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"
  }
]

Veja também

import_memory

import_memory

weblate import_memory <file>

Novo na versão 2.20.

Importa um ficheiro 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 ficheiro TMX não correspondam ao que 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 componentes, 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 ficheiros.

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

O <filemask> define a descoberta de ficheiro 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 ficheiros 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 ficheiro base para traduções monolíngues.

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

--new-base-template TEMPLATE

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

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

--file-format FORMAT

Também pode especificar o formato de ficheiro a ser usado (veja Formatos de ficheiros suportados), a predefinição é a detecção automática.

--language-regex REGEX

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

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

--vcs NAME

Caso precise especificar qual sistema de controle de versão usar, pode fazê-lo aqui. O controle de versão predefinido é 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 ficheiro precisa ser especificado, junto com o modelo de ficheiro base e como todos os componentes e traduções estão localizados numa ú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 ficheiro para obter o componente correto e o idioma de um nome de ficheiro 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 num 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 ficheiros:

$ 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 ficheiros 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'

Veja também

Exemplos mais detalhados encontram-se no capítulo Comea çar com a internacionalização, alternativamente quererá usar import_json.

importuserdata

weblate importuserdata <file.json>

Importa dados do utilizador de um ficheiro criado por dumpuserdata

importusers

weblate importusers --check <file.json>

Importa utilizadores do despejo JSON do banco de dados auth_users do Django.

--check

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

Pode descartar os utilizadores 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 do complemento a ser instalado. 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.

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 a saída gettext para todos os componentes:

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

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

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 as versões deles.

loadpo

weblate loadpo <project|project/component>

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

--force

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

--lang LANGUAGE

Limita o processamento a um único idioma.

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

Nota

Raramente precisa invocar isso, o Weblate carregará automaticamente os ficheiros alterados para cada atualização do VCS. Isso é necessário no caso de 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 queira fazer alguma manutenção no repositório subjacente.

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

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

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 submeter na Configuração de componente está ativada, que é a predefinição.

unlock_translation

weblate unlock_translation <project|project/component>

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

Dica

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

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

Veja também

lock_translation

setupgroups

weblate setupgroups

Configura grupos predefinidos e, opcionalmente, atribui todos os utilizadores a esse grupo predefinido.

--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 Controlo de acesso ao projeto.

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.

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.

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 Hooks de notificação, ao invés da pesquisa regular por updategit.