#include #include #include "locales.hpp" locale_map locales[] = { {"en", en_locales, en_locale_count}, // Add new locales here. }; const int locale_map_count = sizeof(locales) / sizeof(locales[0]); locale_map g_locale = locales[0]; // Default to english. void set_locale(const char* key) { for (int i = 0; i < locale_map_count; ++i) { if (strcmp(locales[i].lang_code, key) == 0) { g_locale = locales[i]; } } } const char* localize(const char* key) { for (int i = 0; i < g_locale.entry_count; ++i) { if (strcmp(g_locale.entries[i].key, key) == 0) { return g_locale.entries[i].value; } } return "[!MISSING!]"; }