Пример #1
0
 /**
  * extract_language
  *
  * Extrae de un request de URL el lenguaje seleccionado por parte del de usuario
  *
  * @author Adrián Méndez <*****@*****.**>
  * @Version 1.0
  */
 public static function extract_language($request)
 {
     // VALIDA QUE EXISTA O ESTÉ OPERABLE EL MÉTODO DE TRADUCCIÓN DESDE LA CONFIGURACIÓN PARA QUE CONTINÚE CON NORMALIDAD
     if (!isset(AppConfig::$languagesCFG) or !AppConfig::$languagesCFG['allow_translations']) {
         return $request;
     }
     // INIT
     $array_hash = array();
     // STORES REGEX MATCH RESULTS.
     $def = array();
     // STORES DEFAULT LANG.
     $possibleLang = null;
     // STORES POSSIBLE LANG.
     // OBTIENE EL POSIBLE CONTEXTO
     if (preg_match('/^\\/?([a-zA-Z|\\_|]+)/', $request, $array_hash) and isset($array_hash[1]) and !is_null($array_hash[1])) {
         $possibleLang = $array_hash[1];
     }
     // VALIDA NO COTEJAR CON IMPOSIBILIDADES
     if (is_null($possibleLang)) {
         return $request;
     }
     // TRATA DE LOCALIZAR UN LENGUAJE COMPATIBLE
     foreach (AppConfig::$languagesCFG['dictionaries'] as $lang) {
         if (strtolower($lang['prefix']) == strtolower($possibleLang)) {
             // CARGA DATOS DE LENGUAJE DEFINIDO
             self::$language = $lang;
             // CONVIERTE $possibleLang A REGEX
             $possibleLang = str_replace('_', '\\_', $possibleLang);
             // LIMPIEZA DEL REQUEST DEL IDIOMA
             $request = preg_replace("/^\\/?" . $possibleLang . "/", null, $request);
             // ELIMINADO DE BASURA
             $request = preg_replace('/\\/+/', '/', $request);
         }
     }
     // LIMPIA SALIDA EN CASO DE QUE YA NO HAYA DATOS QUE BOTAR.
     if (is_null($request) or $request == '') {
         $request = '/';
     }
     return $request;
 }