Extensões

Novo na versão 2.19.

Extensões fornecem maneiras para personalizar fluxo de trabalho de tradução. Elas podem ser instaladas na visão de componentes de tradução e trabalhar nos bastidores. Gestão de extensões está disponível do menu GerirExtensões dos respetivos componentes de tradução para administradores.

../_images/addons.png

Extensões embutidas

Tradução automática

Novo na versão 3.9.

Traduz automaticamente as cadeias utilizando a tradução automática ou outros componentes.

Esta extensão é acionada automaticamente quando novas cadeias aparecem num componente.

CDN de localização JavaScript

Novo na versão 4.2.

Publishes translations into content delivery network for use in JavaScript or HTML localization.

Pode ser usado para localizar páginas HTML estáticas ou para carregar a localização no código JavaScript.

Após a instalação, a extensão gera um URL exclusivo ao seu componente que pode incluir nos documentos HTML para localizar. Veja Traduzir HTML e JavaScript a usar CDN Weblate para mais detalhes.

Remover cadeias em branco

Novo na versão 4.4.

Remove cadeias não traduzidas dos ficheiros de tradução.

Use this if you do not want empty strings to appear in translation files (for example when your localization library displays them as empty strings instead of falling back to the source string).

Limpeza de ficheiros de tradução

Atualize todos os ficheiros de tradução para coincidirem com o ficheiro monolingue base. Para a maioria dos formatos de ficheiro, significa remover as chaves de tradução obsoletas que já não existem no ficheiro base.

Consistência do idioma

Garante que todos os componentes de um projeto tenham traduções para todos idiomas adicionados para tradução.

Cria traduções vazias em idiomas que têm componentes não adicionados.

Os idiomas ausentes são verificados uma vez a cada 24 horas e quando um novo idioma é adicionado no Weblate.

Ao contrário da maioria dos outros, esta extensão afeta todo o projeto.

Dica

Traduza as cadeias recém-adicionadas automaticamente com Tradução automática.

Descoberta de componentes

Adiciona ou remove automaticamente componentes do projeto com base em alterações de ficheiros no sistema de controlo de versão.

É acionada em todas as atualizações do VCS, de outra forma semelhante ao comando de gestão import_project. Desta forma, pode rastrear vários componentes de tradução dentro de um VCS.

Crie um componente principal menos provável de desaparecer no futuro e outros vão empregar Weblate internal URLs para ele como uma configuração VCS e vão configurá-lo para encontrar todos os componentes nele.

A correspondência é feita por expressões regulares, onde o poder é uma compensação para a complexidade na configuração. Alguns exemplos para casos de uso comum encontram-se na secção de ajuda de extensões.

Uma vez que acertar Gravar, uma prévia dos componentes correspondentes será apresentada, de onde pode verificar se a configuração realmente corresponde às suas necessidades:

../_images/addon-discovery.png

Veja também

Template markup

Edição em massa

Novo na versão 3.11.

Edição em série de marcadores, etiquetas, ou estados para cadeias.

Automatizar a etiquetagem de novos textos pode ser útil (comece com consulta de pesquisa NOT has:label e adicione etiquetas desejadas até que todas as cadeias sejam devidamente etiquetados). Também pode realizar quaisquer outras operações automatizadas para metadados do Weblate.

Exemplos::

Automatically add label to new strings

Search query

NOT has:label

Etiqueta a adicionar

recent

Marking all Ficheiros de metadados da App Store changelog entries read-only

Search query

language:en AND key:changelogs/

Bandeiras de tradução para adicionar

read-only

Veja também

Edição em massa

Marcar as traduções inalteradas como «Precisa de edição»

Novo na versão 3.1.

Sempre que uma nova cadeia traduzível é importada de VCS e corresponde a uma cadeia fonte, esta é marcada como precisa de edição no Weblate. Isto é especialmente útil para os formatos de ficheiro que incluem todas as cadeias , mesmo que não traduzidas.

Marcar as novas cadeias fonte como «Precisa de edição»

Sempre que uma nova cadeia é importada de VCS, esta é marcada como precisa de edição no Weblate. Deste modo pode filtrar e editar facilmente as cadeias fonte escritas pelos programadores.

