Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Sty14 en Noviembre 04, 2014, 12:26:04 AM

Título: Traduccion
Publicado por: Sty14 en Noviembre 04, 2014, 12:26:04 AM
Como hago para saber como hacer esto por favor diganme

https://marketplace.yoyogames.com/assets/317/multilanguage-and-translate

Y por favor no comienzen que si su juego es famoso o algo asi  :) :) ;) ;D
Título: Re:Traduccion
Publicado por: Sty14 en Noviembre 04, 2014, 01:36:13 AM
Cita de: Sty14 en Noviembre 04, 2014, 12:26:04 AM
Como hago para saber como hacer esto por favor diganme

https://marketplace.yoyogames.com/assets/317/multilanguage-and-translate

Y por favor no comienzen que si su juego es famoso o algo asi  :) :) ;) ;D

Ayuden
Título: Re:Traduccion
Publicado por: TheSandBoxMKG en Noviembre 04, 2014, 01:39:21 AM
Cita de: Sty14 en Noviembre 04, 2014, 01:36:13 AM
Cita de: Sty14 en Noviembre 04, 2014, 12:26:04 AM
Como hago para saber como hacer esto por favor diganme

https://marketplace.yoyogames.com/assets/317/multilanguage-and-translate

Y por favor no comienzen que si su juego es famoso o algo asi  :) :) ;) ;D

Ayuden

En concepto, ello sacan los strings de un archivo (determinado por el idioma elegido) para luego dibujarlo en el juego.
Título: Re:Traduccion
Publicado por: Sty14 en Noviembre 04, 2014, 03:06:23 AM
Cita de: TheSandBoxMKG en Noviembre 04, 2014, 01:39:21 AM
Cita de: Sty14 en Noviembre 04, 2014, 01:36:13 AM
Cita de: Sty14 en Noviembre 04, 2014, 12:26:04 AM
Como hago para saber como hacer esto por favor diganme

https://marketplace.yoyogames.com/assets/317/multilanguage-and-translate

Y por favor no comienzen que si su juego es famoso o algo asi  :) :) ;) ;D

Pero como hago eso

Ayuden

En concepto, ello sacan los strings de un archivo (determinado por el idioma elegido) para luego dibujarlo en el juego.


como hago eso
Título: Re:Traduccion
Publicado por: ivn_eze en Noviembre 04, 2014, 03:32:15 AM
Eso es un producto pago del marketplace que cuesta 1.99 dolares.El codigo que ves ahí es una muestra.Para acceder al archivo y poder usarlo tenés que comprarlo.

Ahora, como se que talvez lo quieras sin costo,te tengo una buena noticia:
Hacer eso tampoco es taaan dificil con un poco de lógica.
Un EJEMPLO
CitarSimplemente creas una variable (llamemosle Idiom_X ) cuyo valor sea así:

1 = inglés
2 = español
3 = portugues

También vamos a crear 3 botones (o uno solo, depende como lo codees):
-El primero seteará Idiom_X a 1, osea Inglés
-El segundo a 2, osea Español
-El tercero a 3, osea Portugués

Bueno si no deseas que haya que poner el idioma cada vez que se entra guarda la variable en un .ini (hay muchos tutoriales en internet y en CGM, busca)

Ahora bien, para que esto funcione todos los textos tienen que ser dibujados con draw text

y bueno, por cada texto tendremos que hacer 3 (uno en cada idioma) acompañados de la sentencia if, osea:

Supongamos que el texto es "jugar"

-If Idiom_X es igual a 1
- draw text "Play"
-If Idiom_X es igual a 2
-draw text "Jugar"
-If Idiom_X es igual a 3
-draw text "Jogar"
Y así con todos los textos. Y si nescesitas traducir texto de imágenes , has lo mismo, pero en vez de draw text, seria set sprite o draw image, segun el caso.
La única diferencia es que el otro método cargaba el texto de un archivo de google drive y lo pasaba por google traductor, mi metodo requiere cargar todas las traducciones a mano pero posee la ventaja de ser offline.
Espero haberte ayudado  :)

