流畅,从另一个扩展程序访问 locallang.xlf

Fluid, access locallang.xlf from another extension

我有自己的模板,在这个模板中我覆盖了 tx_news 的模板:

plugin.tx_news.view {

    templateRootPaths.1 = EXT:my_template/Resources/Private/News/Templates/
    partialRootPaths.1  = EXT:my_template/Resources/Private/News/Partials/
    layoutRootPaths.1 = EXT:my_template/Resources/Private/News/Layouts/
}

现在我想从 my_template 访问 locallang.xlf。我在 my_template 的 ext_table.php 中试过这个:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
    'tt_content.pi_flexform.news_pi1.list', 'EXT:my_template/Resources/Private/Language/locallang.xlf');

在这个locallang.xlf中我有:

    <trans-unit id="tx_mytemplate.news">
        <source>NEWSTEST</source>
    </trans-unit>

然后在 tx_news List.html 我有:

<f:translate key="tx_mytemplate.news" />

但是我没有得到任何输出。

有两种方法可以完成您正在尝试执行的任务。

  1. 将参数 extensionName 添加到 f:translate ViewHelper,如下所示:<f:translate key="tx_mytemplate.news" extensionName="MyTemplate" />
  2. 像这样将您的本地语言密钥添加为完整路径<f:translate key="LLL:EXT:my_template/Resources/Private/Language/locallang.xlf:tx_mytemplate.news" />

我更喜欢第一种方式,因为它更短,你可以让 extbase/fluid 决定在哪里搜索文件。