¿Cómo preparar un juego para la localización?


48

Muchos proyectos no piensan en la localización hasta que se termina el juego. Luego, la localización se realiza como un truco, y es obvio que se agregó más tarde. Algunas áreas específicas de preocupación:

  • Cadenas de texto (obviamente)
  • Clips de audio como música y / o narrativas.
  • Texto representado en texturas (por ejemplo, una etiqueta en una caja)
  • Texto renderizado en cuadros en películas pre-renderizadas
  • Fuentes / juegos de caracteres para diferentes idiomas
  • Etc.

¿Cuáles son algunas buenas maneras de prepararse para estos desafíos en las etapas iniciales de desarrollo, para que pueda hacerlo más fácil sin incurrir en demasiados costos por adelantado?


8
He estado jugando Dawn of Discovery - Venice últimamente, traducido al inglés del alemán. Es aproximadamente 99% correcto. . . y de vez en cuando uno de los personajes habla inexplicablemente alemán para una línea, o uno de los informes de estado del edificio tiene diéresis, o (de vez en cuando) me informan que puedo comprar un artículo de depuración en la tienda local. Independientemente del método que utilice, asegúrese de que sea fácil detectar líneas no traducidas; si tiene que leerlas visualmente o jugar el juego y esperar que aparezcan, lo está haciendo mal.
ZorbaTHut

@ZorbaTHut ¿Es el elemento de depuración una forma de informar errores de traducción, o los desarrolladores del DoD usaron un DLC para parchear fallas en la localización?
Dan Neely

Crear un lenguaje falso que tus programadores puedan leer y escribir puede ser beneficioso. Google tiene un lenguaje "hacker" y Facebook tiene pirata. Es divertido para los desarrolladores, y es algo que pueden probar por su cuenta sin aprender un nuevo idioma.
John McDonald

Para agregar a las respuestas anteriores, le sugiero que pase por una ronda de pseudo-localización (esencialmente el nombre formal y el proceso del punto "Hacer obvio el texto localizado perdido" en la respuesta superior). Podrá eliminar posibles problemas de implementación incluso antes de que comience la traducción.
Anthony

Respuestas:


49

No soy un experto, pero aquí hay algunas cosas básicas:

Asegúrese de que sus cadenas puedan manejar más que solo ASCII

Necesitará algunos caracteres especiales que no encajan en ASCII y es mejor que su clase de cadena no los moleste. UTF-8 es una codificación común porque ahorra espacio. Hagas lo que hagas, prueba temprano y resuelve los problemas.

Es una muy buena idea usar una clase de cadena real y no solo en char *todas partes o vas a estar en un mundo de dolor.

No olvides tus fuentes. Asegúrese de que todas las fuentes que está utilizando tengan los caracteres que necesita.

Saca tus cuerdas del código

Este es el más importante. Asegúrese de que todas las cadenas de texto estén almacenadas fuera del código en algún archivo de datos que pueda intercambiar. Establecer una tubería para esto puede ser una tarea difícil por adelantado, pero le ahorrará un montón de tiempo más adelante. Querrá una API simple para que cada vez que necesite una cadena en el código, sea tan simple como:

String text = Locale::getString("some unique identifier");

No concatene ni cree cadenas en el código

Es importante no hacer suposiciones sobre cómo se construye un texto a partir de palabras más pequeñas. Incluso algo tan inocuo como:

String currency = Locale::getCurrencyString() + money.toString();
// creates $123

es un problema porque otros idiomas pueden colocar la marca de moneda después del número. En su lugar, use cadenas de formato que estén localizadas como:

String format = Locale::get("currency format"); // returns "${0}" in English
String currency = String::Format(format, money.toString());

De esa manera, los localizadores pueden reorganizar las palabras dentro de la cadena de formato.

Minimice la cantidad de texto que aparece en el arte, especialmente el video

Bifurcar activos artísticos es una tarea. Es probable que deba hacerlo al menos un poco para algunos elementos de la interfaz de usuario, pero es una molestia. Bifurcar FMV es un gran dolor porque ahora tiene que renderizar y almacenar copias duplicadas de su FMV.

Prueba a fondo en diferentes idiomas

En la mayoría de las bases de código, es demasiado fácil decir printf("Hi there");o loadTexture("someTexture");olvidar que deben pasar por su API de localización. Alguien lo olvidará y usted terminará con algo correcto en su idioma principal pero incorrecto en otros. La única forma de encontrarlos es hacer que sus evaluadores prueben en idiomas no primarios.

Hacer obvio el texto localizado perdido

Por lo general, traduce su texto al final del ciclo, por lo que durante la mayor parte del tiempo, simplemente no habrá datos para algunos idiomas. Eso está bien porque te permite iterar en tu contenido sin tener que volver a traducir constantemente. La desventaja es que significa que es fácil para ti perderte cosas y olvidarte de traducir algunas cosas.

Una cosa barata que puede hacer es hacer que el texto faltante aparezca de manera muy obvia como "¡¡¡¡¡¡¡SE REQUIERE TRADUCCIÓN PARA ID #blah blah !!!" en el juego cuando falta

