Skip to content

2. Códigos y utilidades para traducir

Anth edited this page Apr 25, 2024 · 1 revision

Utilidades de la traducción

Para facilitar mucho el trabajo de los traductores, veréis que en la traducción se hace referencia constante a variables como [PAWN_nameDef]. Este valor lo que hace simplemente es sustituirse a sí mismo por el nombre del colono en cuestión. Es de esta manera como el juego nos muestra los dialogos, misiones, etc, con el nombre del colono afectado. Como esta tenemos otra serie de variables que podremos emplear para distintas frases para evitar textos genéricos como el/ella era un(a) granjero/a muy conocido/a, convirtiéndolo a él era un granjero muy conocido si el colono es masculino, y lo mismo para el femenino con sus artículos correspondientes:

  • [PAWN_nameFull] -> Nombre completo del personaje. Por ejemplo, Ferrado Spears.
  • [PAWN_nameDef] -> Nombre (sin alias) del personaje. Por ejemplo, Ferrado.
  • [PAWN_labelShort] -> Nombre (sin alias) del personaje. Es parecido al anterior. Por ejemplo, Ferrado.
  • [PAWN_pronoun] -> él - ella. Pronombre de la criatura. En inglés aparece mucho, pero en español debemos evitar su uso en exceso.
  • [PAWN_possessive] -> su. Posesivo. No se recomienda usarlo en las traducciones al español, ya que siempre es igual para ambos sexos.
  • [PAWN_objective] -> lo - la. Por ejemplo, lo matará.
  • [PAWN_gender ? male : female] -> Introduce texto según el género del colono, siendo la primera opción que le demos el masculino y la segunda el femenino. Ejemplo de uso: Era un{PAWN_gender ? : a} artista viajer{PAWN_gender ? o : a} en un mundo medieval.. En este caso, si es masculino, la frase será Era un artista viajero en un mundo medieval, mientras que si fuera femenino, sería Era una artista viajera en un mundo medieval. Es una herramienta súper útil para evitar lo que comentaba en el párrafo anterior. No se puede emplear en todos sitios, por ejemplo en los títulos.

Cabe mencionar que cuando en una variable aparece Indef en una variable, casi siempre implica que la palabra que se mostrará en el juego estará precedida por un artículo indeterminado (un - una), dependiendo de su género. Este suele definirse en un XML en una cadena concreta cuyo tag contiene labelMale o labelFemale, o desde Core\WordInfo\Gender (ver página 3 de la Wiki).

NOTA: En ocasiones, PAWN es sustituido por 0, 1, 2, ANYPAWN, OTHERPAWN, RECIPIENT... O similares. Es conveniente fijarse en la traducción inglesa que tenemos justo encima de la nuestra para ver qué utiliza el juego para emplearlo de la misma forma.

Los rulePacks

Los rulePacks son archivos .xml que son usados en textos generativos, como pueden ser registros de combate, títulos y descripciones de misiones y títulos y descripciones de libros. Un archivo especial es el que se puede encontrar en Core\DefInjected\RulePackDef\RulePacks_Global.xml. Este puede ser utilizado por otros rulePacks, y contiene variables que, al estar definidas allí, pueden ser usadas por otros rulePack (si no estuvieran, debería definirse en su propio archivo). En él se definen además las rutas a archivos .txt que contienen nombres en femenino y plural de cosas como animales, lugares o terrenos, lo que puede facilitar crear mejores combinaciones usando su respectiva variable en otros rulePacks. [CONTINUAR]

Funciones especiales

Hay varias funciones adicionales integradas en el LanguageWorker que pueden resultar útiles en distintos contextos. En el caso de nuestro idioma, el que más utilidad tiene es la función Replace, aunque tenemos más herramientas disponibles si alguna vez hicieran falta. Recuerda que siempre buscar más ejemplos en los archivos de traducción si lo necesitas para poder entender su funcionamiento.

Replace

