feat(locale): sistema i18n YAML amb català i anglès
This commit is contained in:
@@ -20,6 +20,7 @@ namespace ConfigYaml {
|
||||
Config::PlayerBindings& player1 = engine_config.player1;
|
||||
Config::PlayerBindings& player2 = engine_config.player2;
|
||||
bool& console = engine_config.console;
|
||||
std::string& locale = engine_config.locale;
|
||||
} // namespace
|
||||
|
||||
// ========== FUNCIONS AUXILIARS PER CONVERSIÓ DE CONTROLES ==========
|
||||
@@ -208,6 +209,9 @@ namespace ConfigYaml {
|
||||
rendering.render_width = Defaults::Rendering::RENDER_WIDTH_DEFAULT;
|
||||
rendering.render_height = Defaults::Rendering::RENDER_HEIGHT_DEFAULT;
|
||||
|
||||
// Idioma
|
||||
locale = "ca";
|
||||
|
||||
// Version
|
||||
version = std::string(Project::VERSION);
|
||||
}
|
||||
@@ -446,6 +450,16 @@ namespace ConfigYaml {
|
||||
loadPlayer1ControlsFromYaml(yaml);
|
||||
loadPlayer2ControlsFromYaml(yaml);
|
||||
|
||||
// Idioma (opcional; valors admesos: "ca" | "en")
|
||||
if (yaml.contains("locale")) {
|
||||
try {
|
||||
auto val = yaml["locale"].get_value<std::string>();
|
||||
locale = (val == "ca" || val == "en") ? val : "ca";
|
||||
} catch (...) {
|
||||
locale = "ca";
|
||||
}
|
||||
}
|
||||
|
||||
if (console) {
|
||||
std::cout << "Config carregada correctament desde: " << config_file_path
|
||||
<< '\n';
|
||||
@@ -532,6 +546,9 @@ namespace ConfigYaml {
|
||||
file << " render_height: " << rendering.render_height
|
||||
<< " # Parell amb render_width (720, 900, 1080, 1440, 2160)\n\n";
|
||||
|
||||
file << "# IDIOMA\n";
|
||||
file << "locale: " << locale << " # ca | en\n\n";
|
||||
|
||||
// Guardar controls de jugadors
|
||||
savePlayer1ControlsToYaml(file);
|
||||
savePlayer2ControlsToYaml(file);
|
||||
|
||||
Reference in New Issue
Block a user