Sprachspezifische Nachrichtenreferenz
Jede internationalisierte Erweiterung hat mindestens eine Datei namens messages.json, die sprachspezifische Zeichenfolgen bereitstellt. Diese Seite beschreibt das Format von messages.json-Dateien.
Hinweis: Informationen zur Internationalisierung Ihrer Erweiterungen finden Sie in unserem i18n-Leitfaden.
Beispiel für messages.json
Der folgende Code zeigt ein Beispiel für eine messages.json-Datei, übernommen von unserer notify-link-clicks-i18n-Beispiel Erweiterung. Nur die Felder "name" und "message" sind erforderlich.
{
"extensionName": {
"message": "Notify link clicks i18n",
"description": "Name of the extension."
},
"extensionDescription": {
"message": "Shows a notification when the user clicks on links.",
"description": "Description of the extension."
},
"notificationTitle": {
"message": "Click notification",
"description": "Title of the click notification."
},
"notificationContent": {
"message": "You clicked $URL$.",
"description": "Tells the user which link they clicked.",
"placeholders": {
"url": {
"content": "$1",
"example": "https://developer.mozilla.org"
}
}
}
}
Platzierung
Ihre messages.json-Dateien müssen in Verzeichnissen platziert werden, die nach der unterstützten Sprachumgebung benannt sind — en, de, ja usw. Diese müssen wiederum in ein Verzeichnis namens _locales innerhalb des Stammverzeichnisses Ihrer Erweiterung platziert werden.
Details zu den Mitgliedern
Dieser Abschnitt beschreibt jedes Mitglied, das in einer messages.json-Datei erscheinen kann.
name
Jedes oberste Mitglied ist nach dem Namen der Nachrichtzeichenfolge benannt, die Sie lokalisieren, zum Beispiel "extensionName" oder "notificationContent" im obigen Beispiel. Jeder Name ist nicht auf Groß- oder Kleinschreibung angewiesen und fungiert als Schlüssel, um den lokalisierten Nachrichtentext abzurufen.
Der Name kann die folgenden Zeichen enthalten:
- A-Z
- a-z
- 0-9
- _ (Unterstrich)
- @
Hinweis: Sie sollten keine Namen definieren, die mit @@ beginnen. Solche Namen sind für vordefinierte Nachrichten reserviert.
message
Mindestens diese Eigenschaft muss für jede Zeichenfolge gesetzt werden. Das "message"-Mitglied enthält eine lokalisierte Zeichenfolge, die Platzhalter enthalten kann. Sie können verwenden:
- $placeholder_name$ (unabhängig von Groß- und Kleinschreibung), um einen bestimmten Platzhalter (zum Beispiel $URL$ im obigen Beispiel) in Ihre Zeichenfolge einzufügen.
$1,$2,$3usw., um Werte, die von einemi18n.getMessage()-Aufruf erhalten werden, direkt in Ihre Zeichenfolge einzufügen.
Weitere Punkte zu beachten:
- Jede Anzahl aufeinanderfolgender Dollarzeichen, die in Zeichenfolgen erscheinen, wird durch die gleiche Anzahl von Dollarzeichen minus eins ersetzt. Also, $$ > $, $$$ > $$, usw.
- Wenn die Sprachdatei gelesen wird, werden Token, die
/\$([a-z0-9_@]+)\$/ientsprechen, durch den passenden Wert aus dem "placeholders"-Objekt der Zeichenfolge ersetzt. Diese Ersetzungen erfolgen vor der Verarbeitung von/\$\d/Token in der Nachricht. - Wenn eine lokale Zeichenfolge verwendet wird, werden Token, die
/\$\d+/entsprechen, durch die Ersetzungen ersetzt, die ani18n.getMessage()übergeben werden. getMessage()verarbeitet keine Aufrufe mit mehr als 9 Platzhaltern/Ersetzungen.
description
OptionalDas "description"-Mitglied sollte eine Beschreibung des Inhalts der Nachrichtenzeichenfolge enthalten, die dazu dient, einem Übersetzer zu helfen, die bestmögliche Übersetzung der Zeichenfolge zu erstellen.
placeholders
OptionalDas "placeholders"-Mitglied definiert einen oder mehrere Platzhalter-Teilzeichenfolgen, die innerhalb der Nachricht verwendet werden sollen — diese können verwendet werden, um Elemente fest zu codieren, die Sie nicht übersetzen möchten, oder um auf Variablen zu verweisen.
Jedes Platzhalter-Teilzeichenfolgen-Definition hat eine Reihe eigener Werte:
"url" : {
"content" : "$1",
"example" : "https://developer.mozilla.org"
}
Platzhaltername
Der Platzhaltername wird verwendet, um den Platzhalter in der Ersetzungszeichenfolge darzustellen (z.B. wird "url" zu $url$). Er ist unabhängig von Groß- und Kleinschreibung und kann die gleichen Zeichen wie ein Nachrichtenzeichenfolgen-name enthalten.
content
Das "content"-Element definiert den Inhalt des Platzhalters. Dies kann eine fest codierte Zeichenfolge wie "Mein Platzhalter" sein, kann aber auch Werte enthalten, die von einem i18n.getMessage()-Aufruf erhalten wurden. Diese Eigenschaft ist erforderlich. Weitere Informationen finden Sie unter Abrufen von Nachrichtszeichenfolgen aus JavaScript.
example
OptionalDas optionale "example"-Element soll wieder Übersetzer unterstützen, indem es ihnen zeigt, wie der Platzhalter für Endbenutzer erscheinen würde, sodass sie die beste Wahl beim Lokalisieren der Datei treffen können.