Foros del Web » Programando para Internet » PHP »

Para traducciones gettext() funciona cuando quiere

Estas en el tema de Para traducciones gettext() funciona cuando quiere en el foro de PHP en Foros del Web. Bueno mi situación es la siguiente: estoy usando gettext() en PHP para traducir un contenido estático. Desde localhost me funciona a la perfección el problema ...
  #1 (permalink)  
Antiguo 01/09/2010, 09:36
 
Fecha de Ingreso: agosto-2010
Mensajes: 4
Antigüedad: 14 años, 4 meses
Puntos: 0
Para traducciones gettext() funciona cuando quiere

Bueno mi situación es la siguiente: estoy usando gettext() en PHP para traducir un contenido estático. Desde localhost me funciona a la perfección el problema esta cuando lo subo al servidor.

¿Que sucede en el servidor?

Bueno cuando cargo la pagina hay veces en que se realiza la traducción y otras veces en que no se realiza. En mi servidor también hay un detalle, el cual es que no me deja establecer variables de entorno y debido a esto no puedo utilizar la siguiente linea de código:
Código PHP:
putenv("LANG=".$locale); 
El mensaje de error es el siguiente: Warning: putenv() [function.putenv]: Safe Mode warning: Cannot set environment variable 'LANG' - it's not in the allowed list in /xxx/xxx/xxx.php on line 47

Se que este problema se puede solucionar agregando el prefijo PHP_ que es el valor por defecto de la directiva de configuración safe_mode_allowed_env_vars del PHP, pero igual me parece que ese putenv() esta de sobra porque no me soluciona el problema (aparte de que no uso por ningún lado esa definición de variable de entorno, pero no se si el gettext usa esta variable internamente).

De cualquier manera como les mencione antes, en localhost me funciona bien me traduce todo el tiempo sin ningún excepción. Pero cuando lo voy a probar en el servidor algunas veces me traduce y otras no.

El código que uso es el siguiente:
Código PHP:
$locale 'es_AR.UTF-8';
if (!
defined('LC_MESSAGES')) define('LC_MESSAGES'6);
//putenv("LANG=".$locale);
setlocale(LC_ALL$locale);
bindtextdomain('messages''../../../locale');
textdomain('messages'); 
Tengo comentado el putenv() debido a que como ya mencione antes, no me permiten establecer variables de entorno en mi servidor.

Saludos, y de antemano gracias por la ayuda.
  #2 (permalink)  
Antiguo 01/09/2010, 10:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Para traducciones gettext() funciona cuando quiere

en realidad el mismo mensaje de error te dice todo...

en ningún momento tienes problema de código PHP, en ningún momento se puede solucionar entonces por medio de código PHP....

todo es configuración, si.... solo eso!!

y eso es sencillo, si la configuración del sistema no te lo permite, ¿como esperabas solucionarlo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/09/2010, 12:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 4
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Para traducciones gettext() funciona cuando quiere

Bueno, me explico un poco mejor para que se entienda.

Debido a ese warning, tanto localmente como en el servidor he comentado esa linea de código y bueno localmente me traduce a la perfección el problema esta al momento de probarlo en el servidor. En el servidor también me traduce a la perfección el problema es que hay algunas veces en que al cargar la pagina no se realiza la traducción y se muestra todo el contenido en Ingles (que es el idioma por defecto).

Por ejemplo: Abro el sitio y se carga el mismo con la traducción al español, perfecto pero hay algunas veces que cuando actualizo el sitio desde el navegador no se me carga el mismo con la traducción que deseo y por consiguiente se muestra en su idioma por defecto (ingles), osea no me realiza la traducción.

He notado que esto es algo muy aleatorio, no tiene un patrón fijo. Puede que cargue/actualice 10 veces el sitio desde el navegador y se realiza la traducción a la perfección todas las veces, pero llega un momento en que se "rompe" y no traduce.

No se si sera por esto de que no puedo establecer esa variable de entorno "LANG" desde el PHP, lo que si se es que me funciona bien cuando traduce. Lo único es esa "inconsistencia" que cuando le da la gana traduce en el servidor.

Como el sitio me traduce algunas veces entonces no veo que exista un problema en el código PHP y eso es lo que me tiene de brazos cruzados con este tema.

Etiquetas: cuando, gettext
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:56.