Jede internationalisierte Erweiterung oder Anwendung hat mindestens eine Datei mit dem Namen messages.json
, die länderspezifische Strings enthält. Auf dieser Seite wird das Format von messages.json
-Dateien beschrieben. 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.
{
"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“:
{
"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 die einzelnen Felder beschrieben, die in einer messages.json
-Datei enthalten sein 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 Felds ist der Name der Nachricht. Das ist derselbe Name, der in __MSG__name___
oder getMessage("_name_")
angezeigt wird.
Der Name ist ein Groß-/Kleinschreibungs-insensitiver Schlüssel, mit dem Sie den lokalisierten Nachrichtentext abrufen können. Der Name kann folgende Zeichen enthalten:
- A–Z
- a–z
- 0-9
- _ (Unterstrich)
- @
Hier sind drei Beispiele für Namen aus dem Abschnitt Beispiel:
"prompt_for_name": {
...
},
"hello": {
...
},
"bye": {
...
}
Weitere Beispiele zur 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. Sie können beispielsweise auf einen Platzhalter mit dem Namen „unsere_website“ als $our_site$
, $OUR_SITE$
oder $oUR_sITe$
verweisen.
Hier sind drei Beispiele für Nachrichten aus dem Abschnitt Beispiel:
"message": "What's your name?"
...
"message": "Hello, $USER$"
...
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!"
Um ein Dollarzeichen ($
) in den String einzufügen, verwenden Sie $$
. For example, use the following code to specify
the message Amount (in $):
"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 wurden:"message": "Params: $1, $2, $3"
Wir empfehlen jedoch, in Ihren Nachrichten Platzhalter anstelle von
$_n_
-Strings zu verwenden. 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 Ersetzungsstrings 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:
"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, warum Sie einen Platzhalter verwenden sollten:
- Hier können Sie den Text für einen Teil Ihrer Nachricht definieren, der nicht übersetzt werden soll. Beispiele: HTML-Code, Markennamen, Formatierungsbezeichner.
- Damit wird auf einen Substitutionsstring verwiesen, der an
getMessage()
übergeben wird. Beispiel:$1
.
Jeder Platzhalter hat einen Namen, ein Inhaltselement und ein optionales Beispielelement. 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 auf Substitutionsstrings verweisen kann, die mit dem Parameter Substitutions der Methode i18n.getMessage angegeben werden. Der Wert eines "content"-Elements ist normalerweise etwa "Example.com" oder "$1". Wenn Sie auf einen nicht vorhandenen Substitutionsstring verweisen, wird ein leerer String ausgegeben. 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 von 3 € |
---|---|---|---|
userName | Wert von userName | "" | "" |
["Cira", "Kathy"] | "Cira" | "Kathy" | "" |
Das Element „Beispiel“ (optional, aber dringend empfohlen) hilft Übersetzern, da es zeigt, wie der Inhalt für den Endnutzer angezeigt wird. Ein Platzhalter für einen Eurobetrag sollte z. B. "$23.45"
enthalten.
Das folgende Snippet aus dem Abschnitt Beispiel zeigt ein Element „placeholders“ mit zwei Platzhaltern namens „our_site“ und „user“. Der Platzhalter „our_site“ hat kein „Beispiel“-Element, da sein Wert aus dem Feld „content“ hervorgeht.
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}