Procedimiento para Creación de Sitios Multilenguaje


Este documento esta en desarrollo los aportes son bienvenido

Este documento pretende unificacar la funcionalidad y guiar en el proceso de desarrollo de sitios web multilenguaje, en otras palabras ser una base (guideline) practica que se pueda seguir y someter a mejoras continuas, al mismo tiempo que se formaliza el proceso.
  1. Estructura del Sistema de Archivo


A continuación se muestra la estructura simple de lo que sería un sitio web multilenguaje utilizando smarty.

Dentro de la primera carpeta class/lang/ se almacenan los archivos .ini.php que serviran para cada idioma del sitio, ellos almacenaran todos los titulos estaticos incustados en el sitio, para ello se hara uso de la variable $_LANG.

Ejemplo del contenido de un archivo .ini.php.

es.ini.php
<?php
$_LANG['alt_btnSearch'] = 'Buscar';
$_LANG['val_Search'] = 'entre clave';
$_LANG['news_and_events_title'] = 'Noticias y Eventos';
$_LANG['outstanding_title'] = 'Destacados';
$_LANG['fact_and_figures_title'] = 'Hechos y Cifras';
$_LANG['read_more'] = 'Leer m&aacute;s';
?>


Ahora para incluirlo el archivo en cualquier archivo php tenemos usar un archivo que sea comunmente requerido por cada php en el sitio, por esa razón usamos el app.class.php. Lo editamos y añadimos al final lo siguiente:

...
if(ADMIN!==true) {
  # Aqui defino a $lg con lenguaje por defecto el español
  $lg = ($_REQUEST['lg']?$_REQUEST['lg']:'es');

  switch($lg) {
    case 'es':
      require_once('lang/es.ini.php');
      break;
  }
  # Hago el paso de $_LANG a smarty, notece que le paso a la funcion assign el arreglo completo y no le defino nombre esto es por que
  # esa función de smarty puede recibir una cadena o un arreglo en caso de que sea un arreglo recorre el arreglo y le asigna las llaves del arreglo
  # como nombres de las variables es por ello que en smarty por ejemplo no usariamos el valor de $_LANG['alt_btnSearch'] así {$alt_btnSearch}.
  if($_LANG) $smarty->assign($_LANG);
}
...


En la carpeta public_html tendremos los archivos .htaccess, index.php y la carpeta pages. El archivo .htaccess contendra lo siguiente:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)/(.*)$ /index.php?lg=$1 [L]
 RewriteRule ^$ /es/  [R]
</IfModule>


Esto solo debe agragarse al final, después de la última linea del archivo, ahora expliquemos el archivo, esto activa el mod_rewrite (RewriteEngine on), claro si el modulo ha sido cargado (eso se consulta con <IfModule mod_rewrite.c>...</IfModule>), las siguientes lineas solo establecen que si el directorio o archivo no existe lo rediriga

 
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki