Internationalizar os templates

O SPIP exibe naturalmente os elementos de interface (datas, rótulos dos botões) no idioma escolhido pelo usuário.

Criar templates multilíngues

Ao se criar um template multilíngue, é indispesável utilizar as cadeias de idiomas para que o conteúdo da interface seja exibido na língua solicitada.

O SPIP já fornece as expressões mais comuns (como "Mapa do site", "Responder a esta matéria" etc...). Esta matéria mostra como incluir novas expressões conforme a sua necessidade.

Além disso, o uso das cadeias de idiomas facilita a manutenção do seu template (ao se alterar uma cadeia de idioma, todas as páginas que a usam são atualizadas).

Usar arquivos de idioma

Criar um arquivo de idioma

Seja qual for a estrutura decidida para o site (setores de idioma, ou não) basta inserir uma "cadeia de idioma" no formato <:cadeia_de_idioma:> e o SPIP irá procurar a tradução num dos arquivos SPIP ou num arquivo local_xx.php (xx sendo o código do idioma) que tenhamos criado.

O sufixo de idioma xx corresponde geralmente ao usado nas normas ISO:
Por exemplo fr para francês.

As variantes regionais também são também são suportadas:
Por exemplo pt_br para o portugues do Brasil.

Por exemplo, exibimos uma seção música no nosso site

<h4>Música</h4> 

Para internacionalizar, o texto será passado por uma cadeia de idioma

<h4><:musique:></h4> 

De acordo com o idioma requerido, a cadeia <:musique:> exibirá
— em français, a expressão «Musique»,
— em anglais, a expressão «Music»,
— em japonais, a expressão «音楽»,

Será necessário criar tantos arquivos de idiomas quanto as línguas usadas pelo seu site. No caso acima, deverão ser criados os arquivos lang/local_fr.php, lang/local_en.php e lang/local_ja.php.

A estrutura de um arquivo de idioma

Arquivos de idiomas ficam armazenados num diretório lang e são estruturado como a seguir:
Os arquivos de idioma contêm as diferentes traduções dos códigos que você utilizará; são arquivos PHP contendo, cada um, uma tabela associando os códigos às expressões correspondentes em cada língua.

Atenção :
O nome desses arquivos de idioma não poderão conter o caracter «_» («underscore» ou «sublinhado») exceto para marcar a separação com a sigla do idioma (en, fr, it, ...). Por exemplo, «meuarquivo_pt.php» é correto, mas «meu_arquivo_pt.php» está incorreto.
Arquivos de idioma que são variantes de uma língua também separam a sigla da variante, como no caso dos arquivos para o português brasileiro, que devem ser nomeados como «meuarquivo_pt_br.php»

Estes arquivos conterão, por exemplo:

Versão português do Brasil (lang/meuarquivo_pt_br.php):

  <?php
  $GLOBALS[$GLOBALS['idx_lang']] = array(
    'telechargement' => 'Baixar a versão mais recente',
    'quoideneuf' => 'Alterações recentes'
  );

Versão catalão (lang/meuarquivo_ca.php):

  <?php
  $GLOBALS[$GLOBALS['idx_lang']] = array(
    'telechargement' => 'Descarregar la darrera versió',
    'quoideneuf' => 'Modificacions recents'
  );
  

Sintaxe dos arquivos de idioma
— Cada linha de definição termina com uma vírgula, exceto a última linha.
— Os apóstrofos no interior da cadeia devem ser escapados], ou seja precedidos de uma contra-barra. Por exemplo, a cadeia «sur l’internet» deve ser escrita como: sur l\'internet.
— Pode-se não escapar os apóstrofos desde que se utilize apóstrofos do tipo "aspa simples de fechamento"

Criar os seus próprios códigos

É possível criar os seus próprios códigos, correspondentes às cadeias com expressões que se desejar incluir.
São arquivos de idioma personalizados, no modelo dos arquivos public_xx.php. Para criar os seus próprios arquivos, grave-os num diretório squelettes/lang (a ser criado, caso o mesmo não exista)
— local_fr.php para definir cadeias com expressões em francês,
— local_pt_br para cadeias com expressões em português do Brasil,
— local_en.php para cadeias em inglês,
— ...

A parte que é necessário acrescentar por si mesmo consiste de diversas linhas de definições, no modelo:

    'codigo' => 'A expressão a ser exibida',

Os plugins e os arquivos de idiomas

Diversas funcionalidades são fornecidas por plugins, sejam eles nucleares, como o porte-plume ou o svp, sejam plugins incluídos pelos webmasters, porque eles desejam usar uma funcionalidade específica.
Todos esses plugins possuem arquivos de idiomas

Ver também

Para saber mais sobre as cadeias de idiomas, você pode consultar https://programmer.spip.net/-Elements-linguistiques-

Histórico:

as versões iniciais desta matéria apresentavam outras soluções além dos arquivos de idioma para tornar os templates multilinguais. Note-se aqui que essas soluções simplesmente não são recomendadas:
-  "um template por idioma" (requeria o plugin "squelettes_par_rubrique" - templates por seção, em português): pesado para manter e simplesmente inútil para uma utilização básica.
-  "os blocos multilíngues": estes blocos <multi> são muito úteis na área redacional; exibir um título nas diversas línguas possíveis, permitir a exibição de legendas diferentes por idioma... mas devem ser evitados na parte estrutural

Autor Ricardo Porto Publié le : Mis à jour : 03/10/24

Traductions : عربي, English, français, Português