Foros del Web » Programando para Internet » PHP »

Pagina en diferentes idiomas

Estas en el tema de Pagina en diferentes idiomas en el foro de PHP en Foros del Web. Hola tengo que hacer una aplicación web en varios idiomas, hay varias alternativas pero no se por cual decantarme: - Fichero php definiendo cada palabra ...
  #1 (permalink)  
Antiguo 03/05/2007, 23:31
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 22 años, 2 meses
Puntos: 0
Pagina en diferentes idiomas

Hola tengo que hacer una aplicación web en varios idiomas, hay varias alternativas pero no se por cual decantarme:
- Fichero php definiendo cada palabra (http://www.forosdelweb.com/showthrea...216#post443216)
- Que lo lea de una tabla con formato:
INSERT INTO `messages` (`message`, `language`, `text`) VALUES ('login', 'ESP', 'Usuario');
INSERT INTO `messages` (`message`, `language`, `text`) VALUES ('login', 'CAT', 'Usuari');
- Fichero XML y recoger las palabras en un array (http://www.forosdelweb.com/showthrea...127#post521127)

Teniendo en cuenta que trabajarán bastantes usuarios simultaneamente sobre la aplicación y que ésta dispone de "bastante" texto, ¿Qué opción tiene mejor velocidad de carga?

Por cierto, al hcer un include carga todo el código de la nueva página o simplemente espera a que se le llame?

A ver si me podeis echar una mano, que voy algo perdido.

Un saludo.
  #2 (permalink)  
Antiguo 03/05/2007, 23:37
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Pagina en diferentes idiomas

lo carga todo :) pero en el caso del php como vi hay un switch
para ese caso se carga cuando se le llama :)

no se que opcion es mas rapida :/ segun como implementes el codigo se vera eso, pero voto por php :P
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 03/05/2007, 23:45
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: Pagina en diferentes idiomas

Por supuesto que es mucho mas rapida la opcion de definir cada palabra en un array en PHP , ademas que es la opcion que utilizan grandes script como phpbb , ya que estas trabajando en la memoria.

Ya que leer de una bd , por debajo de la implementacion son lecturas a hd , que son mucho mucho mas lenta, que una variable en memoria. Usar XML tambien se pierde proceso parseando dicho XML. Y como tu dices la aplicacion se va a utilizar mucho.

Usa array nomas, grandes aplicaciones lo utilizan :P
  #4 (permalink)  
Antiguo 04/05/2007, 04:12
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Pagina en diferentes idiomas

Yo, particularmente, suelo definir las cadenas de texto con define ya que no se van a modificar en ningún punto de la aplicación.
  #5 (permalink)  
Antiguo 04/05/2007, 09:48
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Pagina en diferentes idiomas

Muchas gracias a todos, me habeis convencido xDD

Me echaba un poco para atrás la gran cantidad de texto que puede haber, pero viendo la unanimidad me decantaré por esta opción.

Un saludo y gracias de nuevo.
  #6 (permalink)  
Antiguo 14/11/2009, 18:36
(Desactivado)
 
Fecha de Ingreso: octubre-2009
Ubicación: Venezuela
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Pagina en diferentes idiomas

Saludos amigos estoy dandole al coco y no he podido con este problema, necesito colocar mi web en varios idiomas y estoy probando con esta programacion y no doi???

acabo de crear un archivo llamado: idiomas.php

Código PHP:
<? 

if(empty($sitelang)){ //primero preguntamos si la variable que va a contener el lenguage del visitante esta vacia
      
$sitelang getenv("HTTP_ACCEPT_LANGUAGE"); // si esta vacia sacamos el lenguage del visitante y lo ponemos en la variable $sitelang
      
}
switch(
$sitelang){ //ahora cargamos el archivo que contiene el idioma segun la varible que sacamos antes
          
case "es" //es = español 
             
include("./lang/lang-esp.php"); //ahora cargamos el archivo que contiene las variables y sus palabras
             
break;
          case 
"en" //en = ingles 
             
include("./lang/lang-eng.php");
             break;
          default :
             include(
"./lang/lang-esp.php"); //cargamos un idioma por defecto si no se encontro algun idioma 
             
break;
       }

otro lang-esp.php

