Hola.
Estoy aprovechando las vacaciones para trabajar un poco en obras que tenía empezadas. En todas suelo incluir una rutina
LanguageLM personalizada que permite modificar el tiempo verbal y la persona de los mensajes en tiempo de ejecución, y que modifica algunos de los mensajes de INFSP por otros que considero más adecuados para cada obra ---variaciones de algunos pocos mensajes como por ejemplo:
No <es/era/será> necesario emprenderla a golpes con <el objeto>." en lugar del original:
"La violencia no es la solución."; y diferenciación clara de los mensajes que podrían considerarse del narrador de la obra, como el anterior, de aquellos que son notificaciones de la aplicación, por ejemplo:
"[No se pudo determinar a qué objetos te has referido]." en lugar del original:
"¡No sé a qué objetos te refieres!"---.
Estos últimos días he intentado generalizar esa rutina
LanguageLM y crear una única extensión que pueda compartir entre diferentes obras (luego siempre se puede utilizar el objeto
LibraryMessages para incluir aquellos mensajes por defecto personalizados para cada obra en sí).
Esta extensión define una nueva rutina
SetGrammaticalInflection(), que acepta un código numérico especificando el tiempo verbal y la persona que se desean utilizar para los mensajes de la librería. He definido además 9 constantes con los 9 posibles códigos:
- FIRST_PERSON_PRESENT = 1
- SECOND_PERSON_PRESENT = 2
- THIRD_PERSON_PRESENT = 3
- FIRST_PERSON_PAST = 4
- SECOND_PERSON_PAST = 5
- THIRD_PERSON_PAST = 6
- FIRST_PERSON_FUTURE = 7
- SECOND_PERSON_FUTURE = 8
- THIRD_PERSON_FUTURE = 9
De forma que para cambiar la flexión gramatical de los mensajes de la librería (originalmente en segunda persona presente) a la tercera persona en pasado, por ejemplo, basta con invocar a esta función en cualquier punto de la obra:
Código:
SetGrammaticalInflection(THIRD_PERSON_PAST);
Y, por supuesto, se puede volver de nuevo a la segunda persona presente con:
SetGrammaticalInflection(SECOND_PERSON_PRESENT);.
Estoy terminando de modificar la extensión para que además se utilice la definición del objeto
player (para comprobar si está definido como masculino/femenino o singular/plural) para imprimir los mensajes ---
"No <lo> <tengo/tenemos/tienes/tenéis/.../tendrán/tendrá> <conmigo/con nosotras/con nosotros/contigo/.../con ella/con él>"---. Y aunque estoy tratando de ser lo más metódico posible, seguramente existan errores que se me hayan escapado.
Si alguien pudiese estar interesado en la extensión, está disponible en mi repositorio de extensiones en GitHub:
https://github.com/jomali/I6-Extensiones/blob/master/SpanishLM.h