2016-10-20 1 views
0

Ich habe eine JS-Code bekam wo es heißtWas bedeutet die Notation! {JSON.stringify (t ("some.thing"))}; bedeuten?

!{JSON.stringify(t("some.thing"))}; 

Es ist für Übersetzung/Internationalisierung mit i18next verwendet wird. Aber ich verstehe den !{...} Teil nicht.

Ich weiß, was die JSON.stringify tut. Ich weiß was der Negationsoperator ! bedeutet. Ich verstehe nicht, es in Verbindung mit der t() - Funktion: Wenn ich es ohne den Teil !{...} verwenden, heißt es

Uncaught ReferenceError: t is not defined 

Aber mit dem !{...} Teil, übersetzen sie den Teil some.thing richtig.

some.thing ist ein Schlüssel in verschiedenen JSON-Dateien für verschiedene Sprachen, z.B. eine JSON-Datei für Englisch:

{ 
"some": {"thing": "something"} 
} 

und eine JSON-Datei für Deutsch:

{ 
"some": {"thing": "irgendetwas"} 
} 

Abhängig davon, welche Sprache auf dem Computer festgelegt ist, wird die Funktion t("some.thing") den entsprechenden Wert zurück. Wenn die Sprache Ihres Computers auf Englisch eingestellt ist, wird "etwas" zurückgegeben. Wenn es in Deutsch ist, wird es "irgentwas" zurückgeben.

+0

Ist es ein verkleinertes Code? Welche Funktion hat 't'? –

+0

Gibt dies ein Objekt zurück? t ("etwas.etwas"); Drucken Sie dieses Ergebnis ohne den anderen Code auf der Konsole aus. – spozun

+0

@AniketSinha das t() ist eine Funktion von i18next Internationalisierungsfunktion. – thadeuszlay

Antwort

-1

JSON.stringify ist ein Javascript eingebaute Funktion, um ein JSON Objekt in eine Zeichenfolge zu konvertieren. Der umgekehrte Vorgang wäre JSON.parse().

In Ihrem Code scheint es, t('some.thing') ist eine minimierte Funktion, die ein Objekt zurückgibt, das in eine string konvertiert und dann mit einem Negationsoperator ! überprüft wird.

-1

Die ! ist not equal to.

Technisch wäre dies übersetzen zu:

If the output of JSON.stringify(t("some.thing")) is empty or null . Return true

Mehr auf JavaScript Comparison and Logical Operators

+1

Das war nicht das, was ich gefragt habe .... aber danke, dass du dir deine wertvolle Zeit genommen hast, um zu antworten. – thadeuszlay

+0

@thadeuszlay Gern geschehen. Ich denke, t() ist eine Art Localizer, wenn Sie verstehen, was ich meine. – anned20

+0

Ja, es ist ein Localizer. Es ist eine Funktion der Internationalisierung, wie ich in meiner Frage erwähnt habe. – thadeuszlay