Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Traducciones

Iniciado por RePAnd, 03 de Diciembre de 2002, 12:41:16 AM

« anterior - próximo »

RePAnd

                                Hola,

hace tiempo que me pregunto como hacen para traducir juegos a otros idiomas como chino y japonés donde el numero de caracteres es claramente superior. Aun no he encontrado la respuesta asi que os la planteo a vosotros  :P . Tambien me gustaría saber cuales son las medidas que se suelen tomar para facilitar la posterior traducción del juego.

venga, un saludo
RePAnd                                

Astat

                                La respuesta que buscas es UNICODE, que al final es usar SHORT en vez de CHAR para definir caracteres.

Cara incluir un buen soporte de idiomas en los juegos, yo uso las STD::WSTRING, y para hacer referencia a los textos, se usan indices de una tabla sacada de un fichero externo (en el que estan las cadenas de texto), asi solo hay que cambiar un indice para cambiar de idioma (que luego hay que cambiar todas las cajas de texto porque siempre se salen ) :jaja:

Un saludo                                

Loover

                                ¿Un indice para cambiar de idioma? Basta con cambiar la tabla, el archivo donde esten todas las frases.                                
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

Astat

                                En mi caso, tenemos un archivo con todos los idiomas, asi que solo es cambiar el indice al idioma.                                

Loover

                                Ahh
¿Pero no sería mejor tener los idiomas en archivos diferentes? Que pasa si alguien quiere añadir un nuevo idioma... tendra que meter tb todos los otros en el archivo. No me parece útil esa forma.                                
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

RePAnd

                                gracias a los dos por contestar, pero sigo con dudas :P .
Astat: Si tu tienes las fuentes del juego en bitmaps lo que has comentado no soluciona todo. Oh si? es q no lo veo claro :( .

un saludo, RePAnd                                

Loover

                                Bueno yo te voy a decir cómo lo hago yo:

Tengo un archivo de texto normal y corriente con todas las frases/palabras. Se llama por ejemplo: español.len
Ejemplo:



ventana

coche

Pulsa sobre esta opción

Salir



Al iniciar el programa cargo en un array de strings llamado "cadena" todas las frases (mejor si lo creas en tiempo de ejecución con un malloc, puedes hacer que la primera palabra del archivo sea el número de palabras totales). A partir de ahora:

cadena
  • = ventana
    cadena [1] = coche
    etc

    Y dentro del programa no escribo nunca una palabra, sino la variable.
    Ejemplo:


    Write (cadena [1]); // Escribira "coche"



    Si lo haces así, cuando quieras cambiar de idioma solo tienes que crear un nuevo fichero traducido, y cargarlo al principio del programa.
    ¿Fácil, no?

    En cuanto a lo de si una palabra ocupará más o menos según el idioma... bueno tendrás que hacer el botón o sobre lo que estén sea lo suficientemente grande, jeje. O bueno, siempre puedes "contraer" la palabra (si la dibujas en pantalla como una imagen).                                
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

Astat

                                En constestacion a repand, no/si usamos fuentes en bitmaps.... me explico, al comenzar el juego, se crean esos bitmaps con las fuentes que hagan falta. En las siguientes ejecuciones se leen los generados anteriormente. Hechae un ojo a las librerias FreeType.                                

RePAnd

                                De nuevo gracias a los dos por aclararme las dudas :D .

un saludo, RePAnd                                

Antares

                                Aunque ya te han ayudado contare mi experiencia en traducir el Sistem Shock 2  y el IWar2 edge of chaos.

Los dos utilizan archivos de texto normales sean comprimidos o con formato csv del excel.

Nada mas grafico q un ejemplo:

IWar2

Citar
; Clay y cal jóven hablan del hecho que la base parece correr sobre la potencia de la emergencia....

a0_master_dialogue_young_cal_its_very_dark_in_here_clay,"Um... Esto está verdaderamente oscuro, Clay. ¿Esta totalmente seguro de que funciona?"

Sistem Shock 2

Citar
EmailName10:"POLITO 12.JULIO.14nre: Recomponga el nucleon"
EmailPortrait10:"Polito"
EmailIcon10:"OpsIcon"
EmailText10:"Esta ahora sobre la cubierta de la ingenieria. Encuentre el nucleo del motor y recompongalo. Esto restaurara la corriente de los elevadores. Consigo algunas lecturas extranas de alli, mantenga los ojos bien abiertosn"

Por supuesto eso es despues de haberlos traducido

Ya de paso si algun@ esta interesado en estas traducciones mandarme un mail

Nada mas.... aunque ya lo dejaron claro espero que mi aportacion sirva al menos para mostrar como lo hacen las grandes compañias como LookingGlass e Infogrames.

SaludOTT

Antares                                

CordayUK

                                de acuerdo con lo que habeis dicho hasta ahora :)

en mi caso he utilizado tambien un archivo del tipo:

indice,indice,indice,indice...... texto,texto,texto,texto, ....

cada idioma esta en un archivo diferente, cuando seleccionas un idioma lo cargas en memoria tal cual esta. (indices primero y luego textos)
puedes tener un archivo excel con todos los textos y sabes que "hola que tal" es el texto 15 del archivo, asi que printf ("%s", GetTextoTrad (15));
para pillar el texto 15, en GetTextoTrad lees la cadena donde apunta indice 15.
es facil y comodo.

si te lo curras un poquito mas ademas puedes guardar en los textos los simbolos estandar %s, %d, etc. a veces necesitas poner un texto traducido que tiene una variable en medio. Por ejemplo: "Felicidades, has conseguido 14 puntos"....                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.