Ver Mensaje Individual
  #7 (permalink)  
Antiguo 20/05/2004, 15:37
Anarko
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Cluster, Josemi, esto esta esta muy regular ?

Oye, Cluster, Oye Josemi, me gustaria publicar esto en "las Faqs", esta muy regular ?

Cómo crear consolas/paneles en varios idiomas:

De muchas for+, asi la he desarrollado yo:

file_al_publico.php

Código PHP:
########## INICIA SELECCION DEL IDIOMA

    
$files '';
    
$handle=opendir($_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).'/idiomas');
    while (
$file readdir($handle))
    {
    if(
is_file($_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).'/idiomas/'.$file))
    {
    
$sele '';
    
$file explode('.',ucfirst($file));
    if(isset(
$_POST['idioma'])){if($_POST['idioma'] == $file[0])
    {
$sele ' SELECTED';}}
    
$files .= '<OPTION VALUE="'.$file[0].'"'.$sele.'>'.$file[0].'</OPTION>';
    }}
    
closedir($handle);
    
$idioma '<SELECT NAME="idioma" CLASS=SEL>'.$files.'</SELECT>';

########## FIN DE SELECCION DEL IDIOMA 
En la seccion del formulario del panel de opciones del usuario colocas:

Código PHP:
    echo $idioma
Ese dato lo guardas en una BD, y luego lo lees y lo registras en una SESSION, o bien, directamente lo almacenas en una SESSSION.

Los files son pasados a Mayusculas solo por estetica, luego al guardarlos en la SESSION se colocan en minusculas asi:

Código PHP:
    $_SESSION['lenguaje'] = strtolower($row["campo[idioma]"]); 
Y si acaso tuvimos el infortunio de dar con un/a webmaster bien inquiet@, que halla logrado pasar a la BD un vaor de file inexistente, (Si el file no existe), tonces tenemos un file_de_lenguaje_por_defecto.php.

Y luego colocamos al inicio de file_al_publico.php

Código PHP:
    if(false == @include($_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).'/idiomas/'.$_SESSION['idioma'].'.php'))
{include(
$_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).'/idiomas/file_de_lenguaje_por_defecto.php');} 
Los files de lenguaje contienen cada uno las vars del idioma contienen variables + o menos asi:

castellano.php

Código PHP:
<?php

    $saludo 
'Hola';
    
$salvar_info 'Guardar';

?>
Mire a PHP-MyAdmin y ellos no utilizan Arrays, ellos lo hacen asi:

Código PHP:
$strUseHostTable 'Use la tabla Anfitrión (Host)';

$strUseTables 'Usar tablas';

$strUseTextField 'Use el campo de texto';

$strUseThisValue 'Use este valor';

$strUser 'Usuario';

$strUserAlreadyExists '¡El usuario %s ya existe!';

$strUserEmpty '¡El nombre de usuario está vacío!';

$strUserName 'Nombre de usuario';

$strUserNotFound 'El usuario que seleccionó no fue hallado en la tabla de privilegios.';
$strUserOverview 'Vista global del usuario';

$strUsers 'Usuarios';

$strUsersDeleted 'Los usuarios seleccionados fueron borrados exitosamente.';
$strUsersHavingAccessToDb 'Usuarios con acceso a &quot;%s&quot;'
Etc, etc, etc, son casi 700 variables en cada file de idioma.

Me gustaria mejorar la parte:

Código PHP:
    if(false == @include($_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).'/idiomas/'.$_SESSION['idioma'].'.php'))
{include(
$_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).'/idiomas/file_de_lenguaje_por_defecto.php');} 
Para no utilizar @, pero Josemi me intento explicar, y yo no entender... :-s

Salu2!.

Sera que existe
Código PHP:
if(no_existe_file('tal.php')){} ?