【问题标题】:Drupal 7 - how to set up and translate field collectionDrupal 7 - 如何设置和翻译字段集合
【发布时间】:2012-08-26 20:51:14
【问题描述】:

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

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

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

我正在使用最新的开发实体翻译一个字段收集模块。 我还尝试了为 FC 启用实体翻译的设置,但我再次无法从视图中获得正确的输出。

我哪里做错了? FC 设置、多语言设置或视图中。有没有人提示如何使 FC 可翻译?

【问题讨论】:

    标签: drupal collections field translate multilingual


    【解决方案1】:

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

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

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

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

    根据术语创建一些内容并使用解决方法翻译它们后,我尝试通过视图在面板中显示它们。

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

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

    希望它有助于了解问题出现在哪里以及如何解决这些问题。不过修复会很好=)

    【讨论】:

      【解决方案2】:

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

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

      https://drupal.org/node/1344672

      https://drupal.org/node/1316162

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

      【讨论】:

        猜你喜欢
        • 2015-02-18
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多