[Frage] Problem mit f:translate - Basis Template als Extension [Gelöst] TYPO3-Version: 6.1.0


  • 0 x
    23. 09. 2013, 13:37

    Hallo,
    ich habe eine "Extension" erstellt, welche das Basis-Template für das Projekt enthält.

    Hierzu habe ich in der ext_tables.php über addStaticFile dem T3 System meine "Extension" bekannt gemacht und im Backend eingebunden.
    Funktioniert auch tadellos.
    (Dies mache ich hauptsächlich deswegen, damit ich z.B. via GIT eine saubere Versionierung für das TypoScript (und den HTML/CSS/JS ... ) Code habe, sowie zur schnelleren Konfiguration und Einbindung des Templates).

    Ich habe jedoch ein einziges Problem, der <f:translate> View-Helper funktioniert nicht wie erwartet.
    In anderen Plugins funktioniert alles wunderbar.

    Ich konnte herausfinden, dass wohl durch diese Methode nicht der ExtensionName mit übergeben wird. Daraufhin habe ich den Viewhelper wie folgt geschrieben:

    1. <f:translate id="mail" extensionName="KssTemplate" />

    Das hat geholfen und mir wurde der in der locallang.xlf hinterlegte Wert ausgegeben.

    Leider funktioniert es nur für die Default-Sprache (bei mir Deutsch L=0, Englisch L=1 ).

    Schalte ich auf Englisch um, verwendet er leider nicht die Übersetzung sonder zeigt weiterhin den deutschen Wert... :-/

    locallang.xlf

    1. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    2. <xliff version="1.0">
    3. <file source-language="en" datatype="plaintext" original="messages" date="2013-03-07T13:23:42Z" product-name="kss_template">
    4. <header/>
    5. <body>
    6. <trans-unit id="phone">
    7. <source>Phone:</source>
    8. </trans-unit>
    9. <trans-unit id="mail">
    10. <source>Mail:</source>
    11. </trans-unit>
    12. <trans-unit id="imprint">
    13. <source>Imprint</source>
    14. </trans-unit>
    15. </body>
    16. </file>
    17. </xliff>

    de.locallang.xlf

    1. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    2. <xliff version="1.0">
    3. <file source-language="en" target-language="de" datatype="plaintext" original="messages" date="2013-03-07T13:23:42Z" product-name="kss_template">
    4. <header/>
    5. <body>
    6. <trans-unit id="phone">
    7. <source>Phone:</source>
    8. <target>Telefon:</target>
    9. </trans-unit>
    10. <trans-unit id="mail">
    11. <source>Mail:</source>
    12. <target>E-Mail: </target>
    13. </trans-unit>
    14. <trans-unit id="imprint">
    15. <source>Imprint</source>
    16. <target>Impressum</target>
    17. </trans-unit>
    18. </body>
    19. </file>
    20. </xliff>

    Was kann/muss ich hier tun, damit ich in diesem Scenario auf Übersetzungen zurück greifen kann?

    Vielen Dank für die Hilfe!


  • 1 x
    23. 09. 2013, 15:06 - Lösung

    Es geht! :)

    Warum dieser Weg nicht gleich funktioniert hat, kann ich leider nicht sagen.
    Evtl. hatte ich irgendwo einen Tipp-Fehler... es klappt jetzt auf jeden Fall.

    Damit ich nicht bei jedem <f:translate> den ExtensionNamen angeben muss, kann mach auch einfach diesen im TS definieren:

    1. page = PAGE
    2. page.10 = FLUIDTEMPLATE
    3. page.10 {
    4. file = EXT:kss_template/Resources/Private/Templates/Default.html
    5. partialRootPath = EXT:kss_template/Resources/Private/Partials
    6. layoutRootPath = EXT:kss_template/Resources/Private/Layouts
    7. templateRootPath = EXT:kss_template/Resources/Private/Templates
    8.  
    9. extbase.controllerExtensionName = KssTemplate
    10. }

    Klappt wunderbar! Vielleicht hilft es ja noch jemandem...


  • 1

  • 1 x
    23. 09. 2013, 15:06

    Es geht! :)

    Warum dieser Weg nicht gleich funktioniert hat, kann ich leider nicht sagen.
    Evtl. hatte ich irgendwo einen Tipp-Fehler... es klappt jetzt auf jeden Fall.

    Damit ich nicht bei jedem <f:translate> den ExtensionNamen angeben muss, kann mach auch einfach diesen im TS definieren:

    1. page = PAGE
    2. page.10 = FLUIDTEMPLATE
    3. page.10 {
    4. file = EXT:kss_template/Resources/Private/Templates/Default.html
    5. partialRootPath = EXT:kss_template/Resources/Private/Partials
    6. layoutRootPath = EXT:kss_template/Resources/Private/Layouts
    7. templateRootPath = EXT:kss_template/Resources/Private/Templates
    8.  
    9. extbase.controllerExtensionName = KssTemplate
    10. }

    Klappt wunderbar! Vielleicht hilft es ja noch jemandem...

  • 1