perl cgi-script zur datumsanzeige lokalisieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

perl cgi-script zur datumsanzeige lokalisieren

Beitrag von novalix » 04.04.2006 15:51:06

hallo gemeinde,

ich habe probleme, die ausgabe eines perl-cgi-scripts in deutschen lokalen zu realisieren.
bei dem script handelt es sich um textclock.pl aus dem "nms-textclock" debian-package. es ruft letztlich nur die Posixfunktion "strftime()" als server-side-include auf.

Code: Alles auswählen

man strftime
sagt mir in erster linie ich haette mich lieber mit "c" als mit "wein, weib und gesang" beschaeftigen sollen und ausserdem, dass die funktion sich bei der ausgabe an der eingestellten locale orientiert. tut 's aber nicht. :(
die default locale auf meinem testrechner ist zwar "c", aber alles andere auf:

Code: Alles auswählen

declare -x LANGUAGE="de_DE:de:en_GB:en"
declare -x LC_COLLATE="de_DE@euro"
declare -x LC_CTYPE="de_DE@euro"
declare -x LC_MESSAGES="de_DE@euro"
declare -x LC_MONETARY="de_DE@euro"
declare -x LC_NUMERIC="de_DE@euro"
declare -x LC_TIME="de_DE@euro"
ja, das script laeuft hier mit user rechten.
frage(n): hat jemand erfahrungen mit diesem problem? kennt jemand ein perl-script (kein php, bitte), dass sich besser an hiesige datumssyntax anpasst?

seid lieb zu mir, niels
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 04.04.2006 15:57:57

Die Dokumentation zu Perl strftime gibt's mit

Code: Alles auswählen

man 3perl POSIX
Was Du mache kannst um ein Deutsches Datum zu bekommen:

Code: Alles auswählen

POSIX::setlocale(POSIX::LC_ALL, 'de_DE');
Gruesse,
Flo

Benutzeravatar
seep
Beiträge: 544
Registriert: 31.10.2004 14:21:08
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: HSK

Re: perl cgi-script zur datumsanzeige lokalisieren

Beitrag von seep » 04.04.2006 16:47:33

novalix hat geschrieben:kennt jemand ein perl-script (kein php, bitte), dass sich besser an hiesige datumssyntax anpasst?

Code: Alles auswählen

perldoc Date::Format
...
   strftime(TEMPLATE, TIME, [,ZONE])
Probiere doch mal, direkt die Zone als Parameter zu übergeben. Zudem empfehle ich, die Ausgabe vom obigen perldoc mal ganz durchzulesen, ist interessant.

edit: Hier die CPAN-URL: http://search.cpan.org/~gbarr/TimeDate- ... /Format.pm

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Beitrag von novalix » 04.04.2006 19:41:17

hey,

vielen dank erst mal fuer die guten hinweise. :)
bin fleissig am tuefteln. allerdings heisst der dienstag hier immer noch tuesday. :(
aber solange der compiler noch nicht raucht ..

ciao, niels
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Benutzeravatar
seep
Beiträge: 544
Registriert: 31.10.2004 14:21:08
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: HSK

Beitrag von seep » 05.04.2006 07:48:40

Das mit der Zone oben war natürlich total dämlich von mir, einfach vergessen.

Ansonsten schaue Dir das mal an:

Code: Alles auswählen

#!/usr/bin/perl

use warnings;
use strict;

use Date::Format;
use Date::Language;

foreach my $l ("German", "English", "French", "Italian") {
    my $lang = Date::Language->new($l);
    printf("%10s: %s\n", $l, $lang->time2str("%A (%a) %e. %B (%b) %Y", time));
}
Ausgabe:

Code: Alles auswählen

$ ./date_format.pl 
    German: Mittwoch (Mit)  5. April (Apr) 2006
   English: Wednesday (Wed)  5. April (Apr) 2006
    French: mercredi (mer)  5. avril (avr) 2006
   Italian: Mercoledi (Mer)  5. Aprile (Apr) 2006

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Beitrag von novalix » 05.04.2006 14:23:27

seep hat geschrieben:Das mit der Zone oben war natürlich total dämlich von mir, einfach vergessen.
och, in der beziehung kann ich dir locker das wasser reichen. :)
zum problem: ich habe gestern und heute einiges an dem script und den locales einstellungen rumgeschraubt, bis ich mal auf die dufte idee gekommen bin, den cgi-part raus zu nehmen und das ganze als normales perl-script auf der kommandozeile auszufuehren.
die ausgabe ist so deutsch wie graubrot und bier. :?
also habe ich mich mal an den cgi-part rangemacht, der abgesehen von der "fatals to browser" ecke recht ueberschaubar ist. kein ergebnis.
ich werde wohl auf ne alternative in javascript zurueckgreifen, da mir das immerhin die includes direktive und den XBitHack im apache spart. obwohl, es wurmt.

vielen dank, niels
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Antworten