PD: En la página dice que ese asset solo era apropiado para mayores de 4 años.
Título: Re:Traduccion
Publicado por: kostra en Noviembre 04, 2014, 10:17:44 AM
yo ya pensé una vez hacer algo así en algún juego, es un poco pesado de hacer, pero así cualquiera podría hacer traducciones. Mi idea era con un ini poner todas y cada unas de las frases o palabras en menus separadas en keys y el archivo ini llamarse por ejemplo ES.lang (recuerda que sea cual sea la extensión, sigue siendo un ini) y desde el juego solo tendría que manejar una sola variable que sería la del nombre del archivo por ejemplo si el usuario elige español, global.languaje = "ES" si elige aleman, global.lang = "DE"

entonces al abrir el ini del idioma, pondría algo como así: ini_open(working_directory+"\languages\"+string(global.lang)+".lang");
y para cada frase o palabra que use al crear el juego, en vez de simplemente poner algo como por ejemplo:
show_message("Hola mundo!");

lo que haría sería:
ini_open(working_directory+"\languages\"+string(global.lang)+".lang");
msg = ini_read_string("showmsg","hello",1);
show_message(string(msg));
ini_close();


sí, es un poco cacao, pero serviría y sería util para que todos fueran libres de hacer traducciones xd
Título: Re:Traduccion
Publicado por: TheSandBoxMKG en Noviembre 04, 2014, 06:00:39 PM
Este está bueno, solo que es más rígido que la idea de kostra:
[gml]var filetext,i;
globalvar stringlist;
filetext=file_text_open_read("espanol.lng")
i=0
do
{
    stringlist=file_text_read_string(filetext)
    i+=1
}
until file_text_eof(filetext)[/gml]
espanol.lng es el archivo del idioma. Ahí guardas todas las frases en tal idioma.

para poner un texto sería:
[gml]draw_text(x,y,stringlist[7])[/gml]
7 es el numero de línea del archivo (empezando desde 0), reemplazalo por el valor que quieras
Título: Re:Traduccion
Publicado por: Killer en Noviembre 04, 2014, 09:50:10 PM
Usando la función http_get se puede enviar un texto al traductor de google y recibir una string en formato json con el texto traducido y algunos datos adicionales, usando las funciones de strings del GM dicha string se puede limpiar para contener solo el texto traducido.

No sé si este es el método que el creador de esa extensión uso, pero es una manera de hacerlo.
Título: Re:Traduccion
Publicado por: kostra en Noviembre 04, 2014, 10:32:16 PM
Cita de: Killer en Noviembre 04, 2014, 09:50:10 PM
Usando la función http_get se puede enviar un texto al traductor de google y recibir una string en formato json con el texto traducido y algunos datos adicionales, usando las funciones de strings del GM dicha string se puede limpiar para contener solo el texto traducido.

No sé si este es el método que el creador de esa extensión uso, pero es una manera de hacerlo.
si usa google translator, en vez de un juego traducido le saldrá una cagada xDD

PD: sandbox, me has pillao manía xd
Título: Re:Traduccion
Publicado por: Killer en Noviembre 04, 2014, 10:44:06 PM
Cita de: kostra en Noviembre 04, 2014, 10:32:16 PM
Cita de: Killer en Noviembre 04, 2014, 09:50:10 PM
Usando la función http_get se puede enviar un texto al traductor de google y recibir una string en formato json con el texto traducido y algunos datos adicionales, usando las funciones de strings del GM dicha string se puede limpiar para contener solo el texto traducido.

No sé si este es el método que el creador de esa extensión uso, pero es una manera de hacerlo.
si usa google translator, en vez de un juego traducido le saldrá una cagada xDD

PD: sandbox, me has pillao manía xd

Entonces supongo que no te molestaste en ver el enlace que el dejo en el primer post, el enlace a la extensión que traduce automáticamente de cualquier idioma a cualquier idioma, el enlace a la extensión que explícitamente dice que utiliza Google Translate, el enlace que él dice es lo que quiere hacer:

https://marketplace.yoyogames.com/assets/317/multilanguage-and-translate

Ya sabes, ESE enlace.