【发布时间】:2018-07-31 10:43:46
【问题描述】:
有没有办法通过 Typoscript 替换/覆盖扩展的默认 de.locallang.xlf?我想更改 mindshape_cookie_hint 的文本,使其能够在更新后继续存在。
【问题讨论】:
标签: localization typo3 translation extbase
有没有办法通过 Typoscript 替换/覆盖扩展的默认 de.locallang.xlf?我想更改 mindshape_cookie_hint 的文本,使其能够在更新后继续存在。
【问题讨论】:
标签: localization typo3 translation extbase
如果是插件,你可以override translations in TypoScript via _LOCAL_LANG 这也是mindshape_cookie_hint suggests in its docs。
这需要您在 TypoScript 中管理翻译字符串,但这远非理想。一个更好更通用的解决方案是注册custom translations via locallangXMLOverride。这使您可以像管理其他任何地方一样管理这些翻译。
【讨论】:
你正在寻找这个https://wiki.typo3.org/TypoScript_language_additions,_override
正如 Ghanshyam Bhava 在他的回答中所写,你可以看看
文件系统中插件文件夹中的locallang.xlf 文件以概述扩展使用的键,然后在您的 TypoScript 模板中写入:
plugin.tx_exampleplugin_pi1._LOCAL_LANG.it {
key1 = value1
key2 = value2
...
}
一般来说,如果我错了,请纠正我,我认为你修改了插件的原始 .xlf 文件;由于您面临的原因,不建议使用此过程:更新会删除您的更改。
处理此问题的一个好方法是使用扩展名 EXT:lfeditor (https://extensions.typo3.org/extension/lfeditor/);仔细阅读它的手册。
我将从该页面摘录:
$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;
通常对于每个扩展都是通用的。希望对您有所帮助!
您好!
【讨论】: