51 lines
1.4 KiB
C++
51 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace Lang
|
|
{
|
|
// --- Códigos de idioma soportados ---
|
|
enum class Code : int
|
|
{
|
|
SPANISH = 0,
|
|
VALENCIAN = 1,
|
|
ENGLISH = 2
|
|
};
|
|
|
|
// Estructura que representa un idioma
|
|
struct Language
|
|
{
|
|
Code code; // Código que identifica al idioma
|
|
std::string name; // Nombre que identifica el idioma
|
|
std::string file_name; // Nombre del fichero con los textos
|
|
|
|
Language(Code c, const std::string &n, const std::string &fn)
|
|
: code(c), name(n), file_name(fn) {}
|
|
};
|
|
|
|
// Carga los textos desde el fichero JSON especificado
|
|
bool loadFromFile(const std::string &file_path);
|
|
|
|
// Obtiene el texto por clave
|
|
std::string getText(const std::string &key);
|
|
|
|
// Obtiene el código del siguiente idioma (circular)
|
|
Code getNextLangCode(Code current_lang);
|
|
|
|
// Obtiene el idioma correspondiente al código proporcionado
|
|
Language getLanguage(Code code);
|
|
|
|
// Devuelve el código de un idioma a partir de un nombre
|
|
Code getCodeFromName(const std::string& name);
|
|
|
|
// Actualiza los nombres de los idiomas
|
|
void updateLanguageNames();
|
|
|
|
// Obtiene el nombre del fichero de textos asociado a un código de idioma
|
|
std::string getLanguageFileName(Code code);
|
|
|
|
// Establece el idioma actual
|
|
void setLanguage(Code lang);
|
|
}
|