Linuchs: Feiertage in einem internationalen Projekt

Hallo,

um die Sprachen in meinem Projekt zu testen, stelle ich den Browser immer mal wieder um.

Heute sehe ich (NL) also ein Event in GB am 3. April.

Da prangt ein fröhliches "Karfreiteg" hinter dem Datum ;-)

Liegt natürlich an meiner Feiertags-Tabelle aus deutscher Sicht.

Aber was ist jetzt richtig, die niederländische oder britische Bezeichnung?

Ich neige zu der Original-Bezeichnung des Ortes, also in diesem Fall klären, ob der 3. April in GB ein Feiertag ist und - nur dann - in GB-Sprache nennen.

Wie seht ihr das?

Was ich auch extrem nervig finde: Eine Sprache immer verschieden nennen. Wenn ich mit Google Translate deutsch -> Nederlands übersetzen will, gibt es diese beiden Sprachen überhaupt nicht, sofern mein Browser auf fr eingestellt ist.

Wenn ich mich etwa mit russisch beschäftige, sollte ich wissen, dass es um Русский geht, oder? Wikipedia zeigt, wie's geht. Allerdings ist mir dort die Reihenfolge der Sprachen noch nicht ersichtlich.

Linuchs

  1. n'Abend,

    um die Sprachen in meinem Projekt zu testen, stelle ich den Browser immer mal wieder um.

    klingt vernünftig.

    Heute sehe ich (NL) also ein Event in GB am 3. April.
    Da prangt ein fröhliches "Karfreiteg" hinter dem Datum ;-)

    Stimmt das denn wenigstens? - Ich habe gerade keinen Kalender mit Feiertagen zur Hand, aber nehmen wir mal an, es stimmt.

    Aber was ist jetzt richtig, die niederländische oder britische Bezeichnung?

    Wenn der Besucher seinen Browser bevorzugt auf Nederlands eingestellt hat, sollte er die Bezeichnungen auch in Nederlands bekommen, finde ich. Hier also Goede Vrijdag.

    Ich neige zu der Original-Bezeichnung des Ortes, also in diesem Fall klären, ob der 3. April in GB ein Feiertag ist und - nur dann - in GB-Sprache nennen.
    Wie seht ihr das?

    Anders. ;-)

    Ob der Feiertag am Veranstaltungsort überhaupt ein Feiertag ist, sollte natürlich geklärt sein. Die Bezeichnung würde ich dann aber in der vom Besucher gewünschten Sprache erwarten.

    Was ich auch extrem nervig finde: Eine Sprache immer verschieden nennen. Wenn ich mit Google Translate deutsch -> Nederlands übersetzen will, gibt es diese beiden Sprachen überhaupt nicht, sofern mein Browser auf fr eingestellt ist.
    Wenn ich mich etwa mit russisch beschäftige, sollte ich wissen, dass es um Русский geht, oder? Wikipedia zeigt, wie's geht. Allerdings ist mir dort die Reihenfolge der Sprachen noch nicht ersichtlich.

    Full ACK.

    Ciao,
     Martin

    --
    Lieber Hahn im Korb, als Tiger im Tank.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Wenn der Besucher seinen Browser bevorzugt auf Nederlands eingestellt hat, sollte er die Bezeichnungen auch in Nederlands bekommen, finde ich. Hier also Goede Vrijdag.

      Ich glaube, das überfordert meine Möglichkeiten.

      Hier mein PHP-Code zur Erkennung der Feiertage:

      // ===============================================================  
         function welcherFeiertag ( $jjjj_mm_tt, $land_kz, $region_kz )  
      // ===============================================================  
      {  
        $fixe = array (  
         array( '01-01', '',   '', 'Neujahr' )  
        ,array( '01-06', 'D',  '', 'Hl. drei Könige' )  
        ,array( '04-30', 'NL', '', 'Koninginnedag' )  
        ,array( '05-01', 'A',  '', 'Staatsfeiertag (A)' )  
        ,array( '05-01', '',   '', 'Maifeiertag' )  
        ,array( '05-05', 'NL', '', 'Befrijdingsdag' )  
        
        ,array( '08-01', 'CH', '', 'Bundesfeier (CH)' )  
        
        ,array( '10-03', 'D',  '', 'Dt. Einheit' )  
        ,array( '10-26', 'A',  '', 'Nationalfeiertag (A)' )  
        ,array( '10-31', '',   '', 'Reformationstag' )  
        
        ,array( '11-01', '',    '', 'Allerheiligen' )  
        
        ,array( '12-08', 'A',  '', 'Mariä Empfängnis (A)' )  
        ,array( '12-25', 'A',  '', 'Christtag (A)' )  
        ,array( '12-25', 'NL', '', '1. Kerstdaag' )  
        ,array( '12-25', '',   '', '1. Weihnachtstag' )  
        ,array( '12-26', 'A',  '', 'Stefanitag (A)' )  
        ,array( '12-26', 'NL', '', '2. Kerstdaag' )  
        ,array( '12-26', '',   '', '2. Weihnachtstag' )  
        );  
        
        $variable = array (  
         array( '2014-04-18', '',  '', 'Karfreitag' )  
        ,array( '2014-04-20', 'NL','', 'Eerste Paasdag' )  
        ,array( '2014-04-20', '',  '', 'Ostersonntag' )  
        ,array( '2014-04-21', 'NL','', 'Tweede Paasdag' )  
        ,array( '2014-04-21', '',  '', 'Ostermontag' )  
        ,array( '2014-05-29', 'NL','', 'Hemelfaartsdag' )  
        ,array( '2014-05-29', '',  '', 'Christi Himmelfahrt' )  
        ,array( '2014-06-08', 'NL','', 'Pinksteren' )  
        ,array( '2014-06-08', '',  '', 'Pfingstsonntag' )  
        ,array( '2014-06-09', 'NL','', 'Pinksteren' )  
        ,array( '2014-06-09', '',  '', 'Pfingstmontag' )  
        ,array( '2014-06-19', '',  '', 'Fronleichnam' )  
        ,array( '2014-11-30', '',  '', '1. Advent' )  
        ,array( '2014-12-07', '',  '', '2. Advent' )  
        ,array( '2014-12-14', '',  '', '3. Advent' )  
        ,array( '2014-12-21', '',  '', '4. Advent' )  
        
        ,array( '2015-04-03', '',  '', 'Karfreitag' )  
        ,array( '2015-04-05', 'NL','', 'Eerste Paasdag' )  
        ,array( '2015-04-05', '',  '', 'Ostersonntag' )  
        ,array( '2015-04-06', 'NL','', 'Tweede Paasdag' )  
        ,array( '2015-04-06', '',  '', 'Ostermontag' )  
        ,array( '2015-05-10', '',  '', 'Muttertag' )  
        ,array( '2015-05-14', 'NL','', 'Hemelfaartsdag' )  
        ,array( '2015-05-14', '',  '', 'Christi Himmelfahrt' )  
        ,array( '2015-05-24', 'NL','', 'Pinksteren' )  
        ,array( '2015-05-24', '',  '', 'Pfingstsonntag' )  
        ,array( '2015-05-25', 'NL','', 'Pinksteren' )  
        ,array( '2015-05-25', '',  '', 'Pfingstmontag' )  
        ,array( '2015-06-04', '',  '', 'Fronleichnam' )  
        ,array( '2015-08-15', '',  '', 'Mariä Himmelfahrt' )  
        ,array( '2015-11-18', '',  '', 'Buß- und Bettag' )  
        ,array( '2015-11-29', '',  '', '1. Advent' )  
        ,array( '2015-12-06', '',  '', '2. Advent' )  
        ,array( '2015-12-13', '',  '', '3. Advent' )  
        ,array( '2015-12-20', '',  '', '4. Advent' )  
        
        ,array( '2016-03-25', '',  '', 'Karfreitag' )  
        ,array( '2016-03-27', 'NL','', 'Eerste Paasdag' )  
        ,array( '2016-03-27', '',  '', 'Ostersonntag' )  
        ,array( '2016-03-28', 'NL','', 'Tweede Paasdag' )  
        ,array( '2016-03-28', '',  '', 'Ostermontag' )  
        ,array( '2016-05-08', '',  '', 'Muttertag' )  
        ,array( '2016-05-05', 'NL','', 'Hemelfaartsdag' )  
        ,array( '2016-05-05', '',  '', 'Christi Himmelfahrt' )  
        ,array( '2016-05-15', 'NL','', 'Pinksteren' )  
        ,array( '2016-05-15', '',  '', 'Pfingstsonntag' )  
        ,array( '2016-05-16', 'NL','', 'Pinksteren' )  
        ,array( '2016-05-16', '',  '', 'Pfingstmontag' )  
        ,array( '2016-05-26', '',  '', 'Fronleichnam' )  
        ,array( '2016-08-15', '',  '', 'Mariä Himmelfahrt' )  
        ,array( '2016-11-16', '',  '', 'Buß- und Bettag' )  
        ,array( '2016-11-27', '',  '', '1. Advent' )  
        ,array( '2016-12-04', '',  '', '2. Advent' )  
        ,array( '2016-12-11', '',  '', '3. Advent' )  
        ,array( '2016-12-18', '',  '', '4. Advent' )  
        );  
        
        if ( $jjjj_mm_tt > ' ' )  
        {  
          // fixe Feiertage  
          $mm_tt = substr( $jjjj_mm_tt,5,5 );  
          for ( $i=0; $i<count($fixe); $i++ )  
          {  
            if ( $mm_tt == $fixe[$i][0] && ( !$fixe[$i][1] || $land_kz == $fixe[$i][1] ))  
            {  
              return $fixe[$i][3]; break;  
            }  
          }  
        
          // variable Feiertage  
          for ( $i=0; $i<count($variable); $i++ )  
          {  
            if ( $jjjj_mm_tt == $variable[$i][0] && ( !$variable[$i][1] || $land_kz == $variable[$i][1] ))  
            {  
              return $variable[$i][3];  
              break;  
            }  
          }  
        }  
        return FALSE;  
      }  
      
      

      Linuchs

      1. Hallo,

        Hier mein PHP-Code zur Erkennung der Feiertage:

        // ===============================================================
        .
        .
        .

        array( '2014-04-18', '',  '', 'Karfreitag' )
          ,array( '2014-04-20', 'NL','', 'Eerste Paasdag' )

          
        weißt du, dass PHP umfangreiche Datumsberechnungsmöglichkeiten mitbringt, speziell für Ostern? Überlege dir, welche Feiertage von Ostern abhängen und wie. Dann benötigst du kein Array, das du jedes Jahr aktualisieren musst, sondern eins in dem die Abhängigkeiten drin sind. Desweiteren würde ich ein Übersetzungsarray aufbauen, sodass du dann den englischen Begriff und in Klammer die niedeländische Übersetzung anzeigen kannst.  
          
        Gruß  
        Kalk
        
      2. Ich habe das vor langer Zeit mal so gemacht:

        http://www.fastix.org/Feiertage+in+PHP+ermitteln.htm

        Ist sicher nicht ideal, aber als Idee ausbaufähig.

        Jörg Reinholz

      3. hi Linuchs,

        Hier mein PHP-Code zur Erkennung der Feiertage:

        ,array( '05-01', 'A',  '', 'Staatsfeiertag (A)' )
          ,array( '05-01', '',   '', 'Maifeiertag' )

        Da sind Redundanzen drin. Wie die Kollegen schon bemerkt haben, einige Feiertage werden infolge Addition oder Subtraktion vom Ostersonntag bzw. 1. Advent abgeleitet. Das schreit nach einer Rechnung mit fortlaufenden Tagen (Buß- und Bettag = 1. Advent - 10 Tage).

        Idee, eine Methode:

        $array = feiertage( year => 2015, countrycode => 'de' );

        oder

        $array = feiertage( 2015 );

        Im ersten Fall gibt es für jeden Ländercode ein Array. Im zweiten Fall liefert die Methode ein Array (keine Redundanzen), in welchem der Ländercode ein Schlüssel ist (ab Schlüssel keine Redundanzen).

        Des Weiteren brauchen wir ein paar zusätzliche Daten in Handarbeit
        2015.ini
        [de.ddr]
        1.5. = Internatianaler Kampf und Feiertag der Werktätigen
        1.3.  = Tag der Nationalen Volksarmee

        [de.bayern]
        15.8. = Mariä Himmelfahrt

        [nl.flandern]
        [nl.dutch]
        ..usw.

        Solche Methoden habe ich schon programmiert, willste?

        Schöne Grüße.

        1. Hallo,

          [de.bayern]
          15.8. = Mariä Himmelfahrt

          Schön wärs. der 15.8. ist aber nicht in ganz Bayern ein Feiertag sondern nur in Gemeinden mit überwiegend katholischer Bevölkerung … Aber prinzipiell hast du schon recht, die meisten Feiertage in Deutschland gelten nicht bundesweit sondern nur in einzelnen Bundesländern.

          Gruß,
          Tobias

          1. Hallo,

            [de.bayern]
            15.8. = Mariä Himmelfahrt

            Schön wärs. der 15.8. ist aber nicht in ganz Bayern ein Feiertag sondern nur in Gemeinden mit überwiegend katholischer Bevölkerung …

            Kein Problem, tragen wir diesem Umstand Rechnung:

            [de.bayern.Hintertupfingen]
            15.8. = Mariä Himmelfahrt

            &SCNR;

    2. Die Bezeichnung würde ich dann aber in der vom Besucher gewünschten Sprache erwarten.

      Seh ich genauso. Selbst wenn es als Beispiel einen Feiertag in Deutschland nicht gibt, gibt es manchmal eine deutsche Bezeichnung. Jemandem der das auf deutsch sehen will, will auch den deutschen Namen dazu haben.
      Sonst kriegst du ein völliges Chaos rein, Weihnachten steht auf deutsch da, was anderes auf Französisch und was drittes auf spanisch, obwohl beides als deutscher Begriff bekannt ist.

      Wenn ich mich etwa mit russisch beschäftige, sollte ich wissen, dass es um Русский geht, oder?

      Sollte ich? Wenn ich was auf russisch finde und es mir in deutsch übersetzen lassen will, dann möchte ich dazu nicht erst wissen oder nachschlagen müssen was "russisch" auf russisch heißt.

      Wikipedia zeigt, wie's geht.

      org ist das allgemeine, wer da drauf geht kriegt seine Sprache so wie er sie versteht. Der will aber keine andere Sprache finden die er nicht versteht. Deshalb ist das was ganz anderes als die Übersetzungsseite.
      Wer auf die .de Übersetzungsseite geht der will deutsche Begriffe sehen.