El siguiente ejemplo funciona en Mac OS X con Apache, es decir, me da la traducción de la cadena reenviada al monitor. Pero en Ubuntu con lighttpd obtengo el texto original 'Cuenta inactiva'. He intentado todo tipo de combinaciones de varialbes ambientales sin suerte. Tampoco son permisos de archivo porque puedo repetir el contenido del archivo .mo.no puede obtener gettext (php) en Ubuntu trabajo
<?php
//$locale = 'sv_SE.UTF-8';
$locale = 'sv_SE';
$dir = dirname(__FILE__);
// File permission is apparantly not a problem as this works...
//echo file_get_contents($dir . '/sv_SE/LC_MESSAGES/flattr.mo');
putenv("LANG=$locale");
putenv("LANGUAGE=$locale");
putenv("LC_ALL=$locale");
putenv("LC_MESSAGES=$locale");
setlocale(LC_ALL, $locale);
setlocale(LC_MESSAGES, $locale);
//setlocale(LANG, $locale);
//setlocale(LANGUAGE, $locale);
bindtextdomain('flattr', $dir);
//bind_textdomain_codeset("flattr", 'UTF-8');
textdomain('flattr');
echo _("Inactive account");
?>
¿Alguien tiene alguna idea?
Tiene el idioma configurado correctamente en el sistema operativo en sí? Ver mi pregunta anterior puede ayudar http://stackoverflow.com/questions/1431354/php-gettext-in-norwegian – fabrik
¿Ha generado la configuración regional de sv_SE? De lo contrario, agregue (o elimine el comentario) una línea que contenga 'sv_SE.UTF-8' a'/etc/locale.gen' y luego ejecute 'sudo locale-gen'. –
sudo locale-gen sv_SE.UTF-8 (y luego reinicie lighttpd) funcionó. ¿Podría publicarlo como respuesta a esta pregunta para que pueda marcarlo como correcto? ¡Gracias! – pthulin