Zum Inhalt springen

Umlaut im Monat März

Erstellt am 13. Februar 2015 · 9 Antworten · letzte Antwort am 2. März 2022

Tags: TYPO3 6.x, Frage

Kristo ·

Nach einigen Stunden Recherche nun mein Hilfegesuch hier im Forum:

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

<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?

miniton ·

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!

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

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 ·

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 ·

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 ·

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 ·

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.

Julian.​Hofmann ·
miniton schrieb

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

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: ''

Da funktioniert das hervorragend (Timestamp ist der 1.3.2021, 12 Uhr):

{f:format.date(format:'%B %Y', date:'1614596400')}

Bitte prüft mal, ob die passenden Locales am Server installiert sind:

locale -a

Hier sollte auftauchen, was Du als "locale" in der Site Configuration eingetragen hast.

miniton ·
Julian.Hofmann schrieb

Ä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. :-)

schmitz ·

Danke!
Letztlich musste statt de_DE doch de_DE.utf8 in der SiteConfiguration stehen.
Es nur unter systemLocale in der LocalConfiguration einzutragen, war nicht ausreichend.