Errores en Ingles... ¿Traducimos?

Errores en Ingles... ¿Traducimos?

de Manuel García -
Número de respuestas: 13
Hola a todos escribo por lo siguiente, quisiera hacere eco de una problematica que se esta presentando en una de las redes de trabajo moodle de la cual formo parte. Resulta que una vez configurados apropiadamente los paquetes de idioma español para una instalación estandar, me doy cuenta de que aun existen errores del sistema que no estań traducidos y de los cuales no existe posibilidad de hacerlo por los caminos regulares, ya que dichas cadenas no se encuentran incluidas en ningun paquete de idiomas sino que están colocadas directamente código de la página donde se genera el error.

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
Promedio de valoraciones: -
En respuesta a Manuel García

Re: Errores en Ingles... ¿Traducimos?

de Jaime Perera Merino -
Hola Manuel.

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 respuesta a Jaime Perera Merino

Re: Errores en Ingles... ¿Traducimos?

de Martín Langhoff -
Todos los usos de error() sin get_string(), o de print_error() donde falte el string en el paquete _es_ los puedes considerar un bug, y mandarnos parches. Serán más que bienvenidos guiño

> 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
En respuesta a Manuel García

Re: Errores en Ingles... ¿Traducimos?

de Luis Felipe Urdaneta Fereira -
Hola amigo,
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



En respuesta a Manuel García

Re: Errores en Ingles... ¿Traducimos?

de Manuel García -
Hola Jaime, Martin y Luis, gracias por sus respuestas. Les comento que esta misma pregunta la realice en el foro en ingles y recibi respuesta variadas.

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
En respuesta a Manuel García

Re: Errores en Ingles... ¿Traducimos?

de Alejandro Michavila Pallarés -
Hola,

¿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.
En respuesta a Alejandro Michavila Pallarés

Re: Errores en Ingles... ¿Traducimos?

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

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 sonrisa

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 sonrisa

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Errores en Ingles... ¿Traducimos?

de Alejandro Michavila Pallarés -
Muchas gracias Iñaki, para ir empezando está muy bien, elegiré la mejor opción en función del caso que se me dé.

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.

En respuesta a Alejandro Michavila Pallarés

Re: Errores en Ingles... ¿Traducimos?

de Alejandro Michavila Pallarés -
Hola Iñaki,

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.
En respuesta a Alejandro Michavila Pallarés

Re: Errores en Ingles... ¿Traducimos?

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

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 sonrisa

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Errores en Ingles... ¿Traducimos?

de Alejandro Michavila Pallarés -
Justo al final de cada página moodle, hay una opción que dice: Purge all caches y ahora si veo los cambios.

Muchísimas gracias Iñaki, una vez más, un saludo.


En respuesta a Alejandro Michavila Pallarés

Re: Errores en Ingles... ¿Traducimos?

de Alejandro Michavila Pallarés -
La opción de Purge all caches no parece que funcione para cambios en las cadenas de ayuda del archivo de idioma en el directorio mod/newmodule/lang/en.
En respuesta a Alejandro Michavila Pallarés

Re: Errores en Ingles... ¿Traducimos?

de Alejandro Michavila Pallarés -
¿Dónde puedo ver los métodos de los objetos $PAGE y $OUTPUT para poder construir el view.php de mi módulo y que sea compatible con la versión 2.0?