Foros del Web » Creando para Internet » Diseño web »

Código para web con varios idiomas

Estas en el tema de Código para web con varios idiomas en el foro de Diseño web en Foros del Web. Estoy tratando de añadir mas idiomas a mi web, que por el momento está solo en español. He leido sobre un codigo php, concretamente el ...
  #1 (permalink)  
Antiguo 30/12/2009, 16:22
 
Fecha de Ingreso: diciembre-2009
Mensajes: 9
Antigüedad: 8 años
Puntos: 0
Código para web con varios idiomas

Estoy tratando de añadir mas idiomas a mi web, que por el momento está solo en español. He leido sobre un codigo php, concretamente el que se describe en éste post:

http://www.forosdelweb.com/f91/web-multilenguaje-facil-actualizar-514747/

El tema es que a través de éste sistema, cada etiqueta transporta un texto desnudo que no puede contener, por ejemplo links. Por la estructura de mi web sería muy complicado montarla así y casi seria mejor hacerlo página por pagina.

Una solución que me vendria de perlas, sería un código que permitiese cambiar la extensión de la página alterando exclusivamente lo que hay detras de una barra baja y siempre del mismo modo. Es decir, si estoy en genética_es.php que, al darle un boton, devolviese genetica_en.php, si estoy en homocigoticos_es.php, que devuelva homocigoticos_eng.php... el código deberia ser siempre el mismo, no me vale un simple link, porque lo que quiero es instaurarlo en un menú que tengo en todas las páginas a traves de la función php "include", así no tendria que modificar ninguna otra cosa.

Como ya habreis comprobado si habeis leido hasta aquí, no domino demasiado el lenguaje php, pero hago lo que puedo por ir aprendiendo, si lo que pido es una tonteria, disculpad la molestia
  #2 (permalink)  
Antiguo 01/01/2010, 16:17
 
Fecha de Ingreso: diciembre-2009
Mensajes: 9
Antigüedad: 8 años
Puntos: 0
Respuesta: Código para web con varios idiomas

Es imposible lo que pido?

EDITO / lo que quiero es una funcion que, si estoy en www.mipagina.com/caminando_es.php, al darle a un boton me devuelva www.mipagina.com/caminando_xx.php.

Dónde xx tendría que ser las dos primeras letras del idioma que se clicke, no se si a través de REQUEST URI podría hacerse...., pero me faltaria algo. / EDITO

Última edición por Windstalker; 02/01/2010 a las 09:57
  #3 (permalink)  
Antiguo 02/01/2010, 11:31
Avatar de jomaruro
Colaborador
 
Fecha de Ingreso: junio-2002
Ubicación: Naboo
Mensajes: 5.442
Antigüedad: 15 años, 5 meses
Puntos: 361
Respuesta: Código para web con varios idiomas

Hola:

Primero, estas preguntando sobre un código PHP en un foro que no es de PHP, deberías preguntar en el foro apropiado.

