La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Sesión 13 I18n & L10n Zend_Locale Zend_Date Zend_Translate Zend_Currency Instructor: Ing. Ernesto Anaya Ruiz Desarrollo Web Profesional con PHP y Zend."— Transcripción de la presentación:

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

2 i18n & l10n

3 Ejemplo

4 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

5 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

6 INTERNATIONALIZATION i18n LOCALIZATION l10n

7 Zend_Locale

8 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.

9 Creando un objeto de la clase Zend_Locale

10 default: Zend_Locale::BROWSER: Zend_Locale::ENVIRONMENT: Zend_Locale::FRAMEWORK: default: en_US Zend_Locale::BROWSER: en_US Zend_Locale::ENVIRONMENT: es_PE Zend_Locale::FRAMEWORK: en Capturando el Locale del contexto

11 es es_PE Idioma y Región

12 (default cambiado) : (idioma) : getLanguage();?> (region) : getRegion();?> (default cambiado) : es_PE (idioma) : es (region) : PE Obteniendo el Idioma y Región

13 (idioma) : getLanguage();?> (region) : getRegion();?> (idioma) : es (region) : MX (idioma) : ja (region) : JP Locale de un Territorio

14 'es_ES')); ?> 'es_ES')); ?> 'es_PE')); ?> 'es_PE')); ?> 'it_IT')); ?> 'en_US')); ?> 'fr_FR')); ?> 'es_AR')); ?> ja_JP')); ?> Ejemplo de uso: Más ejemplos con Zend_Currency, Zend_Translate, Zend_Date, etc.

15 Zend_Date

16 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.

17 Inicializando Zend_Date Apr 5, :48:02 PM Zend_Date implementa el método toString()

18 Getters get()?> get(Zend_Date::DATETIME)?> get(Zend_Date::DATETIME_FULL)?> get(Zend_Date::ATOM)?> get(Zend_Date::DAY_OF_YEAR)?> get(Zend_Date::DAY)?> get(Zend_Date::WEEK)?> Apr 5, :09:57 PM Apr 5, :09:57 PM Tuesday, April 5, :09:57 PM America/Lima T13:09:57-05:

19 Setters set('16:00:00',Zend_Date::TIMES); ?> set(44,Zend_Date::SECOND); ?> set(1986,Zend_Date::YEAR); ?> set(2,Zend_Date::MONTH); ?> set(23,Zend_Date::DAY); ?> get(Zend_Date::DATETIME_FULL)?> Apr 5, :00:00 PM Apr 5, :00:44 PM Apr 5, :00:44 PM Feb 5, :00:44 PM Feb 23, :00:44 PM Sunday, February 23, :00:44 PM America/Lima

20 Incrementado y Decrementando add('02:30:00',Zend_Date::TIMES); ?> add(1,Zend_Date::MONTH); ?> sub(3,Zend_Date::HOUR); ?> sub(1,Zend_Date::YEAR); ?> Feb 23, :00:44 PM Mar 23, :30:44 PM Mar 23, :30:44 PM

21 Comparación: mayor, menor o igual compare($h,Zend_Date::HOUR); ?> Apr 5, :28:47 PM Aun no son las 23 horas

22 Comparación: igualdad o desigualdad equals($h,Zend_Date::HOUR) ? "Son las $h horas : "No son las $h horas ?> Apr 5, :28:47 PM No son las 23 horas

23 Usando Zend_Locale 01/04/ :00:00 Apr 2, :00:00 AM 5 avr :00:00

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

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

26 Creando una fecha de un date (db) // SELECT datecolumn FROM my_table $datecolumn = ' '; $d = new Zend_Date($datecolumn, Zend_Date::ISO_8601); echo $d." "; Sep 24, :00:00 AM

27 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." "; Apr 18, :03:10 PM

28 Zend_Translate

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

30 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; }

31 Uso en las vistas t; ?> _("message1")?> _("message2")?> _("message3")?>

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

33 Zend_Currency

34 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.

35 Inicialización setValue(100); ?> $100.00

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

37 Algunos métodos setValue(5100); ?> add( ); ?> div(13); ?> isMore(5000)?'es:'no es;?> mayor que 5000 $5, $5, $ no es mayor que 5000

38 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 ; } } throw new Exception("No se cambia a $to"); } }

39 Cambio de Divisas setService($tc) ?> setValue(1000,'PEN'); ?> setService($tc) ?> setValue(1000,'USD'); ?> $ S/. 2,800.00


Descargar ppt "Sesión 13 I18n & L10n Zend_Locale Zend_Date Zend_Translate Zend_Currency Instructor: Ing. Ernesto Anaya Ruiz Desarrollo Web Profesional con PHP y Zend."

Presentaciones similares


Anuncios Google