#pragma once #include // Para string, basic_string 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); // Devuelve el nombre de un idioma a partir de un código std::string getNameFromCode(Code code); // 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); }