Im nachfolgenden Beispiel wird innerhalb einer lokalisierten Zeichenkette ein Teil derer mit dynamischen Daten aus dem Controller / Model ersetzt.

Beispiel 1: Lokalisierung mit Platzhalter

<label index="tx_myext.headline">
	Unsere Produkte im Bereich "%1$s":
</label>

Beispiel 1: Ersetzung im ViewHelper

<f:translate key="tx_myext.headline" arguments="{1: category.title}" />

Das war der Vorgeschmack, nun wird es etwas komplizierter ;) Im nächsten Beispiel werden mehrere translate-ViewHelper verschachtelt und zusätzlich mit link-ViewHelpern kombiniert. Dem link-ViewHelper wird dabei der pageUid-Parameter aus dem Model übergeben.

Beispiel 2: Lokalisierung mit Platzhalter

<label index="tx_myext_domain_model_booking.privacy_and_terms.text">
	Mit Ihrer Buchung erklären Sie sich mit den %1s und der %2s des externen Dienstleisters %3s einverstanden.
</label>
<label index="tx_myext_domain_model_booking.privacy_and_terms.text.terms">
	AGB
</label>
<label index="tx_myext_domain_model_booking.privacy_and_terms.text.privacy">
	Datenschutzerklärung
</label>

Beispiel 2: Verschachtelung im ViewHelper

<f:translate
	key="tx_myext_domain_model_booking.privacy_and_terms.text"
	htmlEscape="false"
	arguments="{
		1: '{f:translate(key: \'tx_myext_domain_model_booking.privacy_and_terms.text.terms\') -> f:link.page(pageUid: event.provider.termsAndConditions, target: \'_blank\')}',
		2: '{f:translate(key: \'tx_myext_domain_model_booking.privacy_and_terms.text.privacy\') -> f:link.page(pageUid: event.provider.privacyProtection, target: \'_blank\')}',
		3: '{event.provider.company}'
	,}" />

Und nun noch ein weiteres Beispiel aus der Praxis: In Kommentarlisten eines Blogs findet man häufig Headlines zu den einzelnen Kommentaren in der Form von "Max Mustermann schrieb am 01.01.2015". Auch hier greifen wir erneut auf die Funktionalität der Platzhalter zurück und verschachteln zusätzlich darin noch die Format- sowie Translate-ViewHelper.

Beispiel 3: Lokalisierung mit Platzhaltern

<trans-unit id="general.culture.date.format">
	<source>d.m.Y</source>
</trans-unit>

<trans-unit id="tx_myext.comments.list.headline">
	<source>%1s schrieb am %2s</source>
</trans-unit>

Beispiel 3: Verschachtelung im ViewHelper

{f:translate(
	key: 'tx_myext.comments.list.headline',
	arguments: '{
		1: \'{comment.authorName}\',
		2: \'{comment.datePublished->f:format.date(
			format: \\'{f:translate(
				key: \\\\'general.culture.date.format\\\\'
			)}\\'
		)}\'
	}'
)}

Lokalisierungen in Fluid sind wirklich mächtig, auch wenn der Code aus dem zweiten und dritten Beispiel auf den ersten Blick vielleicht etwas verwirren mag. Er funktioniert jedoch ;)





Kommentare