
Observaciones sobre la internacionalización de Winboard

Sartas que no hay que traducir:
	- las intercambiadas exclusivamente entre los programas implicados.
	- las generadas con finalidades de depuración.
	- las correspondientes a los valores de las variables de ajuste que se guardan en el fichero 'winboard.ini' (p. ej., true, false).
	- las que sean exclusivamente de formato (p. ej. en 'matched = sscanf(appData.searchTime, "%d:%d", &min, &sec);')
	- ¿qué hacer con muchas sartas de Zippy.c?

Sartas que hay que traducir según el contexto:
	- los símbolos de las piezas: hay que traducirlos en la presentación de información en la pantalla (ShowPosition(), presentación del análisis y de las cogitaciones del programa de ajedrez, lista de jugadas) y no en la notación que se graba en los ficheros de salvaguardia (*.fen o *.pgn).


Sartas problemáticas:
	- en la traducción hay que cambiar el orden de los parámetros: sprintf(buf, "Could not connect to host %s, port %s",  
					appData.icsHost, appData.icsPort);
	- ¿hay que traducir las sartas de backend.c - CmailMsg()?
	- las que (indebidamente) cumplen una función doble en el programa original, simbólica y textual (p. ej., 'first' y 'second' respecto de los programas de ajedrez).


Puntos delicados:
	- las sartas traducidas tienden siempre a ser más largas que las originales. En el caso de los rótulos de los recursos esto puede hacer que no se vean completas. Los recursos deberían organizarse de modo que todos los rótulos tuviese margen de expansión.
	- los rótulos deberían ser facilmente comprensibles por los no nativos. De lo contrario habrá muchos errores de traducción. Habría que preparar un diccionario de términos (por lo menos los oscuros (p. ej. los del ajedrez de fantasía o los propios de internautas), mejor de todos).
	- la asignación de letras 'aceleradoras' dentro de cada grupo de opciones (anteponiéndoles &) es una lata, que hay que hacer con cuidado. A mí me resulta más molesto todavía porque nunca he realizado una elección mediante esta posibilidad. No creo que tenga graves consecuencias que la tarea se haga mal, pero igualmente podría dejar de hacerse en absoluto, puesto que ya hay opciones que no la tienen originalmente.


Problemas de codificación vinculados con las versiones traducidas:

	- véanse mis notas del 11 de marzo de 2004 en Modificaciones.txt sobre dos problemas de este tipo encontrados por mí al hacer la versión española.
	- si se traducen "White to play" y "Black to play" en 'PrintPosition()' (que elabora los datos que se guardan en los ficheros de disco, tanto al salvar una posición como una partida), es posible que las posiciones se recuperen mal, dependiendo de características imprevisibles del nuevo lenguaje, puesto que la determinación de si el turno corresponde a las blancas o a las negras se hace en virtud de si la primera letra que aparezca tras los símbolos propiamente ajedrecísticos es una "w" o una "b". Esto confirma la conveniencia de no traducir lo que esté más destinado a consumo de las máquinas que de las personas. Esta es probablemente la razón de que la sarta se sitúe antes de los ocho guiones de cierre, en vez de después, como aconsejarían la simetría y la estética.


26 de marzo de 2004

He incorporado una modificación estilística a la función 'PrintPosition()' para vadear un escollo que se presentaba con las versiones traducidas. Cuando se salvan partidas o posiciones en estilo antiguo, y cuando se salvan partidas en el actual, se registra, exclusivamente en el primer caso y anteponiéndolo a la lista de jugadas en el segundo, una representación diagramática del tablero inicial. Esta representación incluye originalmente la sarta "White plays" o "Black plays" a continuación de la última fila de escaques para indicar quién tiene el turno, añadiendo luego una ristra de guiones terminados por un corchete o por una llave de cierre en la misma línea. El efecto estético del resultado es penoso para las personas, pero además, si se traducen las sartas a otros idiomas, resultará confuso para las máquinas y no cumplirá la función por la que previsiblemente se montó este engendro, a saber, que a continuación de la notación del último escaque y separadas de él por espacios o por el carácter o caracteres de nueva línea se encuentren las letras "w" o "b" para indicar la mano de manera fácilmente interpretable por las rutinas de lectura, cosa que naturalmente es muy poco probable que suceda en las versiones traducidas.

Inicialmente se me ocurrió anteponer la "w " o la "b " a la sarta traducida, pero luego he dado con una solución que me parece mucho mejor, pues resuelve el problema estético además del funcional: la letra del turno que corresponda se incorpora al comienzo de la sarta de guiones, en sustitución de los dos primeros, y esta sarta a su vez se sitúa inmediatamente después de la última fila del tablero, con lo que la apariencia gana mucho, recuperándose la simetría con el inicio de la representación del tablero, y por último se añade la indicación verbal del bando que tiene la mano, que ya puede traducirse sin ningún problema porque está dedicada exclusivamente a consumo humano.
