Umlaute im Monatsnamen

  • Hallo, was genau muss ich ändern, dass auch der Monatsname im Smart Archives Plugin korrekt angezeigt wird?
    Derzeit ist UTF-8 eingestellt, und der ganze Content von Wordpress wird auch korrekt angezeigt.
    Auf der Archivseite ist bei März aber nur M�rz zu sehen... Woran liegt es, dass alle anderen Umlaute auf der Seite korrekt angezeigt werden, und das nicht?
    Daaanke!

    Und ein ähnliches Problem. Bei den anderen statischen Seiten (außerhalb von Wordpress) ist derzeit noch iso-blabla eingestellt, wenn ichs in utf8 änder, gehen auf der startseite alle umlaute kaputt, wo die letzten nachrichten von wordpress geladen werden... wieso das? in wordpress selbst ist ja auch utf eingestellt...??

    Einmal editiert, zuletzt von Waldelfe (21. Juni 2008 um 15:41)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Kann nicht gehen, den WP setzt die Locale nicht sondern schaltet nur die Sprache um. Im Plugin wird [COLOR=Red]strftime[/COLOR] benutzt, was aber an die gesetzte Locale gebunden ist und somit auf "de_DE" steht aber eben nicht auf "de_DE.utf-8".

    PHP
    for($currentMonth = 1; $currentMonth <= 12; $currentMonth++) $monthNames[$currentMonth] = ucfirst(strftime("%B", strtotime("$currentMonth"."$bogusDate")));

    Wenn du im Plugin das Array $monthNames[] mit den 12 korrekten deutschen Monatsnamen bestückst statt die formatieren zu lassen, dann ist's auch UTF-8. (Datei in UTF-8 ohne BOM Marker speichern!)

    Erweiterung: Ich hab nochmal nachgedacht, entweder hat dein Provider zwar die deutsche Locale aktiviert aber nur für ANSI charsets und bräuchtest die UTF-8 charset Variante, oder aber dein Provider bietet dir einen Windows Server (kein Unix) als Basis. Bei Windows Server hilft auch keine korrekt gesetzte Locale, da muß man

    1. erkennen, dass es ein Windows Server ist und
    2. falls es so ist, eine iconv() Konvertierung des Monatsnamens nach UTF-8 machen.

    Es ist sicher einfacher, das Array der Monatsnamen händisch mit den korrekten Werten zu bestücken. Oder du benutzt die Namen aus der Übersetzung per

    PHP
    ...
    $monthNames[1] = __('January');
    ....
  • wow, hätte ja nicht gedacht, dass das so kompliziert ist.
    vielen dank auf jeden fall schonmal.
    probier mal das mit dem manuellen setzen..

  • Ok, jetzt muss ich doch nochmal nachfragen.
    Bin erst jetzt dazugekommen, das auszuprobieren, aber leider klappt es noch nicht.
    Kenn mich mit php nicht wirklich aus, wo genau und wie muss ich denn diese manuellen Arrays angeben?


    Oder würde es sogar irgendwie mit [FONT=monospace]

    PHP
    setlocale(LC_ALL,WPLANG); // set localization language


    gehen? [/FONT]</span>
    Vielen Dank nochmal!

  • Also dieses hier

    PHP
    // get the shortened month name; strftime() should localize
            for($currentMonth = 1; $currentMonth <= 12; $currentMonth++) $shortMonths[$currentMonth] = ucfirst(strftime("%b", strtotime("$currentMonth"."$bogusDate")));

    ersetzen durch:

    Und dieses hier

    PHP
    // get the month name; strftime() should localize
            for($currentMonth = 1; $currentMonth <= 12; $currentMonth++) $monthNames[$currentMonth] = ucfirst(strftime("%B", strtotime("$currentMonth"."$bogusDate")));

    ersetzen mit

    Man kann das auch anders aufschreiben aber ich hab es so gemacht, damit du erkennst, was ich meine. Aber du solltest den Autor des Plugin anschreiben und darauf hinweisen, das man dafür auch eine Übersetzungsdatei bereitstellen sollte.

    Oder würde es sogar irgendwie mit [FONT=monospace]

    PHP
    setlocale(LC_ALL,WPLANG); // set localization language

    gehen?[/FONT]

    Das würde gehen, aber wenn du das unter einem Apache Server machst und PHP bei dir als Module läuft, dann schaltest du in einem Shared Hosted Server alle darin laufenden Domains auf deutsch um, denn dieser Aufruf gilt für den gesamten Apache Prozess.
    Solltest du nur als Alternative in Betracht ziehen, wenn bei deinem Hoster PHP als cgi läuft.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!