簡體   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