【问题标题】:Drupal 7 - multilingual commentsDrupal 7 - 多语言评论
【发布时间】:2013-12-17 07:15:25
【问题描述】:

我有一个启用 i18n 和实体翻译的多语言 Drupal 7 站点。节点字段翻译工作完美,但 cmets 有问题。 我启用了评论正文字段的翻译。问题是 cmets 仅显示在节点的本机语言版本上。当我切换到外语时,会翻译节点字段,但根本不显示 cmets(即使是那些与外语匹配的语言)。我检查了“评论”表,似乎没问题,语言字段已填充。

为什么 cmets 隐藏在节点的翻译版本上?有人知道吗?

感谢您的帮助!

【问题讨论】:

  • 检查“Recent cmets”的视图,启用它,并在过滤器部分,添加当前用户语言的语言过滤器。我没有尝试,不确定它是否有效。
  • 可能会,但这意味着我需要修改所有模板以隐藏原始 cmets,重写最近 cmets 的输出,使其与原始标记和设计相匹配。这听起来有点复杂。有什么办法可以让原来的 cmets 列表起作用?
  • 使用视图模块覆盖默认视图是一种常用的技巧。您可以将“gary”视图“Recent cmets”复制到新视图。您可能需要添加语言过滤器才能显示翻译后的内容。只需点击几下。
  • 如果上述方法不起作用。最坏的情况你必须找出哪个 sql 语句是从 cmets 中选择出来的。您必须使用当前语言调试 sql 语句并添加条件(参见 drupal 7 的 sql api)。搜索 Global $language 如何获取当前语言代码。数据库中的节点表有一个语言列来标识节点的语言。默认情况下,“und”是您网站默认语言的局域网代码。
  • 你解决了这个问题了吗?我现在有同样的问题。我开始追踪 cmets 在 cmets 模块的数据链中消失的位置,但似乎向节点查询 cmets 的 comment_get_thread() 没有返回评论 ID。在这个函数中有一个标记查询:如果你从这个函数的查询中删除'node_access'标签,问题就会消失,所以我认为国际化模块的某处有一个错误的查询更改,但我没有时间找到它还没有。

标签: drupal internationalization drupal-7 drupal-modules drupal-comments


【解决方案1】:

这对我有用:

admin/config/regional/i18n/select

并取消选中“按语言过滤的内容”选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    相关资源
    最近更新 更多