12345678910111213141516171819202122232425262728293031323334353637 |
- #pragma once
- #ifndef SNAKE_TRANSLATIONMANAGER_HXX
- #define SNAKE_TRANSLATIONMANAGER_HXX
- #include <array>
- #include <filesystem>
- #include <string>
- #include <unordered_map>
- enum class SupportedLanguage {
- English = 0,
- German,
- NUM_SUPPORTED_LANGUAGES,
- };
- class TranslationManager final {
- public:
- static TranslationManager& instance();
- void load(std::filesystem::path const& filename);
- [[nodiscard]] std::string get_translation(std::string const& key) const;
- private:
- TranslationManager() noexcept;
- SupportedLanguage current_language_;
- std::unordered_map<
- std::string,
- std::array<std::string, static_cast<std::size_t>(SupportedLanguage::NUM_SUPPORTED_LANGUAGES)>
- > translations_;
- };
- #endif // SNAKE_TRANSLATIONMANAGER_HXX
|