Locale
Jeena Paradies
- php
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
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.
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
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.
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.
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
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.
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
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:
---------------
Grüße
Jeena Paradies
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?
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
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
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
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
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