Idiomas
Once idiomas vienen completos (todas las pantallas, no solo los botones) con las palabras que usa el propio iPhone de cada idioma. Lo que falte en un idioma vuelve al inglés string a string, así que una traducción a medias muestra lo que tiene en lugar de romperse.
| Código | Idioma | Código | Idioma |
|---|---|---|---|
en | English | pt | Português (Brasil) |
es | Español | pl | Polski |
fr | Français | ru | Русский |
de | Deutsch | tr | Türkçe |
it | Italiano | ar | العربية — de derecha a izquierda |
ja | 日本語 |
Elegir uno
Sección titulada «Elegir uno»-- shared/config.luaConfig.Locale = 'en'Ese es el idioma por defecto de la ciudad. Cada jugador puede cambiarlo para sí mismo en Ajustes → General → Idioma, y su elección se recuerda junto con el resto de sus ajustes.
Quién lee qué idioma
Sección titulada «Quién lee qué idioma»Cada jugador lee el idioma que ha elegido, dentro y fuera del teléfono. El teléfono sigue la elección de Ajustes, y también lo hacen las líneas que se muestran fuera del teléfono: “Aquí no hay señal.”, “Tienes las dos manos ocupadas.”, la llegada de una nueva solicitud.
Config.Locale es el idioma para un jugador que nunca ha elegido uno, y para todo lo que no se le dice a nadie en particular.
Para tu propio recurso: LFor(source, text, ...) responde en el idioma de ese jugador, y L(text, ...) en el de la ciudad.
Qué sigue al idioma además de las palabras
Sección titulada «Qué sigue al idioma además de las palabras»- Las fechas y el reloj. “Samstag, 19. September”, “9月19日土曜日”, el reloj de 24 horas donde el idioma lo usa. El dinero se queda en
$, que es como lo cuenta la ciudad. - El árabe se lee de derecha a izquierda. Toda la pantalla se refleja como en un iPhone en árabe: las filas empiezan por la derecha, la flecha de atrás apunta a la derecha. Dos cosas se quedan como están en todos los idiomas, igual que en un iPhone: el teclado de marcación y la calculadora. Las cantidades, fechas y números dentro de una frase en árabe mantienen su orden. Dígitos occidentales y calendario gregoriano, como lee un teléfono en Los Santos.
- Los recuentos. El polaco, el ruso y el árabe tienen más formas de plural que uno y muchos, así que sus recuentos se leen “Notatki: 4”, que es correcto para cualquier número.
Dónde están las palabras
Sección titulada «Dónde están las palabras»Una carpeta, un archivo por idioma. Ahí está todo: los 2.400 strings de la pantalla y las dos docenas que se muestran fuera del teléfono, como una notificación de la ciudad o el motivo por el que no se abre en mitad de un salto.
locales/en.lualocales/es.lualocales/fr.lua…Es un archivo Lua, así que el servidor y el cliente lo cargan como el script que es, sin parseo ni conversión. El teléfono lee el mismo archivo y lo parsea, y por eso el formato es estricto: un ["key"] = "value", por línea, y un comentario es un comentario. Respeta ese formato y las dos mitades verán tus palabras.
Un string es su propia clave:
Locales['es'] = { ["Verified account"] = "Cuenta verificada", ["The last {n} hours."] = "Las últimas {n} horas.",}La clave es el texto en inglés, así que una traducción que falta muestra el inglés en lugar de un hueco o un código. Las llaves son valores que rellena el teléfono: consérvalas, y ponlas donde las necesite la frase en lugar de donde las puso el inglés. Un valor que se deja como "" significa “muestra el inglés”: así se escriben los nombres que nunca se traducen (Instapic, Bean Machine, Los Santos).
El teléfono solo lee el idioma que elige un jugador, cuando lo elige: no se cargan once diccionarios en cada arranque para un teléfono que muestra uno.
Cambiar una palabra
Sección titulada «Cambiar una palabra»Abre el archivo del idioma, busca la línea y cambia el valor:
["Wallet"] = "Cartera", -- the right-hand side is what the player readsReinicia el recurso. No hay nada más que haga referencia a ello.
Añadir un idioma
Sección titulada «Añadir un idioma»- Copia
locales/en.luaalocales/<code>.lua(por ejemplo,nl.lua) y cambiaLocales['en']porLocales['nl']. - Traduce los valores. Las claves no cambian nunca.
- Si el código no es uno de los once, añádelo a la lista que ofrece el selector, en
html/core/onboarding.js:const languages=[['en','English','Hello'], … ,['nl','Nederlands','Hallo']];: el código, el nombre en su propio idioma y un saludo para la primera pantalla. Config.Locale = 'nl', si debe ser el idioma por defecto de la ciudad.
El manifest ya incluye todos los archivos de locales/, así que no hay nada que registrar. El selector marca un idioma que todavía no tiene palabras como Se muestra en inglés por ahora en lugar de ocultarlo.