Lokalisierte Datumsausgabe mit verschachtelten Fluid-ViewHelpern
Optimal durch geschickten Einsatz von Tag- & Inlinesyntax kombiniert mit dem richtigen Escapen der Argumente

In diesem Code-Snippet findest Du eine Lösung, um in einer lokalisierten Zeichenkette lokalisierte Variablen zu verwenden. Der Extensionname muss bei dem Aufruf der Templatedatei über das cObject FLUIDTEMPLATE angegeben werden, in dem dann die locallang.xlf-Dateien liegen. Diesen müssen Sie natürlich an Ihren eigenen Extensionkey anpassen. In diesem Beispiel wäre der Pfad zu der englischsprachigen XLF-Datei typo3conf/ext/ot_website/Resources/Private/locallang.xlf.

Beispiele für die Ausgabe:

Deutsche Version: Die Seite wurde am 12.1.2014 um 18:54 Uhr erstellt.

Englische Version: The page was created on 1/12/2014 at 6:54 PM.

Fluid-Template Snippet

<f:translate id="page_created"
  default="Diese Seite wurde am %1s um %2s Uhr erstellt."
  extensionName="ot_website"
  arguments="{
0: '
  {f:format.date(
    format: \'{f:translate(id: \\\'formatDate\\\', default: \\\'m/d/Y\\\', extensionName: \\\'ot_website\\\')}\',
    date: \'@{data.crdate}\'
  )}
  ',
1: '
  {f:format.date(
    format: \'{f:translate(id: \\\'formatTime\\\', default: \\\'H:i\\\', extensionName: \\\'ot_website\\\')}\',
    date: \'@{data.crdate}\'
  )}
  '

  }"
/>

Lokalisierungsdateien für die Übersetzungen

Die Übersetzungsdateien liegen immer im Extension-Ordner im Pfad Resources/Private/Language/

locallang.xlf

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
  <file source-language="en" datatype="plaintext" original="messages" date="2015-02-17T14:04:47Z" product-name="ot_website">
    <header/>
    <body>
      <!-- … -->
      <trans-unit id="page_created">
        <source>The page was created on $1s at $2s.</source>
      </trans-unit>
      <trans-unit id="formatDate">
        <source>m/d/Y</source>
      </trans-unit>
      <trans-unit id="formatTime">
        <source>h:i a</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="2015-02-17T14:04:47Z"
      product-name="ot_website">
    <header/>
    <body>
      <!-- … -->
      <trans-unit id="page_created">
        <source>The page was created on $1s at $2s.</source>
        <target>Diese Seite wurde am %1s um %2s Uhr erstellt</target>
      </trans-unit>
      <trans-unit id="formatDate">
        <source>m/d/Y</source>
        <target>d.m.Y</target>
      </trans-unit>
      <trans-unit id="formatTime">
        <source>h:i a</source>
        <target>H:i</target>
      </trans-unit>
      <!-- … -->
    </body>
  </file>
</xliff>