通过Typoscript将翻译添加到TYPO3 Extension

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Typoscript将翻译添加到TYPO3 Extension相关的知识,希望对你有一定的参考价值。

有没有办法通过Typoscript替换/覆盖扩展的默认de.locallang.xlf?我希望以更新后的方式更改mindshape_cookie_hint的文本。

答案

如果它是一个插件你可以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在他的回答中所写的那样,您可以查看文件系统中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>
另一答案

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

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

每个扩展通常很常见。希望对你有帮助!

问候!

以上是关于通过Typoscript将翻译添加到TYPO3 Extension的主要内容,如果未能解决你的问题,请参考以下文章

TYPO3/TypoScript - 在 DataProcessor 中使用 FIELD() 自定义排序

在 TYPO3 CMS 中调试 Typoscript 的最佳方法是啥?

TYPO3 6.2 性能、Typoscript 选择、Typoscript 缓存

typescript Typo3:本年度的Typoscript版权

TYPO3 10.4 前端未找到新字段

Fluid Powered TYPO3 FLUX Fluidcontent - 前端没有输出?