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 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, die 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 die einzelnen Felder beschrieben, die in einer messages.json-Datei enthalten sein können. Einzelheiten dazu, wie die Nachrichtendatei verwendet wird – zum Beispiel, was passiert, wenn nicht alle Nachrichten in einer Sprache definiert sind – siehe Internationalisierung:

Name

Es gibt kein Feld namens „name“. Der Name dieses Feldes ist der Name der Nachricht, also der Name, 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 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!"

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 Ersatzstrings zu verweisen. (Strings, die mit dem Parameter Replacements von i18n.getMessage angegeben werden), können auch referenziert werden um Zeichenfolgen direkt in der Nachricht zu ersetzen. Die folgende Meldung bezieht sich beispielsweise auf die ersten drei Substitutionsstrings, die an getMessage() übergeben werden:

"message": "Params: $1, $2, $3"

Trotz dieses Beispiels empfehlen wir, anstelle von $_n_-Strings Platzhalter zu verwenden. in Ihren Nachrichten. Stellen Sie sich Platzhalter als gute Variablennamen vor. 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 Ersatzstrings 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. Definiert eine oder mehrere Teilzeichenfolgen, 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.
  • Verweist auf einen Substitutionsstring, der an getMessage() übergeben wurde. Beispiel: $1.

Jeder Platzhalter hat einen Namen, einen „Inhalt“ und ein optionales "Beispiel" ein. Name eines Platzhalters berücksichtigt die Groß- und Kleinschreibung nicht und kann dieselben Zeichen wie ein Nachrichtenname enthalten.

Der „Inhalt“ Der Wert des Elements ist eine Zeichenfolge, die auf Ersatzzeichenfolgen verweisen kann, die angegeben werden. Verwenden Sie den Parameter 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. Die folgende Tabelle zeigt, wie $_n_-Strings Strings entsprechen. der durch den Parameter Replacements angegeben wird.

Parameter SubstitutionsWert von 1 €Wert von 2 €Wert von 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 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.

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