Diseña tu interfaz de usuario en el peor de los casos

Los diferentes idiomas tienden a tener palabras más largas o más cortas. Una interfaz de usuario que se ve hermosa en inglés puede tener texto que supera sus límites, se recorta o se ajusta incorrectamente en un idioma más largo. Tendrá que hacer cambios en la interfaz de usuario para acomodar el peor de los casos (o bifurcar su interfaz de usuario, pero eso probablemente no sea lo que desea hacer).

Molesto, el inglés es a menudo el idioma más corto de los que normalmente se localizan, por lo que sus diseñadores probablemente están diseñando inadvertidamente para el mejor de los casos. Haga que usen texto extralargo para sus marcadores de posición cuando diseñen. Suponga que cualquier texto puede ser aproximadamente un 30% más largo que en inglés. Google Translate puede ser bueno para obtener un texto aproximado para el marcador de posición.

Presupuesto de tiempo para la traducción

La traducción de texto generalmente ocurre tarde cuando el equipo está cansado y realmente no le importa. No obstante, obtendrá muchos errores cuando ocurra. Las palabras pasarán límites, los traductores cometerán errores, etc. Para empeorar las cosas, el tiempo de respuesta para iterar en el texto puede ser largo si tiene que enviar mensajes de texto a personas en el extranjero y esperar sus cambios. Asignar tiempo para este trabajo.


44
Ah, cuerdas concatenadas. Qué fastidio. Funciona muy bien en el idioma nativo para crear variedad de forma rápida y fácil. Pero luego entras en un idioma con una gramática diferente y es un completo fracaso. Todos los otros puntos son buenos también. 'Configuración' en alemán era 'Einstellungen', que devora un poco de espacio extra en la pantalla cuando lo necesita.
Casey Wagner

13

Además de otras sugerencias, una cosa que he hecho en el pasado que ayuda mucho a encontrar el texto traducido que sale de los componentes de la interfaz de usuario es tener un modo de idioma especial para su juego que, al mostrar cualquier cadena, examina todos los idiomas y elige la versión más larga de esa cadena. De esa manera, una vez que haya ajustado todas las cadenas en ese modo, sabrá que ha arreglado todos los sangrados de texto en cada idioma.


9

Localizar un juego correctamente es muy difícil .

Puede navegar por Internet, leer publicaciones de blog o respuestas de StackOverflow; puede aprender los marcos tradicionales de i18n como gettext ; leer páginas de Wikipedia sobre internacionalización y localización de juegos ; consulte la excelente guía de idiomas de Microsoft , pero localizar juegos es realmente más difícil que eso. De hecho, con los juegos es probablemente más difícil que con cualquier otra aplicación o interfaz web. Esto se debe a que los juegos son mucho más dinámicos, más vibrantes, más vivos (bueno, al menos los buenos juegos lo son).

Más concretamente, probablemente sea necesario seguir los siguientes pasos:

Establece los límites.

Desea tomar una decisión importante para los idiomas que desea admitir temprano. Cuanto más amplia sea su elección, más suposiciones sobre cómo se puede comportar un idioma se romperán. A menudo, estas suposiciones están tan profundamente impresas en nuestros cerebros, que ni siquiera podemos imaginar que pueden ser incorrectas sin que alguien las señale. Lo que nos lleva al siguiente punto:

Encuentre los expertos para cada idioma que desee admitir.

Experto significa alguien que tiene suficiente habilidad analítica y conocimiento del idioma, que podría señalarle las suposiciones que hace un hablante de inglés que no tienen en su propio idioma. Luego, deberá idear una estrategia para solucionar esos supuestos.

Como ejemplo: en los idiomas occidentales justificamos el texto en un párrafo insertando espacio adicional entre las palabras. En idioma árabe, el texto se justifica insertando caracteres kashida dentro de las palabras. Podría verse así .

Otro ejemplo: en ruso, hay 2 formas plurales para la mayoría de las palabras. Así, por ejemplo, traduciría "1 moneda" / "3 monedas" / "5 monedas" como "1 монета", "3 монеты", pero "5 монет". El procedimiento real para decidir la forma plural correcta se ve así:

function LocalRU::GetPlural(n, form0, form1, form2) {
    return (n%10) == 0 || (n%100) >= 5 && (n%100) <= 20? form0 : 
           (n%10) == 1? form1 : 
           (n%10) <= 4? form2 : form0;
}

Cree un módulo de traducción contextual.

Probablemente sepa que la traducción siempre depende del contexto. Y sabes que el contexto dentro de un juego cambia todo el tiempo. ¿Qué sucede si juntamos estas dos declaraciones? En general, sus traducciones deben ser tan dinámicas como su juego.

