PHP mehrsprachiges Datum: Howto?

Hinweis: Dies ist kein Duplikat vonÜbersetzen von PHP-Datum () für mehrsprachige Site . Ich habe es gelesen!

Es tut mir leid, ich muss zuerst erklären, wie mein Framework funktioniert, damit Sie genau verstehen können, wo mein Problem liegt:

Hier ist, wie mein PHP-Code funktioniert (grobe Prinzipien). Nehmen wir als Beispiel jemanden, der die URL sehen möchtehttp://myweb.com/valid.php:

in der Dateivalid.php Der Code enthält die richtige Klassendefinition, erstellt dann ein Objekt und ruft die Funktion aufdisplay() welches die Seite anzeigt.in der Dateivalid.phpWenn das Objekt erstellt wird, analysiert es den Host und im Host befindet sich die Sprache (http://us.myweb.com/, http://cn.myweb.com/, http://fr.myweb.com/...) und die Standardsprache (falls keine gefunden wurde) ist Englischdann lade ich eine zwischengespeicherte PHP-Datei, in der die Übersetzungen sind. Das ist eintranslation Objekt, das ich anrufe$t kurz gesagtund von nun an mache ich, wann immer ich eine Übersetzung will, einfach Dinge wie$t->get('my_string').

Nehmen wir ein Beispiel mit einer 2-Sprachen-Datei:

2 Sprachdateien:cache.us.php undcache.fr.phpimcache.us.php Du hast eine Zeile wie diese:$thanks_for_the_fish = "Thanks for the fish".imcache.fr.php Du hast eine Zeile wie diese:$thanks_for_the_fish = "Merci pour le poisson".Ich erstelle meine Seite, füge die richtige Sprachdatei hinzu und rufe dann auf$t->get('thanks_for_the_fish') und es ist übersetzt.

Jetzt kommt mein Problem mit der Datumsformatierung. Mit dem kurzen Datumsformat ist das kein Problem:

imcache.us.php: $short_date_format = "m/d/Y, H:i".imcache.fr.php: $short_date_format = "d/m/Y à H:i".

Aber mitlange Datumsformat, ich arbeite gerade an Französisch und habe angefangen mit etwas wie:

imcache.fr.php: $long_date_format = "%s, %d %s %d".dann alle tage:$sunday = "dimanche", $monday = "lundi" und so weiterdann in meinem Übersetzungscode:

So etwas (lies den Kommentar im Code genau durch, meine Frage ist drin!):

static private $_TabStrDaysOfWeek = array(
    0 => 'sunday',
    1 => 'monday',
    ...,
    6 => 'saturday'
);
public function translateDate($date_time)
{
    $long_day = $this->tr->get(
        $this->_TabStrDaysOfWeek[ $date_time->format('w') ]
    );
    /*

    here's where I'm stuck:
    what could be the code to be able to display:
    - english:
      Monday, 1st September 2006
      Tuesday, 2nd September 2006
      Wednesday, 3rd September 2006
      Thursday, 4th September 2006

    - french:
      Lundi, 1 septembre 2006
      Mardi, 2 septembre 2006
      Mercredi, 3 septembre 2006
      Jeudi, 4 septembre 2006

    - arabian!!:
      1 - Don't know
      2 - Don't know
      3 - Don't know
      4 - Don't know
    */
}

... Und ich sagte Arabisch, weil ich es früher oder später brauchen werde, genauso für Mandarin-Chinesisch. Alle meine anderen Übersetzungsprobleme sind gelöst, aber dieses !!

Irgendeine Idee?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage