HRCodWar - Traducciones

Traducir la campaña a otro idioma no es muy complicado aunque requiere algo de trabajo, el cual con toda seguridad, será muy agradecido por los usuarios de dicho idioma. ¿Como puedes hacerlo y colaborar para que HRCODWAR sea mas conocido y más cómodo de volar?, de la siguiente forma:
Distintos idiomas en el juego y en la web

Tanto la campaña como la web pueden funcionar en idiomas distintos, puedes volar la campaña en Inglés y tener la web por ej. en Ruso, el único problema es que si eres un comandante y programas las órdenes en ruso, el servidor del juego no las va a entender porque se estará ejecutando en Inglés, por ello, independientemente de en que idioma se este visualizando la web, hay que programar las órdenes siempre en el lenguaje en que se esté volando la campaña, porque los comandos del chat tambien estan traducidos.

Directorios de traducción

Tanto la campaña como la web se encuentran traducidas en Español e Inglés. Si no eres hispanohablante, lo mas cómodo será partir de la traducción en inglés para traducirlo al idioma deseado. Los ficheros de traducción se encuentran almacenados en:

  • Servidor juego En el directorio de missions/hrcodwar verás un subdirectorio que se llama /lang, dentro de ése directorio verás los ficheros de traducción indentificados por su código de lenguaje.
  • Servidor web: En el raíz del proyecto, verás dos directorios.
    • /lang_mis: Aquí deben almacenarse los mismos ficheros que hay en el servidor del juego en missions/hrcodwar/lang, ya que se usan esas traducciones para maquetar la documentación de referencia del uso del chat aquí.
    • /lang_web: Estos ficheros de traducción son los específicos que usa la web.
El formato de los ficheros de traducción

Como habrás visto, todos tienen la extensión de .json. Efectivamente, son ficheros en notación json donde la clave es la referencia que se usa en el programa y el valor la traducción propiamente dicha. No debes cambiar la clave, solo debes traducir el valor. Como todo el proyecto, tanto la campaña como la web, están escritos en formato UTF-8, no habrá problema por escribir carácteres fuera de la codificación latina.

Añadir un nuevo idioma en la campaña

Es bien sencillo, coge cualquier idioma que te sea cómodo y duplica el fichero, ej. Supongamos que queremos traducir del inglés al ruso. Copiaremos missions/hrcodwar/lang/en.json a missions/hrcodwar/lang/ru.json, y traduciremos ru.json.
Una vez acabado, editaremos missions/hrcodwar/conf.ini y modificaremos la variable de lang en [GENERAL] de "en" a "ru", quedando lang=ru, y ya tenemos la campaña en el idioma nativo de los creadores de la saga :)
Como ya hemos explicado, si quieres que la referencia a los comandos del chat sean traducidos al idioma real que va a entender la campaña, deberías subir el nuevo lenguaje a /lang_mis y traducir tambien la web :)

Añadir un nuevo idioma en la web

Es análogo a la campaña, siguiendo el mismo ejemplo de inglés a ruso. Copiaremos /lang_web/en.inc.php a /lang_web/ru.inc.php y /lang_web/en.js a /lang_web/ru.js, y lo traducimos. Esta vez, editaremos /config.inc.php y editaremos dos variables. El array de php que incluye los idiomas en $CFG_LANGS = array("es"=>"Español","en"=>"English","ru"=>"Русский");, añadiendo el nuevo, y $CFG_LANG para decirle el código del idioma por defecto, de nuevo $CFG_LANG = "ru";.

¡ ADVERTENCIA !

Hablamos de añadir un nuevo idioma a la campaña almacenado en missions/hrcodwar/lang/codigo_nuevo_idioma.json. Al comienzo del fichero de traducciones verás un grupo de variables que empiezan por COMMAND_CHAT_xxx , este grupo son las palabras claves que el sistema detecta cuando mandamos las órdenes ya sea vía web o en vivo a través de la ventana del chat.
Estos comandos deben traducirse con palabras únicas, SIN ESPACIOS, ya que al parsear la frase el sistema separa el comando enviado por espacios y analiza cada parte, es decir, supongamos que queremos traducir este comando del español a inglés:
"COMMAND_CHAT_HQ_MAKE_SUPPLY_COLUMN_FROM_BASE_TO_BASE" : "BASESUMINISTRO"
Si lo traducimos asi:
"COMMAND_CHAT_HQ_MAKE_SUPPLY_COLUMN_FROM_BASE_TO_BASE" : "MAKE SUPPLY BASE COLUMN"
Jamás funcionará. Debería traducirse así:
"COMMAND_CHAT_HQ_MAKE_SUPPLY_COLUMN_FROM_BASE_TO_BASE" : "MAKESUPPLYBASECOLUMN"
ó
"COMMAND_CHAT_HQ_MAKE_SUPPLY_COLUMN_FROM_BASE_TO_BASE" : "MAKE_SUPPLY_BASE_COLUMN"
Ten en cuenta, que cuanto mas corto sea, más cómodo le resultará al comandante gestionar las tropas.

Igualmente el grupo de comandos TIPO_UNIDAD_NOMBRE_xxx , representa el nombre interno del objeto COD en la misión e igualmente, no pueden contener espacios.