Autor Tema: [DUDA] WEB MULTI IDIOMA  (Leído 1294 veces)

Desconectado Rastrillox

  • PHPero Experto
  • *****
  • Mensajes: 592
  • Karma: 25
  • Sexo: Masculino
    • Ver Perfil
    • Forhabbo.es
[DUDA] WEB MULTI IDIOMA
« en: 23 de Septiembre de 2010, 19:33:37 pm »
Buenas, estoy haciendo una web multi idioma, como todos ya saben con la función define(); ps, quiero saber como podria hacer que los usuarios cambiaran el idioma sin tener que estar logueados, y no estoy seguro si es con session coockie que se hacer, ps si me lo aclaran se lo agradeceria con un K+

Comunidad PHPeros

[DUDA] WEB MULTI IDIOMA
« en: 23 de Septiembre de 2010, 19:33:37 pm »

Desconectado german95

  • PHPer@
  • **
  • Mensajes: 99
  • Karma: 6
    • Ver Perfil
    • germangb
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #1 en: 23 de Septiembre de 2010, 19:41:07 pm »
yo, siempre que quiero hacer un multi idioma uso cookies

Desconectado Rastrillox

  • PHPero Experto
  • *****
  • Mensajes: 592
  • Karma: 25
  • Sexo: Masculino
    • Ver Perfil
    • Forhabbo.es
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #2 en: 23 de Septiembre de 2010, 19:42:52 pm »
Mmm... entonces cookies muchas gracias..

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #3 en: 23 de Septiembre de 2010, 20:30:13 pm »
Mmm... entonces cookies muchas gracias..

Depende de como vas a querer la metodología. Si por ejemplo quieres mediante un select a nada mas seleccionar
una opcion se translade, pues si solo es 1 pagina, no hace falta que uses ni define() ni cookie ni session.

Ahora si quieres que se traduzcan todas las paginas, sí.

#Fdo. Physlet

Desconectado Rastrillox

  • PHPero Experto
  • *****
  • Mensajes: 592
  • Karma: 25
  • Sexo: Masculino
    • Ver Perfil
    • Forhabbo.es
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #4 en: 23 de Septiembre de 2010, 21:11:43 pm »
Pero si uso secciones, no seria igual?

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #5 en: 23 de Septiembre de 2010, 21:18:05 pm »
Pero si uso secciones, no seria igual?

Si usas secciones si debes usar define() o $_SESSION[] o lo que quieras.

#Fdo. Physlet

Desconectado Rastrillox

  • PHPero Experto
  • *****
  • Mensajes: 592
  • Karma: 25
  • Sexo: Masculino
    • Ver Perfil
    • Forhabbo.es
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #6 en: 23 de Septiembre de 2010, 22:05:35 pm »
Mierda esto enrreda, hasta buscando tutos..

Desconectado AndresGonzalez

  • PHPer@ Fijo
  • ***
  • Mensajes: 108
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #7 en: 23 de Septiembre de 2010, 22:11:13 pm »
Porque no haces cuando la persona seleccione el boton de idioma ingles guardas la ip y el idioma que elijio en la db y dps le muestras bajando los datos de la db.

si tiene en casilla idioma: ingles

muestras
en ingles ya entiendes?

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #8 en: 23 de Septiembre de 2010, 22:13:50 pm »
Mierda esto enrreda, hasta buscando tutos..

Es muy fácil tio.  Lo unico que debes hacer es crear varios archivos con distintos idiomas. Una vez elaborados los
archivos, vamos a index y hacemos un select, le llamas idioma y los valores los que tu quieras.

Luego recoges el post de idioma y haces esto:


<?php
   
echo "<script>location.href=&#39;index.php?lengua=".$_POST[&#39;idioma&#39;]."&#39;</script>":


¡Listo!

#Fdo. Physlet

Desconectado Rastrillox

  • PHPero Experto
  • *****
  • Mensajes: 592
  • Karma: 25
  • Sexo: Masculino
    • Ver Perfil
    • Forhabbo.es
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #9 en: 23 de Septiembre de 2010, 22:21:30 pm »
no lo estaba haciendo con bd... por eso era que me estaba cagando..

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #10 en: 23 de Septiembre de 2010, 23:01:17 pm »
Es muy fácil tio.  Lo unico que debes hacer es crear varios archivos con distintos idiomas. Una vez elaborados los
archivos, vamos a index y hacemos un select, le llamas idioma y los valores los que tu quieras.

Luego recoges el post de idioma y haces esto:


<?php
   
echo "<script>location.href=&#39;index.php?lengua=".$_POST[&#39;idioma&#39;]."&#39;</script>":


¡Listo!

Después guardas varios archivos .php con variables...
español.php
ingles.php
frances.php

Haces un include con el get que creaste (filtrandolo claro xd) y coloca las variables...

En cada archivo de los lenguajes definirás las mismas variables, con absolutamente todos los textos de tu web..

ejemplo:
español.php
<?
$reg = "Registrate es gratis";
?>

ingles.php
<?
$reg = "Register is free";
?>

Saludos
Twitter: @JoakoM010



Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #11 en: 24 de Septiembre de 2010, 23:30:27 pm »
Yo, bajo mi experiencia (que ciertamente en webs de muchos idiomas no es mucha) te recomiendo usar CONSTANTES y COOKIES.

Por que? Simple:
Las constantes son constantes, el nombre lo indica, si usas variables ya algo va mal: las variables varían, las constantes no: recuérdelo.
Además, simplemente por estilo, es mejor usar constantes que variables. Si no haces esto vas a conseguir liarte entre tantas variables.
Usa un formulario y recojes con $_POST, y en cada página incluyes el archivo. Ej:
include("lenguas/".$_POST['lng'].".php");
Y en cada archivo .php defines las diferentes opciones, como dice SoyJoaquin.

El uso de cookies es simplemente porque a quien le importa el idioma es al usuario. No te merece la pena crear una tabla para guardar IP's y lenguajes, es una tonteria y un gasto de recursos. Crea una cookie con el lenguaje que quieran usar y listo. Otra opción es usar la BD si, pero esto hazlo solo como añadido a un sistema de usuarios. Quiero decir: si ya tienes una tabla para los datos del usuario, no te cuesta nada añadir a esa tabla un campo para el lenguaje, pero en otro caso no es necesario.

Espero que me entiendas,
Un saludo.
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Rastrillox

  • PHPero Experto
  • *****
  • Mensajes: 592
  • Karma: 25
  • Sexo: Masculino
    • Ver Perfil
    • Forhabbo.es
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #12 en: 25 de Septiembre de 2010, 01:56:20 am »
Muchas gracias a todos los que colaboraron, yo me estaba matando haciéndolo de una forma mas complicada, pero recurrí al método mas secillo...

Thanks, For all

Desconectado Rastrillox

  • PHPero Experto
  • *****
  • Mensajes: 592
  • Karma: 25
  • Sexo: Masculino
    • Ver Perfil
    • Forhabbo.es
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #13 en: 25 de Septiembre de 2010, 16:51:26 pm »
Dios.. no le recomiendo a ninguno hacerlo mediante post, es el metodo mas sencillo, pero a la hora de usarlo, en al gunas ocaciones la caga...

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[DUDA] WEB MULTI IDIOMA
« Respuesta #14 en: 25 de Septiembre de 2010, 16:55:53 pm »
Lo mejor que podrías hacer es automatizarlo a la hora de entrar, lo uno que tiene que hacer es usar la constante $_SERVER['HTTP_ACCEPT_LANGUAGE'] y por ahi obtendras el idioma. Ejemplo:
if(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2) == 'es')) echo 'Hablas español';
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>