#include #include class translation_c { public: static std::vector ms_available_translations; public: std::string m_iso639_2_code, m_unix_locale, m_windows_locale, m_windows_locale_sysname, m_english_name, m_translated_name; bool m_line_breaks_anywhere; int m_language_id, m_sub_language_id; translation_c(std::string const &iso639_2_code, std::string const &unix_locale, std::string const &windows_locale, std::string const &windows_locale_sysname, std::string const &english_name, std::string const &translated_name, bool line_breaks_anywhere, int language_id, int sub_language_id); static void initialize_available_translations(); }; std::vector translation_c::ms_available_translations; translation_c::translation_c(std::string const &iso639_2_code, std::string const &unix_locale, std::string const &windows_locale, std::string const &windows_locale_sysname, std::string const &english_name, std::string const &translated_name, bool line_breaks_anywhere, int language_id, int sub_language_id) : m_iso639_2_code{iso639_2_code} , m_unix_locale{unix_locale} , m_windows_locale{windows_locale} , m_windows_locale_sysname{windows_locale_sysname} , m_english_name{english_name} , m_translated_name{translated_name} , m_line_breaks_anywhere{line_breaks_anywhere} , m_language_id{language_id} , m_sub_language_id{sub_language_id} { } void translation_c::initialize_available_translations() { ms_available_translations.emplace_back("eng", "en_US", "en", "english", "English", "English", false, 0x0009, 0x00); ms_available_translations.emplace_back("cat", "ca_ES", "ca", "catalan", "Catalan", "Català", false, 0x0003, 0x00); ms_available_translations.emplace_back("cze", "cs_CZ", "cs", "czech", "Czech", "Čeština", false, 0x0005, 0x00); ms_available_translations.emplace_back("ger", "de_DE", "de", "german", "German", "Deutsch", false, 0x0007, 0x00); // 4 ms_available_translations.emplace_back("spa", "es_ES", "es", "spanish", "Spanish", "Español", false, 0x000a, 0x00); ms_available_translations.emplace_back("baq", "eu_ES", "eu", "basque", "Basque", "Euskara", false, 0x002d, 0x00); ms_available_translations.emplace_back("fre", "fr_FR", "fr", "french", "French", "Français", false, 0x000c, 0x00); ms_available_translations.emplace_back("ita", "it_IT", "it", "italian", "Italian", "Italiano", false, 0x0010, 0x00); // 8 ms_available_translations.emplace_back("jpn", "ja_JP", "ja", "japanese", "Japanese", "日本語", true, 0x0011, 0x00); ms_available_translations.emplace_back("lit", "lt_LT", "lt", "lithuanian", "Lithuanian", "Lietuvių", false, 0x0027, 0x00); ms_available_translations.emplace_back("dut", "nl_NL", "nl", "dutch", "Dutch", "Nederlands", false, 0x0013, 0x00); ms_available_translations.emplace_back("pol", "pl_PL", "pl", "polish", "Polish", "Polski", false, 0x0015, 0x00); // 12 ms_available_translations.emplace_back("por", "pt_BR", "pt_BR", "portuguese", "Brazilian Portuguese", "Português do Brasil", false, 0x0016, 0x01); ms_available_translations.emplace_back("por", "pt_PT", "pt", "portuguese", "Portuguese", "Português", false, 0x0016, 0x02); ms_available_translations.emplace_back("rus", "ru_RU", "ru", "russian", "Russian", "Русский", false, 0x0019, 0x00); ms_available_translations.emplace_back("srp", "sr_RS", "sr_RS", "serbian", "Serbian Cyrillic", "Српски", false, 0x001a, 0x03); // 16 // If any of the following lines is active (no matter which one) the crash happens. // ms_available_translations.emplace_back("srp", "address@hidden", "address@hidden", "serbian", "Serbian Latin", "Srpski", false, 0x001a, 0x02); // ms_available_translations.emplace_back("swe", "sv_SE", "sv", "swedish", "Swedish", "Svenska", false, 0x001d, 0x01); // ms_available_translations.emplace_back("tur", "tr_TR", "tr", "turkish", "Turkish", "Türkçe", false, 0x001f, 0x00); // ms_available_translations.emplace_back("ukr", "uk_UA", "uk", "ukrainian", "Ukrainian", "Український", false, 0x0022, 0x00); // ms_available_translations.emplace_back("chi", "zh_CN", "zh_CN", "chinese", "Chinese Simplified", "简体中文", true, 0x0004, 0x02); // ms_available_translations.emplace_back("chi", "zh_TW", "zh_TW", "chinese", "Chinese Traditional", "繁體中文", true, 0x0004, 0x01); } int main(int, char**) { translation_c::initialize_available_translations(); for (auto const &tr : translation_c::ms_available_translations) std::cout << tr.m_iso639_2_code << std::endl; return 0; }