使用 Locale 和 Internationalization (i18n) 模块,我设置了一个多语言站点,并在主菜单中添加了一些内容节点和翻译。
更改站点语言时,已翻译节点的菜单项会消失。我理解这是因为在创建翻译时,需要再次将节点添加到菜单结构中。这是正确的吗?
我有四种语言,主菜单可能有 300 页。因此,添加翻译后的页面后,主菜单中将有 1200 个菜单项。这将非常难以管理。
有没有更好的方法,您只需将节点添加到菜单一次?
最佳答案
it's necessary to add the node to the menu structure again. Is this correct?
是
首先您可以在这里阅读“菜单翻译”部分:http://evolvingweb.ca/story/drupal-7-multilingual-whats-new-i18n
我主要使用“翻译和本地化”选项。在这种情况下,我只有一个适用于所有语言的菜单。
翻译和本地化
如果我有一些在我网站上的所有语言中共享菜单树中相同路径和位置的菜单项,我首先创建“语言中性”菜单项(例如 View 或特殊菜单项). 然后,我可以在编辑表单的“翻译”选项卡中(仅)翻译这些菜单项的标签。
对于其余部分,我转到每个节点编辑表单并使用“菜单设置”选项卡中的“提供菜单链接”选项。这样做的好处是可以自动设置正确的语言。
请记住输入正确的语言前缀以查看给定语言的菜单。
例如对于主菜单:
- 默认站点语言:/admin/structure/menu/manage/main-menu
- FR:/fr/admin/structure/menu/manage/main-menu
- ES:/es/admin/structure/menu/manage/main-menu
固定语言
您也可以使用一种菜单/语言。 在这种情况下,您需要设置“固定语言”选项。
对于主菜单,在此处启用“主链接来源”多语言变量:admin/config/regional/i18n/variable 然后在 admin/structure/menu/settings 设置正确的选项
对于其他菜单或menu blocks使用 block 配置中的“语言”选项卡或 context模块(如果您的网站上已有)。
关于德鲁帕尔 7 : How to add translated nodes to the menu system,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850092/