通过Typoscript向TYPO3扩展添加翻译



有没有办法通过Typoscript替换/覆盖扩展的默认de.localang.xlf?我想以一种在更新后仍然有效的方式更改mindshape_kokie_int的文本。

  1. 如果它是一个插件,您可以通过_LOCAL_LANG覆盖TypoScript中的翻译,这也是mindshape_cookie_hint在其文档中建议的,例如:

    plugin.tx_myext_pi1._LOCAL_LANG.de.list_mode_1 = Der erste Modus
    

    这需要您在TypoScript中管理翻译字符串,尽管这远非理想。

  2. 一个更好、更通用的解决方案是通过locallangXMLOverride注册自定义翻译。这允许您像管理其他任何地方一样管理这些翻译。

    来自文件:

    ext_localconf.php:

    $GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']['EXT:cms/locallang_tca.xlf'][] = 
    'EXT:examples/Resources/Private/Language/custom.xlf';
    $GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride'] 
    ['de']['EXT:news/Resources/Private/Language/locallang_modadministration.xlf'][] = 'EXT:examples/Resources/Private/Language/Overrides/de.locallang_modadministration.xlf';
    

    第一行显示如何用默认语言覆盖文件,第二行显示如何覆盖德语("de"(翻译。德语文件如下所示:

    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    <xliff version="1.0">
    <file source-language="en" datatype="plaintext" original="messages" date="2013-03-09T18:44:59Z" product-name="examples">
    <header/>
    <body>
    <trans-unit id="pages.title_formlabel" xml:space="preserve">
    <source>Most important tile</source>
    <target>Wichtigster Titel</target>
    </trans-unit>
    </body>
    </file>
    </xliff>
    

您正在寻找https://wiki.typo3.org/TypoScript_language_additions,覆盖(_O(

正如甘什亚姆·巴瓦在回答中所写的那样,你可以看看文件系统中插件文件夹中的locallang.xlf文件,以概述扩展名使用的密钥,然后在TypoScript模板中写入:

plugin.tx_exampleplugin_pi1._LOCAL_LANG.it {
key1 = value1
key2 = value2
...
} 

另请参阅https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Plugin/Index.html#local-lang-lang密钥标签密钥

一般来说,如果我错了,请纠正我,我认为你已经修改了插件的原始.xlf文件;由于您面临的原因,不建议执行此过程:更新会删除您的更改。

处理这个问题的一个好方法是使用扩展EXT:lfeditor(https://extensions.typo3.org/extension/lfeditor/);仔细阅读其手册。

另一来源(官方文件(:https://docs.typo3.org/typo3cms/CoreApiReference/latest/ApiOverview/Internationalization/ManagingTranslations.html?highlight=locallangxmloverride#custom-翻译

我将摘录该页面:

$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']允许覆盖locallang XML和XLIFF文件。事实上,这不仅仅是翻译的问题。默认语言文件也可以被覆盖。在XLIFF文件的情况下,语法如下(放置在扩展名的ext_localconf.php文件中(:

$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']['EXT:cms/locallang_tca.xlf'][] = 'EXT:examples/Resources/Private/Language/custom.xlf';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']['de']['EXT:news/Resources/Private/Language/locallang_modadministration.xlf'][] = 'EXT:examples/Resources/Private/Language/Overrides/de.locallang_modadministration.xlf';

第一行显示如何用默认语言覆盖文件,第二行显示如何覆盖德语("de"(翻译。德语文件如下所示:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2013-03-09T18:44:59Z" product-name="examples">
<header/>
<body>
<trans-unit id="pages.title_formlabel" xml:space="preserve">
<source>Most important tile</source>
<target>Wichtigster Titel</target>
</trans-unit>
</body>
</file>
</xliff>

使用以下打字脚本,您可以覆盖TYPO3扩展的单个翻译:

plugin.tx_myPlugin_pi1._LOCAL_LANG.de.key = value; 
plugin.tx_myPlugin_pi1._LOCAL_LANG.en.key = value;

通常用于每个扩展。希望这对你有帮助!

问候!

最新更新