繁体   English   中英

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

[英]Add translation to TYPO3 Extension via Typoscript

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

如果是插件,则可以通过_LOCAL_LANG覆盖TypoScript中的翻译,这也是mindshape_cookie_hint 在其文档中建议的内容

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

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

就像Ghanshyam Bhava在他的答案中所写的那样,您只需看一下文件系统中plugin文件夹中的locallang.xlf文件,就可以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> 

使用以下拼写,您可以覆盖TYPO3扩展的各个翻译:

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

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

问候!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM