通过Typoscript将翻译添加到TYPO3扩展

时间:2018-07-31 10:43:46

标签: localization typo3 translation extbase

是否可以通过Typoscript替换/覆盖扩展名的默认de.locallang.xlf?我想以一种可以在更新后保存下来的方式更改mindshape_cookie_hint的文本。

3 个答案:

答案 0 :(得分:5)

如果它是插件,则可以override translations in TypoScript via _LOCAL_LANG,也可以mindshape_cookie_hint suggests in its docs

这要求您在TypoScript中管理翻译字符串,尽管这远非理想。更好,更通用的解决方案是注册custom translations via locallangXMLOverride。这样您就可以像其他地方一样管理这些翻译。

答案 1 :(得分:1)

您正在寻找这个https://wiki.typo3.org/TypoScript_language_additions,_override

正如Ghanshyam Bhava在他的回答中所写,您可以看看 文件系统中plugin文件夹中的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-key-label-key

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

例如,使用扩展名EXT:lfeditor(https://extensions.typo3.org/extension/lfeditor/)可以解决此问题。仔细阅读其手册。

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

我将从该页面摘录:

  

$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>

答案 2 :(得分:0)

使用下面的打字稿,您可以覆盖TYPO3扩展程序的各个翻译:

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

通常每个扩展名都通用。希望这会对您有所帮助!

问候!