Código PHP:
<?php
define
('_LOGIN','Logeado');//lo definimos con una palabra que todos los archivos de lenguage tienen que tener para definir la funcion que cumple, despues la palabra que lo va a remplazar
define('_REGISTER','Registrarce');
define('_HELLO','Hola');
define('_ACCEPT','Aceptar');
define('_ACCESS_ADD','Añadir');
?>
y otro para mostrar el lenguaje:

registrarse.php

Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<?
echo _REGISTER;//esto pondria en pantalla Registrarce


?> 


</body>
</html>
y no quiere verse nada como hago para mostrar las palabras ??? para luego terminar el archivo englesh tambien por favor ayudenme?

Última edición por MaracaiboenLineaCom; 14/11/2009 a las 18:54
  #7 (permalink)  
Antiguo 14/11/2009, 18:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pagina en diferentes idiomas

MaracaiboenLineaCom, por favor, primero, no abras temas viejos... no tiene sentido hacerlo

luego... si no haces un include previo a imprimir las constantes de idioma, pues jamas van a existir...

ahora... ¿cual es el error o problema en concreto??

lo que dices no ayuda en lo absoluto, es difícil adivinar que haces y que no....

porque si bien, tienes separado todo... ¿cuando lo integras?? ¿y donde??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 14/11/2009, 18:52
(Desactivado)
 
Fecha de Ingreso: octubre-2009
Ubicación: Venezuela
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Pagina en diferentes idiomas

Saludos! disculpa amigo necesito ayuda sobre colocar una web en varios idiomas y no se como empezar eso que coloque alli es de otro post que queria experimentar para ver si funcionava pero no se como ponerlo a trabajar, ando probandolo en localhost en mi pc que la tengo como servidor.

Que debo hacer para que imprima esto en mi registro:

Código PHP:
define('_LOGIN','Logeado');//lo definimos con una palabra que todos los archivos de lenguage tienen que tener para definir la funcion que cumple, despues la palabra que lo va a remplazar
define('_REGISTER','Registrarce');
define('_HELLO','Hola');
define('_ACCEPT','Aceptar');
define('_ACCESS_ADD','Añadir'); 
Gracias!
  #9 (permalink)  
Antiguo 14/11/2009, 18:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pagina en diferentes idiomas

como te explico...

si en x script defines constantes, no quiere decir que en todo vaya a existir...

osea, no se incluyen automaticamente...

si los tienes en x.php y quieres mostrarlos en y.php pues debes incluir el script x dentro del y usando la instrucción include

es muy simple, pero no veo como lo haces... ¿si estas incluyendo el script??

por cierto, ¿no te sale un error concreto??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 14/11/2009, 19:06
(Desactivado)
 
Fecha de Ingreso: octubre-2009
Ubicación: Venezuela
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Pagina en diferentes idiomas

acabo de hacer esto que me dijistes:

Código PHP:
<? include "C:\wamp\www\registrarse.php"?>
en el archivo registrarse.php y sigue sin funcionar?


Warning: include(C:\wamp\www egistrarse.php) [function.include]: failed to open stream: Invalid argument in C:\wamp\www\registrarse.php on line 10

Warning: include() [function.include]: Failed opening 'C:\wamp\www egistrarse.php' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\registrarse.php on line 10
  #11 (permalink)  
Antiguo 14/11/2009, 19:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pagina en diferentes idiomas

debes utilizar una ruta relativa... no puedes poner la dirección completa!!
(bueno si puedes, pero no debes)

si los scripts están en el mismo lugar, es tan simple como solo incluir el nombre del script...

además, como la barra invertida \ es un carácter especial... si lo usas en comillas dobles, por favor... escribe dos veces cada barra

Código PHP:
include "F:\\oo\\candy\\bar.does"
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 14/11/2009, 19:26
(Desactivado)
 
Fecha de Ingreso: octubre-2009
Ubicación: Venezuela
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Pagina en diferentes idiomas

Tranquilo me rindo por hoy mañana sigo investigando por que acabo de colocar la ruta de esta manera y nada:

Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<? include "lang-esp.php"?>






</body>
</html>
  #13 (permalink)  
Antiguo 14/11/2009, 19:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pagina en diferentes idiomas

