【问题标题】:Add translation to TYPO3 Extension via Typoscript通过 Typoscript 将翻译添加到 TYPO3 扩展
【发布时间】:2018-07-31 10:43:46
【问题描述】:

有没有办法通过 Typoscript 替换/覆盖扩展的默认 de.locallang.xlf?我想更改 mindshape_cookie_hint 的文本,使其能够在更新后继续存在。

【问题讨论】:

    标签: localization typo3 translation extbase


    【解决方案1】:

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

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

    【讨论】:

    • TYPO3 服务器的链接也发生了变化,如果您可以直接在答案中添加基本信息,那就太好了。 Stack Overflow 的策略是避免仅链接的答案。谢谢!
    【解决方案2】:

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

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

    【讨论】:

    • 抱歉,Ricardo,有点紧张:TYPO3 服务器的链接也发生了变化,如果您可以直接在答案中添加基本信息,那就太好了。 Stack Overflow 的策略是避免仅链接的答案。谢谢!
    【解决方案3】:

    使用以下排版,您可以覆盖 TYPO3 扩展的个别翻译:

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

    通常对于每个扩展都是通用的。希望对您有所帮助!

    您好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      相关资源
      最近更新 更多