Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/01/2011, 13:44
yop289
 
Fecha de Ingreso: diciembre-2010
Mensajes: 61
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Consulta con Gettext

Yo experimente una vez con clase que llama php-gettext-1.0.7 (Ahora van por la versión 1.0.11) https://launchpad.net/php-gettext/, en su ejemplo ponen la siguiente función.

Código:

<?php
include "../API/php-gettext-1.0.7/streams.php";
include "../API/php-gettext-1.0.7/gettext.php";

//Esta cabecera s�lo es v�lida para idiomas con car�cteres UTF-8
header("Content-type: text/html; charset=UTF-8");

//Alias para manejar traducciones 
function __($my_text) {
         global $gettext_cache;
         if (is_null($gettext_cache)) return $my_text;
         else return $gettext_cache->translate($my_text);
}

//Alias para manejar traducciones con singular y prural

function _ngettext($my_text1,$my_text2,$n) {
         global $gettext_cache;
         if (is_null($gettext_cache)) if ($n>1) return $my_text2; else return $my_text1;	
         else return $gettext_cache->ngettext($my_text1,$my_text2,$n);}


if ($_GET['language']) $_SESSION['language'] = $_GET['language'];
if (!array_key_exists('language',$_SESSION))$_SESSION['language'] = 'es_es';

if (file_exists("locale/".$_SESSION["language"]."/LC_MESSAGES/messages.mo")) {
   $gettext_cache =   new gettext_reader( new CachedFileReader("locale/".$_SESSION["language"]."/LC_MESSAGES/messages.mo"));
   }
 ?>

Cómo ves utilizan la siguiente función para localizar la traducción.
Código:
if (file_exists("locale/".$_SESSION["language"]."/LC_MESSAGES/messages.mo")) {
   $gettext_cache =   new gettext_reader( new CachedFileReader("locale/".$_SESSION["language"]."/LC_MESSAGES/messages.mo"));
   }

Tal vez si cambias a la estructura de directorios que necesitas te puede servir.

Un saludo es sólo una idea.
No lo he probado