Site dinamico en 14 idiomas (mas o menos)
Hola chicos,
al final me han dado el visto bueno para el rediseño del sitio, asi que le he dicho.. pues aprovechando eso me voy a tomar un tiempo para hacerlo dinamico y tal y tal...
Asi que esas me traigo, voy a cambiar la Web del Hotel Albayzin del Mar ( www.hotelalbayzindelmar.com ). A una pagina dinamica con plantillitas monas para no tener que estar borrando cada boton a mano por cada idioma. Pues ahi va mi pregunta:
¿Quien conoce una forma practica de hacerlo? Lo digo por si existen baches en el camino ponerme al tanto.
Voy a usar PHP y MySQL y mi idea era hacer las plantillas de cada pagina y meter PHP accediendo a la BBDD. Usare una cookie para definir el tipo de idioma y asi acceder a una BBDD u otra. No tiene mas misterio no? o si? Tendria que conectar con la BBDD en cada pagina o se mantiene la conexion? No se..ponerme al tanto si alguno habeis hecho algo asi.
Orange... no estaria nada mal el truquito para que aunque el contenido sea dinamico no me perjudique mucho en los buscadores... ;)
meddle
yo usaria la misma base de datos con las mismas tablas incluso. Habra campos comunes que puedes conservar y campos que tendran un txt para cada idioma. Esos podrian tener la forma txt_esp txt_eng txt_fra (etc etc). Luego la cookie te va a decir que idioma quieres y va a pedir el campo segun txt_$idioma
La conexion a la bbdd se pierde cuando cmbias de pagina.
En cuanto a lo de los buscadores, podrias usar el modulo mod_rewrite de apache para cambiar el aspecto de tu web. O si no va a ser una estructura muy complicada incluso te puede servir el mismo PHP. Lo normal seria que fuera algo como:
htt.../dominio.com/idioma/seccion/
o
htt.../dominio.com/seccion/idioma/
etc
Eso se puede arreglar relativamente rapido.
En cualquier caso te recomiendo el uso de plantillas (Smarty por ejemplo).
clkwise
que tal funciona el tema de las plantillas? yo si hago algo en php, primero va el html y luego incrusto el php donde vaya .
para que usais las plantillas? quienes las usais? que utilidad le veis ante hacerlo directamente?
mañana me mirare el smarty a ver que me cuentan :P pero si me podeis ir adelantando?
alex
Yo tengo contenido dinámico y el googel (por cierto, habéis probado a escribirlo así?) me lo coge bien...
Que buscadores perjudica, naranjo-mecánico?
meddle
el google ha cambiado mucho, antes no indexaba bien las paginas tipo url?var=valor. De todas maneras tanto si lo indexa bien como sino, lo mejor es siempre intentar dar una url decente e informativa: dominio/seccion/subseccion/
En cuanto a las smarty, tengo hecho un tutorial por ahi que se ha quedao sin colgar, a ver si lo recupero y lo meto en gen7es. Las ventajas de usar plantillas? Bueno, pues que solo tocas un archivo, que parsea super rapido y que es mucho mas facil de gestionar, porque en la plantilla solo hay html y en los archivos solo hay php.
Primero debes pensar una estructura para el documento. Secciones, capas, etc. Tambien le añades una hoja de estilo, por ejemplo. Todo eso sera la plantilla. Luego lo llenas via bbdd para cada archivo su tabla, etc...
Surt
Parece sencillo, voy a mirarme las smarty a ver que tal. Que piensas de hacer mis propias plantilla con dreamweaver? respecto a la base de datos no me entorpecera mismas tablas? campos comunes no creo que tenga, ahora no caigo en ninguno...
Voy a ponerme ahora mismo.
Surt
Ummm jamas usé plantillas, no veo ejemplos de como queda.. me leere el manual en ingles.
hartum
estructurando que es gerundio, usease por un lado ten las plantillas de html con su php incrustado, por otro ten la base de datos con sus campos(los comunes a todos los idiomas, y los especificos texto_esp, texto_ing, etc..), y por otro lado los idiomas. ¿cual es mi metodo? el siguinte:
-por un lado pongo mi plantilla con etiquetas de este tipo <? echo $saludo ?>
-por otro tengo archivos que se llamas esp.inc, ing.inc,ale.inc, etc...(de español, ingles y aleman, y el .inc, es porque son para hacer un include :-) ) , dentro de estos archivos tengo esto:
esp.inc-><? $saludo='hola'; ?>
ing.inc-><? $saludo='hello'; ?>
ale.inc-><? $saludo='hallo'; ?>
-finalmente en la plantilla donde sevan amostrar los resultados(la que tiene html y php incrustado) pongo algo de este estilo:
switch ($lan) {
case 'esp':
include("esp.inc");
break;
case 'ing':
include("esp.inc");
break;
case 'ale':
include("ale.inc");
break;
}
hartum
el tema plantilla tiene mas miga, se trata de hacer una plantilla en html y donde deben ir los contenidos, pones un tag por ejemplo asi <--titulares-->, luego lo que haces es cada vez que llamas a una pagina esta hace una consulta en base de datos, una operacion matematica o lo que sea y llama a la plantilla, sustituyendo los tags por el contenido que queramos.
si mal no recuerdo se utilizan las funciones parse, str_replace, ereg_replace, de forma masiva para hacer este tipo de cosas.
meddle
hartum,
en una plantilla no va php con echo ni nada de eso. lo guapo de las plantillas es que te permiten separar completamente la estructura basica + el layout (plantilla) de los datos (archivo php que llama a la bbdd).
hartum
lo se, lo se, pero puedes hacerlo asi, o puedes hacerlo incrustando directamente cachos de php, la segunda formas es mas "facil de entender" pero las 2 funcionan bien, en el sentido que al final te muestran los resultados como es debido.
Surt
http://zonaphp.com/index.php?modulo=articulo&accion=leer&id=16&pagina=2
Siendo yo el diseñador y el programador y el escritor de contenidos ¿no creeis que las plantillas me sobran? no me conviene mas hacer un diseño del site entero con el mismo php incrustado en todas pero que en la cookie me diferencie el idioma al que accede la bbdd?
mort
Hola,
aparte de apoyar todo lo que te han dicho sobre las ventajas de las plantillas en general, y Smarty en particular, echale un vistazo a esta clase, por si te puede servir http://www.sf.net/projects/phpbabel/
<fieldset>This is a small tool developed to create message files for your PHP sites that need to be translated. These files contain all your DEFINEs and functions such as DEFINE (WELCOME, "Hi there"); or function define($name) { return "Hi, $name";} Each text snippet is entered for the default language (you can change this from english to anything).</fieldset>
Surt
Por cierto Hartum... me mola el indice "arbol" que tienes en lasombra,
es dinamico? lo digo porque usare algo asi y si es codigo libre ;)
Surt
Umm parece que phpBabel funciona bien, basta con mirar su pagina y lo rapida que tira. Voy a investigar.
Pero en cualquier caso, aclararme esto:
Puedo usar un diseño unico con su php incrustado de modo que solo una variable decida el idioma?
Es decir, yo hago un diseño del site y le pongo a cada pagina el php "muestra de la bbdd el campo presentacion" y que la bbdd sea en funcion de la cookie?
Entonces me ahorro todo no? solo tengo que traducir en la bbdd, una tabla por ejemplo por idioma para simplemente abrir conexion con una u otra no?
clkwise
Surt yo no tengo muy claro para que usar una cookie. las cookie dan problemas de seguridad en los navegadores, y mensajes de alerta. No conviene "asustar" al usuario "ignorante" haciendo que el navegador le muestre un "cuidado"....
Yo mas que php he programado en java(servlets y demas...) pero el principio es el mismo. Yo usaba una variable oculta (hidden) en la que alamcenaria el idioma y luego en base a esa vbe hacia las consultas a una tabla u otra. esa vbe oculta la puedes ir pasando de un lado a otro
Lo que tu dices de hacer un solo diseño es como deberia ser, sino no tiene mucho sentido hacerlo dinamico. Tu haces un diseño y donde tenga que ir un contenido dinamico le metes el php. lo que metas en ese trozo lo gestionas al margen del html. te puedes hacer una clase para que te gestione a que tablas quieres "disparar" en base al idioma.
Surt
Perfecto, sin cookie y con variable oculta.
Por otra parte lo voy a hacer a mano todo porque me da pereza aprender a usar plantillas u otros sistemas, ademas de que prefiero que vean resultados cuanto antes y eso me llevaria mas tiempo.
Pues a ver que tal me sale. Un diseño y una variable que me "dispare" la base de datos adecuada.
Por cierto, estoy por gestionar el servidor aqui en vez de el de contrato.
Tiene un PIV a 2,3 y 2 gigas de memoria ademas de dos adsl de 2 megas. Tirara bien no? la pagina no tiene mas de 400 megas diarios de accesos. Creo que lo hare desde aqui y nos ahorramos un dinerito de hosting. que jaleo por dios!
meddle
Bueno, aqui esta maquetado: "CÓMO USAR LAS PLANTILLAS SMARTY EN 10 MINUTOS" en http://www.gen7es.net/documentos/smarty.php
El tuto llevaba casi un año hecho sin maquetar, pero me lo he releido y creo que se entiende bien y todavia es actual.
Surt, lo que dices es posible. Tambien estoy de acuerdo en que las cookies son un rollo, pero es una posibilidad.
clkwise
lo del hosting.... yo no lo haria. como se te caiga un sabado a las 6 de la tarde te va a tocar arreglarlo a ti. Si ellos pagan te quitas de marrones y asi te puedes centrar en el trabajo en si. Es mejor hacer menos cosas y bien hechas que querer hacer todo.
es una opinion claro :)
Surt
Vaya con el tuto, esta genial! sencillo y rapido y junto con el que postee debe ser el unico en español, buen trabajo.
Lo del hosting acabo de pedir las facturas y apenas se pagan 30 euros por el (y es un hosting cojonudo) asi que no me marcare ese tanto y lo mantendre como esta. Por comodidad y delegacion de responsabilidades :p
respecto a la page... del tiron con una plantilla y php incrustado comun para todos pero que accedan a la tabla que indique la variable oculta.
Hoy he usado el dia para centrarme al respecto, esta tarde empiezo con el desarrollo de una de prueba y luego con el resto.
No relajaros que os seguire dando la lata!!!! Que haria yo sin vosotros!!!!
Surt
Jaja, mmira que he tardao poco...
Alguien sabe de algun menu de botones con contenido dinamico y que sea configurable en aspecto? preferiblente que permita graficos rollover pero que el texto del boton venga dinamicamente... no se si me explico.
Es que el jefe es supersupersuper "esteta" (aunque a su manera) y no me admitira botones de texto plano sencillitos.
Toy mirando en Flashkit
hartum
arbol? sombra? me parece que me estoy liando, te refieres a esa especie de foro que tengo montado en mi pagina?www.hartum.net o a la pagina de www.lasombra.net, en ese caso la pagina no es mia es de mi compañero moises.
Si te refieres al primer caso, es un script enphp que genera arboles, lo que pasa que cuando tiene bastantes mensajes empieza air lento, ademas me lo monte de tal manera que no le puedo poner limit a la consulta de la base de datos(una putada).
Surt
Si, a la tuya, con ese cacho perro de cover :D
arboles en php... mejor voy a buscar algo precocinado de exchange de macromedia. En el trabajo soy mu perezoso para desarrollar cosas por mi cuenta.
hartum
si quieres te mando las clases a, mi plim!!!
Surt
no hace falta, ya me he pillado el tipico con XML en flash, el de macromedia retocaillo. Le dare un repasito y listo, no es nada feo.
Gracias ;)
clkwise
hay muchas maneras de hacer roll overs con texto dinamico.
podrias usar el swap image del DW cuando haga un rollover en el link (texto dinamico). el texto tb puede modificarse con CSS....
si no tienes muchos menus yo te diria que usases el swap image.
sino lo puedes hacer con flash e integrarlo con php pero creo q si no pilotas.... serian estudiar demasiadas cosas.
solo es una idea :)