Drupal 7 - 如何设置和翻译字段集合

时间:2012-09-01 06:29:52

标签: drupal collections field translate multilingual

我有分类术语,字段集合字段设置为无限值。 FC包含很少的texfield,textarea和image字段。 FC及其字段设置为由用户翻译。 分类术语是本地化的 - 所有语言的所有术语都是相同的,只是它们被翻译。我为分类术语和节点启用了实体转换,但没有为FC启用实体转换,因为它会通知无效的基本路径。

使用此配置:我创建术语并保存它,在初始创建后,我可以添加任意数量的FC并保存它们。在翻译表格上,我可以为他们添加翻译。当保存的值保存为不同的语言时。

当我创建与FC有关系的视图时,出现问题,添加FC字段并将上下文过滤器设置为termID(通过分类术语面板显示此视图)。字段语言设置设置为当前用户语言。在使用手动设置termID的视图预览中,我在url(en / admin / structure / views ..)中看到了语言的正确结果,如果我更改了语言前缀,则会得到正确的结果。但是在学期页面上它没有显示任何内容。

我正在使用最新的dev entiy翻译字段收集模块。 我还尝试了为FC启用实体转换的设置,但我再次从视图中得不到正确的输出。

我在哪里做错了? FC设置,多语言设置或视图。有没有人提示如何让FC翻译?

2 个答案:

答案 0 :(得分:4)

我重新测试了干净安装。所有这些都适用于我在#9中描述的内容。相同的结果,但一些新的/确认的观察和可能的解决方法:

第一次翻译字段时,FC中存在错误,未正确保存值:

  • 保存了值,但是当我刷新编辑页面时,字段存在但是存在 空/空白,默认语言上的字段正常

    • 真正发生的事情:保存FC字段的翻译时,它们错误地链接到默认语言而不是默认语言,也不会在重新打开默认语言时显示,以便可以删除它们。如果你像我一样在视图中意外地捕捉它们(这一段时间这会误导我,因为标题是相同的),这可能会很糟糕。
    • 可能的解决方法:首次翻译时,您必须删除从默认语言复制的值并保存,然后您可以输入翻译的值
    • 启用FC的ET:同样的问题和解决方法

在根据条款创建一些内容并使用变通方法对其进行翻译后,我尝试通过视图在面板中显示它们。

  • 我创建了一个面板并设置了我正在使用的分类词汇表的选择,并在内容下我创建了“新的自定义内容”,其中我包含了一些替换 - 对于FC字段%term:field_test_fc(这是我的测试内容)
    • 当我更改语言时,值会相应地更改为所选语言 替换呈现FC的所有字段并以正确的语言显示它们 这就是为什么这个问题困扰我...它也应该在视图上工作,因为如果术语本身可以区分FC字段的不同语言,那么可以通过面板查看
  • 我创建了一个视图(页面),其中列出了使用该FC的关系按术语名称分组的所有术语的所有FC字段
    • 内容确实会根据所选语言进行更改=)
  • 我创建了另一个视图(内容窗格),只是添加了上下文过滤器,将其设置为termID并将其附加到面板
    • 视图仅显示保存期限时最后使用的语言的FC字段。这意味着当以默认语言编辑和保存术语时,视图将仅显示默认语言的字段。很奇怪:S
  • 启用FC的ET:它打破了两个视图(显示所有语言的字段),通过添加基于FC字段的过滤器修复:语言并将其设置为当前用户语言
    • 面板视图仍未按预期工作,但我知道上下文过滤器存在问题
    • 我必须做的是从上下文过滤器(termID)中删除验证标准

解决上一个问题后,面板视图正常工作,两种语言的查看术语显示正确(已翻译)FC字段=)。

希望它有助于了解问题发生的位置以及如何解决问题。修复会很好但是=)

答案 1 :(得分:1)

作为模块的字段集合尚未修补以支持多语言。争论的焦点是,字段集合本身是否应该设置为语言中立,允许底层字段是特定于语言的。

但是,字段收集模块本身目前不支持多语言。 Drupal.org上有许多与此相关的补丁,包括以下两个主要补丁线程:

https://drupal.org/node/1344672

https://drupal.org/node/1316162

Drupal 7的Lingotek翻译模块成功地翻译了字段集并显示它们,因为它结合了使用hook_entity_load,hook_entity_update和不依赖于entity_translation模块的翻译过程的字段集合模块的限制。 #39;用户界面。