37 lines
812 B
C++
37 lines
812 B
C++
#include "i18n.h"
|
|
#include "i18n_en.h"
|
|
#include "i18n_de.h"
|
|
#include "i18n_fr.h"
|
|
#include "i18n_tr.h"
|
|
#include "i18n_es.h"
|
|
#include "i18n_it.h"
|
|
#include "settings_store.h"
|
|
|
|
namespace I18n {
|
|
|
|
namespace {
|
|
const char* const* TABLES[LANG_COUNT] = {
|
|
I18N_EN, I18N_DE, I18N_FR, I18N_TR, I18N_ES, I18N_IT
|
|
};
|
|
|
|
const char* const LANGUAGE_NAMES[LANG_COUNT] = {
|
|
"English", "Deutsch", "Français", "Türkçe", "Español", "Italiano"
|
|
};
|
|
}
|
|
|
|
const char* t(StringId id) {
|
|
uint8_t lang = SettingsStore::language();
|
|
if (lang >= LANG_COUNT) lang = 0;
|
|
|
|
uint8_t idx = (uint8_t)id;
|
|
if (idx >= (uint8_t)StringId::COUNT) return "?";
|
|
|
|
return TABLES[lang][idx];
|
|
}
|
|
|
|
const char* languageName(uint8_t index) {
|
|
if (index >= LANG_COUNT) return "?";
|
|
return LANGUAGE_NAMES[index];
|
|
}
|
|
|
|
} |