Jede internationalisierte Erweiterung hat mindestens eine Datei namens messages.json
, die lokalspezifische Strings enthält. Auf dieser Seite wird das Format von messages.json
-Dateien beschrieben. Weitere Informationen zu
Informationen zur Internationalisierung und Lokalisierung finden Sie auf der Seite Internationalisierung.
Felder – Übersicht
Der folgende Code zeigt die unterstützten Felder für messages.json
. Nur die Felder name und message sind erforderlich.
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."
},
...
}
},
...
}
Beispiel
Hier ist eine messages.json
-Datei mit drei Nachrichten namens „prompt_for_name“, „hello“ und „bye“:
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"
}
}
}
}
Felddetails
In diesem Abschnitt werden alle Felder beschrieben, die in einer messages.json
-Datei vorkommen können. Weitere Informationen zur Verwendung der Datei „messages“, z. B. was passiert, wenn für ein Gebietsschema nicht alle Meldungen definiert sind, finden Sie unter Internationalisierung.
name
Es gibt kein Feld namens „name“. Der Name dieses Feldes ist der Name der Nachricht.
Name, den du in __MSG__name___
oder getMessage("_name_")
siehst.
Der Name ist ein Schlüssel, mit dem die Groß- und Kleinschreibung nicht berücksichtigt wird, um den lokalisierten Nachrichtentext abzurufen. Der Name kann folgende Zeichen enthalten:
- A–Z
- a–z
- 0-9
- _ (Unterstrich)
- @
Hier sind drei Beispiele für Namen aus dem Abschnitt Beispiel:
messages.json:
"prompt_for_name": {
...
},
"hello": {
...
},
"bye": {
...
}
Weitere Beispiele für die Verwendung von Namen finden Sie auf der Seite Internationalisierung.
Nachricht
Die übersetzte Nachricht in Form eines Strings, der Platzhalter enthalten kann. Verwenden Sie
$_placeholder_name_$
(Groß-/Kleinschreibung nicht berücksichtigend), um auf einen bestimmten Platzhalter zu verweisen. So können Sie zum Beispiel
auf den Platzhalter „our_site“ verweisen als $our_site$
, $OUR_SITE$
oder $oUR_sITe$
.
Hier sind drei Beispiele für Meldungen aus dem Abschnitt Beispiel:
messages.json:
"message": "What's your name?"
...
"message": "Hello, $USER$"
...
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!"
Wenn Sie ein Dollarzeichen ($
) in den String einfügen möchten, verwenden Sie $$
. For example, use the following code to specify
the message Amount (in $):
messages.json:
"message": "Amount (in $$)"
.Platzhalter wie
$USER$
sind die bevorzugte Methode, um auf Substitutionsstrings (Strings, die mit dem Parameter substitutions von i18n.getMessage angegeben werden) zu verweisen. Sie können aber auch direkt in der Nachricht auf Substitutionsstrings verweisen. Die folgende Meldung bezieht sich beispielsweise auf die ersten drei Substitutionsstrings, die angetMessage()
übergeben werden:messages.json:
"message": "Params: $1, $2, $3"
Trotz dieses Beispiels empfehlen wir, anstelle von
$_n_
-Strings Platzhalter zu verwenden. in Ihren Nachrichten. Platzhalter sind gute Variablennamen. Eine Woche, nachdem Sie den Code geschrieben haben, werden Sie wahrscheinlich vergessen, worauf sich$1
bezieht, aber Sie werden wissen, worauf sich Ihre Platzhalter beziehen. Weitere Informationen zu Platzhaltern und Ersatzstrings finden Sie im Abschnitt Platzhalter.Beschreibung
Optional. Eine Beschreibung der Nachricht, die Kontext oder Details liefern soll, damit die Übersetzer die bestmögliche Übersetzung vornehmen können.
Hier sind drei Beispiele für Beschreibungen aus dem Abschnitt Beispiel:
messages.json:
"description": "Ask for the user's name" ... "description": "Greet the user" ... "description": "Say goodbye to the user"
Platzhalter
Optional. Hiermit werden ein oder mehrere Teilstrings definiert, die in der Nachricht verwendet werden sollen. Hier sind zwei Gründe, einen Platzhalter verwenden:
- Hier können Sie den Text für einen Teil Ihrer Nachricht definieren, der nicht übersetzt werden soll. Beispiele: HTML-Code, markenrechtlich geschützte Namen, Formatierungsspezifikationen.
- Damit wird auf einen Substitutionsstring verwiesen, der an
getMessage()
übergeben wird. Beispiel:$1
.
Jeder Platzhalter hat einen Namen, einen „Inhalt“ und ein optionales "Beispiel" ein. Bei einem Platzhalternamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Er kann dieselben Zeichen wie ein Nachrichtenname enthalten.
Der Wert des Elements „content“ ist ein String, der sich auf Substitutionsstrings beziehen kann, die mit dem Parameter substitutions der Methode i18n.getMessage angegeben werden. Der Wert von „content“ Element ist
normalerweise etwa „beispiel.de“ oder "$1". Wenn Sie sich auf einen nicht vorhandenen Ersatzstring beziehen, wird ein leerer String zurückgegeben. In der folgenden Tabelle wird gezeigt, wie $_n_
-Strings mit Strings übereinstimmen, die durch den Parameter substitutions angegeben werden.
Parameter substitutions | Wert von 1 € | Wert von 2 € | Wert: 3 € |
---|---|---|---|
userName | Wert von userName | "" | "" |
["Cira", "Kathy"] | "Cira" | "Kathy" | "" |
Das „Beispiel“ (optional, aber dringend empfohlen) hilft den Übersetzern, den Inhalt
der Endanwendenden angezeigt wird. Ein Platzhalter für einen Dollarbetrag sollte beispielsweise "$23.45"
enthalten.
Das folgende Snippet aus dem Abschnitt Beispiel enthält einen Platzhalter Element, das enthält zwei Platzhalter mit dem Namen „our_site“. und „user“. „our_site“ Platzhalter hat kein „Beispiel“ -Element, da sein Wert an der Spalte "content" deutlich ist. ein.
messages.json:
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}