Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Forma para simplicar condicional para idiomas

Estas en el tema de Forma para simplicar condicional para idiomas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Saludos Me gustaria saber si hay alguna forma de simplificar este código, porque se me hace muy engorroso si tiene mas de 5 idiomas cambiarle ...
  #1 (permalink)  
Antiguo 31/05/2013, 09:11
Avatar de predacom  
Fecha de Ingreso: agosto-2003
Ubicación: arequipa-peru
Mensajes: 37
Antigüedad: 21 años, 4 meses
Puntos: 2
Forma para simplicar condicional para idiomas

Saludos
Me gustaria saber si hay alguna forma de simplificar este código, porque se me hace muy engorroso si tiene mas de 5 idiomas cambiarle a todo el code
if($lang == "es"){
$pag_titulo = $pagina->titulo_es;
$pag_contenido = $pagina->contenido_es;
}else if($lang == "en"){
$pag_titulo = $pagina->titulo_en;
$pag_contenido = $pagina->contenido_en;
}else if($lang == "de"){
$pag_titulo = $pagina->titulo_de;
$pag_contenido = $pagina->contenido_de;
}else if($lang == "fr"){
$pag_titulo = $pagina->titulo_fr;
$pag_contenido = $pagina->contenido_fr;
}
Gracias de antemano por su ayuda
__________________
Predacom Design Studio
www.predacom.net

Última edición por predacom; 31/05/2013 a las 09:17
  #2 (permalink)  
Antiguo 06/06/2013, 07:44
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 7 meses
Puntos: 58
Respuesta: Forma para simplicar condicional para idiomas

Podrías utilizar variables variables.
Código PHP:
Ver original
  1. $codigo_idioma = 'es';
  2. $n_titulo = 'pagina->titulo_'.$codigo_idioma;
  3. $n_contenido = 'pagina->contenido_'.$codigo_idioma;
  4.  
  5. $pag_titulo = $$n_titulo;
  6. $n_contenido = $$n_contenido;

Es algo así, dudo que lo haya puesto bien a la primera.
En todo caso busca "php variables variables".

El tema es que como es un objeto no se si eso funcionará o hay que cambiar algo. Yo creo que sí.

No obstante comprueba siempre que exista la variable.
  #3 (permalink)  
Antiguo 06/06/2013, 10:31
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 9 meses
Puntos: 137
Respuesta: Forma para simplicar condicional para idiomas

o puedes usar arreglos
Código PHP:
Ver original
  1. $idiomas = array(
  2.    'es' => array(), // arreglo con los textos en español
  3.    'en' => array() // arreglo con los textos en ingles
  4. );
  5.  
  6. $idioma = 'es'; //
  7. $textos = $idiomas[$idioma];
lo veo mas limpio de esta manera :P
__________________
>> abimaelmartell.com
  #4 (permalink)  
Antiguo 10/06/2013, 21:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: Forma para simplicar condicional para idiomas

Como dice @abimex queda mucho mas facil pues tu lo usas asi:

Código PHP:
$pagina->lang='es';  
$pag_titulo $pagina->titulo

Deberias crear el metodo lang() o setLang() para acceder al array como te dicen
__________________
Salu2!

Etiquetas: condicional, oop, php
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 08:17.