Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ayuda: localizaciones, ayuda para el traductor, mantenimiento...

Iniciado por [Vil], 04 de Enero de 2009, 01:22:48 PM

« anterior - próximo »

[Vil]

Muy buenas a todos. Dándole vueltas a la localización de Fregocles al inglés, me estuve planteando cuál es la mejor forma de preparar los textos para el/los traductores, y como sería la mejor forma de mantener esa traducción.

Los problemas principales vienen a ser:

- Hay una gran cantidad de textos. Ya no solo menús y opciones, me refiero principalmente a todos los diálogos y conversaciones (sobre todo en una av gráfica).
- Hay que separarlos del código, del script o de donde sea para que el traductor lo tenga mucho más fácil.
- La tarea de separar ese texto y reintroducirlo en el idioma que sea debe ser automática.
- Que sea fácil de mantener. Si se cambian textos en el juego o se añanden textos (updates, ampliaciones, correciones de bugs), no sea una odisea reorganizar la traducción. Que pueda verse de la forma mas clara posible que frases han cambiado y cuales hay nuevas.

Para estos problemas, hablando con Kr0n salio la posibilidad de utilizar gettext (http://es.wikipedia.org/wiki/Gettext). Pero le veo algunos problemas:

- Esta bien para frases individuales, pero para una conversación en la que hay varios personajes y muchas líneas de conversacion, no veo que esto se adapte del todo.
- No se como se haría el mantenimiento en caso de cambios en el juego original (lo que he comentado antes).

En fin... no se si conoceis otras posibilidades, se os ocurre alguna forma casera de hacerlo o podeis orientarme en función de como suela hacerse este tema en los videojuegos.

Muchas gracias!!

Pogacha

Yo por el momento lo hago es usar un LanguageManager.
Tengo un XML para cada lenguaje y el manager carga el adecuado.


printf( LanguageMangager->Get( "HOLA_NOMBRE" ), name );

y el xml tiene algo como:

<String Id="HOLA_NOMBRE>Hello %s</String>

Otro xml tendría

<String Id="HOLA_NOMBRE>Hola %s</String>

Esto es al menos lo que yo hago, puede que no sea lo mejor pero doy fe que funciona facilmente.


Vicente

Un apunte, puede que no solo tengas que localizas las frases, si no las posiciones de las mismas, longitudes,... Una frase puede ser cortísima en un idioma y en otra ser muy larga con lo que no entra, o se sale de un botón o mil movidas del estilo... Es raro, pero puede pasar sobre todo si tienes tantísimo texto.

Respecto a como hacerlo, en .NET el sistema para la localización es parecido a lo que comenta Pogacha (no es exactamente igual porque el Visual hace muchas cosas por detrás, pero la idea es esa). En Java creo que los ficheros de recursos eran ficheros planos en plan clave=valor (aunque hace mucho que no lo toco).

Un saludo!

Vicente

[Vil]

Muchas gracias por responder.

Vicente, el tema de las posiciones, longitudes y tal esta practicamente solucionado. Piensa que los textos de una aventura grafica se parten automaticamente en funcion del tamaño de pantalla y las palabras. Para menus y tal se haria a mano, pero son pocos.

Y bueno, los sitemas que comentais son parecidos al gettext. Estan bien cuando tienes que traducir palabras, frases de aviso y cosas asi. El volumen de texto de una a grafica es mucho mayor y requiere un poco de contextualiacion. Si separas cada frase de una conversacion y no lo tienes bien agrupado te puede dar el lio para localizarlo bien.

Nadie sabe como suele hacerse para juegos de este tipo o similares con mucho texto (av graficas, rpgs, etc.) ?

Muchas gracias

Zaelsius

Hola Fregocles.. digo.. Vil, se me ocurre que podrías echarle un vistazo a como lo tiene montado WinterMute, un motor de aventuras gráficas:

http://dead-code.org/home/

Tiene varias herramientas gráficas para diálogos y cadenas, quizá te dé ideas.






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.