【发布时间】:2017-03-02 21:47:25
【问题描述】:
我有一个JS代码,上面写着
!{JSON.stringify(t("some.thing"))};
它用于 i18next 的翻译/国际化。但我不明白!{...} 部分。
我知道JSON.stringify 的作用。我知道否定运算符! 是什么意思。我不明白它与 t() 函数的结合:当我在没有 !{...} 部分的情况下使用它时,它会说
Uncaught ReferenceError: t is not defined
但是使用!{...} 部分,它可以正确翻译some.thing 部分。
some.thing 是针对不同语言的不同 JSON 文件中的键,例如英文 JSON 文件:
{
"some": {"thing": "something"}
}
还有一个用于德语的 JSON 文件:
{
"some": {"thing": "irgendetwas"}
}
根据您计算机上设置的语言,函数t("some.thing") 将返回相应的值。如果您的计算机的语言设置为英语,它将返回“something”。如果是德语,它将返回“irgendetwas”。
【问题讨论】:
-
是缩小代码吗?
t是什么功能? -
这会返回一个对象吗? t("some.thing");将此结果打印到控制台,而不使用所有其他代码。
-
@AniketSinha t() 是来自 i18next 国际化函数的函数。
-
@spozun: 在没有任何其他代码的情况下编写 t() 即 console.log(t("some.thing)); 返回错误消息 t() 未定义。但是把 t () 函数进入 !{...} 部分使其再次定义.....这就是我不明白的... :(
-
它会返回一个对象吗?使用调试器,在这一行放置一个断点,然后将鼠标悬停在
t上以找出它的实现。
标签: javascript json internationalization i18next