Jeena Paradies: Locale

Hallo,

Ich muss euch jetzt mal belästigen.

Ich möchte in meinem Jlog strftime() für die Datumsformatierung nutzen. Nachdem ich mir aber die Kommentare unten drunter so durchlas merkte ich dass das wohl ein schwierigeres Unterfangen zu sein scheint, da jedes Betriebssystem so ein wenig sein eigenes Süppchen kocht.

Ich habe bisher drei übersetzungen für Jlog: Deutsch, Englisch und Schwedisch (Übersetzer sind übrigens herzlich eingeladen mitzumachen). Ich müsste jetzt für mindestens diese drei Sprachen die Namen für die Locales von so vielen Systemen wie möglich wissen, bei Linux habe ich bisher diese gefunden:

de_DE, de_DE.utf8, de_DE@euro
sv_SE, sv_SE.utf8

Für das Englische lasse ich es einfach weg, denn das ist ja Standardeinstellung (oder?). Wie heißen die dinger unter Windows und anderen Betriebssystemen?

Grüße
Jeena Paradies

  1. Hi Jeena,

    Für das Englische lasse ich es einfach weg, denn das ist ja Standardeinstellung (oder?).

    Bei deinem eigentlichen Problem kann ich dir leider nicht helfen (funktioniert ein entsprechendes setlocale() unter Windows nicht?), aber was Englisch als Standardeinstellung anbelangt bin ich mir ziemlich sicher, dass das nicht zwingend so sein muss - bei der Auslieferung unter Linux ist Englisch als Standard eingestellt (zumindest bei Debian), aber soweit ich weiß kann man das problemlos umstellen, so liefert ein Server bei uns in der Schule alles auf Deutsch - ganz schön gewöhnungsbedürftig ;-)

    MfG, Dennis.

    1. Hallo,

      funktioniert ein entsprechendes setlocale() unter Windows nicht?

      Doch doch nur scheint die benennung dort einfach anders zu sein wenn ich den Beispielen in der Doku glauben schenken kann:

      Category/locale names can be found in RFC 1766 and ISO 639. Different systems have different naming schemes for locales.

      aber was Englisch als Standardeinstellung anbelangt bin ich mir ziemlich sicher, dass das nicht zwingend so sein muss

      Ah ok, guter Einwand. Was sollte ich dann nehmen en_US, en_BE und noch etwas? Es geht nur um die Zeitformatierung.

      Grüße
      Jeena Paradies

      1. Hi Jeena,

        Doch doch nur scheint die benennung dort einfach anders zu sein wenn [...]

        Hast du dir das hier bzw. das hier mal angeguckt?

        Was sollte ich dann nehmen en_US, en_BE und noch etwas? Es geht nur um die Zeitformatierung.

        Da die Wochtentage und Monate in britischem und amerikanischem Englisch meines Wissens doch in gewisser Form identisch sind, würde ich sagen es spielt keine Rolle ;-)

        setlocale(LC_TIME, "en_US", "us", "verUS");
          // für strftime(), Linux,   Win,  Mac(?)

        Wahrscheinlich bleibt nicht viel anderes übrig als unter den entsprechenden Systemen zu testen...

        MfG, Dennis.

        1. Hi Ingrid,

          Wahrscheinlich bleibt nicht viel anderes übrig als unter den entsprechenden Systemen zu testen...

          Ich habe gerade mal ein bisschen getested:

          <?php  
            
          header("Content-type: text/plain");  
            
          // Ohne setlocale  
          echo strftime("%A, %d. %B %Y") . "\n";  
            
          // Test für Deutsch  
          setlocale(LC_TIME, "de_DE", "deu");  
          echo strftime("%A, %d. %B %Y") . "\n";  
            
          // Test für Englisch  
          setlocale(LC_TIME, "en_US", "us");  
          echo strftime("%A, %d. %B %Y") . "\n";  
            
          // Test für Schwedisch  
          setlocale(LC_TIME, "sv_SE", "sve");  
          echo strftime("%A, %d. %B %Y") . "\n";  
            
          /*  
            Ausgabe Windows XP SP2  
          Friday, 21. April 2006  
          Freitag, 21. April 2006  
          Friday, 21. April 2006  
          fredag, 21. april 2006  
            
            Ausgabe Occuris-Server (Gentoo)  
          Friday, 21. April 2006  
          Freitag, 21. April 2006  
          Friday, 21. April 2006  
          Friday, 21. April 2006  
          */  
            
          ?>
          

          Wie zu sehen hat das mit dem Schwedischen auf dem Gentoo Server von Occuris nicht geklappt - ich vermute, da ist Schwedisch nicht drauf installiert, auf unserem Schulserver (Linux Debian Sarge) hat nämlich auch das Deutsche nicht geklappt, es war also alles Englisch.

          Wie es mit Mac aussieht kann ich aufgrund eines fehlenden Mac's nicht ausprobieren ;-)

          MfG, Dennis.

          1. Hallo,

            Ich habe gerade mal ein bisschen getested:

            Ah danke vor allem für WinXP was ich nicht habe

            Wie zu sehen hat das mit dem Schwedischen auf dem Gentoo Server von Occuris nicht geklappt - ich vermute, da ist Schwedisch nicht drauf installiert

            Jo mit locale -a kann man sich alle anzeigen lassen. Hab bei Occuris grad geschaut und es sind tatsächlich nur Deutsch, Englisch, Französisch und Japanisch installiert. Bei [http://genetsis.de@title=genetsis] sind dagegen sehr sehr viele mehr installier unter anderem auch Schwedisch und Polnisch was ich persönlich gut finde.

            auf unserem Schulserver (Linux Debian Sarge) hat nämlich auch das Deutsche nicht geklappt, es war also alles Englisch.

            Hm huch. Ok zur Not gibt es ja noch die Möglichkeit das entweder nachinstallieren zu lassen oder nur Zahlen wie bei date() zu verwenden.

            Wie es mit Mac aussieht kann ich aufgrund eines fehlenden Mac's nicht ausprobieren ;-)

            Da Christian jrtzt stolzer Besitzer eines PowerBooks ist muss er mir den Gefallen jetzt mal machen ;-).

            Grüße
            Jeena Paradies

            1. Hi Jeena,

              Ah danke vor allem für WinXP was ich nicht habe

              Kein Problem ;-)

              Bei genetsis sind dagegen sehr sehr viele mehr installier unter anderem auch Schwedisch und Polnisch was ich persönlich gut finde.

              Genetsis kannt ich ja noch gar nicht - ist das die Konkurrenz zu Occuris? Allerdings ist deren Seite ja noch karger als die von Occuris *g*

              auf unserem Schulserver (Linux Debian Sarge) hat nämlich auch das Deutsche nicht geklappt, es war also alles Englisch.
              Hm huch. Ok zur Not gibt es ja noch die Möglichkeit das entweder nachinstallieren zu lassen oder nur Zahlen wie bei date() zu verwenden.

              Ah, das würde mich jetzt mal interessieren - damit kenne ich mich nicht so aus. Ich habe mal mit apt-cache ein bisschen gesucht und bin unter anderem auf das Package user-de gestoßen, da ist bestimmt auch das deutsche Locale drin, doch ich weiß nicht, was da noch so alles drin ist ;-) Deshalb: Wie kann ich locales denn nachträglich noch installieren?

              Wie es mit Mac aussieht kann ich aufgrund eines fehlenden Mac's nicht ausprobieren ;-)
              Da Christian jetzt stolzer Besitzer eines PowerBooks ist muss er mir den Gefallen jetzt mal machen ;-).

              Hehe, der wird sich freuen *g*

              MfG, Dennis.

              1. Hallo Dennis.

                Ich habe mal mit apt-cache ein bisschen gesucht und bin unter anderem auf das Package user-de gestoßen, da ist bestimmt auch das deutsche Locale drin, doch ich weiß nicht, was da noch so alles drin ist ;-) Deshalb: Wie kann ich locales denn nachträglich noch installieren?

                Vielleicht mit „dpkg-reconfigure locales“?

                Einen schönen Samstag noch.

                Gruß, Ashura

                --
                sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
                [HTML Design Constraints: Logical Markup]
              2. Hallo,

                Genetsis kannt ich ja noch gar nicht - ist das die Konkurrenz zu Occuris?

                Naja, so zu sagen theoretisch sind sie Konkurenz ;-)

                Ah, das würde mich jetzt mal interessieren - damit kenne ich mich nicht so aus. Ich habe mal mit apt-cache ein bisschen gesucht und bin unter anderem auf das Package user-de gestoßen, da ist bestimmt auch das deutsche Locale drin, doch ich weiß nicht, was da noch so alles drin ist ;-) Deshalb: Wie kann ich locales denn nachträglich noch installieren?

                Erster Google Treffer ;-) sagt:

                ---------------
                C.4.4.5. Configure Locales

                To configure your locale settings to use a language other than English, install the locales support package and configure it:

                apt-get install locales

                dpkg-reconfigure locales

                ---------------

                Grüße
                Jeena Paradies

                1. Hi Jeena,

                  Erster Google Treffer ;-) sagt:

                  apt-get install locales

                  dpkg-reconfigure locales

                  Ah, vielen Dank (auch an Ashura) - dpgk-reconfigure kannte ich noch nicht. Jetzt habe ich alle de_DE locales installiert ;-)

                  MfG, Dennis.

                  PS: Hast du meine E-Mail bzgl. des JLog-Plugins bekommen?

                  1. Hallo,

                    PS: Hast du meine E-Mail bzgl. des JLog-Plugins bekommen?

                    Ja habe ich, konnte aber noch nicht genauer reinschauen, denn ich war jetzt sehr mit Jlog beschäftigt das ich vielleicht heute abend noch veröffentliche. Danach schau ich mal rein :-).

                    Grüße
                    Jeena Paradies

  2. Hi,

    Für das Englische lasse ich es einfach weg, denn das ist ja Standardeinstellung (oder?).

    Standard ist Posix bzw. C.

    Wie heißen die dinger unter Windows und anderen Betriebssystemen?

    Ich verwende sinngemäß folgende Zeile:

    setlocale(LC_CTYPE,'german','ge','de_DE@euro','de_DE','de-DE','de','de_DE.ISO_8859-1');

    Windows ist IIRC "german" oder "ge".

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Hallo,

      Standard ist Posix bzw. C.

      Das verstehe ich nicht Windows ist/hat doch nic mit Posix zu tun und was C mit der ganzen Sache zu tun hat (außer dass PHP darin geschrieben ist) verstehe ich auch nicht, könntest du das näher erleutern?

      setlocale(LC_CTYPE,'german','ge','de_DE@euro','de_DE','de-DE','de','de_DE.ISO_8859-1');

      Oj gleich zwei mal de? ;-)

      So sieht es mittlerweile bei mir aus:

      array('de_DE', 'de_DE@euro', 'de', 'deu_deu', 'german', 'de-DE', 'de_DE.ISO8859-1', 'de_DE.ISO8859-15', 'de_DE.ISO_8859-15', 'de_DE.ISO_8859-15')

      Windows ist IIRC "german" oder "ge".

      ich habe irgendwo gelesen es würde das dreibuchstabige nutzen, also 'deu_deu' deshalb hatte ich das 'de' gar nicht drinn. Habe es jetzt aber eingefügt.

      Grüße
      Jeena Paradies

      1. Hallo,

        setlocale(LC_CTYPE,'german','ge','de_DE@euro','de_DE','de-DE','de','de_DE.ISO_8859-1');
        Oj gleich zwei mal de? ;-)

        wer lesen kannist klar im vorteil, natürlich ist 'ge' !== 'de' ok ;-)

        Windows ist IIRC "german" oder "ge".
        ich habe irgendwo gelesen es würde das dreibuchstabige nutzen, also 'deu_deu' deshalb hatte ich das 'de' gar nicht drinn. Habe es jetzt aber eingefügt.

        Und das 'ge' mach ich jetzt auch mal rein ;-)

        Grüße
        Jeena Paradies

      2. Hi,

        Standard ist Posix bzw. C.
        Das verstehe ich nicht Windows ist/hat doch nic mit Posix zu tun

        Windows ist (mittlerweile) arg Posix-kompatibel. ;)

        Aber das bezog sich auch nicht auf Windows. "Posix" (oder auch "C") ist die Standardeinstellung eines typischen (also unixoiden) Webservers.

        und was C mit der ganzen Sache zu tun hat (außer dass PHP darin geschrieben ist) verstehe ich auch nicht,

        "Es wird so gehandhabt, wie in Posix bzw. C üblich"

        könntest du das näher erleutern?

        Da gibt es IMHO nichts zu erläutern, es ist einfach so definiert. ;)

        Windows ist IIRC "german" oder "ge".
        ich habe irgendwo gelesen es würde das dreibuchstabige nutzen, also 'deu_deu'

        Ja, aber zumindest auf meinem Windows ist es IIRC "german". ;) Kannst Du ja am Rückgabewert erkennen.

        Und das 'ge' mach ich jetzt auch mal rein ;-)

        Schaden kann's ja auch nicht. Was der Server nicht kennt, nimmt er nicht, wenn er was gefunden hat, ist er glücklich (und ignoriert den Rest) ...

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!