Cada extensão ou app internacionalizado tem pelo menos um arquivo chamado messages.json
que fornece
strings específicas da localidade. Nesta página, descrevemos o formato dos arquivos messages.json
. Para informações sobre
como internacionalizar e localizar, consulte a página Internacionalização.
Resumo de campos
O código a seguir mostra os campos compatíveis com messages.json
. Apenas o "name" e "mensagem"
são obrigatórios.
{
"name": {
"message": "Message text, with optional placeholders.",
"description": "Translator-aimed description of the message.",
"placeholders": {
"placeholder_name": {
"content": "A string to be placed within the message.",
"example": "Translator-aimed example of the placeholder string."
},
...
}
},
...
}
Exemplo
Este é um arquivo messages.json
que define três mensagens chamadas "prompt_for_name", "hello" e
"tchau":
{
"prompt_for_name": {
"message": "What's your name?",
"description": "Ask for the user's name"
},
"hello": {
"message": "Hello, $USER$",
"description": "Greet the user",
"placeholders": {
"user": {
"content": "$1",
"example": "Cira"
}
}
},
"bye": {
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!",
"description": "Say goodbye to the user",
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}
}
}
Detalhes do campo
Esta seção descreve cada campo que pode aparecer em um arquivo messages.json
. Para mais detalhes sobre como o
de mensagens do Google é usado. Por exemplo, o que acontece quando uma localidade não define todas as mensagens. Consulte
Internacionalização.
nome
Na verdade, não há nenhum campo chamado "name". O nome desse campo é o nome da mensagem; o mesmo
name que você vê em __MSG__name___
ou getMessage("_name_")
.
O nome é uma chave que não diferencia maiúsculas de minúsculas e permite recuperar o texto da mensagem localizada. O nome pode inclua os seguintes caracteres:
- De A a Z
- a-z
- 0-9
- _ (sublinhado)
- @
Aqui estão três exemplos de nomes, retirados da seção Exemplo:
"prompt_for_name": {
...
},
"hello": {
...
},
"bye": {
...
}
Para ver mais exemplos de uso de nomes, consulte a página Internacionalização.
mensagem
A mensagem traduzida, na forma de uma string que pode conter marcadores de posição. Usar
$_placeholder_name_$
(não diferencia maiúsculas de minúsculas) para se referir a um marcador específico. Por exemplo, é possível
consulte um marcador de posição chamado "our_site" como $our_site$
, $OUR_SITE$
ou $oUR_sITe$
.
Aqui estão três exemplos de mensagens da seção Exemplo:
"message": "What's your name?"
...
"message": "Hello, $USER$"
...
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!"
Para colocar um cifrão ($
) na string, use $$
. For example, use the following code to specify
the message Amount (in $):
"message": "Amount (in $$)"
Embora marcadores como
$USER$
sejam a maneira preferencial de se referir a strings de substituição (strings especificadas usando o parâmetro replaces de i18n.getMessage), você também pode consultar para substituir strings diretamente na mensagem. Por exemplo, a mensagem a seguir se refere as três primeiras strings de substituição transmitidas paragetMessage()
:"message": "Params: $1, $2, $3"
Apesar desse exemplo, recomendamos que você use marcadores em vez de strings
$_n_
. nas mensagens. Pense nos marcadores de posição como bons nomes de variáveis. Uma semana depois de escrever seu é provável que você se esqueça do que$1
se refere, mas saberá a que os marcadores de posição se referem. Para mais informações sobre marcadores de posição e strings de substituição, consulte a seção de marcadores de posição.descrição
Opcional. Uma descrição da mensagem, destinada a fornecer contexto ou detalhes para ajudar o tradutor fazer a melhor tradução possível.
Aqui estão três exemplos de descrições, retirados da seção Exemplo:
"description": "Ask for the user's name" ... "description": "Greet the user" ... "description": "Say goodbye to the user"
marcadores de posição
Opcional. Define uma ou mais substrings a serem usadas na mensagem. Aqui estão dois motivos pelos quais você convém usar um marcador de posição:
- Para definir o texto de uma parte da sua mensagem que não deve ser traduzida. Exemplos: código HTML, nomes de marcas registradas, especificadores de formatação.
- Para se referir a uma string de substituição transmitida para
getMessage()
. Exemplo:$1
.
Cada marcador tem um nome, um "conteúdo" item de linha e um "exemplo" opcional do item de linha. O nome de um marcador não diferencia maiúsculas de minúsculas e pode conter os mesmos caracteres de um nome de mensagem.
O "conteúdo" o valor do item é uma string que pode se referir a strings de substituição, que são especificadas
usando o parâmetro substituis do método i18n.getMessage. O valor de um "conteúdo" o item é
normalmente, algo como "Example.com" ou "$1". Se você se referir a uma string de substituição que não
existir, você receberá uma string vazia. A tabela a seguir mostra como as strings $_n_
correspondem às strings
especificado pelo parâmetro overrides.
parâmetro overrides | Valor de US $1 | Valor de US $2 | Valor de US $3 |
---|---|---|---|
userName | valor de userName | "" | "" |
["Cira", "Kathy"] | "Cira" | "Kathy" | "" |
O "exemplo" item (opcional, mas altamente recomendado) ajuda os tradutores mostrando como o conteúdo
aparece para o usuário final. Por exemplo, um marcador de posição para um valor em dólar deve ter um exemplo como
"$23.45"
:
O snippet a seguir, retirado da seção Exemplo, mostra um "marcador de posição" item que contém dois marcadores de posição chamados "our_site" e "usuário". O "nosso_site" o marcador de posição não tem "exemplo" item, porque seu valor é óbvio no "conteúdo" .
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}