I18Next和Aurelia的动态翻译

时间:2017-11-16 17:21:15

标签: javascript aurelia i18next

我有一个aurelia应用程序,我正在整合I18Next,我有Aurelia集成工作,一切顺利,直到我找到我们的菜单。对于普通翻译,我们只是使用像这样的html属性......

i=3
orderl='0,1.2'
orderr=',2.2'
for k in UNITAS*/*seq_cut
do
    if [ -a final.results ]
    then
        join -a1 -a2 -e "0" -o "$orderl$orderr" final.results $k  > tmp.res
        orderl="$orderl,1.$i"
        i=$((i+1))
        mv tmp.res final.results
    else
        cp $k final.results
    fi
done

然后在translation.json文件中

<a href="somelink" i18n="link1">Link 1</a>

这很有效,它完美地翻译。我无法弄清楚的问题是如何处理动态内容,例如我们的菜单。我们正在重复制作菜单,但是如何告诉I18Next从translations.json文件中使用哪个键呢?这是我的意思的简化示例。

{
  link1: "some translation here"
}

鉴于上面的布局,你怎么能告诉I18Next用于翻译的键,因为它是在一个循环中完成的。我尝试过一些东西,但都失败了。我真的被困在这里,我需要使用translation.json文件进行翻译,但我不知道如何告诉它使用什么密钥进行翻译,是“家”,“关于”,“联系” ,......?任何帮助将非常感激。谢谢。

1 个答案:

答案 0 :(得分:2)

就像任何其他属性一样,您可以使用aurelia绑定到您的i18n属性。使用以下语法:

<a i18n.bind="'navigation.' + item.title"></a>

I18n将在资源文件中查找名为navigation.[item.title]的密钥,因此如果item.title变量等于&#34; home&#34;,它将查找名为{的密钥{1}}。