【问题标题】:menu drupal in multilingual site多语言站点中的菜单 drupal
【发布时间】:2012-11-27 15:38:38
【问题描述】:

在我的 drupal 网站的 EN 版本中,我看不到任何菜单,菜单中有以下设置:

当我选择法语时一切正常,但当我选择英语时,什么都没有出现(我确实在两个菜单中都有内容)

在块部分,我看到两个菜单被禁用。

感谢帮助我:-)

【问题讨论】:

  • 我认为您必须检查每种语言的第二个选项“翻译和本地化...”..
  • 如果你使用“固定”,你需要有两个不同的菜单,一个是英文的,一个是法文的。如果您的菜单内容相同,请使用 translate 和 localize 以两种(或更多)不同语言提供相同的菜单。每个节点的菜单将有两个项目。
  • @Velthune & :对于使用视图制作的内容?没有与视图相关的语言,所以......我看到任何元素我把“翻译和本地化”用英语写成,但用法语没关系......
  • @please_reboot 我想要两个不同的菜单,如果更简单的话,没问题
  • 我突出显示了一些东西.. 我必须在法语菜单中放置一个英语菜单项(当我创建项目时),以便在我选择 EN 作为语言时显示菜单项......嗯。 .. 网站上有很多菜单,所以我想制作 2 个不同的菜单... 有人可以帮我吗?

标签: php drupal drupal-7 drupal-modules


【解决方案1】:

我建议使用menu block contrib 模块。

此模块将允许您将菜单视为块。

创建 2 个块(每个菜单 1 个),在块管理页面中您可以为每个块指定语言。

【讨论】:

  • 坏主意但更好的解决方案:-/
【解决方案2】:

由于通常有几种方法可以通过 drupal 实现目标,因此这里有一个解决方法的建议:

  • 创建两个没有语言设置的菜单。
  • 尝试将所有菜单项设置为中性语言,以便它们显示 两种语言。 (测试一下)
  • 将菜单作为块分配给正确的区域。
  • 然后使用i18n module 来控制特定语言 显示在块级别而不是菜单或菜单项级别。 (请注意,您需要 i18n_block 模块来执行 i18n 模块的一部分)
  • 如果您需要对块进行其他设置,请参阅前面提到的 menu block 模块。
  • 还要确保检查internationalisation documentation

【讨论】:

    【解决方案3】:

    我发现对于多语言网站来说,拥有两个菜单总是更容易。 我也更喜欢为不同的语言使用不同的视图页面,这样我就不会遇到问题。这样我就可以轻松地将路径添加到相应的菜单。每当我尝试结合多语言视图和菜单时,都会遇到很多问题。

    在您包含的屏幕截图中,我可以看到您有两个菜单。

    首先,我发现根据菜单的语言命名和命名菜单更容易,因为否则很容易混淆,即主菜单英语 - main_menu_en。

    其次,您的法语菜单可能有效,因为它是由您的主题打印的,该主题配置为在特定区域呈现主菜单链接。要使您的英文菜单正常工作,您必须:

    a) 在您的主题中添加所需的代码,或

    b) 删除主题中主菜单的代码,并通过块管理页面使用放置在所需区域的 2 个菜单块。在每个块的块设置中,您可以选择显示它们的语言。

    正如其他人所说,您需要:menu_block

    如果您在从主题中添加或删除菜单方面需要帮助,请告诉我们您使用的是哪个主题。

    【讨论】:

      【解决方案4】:

      有七个步骤可以实现:

      第 1 步:启用所有模块

      • 内容翻译(核心模块)
      • 语言环境(核心模块)
      • 国际化
      • 变量

      可选:

      • 语言图标
      • 翻译概述

      第 2 步:添加语言

      转到配置 > 区域和语言 > 语言

      默认语言为英语,您可以使用“添加语言”链接添加预定义或自定义语言。

      第 3 步:检测和选择

      对于本教程,我选择使用“网址前缀”设置。这告诉 Drupal 对西班牙语使用 domain.com/es,对德语使用 domain.com/de。

      第 4 步:为内容类型启用多语言支持

      创建或编辑现有内容类型,然后点击“发布选项”。在这里,您将看到启用多语言支持的选项。选择“已启用,带翻译。这将允许您将一个节点翻译成多种语言。

      第 5 步:创建英文内容

      创建节点时,请确保使用正确的语言,而不仅仅是“中性语言”。这很重要,因为当您创建 URL 别名和菜单链接标题时,它会知道将链接放入哪个菜单。

      创建节点后,您应该会看到一个“翻译”标签。如果您单击此选项卡,您将能够向此节点添加翻译。

      请注意,如果您安装了“翻译概述”模块(我强烈建议您这样做),您会看到一个漂亮的小窗口,告诉您您添加了哪些语言,哪些需要优先考虑,等等

      第 6 步:创建翻译内容

      当你创建你的翻译时,给它一个翻译后的菜单链接标题,但给它与原始节点相同的 url 别名。因为您安装了多语言支持,所以使用相同的 URL 别名不会给您任何错误(请记住,它将西班牙节点放在 domain.com/es 上,将德语节点放在 domain.com/de 上)。

      第 7 步:添加对多语言菜单的支持

      转到结构 > 菜单 > 主菜单。编辑菜单并启用“翻译和本地化”选项。这将根据用户在站点范围内选择的语言切换您的菜单项。

      你会看到你有英文菜单项和西班牙项。您可以像你想要的那样订购这些,但知道只有西班牙语链接将在选中西班牙语作为主菜单时出现(因为URL会说Domain.com/ES)。

      你的最终产品:在前端你可以看到它的动作。

      你也可以使用i18n_menu_navigation_links函数。

      【讨论】:

      • 谢谢@John,但我做了所有的事情(我更新了操作),但菜单 EN 没有显示任何内容...如果你有空,可以在此处使用 tamviewer :-)
      • 最欢迎@clement,你能看到这个视频教程来完成它吗youtube.com/watch?v=Sx9lJ_hOrCw
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多