Ahora bien yo quisiera saber si alguno de ustedes maneja información al respecto. ¿Esta hecho esto así a proposito?. De no tratarse de una razón de peso podriamos iniciar el movimiento para la traducción de todos esos pequeños fragmentos de código que generan un descontento en mis jefes (y quien sabe en cuantos mas) cada vez que lo ven pues no entienden como el administrador del sitio (o sea yo) dice que TODO moodle está traducido cuando aún continuan apareciendo mensajes de este tipo.
Seguimos en contacto...
Manuel A. Garcia.
Administrador TIC
Universidad de Carabobo - Venezuela
El problema es que antes se usaba la función error() para mostrar los errores. A esta función se le pasa el mensaje que quieres mostrar. Con la función print_error() se soluciona este problema porque lo que se le pasa es el código para que lo use en un get_string().
En los códigos existentes tardará en cambiarse. Supongo que el cambio de idioma en los errores no es una tarea muy prioritaria. Aún así el uso de esta función no lo es todo, es necesario que existan estas cadena definidas en el fichero de idioma. Me parece buena idea tu propuesta.
> En los códigos existentes tardará en cambiarse.
Lamentablemente es cierto, pero cuantos más nos ayuden, más rápido se resuelve... Si Ballmer baila al ritmo de "Developers developers developers!", nosotros bailamos con "Parches parches parches parches!"
http://www.ntk.net/ballmer/mirrors.html
Re: Errores en Ingles... ¿Traducimos?
Te informo que yo también tengo ese problema-
Ahora bien, eso solo pasa si yo cambio las instrucciones del arhivo moodle.php
de ingles a español. Este archivo se encuentra en la siguiente direccion C:\Archivos de programa\EasyPHP1-8\www\moodle\lang\en
su contenido es
$string['thislanguage'] = 'English';
$string['thischarset'] = 'iso-8859-1';
$string['locale'] = 'en';
$string['parentlanguage'] = 'en_utf8';
y lo cambio para
$string['thislanguage'] = 'Spanish';
$string['thischarset'] = 'iso-8859-1';
$string['locale'] = 'es';
$string['parentlanguage'] = 'es_utf8';
claro está que yo solo cambio las instrucciones, no cambio la norma iso-8859-1, me parece que alli puede estar el problema, pero no sé cual es la iso para el español internacional.
Con estos cambios que te he relatado me aparece moodle desde la primera pantalla de esta manera:
Copyright (C) 2001-2004 Martin Dougiamas (http://dougiamas.com)
Este programa es software gratuito; usted puede redistribuirlo
y/o modificarlo bajo los términos de GNU General Public License según
la publicación de The Free Software Foundation; incluso la versión 2
o alguna posterior.
El programa se distribuye en la confianza de que resulte útil,
pero SIN GARANTÃA ALGUNA; incluso la garantÃa implicada en
DISTRIBUCIÓN MECANTIL o AJUSTE A UN PROPÓSITO PARTICULAR. Vea la
Licencia Pública General GNU para más detalles:
tal como te aparecen a tí.
Si yo no cambio nada, todo me aparece en inglés y únicamente me aparece en español la pantalla que realmente es de moodle
Es más, luego de haberme dado la informacion de la forma mostrada (en negrillas), hice los cambios para que tomara el idioma inglés y desde la segunda pantalla continuó en ese idioma
Pero tranquilo, pidámosle ayuda a nuestra gente de los foros, SON MUY EFICIENTES Y ESTOY SEGURO QUE NOS AYUDARÁN.
PIDO PERDON POR LO EXTENSO
SALUDOS A TODOS Y CHAO
Resulta que existen mensajes de errores criticos que estan colocados en el código (hard-coded) a propósito y es deseable que no sean traducidos, ahora bien, también existen mensajes como advertencias, etc que pudiesen eventualmente ser agregados al paquete de idiomas utilizarse con get_string o print_string. Entonces comenzare con la tarea de catalogar y diferenciar cuales son errores criticos y cuales son simplemente advertencias, para ir traduciendo estos ultimos.
Con respecto a los errores criticos, se me sugirió que realizara un glosario donde el usuario pudiese tener la traducción de dicho error, ademas le agregaría a cada uno de ellos algo como esto "contacte al administrador del sistema a la brevedad posible e informele de este error".
Cuanto tenga algo mas concreto lo publicare por esta misma via...
Seguimos en contacto...
Manuel A. Garcia
Re: Errores en Ingles... ¿Traducimos?
¿Cuál es la mejor forma y más estándar para mostrar errores en el desarrollo de un módulo?.
Por ejemplo, si no se ha podido borrar algún registro, mostrar un error.
He visto varios como printf, error, trigger_error, echo, print_error, display, etc...
Muchas gracias, un saludo.
Re: Errores en Ingles... ¿Traducimos?
Depende de lo que quieras hacer, y de si es para la versión 1.9 o 2.0.
trigger_error envia el mensaje a los los de error de PHP y puede que se muestre en pantalla (depende de la configuración de PHP y de Moodle respecto a los mensajes de depuración), pero en general continua la ejecución (salvo que sea un error fatal).
print_error además de mostrar el mensaje de error, detiene completamente la ejecución de la página.
Los echo, printf y similares deberían ser usados fundamentalmente en scripts de línea de comandos, pero hay de todo repartido por el código
Todo eso para 1.9. En el caso de 2.0, en general se deben usar los métodos del objecto $OUTPUT, salvo en casos especiales (el instalador, algunos scripts de línea de comandos, etc.). En general podemo usar $OUTPUT->error_text() y $OUTPUT->notification() y sigue estando presente print_error() (como función sencilla, no como método de $OUTPUT).
Las dos primeras pintan el mensaje (como error en el primer caso, como simple información en el segundo) y la ejecución continua. print_error() se comporta como en 1.9.
Por supuesto, si usas cadenas de lenguaje (de las que se usan con get_string()) en tus mensajes de error, informativos, etc. muchísimo mejor. Eso permitirá traducir tu módulo a otros idiomas con mucho menor esfuerzo
Saludos. Iñaki.
Re: Errores en Ingles... ¿Traducimos?
Mi idea si es usar get_string() en todos mis mensajes de error para que sean traducibles a otros idiomas.
Primero he de elegir para qué versión desarrollaré mi módulo, pero todo pinta a que será para la versión 2.0, porque me gustan las opciones "$OUTPUT->error_text()" y "$OUTPUT->notification()".
Un saludo.
Re: Errores en Ingles... ¿Traducimos?
Finalmente me he decidido por desarrollar para la versión 2.0.
¿Sabes por qué cuando hago un cambio en una cadena de idioma que aparece en el formulario de mi módulo no se actualiza con el nuevo valor?.
¿Sabes si la versión 2.0 cachea las páginas por defecto?.
Un saludo.
Re: Errores en Ingles... ¿Traducimos?
La versión 2.0 cache por defecto un montón de cosas, incluyendo las cadenas de idioma.
Se puede habilitar un ajuste en la zona de desarrollo para vaciar todas las caches (temas, css, javascript, cadenas de idioma, etc.). Si se habilita creo recordar que aparece un enlace en la parte inferior de todas las páginas donde se puede clicar para vaciar las caches
Saludos. Iñaki.
Re: Errores en Ingles... ¿Traducimos?
Re: Errores en Ingles... ¿Traducimos?
Re: Errores en Ingles... ¿Traducimos?
http://docs.moodle.org/en/Development:Output_renderers#Overall_picture
No sé si estarán todos, pero al menos se pueden ver algunos.