Marcar as novas traduções como «Precisa de edição»

Sempre que uma nova cadeia de tradução é importada de VCS, esta é marcada como precisa de edição no Weblate. Deste modo pode filtrar e editar facilmente as traduções criadas pelos programadores.

Gerador de estatísticas

Gera um ficheiro que contêm a informação detalhada sobre o estado da tradução.

Pode usar um modelo do Django, tanto de nome de ficheiro e conteúdo, veja Markdown para uma descrição detalhada de markup.

Por exemplo, a geração de ficheiro de resumo para cada tradução:

Nome do ficheiro gerado

locale/{{ language_code }}.json

Conteúdo
{
   "language": "{{ language_code }}",
   "strings": "{{ stats.all }}",
   "translated": "{{ stats.translated }}",
   "last_changed": "{{ stats.last_changed }}",
   "last_author": "{{ stats.last_author }}",
}

Veja também

Template markup

Contribuintes em comentários

Atualiza o comentário no cabeçalho do ficheiro PO para incluir nomes de colaboradores e anos de contribuições.

O cabeçalho do ficheiro PO conterá uma lista de contribuidores e anos contribuídos:

# Michal Čihař <michal@cihar.com>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.

Atualizar a variável ALL_LINGUAS no ficheiro «configure»

Atualiza a variável ALL_LINGUAS em ficheiros configure, configure.in ou configure.ac, quando uma nova tradução é adicionada.

Personalizar a saída gettext

Permite personalizar o comportamento da saída gettext, por exemplo, a quebra de linhas.

Oferece as seguintes opções:

  • Quebrar linhas em 77 caracteres e em novas linhas

  • Quebrar as linhas apenas nas novas linhas

  • Sem quebra de linhas

Nota

Por predefinição, gettext quebra linhas em 77 caracteres e em novas linhas. Com o parâmetro --no-wrap, ele quebra apenas em novas linhas.

Atualizar ficheiro LINGUAS

Atualiza o ficheiro LINGUAS quando é adicionada uma nova tradução.

Gerar ficheiros MO

Gera automaticamente um ficheiro MO para cada ficheiro PO alterado.

The location of the generated MO file can be customized and the field for it uses Template markup.

Atualizar ficheiros PO para coincidir com POT (msgmerge)

Updates all PO files (as configured by File mask) to match the POT file (as configured by Modelo para novas traduções) using msgmerge.

This addon is triggered whenever new changes are pulled from the upstream repository. You can configure most of the msgmerge command line options through the addon configuration.

Squash de commits git

Comprimir as submissões Git antes de enviar as alterações.

Pode escolher um dos modos seguintes:

Novo na versão 3.4.

  • Todos os commits num só

  • Por idioma

  • Por ficheiro

Novo na versão 3.5.

  • Por autor

As mensagens de commit originais são mantidas, mas a autoria é perdida a menos que Por autor seja selecionada ou a mensagem de commit, seja personalizada para incluí-la.

Novo na versão 4.1.

As mensagens de commit originais podem opcionalmente ser substituídas por uma mensagem de commit personalizada.

Linhas finalizadoras (linhas de commits como Co-authored-by: ...) podem opcionalmente ser removidas das mensagens de commit originais e anexadas ao final da mensagem de compromisso após um squash. Isto também gera crédito próprio Co-authored-by: para cada tradutor.

Personalizar a saída JSON

Permite ajustar o comportamento da saída JSON, por exemplo, a indentação ou a ordenação.

Formata as propriedades do ficheiro Java

Ordena o ficheiro de propriedades Java.

Purga de comentários obsoletos

Novo na versão 3.7.

Definir um prazo para a remoção de comentários.

Isso pode ser útil para remover comentários antigos que podem ter ficado desatualizados. Use com cuidado, pois comentários sendo velhos não significam que perderam a importância deles.

Purga de sugestões obsoletas

Novo na versão 3.7.

Definir um prazo para a remoção de sugestões.

Isso pode ser muito útil em relação à votação em sugestão (ver Revisão por pares) para remover sugestões que não recebem votos positivos suficientes num determinado período.

