Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2010
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Clase I18n para PHP

A ver qué os parece la clase I18n para PHP que al cabo he tomado como base para "internacionalizar" y hasta "localizar" mis futuros proyectos. Casi desde el principio quise utilizar Gettext (1) para estas tareas, sin embargo, pronto descubrí que dicho programa, mejor dicho la extensión para PHP (2), no siempre está disponible y lista para ser utilizada. En otras palabras, nunca me gustó utilizar archivos INI, "Arrays" u otras soluciones que he visto y aun veo utilizar en no pocos proyectos.

Utilizar Gettext ofrece varias ventajas, pero, dos de ellas son las que me hicieron decantarme por este programa y su forma de hacer las cosas: 1º Las cadenas de texto a traducir se escriben en el propio código fuente, es decir, no es necesario hacer uso de constantes o variables, sino que se escriben prácticamente "tal cual", y, sin embargo, pueden ser traducidas sencillamente. Y 2º, precisamente, que utilizar Gettext permite utilizar programas como PO Edit (3), algo que los traductores sin duda agradecerán.

Afortunadamente, hace años descubrí la biblioteca para PHP Gettext (4) y es la herramienta que he estado utilizando, por ejemplo, en mi proyecto Gesbit (5). Podríamos decir que PHP Gettext emula a la extensión Gettext de PHP, aunque esto no sea completamente así. Sin embargo, hace un tiempo que me puse a estudiar el código fuente del proyecto Habari (6), y descubrí que en el mismo se hacía uso de PHP Gettext, sin embargo, habían conseguido reducir su complejidad, de manera que las varias clases que incluye este proyecto se ve reducida a una clase. Empero, dicha clase en Habari está demasiado "anclada" al propio proyecto.

Así que en base a la experiencia que he tenido usando PHP Gettext, no me ha costado demasiado preparar una clase que incorpora todo lo necesario para ayudarnos a "internacionalizar" nuestros proyectos en PHP, siendo dicha clase completamente independiente de ninguna otra e incorporando las funciones "cortas" que básicamente son las que utilizaremos en nuestro código fuente para traducir las cadenas de texto que sea necesario, de manera que no tengas excusas y te decantes por usar otras soluciones menos elegantes y más costosas a la larga.

Junto con la clase I18n se incluye un ejemplo de uso sencillo, pero, que a la vez deja claro cómo funciona. En lugar de enrrollarme aquí con cómo funciona la clase I18n, lo que son "dominios de texto", archivos ".po" y ".mo" y cómo trabajar con estos en programas como PO Edit, digo que, mejor que todo esto, prefiero dejaros probar el invento (que no es tal) y que comentéis vuestras sugerencias, críticas, opiniones y sobre todo dudas que podáis tener aquí mismo, y así me evito escribir un tocho y a vosotros su pesadez. Así que ya lo sabéis. Por supuesto, me gustaría dar el crédito oportuno al autor de PHP Gettext y al equipo de Habari, pues yo muy poco he puesto de mi cosecha.

PD. He publicado también este texto en PHP-Hispano, y, para evitar duplicar esfuerzos, también desde ahí puedes descargar la clase I18n, si quieres.

Notas:

1. http://www.gnu.org/software/gettext/

2. http://php.net/manual/en/book.gettext.php

3. http://www.poedit.net/

4. http://savannah.nongnu.org/projects/php-gettext/

5. http://gesbit.sf.net/

6. http://habariproject.org/
Responder Con Cita
  #2  
Antiguo 23-01-2010
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
Muchas gracias, compañero... Eres un monstruo... ¡En el buen sentido! ;-)

Saludos
Responder Con Cita
  #3  
Antiguo 23-01-2010
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¡Gracias a ti ElKurgan!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Clase HtmlForm para PHP dec PHP 12 21-01-2010 17:13:27
clase que contiene otra clase definida de forma posterior astwin OOP 5 20-02-2009 11:26:55
Crear eventos para una clase DarkByte OOP 10 07-12-2005 20:02:28
Clase para hacer ABM mateamargo OOP 3 25-10-2005 22:34:23
Ayuda para crear una clase estebanx OOP 0 10-03-2005 16:36:49


La franja horaria es GMT +2. Ahora son las 14:02:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi