[Tutorial] Traducciones! |
![]() ![]() « Censeur » 1393965660000
| 0 | ||
¡Hola! Bueno, en este post, como he visto muchos del BR, EN, etc poner sus minijuegos aquí y en otros servidores del foro, haré un pequeño tutorial de traducción. 1. Tablas Bien, comenzemos con la tabla de traducción, que será langs, abajo ponemos una tabla que será un idioma, ejemplo BR, nos quedará así: a dit : 2. Primera tabla de idioma Ahora, abajo de BR = { ponemos una tabla con cualquier nombre, por ejemplo traduccion, que no será con { y }, será con ", ente las " ponemos un texto en BR, por ejemplo Olá, luego de la otra " ponemos una coma, ahora cerramos la tabla BR, cuando terminemos eso nos quedará así todo lo que hicimos: a dit : 3. Segunda tabla de idioma Bueno, esto será lo mismo, nomás que en vez de BR, pondremos ES, en vez de Olá pondremos Hola, ahora, cerramos la tabla ES y la tabla langs, cuando terminemos eso nos quedará así todo lo que hicimos: a dit : 4. Seleccionar un idioma Ahora que tenemos lista la traducción, haremos como una "tabla" que será necesaria para el idioma, haremos el function eventNewPlayer, haremos un TextArea que aparecerá al iniciar el script, que será para seleccionar un idioma y cuando lo hagamos con el texto que tú lo puedes editar como quieras, pero no el <a href='event:BR'>Portuguesse</a> - <a href='event:ES'>Español</a>, que será para seleccionar el idioma, al hacer todo lo que hicimos nos quedará así: a dit : 5. Callback Ahora que tenemos casi todo listo, nos falta el callback, también abrirá un TextArea, que sería la traducción completa, osea, haces clic en Portuguesse y aparecerá Olá, haces clic en Español y aparecerá Hola, al hacer esa funcion completa del callback tendremos esto: a dit : Al seguir todo el tutorial nos dará éste script: Script completo ^_^ Porfavor no comentes cosas como "Buen hilo! :O #pole" o cosas así, y porfavor léete todo el hilo antes de comentar. |
![]() ![]() « Citoyen » 1393966440000
| 0 | ||
Muy buen hilo, me gusto y me servira de utilidad. |
0 | ||
El problema con este script es que así como está solo sirve para mostrar el mensaje que estás poniendo en el cuadro. Un sistema de traducción tiene que permitir el fácil acceso al texto en la tabla en el idioma correspondiente a la comunidad. En salas normales las comunidades se pueden determinar por la comunidad de la sala, pero en las casas de tribu la sala es internacional por lo que se tiene que guardar la comunidad en una variable, cosa que este script no está haciendo. La tabla está bien organizada al menos. Solo que los nombres "traducion" y "traduccion" no representan su verdadero motivo. Lo ideal es que cada variable muestre en su nombre su finalidad y el texto contenido: langs={ ES={ bienvenida = "¡Hola %s, bienvenido a Transforcats!", despedida = "¡Gracias por jugar! Hasta pronto", gameOver = "Has perdido el juego ):" } EN={ bienvenida = "¡Hi %s, welcome to Transforcats!", despedida = "¡Thank you for playing! See you later", gameOver = "You've lost the game ):" } } Luego de eso el sistema para acceder a esos textos se puede implementar de varias maneras, pero la gracia es simplemente indicar el nombre del texto deseado y que automáticamente se entregue en la traducción establecida. Por ejemplo el usuario escoge su idioma español, y la guardamos en una variable: idioma = "es" Luego si quieremos mostrar el mensaje de bienvenida pondríamos: tfm.exec.chatMessage(langs[idioma].bienvenida, name) ^Y sin importar el idioma que el usuario haya escogido, langs[idioma].bienvenida devolverá el mensaje de bienvenida en su idioma. Claro que es un poco más complicado porque cada ratón debe seleccionar su propio idioma. Pero en el caso de salas públicas es mucho más sencillo porque podemos usar la comunidad en la que está jugando, la cual es devuelta por tfm.get.room.community. Y el sistema anterior igual puede hacerse con una función para ahorrarnos escribir toda la línea completa y resulta más fácil: function getTrans() return langs[tfm.get.room.community] or langs.ES end ^Aquí en caso de que no haya traducción, devuelve por defecto el idioma español. Luego para usarlo llamaríamos a la función así: tfm.exec.chatMessage(getTrans().bienvenida, name) Y también se podría adaptar para usarlo con casa de tribu y variable idioma fácilmente: function getTrans() return langs[idioma] or langs.ES end |
![]() ![]() « Censeur » 1393978440000
| 0 | ||
Hinakagiyama a dit : Gracias, sólo que no sabía como hacer eso que explicaste q-q |