Permite sustituir una coincidencia del primer parámetro que se le dé por otro término, y si no hay coincidencia, se escribe tal cual lo del primer parámetro. Es especialmente útil para evitar situaciones donde una variable puede dar lugar a preposiciones seguidas de un artículo (a el - de el), permitiéndonos sustituirlas por artículos contractos (al - del). La sintaxis es {replace: {VARIABLE}; "A"-"B"; "C"-"D"; "E"-"F"}. Parámetros:

  • El primer parámetro es lo que va a mirar la función para sustituir, y va justo después del :. Solo tiene sentido que sea texto + variable (por ejemplo, replace: de {0_definite}; (...)) o la variable sola (por ejemplo, replace: {0_definite}; (...)), ya que un texto constante no tiene sentido que se altere usando esta función.
  • Los parámetros sucesivos son las sustituciones que hará la función, y van a continuación del primer parámetro tras un ; y entre comillas. Se separan entre si por ; también. En el ejemplo de arriba, si {VARIABLE} es A, el texto en el juego pondrá B; si es C, pondrá D; si es E, pondrá F. Puede haber tantas sustituciones como se necesite (no suelen ser más de una en español, como veremos a continuación).

Para entenderlo mejor, pongamos de ejemplo la siguiente cadena:

El nivel de actividad {replace: de {0_definite}; "de el "-"del "} aumenta con el tiempo.

En este caso, la variable 0_definite será un término que empiece por artículo determinado (el - la). replace comprueba lo que se le indique en el primer parámetro, de forma que si {0_definite} es "el monstruo", entonces, sustituyendo dentro de lo del primer parámetro, quedaría "de el monstruo". Como en español la preposición "del" tiene más sentido, entonces la función sustituye la coincidencia "de el " por "del ". Resuelto, quedaría así:

El nivel de actividad del monstruo aumenta con el tiempo.

Si, por ejemplo, {0_definite} fuera "la mutante", en la frase resuelta no aparece ningún "de el ", así que NO hay sustitución de nada. Quedaría así:

El nivel de actividad de la mutante aumenta con el tiempo.

Ahora veamos otro ejemplo. En este caso concreto, el uso de la función nos permite generar dos frases distintas en función de si la variable es igual a 1 o mayor que 1:

{replace: ^{0} colonos ociosos; "^1 colonos ociosos"-"1 colono ocioso"; "^"-""}

Aquí es esencial el uso del símbolo ^ para hacer referencia al valor numérico de la variable. Es mejor solo utilizar esto cuando las variables son números enteros, para evitar problemas.

Lookup

Hace una búsqueda en una tabla, y devuelve el valor correspondiente. En español, no usamos activamente tablas porque no nos ha hecho falta de momento, pero en otros idiomas sí que existe. Actualmente las dos existentes se encuentran en los archivos de texto de la carpeta WordInfo, en Core.

Pongamos un ejemplo para entender su funcionamiento:

Aumenta el nivel de interés en {lookup: {0_label}; case; 2}.

Parámetros:

  • Clave de búsqueda. En este caso, el subcarácter label del carácter numerado 0.
  • Nombre del archivo de la tabla, en este caso, */WordInfo/Case.txt. Aunque el nombre del archivo esté en mayúscula, debes escribirlo dentro del lookup en minúsculas.
  • Número de columna, contando el 0 como el primer valor. En este caso, sería la tercera columna.

Como resultado, si asumimos que el en esa posición de columna pone Arte, el juego generará la siguiente línea:

Aumenta el nivel de interés en Arte.

Cabe comentar que lookup debe ser capaz de encontrar la variable en la columna 0 de la tabla. Debemos asegurarnos de que todas las posibles palabras o términos estén escritos allí, puesto que si no puede generar errores.

También cabe destacar que, por defecto, en la columna 0 del archivo plural.txt se encuentran los términos en singular, y en la columna 1 los términos en plural. Con independencia de usar lookup o no, hay algunos casos de variables en el juego que fuerzan la pluralización de un término. Pueden ocurrir dos situaciones:

  • Si el término que resuelve la variable está en esa tabla, se cogerá de ahí.
  • Si el término que resuelve la variable no está en esa tabla, se pluraliza automáticamente. Puede inducir a problemas en términos como "carga del quemador", que se pluralizará a "carga del quemadores", ya que solo se tiene en cuenta el final del término (en este caso, acaba en -r, así que se añade -es para que tenga sentido).