Ejemplo n.º 1
0
 public static void NoEsEsaLlave(string llaveListaP, string llaveSubListaP, TraducirTextoIdioma idiomaP) =>
 Debug.LogError(
     Titulo +
     Titulo_NoEsEsaLlave +
     string.Format(
         "El idioma no fue encontrado en la lista. " +
         "El idioma es {0}, la llave de la sublista es {1} y la llave de la lista es {2}.", idiomaP.ToString(), llaveSubListaP, llaveListaP)
     );
Ejemplo n.º 2
0
 public static void LlaveRepetida(string llaveListaP, string llaveSubListaP, TraducirTextoIdioma idiomaP) =>
 Debug.LogError(
     Titulo +
     Titulo_NoEsEsaLlave +
     string.Format(
         "Se intentó agregar un idioma repetido. " +
         "El idioma es {0}, la llave de la sublista es {1} y la llave de la lista es {2}.", idiomaP.ToString(), llaveSubListaP, llaveListaP)
     );
Ejemplo n.º 3
0
    /// <summary>
    /// Obtiene la traducción correcta, en base a las llaves ya agregadas.
    /// </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 la traducción.</returns>
    public string ObtenerTraduccion(string llaveListaP, string llaveSubListaP, TraducirTextoIdioma idiomaP)
    {
        if (!SonLlavesEncontradasException(llaveListaP, llaveSubListaP, idiomaP))
        {
            return("");
        }

        return(lista[llaveListaP][llaveSubListaP][idiomaP]);
    }
Ejemplo n.º 4
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);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Verifica si una llave se encuentra en la lista.
 /// </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 SonLlavesEncontradas(string llaveListaP, string llaveSubListaP, TraducirTextoIdioma idiomaP)
 {
     if (!lista.ContainsKey(llaveListaP))
     {
         return(false);
     }
     else if (!lista[llaveListaP].ContainsKey(llaveSubListaP))
     {
         return(false);
     }
     else if (!lista[llaveListaP][llaveSubListaP].ContainsKey(idiomaP))
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 6
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);
 }
Ejemplo n.º 7
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);
        }
    }