2016-10-20 3 views
0

У меня есть код JS, где он говоритЧто обозначается! {JSON.stringify (t ("some.thing"))}; имею в виду?

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

Он используется для перевода/интернационализации с i18next. Но я не понимаю часть !{...}.

Я знаю, что делает JSON.stringify. Я знаю, что означает оператор отрицания !. Я не понимаю, в сочетании с т() - функция: Когда я использую его без !{...} части, он говорит

Uncaught ReferenceError: t is not defined 

Но с !{...} части, он переводит часть some.thing правильно.

some.thing является ключом в различных файлах JSON для разных языков, например. JSON-файл на английском:

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

и файл в формате JSON для немецкого языка:

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

В зависимости от того, какой язык установлен на вашем компьютере, то функция t("some.thing") возвращает соответствующее значение. Если язык вашего компьютера установлен на английский, он вернет «что-то». Если это на немецком языке, оно вернет «irgendetwas».

+0

ли это уменьшенный код? Какая функция 't'? –

+0

Это возвращает объект? т ("some.thing"); напечатайте этот результат на консоли без всего другого кода. – spozun

+0

@AniketSinha t() является функцией от функции интернационализации i18next. – thadeuszlay

ответ

1

Фигурные скобки не имеют ничего общего с объектами и восклицательный знак не имеет ничего общего с отрицанием. Это Джейд синтаксис для переменных, используемых в JavaScript:

http://naltatis.github.io/jade-syntax-docs/

-1

JSON.stringify является Javascript встроенная функция для преобразования объекта JSON в строку. Обратная операция будет JSON.parse().

В вашем коде кажется, что t('some.thing') является миниатюрной функцией, которая возвращает объект, который преобразуется в string, а затем проверяется оператором отрицания !.

-1

! является not equal to.

Технически это означало бы, чтобы:

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

Подробнее о JavaScript Comparison and Logical Operators

+1

Это было не то, что я спросил ... но спасибо за то, что вы потратили свое драгоценное время, чтобы ответить. – thadeuszlay

+0

@thadeuszlay Добро пожаловать. Я предполагаю, что t() является своего рода локализатором, если вы понимаете, что я имею в виду. – anned20

+0

Да, это локализатор. Это функция от i18next интернационализации, о которой я упоминал в своем вопросе. – thadeuszlay

 Смежные вопросы

  • Нет связанных вопросов^_^