使用 I18Next 和 Aurelia 进行动态翻译
dynamic translation with I18Next and Aurelia
我有一个正在与 I18Next 集成的 aurelia 应用程序,我的 Aurelia 集成工作正常并且一切顺利,直到我看到我们的菜单。对于正常的翻译,我们只是使用 html 属性,就像这样...
<a href="somelink" i18n="link1">Link 1</a>
然后在 translation.json 个文件中你有
{
link1: "some translation here"
}
效果很好,翻译得很完美。我不知道的问题是如何处理动态的东西,比如我们的菜单。我们正在做一个 repeat.for 来制作菜单,但是我如何告诉 I18Next 使用 translations.json 文件中的哪个键?这是我的意思的一个简化示例。
<li repeat.for="item of router.navigation">
<a href.bind="item.href" class="${item.isActive? 'is_active' : ''}>
${item.title}
</a>
</li>
鉴于上面的布局,你怎么可能告诉 I18Next 使用什么键进行翻译,因为它是在循环中完成的。我尝试了几件事,但都失败了。我真的被困在这里,我需要使用 translation.json 文件来翻译它,但我不知道如何告诉它使用什么键进行翻译,是 "home"、"about", "contact", ...?任何帮助将非常感激。谢谢。
就像任何其他属性一样,您可以使用 aurelia 绑定到您的 i18n 属性。使用以下语法:
<a i18n.bind="'navigation.' + item.title"></a>
I18n 将在您的资源文件中查找名为 navigation.[item.title]
的键,因此如果 item.title
变量等于 "home",它将查找名为 navigation.home
.
我有一个正在与 I18Next 集成的 aurelia 应用程序,我的 Aurelia 集成工作正常并且一切顺利,直到我看到我们的菜单。对于正常的翻译,我们只是使用 html 属性,就像这样...
<a href="somelink" i18n="link1">Link 1</a>
然后在 translation.json 个文件中你有
{
link1: "some translation here"
}
效果很好,翻译得很完美。我不知道的问题是如何处理动态的东西,比如我们的菜单。我们正在做一个 repeat.for 来制作菜单,但是我如何告诉 I18Next 使用 translations.json 文件中的哪个键?这是我的意思的一个简化示例。
<li repeat.for="item of router.navigation">
<a href.bind="item.href" class="${item.isActive? 'is_active' : ''}>
${item.title}
</a>
</li>
鉴于上面的布局,你怎么可能告诉 I18Next 使用什么键进行翻译,因为它是在循环中完成的。我尝试了几件事,但都失败了。我真的被困在这里,我需要使用 translation.json 文件来翻译它,但我不知道如何告诉它使用什么键进行翻译,是 "home"、"about", "contact", ...?任何帮助将非常感激。谢谢。
就像任何其他属性一样,您可以使用 aurelia 绑定到您的 i18n 属性。使用以下语法:
<a i18n.bind="'navigation.' + item.title"></a>
I18n 将在您的资源文件中查找名为 navigation.[item.title]
的键,因此如果 item.title
变量等于 "home",它将查找名为 navigation.home
.