コード例 #1
0
    /// <summary>
    /// Genera un archivo de texto que sirve como plantilla para la lectura de archivos.
    /// </summary>
    /// <param name="carpetaP">Dirección de la carpeta en donde se creará el archivo.</param>
    public static void GenerarPlantilla(string carpetaP)
    {
        string ruta = carpetaP + "plantillaTraducirTexto.txt";

        try
        {
            StreamWriter sw = new StreamWriter(ruta);
            sw.WriteLine("#-----------------------------------------");
            sw.WriteLine("# Plantilla de ejemplo version " + versionOriginal);
            sw.WriteLine("#-----------------------------------------");
            sw.WriteLine(".Version:" + versionOriginal);
            sw.WriteLine("# Todo se maneja con tabulaciones");
            sw.WriteLine("# Idiomas:");
            sw.WriteLine("# Español, English, Français, Português, Deutsche");
            sw.WriteLine("{");
            sw.WriteLine("\tLlave Elemento Principal");
            sw.WriteLine("\t\tSubElemento");
            sw.WriteLine("\t\t\tEspañol");
            sw.WriteLine("\t\t\t\tEsto es la traduccion en español.");
            sw.WriteLine("\t\t\tEnglish");
            sw.WriteLine("\t\t\t\tThis is the English translation.");
            sw.WriteLine("\t\tSubElemento2");
            sw.WriteLine("\t\t\tDeutsche");
            sw.WriteLine("\t\t\t\tDies ist die englische Übersetzung.");
            sw.WriteLine("}");
            sw.Close();
        }
        catch
        {
            TraducirTextoPseudoException.ArchivoNoGenerado(ruta);
        }
    }
コード例 #2
0
 /// <summary>
 /// Verifica si una llave se encuentra en la lista. En caso de no encontrarlo, lanzará una PseudoExcepcion.
 /// </summary>
 /// <param name="llaveListaP">Llave de la lista principal a buscar.</param>
 /// <returns>Retorna true si las llaves fueron encontradas en la lista.</returns>
 private bool SonLlavesEncontradasException(string llaveListaP)
 {
     if (!lista.ContainsKey(llaveListaP))
     {
         TraducirTextoPseudoException.NoEsEsaLlave(llaveListaP);
         return(false);
     }
     return(true);
 }
コード例 #3
0
 /// <summary>
 /// Agrega la traducción de un idioma, en base a un elemento de la sublista y elemento de la lista principal.
 /// </summary>
 /// <param name="llaveListaP">Llave única ya agregada a la lista principal.</param>
 /// <param name="llaveSubListaP">Llave única ya agregada a la sublista.</param>
 /// <param name="idiomaP">Llave única que tendrá el idioma.</param>
 /// <param name="traduccionP">Mensaje traducido.</param>
 /// <returns>Retorna la llave agregada como parametro.</returns>
 public string AgregarTraduccion(string llaveListaP, string llaveSubListaP, TraducirTextoIdioma idiomaP, string traduccionP)
 {
     if (SonLlavesEncontradas(llaveListaP, llaveSubListaP, idiomaP))
     {
         TraducirTextoPseudoException.LlaveRepetida(llaveListaP, llaveSubListaP, idiomaP);
     }
     else
     {
         lista[llaveListaP][llaveSubListaP].Add(idiomaP, traduccionP);
     }
     return(traduccionP);
 }
コード例 #4
0
 /// <summary>
 /// Agrega un elemento a una sublista, en base a un elemento de la lista principal.
 /// </summary>
 /// <param name="llaveListaP">Llave única ya agregada a la lista principal.</param>
 /// <param name="llaveSubListaP">Llave única que tendrá la sublista.</param>
 /// <returns>Retorna la llave agregada como parametro.</returns>
 public string AgregarSubLista(string llaveListaP, string llaveSubListaP)
 {
     if (SonLlavesEncontradas(llaveListaP, llaveSubListaP))
     {
         TraducirTextoPseudoException.LlaveRepetida(llaveListaP, llaveSubListaP);
     }
     else
     {
         lista[llaveListaP].Add(llaveSubListaP, new Dictionary <TraducirTextoIdioma, string>());
     }
     return(llaveSubListaP);
 }
コード例 #5
0
 /// <summary>
 /// Verifica si una llave se encuentra en la lista. En caso de no encontrarlo, lanzará una PseudoExcepcion.
 /// </summary>
 /// <param name="llaveListaP">Llave de la lista principal a buscar.</param>
 /// <param name="llaveSubListaP">Llave de la sublista a buscar.</param>
 /// <param name="idiomaP">Llave de los idiomas a buscar.</param>
 /// <returns>Retorna true si las llaves fueron encontradas en la lista.</returns>
 private bool SonLlavesEncontradasException(string llaveListaP, string llaveSubListaP, TraducirTextoIdioma idiomaP)
 {
     if (!lista.ContainsKey(llaveListaP))
     {
         TraducirTextoPseudoException.NoEsEsaLlave(llaveListaP);
         return(false);
     }
     else if (!lista[llaveListaP].ContainsKey(llaveSubListaP))
     {
         TraducirTextoPseudoException.NoEsEsaLlave(llaveListaP, llaveSubListaP);
         return(false);
     }
     else if (!lista[llaveListaP][llaveSubListaP].ContainsKey(idiomaP))
     {
         TraducirTextoPseudoException.NoEsEsaLlave(llaveListaP, llaveSubListaP, idiomaP);
         return(false);
     }
     return(true);
 }
コード例 #6
0
    /// <summary>
    /// Lee un archivo y crea todas las instancias de la lista.
    /// </summary>
    /// <param name="filepathP">Dirección en donde se encuentra el archivo.</param>
    /// <param name="isPersistentDataPath">En caso de ser verdadero, la ruta se leerá apartir de la carpeta persistent de Unity.</param>
    public void LeerArchivo(string filepathP, bool isPersistentDataPath)
    {
        //string urlP = isPersistentDataPath ? Application.persistentDataPath + "/" + filepathP : filepathP;
        string urlP = filepathP;

        try
        {
            StreamReader sr     = new StreamReader(urlP);
            string       linea  = sr.ReadLine();
            byte         estado = 0;

            while (estado != 2 && linea != null && linea != "")
            {
                if (estado == 0)
                {
                    switch (linea[0])
                    {
                    case '{':
                        estado = 1;
                        break;

                    case '.':
                        OpcionesArchivo(linea.Substring(1));
                        break;

                    default:
                        break;
                    }
                }
                else if (estado == 1)
                {
                    if (linea[0] == '}')
                    {
                        estado = 2;
                    }
                    else if (linea.Contains("\t\t\t\t"))
                    {
                        AgregarTraduccion(keyActual_lista, keyActual_sublista, keyActual_idioma, linea.Substring(4));
                    }
                    else if (linea.Contains("\t\t\t"))
                    {
                        keyActual_idioma = SetIdioma(linea.Substring(3));
                    }
                    else if (linea.Contains("\t\t"))
                    {
                        keyActual_sublista = AgregarSubLista(keyActual_lista, linea.Substring(2));
                    }
                    else if (linea.Contains("\t"))
                    {
                        keyActual_lista = AgregarLista(linea.Substring(1));
                    }
                }
                linea = sr.ReadLine();
            }

            sr.Close();
        }
        catch
        {
            TraducirTextoPseudoException.ArchivoNoEncontrado(filepathP);
        }
    }