Ir al contenido


Foto

pagina multilenguaje usando php y archivos .json


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 combo

combo

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 03 agosto 2014 - 06:30

Hola amigos tengo una duda..
Estoy creando un sitio multilenguaje con mi propio framework php..  tengo los idiomas en archivos .json en el servidor y los llamo con la funcion file_get_contents..
me gustaria saber si existe otra forma mas optima, y segura para hacer esto. ya que el proyecto pretende tener una gran cantidad de usuarios...!!

Por el momento en el index de la pagina obtengo el lenguaje segun el navegador:

No se si sea recomendable guardar esos datos en sessiones


delphi
  1. if(!Session::get("lang")){
  2. $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  3. switch ($lang){
  4.     case "en":
  5.   Session::set("lang","en");
  6.         break;
  7.     case "es":
  8.         Session::set("lang","es");
  9.         break;   
  10.     default:
  11. Session::set("lang","es");
  12.         break;
  13. }
  14. }




Luego en el controller principal tengo este metodo donde utilizo el  file_get_contents(); y retorno un array con los datos del .json decodificado:

No estoy seguro si  el file_get_contents(); se podria a hacer lento cuando haya una gran cantidad de usuarios.


delphi
  1. protected function getPagesLang($param){
  2.         $rutaLang = ROOT."languages".DS.Session::get("lang").DS."pages".DS.$param.".json";
  3.         if(is_readable($rutaLang)){
  4.         $requireLang =  file_get_contents($rutaLang);
  5.         $requireLang = json_decode($requireLang,true);             
  6.         }else{
  7.             throw new Exception("Error de lenguaje de pagina");
  8.         }
  9.         return $requireLang;
  10.     }




luego por ejemplo en mi controlador indexController.php llamo el metodo getPagesLang("index") y le paso como parametro el nombre del archivo .json que tiene el idioma


  • 0




IP.Board spam blocked by CleanTalk.