i18n em arquivos xml do RKWard

Para arquivos XML do RKWard, a internacionalização (i18n) geralmente funciona sem problemas. Se você estiver escrevendo seu próprio .pluginmap (por exemplo, para um plugin externo), você precisará especificar um po_id ao lado do id do pluginmap. Isso define o "catálogo de mensagens" a ser usado. Em geral, isso deve ser definido de forma idêntica ao id do seu .pluginmap, mas se você fornecer vários .pluginmaps relacionados em um único pacote, provavelmente desejará especificar um po_id comum em seus mapas. O po_id de um arquivo .pluginmap é herdado por todos os plugins declarados nele, a menos que declare um po_id diferente.

Para plugins e páginas de ajuda, você não precisa especificar para o RKWard quais strings devem ser traduzidas, pois isso geralmente fica evidente pelo seu uso. No entanto, como explicado acima, você deve ficar atento a strings que podem ser ambíguas ou que precisam de alguma explicação para serem traduzidas corretamente. Para strings que podem ter significados diferentes, forneça um i18n_context como este:

<checkbox id="scale" label="Escala" i18n_context="Mostra a escala"/>
<checkbox id="scale" label="Escala" i18n_context="Escala o gráfico"/>
                

Fornecer i18n_context fará com que as duas strings sejam traduzidas separadamente. Caso contrário, elas compartilhariam uma única tradução. Além disso, o contexto é mostrado ao tradutor. O atributo i18n_context é compatível com todos os elementos que podem ter strings traduzíveis, em algum lugar, incluindo elementos que contêm texto dentro deles (por exemplo, elementos por exemplotext>).

Em outros casos, a sequência a ser traduzida tem um único significado não ambíguo, mas ainda pode precisar de alguma explicação. Nesse caso, você pode adicionar um comentário que será mostrado aos tradutores. Exemplos podem incluir:

<!-- i18n: Não, isto não é um erro de digitação para screen plot! -->
<component id="scree_plot" label="Scree plot"/>

<!-- i18n: Se possível, por favor, faça com que esta string seja curta. Ter mais de cerca de 15 caracteres
fica muito feio neste ponto, e o significado deve ser bastante auto-evidente para o
usuário (seleção de uma lista de valores exibida ao lado deste elemento) -->
<valueslot id="selected" label="Pegue um"/>
                

Observe que tais comentários devem preceder o elemento ao qual se aplicam e devem começar com "i18n:" ou "TRANSLATORS:".

Finalmente, em casos raros, você pode querer excluir certas strings da tradução. Isso pode fazer sentido, por exemplo, se você oferecer uma escolha entre vários nomes de função R em um controle <radio>. Nesse caso, você não quer que esses nomes sejam traduzidos (mas, dependendo do contexto, você deve considerar fornecer um rótulo descritivo).

<radio id="transformation" label="Função R a aplicar">
  <option id="as.list" noi18n_label="as.list()"/>
  <option id="as.vector" noi18n_label="as.vector()"/>
  [...]
</radio>
                

Observe que você omitirá o atributo label, e especificará noi18n_label em vez disso. Além disso, observe que, ao contrário de i18n_context e comentários, o uso de noi18n_label tornará seu plugin incompatível com versões do RKWard anteriores à 0.6.3.