Php multilenguaje fecha: ¿cómo?

Nota: esto no es un duplicado deTraducir fecha de PHP () para sitio multilingüe . ¡Lo he leído!

Lo siento, primero tengo que explicar cómo funciona mi marco, para que pueda entender exactamente dónde está mi problema:

Así es como funciona mi código de php (principios generales). Vamos a usar para un ejemplo a alguien que quiere ver la URLhttp://myweb.com/valid.php:

en el archivovalid.php el código incluye la definición de clases correcta, luego cree un objeto y llame a la funcióndisplay() que muestra la página.en el archivovalid.php, cuando se crea el objeto, analiza el host, y en el host está el idioma (http://us.myweb.com/, http://cn.myweb.com/, http://fr.myweb.com/...) y el idioma predeterminado (si no se encuentra) es el inglésLuego cargo un archivo Php en caché donde están las traducciones. Esto es untranslation objeto que estoy llamando$t para abreviary de ahora en adelante, siempre que quiera una traducción, simplemente hago cosas como$t->get('my_string').

Tomemos un ejemplo con un archivo de 2 idiomas:

Archivos de 2 idiomas:cache.us.php ycache.fr.phpencache.us.php Tienes una línea como esta:$thanks_for_the_fish = "Thanks for the fish".encache.fr.php Tienes una línea como esta:$thanks_for_the_fish = "Merci pour le poisson".Construyo mi página, incluyo el archivo de idioma correcto y luego llamo$t->get('thanks_for_the_fish') y está traducido.

Ahora mi problema viene con el formato de fecha. Con formato de fecha corta no es un problema:

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

Pero conlargo Formato de fecha, solo estoy trabajando en francés y comencé con algo como:

encache.fr.php: $long_date_format = "%s, %d %s %d".entonces todos los dias$sunday = "dimanche", $monday = "lundi" y asíluego en mi código de traducción:

Algo como esto (lea cuidadosamente el comentario en el código, mi pregunta está en él):

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
    */
}

... Y dije árabe porque lo necesitaré tarde o temprano, lo mismo para el chino mandarín. Todos mis otros problemas de traducción están resueltos, pero este !!

¿Alguna idea?

Respuestas a la pregunta(3)

Su respuesta a la pregunta