diff options
Diffstat (limited to 'src/locales/locales.cpp')
| -rw-r--r-- | src/locales/locales.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/locales/locales.cpp b/src/locales/locales.cpp new file mode 100644 index 0000000..6ec1233 --- /dev/null +++ b/src/locales/locales.cpp @@ -0,0 +1,29 @@ +#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!]"; +}
\ No newline at end of file |