Segundo, ten un poco de paciencia, estos días hay poca actividad en el foro (es comprensible ¿no? y quizá tarden en contestarte (en cierto modo también por culpa del punto primero).

Saludos.

  #4 (permalink)  
Antiguo 02/01/2010, 16:19
Avatar de nemesis866  
Fecha de Ingreso: julio-2009
Ubicación: Jalisco, Mexico
Mensajes: 642
Antigüedad: 8 años, 5 meses
Puntos: 19
Respuesta: Código para web con varios idiomas

Totalmente de acuerdo con Jomaruro, pero tal ves te interese esto, no es un script php pero es muy bueno.

Tu web en varios idiomas

Saludos
__________________
Cursos de programación web
Articulos de programación Web
Twitter.- @paulo_866
  #5 (permalink)  
Antiguo 03/01/2010, 05:01
 
Fecha de Ingreso: diciembre-2009
Mensajes: 9
Antigüedad: 8 años
Puntos: 0
Respuesta: Código para web con varios idiomas

En primer lugar os pido disculpas por la insisténcia, no tengo excusa. Durante estos dias he tenido vacaciones, y quería aprovechar para montar mi site, pero cuando se pide ayuda se depende de las personas que la prestan, y todo lo mas que se puede hacer es agradecer, nunca impacientar, lo comprendo.

El motivo por el cual no puse el post en el foro específico de php es porque aún no tengo clara la manera a través de la cual quiero dar forma a mi idea, y estaba abierto a cualquier tipo de posibildad, a medida han ido pasando los dias, me he ido decantando por el php porque estoy empezando a ver como sería posible materializar el código que necesito, así que si quereis mover mi post al foro de php, adelante.

Por último, gracias nemesis866 por el link al traductor de google, igual lo implemente para idiomas con los que no tengo posibilidades de traducir nada dignamente, pero creo que por lo menos al inglés si voy a dar una traducción manual.

El código con el que he estado trabajando....

Es una modificación del código extraido de éste link

http://www.forosdelweb.com/f91/web-multilenguaje-facil-actualizar-514747/

Se compone de 4 php por el momento, prepend.php, lang_es.php, lang_eng.php, y index.php.

prepend.php

<?php
session_start();
if ($_GET["idioma"]) {
$_SESSION["idioma"]=$_GET["idioma"];
} elseif (!$_SESSION["idioma"]) {
$_SESSION["idioma"]="es";
}
// incluimos el idioma con las definiciones
include("lang_".$_SESSION["idioma"].".php");
?>


lang_es.php

<?php
// versión español
define("CAMBIA_IDIOMA","Change lenguage");
define("LINK","_es");
?>

lang_en.php

<?php
// versión inglés
define("CAMBIA_IDIOMA","Change lenguage");
define("LINK","_en");
?>

index.php


<?php
include("prepend.php");
echo '<p>'.CAMBIA_IDIOMA.'</p>
<p><a href="index.php?idioma=en">Ingles</a>
<p><a href="index.php?idioma=es">Español</a></p>';?>
<p><a href="<?php echo $_SERVER[’PHP_SELF’];?><?php echo LINK;?>.php>Link idiomatizado</a></p>'

Mi actual problema es que el link que me devuelve es así index.php_en.php, estoy buscando alguna manera de que se recorte el primer ".php"

Por otra parte, tengo la sensación (y creo que es una sensación muy real), de que todo mi código es una verdadera chapuza, pero con mi nivel no llego a más, soy de letras u.u

Última edición por Windstalker; 03/01/2010 a las 05:36
  #6 (permalink)  
Antiguo 03/01/2010, 09:24
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Respuesta: Código para web con varios idiomas

Hola Windstalker,

lo que no me queda claro es de si quieres llamar a un documento que incluye el idioma en su nombre (pe. documento_es.php) o si quieres llamar al documento pasándole el idioma como variable en la url (pe. document.php?idioma=es)
  #7 (permalink)  
Antiguo 03/01/2010, 11:35
 
Fecha de Ingreso: diciembre-2009
Mensajes: 9
Antigüedad: 8 años
Puntos: 0
Respuesta: Código para web con varios idiomas

Quiero llamar a un documento que lleva el idioma en su nombre pej documento_es.php

Lo que escribí antes es una tontería, cuando lo implementé me di cuenta de que el resultado no era el que estaba esperando. He substituido todo ese follon por esto:

<p><a href="<?php echo $rest = substr($_SERVER['PHP_SELF'], 0, -7);?>_es.php">español</a></p>

En teoría funciona, lo único que tengo que intentar és que todos los archivos terminen con _xx.php, mi único problema ahora es el artchivo de inicio, que es default.php a secas, estoy intentado hacer un condicional pero no da resultado, imagino, que, una vez mas, a causa de mi ineptitud.

<p><a href="<?php if ($_SERVER['PHP_SELF']='default.php') {
print "default";
}
else {
echo $rest = substr($_SERVER['PHP_SELF'], 0, -7);
}
?>
_es.php">español</a></p

Lamento la que estoy liando por algo que, a veustros ojos, debe ser tan simple.
  #8 (permalink)  
Antiguo 03/01/2010, 12:15
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Respuesta: Código para web con varios idiomas

Tal vez podrías usar una expresión regular que te cambie la cadena sólo si coincide con el patrón.

Un ejemplo

Código PHP:
$idioma_actual "es";
$idioma_otro "en";
$doc_actual "documento_en.php";
$patron "/_($idioma_actual)\.php/";
$salida_idioma "_$idioma_otro.php";
echo 
preg_replace($patron$salida_idioma$doc_actual); 
De esta forma si el nombre de $doc_actual (que lo obtendrás de $_SERVER['PHP_SELF']) no coincide con el patrón no cambiará nada
  #9 (permalink)  
Antiguo 06/01/2010, 08:30
 
Fecha de Ingreso: diciembre-2009
Mensajes: 9
Antigüedad: 8 años
Puntos: 0
Respuesta: Código para web con varios idiomas

Hasta el momento lo tengo así y funciona

<?php if ('PHP_SELF' == 'default.php') {
print "default";
}
else {
echo $rest = substr($_SERVER['PHP_SELF'], 0, -7);
}
?>

luego en html añado la coletilla del idioma

No obstante, la manera que me dices es menos chapucera, intentaré averiguar que tla funciona, muchas gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:31.