I18n & L10n Zend_Locale Zend_Date Zend_Translate Zend_Currency

Slides:



Advertisements
Presentaciones similares
Análisis y Diseño de Sistemas Enfoque Estructurado
Advertisements

¿Qué hora es? What time is it?.
¿Qué hora es?.
Giving personal details Eugenia González
Me llamo __________ Clase 8 Nv La fecha es el 6 de febrero del 2012 Propósito # 36: ¿ Como repasamos para la Prueba: U7? Actividad Inicial: Escribe en.
VII Taller de Coordinadores de Proyectos de Investigación Programa Dinámicas Territoriales Rurales Lima, Perú, 8 al 11 de noviembre 2009.
¿Qué hora es? It is… Son las… = Es la… At… A las… = A la… Son las once. Es la una. Tengo clase a las dos y doce.
COMPARATIVA CONVOCATORIAS FINALIZADAS EN Bilbao, Satisfacción de Clientes OBJETO Y ALCANCE Convocatorias finalizadas en 2012.
Módulo 1 – Introducción al curso SMS
EL PLAN… Y ULTIMOS ANUNCIOS HERBALIFE, GUATEMALA
Respuestas Buscando a Nemo.
La Fecha Telling the date.
Curso de java básico (scjp)
la fecha date la semana week el mes month el día day.
PROFESORA: Ms.C.TERESA CORVALÁN GAJARDO
Me llamo __________ Clase 10 NM La fecha es el 16 de noviembre del 2011 Propósito # 14: ¿ Como repasamos para la Prueba: U7? Actividad Inicial: Escribe.
Me llamo _______ Clase 10 NM La fecha es el 9 de noviembre del 2011 Propósito # 12: ¿Qué hora es? Actividad Inicial: Copia: ¿Qué hora es? ¿Qué hora es?
¿Qué hora es? ¿Qué hora es? Son las ______. *Any time but 1 oclock* Es la _______. *1 oclock* *1 oclock + a number* (1:05, 1:30, 1:45 etc.)
Me llamo _____ Clase 5nm (501) La fecha es el 11 de enero del 2013 Proposito # 17: ¿A que hora tomas el almuerzo? Actividad Inicial: Spanish is Fun! Completa.
Propósito # 11: ¿Qué hora es? Actividad Inicial:
¿Qué hora es? Telling time.
El treinta y uno de agosto
Ejercicio #13. Ejercicio#14 UNSCRAMBLE The order of the days Martes Viernes Miércoles Sábado Lunes Domingo Jueves.
¿Qué hora es? ¿Qué hora es? What time is it? Son las ______. Es la _______.
Esae Sesión 1.1. Taller de capacitación para Asesores Avanzados en Evaluación de Seguridad Alimentaria en Emergencias.
1 XML Extensible Markup Language HTML HyperText Markup Language normas06_01.xml.
Informe de Seguimiento a los Procesos Académicos 2011 Resultados Gráficos Área Administración.
Evolución Tasas de Interés Promedio del Sistema Financiero *
ATeDis Tecnologías de Apoyo y Ayudas Técnicas
Orientación de desarrolladores
Orientación de desarrolladores
Funciones de Fecha y Hora
Técnico en programación de Software
Curso - Taller DISEÑO Y PLANIFICACION DE ÁREAS MARINAS PROTEGIDAS Del 22 al 26 de Junio del 2009 Lima, Perú Curso - Taller DISEÑO Y PLANIFICACION DE ÁREAS.
Seguridad de redes empresariales
SI187 – Calidad de Software y Sistemas
La hora.
Capitulo 3 Java util.
Proceso en el que se adapta el software para una región específica mediante la adición de componentes específicos de un locale y la traducción de los.
Ingeniería del Software
JORNADA 1 DEL 24 DE MARZO AL 30 DE MARZO EQUIPO 01 VS EQUIPO 02 EQUIPO 03 VS EQUIPO 06 EQUIPO 05 VS EQUIPO 10 EQUIPO 07 DESCANSA EQUIPO 08 VS EQUIPO 13.
CHAPTER 1, VOCABULARY 2 ▸ Numbers ▸ Day and date ▸ Birthday ▸ Phone Number ▸ Alphabet ▸ Spelling ▸ address ▸ Telling Time.
1  2008 Universidad de Las Américas - Ingeniería de Software : Dr. Juan José Aranda Aboy ACI491: Ingeniería de Software Unidad 7: Proceso de Ingeniería.
0 1 ¿Qué hora es? By: Craig Tillmann Revised by: Malinda Seger Coppell High School Coppell, TX.
Español I - El Calendario
Tipos de datos y campos.
¿Qué hora es?.
Los números. Del 0 al 100.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Estructura de Datos En C++
Fecha Date.
Inicio Java: Algunas utilidades. Inicio Temporización En ingeniería nos encontramos con tareas que deben repetirse de forma periódica. Son tareas temporizadas.
Los resultados de este rating han sido recopilados por la empresa MERCADOS & PROYECTOS QUITO, y están disponibles en su pagina web. RADIO MODELO FM, es.
CARRERAFECHAHORARIO ENFERMERÍA 02/02/2015 Mañana / Tarde ELÉCTRICA03/02/2015 Mañana / Tarde SISTEMAS 04/02/2015 Mañana / Tarde ADMINISTRACIÓN05/02/2015.
Sistema de Control de Accesos
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 6: Clases y Abstracción de Datos Índice del capítulo 6.1 Introducción 6.2 Estructuras 6.3 Clases.
El Mercado Global y el Comercio Electrónico
Los meses del año.
Date. La Pregunta:  ¿Qué día es hoy?  What day is today? La Respuesta:  Hoy es…  Today is…
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
Para Empezar p el calendario calendar la fecha date.
Basics: la fecha, los días de la semana, los meses del año y los Números Objectives: In Spanish How to count How to tell time Phone numbers How to tell.
INTEGRANTES: ISABEL SALVATIERRA BORIS SANCAN ZEND FRAMEWORK.
Internacionalización, fichero propiedades GWT Google Web Toolkit Prof
Pedro Martínez CONSTRUYENDO APPS PARA DIFERENTES REGIONES.
Para Empezar The Calendar p el calendario calendar.
El calendario escolar estará dispuesto en un lugar Visible en el salón de clases, hace parte de la rutina diaria, siendo manipulado por.
El tiempo = Time. los días de la semana el lunes = Monday el martes = Tuesday el miércoles = Wednesday el jueves = Thursday el viernes = Friday el sábado.
Tema 6 Introducción a la Programación Orientada a Objetos
El calendario CALENDAR.
Transcripción de la presentación:

