Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

UI multilenguaje y problemas con tildes

Iniciado por rogerdv, Abril 15, 2016, 06:07:46 PM

Tema anterior - Siguiente tema
Estoy empezando a  hacer pruebas para implementar localización en el proyecto y conseguí algunos resultados con una sencilla clase que programé, pero me di cuenta de dos problemas: no me salen las letras con tilde en el UI. Eso puede deberse a que la fuente incluida no incluye dichos caracteres, probé con otra y tampoco salieron. Alguien me puede recomendar alguan fuente que funcione correctamente?Lo segundo es que no sé como lograr que los textos en los elelemntos de UI sean traducibles. En cualquier texto creado vía código me es muy sencillo hacer UIText.text = i18n.Get("text_id"); y eso me devuelve el texto en el idioma activo. No se me ocurre otra solución que asignarle a cada elemento de la interfaz un script que cambie el texto, pero tengo la impresión de que esa no es la solución más óptima. 

http://dsgp.blogspot.com">Divagaciones sobre programación y juegos



Abril 15, 2016, 06:22:27 PM #1 Ultima modificación: Abril 15, 2016, 10:20:28 PM por pioj
La fuente que yo uso es la que trae unity por defecto, te explico el por qué. En internet hay muchas webs de fuentes que suben fuentes sin importarles derechos de autor ni nada lo cual puede llevarte a una denuncia. Si usas la que trae unity, con ponerla en negrita queda bastante bonita y no te arriesgas a tanta mierda. Sobre traducir, yo siempre lo he hecho con PlayerPrefs, pues es simple, rápido y se guardará el idioma. Te pongo un ejemplo. 
var texto : UI.Text;
var traduccion : String[];
if(PlayerPrefs.GetInt("idioma") == 0){
    texto.text = traduccion[0];
}
if(PlayerPrefs.GetInt("idioma") == 1){
  texto.text = traduccion[1];
}
if(PlayerPrefs.GetInt("idioma") == 2){
  texto.text = traduccion[2];
}
 Así consigues variedad de idiomas bastante simple. Te puedes ahorrar la variable texto si pones el script dentro del gameObject UI text, y con un getcomponent.

Si grabas los ficheros de texto en una codificación compatible, Unity los carga con tildes correctamente.  A la hora de guardar un fichero text, abajo en el diálogo, hay una opción para elegir su codificación..

Yo para estos casos y en general para los textos uso xml, se sigue usando esto?

Notepad->Guardar como->Codificación (inferior derecha)->UTF-8

Etiquetas: