Każde spolszczone rozszerzenie ma co najmniej 1 plik o nazwie messages.json
, który zawiera ciągi znaków dla poszczególnych języków. Ta strona opisuje format plików messages.json
. Informacje o międzynarodowej i regionalnej wersji aplikacji znajdziesz na stronie Międzynarodowa wersja aplikacji.
Lista pól
Poniższy kod pokazuje obsługiwane pola w przypadku tagu messages.json
. Wymagania dotyczą tylko pól name i „message”.
messages.json:
{
"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":
messages.json:
{
"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 – ta sama nazwa, którą widzisz w polu __MSG__name___
lub getMessage("_name_")
.
Nazwa to klucz, w którym wielkość liter nie jest rozróżniana, umożliwiający pobranie zlokalizowanego tekstu wiadomości. Nazwa może zawierać te znaki:
- A–Z
- a-z
- 0-9
- _ (podkreślenie)
- @
Oto 3 przykłady nazw wzięte z sekcji Przykład:
messages.json:
"prompt_for_name": {
...
},
"hello": {
...
},
"bye": {
...
}
Więcej przykładów użycia nazw znajdziesz na stronie międzynarodowej.
wiadomość
przetłumaczoną wiadomość w postaci ciągu tekstowego, który może zawierać miejsca zastępcze; Aby odwoływać się do konkretnego zastępczego elementu, użyj znaku $_placeholder_name_$
(niezależnie od wielkości liter). 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 z sekcji Przykłady:
messages.json:
"message": "What's your name?"
...
"message": "Hello, $USER$"
...
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!"
Aby umieścić w ciągu znak dolara ($
), użyj $$
. For example, use the following code to specify
the message Amount (in $):
messages.json:
"message": "Amount (in $$)"
Mimo że 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()
:messages.json:
"message": "Params: $1, $2, $3"
Zalecamy jednak stosowanie obiektów zastępczych zamiast ciągów
$_n_
. w wiadomościach. Puste miejsca to dobre nazwy zmiennych. Tydzień po napisaniu kodu prawdopodobnie zapomnisz, co oznacza$1
, ale będziesz wiedzieć, co oznaczają Twoje zmienne. 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 z sekcji Przykłady:
messages.json:
"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 podciąg, który ma być używany 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.
- Odwołuje się do ciągu zastąpienia przekazanego do
getMessage()
. Przykład:$1
.
Każdy symbol zastępczy ma nazwę, „treść” element i opcjonalny „przykład”, elementu. Nazwa zastępnika jest nieczuła na wielkość liter i 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ść elementu „content” to zazwyczaj „Example.com” lub „1 zł”. Jeśli odwołasz się do ciągu zastępczego, którego nie ma, otrzymasz pusty ciąg. 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 zł | Wartość 3 zł |
---|---|---|---|
userName | wartość 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”. Obiekt zastępczy „our_site” nie zawiera elementu „example”, ponieważ jego wartość jest oczywista z pola „content”.
messages.json:
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}