[英]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.