Foros del Web » Programando para Internet » PHP »

Idiomas

Estas en el tema de Idiomas en el foro de PHP en Foros del Web. Buenas,estoy queriendo armar una pagina web en varios idiomas,el problema es que yo trabajo con frames,y como toda pagina compleja tiene muchisimos archivos que visitar.El ...
  #1 (permalink)  
Antiguo 09/06/2005, 19:10
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Idiomas

Buenas,estoy queriendo armar una pagina web en varios idiomas,el problema es que yo trabajo con frames,y como toda pagina compleja tiene muchisimos archivos que visitar.El drama está en que yo en la pagina principal(osea,el index.php) doy la opción del cambio de idiomas,que primitivamente es Inglés y español...bueno,si el usuario elije ingles se le traduce todo y asi...mi problema está en que esa misma elección me gustaria que se cargue en toodas las paginas,osea,que el usuario no se vea obligado a elegir el idioma cada vez que entre en un archivo de mi pagina,es por eso que quiero que ustedes,expertos en php,ayuden a este joven sin conocimientos a terminar con este mal,jajaaja...

Ahora les voy a mostrar un poco del index.php,y luego les mostrare el corto archivo de cambia_idioma.php

Bueno en el index.php tengo esto(cabe aclarar que utilizo sessions):

Código:
<?php
session_start(); 
switch ($_GET['idioma']){ 
case "spanish": 
  $inc ='lang/spanish.inc.php'; 
break; 
case "english": 
  $inc = 'lang/english.inc.php'; 
break; 
default: 
  $inc ='lang/spanish.inc.php'; 
} 
include("$inc"); 
?>

bla bla bla a continuación,y despues en el body tengo esto:


<p><a href="index.php?idioma=english"><img src="Images/flag-english.jpg" width="30" height="16" border="0" align=left></a> <a href="index.php?idioma=spanish"><img src="Images/flag-spanish.png" width="30" height="16" border="0" align=left></a></p>


Y luego tengo el archivo cambia_idioma.php:

<?
session_start();
switch ($_GET['idioma']){
case "spanish":
$inc ='lang/spanish.inc.php';
break;
case "english":
$inc = 'lang/english.inc.php';
break;
default:
$inc ='lang/spanish.inc.php';
}
include("$inc");
exit;
?>


Eso sería todo,despues estan los archivos de idiomas,pero no tiene sentido que los muestre,si sirve de algo aclarar,uso define()...

Bueno,diganme que tengo que hacer para que cada pagina de mi web esté traducida,y qué tengo que poner en cada una de ellas...

Gracias por todo,y realmente les agradezco por todo,repito nuevamente,gracias.
  #2 (permalink)  
Antiguo 09/06/2005, 19:32
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 9 meses
Puntos: 10
Hola... no se que habra dentro de los archivos spanish.inc.php y english.inc.php.... pero en el codigo que psuiste no estas usando sessiones.. solo las inicias con session_start() pero despues no las usas mas.

lo que deberias hacer es algo asi:

Código PHP:
<?php

session_start
(); 

if(!isset(
$_SESSION['inc'])){
    
$_SESSION['inc'] = 'spanish'
}

if(isset(
$_GET['idioma'])){

    switch (
$_GET['idioma']){ 
    case 
"spanish"
        
$_SESSION['inc'] = 'spanish'
        break; 
    case 
"english"
        
$_SESSION['inc'] = 'english'
        break; 
    } 

}

include(
"lang/".$_SESSION['inc'].".inc.php"); 

?>
NMo lo probe, pero por lo menos te puede dar una idea de como hacerlo.
__________________
oohh... quisiera ser godines!!!
  #3 (permalink)  
Antiguo 09/06/2005, 19:40
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Eso va en index.php pero luego,qué pongo para que esa configuración del idioma,osea,el idioma que el visitante elijió esté en todas las páginas?
Osea,que no tengo que volver a elejir el idioma varias veces...
  #4 (permalink)  
Antiguo 09/06/2005, 20:01
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 9 meses
Puntos: 10
Si el idioma se puede cambiar en todas las paginas del sitio deberias poner ese codigo en todas las paginas. Pero si solo se elije en el indez.php, pones ese codigo en el index y en las otras pones:

Código PHP:
<?php

session_start
();

if(!isset(
$_SESSION['inc'])){
    
$_SESSION['inc'] = 'spanish';
}

include(
"lang/".$_SESSION['inc'].".inc.php");