I18n & L10n Zend_Locale Zend_Date Zend_Translate Zend_Currency Desarrollo Web Profesional con PHP y Zend Framework Sesión 13 I18n & L10n Zend_Locale Zend_Date Zend_Translate Zend_Currency Instructor: Ing. Ernesto Anaya Ruiz ernestex@gmail.com

i18n & l10n

Ejemplo

i18n La internacionalización es el proceso de diseñar software de manera tal que pueda adaptarse a diferentes idiomas y regiones sin la necesidad de realizar cambios de ingeniería ni en el código

l10n La localización es el proceso de adaptar el software para una región específica mediante la adición de componentes específicos de un locale y la traducción de los textos, por lo que también se le puede denominar regionalización

INTERNATIONALIZATION LOCALIZATION l10n

Zend_Locale

Zend_Locale Zend_Locale es la respuesta de Zend Framework a la pregunta: ¿Cómo podría la misma aplicación ser usada en el mundo entero? No basta solo con traducir los textos, ya que en diferentes partes del mundo se usan diferentes convenciones para fechas, medidas, moneda, etc.

Creando un objeto de la clase Zend_Locale <?php     // Especificando la localidad (locale)     $locale = new Zend_Locale('de_DE'); // Idioma Alemán _ Alemania ?>

Capturando el Locale del contexto <? $l = new Zend_Locale(); ?> default: <?=$l;?><br /> <? $l = new Zend_Locale(Zend_Locale::BROWSER); ?> Zend_Locale::BROWSER: <?=$l;?><br /> <? $l = new Zend_Locale(Zend_Locale::ENVIRONMENT); ?> Zend_Locale::ENVIRONMENT: <?=$l;?><br /> <? $l = new Zend_Locale(Zend_Locale::ZFDEFAULT); ?> Zend_Locale::FRAMEWORK: <?=$l;?><br /> default: en_US Zend_Locale::BROWSER: en_US Zend_Locale::ENVIRONMENT: es_PE Zend_Locale::FRAMEWORK: en

