Menu

Consulta problema charset e idioma Español

Help
Sebadamus
2016-03-24
2016-04-12
  • Sebadamus

    Sebadamus - 2016-03-24

    Hola Jact!

    Estoy probando tu software para la clinica de un amigo que esta por comenzar a ponerla en marcha. Antes que todo, excelente trabajo el que has hecho hasta lo que pude probar! y excelente que lo hagas opensource. Espero poder donar algun dinero en cuanto lo comiencen a usar.

    El problema que tengo es algo raro... tengo Linux Mint 17.3 (ubuntu 14.10 lts) en español es_AR, logro que funciona y me logeo al sistema, de entrada aparece todo en ingles. Voy a los settings y veo que esta en Español en lenguaje y se lee el texto tal cual lo obtuvo del listado de la tabla dentro de la base de datos, es decir "Español" con el cacacter ñ.

    Ahora bien, me extraña que estando ahi en español la web se vea en ingles. Bueno, intento modificar cualquier campo, por ej. el nombre de algun Staff Member, poniendole algun caracter de lenguaje español... como ser ñ, á, ú... etc. Y cuando le doy guardar, veo que se borra el contenido del campo.

    Me da a entender que la base de datos, tal vez este en un formato que no sea el correcto, pero verifico y creeria que esta bien... es utf8 general ci (en realidad al instalar el default mio era latin1_swedish_ci, por lo que tuve que convertir la base de datos y volver a crear las tablas con el instalador de openclinic).

    Aprovecho para comentarte que con los comandos que tienes en la ayuda, al momento de crear la base de datos te la creara con el default charset que tenga la base de datos, es decir, si lo instala un chino, luego la base de datos quedara en chino? tal vez sea un error solo de mi instalacion.

    Bueno, entonces... si en los seteos veo que dice Español en el lenguaje, pero se ve en ingles... y si intento cambiar cualquier campo con caracteres españoles, los campos quedan en blanco. Creeria que el campo lenguaje nunca termina quedando en Español, y por eso se me openclinic en ingles?

    Gracias por tu ayuda!

    Sebastian

     
    • Jose Antonio Chavarria

      Hola, Sebastian.

      Intentaré reproducir el problema con el Linux Mint que me comentas, pero
      hasta mediados de la semana que viene no me puedo poner con ello.

      Para tener exactamente lo mismo instalado, por favor, dime las versiones de
      Apache, PHP y MySQL que tienes en el sistema.

      Gracias por tu informe y por interesarte por el proyecto.

       

      Last edit: Jose Antonio Chavarria 2016-04-12
      • Jose Antonio Chavarria

        Hola de nuevo, Sebastian.

        He logrado reproducir ambos bugs y creo que tengo la solución para los dos.

        En primer lugar, para conseguir que OpenClinic esté en español, deberás
        ejecutar el siguiente comando en la consola:

        $ sudo locale-gen es_ES

        Con respecto al extraño caso de los caracteres propios del español que
        desaparecen en los campos, se debe a un cambio de la función
        htmlspecialchars (http://php.net/manual/en/function.htmlspecialchars.php)
        en la versión de PHP que tienes en ese Linux Mint.

        Copia la siguiente función para reemplazar a la original en el fichero
        openclinic/lib/Check.php y, si te funciona, lo incorporaré a la próxima
        versión del programa:

          public static function safeText($text, $allowTags = true, $includeEvents
        = true)
          {
            if ($allowTags)
            {
              $value = strip_tags($text, CHK_ALLOWED_HTML_TAGS);
            }
            else
            {
              $value = strip_tags($text);
            }
            $value = trim(htmlspecialchars(
              $value,
              ENT_COMPAT | ENT_XHTML,
              "ISO-8859-1"
            ));
        
            if ($includeEvents)
            {
              $events = array(
                "onmousedown", "onmouseup",
                "onclick", "ondblclick",
                "onmouseover", "onmouseout", "onselect",
                "onkeydown", "onkeypress", "onkeyup",
                "onblur", "onfocus",
                "onreset", "onsubmit",
                "onload", "onunload", "onresize",
                "onabort", "onchange", "onerror"
              );
              $value = self::customStrip($events, $value, true); // case insensitive
              unset($events);
            }
        
            $value = ((get_magic_quotes_gpc()) ? $value : addslashes($value));
        
            return $value;
          }
        

        Gracias por las incidencias reportadas.

         

        Last edit: Jose Antonio Chavarria 2016-04-12

Log in to post a comment.