Suporte ao formato de mensagem para localização

Diretrizes para Tradutores

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

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

As formas plurais disponíveis são:

  • zero
  • one
  • two
  • few
  • many
  • other (obrigatório — forma plural geral — também usado para idiomas sem distinção entre formas 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 o valor 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 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 (select):

    { variable_name, select,
      foo: {Isto é foo}
      bar: {Isto é bar}
      baz: {Isto é baz}
    }
    
  • Veja como usá-lo em 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) no exterior e aninhe os argumentos plural (esperançosamente no máximo um) dentro. Veja Formatting Messages | ICU Documentation

  • Torne-os 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


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

10 curtidas