Files
coffee_crisis_arcade_edition/source/lang.h

53 lines
1.5 KiB
C++

#pragma once
#include <string> // 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);
}