1

我只找到了该主题的旧条目,因此我尝试对其进行解释:

我们有一个 TYPO3 11.5.x,有 8 种语言,每晚通过 DeepL 翻译 7 种语言,只有德语是主要语言。这就是我们将后端用户的语言限制为德语的原因。对他们来说更容易掌握和维护。

但是现在有一个很大的问题。由于“1:尝试在没有删除权限的情况下删除记录”,他们无法删除、复制和粘贴或剪切和粘贴德语记录。我理解这样做的原因,但另一方面,他们有权删除主要语言。翻译的记录只是参考,应该可以删除。是否有补丁,技巧或黑客攻击?很乐意欣赏任何想法。

4

3 回答 3

1

主要语言之间通过其翻译的引用是TYPO3中翻译的核心概念。因此,如果不允许编辑/删除其他语言,编辑可能永远无法删除主要语言,因为这样受限的编辑将能够删除他/她无权访问的内容。

如果您想分别处理主要语言和翻译,您必须将翻译后的内容元素创建为使用不同语言的副本。但是您将无法再识别父元素。您必须实现自己的逻辑才能知道哪个 CE 是哪个翻译的父级。

也可以但不推荐在每种语言的页面树中都有一个分支。这样,您可以独立于其他分支更新每个分支翻译。这也需要您实现自定义逻辑。

也许您也可以使用工作区来做到这一点。一种用于编辑内容,一种用于发布内容,包括生成的翻译。我无法判断这个想法是否真的有效,因为我还没有真正使用 TYPO3 设置工作区环境。

于 2022-03-04T11:33:35.053 回答
0

您是否可以作为系统管理员执行此操作?

在typo3conf/LocalConfiguration.php 中添加用户ID 1 和2,例如:

'SYS' => [
   'systemMaintainers' => [
        1,
        2,
    ],
],
于 2022-03-03T17:45:40.973 回答
0

如果您必须通过“解决”实现来完成某些事情,那可能不是最好的主意。

但是,如果您想查看是否可能,您可以使用 DataHandler 挂钩解决此问题,

对于这些类型的事情,我建议使用调试器逐步了解 TYPO3 内部的工作原理。TYPO3 使用考虑权限的 DataHandler。

例如,对于删除的情况,您必须检查当前用户是否有权删除记录/页面/页面,但忽略翻译的权限。

在删除之前调用了DataHandler::deleteAction钩子。processCmdmap_deleteAction到目前为止,一切都很好。但是你必须自己在你的钩子中检查权限处理翻译的删除。

(您可以看到在 DataHandler 中始终考虑权限。要覆盖它,您必须自己处理很多功能。我不建议这样做。)

如果您不希望您的编辑篡改翻译,您也许可以以不同的方式解决这个问题。

于 2022-03-04T21:59:02.427 回答