Ajuda:Extensão:Translate/Inseríveis
- Como traduzir
- Melhores práticas
- Estatísticas e relatórios
- Garantia de qualidade
- Estados de grupo de mensagens
- Tradução off-line
- Glossário
Administradores de tradução
- Como preparar uma página para tradução
- Administração da tradução de páginas
- Tradução de elementos não estruturados
- Gerenciamento de grupo
- Mover página traduzível
- Importar traduções via CSV
- Trabalhando com pacotes de mensagens
Administradores e desenvolvedores
As cadeias de caracteres traduzíveis geralmente contêm marcações que devem ser mantidas como estão na tradução. Digitar tais marcações pode ser um processo lento e difícil, dado que caracteres especiais estão quase sempre presentes nelas. Um inserível (insertable) é um pedaço da marcação que é apresentado ao tradutor como um botão ou outro elemento da interface. Ao clicar no botão, esse pedaço de marcação é inserido na tradução, logo após a posição atual do cursor de texto nela.
Cada grupo de mensagens é capaz de ter uma InsertablesSuggester.
Essa classe é responsável por gerar uma lista de Insertables.
Cada Insertable é composto de três partes:
- # O que exibir ao usuário
- # O que inserir antes da posição do cursor de texto na tradução ou o que substituir no lugar do conteúdo selecionado.
- # O que inserir após a posição do cursor de texto na tradução
A extensão Traduzir vem com a MediaWikiInsertablesSuggester integrada nela.
Sugestores para outros tipos de conteúdo podem ser encontrados no repositório Git do translatewiki.net.
Interface do usuário

Configuração
Aqui está um exemplo de mudança à configuração em um arquivo YAML,
INSERTABLES:
# inserível pré-embalado
- class: RegexInsertablesSuggester
params: "/\$[a-zA-Z0-9]+/"
# inserível personalizado
- class: FreeColInsertablesSuggester
AUTOLOAD:
FreeColInsertablesSuggester: Suggester.php
Insertáveis pré-fornecidos / empacotados
A seguir, uma lista de inseríveis empacotados.
HtmlTagInsertablesSuggester
Esse inserível exibirá sugestões para todas as tags HTML encontradas dentro da string de origem.
Por exemplo:
- Mensagem: This <a href="abc">link</a>link takes you to the home page.
- Sugeridor exibido:
<a href="abc"></a>
MediaWikiInsertablesSuggester
Esse inserível exibirá várias sugestões para mensagens de wikitexto relacionadas ao MediaWiki. Isso inclui sugestões para,
- Parâmetros como
$1userque estão presentes nas mensagens de Ajuda da API. PLURALS,GENDER,GRAMMAR- Sugestões de tags HTML.
NumericalParameterInsertablesSuggester
Esse inserível exibirá sugestões de parâmetros numéricos, como $1, $2, $3
RegexInsertablesSuggester
Esse inserível é um inserível de uso geral que pode ser usado para exibir sugestões com base em uma expressão regular personalizada.
Exemplo:
# exemplo simples
# combina e sugere $abc
- class: RegexInsertablesSuggester
params: "/\$[a-zA-Z0-9]+/"
# exemplo complexo usando capturas nomeadas.
# resultados [abc](ac)
# sugeridor exibido [](ac)
- class: RegexInsertablesSuggester
params:
regex: /(?<pre>\[)[^]]+(?<post>\]\([^)]+\))/
display: $pre $post
pre: $pre
post: $post
Descrição do parâmetro,
- regex – A regex a ser usada para identificar insertables. Obrigatório.
- display – O que mostrar ao usuário. Não obrigatório, o padrão é o valor correspondente.
- pre – O que inserir antes da seleção ou substituir a seleção se
postpermanecer vazio Não obrigatório, o padrão é o valor correspondente. - post – O que inserir após a seleção. Não obrigatório, o padrão é o valor correspondente.
TranslatablePageInsertablesSuggester
Usado principalmente em páginas traduzíveis para fornecer um sugeridor para variáveis como $abc.
UrlInsertablesSuggester
Esse inserível localiza URLs (que normalmente não são alteradas nas traduções) e as sugere para inserção.
Adição de um inserível personalizado
Caso os inseríveis existentes não sejam suficientes para atender às suas necessidades, é possível adicionar inseríveis personalizados.
Aqui está um exemplo de compatibilização de inseríveis para um grupo de mensagens baseado em arquivo: FreeCol. O arquivo YAML foi reduzido por conveniência. As linhas adicionadas estão destacadas.
FreeCol.yaml:
---
BASIC:
id: out-freecol
label: FreeCol
description: "A strategy game"
namespace: NS_FREECOL
class: FileBasedMessageGroup
FILES:
class: JavaFFS
sourcePattern: %GROUPROOT%/freecol/data/strings/FreeColMessages_%CODE%.properties
definitionFile: %GROUPROOT%/freecol/data/strings/FreeColMessages.properties
targetPattern: freecol/data/strings/FreeColMessages_%CODE%.properties
INSERTABLES:
- class: FreeColInsertablesSuggester
AUTOLOAD:
FreeColInsertablesSuggester: Suggester.php
Suggester.php:
class FreecolInsertablesSuggester {
public function getInsertables( $text ) {
$insertables = array();
$matches = array();
// Localizar variáveis do formato %name%
// Essa é a mesma expressão regular usada em Checker.php
preg_match_all( '/%[a-zA-Z_]+%/', $text, $matches, PREG_SET_ORDER );
$new = array_map( function( $match ) {
// $match[0] é uma correspondência completa, e não temos nenhuma submatch aqui
// Como queremos que o cursor esteja no final da inserção, colocamos tudo no campo "pre".
return new Insertable( $match[0], $match[0] );
}, $matches );
return $insertables;
}
}
Os parâmetros à Insertable são:
class Insertable {
/**
* @param string $display O que mostrar ao usuário
* @param string $pre O que inserir antes da seleção ou substituir a seleção se $post permanecer vazio
* @param string $post O que inserir após a seleção
*/
public function __construct( $display, $pre = '', $post = '' ) {
$this->display = $display;
$this->pre = $pre;
$this->post = $post;
}
[...]
}