?>
y lo que estarias haciendo es cargar el idioma que elijio en el index... y si por alguna casulaidad no hay nada elegido se mostraria el idioma por defecto.
__________________
oohh... quisiera ser godines!!!
  #5 (permalink)  
Antiguo 09/06/2005, 20:28
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Gracias,me funcionó perfecto,y ahora cambiando de tema,pero no quiero abrir otro porque me da verguenza...cómo hago para que una vez hecho el login me cargue en el default.php,el menu.php en vez de frame2.php,y en vez de index.php el noticias/index.php

les muestro la parte del frameset en el default:


<FRAMESET COLS="*,745,*" FRAMEBORDER="0" BORDER="0">
<FRAME NAME="Blanco" SRC="blanco.html" scrolling="no">

<frameset rows="98,*" frameborder="NO" border="0" framespacing="0"

marginwidth="0" marginheight="0">
<frame src="frame.php" scrolling="NO" noresize>

<frameset cols="150,*" frameborder="NO" border="0" framespacing="0">
<?php
if( isset($_SESSION["username"]) && isset($_SESSION["user_password"]) ){
?>
<frame src="menu.php?" scrolling="NO" noresize>
<?php }else{?>
<frame src="frame2.php" scrolling="NO" noresize>
<?php }?>


<frameset rows="*,62" frameborder="YES" border="0" framespacing="0">
<?php
if( isset($_SESSION["username"]) && isset($_SESSION["user_password"]) ){
?>
<frame src="noticias/index.php" noresize>
<?php }else{?>
<frame src="index.php" name="mainFrame" noresize>
<?php }?>
<frame src="frame3.php" name="bottomFrame" noresize scrolling="NO">
</frameset>
<noframes>
Lo sentimos mucho,su servidor no está apto como para soportar esta pagina

web,le pedimos por favor que intente conectarse m&aacute;s tarde desde

otra m&aacute;quina que soporte la pagina web,gracias.


</noframes>



Miren los errores y diganme tengo en la primera línea esto

<?PHP
session_start();
?>
  #6 (permalink)  
Antiguo 10/06/2005, 00:27
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
Iniciado por Saldu
ahora cambiando de tema,pero no quiero abrir otro porque me da verguenza...
Pués (igual ya se te dijo) sigue tus temas originales:
http://www.forosdelweb.com/f18/pequeno-problema-con-default-304982/
Cita:
Iniciado por Saldu
Miren los errores y diganme tengo en la primera línea esto

<?PHP
session_start();
?>
... ¿y por qué no mencionas los errores?.. debemos adivinar también?... si tienes en la primera línea "X" ¿por qué no lo pusiste en su debido lugar???... Ya se te ha mencionado sobre colorear código...

.... ... ...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 10/06/2005, 07:09
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 9 meses
Puntos: 10
No conosco mucho como trabajan los frames... pero no creo que tener tantas etiquetas frameset de apertura y una sola de cierre este correcto. Por lo tanto ese seria el primer problema a corregir.
Sobre el otro problema: la verdad no entiendo que es lo que queres hacer.

Saludos.
__________________
oohh... quisiera ser godines!!!
  #8 (permalink)  
Antiguo 05/07/2005, 03:05
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 11 meses
Puntos: 0
he leido el tema y me gustaria aprender un poco sobre las funciones estas para los idiomas, si alguien me lo pudiera explicar un poco como va. Gracias
  #9 (permalink)  
Antiguo 05/07/2005, 08:08
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 9 meses
Puntos: 10
Hola Karpoj23: las funciones mencionadas no son "para los idiomas".. son funciones generales del lenguaje a las que, en este ocasion, se las implementa para poder variar el idioma de una sitio.
Pero la idea muy basicamente hablando es: en tu documento no poner el contenido explicito sino en forma de variables. ej:

Código:
// MENU
<ul>
    <li><a href='historia.php'><?=$historia?></a></li>
    <li><a href='contactos.php'><?=$contactos?></a></li>
</ul>
Y en otros documentos definis el valor de esas variables segun el idioma deseado. ej:

Código PHP:
// english.php
<?
$historia 
"History";
$contactos "Contact";
?>


// spanish.php
<?
$historia 
"Historia";
$contactos "Contactos";
?>
y por ultimo al principio de cada documento incluís el archivo que eligio el usuario.

Lo que está arriba solo sirve para para esto ultimo... Lo otro es mas sencillo, solo es cuestion de probar.

Saludos
__________________
oohh... quisiera ser godines!!!
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 14:05.