Suporte a formato de mensagem para localização

Diretrizes para Tradutores

No Discourse, todas as strings do Message Format possuem uma chave que termina com “_MF”. O Editor do Crowdin possui uma pré-visualização que permite experimentar com vários valores, o que é bastante útil para verificar suas traduções.

Importante: Você precisa modificar as formas de plural da sua tradução se o seu idioma usar formas diferentes de “one” e “other”. Você pode adicionar ou remover formas dentro de um bloco { FOO, plural, ... } para que funcione para o seu idioma. A pré-visualização no Editor do Crowdin mostrará um “Syntax error” (erro de sintaxe) na pré-visualização quando houver um problema com a sua tradução.

As formas de plural disponíveis são:

  • zero
  • one
  • two
  • few
  • many
  • other (obrigatório — forma de plural geral — também usada para idiomas que não fazem distinção entre formas de singular e plural)

Às vezes, você pode ver um bloco vazio =0 {} em uma string de origem em inglês, o que significa que a variável não pode ter um valor de 0.

Diretrizes para Desenvolvedores

As strings do Message Format estão atualmente disponíveis apenas para traduções do lado do cliente. Elas são úteis se a sua string contiver mais de um número ou muitas variáveis, o que levaria a uma grande quantidade de permutações.

  • As chaves das strings do Message Format precisam terminar com “_MF”

  • Use o seguinte formato para números (# será substituído pelo número):

    { variable_name, plural,
        one: {# texto singular}
      other: {# texto plural}
    }
    
  • Use o seguinte formato para escolhas:

    { variable_name, select,
      foo: {This is foo}
      bar: {This is bar}
      baz: {This is baz}
    }
    
  • É assim que você usa no JavaScript:

    I18n.messageFormat("key_MF", {
      variable1: "foo",
      variable2: 42,
    });
    
  • :loudspeaker: Recomendação: Se possível, use argumentos complexos como a estrutura mais externa de uma mensagem e escreva frases completas em suas submensagens. Se você tiver argumentos select e plural aninhados, coloque os argumentos select (com seus conjuntos fixos de escolhas) por fora e aninhe os argumentos plural (esperamos que no máximo um) por dentro. Veja Formatting Messages | ICU Documentation

  • Torne-as legíveis – veja exemplos existentes em client.en.yml

    :cross_mark: Ruim

    There {currentTopics, plural, one {is <strong>#</strong> topic} other {are <strong>#</strong> topics}}. Visitors need more to read and reply to – we recommend at least { requiredTopics, plural, one {<strong>#</strong> topic} other {<strong>#</strong> topics}}. Only staff can see this message.
    

    :green_heart: Bom

    There { currentTopics, plural,
        one {is <strong>#</strong> topic}
      other {are <strong>#</strong> topics}
    }. Visitors need more to read and reply to – we recommend at least { requiredTopics, plural,
        one {<strong>#</strong> topic}
      other {<strong>#</strong> topics}
    }. Only staff can see this message.
    

Ferramentas e informações adicionais

  • Online ICU Message Editor permite que você teste uma string do Message Format caso haja um problema com o Editor do Crowdin. Por favor, desative a opção “Parse simple xml/html tags” (Analisar tags simples xml/html), caso contrário, você pode ver uma mensagem de erro.

  • ICU Message Format for Translators


Este documento é controlado por versão - sugira alterações no github.

10 curtidas