JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
Localization.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <filesystem>
7#include <string>
8#include <string_view>
9#include <unordered_map>
10
15
16namespace hmi {
17
30public:
36 explicit Localization(std::filesystem::path directory = {});
37
45 [[nodiscard]] static std::unordered_map<std::string, std::string> parseCatalog(
46 std::string_view content);
47
53 void setDefaultCatalog(std::string language,
54 std::unordered_map<std::string, std::string> strings);
55
61 void setActiveCatalog(std::string language,
62 std::unordered_map<std::string, std::string> strings);
63
69 [[nodiscard]] bool loadDefaultLanguage(const std::string& language);
70
77 [[nodiscard]] bool loadLanguage(const std::string& language);
78
84 [[nodiscard]] std::string text(std::string_view key) const;
85
87 [[nodiscard]] const std::string& activeLanguage() const noexcept {
88 return _activeLanguage;
89 }
90
91private:
93 [[nodiscard]] static bool readFile(const std::filesystem::path& path, std::string& out);
94
95 std::filesystem::path _directory;
96 std::string _defaultLanguage;
97 std::string _activeLanguage;
98 std::unordered_map<std::string, std::string> _defaultStrings;
99 std::unordered_map<std::string, std::string> _activeStrings;
100};
101
102} // namespace hmi
void setDefaultCatalog(std::string language, std::unordered_map< std::string, std::string > strings)
Définit la langue par défaut (source de repli) et l'active dessus.
Definition Localization.cpp:73
bool loadDefaultLanguage(const std::string &language)
Charge la langue par défaut depuis <directory>/<language>.lang et l'active.
Definition Localization.cpp:90
bool loadLanguage(const std::string &language)
Charge la langue active depuis <directory>/<language>.lang.
Definition Localization.cpp:100
static std::unordered_map< std::string, std::string > parseCatalog(std::string_view content)
Analyse un contenu clé = valeur en table de traductions.
Definition Localization.cpp:38
std::string text(std::string_view key) const
Résout le texte associé à key.
Definition Localization.cpp:114
void setActiveCatalog(std::string language, std::unordered_map< std::string, std::string > strings)
Définit la langue active à partir d'une table déjà analysée.
Definition Localization.cpp:83
Localization(std::filesystem::path directory={})
Construit un catalogue vide.
Definition Localization.cpp:31
const std::string & activeLanguage() const noexcept
Definition Localization.h:87
std::filesystem::path _directory
Definition Localization.h:95
std::string _activeLanguage
Definition Localization.h:97
std::unordered_map< std::string, std::string > _activeStrings
Definition Localization.h:99
std::unordered_map< std::string, std::string > _defaultStrings
Definition Localization.h:98
std::string _defaultLanguage
Definition Localization.h:96
static bool readFile(const std::filesystem::path &path, std::string &out)
Lit tout le contenu d'un fichier texte.
Definition Localization.cpp:126
Definition AudioEngine.cpp:15