christian: setlocale ("LC_TIME", "ge") funktioniert nicht

hallo ihr

um eine zeitausgabe nicht mühsam auf deutsch zu übersetzen, habe ich den befehl setlocale ("LC_TIME", "ge") gefunden. leider bekomme ich immer noch statt einer deutschen, eine englische ausgabe der zeitformatierungen.

in meinem php3 buch steht, dass es teilweise fehlerhafte umsetzungen des befehls gibt, aber eine aenderung des "ge" parameters in "d", "gw", "g" usw. brachte keine besserung.

ich benutze php3.12 als apache modul eingebunden.

wer weiss rat ???

christian

  1. Welche Werte statt "ge" Wirkung zeigen habe ich auch
    nicht rausbekommen. (de, de_DE ... nix, noch nicht
    mal ne Liste der sinnvollen Werte gefunden).
    Aber setlocale("LC_TIME", ""); hat dann das gewünschte
    Ergebnis gebracht. Da es laut Beschreibung auf den
    default Wert setzt, ist es wohl dummerweise von der
    Installation abhängig.
    Ach ja: erlebt mit PHP 4 Beta 4 unter Windows.

    1. Welche Werte statt "ge" Wirkung zeigen habe ich auch
      nicht rausbekommen. (de, de_DE ... nix, noch nicht
      mal ne Liste der sinnvollen Werte gefunden).
      Aber setlocale("LC_TIME", ""); hat dann das gewünschte
      Ergebnis gebracht. Da es laut Beschreibung auf den
      default Wert setzt, ist es wohl dummerweise von der
      Installation abhängig.
      Ach ja: erlebt mit PHP 4 Beta 4 unter Windows.

      hat leider nicht geklappt....danke trotzdem. vielleicht finde ich den fehler noch

      christian

      1. Hallo Christian,

        hat leider nicht geklappt....

        sowas hatte ich befürchtet. Mich hat es erwischt, als ich mein Script auf
        den Linux Server getan habe. Also rumsuchen, mit folgendem Resultat:
        setlocale() scheint sich durchs gesammte (Linu)X zu ziehen (in Pearl, in C,
        als Kommando), dabei ist der zweite Parameter praktisch Nirgendwo
        spezifziert, weil er wohl total Versions(Mondphasen?)abhängig ist. (Die
        Linux-Gemeinde liegt bestimmt schon gröhlend aufm Boden). Irgendwo hab ich
        dann eine Liste mit ein paar Beispielen gefunden, ein paar geratene
        dazugetan, und damit etwas rumgespielt:

        <table border=1 cellspacing=0 cellpadding=3>
        <?
        $TestWerte=array(  "","C",     // =>Standard aus Systemumgebung nehmen
                          "english","german","french","italian",
                          "en_US","de_DE","en_GB","fr_CA","en_CA");

        while ($lang = each($TestWerte))
        if($result=setlocale(LC_TIME,$lang[value]))
          echo "<tr><td>"$lang[value]"</td><td>$result</td><td>".strftime("%A, %d. %B")."</td></tr>\n";
        else
          echo "<tr><td>"$lang[value]"</td><td> </td><td>wird nicht unterstützt </td></tr>\n";
        ?>
        </table>

        Erfolg:

        Mein Windows (php 4.0b4pl1) mag mit "","C" oder "german" deutsch sprechen,
        meine Suse 6.2 (php 3.0.7)  mit "german" oder "de_DE" (<-- da war ich
        gestern wohl etwas vorschnell).

        Vielleicht funktioniert ja einer der beiden bei dir.

        Carsten