Por ejemplo, una frase simple "Acepto" se traduce al ruso como uno de "Я согласен" / "Я согласна" / "Я согласно", según el género del hablante (masculino / femenino / transgénero | interrogatorio | interrogatorio | interrogatorio | interrogatorio | queer | interrogatorio). Si esta es una de sus líneas de diálogo, entonces el módulo de idioma tendrá que elegir una de las posibles traducciones en tiempo de ejecución según el género de su personaje (suponiendo que ofrezca a sus jugadores esa opción).

La misma frase cuando se traduce al japonés volverá a tener diferentes traducciones, dependiendo del nivel de formalidad de la relación entre el hablante y el oyente. Por lo tanto, si introduce en su juego la idea de la reputación, la amistad o el nivel variable de superioridad (por ejemplo, su personaje puede evolucionar de Novato a General), tendrá que tener esto en cuenta al realizar la traducción. (En realidad, esto no es específico de Japón. Incluso en inglés, en el ejército nunca dices "¡Señor, sí, señor!" A alguien por debajo de tu rango).

Tener una manera de saltar al contexto.

Sus traductores deben tener la capacidad de ver el contexto donde aparece una frase en particular. A veces el contexto es obvio, a veces hay que verlo / escucharlo / experimentarlo usted mismo para traducir algo correctamente.

Incluso una oración tan simple como "Este libro es azul". no se puede traducir sin ambigüedades sin que yo mire el libro y vea qué tono particular de azul es.

Evite los juegos de palabras, juegos de palabras y otros elementos específicos del idioma.

O tal vez no lo evite, pero al menos tenga una estrategia en mente sobre qué hacer cuando el juego de palabras no se puede traducir. Porque probablemente no lo hará.

Como mínimo, no deberías crear misiones / acertijos / objetos de juego que se basan en ciertas palabras que tienen doble significado o que son similares a otras palabras. Porque una vez traducido romperás tu propio juego. (Por ejemplo, en un viejo juego Fallout2, la búsqueda principal era encontrar el objeto llamado GECK; también había numerosos monstruos "Gecko" (lagartos mutados) alrededor del juego; naturalmente, crearon múltiples referencias y misiones en torno a esta similitud de nombres, que hizo buenas traducciones extremadamente difíciles).

¡Alegrarse!

Localizar un juego es difícil. Pero es difícil para todos. Si haces un esfuerzo y lo haces correctamente, los críticos del juego en tu país objetivo no pasarán desapercibidos. Se destacará un juego con buena traducción y obtendrá mayores ganancias. Después de todo, el texto es tan importante para crear una atmósfera en el juego como los gráficos (esta es la razón por la cual los juegos de rol basados ​​en texto antiguos eran tan inmersivos).


La alternativa para "evitar el juego de palabras" es incluir un escritor creativo en un equipo de traducción de idiomas y permitirles modificar los significados literales. FFXIV hace esto extraordinariamente bien para su versión en inglés, como un buen ejemplo.
Patrick Hughes

3

Wil Shipley tiene, con mucho, la mejor guía sobre localización que he leído. Desafortunadamente, es específico de iPhone, pero aún se puede obtener información comúnmente útil. Además, aborda la localización de activos y la interfaz de usuario, dos de los desafíos más grandes que puedo imaginar en la localización de juegos.


1

Siempre, SIEMPRE trate el idioma de origen como un idioma localizado.

Entonces, si su idioma de origen es EN, mantenga todos los activos y cadenas EN en una carpeta EN separada y tire de allí.

Tire de los activos EN a través de su canalización de localización prevista.

Al hacer esto de manera simple, detectará tal vez el 80% de los problemas de localización y estará preparado para un proceso de localización mucho más fácil.

He localizado muchos juegos y siempre lidero con esta pepita.


1

¡Veo algunos consejos realmente buenos aquí!

Intentaré hacer una lista de los errores más comunes que pueden variar desde dificultar su localización hasta arruinar por completo su juego:

  • Pensando en la localización como el último paso del desarrollo del juego
  • No aislar sus cadenas de texto del código fuente
  • Concatenación / saltos de línea en el medio de una oración.
  • Suponiendo que las horas, fechas y unidades no necesitan localización
  • No proporciona suficiente material de referencia a los traductores / No responde sus preguntas
  • Asumiendo que todo el texto de tu juego estará en ASCII
  • Tener texto en imágenes
  • Tener cuadros de texto / IU rígidos
  • Suponiendo que todos los idiomas tengan la misma longitud que el inglés
  • Uso de Google Translate / traducción automática
  • Ignorando factores culturales
  • No asignar suficiente presupuesto para la localización

La localización debe integrarse al desarrollo lo antes posible y siempre debe tenerla en cuenta al diseñar un juego.

Con la planificación adecuada y una cuidadosa investigación de mercado, se ahorrará muchos problemas y gastos más adelante.

Soy el fundador de una empresa de localización de juegos y cubrimos la preparación de un juego para localización hace un par de meses en nuestro blog.

Aquí está la infografía que resume esa publicación: https://magic.piktochart.com/output/18317297-9-steps-to-cheaper-game-development-with-localization

El enlace a la publicación completa que cubre esos consejos con más detalles se encuentra en la parte inferior.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.