Tienes por ahí a mano enlaces donde se explique como va el translation
behaviour de 1.2-beta? Me refiero al tema de crear y actualizar registros
amén de sacar el campo del idioma por defecto si no existe el del idioma
activo.

El día 17/01/08, boriscy <[EMAIL PROTECTED]> escribió:
>
>
> Bueno esto servira como respuesta para algunas Personas que lo
> necesiten.
> Yo quiero almacenar la información original en mi language español
> (default) en el modelo en este caso "Page" y tiene como tabla "pages·
> y cuando use otro idioma busque esto en la tabla i18n que cake obtiene
> automaticamente. Obviamente para hay que hacer uso de la localizacion
>
> En el app_controller.php lo hice de esta manera, esto permite l10n
> "Localizacion" pero no internacionalizacion
>
> function beforeFilter()
>     {
>         $this->L10n = new L10n();
>         $languages = array('eng', 'spa');
>
>         $lang = $this->Session->check('lang') ? $this->Session-
> >read('lang'):'spa';
>
>         if(isset($this->params['named']['lang']) && in_array($this-
> >params['named']['lang'],$languages) ){
>             $lang = $this->params['named']['lang'];
>             $this->Session->write('lang',$lang);
>         }else{
>             $this->Session->write('lang',$lang);
>         }
>
>         $this->L10n->get($lang);
>         Configure::write('Config.language', $lang);
>     }
>
>
> Para que pueda funcionar correctamente la localizacion es necesario un
> archivo  "locale/esp/LC_MESSAGES/default.po" en esa ruta donde se
> realiza las traducciones de la sigueinte manera
>
> msgid  "content"
> msgstr "Contenido"
>
> "Mejor si codificas los archivos  .po con UTF8"
>
> para poder presentar lo haces asi
> __('content')
>
> y en caso de que este en español la localizacion te presentara
> "Contenido".
> tamiben puedes usar de esta forma
> echo __('content', true);
>
> Ahora te recomiento de que en archivo bootstrap.php
> crees la constante
> define('DEFAULT_LANGUAGE', 'spa');
>
> Una ves ya hayas terminado la localización ahora debemos realizar la
> internacionalización
>
> Para esto he creado una tabla con el nombre pages y su modelo Page y
> oviamente con su controlador Pages
>
> En el modelo Page haz lo siguiente:
>
> class Page extends AppModel
> {
>     var $displayField = 'name';
>     var $actsAs = array();
>
>     function setLanguage()
>     {
>         $lang = Configure::read('Config.language');
>         if(DEFAULT_LANGUAGE!=$lang)
>             $this->actsAs = array('Translate' => array('content',
> 'name'));
>         $this->__construct(false, null, null);
>     }
> }
>
> Como puedes ver solo los campos (content, name) seran traducidos
>
> Y para que puedas desplegar correctamente el contenido original que se
> saca de la tabla pages y el traducido de la tabla i18n haces lo
> siguiente
> en tu controlador PagesController
>
> public function index($page = null)
>     {
>         $this->Page->setLanguage();
>         if($page==null){
>             $text = $this->Page->findByUrl('Inicio');
>         }else{
>             $text = $this->Page->findByUrl($page);
>         }
>         $this->set('texto', $text);
>     }
>
> Ya en tu vista manejas los datos como lo harias con cualquier otro
> controlador.
> >
>

--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a