2015-10-14 46 views
2

我想使用i18next作为实际用户名输入“您已经以[用户名]登录”,但是我似乎无法让他们一起工作。连接i18next和Jade变量

据我所知,i18n覆盖整个<p>显示“您已登录为”。用户名只显示,如果我把它放在一个单独<p>,就像这样:

if (user) 
    p(data-i18n='markup.loggedInAs') 
    p #{user.username} 

不过,当然,它被呈现为一个单独的<p>,这不是我想要的。我希望他们在一条线上,理想情况下在同一个<p>内。有一个窍门吗?

此:

if (user) 
    p(data-i18n='markup.loggedInAs') 
    | #{user.username} 

不起作用。用户名根本不显示:/

感谢您的帮助。

+1

我不熟悉玉石,但我知道i18next支持变量替换与翻译。编辑:不知道如何停止标记,但myVar是由两个下划线包围。 // given resources { 'en-US':{translation:{key:'__myVar__ is important'}} }; (“key”,{myVar:“variables”}); // - >变量很重要 – AtheistP3ace

+0

但是这会花费我很大的灵活性,如果我想在两个不同的地方使用变量(如用户名,在这种情况下) 我总是要预格式化整个字符串,对吗? – user3787706

+1

是的,但翻译很难动态翻译,因为单词的顺序和语言之间的差异并不大。您以[用户名]在各种语言中的差异很大而登录,因此使用翻译后的字符串并仅替换一个变量意味着灵活性越低,可译性越好。 – AtheistP3ace

回答

0

尽管您对帖子的评论中的观点是有效的(词序在翻译中是棘手的),但我想我会指出如何解决眼前的问题。

p 
    span(data-i18n='markup.loggedInAs') 
    span #{user.username} 

请注意,这并未经过测试,但我确定您可以看到它(或类似的)是如何工作的。 span是标记不代表实际段落内容的更好选择。

+0

谢谢,这适用于我的问题:) 我要深入一点的字排序。现在,这足以:) – user3787706