繁体   English   中英

Typo3 Extbase 中的翻译不适用于内联关系

[英]Typo3 Translations in Extbase not working with inline relations

我创建了一个使用主 controller 的扩展,它可以添加内联关系。 我正在使用 Typo3 11。

如果我翻译关系,而不是主条目,那么已经翻译的关系的语言也是默认语言。

没关系,如果我将语言设置为“全部”,结果仍然是一样的。 我真的必须将主要条目翻译成另一种语言,尽管这不是必需的。

有没有办法解决这个问题?

有一个简单的经验法则:仅对仅包含子元素的父元素使用“所有”语言,这些子元素也应该在“所有”语言中可见。

一旦应该有翻译的子元素,您应该首先翻译父元素并且通常选择“连接模式”,这将使默认语言领先于目标语言行为。

如果不同子元素的数量存在差异和/或目标语言中存在默认语言中不存在的子元素,则您应该使用 go 进行“自由模式”翻译。

所以实际上在你的情况下没有“虽然它没有必要”。

我不知道为什么,但是如果我在我的“missingTranslationArray”内联 IRRE 上集成了一个“foreach”,就会在我的模板顶部显示翻译。 foreach 在我的模板中没有意义并不重要,但现在显示了缺少的翻译。

<f:for each="{myMissingTranslations}" as="myMissingTranslation"></f:for>

对我来说这有帮助,但我不知道为什么有必要。

对于所有遇到同样问题的人,现在我有了解决方案。

重写 controller 中的“showAction”,如:

从:

/**
 * action show
* 
 * @param \VENDOR\myExtension\Domain\Model\controller $controller
 * @return void
 */
public function showAction(\VENDOR\myExtension\Domain\Model\controller $controller)
{

到:

 /**
 * action show
 * 
 * @return void
 */
public function showAction()
{

并只提交“uid”。 在 controller 内部,使用“findbyuid”存储库作为条目。

$id = $this->request->getArguments('entry');
$entry = $this->entryRepository->findByUid($id['entry']); 
$this->view->assign('entries', $entry);  

模板内每个的空存储库也是必需的。 为此,在每个动作中呈现每个存储库。

IE:

<f:for each="{myRelation1}" as="myRelation1"></f:for>
<f:for each="{myRelation2}" as="myRelation2"></f:for>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM