2010-11-16 26 views
5

Para traducir mi aplicación PHP utilizo compilado en el módulo gettext. Aquí está un árbol de directorios de traducciones realiza de acuerdo a documentos:PHP: ¿gettext requiere LC_MESSAGES dirs?

locale/ 
    cs_CZ/ 
    LC_MESSAGES/ 
     messages.po 
     messages.mo 
    de_DE/ 
    LC_MESSAGES/ 
     messages.po 
     messages.mo 
    fr_FR/ 
    LC_MESSAGES/ 
     messages.po 
     messages.mo 

Pregunta: ¿es posible para deshacerse de catálogo LC_MESSAGES? ¿Podrá PHP encontrar traducciones si uso esta estructura?

locale/ 
    cs_CZ/ 
    messages.po 
    messages.mo 
    de_DE/ 
    messages.po 
    messages.mo 
    fr_FR/ 
    messages.po 
    messages.mo 

Mi PHP que cambia traducciones:

<?php 
    setlocale(LC_ALL, 'fr_FR.UTF-8'); 
    bindtextdomain("messages", "locale"); 
    bind_textdomain_codeset("messages", 'UTF-8'); 
    textdomain("messages"); 
?> 

gracias de antemano.

+3

Lo sentimos, no hay manera Alrededor de eso. Está cableado en la biblioteca gettext. – mario

Respuesta

4

La única solución viable es crear un enlace simbólico LC_MESSAGES -> . en cada subdirectorio de idioma. (Pero esto complica la instalación de la aplicación PHP. FTP rara vez puede crear enlaces simbólicos.)

3

Me temo que LC_MESSAGES es un requisito.

Corrígeme si me equivoco, pero creo que tiene algo que ver con la memoria caché gettext.

0

Si realmente quieres hacer eso, puede utilizar este paquete compositor: gettext/gettext

para que pueda tener la organización de carpetas como desee o incluso algo por el estilo:

locales/ 
    cs_CZ.mo 
    cs_CZ.po 
    de_DE.mo 
    de_DE.po 
    fr_FR.mo 
    fr_FR.po 
Cuestiones relacionadas