SysTemLang - STL (131)
Categoría: Clases | Autor: blanko | Fecha: 06 ene 08 (01:36) |
225 descargas
Votación
5
-
0
Estado
Pendiente de valoración
Descarga
rar
Actualizaciones (4)
- 02 feb 08 (23:33)
- 21 ene 08 (10:43)
- 07 ene 08 (01:30)
- 06 ene 08 (12:28)
Es un pequeño sistema, para Webs multidiomas, es decir, cuando un visitante entra a nuestra
Web por primera vez, el sistema buscara el idioma por defecto del navegador, si tenemos ese idioma
habilitado en nuestro sistema de idiomas Webs, cargará la Web en ese idioma (si no cargará el idioma
por defecto), si el usuario deseará verla en otro idioma tan solo debe elegirlo del menú desplegable
(en el ejemplo, vosotros podéis ponerlo como links,...) y se grabará una cookie por una semana,
con su idioma preferido. Mejor ver por vosotros mismos y lo entenderéis bien.
Disfruten del sistema y cualquier bug o sugerencia no duden en mandármela a blanko.ok@gmail.com,
estaré encantado de recibir noticias y poder aplicar nuevas opciones o reparar fallos al sistema.
DESCARGAR (Anterior Version 20/1/08): http://dymei.net/stl/SysTemLang---STL.rar
Demo: http://dymei.net/stl/index.php
OFF-LINE (porque ya he montado las web verdadera, donde estaban los demos)
Historial:
Actualización 1:
- Ahorrando código en algunos sitios
Con la ayuda de okram:
http://www.forosdelweb.com/f18/sistema-multi-idioma-pueden-valorar-545698/
Actualización 2:
- Ahorrando código 2
- Usar el sistema ISO 639-1 para la clasificación de los archivos de lenguaje
- Mejora del sistema para coger el idioma por defecto del navegador
- Modificado el sistema para que obtenga los idiomas disponibles, de los archivos subidos en la carpeta de idiomas
- Creada función para incluir rápidamente un select de idioma en cualquier lugar de nuestro archivos
- Mejorada la seguridad del include, la menos que pueda meter código malicioso en un máximo de 2 caracteres, no podrán hacer daños a los includes de idiomas.
Actualización 3:
- Creación de los métodos.
- Incluido Metodo 1 (El primero que hice).
- Codificación de caracteres para archivos de idiomas, así podras evitar que gente ajena a programación deban usar.
cadenas especiales para las tildes, ñ,...
- Incluido Metodo 2 (Por subdominios).
- Mejorada un poco mas la seguridad aplicando "define", a todos los archivos del sistema.
- Incluido Metodo 3 (Por dominios).
- Incluido Metodo 4 (Por carpetas o mod_rewrite).
- Aplicados los métodos actuales a la función "select_lang", que fue creada en actualización 2
- Incluidos todos los archivos del nuevo directorio "Documentación" y actualizado este léeme.
Actualización 4:
- Recreada la documentación completamente y nuevo diseño de documentación.
- Recreado el código entero en forma de Clase.
- Añadido métodos para modificar los valores por defecto de tu configuración al iniciar la clase.
- Mejor aspecto del demo.
Votaciones y comentarios
|
#1
turl 06 ene 08 (02:09) Útil, bien programada, y el demo funciona OK. Lo he mirado al código y no le he encontrado nada malo. Voto a favor :-)
|
|
#2
iaaqov 06 ene 08 (08:36) ta bueno compadre! muy bueno, bien programado, organizado y funcional. Voto a favor
|
|
#1
Aicart 06 ene 08 (18:38) Buen trabajo. Aunque creo que deberías cambiar los códigos de idioma (esp, eng ...) por los usados en iso.
|
|
#2
rubencm 06 ene 08 (21:02) La verdad, he revisado el código y al contrario que el resto a mi no me gusta mucho.
Mira, te doy algunas sugerencias, no se que te parecerán, pero si quieres añadelas. Para empezar es bastante incómodo tener que modificar en varios archvios del script los lenguajes disponibles, estaría mejor que es propio script los detectase leyendo la carpeta lang. Otra cosa es que en la lista desplegable, en vez de que siempre aparezca seleccionada como opción principal idioma, aparezca el lenguaje que estás usando, así el resultado sería el mismo, te ahorras una casilla, y no podrías seleccionar 2 veces el mismo idioma una vez estás en él. Luego también en alguna ocasion usas $HTTP_ACCEPT_LANGUAGE, lo cual no siempre funciona. Luego tambien no está bien que puedan ejecutarte los archivos de la carpeta de includes directamente, porque éstos contienen variables sin definir y muy posible se pueda explotar algún posible bug, pero tampoco lo he mirado muy a fondo, pero por seguridad deberías ponerlo bien. |
|
#3
blanko 07 ene 08 (01:29) Aicart, gracias pro la idea, ya la implemente, espero que te guste mas ahora.
rubencm , siento no haber cumplido tus expectativas con mi código, pero gracias por compartir esas sugerencias conmigo, ya creo haber implementado todas tu ideas. - Detentando los archivos de la carpeta <lang> o la carpeta donde estén configurado los archivos de idiomas, ahora solo debes especificar tu idioma predeterminado, en stl-config.php, los demás serán automáticos. - $HTTP_ACCEPT_LANGUAGE, actualizado - Mejorado el código general de $HTTP_ACCEPT_LANGUAGE y sus alrededores. - Revisado los includes, la variable idioma que es la única dada por get o por cookies, la filtro a solo dos caracteres que es lo que pido, si puede meter código malicioso en dos caracteres, sigo con bug, sino pueden, pues bug resuelto. - Sobre la lista desplegable, solo era un simple ejemplo, lo que ponía, nada eficiente, pero ya que me lo has comentado he añadido función, donde crea el select, como me comentabas, y así solo ahí que usar una linea en la pagina que se quiera incluir el select de cambio de idioma. Y creo que ya esta todo. Gracias por vuestras ayuda y tiempo. |
|
#2
iaaqov 15 ene 08 (00:03) en la prueba online sale un error en la lista: Por favor traduzca la variable: esp
eso es de codigo? es a propósito? o se te escapó? |
|
#3
blanko 15 ene 08 (19:56) A propósito, deje el idioma francés sin subir y algunos parámetro sin traducir, para que se vea el ejemplo, en todos los modos posibles al a vez. Aunque el ejemplo esta anticuado, cuando suba una nueva versión que estoy preparando, subo el demo actualizado.
|
|
#4
rubencm 16 ene 08 (12:50) Hola, veo que has mejorado bastante el script :)
Una cosa, igual he pensado que sería mejor que en el select pongas cada idioma en su idioma, para no tener que traducir todos en cada idioma, sería bastante cómodo la verdad, mira un ejemplo: http://www.zanox.com/us/, yo creo que quedaría bastante bien. Y lo de que no te puedan insertar código malicioso en páginas con variables sin definir con register globals on, me refería poniendo un define al principio del script y luego comprobar si está definido o algo así. |
|
#5
blanko 20 ene 08 (18:18) Actualizo aplicando vuestras ideas, espero sea de vuestro agrado la 3 actualización.
Aquí tenéis para bajarlo, me reservo la ultima actualización en php-hispano, para mas adelante, porque espero recibir mas sugerencias vuestras. Descripción de esta ultima actualización, en los descripción del archivo. DESCARGAR (Ultima versión 20/1/08): http://dymei.net/lang/SysTemLang-v1.0.rar |
|
#6
Zubyc 20 ene 08 (19:32) blanko, ya no hay límite de actualizaciones :)
Así que puedes realizar tantas modificaciones como desees ;) Si te aparece por algún lado que son sólo 3, dímelo por si acaso hubiera quedado en algún lugar información errónea |
|
#3
blanko 21 ene 08 (10:48) Gracias por la info Zybic, yo desconocía los limites de archivos, pero un amigo me dijo, no lo actualices tanto que solo tienes 3 actualizaciones disponibles y por eso pensaba que eran solo 3, pero ya que me confirmaste, que se puede actualizar, ahí tienes la ultima versión.
Ya que pasabas por aquí, aprovecha para decirme cosillas de mi script :), mejoras, seguridad, reducción de codigo... |
|
#4
blanko 21 ene 08 (10:51) Me acabo dar cuenta y lo reporto aquí mismo, porque no se quienes son los jefes de la web.
Que al editar los datos de mi archivos. Algunos caracteres como el uso de comillas "define", ocurren cosas extrañas, cada vez que edito le aparecen mas barras, llegando a quedar así: \\\"define\\\" |
|
#6
Zubyc 21 ene 08 (21:52) Gracias por el aviso blanko. Traslado la sugerencia a:
http://www.php-hispano.net/foros/PHP-Hispano/27308 para arreglarlo |
|
#4
blanko 02 feb 08 (23:35) He descubierto la programación orientada a objeto y me he querido estrenar, espero me puedan dar consejos, ya actualice mi código en forma de clase.
Demo: http://dymei.net/stl/index.php DESCARGAR (Anterior Versión 20/1/08): http://dymei.net/stl/SysTemLang---STL.rar Gracias por todos sus consejos. |
