Zum Inhalt springen

Problem mit f:translate - Basis Template als Extension

Erstellt am 23. September 2013 · 1 Antwort · letzte Antwort am 23. September 2013

Tags: ViewHelper, Templates & Layouts, TYPO3 6.x, Frage

Unbekannter Benutzer ·

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:

<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

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
	<file source-language="en" datatype="plaintext" original="messages" date="2013-03-07T13:23:42Z" product-name="kss_template">
		<header/>
		<body>
			<trans-unit id="phone">
				<source>Phone:</source>
			</trans-unit>
			<trans-unit id="mail">
				<source>Mail:</source>
			</trans-unit>
			<trans-unit id="imprint">
				<source>Imprint</source>
			</trans-unit>
		</body>
	</file>
</xliff>

de.locallang.xlf

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
	<file source-language="en" target-language="de" datatype="plaintext" original="messages" date="2013-03-07T13:23:42Z" product-name="kss_template">
		<header/>
		<body>
			<trans-unit id="phone">
				<source>Phone:</source>
				<target>Telefon:</target>
			</trans-unit>
			<trans-unit id="mail">
				<source>Mail:</source>
				<target>E-Mail: </target>
			</trans-unit>
			<trans-unit id="imprint">
				<source>Imprint</source>
				<target>Impressum</target>
			</trans-unit>
		</body>
	</file>
</xliff>

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

Vielen Dank für die Hilfe!

Unbekannter Benutzer · · Beste Antwort

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:

page = PAGE
page.10 = FLUIDTEMPLATE
page.10 {
   file = EXT:kss_template/Resources/Private/Templates/Default.html
   partialRootPath = EXT:kss_template/Resources/Private/Partials
   layoutRootPath = EXT:kss_template/Resources/Private/Layouts
   templateRootPath = EXT:kss_template/Resources/Private/Templates

   extbase.controllerExtensionName = KssTemplate
}

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