Atualizar ficheiros RESX

Novo na versão 3.9.

Atualize todos os ficheiros de tradução para que correspondam ao ficheiro base monolingue original. As cadeias não utilizadas são removidas e as cadeias novas são adicionadas como cópias da cadeia fonte.

Dica

Use Limpeza de ficheiros de tradução se só quiser remover chaves de tradução obsoletas.

Personalizar a saída YAML

Novo na versão 3.10.2.

Permite ajustar o comportamento da saída YAML, por exemplo, o comprimento de linha ou novas linhas.

Personalizar a lista de extensões

A lista de extensões é configurada por WEBLATE_ADDONS. Para adicionar outra extensão, basta incluir o nome absoluto da classe nesta configuração.

Escrever extensões

You can write your own addons too, all you need to do is subclass weblate.addons.base.BaseAddon, define the addon metadata and implement a callback which will do the processing.

Veja também

Developing addons

Executar scripts de extensões

Extenções também podem ser usados para executar scripts externos. Isto estava integrado no Weblate, mas agora tem que escrever código para embrulhar o seu script numa extensão.

#
# Copyright © 2012 - 2021 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#
"""Example pre commit script."""


from django.utils.translation import gettext_lazy as _

from weblate.addons.events import EVENT_PRE_COMMIT
from weblate.addons.scripts import BaseScriptAddon


class ExamplePreAddon(BaseScriptAddon):
    # Event used to trigger the script
    events = (EVENT_PRE_COMMIT,)
    # Name of the addon, has to be unique
    name = "weblate.example.pre"
    # Verbose name and long descrption
    verbose = _("Execute script before commit")
    description = _("This addon executes a script.")

    # Script to execute
    script = "/bin/true"
    # File to add in commit (for pre commit event)
    # does not have to be set
    add_file = "po/{{ language_code }}.po"

Para instruções de instalação, veja Verificações de qualidade personalizadas, extensões e correções automáticas.

repositório VCS para qualquer componente.

Além disso, as seguintes variáveis de ambiente estão disponíveis:

WL_VCS

Sistema de controle de versão usado.

WL_REPO

URL do repositório upstream.

WL_PATH

Caminho absoluto ao repositório VCS.

WL_BRANCH

Novo na versão 2.11.

Ramo do repositório configurado no componente atual.

WL_FILEMASK

Máscara de ficheiro para componente atual.

WL_TEMPLATE

Nome de ficheiro de modelo para traduções monolínguas (pode estar vazio).

WL_NEW_BASE

Novo na versão 2.14.

Nome do ficheiro usado para criar novas traduções (pode estar vazio).

WL_FILE_FORMAT

Formato de ficheiro usado no componente atual.

WL_LANGUAGE

Idioma da tradução processada atualmente (não disponível para hooks de nível de componente).

WL_PREVIOUS_HEAD

HEAD anterior na atualização (disponível apenas ao executar o hook de atualização após).

WL_COMPONENT_SLUG

Novo na versão 3.9.

Slug do componente usado para construir a URL.

WL_PROJECT_SLUG

Novo na versão 3.9.

Slug de projeto usado para construir a URL.

WL_COMPONENT_NAME

Novo na versão 3.9.

Nome de componente.

WL_PROJECT_NAME

Novo na versão 3.9.

Nome do projeto.

WL_COMPONENT_URL

Novo na versão 3.9.

URL do componente.

WL_ENGAGE_URL

Novo na versão 3.9.

URL de engajamento do projeto.

Processamento de repositório pós-atualização

O processamento do repositório pós-atualização pode ser usado para atualizar ficheiros de tradução quando a fonte VCS do upstream alterar. Para conseguir isso, lembre-se que o Weblate só vê ficheiros dos quais se fez commit com o VCS, então precisa fazer commit das alterações como parte do script.

Por exemplo, com Gulp, pode fazê-lo a usar o código seguinte:

#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json

Processamento pré-commit de traduções

Use o script de commit para fazer alterações automaticamente na tradução antes de fazer commit dela ao repositório.

É passado como um parâmetro único que consiste o nome de uma tradução atual.