i18n en PHP

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Event

    i18n en PHP - Presentation Transcript

    1. i18n en PHP Carlos Sánchez - carlos@nvivo.es David Gaya - david.gaya@assertio.es
    2. Introducción • i18n NO ES sólo presentar una web en varios idiomas • i18n is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes (Wikipedia) • L10n - Enfoca aspectos culturales (Fechas, monedas, medidas...) • L10n is the process of adapting software for a specific region or language by adding locale-specific components and translating text. (Wikipedia)
    3. Caso i18n de nvivo.es • Nginx, PHP4 + Smarty, MySQL 5, JQuery Plataforma completa en ISO-8859-1 • Despliegue de nvivo.es en más países. Comenzando con UK y DE • Información Local • Localización geográfica: Webservice de Geonames. Múltiples dominios, TLDs diferentes por cada país, URLs diferentes en cada idioma: http://www.5gig.co.uk http://www.5gig.de
    4. Pasos realizados • Paso de todos los archivos de iso-8859-1 a UTF-8. iconv —from-code=ISO-8859-1 —to-code=UTF-8 $file > $nfile • Configuración de Nginx, php.ini, MySQL. • Solución de problemas UTF-8 de PHP: Funciones mb_string • Fechas, moneda, unidades, soporte de localidades internacional: Geonames, strftime • Instalación de locales en el sistema, gettext, utilidades gettext.
    5. Pasos realizados II • Creación de estructuras de catálogos de idioma: archivos .PO, .MO • Uso de gettext en PHP, uso de gettext en Smarty. • Traducción de los catálogos. • Traducción de las URLs y gestión con múltiples .htaccess (rewrite de nginx).
    6. UTF-8 • ¿qué es UTF-8? Es una norma de transmisión de longitud variable para caracteres codificados utilizando Unicode • Unicode es un estándar industrial cuyo objetivo es que cualquier texto en cualquier forma e idioma pueda ser codificado para el uso informático • Norma nº 1 - TODO EN UTF-8: Editor, archivos, BD, tablas, campos... • Soluciona el 90% de tus problemas de i18n • ISO-8859-1
    7. A tener en cuenta: Backend locale -a //vemos todos los locales • /etc/locale.gen //Añadimos el locale que queremos instalar locale locale-gen //genera los locales que encuentra en /etc/locale.gen • gettext(“Hello World”); gettext sprintf(gettext(“Hello %s”),$var1); _(“This way better”); • MySQL ALTER DATABASE Journal SET CHARACTER SET utf8; ALTER TABLE Journal.Posts DEFAULT CHARSET SET utf8; ALTER TABLE MODIFY body body TEXT CHARACTER SET utf8; CHARACTER SET utf8 COLLATE utf8_general_ci; SET NAMES 'utf8'; • Apache .htaccess AddDefaultCharset UTF-8
    8. A tener en cuenta: PHP • PHP4, PHP5 y el UTF-8 no son muy amigos ¡funciones mb_string! ¿ PHP 6 ? • utf8_encode, utf8_decode No es necesario si se usa UTF-8, excepto con strftime :( • http://www.phpwact.org/php/i18n/utf-8
    9. A tener en cuenta: Frontend • XHTML <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> • Smarty Gettext <p>{t}Hello World{/t}</p> <p>{t 1=$var1 escape=”no”}Hello <strong>%1!</strong>{/t}</p> • Javascript Jquery gettext ¿? - Problemas de rendimiento (AJAX, JSON) Nosotros preferimos Smarty Ojo con las expresiones regulares y el paso a UTF-8 de ficheros .js
    10. gettext • Flexible: Fácil de actualizar nuevas frases • GPL, Estándar de facto, herramientas, utilidades • ¿por qué reinventar la rueda? xgettext, msgfmt, msgmerge.... • La opción menos mala xgettext -c archivo.php msgfmt messages.po msgmerge old.po messages.po -o new.po • POEdit y KBabel
    11. ¡A programar! Host - 217.113.247.140 / phpbarcelona.phpbcn.org User - phpworkshop Passwd - phpworkshop URL - http://phpbarcelona.phpbcn.org/i18n_workshop/user#/ PDF - http://phpbarcelona.phpbcn.org/i18n_workshop/bcnworkshop.pdf

    + nvivonvivo, 2 years ago

    custom

    1631 views, 0 favs, 0 embeds more stats

    Notes for the workshop titled '18n in PHP' for the more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1631
      • 1631 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 27
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events