Help:Extension:Translate/Tradução de elementos não estruturados

This page is a translated version of the page Help:Extension:Translate/Unstructured element translation and the translation is 37% complete.
Outdated translations are marked like this.

Esta página explica como tornar a tradução de mensagens personalizadas de interfaces wiki um pouco mais fácil de gerenciar, com a extensão Translate. Aplica-se a qualquer parte do wiki que você desejar fornecer automaticamente no idioma da interface do usuário. O exemplo mais típico é a barra lateral, porque só pode haver uma, mas o mesmo método pode ser usado para a página principal, se você quer ter todas as suas traduções sob o mesmo título, ou mesmo para predefinições. It applies to any part of the wiki which you want to automatically provide in the user's interface language. The most typical example is the sidebar, because there can be only one, but the same method can be used for the main page, if you want to have all translations of it under the same title, or even for templates.

Este método é aplicável também ao conteúdo wiki onde a tradução da página completa simplesmente não se encaixa, como páginas pesadas na marcação ou predefinições, cuja marcação você não deseja expor para tradutores. Isso tudo gira em torno das mensagens de interface, ou a palavra mágica $int, que permite incluir mensagens de interface em qualquer lugar onde você pode escrever wikitexto. Esta palavra mágica permite substituir automaticamente a mensagem de interface, se for padrão, personalizado ou novo, no idioma da interface de usuário. This all revolves around interface messages, or the {{int:}} magic word, that allows you to include interface messages anywhere where you can write wikitext. This magic word allows to automatically substitute the interface message, whether standard, customized or new, in the user interface language.

Você pode usá-lo para trazer o poder da localização automática da interface do wiki para o conteúdo do wiki, mas não resolve o problema para usuários anônimos, que não podem alterar o idioma da interface, por padrão. Consulte a nota sobre a extensão Universal Language Selector abaixo.

Comparado à tradução de páginas, este método tem algumas desvantagens:

  1. Desenvolvedores da MediaWiki usualmente desencorajam o uso de {{int:}} porque ele fragmenta o cache. Em vez de armazenar uma versão renderizada da página em cachê, quando {{int:}} é usado ele precisa ser armazenado potencialmente em centenas de línguas diferentes.
  2. É mais difícil de configurar, requerendo acesso à configuração wiki.
  3. Não há rastreamento automático de traduções desatualizadas e estatísticas de progresso podem estar fora quando novas mensagens são adicionadas ou deletadas.
  4. Somente administradores wiki podem adicionar mensagens para grupos de mensagem e traduzi-las. Isso significa que o sistema é adequado apenas para páginas que não são alteradas com frequência, ou administradores terão muito trabalho.

The good thing is that it works most of the time and you can still get the job done. There are two tutorials that provide examples of the common use cases. Before that there is a section which details how to set up a message group, something which is always needed when using this method.

Configuração

A server administrator must complete this step. The following snippet needs to be added to LocalSettings.php :

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-sidebar';
	$mg = new WikiMessageGroup( $id, 'sidebar-messages' );
	$mg->setLabel( 'Sidebar' );
	$mg->setDescription( 'Messages used in the sidebar of this wiki.' );
	$list[$id] = $mg;
	return true;
};

The message group id, wiki-sidebar, must be unique, so don't reuse the same id for multiple groups. The second parameter to the WikiMessageGroup constructor, sidebar-messages, refers to the [[MediaWiki:Sidebar-messages]] page. The label is shown in dropdowns and other places where you can select a message group. The description is shown in Special:Translate. Those are the values you can and should change to what suits your wiki when adding a new custom message group.

Tutorial de barra lateral localizada

We assume that the setup step has already been done. Then you should follow the sidebar customization guide carefully. Let's assume the following simple sidebar was created:

* sidebar-commonpages
** FAQ|sidebar-faq

And [[MediaWiki:Sidebar-commonpages]] contains Common pages, while [[MediaWiki:Sidebar-faq]] contains Frequently asked questions.

Then all we need to do is to go to [[MediaWiki:Sidebar-messages]] (or whatever was defined in the previous step) and write there:

sidebar-commonpages sidebar-faq

That is, the names of the system messages, without the "MediaWiki:" namespace prefix, separated by whitespace.

Then go to [[Special:Translate/wiki-sidebar]] (or whatever was defined in the previous step; see [[Special:Translate]] for the list of defined groups). Now it is possible to translate the messages into other languages. Since all the messages are in the MediaWiki namespace, only interface administrators can edit the list of messages and actually translate them.

Tutorial de página principal localizada

Another use case is a page with lots of markup or templates. The advantage of this method is that the language automatically appears in the user's interface language. The drawback is that to change the language in which the page is displayed, the interface language must be changed.

A implementação é a mesma vista no tutorial anterior:

  1. Setup a new message group.
  2. Take a wiki page.
  3. Replace each translatable part with {{int:Mainpage-messagename}} and move the content to [[MediaWiki:Mainpage-messagename]].
  4. Go to [[MediaWiki:Mainpage-messages]] (or what was defined in the setup) and add the message names there separated by whitespace.
  5. You are done. Go to [[Special:Translate]] to translate the main page.

Aqui está um exemplo. Vamos dizer que [[Main Page]] contenha:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{SITENAME}} is a community for chefs and bakers that love chocolate.''
</div>
We currently have {{NUMBEROFPAGES}} pages full of chocolate.

Então mude para:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{int:mainpage-slogan}}''
</div>
{{int:mainpage-pagecount}}

Criar [[MediaWiki:Mainpage-slogan]] com o conteúdo:

{{SITENAME}} is a community for chefs and bakers that love chocolate.

Criar [[MediaWiki:Mainpage-pagecount]] com o conteúdo

We currently have {{NUMBEROFPAGES}} pages full of chocolate.

Criar [[MediaWiki:Mainpage-messages]] com o conteúdo

mainpage-slogan mainpage-pagecount

E está pronto! Você pode adicionar ou remover novas mensagens na hora que quiser.

Seletor de idioma

Não é só o usuário que não pode escolher que versão localizada da página ler, a não ser que se mude as suas preferências, os usuários anônimos também não podem definir seu idioma da interface do usuário e usar sempre o idioma padrão do wiki. A página traduzida com este sistema vai estar no idioma do conteúdo padrão, se você não fornecer aos usuários anônimos uma maneira de selecionar sua língua.

Felizmente, existe uma solução. Com a extensão UniversalLanguageSelector , é possível adivinhar o idioma preferido do usuário e também permitir que o usuário selecione manualmente outro idioma e armazene a escolha em um cookie, sem a necessidade de truques, como o parâmetro uselang, que é adequado na maior parte das vezes apenas para depuração.