Formate für Lokalisierungsnachrichten

Jede internationalisierte Erweiterung oder App hat mindestens eine Datei mit dem Namen messages.json, die länderspezifischen Zeichenfolgen verwendet. 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 der name und „Nachricht“ sind Pflichtfelder.

{
  "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, in der drei Nachrichten mit den Namen „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 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 Felds ist der Name der Nachricht. Es ist derselbe Name, der in __MSG__name___ oder getMessage("_name_") angezeigt wird.

Der Name ist ein Schlüssel, mit dem die Groß- und Kleinschreibung nicht berücksichtigt wird, um den lokalisierten Nachrichtentext abzurufen. Der Name kann die folgenden Zeichen enthalten:

  • A–Z
  • a-z
  • 0-9
  • _ (Unterstrich)
  • @
Hinweis:Definieren Sie keine Namen, die mit „@@“ beginnen. Diese Namen sind für vordefinierte Nachrichten reserviert.

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. 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:

"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 $):

"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 an getMessage() übergeben wurden:

"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 Ihre werden Sie wahrscheinlich vergessen, worauf sich $1 bezieht. Sie werden aber wissen, worauf sich die Platzhalter beziehen. Weitere Informationen zu Platzhaltern und Ersetzungsstrings finden Sie im Abschnitt Platzhalter.

Beschreibung

Optional. Eine Beschreibung der Nachricht mit Kontext oder weiteren Details, um dem Übersetzer zu helfen. um die bestmögliche Übersetzung zu erzielen.

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, einen Platzhalter verwenden:

  • Zur Definition des Textes für einen Teil Ihrer Nachricht, der nicht übersetzt werden soll. Beispiele: HTML-Code, markenrechtlich geschützten Namen, Formatierungsspezifizierern.
  • Damit wird auf einen Substitutionsstring verwiesen, der an getMessage() übergeben wird. Beispiel: $1.

Jeder Platzhalter hat einen Namen, einen „Inhalt“ und ein optionales "Beispiel" . Bei einem Platzhalternamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Er kann dieselben Zeichen wie ein Nachrichtenname enthalten.

Der „Inhalt“ Der Wert des Elements ist eine Zeichenfolge, die auf Ersatzzeichenfolgen verweisen kann, die angegeben werden. mithilfe des Parameters Substitutions der Methode i18n.getMessage. Der Wert von „content“ Element ist normalerweise etwa „beispiel.de“ oder "$1". Wenn Sie auf einen Ersatzstring verweisen, erhalten Sie einen leeren String. In der folgenden Tabelle wird gezeigt, wie $_n_-Strings mit Strings übereinstimmen, die durch den Parameter substitutions angegeben werden.

Parameter SubstitutionsWert von 1 €Wert von 2 €Wert: 3 €
userNameWert 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 Eurobetrag sollte beispielsweise folgendes Beispiel enthalten: "$23.45"

Das folgende Snippet aus dem Abschnitt Beispiel zeigt ein Element „placeholders“ mit zwei Platzhaltern namens „our_site“ und „user“. „our_site“ Platzhalter hat kein „Beispiel“ -Element, da sein Wert an der Spalte "content" deutlich ist. ein.

"placeholders": {
  "our_site": {
    "content": "Example.com",
  },
  "user": {
    "content": "$1",
    "example": "Cira"
  }
}