[Frage] Umlaut im Monat März TYPO3-Version: 6.1.1

  • Kristo Kristo
    Jar Jar Binks
    0 x
    1 Beiträge
    0 Hilfreiche Beiträge
    13. 02. 2015, 17:48

    Nach einigen Stunden Recherche nun mein Hilfegesuch hier im Forum:

    Mit folgendem Fluid-Code wird der Monat März leider nicht zurückgegeben:

    1. <f:format.htmlentities><f:format.date format="%B">{newsItem.datetime}</f:format.date></f:format.htmlentities>

    Aus der Datei: \fileadmin\Resources\Private\Html\Extension\News\Partials\List

    Typo3 Version: 6.1.5
    News Version: 2.3.1

    Woran kann das liegen?


  • 1
  • 0 x
    3252 Beiträge
    152 Hilfreiche Beiträge
    18. 02. 2015, 16:42

    Der Fluid Viewhelper nutzt für die Formatierung die date()-Funktion von PHP. Demnach müsste als Format statt "%B" "F" stehen. Aber auch das wird nicht wirklich zum Ziel führen... :-(

    Es gibt aber einige Workarounds:
    https://www.felixnagel.com/blog/artikel/2011/10/07/typo3-lokalisierte-datumsausgabe-mit-fluid/

    Viele Grüße
    Julian

  • miniton miniton
    Padawan
    0 x
    31 Beiträge
    1 Hilfreiche Beiträge
    02. 12. 2020, 13:23

    Hallo,

    erstmal danke für den Hinweis, das probiere ich mal aus. Das scheint mir aber eher ein Workaround zu sein.

    So weit ich weiß, funktioniert f:format durchaus auch mit strftime(). Der folgende Schnipsel gibt nämlich korrekt den geschriebenen Monat und das Jahr zurück, aber nicht im März!

    [code]<f:format.date format="%B %Y">{date}</f:format.date>
    [/code]

    Das erkär mir mal einer. Vielleicht gibt es einen Zusammenhang mit den System Locales auf dem Server?

    Oder hat es wirklich was mit dem Umlaut zu tun?

    Viele Grüße
    Christian

  • s_reinecke s_reineck...
    Padawan
    0 x
    35 Beiträge
    1 Hilfreiche Beiträge
    09. 12. 2020, 17:03

    Ich hänge mich mal hier dran....

    Bei mir ist es das gleiche Problem:
    <f:format.date format="%b">{newsItem.datetime}</f:format.date>
    liefert den korrekten kurzen Monat, nur der März bleibt leer.

    <f:format.date format="d">{newsItem.datetime}</f:format.date>
    gibt mir den Kurzmonat in englisch aus!

  • s_reinecke s_reineck...
    Padawan
    0 x
    35 Beiträge
    1 Hilfreiche Beiträge
    10. 12. 2020, 08:37

    Ich habe jetzt einen Workaround gefunden:

    <f:format.crop maxCharacters="3" append=""><f:translate key="month.{newsItem.datetime -> f:format.date(format: 'm')}" /></f:format.crop>

    Wenn man den langen Monatsnamen haben möchte, dann natürlich das CROP weglassen.

  • miniton miniton
    Padawan
    0 x
    31 Beiträge
    1 Hilfreiche Beiträge
    18. 12. 2020, 10:46

    Hallo s_reinecke,

    da ich nicht im Kontext von EXT:news unterwegs bin, habe ich es ganz ähnlich gelöst, aber mit eigenen XLIFF Dateien.

    <f:translate key="LLL:EXT:myext/Resources/Private/Language/locallang.xlf:month.{f:format.date(format:'m', date:'{date}')}" />

    Viele Grüße
    Christian

  • miniton miniton
    Padawan
    0 x
    31 Beiträge
    1 Hilfreiche Beiträge
    18. 12. 2020, 11:03

    Ich habe jetzt auch nochmal die Lösung getestet, die Julian als Erstes hier verlinkt hat.

    -------
    Typoscript:
    # localize date format, used within the fluid templates
    lib.ll_date = TEXT
    lib.ll_date {
    current = 1
    strftime = %d. %B %Y
    }

    Fluid:
    <f:cObject typoscriptObjectPath="lib.ll_date" data="{f:format.date(format:'U', date:'{newsItem.datetime}')}" />
    -------

    Leider erhalte ich dann als Ausgabe "M�rz 2021", obwohl meines Erachtens die Locales in Typo3 und auf dem Server richtig konfiguriert sind.

  • 0 x
    3252 Beiträge
    152 Hilfreiche Beiträge
    18. 12. 2020, 11:54

    Zitiert von: miniton
    Das scheint mir aber eher ein Workaround zu sein.

    Ähm, wenn über dem Link "Es gibt aber einige *Workarounds*:" steht, dann ist das vermutlich ein Workaround, ja ;-)

    "M�rz 2021" ist ein deutliches zeichen, dass Du irgendwas mit den Zeichensätzen verwurschtelt hast. Das schaut nach doppelter UTF-8-Encodierung aus...

    Eben mal getestet in einem TYPO3 v10.4.11 ohne irgendwelche Einstellungen in TypoScript oder Install-Tool, aber in Site Configuration
    [code]languages:
    -
    title: Deutsch
    enabled: true
    languageId: 0
    base: /
    typo3Language: default
    locale: de_DE.UTF-8
    iso-639-1: de
    navigationTitle: ''
    hreflang: ''
    direction: ''
    flag: de
    websiteTitle: ''[/code]

    Da funktioniert das hervorragend (Timestamp ist der 1.3.2021, 12 Uhr):
    [code]{f:format.date(format:'%B %Y', date:'1614596400')}[/code]

    Bitte prüft mal, ob die passenden Locales am Server installiert sind:
    [code]locale -a[/code]
    Hier sollte auftauchen, was Du als "locale" in der Site Configuration eingetragen hast.

  • miniton miniton
    Padawan
    0 x
    31 Beiträge
    1 Hilfreiche Beiträge
    18. 12. 2020, 12:17

    Zitiert von: Julian.Hofmann

    Ähm, wenn über dem Link "Es gibt aber einige *Workarounds*:" steht, dann ist das vermutlich ein Workaround, ja ;-)

    Wer lesen kann, ist klar im Vorteil. :-)

  • 1