Patrick Andrieu: Mein erstes kleines Modülchen...

Beitrag lesen

Re Cheatah!

oder aber Ansätze einer Internationalisierung.

Damit hast Du aber Probleme aufgeworfen, die mich dazu veranlassen, den angepassten Code nicht zu posten. Eben weil angepasst... und an mindestens zwei Stellen sehr unschön. Am Meisten hat mich nicht die Suche nach einer Lösung für das lange Datumsformat geärgert (ich wollte nicht kopieren, also habe ich etwas anderes geschrieben, was lange nicht so elegant ist, wie bei Date::PCalc - wie es bei Date::Calc aussieht, können nur die C-Kenner sehen, ich leider nicht), sondern...

Nein, am Meisten hat mich die Kurzform genervt. Und zwar wollte ich unbedingt eine Kurzform wie:

Heute haben wir den 10.06.

Nur ist es so, dass der Trennpunkt im Deutschen eigentlich gar kein Trennzeichen ist (wie z.B in anderen Sprachen das »/«), sondern gleichzeitig ein Ordinalsuffix. Gelesen wird's ja:

Heute haben wir den zehnten sechsten.

Während (beispielsweise) Franzosen bei:

Le 10/06 (...)

einfach lesen:

Le dix six (...)

wie in anderen Sprachen auch.

Da ich bisher eine Funktion hatte (day_and_month, in der zuallererst hier gezeigten Fassung hieß die noch ddmm), für eben Tag/Monat, die von der Funktion short_date (Tag/Monat/Jahr) neu aufgerufen wurde, hatte ich heute abend das Problem, dass ich bei allen außer lang 'de' kein Trennzeichen mehr vor dem Jahr hatte. Sah so aus:

Today is 10/062008 (english)
   Heute ist 10.06.2008 (deutsch <- hier OK)

Ich hab's zwar quick&dirty hingebogen, gefällt mir aber nicht... Ich überlege mir einen anderen Ansatz, vielleicht eine Funktion, die alle Zeitkomponenten in einem Array zurückliefert, welche die anderen Subs dann auseinandernehmen, je nach dem, was gebraucht wird.

Ach ja... dc.pl vergleicht nun die Ausgaben von Date::Calc, Date::Pcalc [1] und Date::Today. Hierbei merkt man, dass Date::Pcalc etwas veraltet nicht, denn bei der frz. Ausgabe des »langen Datums« steht noch: »Jour, __le__ ...«. Das hat es IMHO nie gegeben (mein alter Herr schrieb an der Schultafel immer: »Mercredi 11 juin 1968« - also ganz ohne »le«). Aus diesem Grund habe ich auch das »den« aus der deutschsprachigen Ausgabe entfernt, weil es langsam »deprecated« wird zum Einen, zum Zweiten das Problem der Deklination mit sich bringt:

Heute haben wir Mittwoch, den 11. Juni.
   Ich habe Dir am Mittwoch, dem 11. Juni gesagt, dass ...

Pedante User können sich die Mühe machen, den String zu splitten, wenn sie das »den/dem/des« wieder haben wollen. Die Anleitung würde ich sogar liefern!

Ansonsten... english ('en') ist default. Objekte werden nun wie folgt erstellt:

use Date::Today;

my $english = Date::Today->new; # oder: Date::Today->new('en');
my $deutsch = Date::Today->new('de');
my $espanol = Date::Today->new('es');

dann:

print $espanol->long_date; #  Miércoles, 11 de junio de 2008

[1] für Perl-interessierte lesende Newbies:

1. Date::Calc ist bei mir installiert (Calc.pm ist in /usr/lib/perl5/Date). Date::Pcalc und Date::Today habe ich einfach in einem Ordner /Date im cgi-bin kopiert, da ich bei meinem Webhoster keine Module selbst installieren kann - und gefragt habe ich noch nicht ;)

2. Da Date::Pcalc die Perl-»Übersetzungen« vom zum Großteil in C geschriebenen Date::Calc ist, aus diesem Grund die selben Funktionen benutzen und zuletzt nicht objektorientiert sind, habe ich im hier zugrunde liegenden Vergleichsskript dc.pl bei Date::Calc alle Funktionen mit qw/:all/ importiert, und dann direkt mit ihrem jeweiligen Namen ansprechen, während ich sie bei Date::Pcalc über die Form Package::Funktion anspreche:

use Date::Calc qw/:all/;
use Date::Pcalc;
use Date::Today;
.
.
.
Language(Decode_Language('Français'));
my $francais = Date_to_Text_Long(Today);
print "Date::Calc  2: ", $francais;
.
.
.
Date::Pcalc::Language(Decode_Language('Français'));
my $pfrancais = Date::Pcalc::Date_to_Text_Long(Today);
print "Date::Pcalc  2: ", $pfrancais;

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?
0 69

Mein erstes kleines Modülchen...

Patrick Andrieu
  • perl
  1. 0
    Cheatah
    1. 0
      Patrick Andrieu
      1. 0
        Cheatah
        1. 0
          Patrick Andrieu
    2. 0
      Patrick Andrieu
      1. 0
        Patrick Andrieu
  2. 0
    hotti
  3. 0
    hotti
    1. 0
      Patrick Andrieu
  4. 0
    Adolf
    1. 0
      Patrick Andrieu
      1. 0
        Adolf
        1. 0
          Patrick Andrieu
  5. 0
    Beat
    1. 0
      Patrick Andrieu
  6. 0
    Struppi
    1. 0
      Patrick Andrieu
      1. 0
        Struppi
        1. 0

          Mein erstes kleines Modülchen... und Grundsatzfragen!

          Patrick Andrieu
          1. 0
            Struppi
            1. 0
              Patrick Andrieu
  7. 0

    Mein erstes (nicht mehr so kleines) Modülchen...

    Patrick Andrieu
    1. 0
      Beat
      1. 0

        Anhang

        Beat
        1. 0
          Skrilax
          1. 0
            Beat
            1. 0
              Struppi
              1. 0
                Struppi
              2. 0
                Beat
                1. 0
                  Struppi
                  1. 0
                    Beat
                    1. 0
                      Struppi
                      1. 0
                        Beat
                        1. 0
                          Struppi
                          1. 0
                            Siechfred
                            1. 0
                              Struppi
                              1. 0
                                Siechfred
                          2. 0
                            Beat
                            1. 0
                              Struppi
      2. 0
        Patrick Andrieu
    2. 0
      Christoph
      1. 0
        Patrick Andrieu
        1. 0
          Christoph
          1. 0
            Patrick Andrieu
    3. 0
      Siechfred
      1. 0
        Patrick Andrieu
        1. 0
          Patrick Andrieu
          1. 0
            Tim Tepaße
        2. 0
          Harlequin
        3. 0
          Tim Tepaße
          1. 0
            Patrick Andrieu
            1. 0
              at
              1. 0
                Patrick Andrieu
                1. 0
                  at
            2. 0
              Tim Tepaße
              1. 0
                Patrick Andrieu
              2. 0

                Date::Today released and with POD

                Patrick Andrieu
                1. 0
                  Christoph
                  1. 0
                    Patrick Andrieu
  8. 0

    Kritik und Regel für Wochenzählung

    Patrick Andrieu
    1. 0
      Patrick Andrieu
      1. 0
        at
        1. 0
          Patrick Andrieu
    2. 0
      Patrick Andrieu
      1. 0
        Beat
        1. 0
          Patrick Andrieu
          1. 0
            Beat
            1. 0
              Patrick Andrieu