Exemplo n.º 1
0
 /**
  * Constructor de la clase
  * @param request Objeto con la solicitud realizada
  * @param response Objeto para la respuesta que se enviará al cliente
  * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]delaf.cl)
  * @version 2014-03-22
  */
 public function __construct(Network_Request $request, Network_Response $response)
 {
     // copiar objeto para solicitud y respuesta
     $this->request = $request;
     $this->response = $response;
     // crear colección de componentes
     if (count($this->components)) {
         $this->Components = new Controller_Component_Collection();
         // crear las clases e inicializa atributos con componentes
         $this->Components->init($this);
     }
     // agregar variables por defecto que se pasarán a la vista
     $this->set(array('_base' => $this->request->base, '_request' => $this->request->request, '_url' => $this->request->url));
     // obtener layout por defecto (el configurado en Config/core.php)
     $this->layout = Model_Datasource_Session::read('config.page.layout');
 }
Exemplo n.º 2
0
 /**
  * Función que realiza la traducción de un string a otro idioma.
  *
  * Plantilla para archivo master.po (para locale en_US.utf8):
  *
  *	msgid ""
  *	msgstr ""
  *	"Project-Id-Version: proyecto en_US master\n"
  *	"PO-Revision-Date: 2014-03-02 11:37-0300\n"
  *	"Last-Translator: Nombre del traductor <*****@*****.**>\n"
  *	"Language-Team: English\n"
  *	"Language: en_US\n"
  *	"MIME-Version: 1.0\n"
  *	"Content-Type: text/plain; charset=UTF-8\n"
  *	"Content-Transfer-Encoding: 8bit\n"
  *	"Plural-Forms: nplurals=2; plural=(n != 1);\n"
  *
  *	msgid "Buscar"
  *	msgstr "Search"
  *
  * Guardar la plantilla en DIR_WEBSITE/Locale/en_US.utf8/LC_MESSAGES/master.po
  * Luego ejecutar:
  *   $ msgfmt master.po -o master.mo
  *
  * En caso que se esté creando desde un archivo pot se debe crear el archivo po con:
  *   $ msginit --locale=en_US.utf8 --input=master.pot
  * Lo anterior creará el archivo en_US.po y luego se usa msgfmt con este archivo
  *
  * La locale que se esté utilizando debe existir en el sistema, verificar con:
  *   $ locale -a
  * En caso que no exista editar /etc/locale.gen para agregarla y luego ejecutar:
  *   # locale-gen
  *
  * Cuando se crean o modifican los directorios en DIR_WEBSITE/Locale se
  * debe reiniciar el servicio Apache (¿?)
  *
  * @param string Texto que se desea traducir
  * @param domain Dominio que se desea utilizar para la traducción
  * @param locale Localee (o idioma) al cual traducir el texto
  * @param encoding Tipo de codificación de las traducciones
  * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]delaf.cl)
  * @version 2014-06-04
  */
 public static function translate($string, $domain = 'master', $locale = null, $encoding = 'UTF-8')
 {
     if (!$locale) {
         $locale = Model_Datasource_Session::read('config.language');
     }
     if (!strpos($locale, '_')) {
         if (!isset(self::$locale[$locale])) {
             $locale = Configure::read('language');
         }
         $locale = self::$locale[$locale];
     }
     putenv("LANG=" . $locale);
     setlocale(LC_MESSAGES, $locale);
     bindtextdomain($domain, DIR_WEBSITE . '/Locale');
     textdomain($domain);
     bind_textdomain_codeset($domain, $encoding);
     return gettext($string);
 }