Każde umiędzynarodowione rozszerzenie lub aplikacja ma co najmniej jeden plik o nazwie messages.json
, który udostępnia
ciągi tekstowe związane z różnymi językami. Na tej stronie opisano format plików messages.json
. Informacje na temat:
informacji o internacjonalizacji i zlokalizowaniu, znajdziesz na stronie Internacjonalizacja.
Lista pól
Ten kod pokazuje obsługiwane pola w polu messages.json
. Tylko pole „name” i „wiadomość”
– te pola są wymagane.
{
"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."
},
...
}
},
...
}
Przykład
Oto plik messages.json
, w którym zdefiniowano 3 komunikaty o nazwach „prompt_for_name”, „hello” oraz
"do widzenia":
{
"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"
}
}
}
}
Szczegóły pola
W tej sekcji opisano wszystkie pola, które mogą wystąpić w pliku messages.json
. Szczegółowe informacje na temat działania funkcji
– informacje na przykład o tym, co się dzieje, gdy język nie definiuje wszystkich wiadomości – zapoznaj się z artykułem
Internacjonalizacja.
nazwa
Nie masz żadnego pola o nazwie „name”. Nazwa tego pola to nazwa wiadomości – tak samo
nazwa widoczna w __MSG__name___
lub getMessage("_name_")
.
Wielkość liter nie jest rozróżniana, a klucz umożliwia pobranie zlokalizowanego tekstu wiadomości. Nazwa może zawierają następujące znaki:
- A–Z
- a-z
- 0-9
- _ (podkreślenie)
- @
Oto 3 przykłady nazw wzięte z sekcji Przykład:
"prompt_for_name": {
...
},
"hello": {
...
},
"bye": {
...
}
Więcej przykładów użycia nazw znajdziesz na stronie Internacjonalizacja.
wiadomość
Przetłumaczona wiadomość w formie ciągu znaków, który może zawierać zmienne. Używaj
$_placeholder_name_$
(wielkość liter nie jest rozróżniana), aby odwołać się do konkretnego obiektu zastępczego. Możesz na przykład:
użyj obiektu zastępczego o nazwie „our_site” jako $our_site$
, $OUR_SITE$
lub $oUR_sITe$
.
Oto 3 przykłady wiadomości zaczerpnięte z sekcji Przykład:
"message": "What's your name?"
...
"message": "Hello, $USER$"
...
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!"
Aby umieścić w ciągu znaków znak dolara ($
), użyj $$
. For example, use the following code to specify
the message Amount (in $):
"message": "Amount (in $$)"
Chociaż symbole zastępcze, takie jak
$USER$
, są preferowanym sposobem odwoływania się do ciągów znaków zastępowania (ciągi znaków określone za pomocą parametru substitutions funkcji i18n.getMessage), możesz też odwołać się do tej funkcji do zastępowania ciągów znaków bezpośrednio w wiadomości. Na przykład ten komunikat odnosi się do pierwsze trzy ciągi podstawienia przekazywane do funkcjigetMessage()
:"message": "Params: $1, $2, $3"
Zalecamy jednak stosowanie obiektów zastępczych zamiast ciągów
$_n_
. w wiadomościach. Symbole zastępcze działają jak dobre nazwy zmiennych. Tydzień po napisaniu kodu, prawdopodobnie nie pamiętasz, do czego odnosi się$1
, ale będziesz wiedzieć, do czego odnoszą się obiekty zastępcze. Więcej informacji o zmiennych i ciągach znaków zastępowania znajdziesz w sekcji poświęconej zmiennym.opis
Opcjonalne. Opis wiadomości, który ma zawierać kontekst lub szczegółowe informacje, aby pomóc tłumaczowi aby uzyskać najlepsze możliwe tłumaczenie.
Oto 3 przykłady opisów pochodzących z sekcji Przykład:
"description": "Ask for the user's name" ... "description": "Greet the user" ... "description": "Say goodbye to the user"
obiekty zastępcze
Opcjonalne. Określa co najmniej 1 podłańcuch do użycia w wiadomości. Oto 2 powody, dla których możesz użyć zmiennej:
- Określenie tekstu części wiadomości, która nie powinna być tłumaczona. Przykłady: kod HTML, nazwy będące znakami towarowymi, specyfikatory formatowania.
- Aby odwołać się do ciągu zastąpienia przekazywanego do
getMessage()
. Przykład:$1
.
Każdy symbol zastępczy ma nazwę, „treść” element i opcjonalny „przykład”, elementu. Nazwa obiektu zastępczego Wielkość liter nie jest rozróżniana, a adres może zawierać te same znaki co nazwa wiadomości.
Treść wartość elementu jest ciągiem znaków, który może odwoływać się do określonych ciągów zastępowania
za pomocą parametru substitutions metody i18n.getMessage. Wartość „treści” element to
zwykle np. „Example.com”; lub „$1”. Jeśli odwołujesz się do ciągu zastąpienia, który nie jest
istnieje, otrzymasz pusty ciąg znaków. W tabeli poniżej pokazujemy, jak ciągi tekstowe ($_n_
) odpowiadają ciągom tekstowym
wskazywaną przez parametr substitutions.
Parametr substitutions | Wartość 1 USD | Wartość 2 USD | Wartość 3 PLN |
---|---|---|---|
userName | wartość kolumny userName | "" | "" |
["Cira", "Kathy"] | "Cira" | "Kathy" | "" |
„Przykład” (opcjonalny, ale zdecydowanie zalecany) pomaga tłumaczom, pokazując, jak treść
nie są wyświetlane użytkownikowi. Na przykład obiekt zastępczy kwoty pieniężnej powinien mieć następujący przykład:
"$23.45"
Ten fragment kodu, pobrany z sekcji Przykład, zawiera element „placeholder” element, który zawiera dwie obiekty zastępcze o nazwie „our_site” i „user”. Parametr „our_site” obiekt zastępczy nie ma „przykładu” elementu, ponieważ jego wartość jest oczywista w tagu „content” .
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}