Idioma y Región <? $l = new Zend_Locale('es'); // Solo idioma ?> <?=$l;?><br /> <? $l = new Zend_Locale('es_PE'); // Idioma y Región ?> <?=$l;?><br /> es es_PE

Obteniendo el Idioma y Región <? Zend_Locale::setDefault('es_PE'); ?> <? $l2 = new Zend_Locale(Zend_Locale::ZFDEFAULT); ?> (default cambiado) : <?=$l2;?><br /> (idioma) : <?=$l2->getLanguage();?><br /> (region) : <?=$l2->getRegion();?><br /> (default cambiado) : es_PE (idioma) : es (region) : PE

Locale de un Territorio <? $l3 = new Zend_Locale(Zend_Locale::getLocaleToTerritory('MX'));?> (idioma) : <?=$l3->getLanguage();?><br /> (region) : <?=$l3->getRegion();?><br /> <? $l4 = new Zend_Locale(Zend_Locale::getLocaleToTerritory('JP'));?> (idioma) : <?=$l4->getLanguage();?><br /> (region) : <?=$l4->getRegion();?><br /> (idioma) : es (region) : MX (idioma) : ja (region) : JP

Más ejemplos con Zend_Currency, Zend_Translate, Zend_Date, etc. Ejemplo de uso: <?=Zend_Locale_Format::getNumber('123,789', array('locale'=>'es_ES')); ?><br /> <?=Zend_Locale_Format::getNumber('123.789', array('locale'=>'es_ES')); ?><br /> <?=Zend_Locale_Format::getNumber('123.789', array('locale'=>'es_PE')); ?><br /> <?=Zend_Locale_Format::getNumber('123,789', array('locale'=>'es_PE')); ?><br /> <?=Zend_Locale_Format::getNumber('123.789', array('locale'=>'it_IT')); ?><br /> <?=Zend_Locale_Format::getNumber('123.789', array('locale'=>'en_US')); ?><br /> <?=Zend_Locale_Format::getNumber('123,789', array('locale'=>'fr_FR')); ?><br /> <?=Zend_Locale_Format::getNumber('123.789', array('locale'=>'es_AR')); ?><br /> <?=Zend_Locale_Format::getNumber('123,789', array('locale'=>‘ja_JP')); ?><br /> 123.789 123789 123.789 123789 123789 123.789 123.789 123789 123789 Más ejemplos con Zend_Currency, Zend_Translate, Zend_Date, etc.

Zend_Date

Zend_Date El componente Zend_Date ofrece una API detallada pero a la vez simple para manipular fechas y horas. Sus métodos aceptan una amplia variedad de tipos de información, incluyendo partes de fechas, en varias combinaciones.

Inicializando Zend_Date <? $d = new Zend_Date();?> <?=$d?> Zend_Date implementa el método toString() Apr 5, 2011 12:48:02 PM

Getters <?=$d?><br /> <?=$d->get()?><br /> <?=$d->get(Zend_Date::DATETIME)?><br /> <?=$d->get(Zend_Date::DATETIME_FULL)?><br /> <?=$d->get(Zend_Date::ATOM)?><br /> <?=$d->get(Zend_Date::DAY_OF_YEAR)?><br /> <?=$d->get(Zend_Date::DAY)?><br /> <?=$d->get(Zend_Date::WEEK)?><br /> Apr 5, 2011 1:09:57 PM 1302026997 Apr 5, 2011 1:09:57 PM Tuesday, April 5, 2011 1:09:57 PM America/Lima 2011-04-05T13:09:57-05:00 94 05 14

Setters <? $d->set('16:00:00',Zend_Date::TIMES); ?> <?=$d?><br /> <? $d->set(44,Zend_Date::SECOND); ?> <?=$d?><br /> <? $d->set(1986,Zend_Date::YEAR); ?> <?=$d?><br /> <? $d->set(2,Zend_Date::MONTH); ?> <?=$d?><br /> <? $d->set(23,Zend_Date::DAY); ?> <?=$d?><br /> <?=$d->get(Zend_Date::DATETIME_FULL)?> <br /> Apr 5, 2011 4:00:00 PM Apr 5, 2011 4:00:44 PM Apr 5, 1986 4:00:44 PM Feb 5, 1986 4:00:44 PM Feb 23, 1986 4:00:44 PM Sunday, February 23, 1986 4:00:44 PM America/Lima

Incrementado y Decrementando <?=$d?><br /> <? $d->add('02:30:00',Zend_Date::TIMES); ?> <? $d->add(1,Zend_Date::MONTH); ?> <?=$d?><br /> <? $d->sub(3,Zend_Date::HOUR); ?> <? $d->sub(1,Zend_Date::YEAR); ?> <?=$d?><br /> Feb 23, 1986 4:00:44 PM Mar 23, 1986 6:30:44 PM Mar 23, 1985 2:30:44 PM

Comparación: mayor, menor o igual <? $d = new Zend_Date();?> <?=$d?><br /> <? $h = 23; ?> <? $c = $d->compare($h,Zend_Date::HOUR); ?> <?= $c==0 ? "Son las $h horas“ : ( $c==-1 ? "Aun no son las $h horas“ : "Ya son mas de las $h horas“ ) ?><br /> Apr 5, 2011 1:28:47 PM Aun no son las 23 horas

Comparación: igualdad o desigualdad <? $d = new Zend_Date();?> <?=$d?><br /> <? $h = 23; ?> <?= $d->equals($h,Zend_Date::HOUR) ? "Son las $h horas“ : "No son las $h horas“ ?><br /> Apr 5, 2011 1:28:47 PM No son las 23 horas

Usando Zend_Locale <? $es = new Zend_Locale('es_PE'); ?> <? $d1 = new Zend_Date('1 de abril del 2011',Zend_Date::DATE_LONG,$es);?> <?=$d1?><br /> <? $d2 = new Zend_Date('April 2, 2011');?> <?=$d2?><br /> <? $d3 = new Zend_Date(‘5 avril 2011',Zend_Date::DATE_LONG,'fr');?> <?=$d3?><br /> 01/04/2011 00:00:00 Apr 2, 2011 12:00:00 AM 5 avr. 2011 00:00:00

Otros métodos de Zend_Date "<?=$d1?>" <?=$d1->isEarlier($d2)?'es':'no es'?> anterior a "<?=$d2?>"<br /> "<?=$d1?>" <?=$d1->isLater($d2)?'es':'no es'?> posterior a "<?=$d2?>"<br /> "<?=$d1?>" <?=$d1->isTomorrow()?'es':'no es'?> mañana<br /> "<?=$d2?>" <?=$d2->isYesterday()?'fue':'no fue'?> ayer<br /> "<?=$d3?>" <?=$d3->isToday()?'es':'no es'?> hoy<br /> "<?=$d1?>" <?=$d1->isLeapYear()?'es':'no es'?> año bisiesto<br /> <? $d1->add(1,Zend_Date::YEAR); ?>         "<?=$d1?>" <?=$d1->isLeapYear()?'es':'no es'?> año bisiesto<br /> "01/04/2011 00:00:00" es anterior a "Apr 2, 2011 12:00:00 AM" "01/04/2011 00:00:00" no es posterior a "Apr 2, 2011 12:00:00 AM" "01/04/2011 00:00:00" no es mañana "Apr 2, 2011 12:00:00 AM" no fue ayer "5 avr. 2011 00:00:00" es hoy "01/04/2011 00:00:00" no es año bisiesto "01/04/2012 00:00:00" es año bisiesto

Creando una fecha de un UNIX timestamp // SELECT UNIX_TIMESTAMP(my_datetime_column) FROM my_table $unixtimestamp = 1101491890; $d = new Zend_Date($unixtimestamp, Zend_Date::TIMESTAMP); echo $d."<br />"; Nov 26, 2004 12:58:10 PM

Creando una fecha de un date (db) // SELECT datecolumn FROM my_table $datecolumn = '1998-09-24'; $d = new Zend_Date($datecolumn, Zend_Date::ISO_8601); echo $d."<br />"; Sep 24, 1998 12:00:00 AM

Creando una fecha de un array // Array $datearray = array('year' => 2006,                    'month' => 4,                    'day' => 18,                    'hour' => 12,                    'minute' => 3,                    'second' => 10); $d = new Zend_Date($datearray); echo $d."<br />"; Apr 18, 2006 12:03:10 PM

Zend_Translate

Zend_Translate Zend_Translate es la solución de Zend Framework para construir aplicaciones multi-idioma.

Inicializando Zend_Translate en el bootstrap protected function _initTranslation(){// Bootstrap    $regT = Zend_Registry::get('t');     $lang = isset($regT->lang)?$regT->lang:'es';     $es = array(         'message1' => 'Mensaje 1',         'message2' => 'Mensaje 2',         'message3' => 'Mensaje 3');     $en = array(         'message1' => 'Message 1',         'message2' => 'Message 2',         'message3' => 'Message 3');     $de = array(         'message1' => 'Nachricht 1',         'message2' => 'Nachricht 2',         'message3' => 'Nachricht 3');    $t = new Zend_Translate(array(             'adapter' => 'array',             'content' => $$lang,             'locale' => $lang      ));     $regT->t = $t; }

Uso en las vistas <? $regT = Zend_Registry::get('t'); $t = $regT->t; ?> <?=$t->_("message1")?><br /> <?=$t->_("message2")?><br /> <?=$t->_("message3")?><br />

Cambiar de Idioma: public function changeLangAction(){     $regT = Zend_Registry::get('t');     $regT->lang = $this->_getParam('lang');     $this->_redirect($_SERVER['HTTP_REFERER']); }

Zend_Currency

Zend_Currency Zend_Currency es parte del fuerte soporte para i18n que brinda Zend Framework. Maneja varias operaciones relacionadas con divisas, representación de monedas, formato, intercambio, etc.

Inicialización <? $c = new Zend_Currency(); ?> <? $c->setValue(100); ?>  <?=$c?> <br /> $100.00

i18n & l10n default:     <?=$c?> <br /> Perú:        <?$c->setLocale('es_PE');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> Japón:       <?$c->setLocale('ja_JP');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> México:      <?$c->setLocale('es_MX');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> Francia:     <?$c->setLocale('fr_FR');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> Italia:      <?$c->setLocale('it_IT');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> Costa Rica:  <?$c->setLocale('es_CR');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> Gran Bretaña:<?$c->setLocale('en_GB');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> Rusia:       <?$c->setLocale('ru_RU');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> Canadá:      <?$c->setLocale('en_CA');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> USA:         <?$c->setLocale('en_US');?> <?=$c?> (<?=$c->getName()?>,<?=$c->getShortName()?>) <br /> default: $100.00 Perú: S/. 100.00 (nuevo sol peruano,PEN) Japón: ¥100.00 (日本円,JPY) México: $ 100.00 (peso mexicano,MXN) Francia: 100,00 € (euro,EUR) Italia: € 100,00 (Euro,EUR) Costa Rica: ₡ 100,00 (colón costarricense,CRC) Gran Bretaña: £100.00 (British Pound Sterling,GBP) Rusia: 100,00 руб. (Российский рубль,RUB) Canadá: $100.00 (Canadian Dollar,CAD) USA: $100.00 (US Dollar,USD)

Algunos métodos $5,100.00 $5,223.46 $401.80 no es mayor que 5000 <? $c->setValue(5100); ?> <?=$c?> <br /> <? $c->add(123.456); ?> <?=$c?> <br /> <? $c->div(13); ?> <?=$c?> <br /> <?= $c->isMore(5000)?'es’:'no es‘;?> mayor que 5000 $5,100.00 $5,223.46 $401.80 no es mayor que 5000

Cambio de Divisas class My_TasaCambio implements Zend_Currency_CurrencyInterface {     public function getRate($from, $to){         if ($from !== "USD" && $from !== "PEN"  ) {             throw new Exception('Solo se cambia USD, PEN');         }         switch ($from) {             case 'USD':                 switch ($to) {                     case 'PEN':                         return 2.8;                }             case 'PEN':                 switch ($to) {                     case 'USD':                         return 0.3571;                }        }        throw new Exception("No se cambia a $to");     } }

Cambio de Divisas <? $c1 = new Zend_Currency(); ?> <? $tc  = new My_TasaCambio(); ?> <? $c1->setService($tc) ?> <? $c1->setValue(1000,'PEN'); ?> <?=$c1;?> <br /> <? $c1 = new Zend_Currency('es_PE'); ?> <? $tc  = new My_TasaCambio(); ?> <? $c1->setService($tc) ?> <? $c1->setValue(1000,'USD'); ?> <?=$c1;?> $357.10 S/. 2,800.00