Cita:
Iniciado por MaracaiboenLineaCom Ver Mensaje
Tranquilo me rindo por hoy mañana sigo investigando por que acabo de colocar la ruta de esta manera y nada:

Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<? include "lang-esp.php"?>






</body>
</html>
así como lo haces esta bien, pero recuerda... ¿donde estas imprimiendo lo demás??

que yo sepa, PHP no imprime nada automáticamente...
Código PHP:
include 'foo.bar';
echo 
_CANDY
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 14/11/2009, 19:37
(Desactivado)
 
Fecha de Ingreso: octubre-2009
Ubicación: Venezuela
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Pagina en diferentes idiomas

Amigo si quieres agregarme al msn es linuxubuntus en live de esa manera termino con mi problema rapidamente charlando !
  #15 (permalink)  
Antiguo 14/11/2009, 19:46
(Desactivado)
 
Fecha de Ingreso: octubre-2009
Ubicación: Venezuela
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Pagina en diferentes idiomas

Disculpa ya me imprimio colocando todo en un solo archivo:


Código PHP:
<? 

if(empty($sitelang)){ //primero preguntamos si la variable que va a contener el lenguage del visitante esta vacia
      
$sitelang getenv("HTTP_ACCEPT_LANGUAGE"); // si esta vacia sacamos el lenguage del visitante y lo ponemos en la variable $sitelang
      
}
switch(
$sitelang){ //ahora cargamos el archivo que contiene el idioma segun la varible que sacamos antes
          
case "es" //es = español 
             
include("./lang/lang-esp.php"); //ahora cargamos el archivo que contiene las variables y sus palabras
             
break;
          case 
"en" //en = ingles 
             
include("./lang/lang-eng.php");
             break;
          default :
             include(
"./lang/lang-esp.php"); //cargamos un idioma por defecto si no se encontro algun idioma 
             
break;
       } 

?>
<?php
define
('_LOGIN','Logeado');//lo definimos con una palabra que todos los archivos de lenguage tienen que tener para definir la funcion que cumple, despues la palabra que lo va a remplazar
define('_REGISTER','Registrarce');
define('_HELLO','Hola');
define('_ACCEPT','Aceptar');
define('_ACCESS_ADD','Añadir');
?> 
<? 


echo _REGISTER;



  
?>
imprimio Registrarce

pero esa no era la idea la idea era que me llamara el archivo de idiomas.php en el archivo registrarse.php para no tener todo junto.
  #16 (permalink)  
Antiguo 15/11/2009, 06:01
(Desactivado)
 
Fecha de Ingreso: octubre-2009
Ubicación: Venezuela
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Pagina en diferentes idiomas

Listo amigo ya me funciona el script, otra cosa como pruebo esto en inglehs por que ya con el español imprime bien! ahora como lo pruebo en inglesh por que ya tengo listo los 2 archivos:

Inglesh y Español mira:


lang-esp.php

Código PHP:
<?php
define
('_LOGIN','Logeado');//lo definimos con una palabra que todos los archivos de lenguage tienen que tener para definir la funcion que cumple, despues la palabra que lo va a remplazar
define('_REGISTER','Registrarce');
define('_HELLO','Hola');
define('_ACCEPT','Aceptar');
define('_ACCESS_ADD','Añadir');
define('_USER','Usuario');
define('_PAGES','Paginas');
define('_STATE','Estado');

?>
lang-eng.php


Código PHP:
<?php
define
('_LOGIN','Logeado');//lo definimos con una palabra que todos los archivos de lenguage tienen que tener para definir la funcion que cumple, despues la palabra que lo va a remplazar
define('_REGISTER','Register');
define('_HELLO','Hello');
define('_ACCEPT','Ok');
define('_ACCESS_ADD','Add');
define('_USER','User');
define('_PAGES','Pages');
define('_STATE','State');

?>

ahora para probar le doi en el explorador de windows, internet explorer en --> Herramientas --> Opciones de internet -> Idiomas -> Agregar idiomas y selecciono y añado el Ingleh Estados Unidos y no me imprime en inglesh????
  #17 (permalink)  
Antiguo 15/11/2009, 09:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pagina en diferentes idiomas

ahora, donde y como estas haciendo el include del idioma??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 19:07.