entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

web multi idioma en php

Hola,

He desarrollado una web en php, en inglés y en español. Es una web sencilla, estática, pero para ahorrar código la he hecho modular, con el header y el footer fuera de cada una de las páginas. Para la traducción a inglés lo que he hecho es duplicar toda la web e introducir la traducción de los textos uno a uno. El caso es que esto es bastante laborioso porque, aunque es una web sencilla, tiene bastantes páginas. Ahora tengo que hacer la traducción a francés y me gustaría saber cual sería la manera más correcta de proceder para no tener todos los archivos de cada una de las páginas de la web repetidos por cada idioma. He visto que en php existe la opción de usar gettext, pero por lo que entiendo esto está bien hacerlo con textos cortos, como un menú de navegación o cosas así, pero no para textos largos.

Cuál es la mejor forma de hacerlo?

0voto

carlossevi comentado

Enlazo una buena respuesta en una pregunta muy relacionada:
http://entredesarrolladores.com/6218/pagina-multilenguaje-con-php?show=6222#a6222

2 Respuestas

1voto

dairon Puntos17120

Ya que no utilizar framework te recomiendo algo sencillo, utiliza una clase llamada idioma y en esta declara cada texto que quieras en diferentes idiomas como uno solo pero en array y lo llamas con la abreviatura. se me ocurrió ahora cuando lei tu pregunta. el funcionamiento sería lgo como esto:
en un fichero idiomas.php

<?php
    $nacional = array('es' => 'Nacional', 'en' => 'National', 'ru' => 'Национальный');
    $deporte = array('es' => 'Deporte', 'en' => 'Sport', 'ru' => 'спорт');
    $cultura = array('es' => 'Cultura', 'en' => 'Culture', 'ru' => 'культура');
?>

y en el home:

<?php 
include('idiomas.php');
    echo "Hola Nacional en diferentes Idiomas: ".$nacional['es'].' '.$nacional['en'].' '.$nacional['ru'].'</br>';   
    echo "Hola Deporte en diferentes Idiomas: ".$deporte['es'].' '.$deporte['en'].' '.$deporte['ru'].'</br>';
    echo "Hola Cultura en diferentes Idiomas: ".$cultura['es'].' '.$cultura['en'].' '.$cultura['ru'].'</br>';
?>

y ya la tienes en varios idiomas. Para hacerla dinámica y sin pasar mucho trabajo te pasas por la url el didioma de que va el cliente: www.tusitio.com/idioma/contenido/...
entonces a tu variable de nombre le dices que muestre

$nacional[$idioma_por_url];

y ya te muestra el idioma en cuestion de forma sencilla. Espero que sea de ayuda.
Saludos Dairon

2votos

Leonardo-Tadei Puntos227320

Hola @jacoboAR,

PHP provee soporte multilenguaje a través de gettext().

Este es el manual: http://php.net/manual/en/function.gettext.php

En esta respuesta tenés algunos datos más: http://entredesarrolladores.com/6218/pagina-multilenguaje-con-php

Saludos cordiales!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta