add language native names
This commit is contained in:
+151
-153
@@ -299,162 +299,160 @@ RString ConvertUTF8ToACP( RString s )
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static map<RString,RString> g_mapLangToName2Letter;
|
// native forms: http://people.w3.org/rishida/names/languages.html
|
||||||
static void InitLanguages()
|
|
||||||
{
|
|
||||||
if( !g_mapLangToName2Letter.empty() )
|
|
||||||
return;
|
|
||||||
|
|
||||||
{
|
|
||||||
map<RString,RString> &m = g_mapLangToName2Letter;
|
|
||||||
m["AA"] = "Afar";
|
|
||||||
m["AB"] = "Abkhazian";
|
|
||||||
m["AF"] = "Afrikaans";
|
|
||||||
m["AM"] = "Amharic";
|
|
||||||
m["AR"] = "Arabic";
|
|
||||||
m["AS"] = "Assamese";
|
|
||||||
m["AY"] = "Aymara";
|
|
||||||
m["AZ"] = "Azerbaijani";
|
|
||||||
m["BA"] = "Bashkir";
|
|
||||||
m["BE"] = "Byelorussian";
|
|
||||||
m["BG"] = "Bulgarian";
|
|
||||||
m["BH"] = "Bihari";
|
|
||||||
m["BI"] = "Bislama";
|
|
||||||
m["BN"] = "Bengali";
|
|
||||||
m["BO"] = "Tibetan";
|
|
||||||
m["BR"] = "Breton";
|
|
||||||
m["CA"] = "Catalan";
|
|
||||||
m["CO"] = "Corsican";
|
|
||||||
m["CS"] = "Czech";
|
|
||||||
m["CY"] = "Welsh";
|
|
||||||
m["DA"] = "Danish";
|
|
||||||
m["DE"] = "German";
|
|
||||||
m["DZ"] = "Bhutani";
|
|
||||||
m["EL"] = "Greek";
|
|
||||||
m["EN"] = "English";
|
|
||||||
m["EO"] = "Esperanto";
|
|
||||||
m["ES"] = "Spanish";
|
|
||||||
m["ET"] = "Estonian";
|
|
||||||
m["EU"] = "Basque";
|
|
||||||
m["FA"] = "Persian";
|
|
||||||
m["FI"] = "Finnish";
|
|
||||||
m["FJ"] = "Fiji";
|
|
||||||
m["FO"] = "Faeroese";
|
|
||||||
m["FR"] = "French";
|
|
||||||
m["FY"] = "Frisian";
|
|
||||||
m["GA"] = "Irish";
|
|
||||||
m["GD"] = "Gaelic";
|
|
||||||
m["GL"] = "Galician";
|
|
||||||
m["GN"] = "Guarani";
|
|
||||||
m["GU"] = "Gujarati";
|
|
||||||
m["HA"] = "Hausa";
|
|
||||||
m["HI"] = "Hindi";
|
|
||||||
m["HR"] = "Croatian";
|
|
||||||
m["HU"] = "Hungarian";
|
|
||||||
m["HY"] = "Armenian";
|
|
||||||
m["IA"] = "Interlingua";
|
|
||||||
m["IE"] = "Interlingue";
|
|
||||||
m["IK"] = "Inupiak";
|
|
||||||
m["IN"] = "Indonesian";
|
|
||||||
m["IS"] = "Icelandic";
|
|
||||||
m["IT"] = "Italian";
|
|
||||||
m["IW"] = "Hebrew";
|
|
||||||
m["JA"] = "Japanese";
|
|
||||||
m["JI"] = "Yiddish";
|
|
||||||
m["JW"] = "Javanese";
|
|
||||||
m["KA"] = "Georgian";
|
|
||||||
m["KK"] = "Kazakh";
|
|
||||||
m["KL"] = "Greenlandic";
|
|
||||||
m["KM"] = "Cambodian";
|
|
||||||
m["KN"] = "Kannada";
|
|
||||||
m["KO"] = "Korean";
|
|
||||||
m["KS"] = "Kashmiri";
|
|
||||||
m["KU"] = "Kurdish";
|
|
||||||
m["KY"] = "Kirghiz";
|
|
||||||
m["LA"] = "Latin";
|
|
||||||
m["LN"] = "Lingala";
|
|
||||||
m["LO"] = "Laothian";
|
|
||||||
m["LT"] = "Lithuanian";
|
|
||||||
m["LV"] = "Latvian";
|
|
||||||
m["MG"] = "Malagasy";
|
|
||||||
m["MI"] = "Maori";
|
|
||||||
m["MK"] = "Macedonian";
|
|
||||||
m["ML"] = "Malayalam";
|
|
||||||
m["MN"] = "Mongolian";
|
|
||||||
m["MO"] = "Moldavian";
|
|
||||||
m["MR"] = "Marathi";
|
|
||||||
m["MS"] = "Malay";
|
|
||||||
m["MT"] = "Maltese";
|
|
||||||
m["MY"] = "Burmese";
|
|
||||||
m["NA"] = "Nauru";
|
|
||||||
m["NE"] = "Nepali";
|
|
||||||
m["NL"] = "Dutch";
|
|
||||||
m["NO"] = "Norwegian";
|
|
||||||
m["OC"] = "Occitan";
|
|
||||||
m["OM"] = "Oromo";
|
|
||||||
m["OR"] = "Oriya";
|
|
||||||
m["PA"] = "Punjabi";
|
|
||||||
m["PL"] = "Polish";
|
|
||||||
m["PS"] = "Pashto";
|
|
||||||
m["PT"] = "Portuguese";
|
|
||||||
m["QU"] = "Quechua";
|
|
||||||
m["RM"] = "Rhaeto-Romance";
|
|
||||||
m["RN"] = "Kirundi";
|
|
||||||
m["RO"] = "Romanian";
|
|
||||||
m["RU"] = "Russian";
|
|
||||||
m["RW"] = "Kinyarwanda";
|
|
||||||
m["SA"] = "Sanskrit";
|
|
||||||
m["SD"] = "Sindhi";
|
|
||||||
m["SG"] = "Sangro";
|
|
||||||
m["SH"] = "Serbo-Croatian";
|
|
||||||
m["SI"] = "Singhalese";
|
|
||||||
m["SK"] = "Slovak";
|
|
||||||
m["SL"] = "Slovenian";
|
|
||||||
m["SM"] = "Samoan";
|
|
||||||
m["SN"] = "Shona";
|
|
||||||
m["SO"] = "Somali";
|
|
||||||
m["SQ"] = "Albanian";
|
|
||||||
m["SR"] = "Serbian";
|
|
||||||
m["SS"] = "Siswati";
|
|
||||||
m["ST"] = "Sesotho";
|
|
||||||
m["SU"] = "Sudanese";
|
|
||||||
m["SV"] = "Swedish";
|
|
||||||
m["SW"] = "Swahili";
|
|
||||||
m["TA"] = "Tamil";
|
|
||||||
m["TE"] = "Tegulu";
|
|
||||||
m["TG"] = "Tajik";
|
|
||||||
m["TH"] = "Thai";
|
|
||||||
m["TI"] = "Tigrinya";
|
|
||||||
m["TK"] = "Turkmen";
|
|
||||||
m["TL"] = "Tagalog";
|
|
||||||
m["TN"] = "Setswana";
|
|
||||||
m["TO"] = "Tonga";
|
|
||||||
m["TR"] = "Turkish";
|
|
||||||
m["TS"] = "Tsonga";
|
|
||||||
m["TT"] = "Tatar";
|
|
||||||
m["TW"] = "Twi";
|
|
||||||
m["UK"] = "Ukrainian";
|
|
||||||
m["UR"] = "Urdu";
|
|
||||||
m["UZ"] = "Uzbek";
|
|
||||||
m["VI"] = "Vietnamese";
|
|
||||||
m["VO"] = "Volapuk";
|
|
||||||
m["WO"] = "Wolof";
|
|
||||||
m["XH"] = "Xhosa";
|
|
||||||
m["YO"] = "Yoruba";
|
|
||||||
m["ZH"] = "Chinese";
|
|
||||||
m["ZU"] = "Zulu";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* We don't use 3-letter codes, so we don't bother supporting them. */
|
/* We don't use 3-letter codes, so we don't bother supporting them. */
|
||||||
RString GetLanguageNameFromISO639Code( RString sName )
|
static const LanguageInfo g_langs[] =
|
||||||
{
|
{
|
||||||
InitLanguages();
|
{"AA", "Afar", ""},
|
||||||
|
{"AB", "Abkhazian", "аҧсуа бызшәа"},
|
||||||
|
{"AF", "Afrikaans", "Afrikaans"},
|
||||||
|
{"AM", "Amharic", ""},
|
||||||
|
{"AR", "Arabic", "العربية"},
|
||||||
|
{"AS", "Assamese", ""},
|
||||||
|
{"AY", "Aymara", ""},
|
||||||
|
{"AZ", "Azerbaijani", "azərbaycan"},
|
||||||
|
{"BA", "Bashkir", ""},
|
||||||
|
{"BE", "Byelorussian", "Беларуская"},
|
||||||
|
{"BG", "Bulgarian", "Български"},
|
||||||
|
{"BH", "Bihari", ""},
|
||||||
|
{"BI", "Bislama", ""},
|
||||||
|
{"BN", "Bengali", ""},
|
||||||
|
{"BO", "Tibetan", ""},
|
||||||
|
{"BR", "Breton", ""},
|
||||||
|
{"CA", "Catalan", "Català"},
|
||||||
|
{"CO", "Corsican", ""},
|
||||||
|
{"CS", "Czech", "čeština"},
|
||||||
|
{"CY", "Welsh", "Cymraeg"},
|
||||||
|
{"DA", "Danish", "Dansk"},
|
||||||
|
{"DE", "German", "Deutsch"},
|
||||||
|
{"DZ", "Bhutani", ""},
|
||||||
|
{"EL", "Greek", "Ελληνικά"},
|
||||||
|
{"EN", "English", "English"},
|
||||||
|
{"EO", "Esperanto", ""},
|
||||||
|
{"ES", "Spanish", "Español"},
|
||||||
|
{"ET", "Estonian", "Eesti"},
|
||||||
|
{"EU", "Basque", "euskera"},
|
||||||
|
{"FA", "Persian", "فارسی"},
|
||||||
|
{"FI", "Finnish", "Suomi"},
|
||||||
|
{"FJ", "Fiji", ""},
|
||||||
|
{"FO", "Faeroese", ""},
|
||||||
|
{"FR", "French", "français"},
|
||||||
|
{"FY", "Frisian", ""},
|
||||||
|
{"GA", "Irish", "Gaeilge"},
|
||||||
|
{"GD", "Gaelic", ""},
|
||||||
|
{"GL", "Galician", "Galego"},
|
||||||
|
{"GN", "Guarani", ""},
|
||||||
|
{"GU", "Gujarati", ""},
|
||||||
|
{"HA", "Hausa", "Hausa"},
|
||||||
|
{"HI", "Hindi", "हिंदी"},
|
||||||
|
{"HR", "Croatian", "Hrvatski"},
|
||||||
|
{"HU", "Hungarian", "Magyar"},
|
||||||
|
{"HY", "Armenian", "Հայերեն"},
|
||||||
|
{"IA", "Interlingua", ""},
|
||||||
|
{"IE", "Interlingue", ""},
|
||||||
|
{"IK", "Inupiak", ""},
|
||||||
|
{"IN", "Indonesian", "Bahasa indonesia"}, //"ID"?
|
||||||
|
{"IS", "Icelandic", "Íslenska"},
|
||||||
|
{"IT", "Italian", "italiano"},
|
||||||
|
{"IW", "Hebrew", "עברית"}, //"HE"?
|
||||||
|
{"JA", "Japanese", "日本語"},
|
||||||
|
{"JI", "Yiddish", ""},
|
||||||
|
{"JW", "Javanese", ""},
|
||||||
|
{"KA", "Georgian", ""},
|
||||||
|
{"KK", "Kazakh", "Қазақ"},
|
||||||
|
{"KL", "Greenlandic", ""},
|
||||||
|
{"KM", "Cambodian", ""},
|
||||||
|
{"KN", "Kannada", "ಕನ್ನಡ"},
|
||||||
|
{"KO", "Korean", "한국어"},
|
||||||
|
{"KS", "Kashmiri", ""},
|
||||||
|
{"KU", "Kurdish", ""},
|
||||||
|
{"KY", "Kirghiz", "Кыргыз"},
|
||||||
|
{"LA", "Latin", ""},
|
||||||
|
{"LN", "Lingala", ""},
|
||||||
|
{"LO", "Laothian", ""},
|
||||||
|
{"LT", "Lithuanian", "Lietuviškai"},
|
||||||
|
{"LV", "Latvian", "Latviešu"},
|
||||||
|
{"MG", "Malagasy", ""},
|
||||||
|
{"MI", "Maori", ""},
|
||||||
|
{"MK", "Macedonian", "Македонски"},
|
||||||
|
{"ML", "Malayalam", ""},
|
||||||
|
{"MN", "Mongolian", ""},
|
||||||
|
{"MO", "Moldavian", ""},
|
||||||
|
{"MR", "Marathi", ""},
|
||||||
|
{"MS", "Malay", "Bahasa melayu"},
|
||||||
|
{"MT", "Maltese", "Malti"},
|
||||||
|
{"MY", "Burmese", ""},
|
||||||
|
{"NA", "Nauru", ""},
|
||||||
|
{"NE", "Nepali", ""},
|
||||||
|
{"NL", "Dutch", "Nederlands"},
|
||||||
|
{"NO", "Norwegian", "Norsk"},
|
||||||
|
{"OC", "Occitan", ""},
|
||||||
|
{"OM", "Oromo", ""},
|
||||||
|
{"OR", "Oriya", ""},
|
||||||
|
{"PA", "Punjabi", ""},
|
||||||
|
{"PL", "Polish", "Polski"},
|
||||||
|
{"PS", "Pashto", "پښتو"},
|
||||||
|
{"PT", "Portuguese", "português"},
|
||||||
|
{"QU", "Quechua", ""},
|
||||||
|
{"RM", "Rhaeto-Romance", ""},
|
||||||
|
{"RN", "Kirundi", "Kirundi"},
|
||||||
|
{"RO", "Romanian", "Română"},
|
||||||
|
{"RU", "Russian", "Pyccĸий"},
|
||||||
|
{"RW", "Kinyarwanda", "Kinyarwanda"},
|
||||||
|
{"SA", "Sanskrit", ""},
|
||||||
|
{"SD", "Sindhi", ""},
|
||||||
|
{"SG", "Sangro", ""},
|
||||||
|
{"SH", "Serbo-Croatian", ""},
|
||||||
|
{"SI", "Singhalese", ""},
|
||||||
|
{"SK", "Slovak", "Slovenčina"},
|
||||||
|
{"SL", "Slovenian", "Slovenščina"},
|
||||||
|
{"SM", "Samoan", ""},
|
||||||
|
{"SN", "Shona", ""},
|
||||||
|
{"SO", "Somali", "Somali"},
|
||||||
|
{"SQ", "Albanian", "Shqip"},
|
||||||
|
{"SR", "Serbian", "Srpski"},
|
||||||
|
{"SS", "Siswati", ""},
|
||||||
|
{"ST", "Sesotho", ""},
|
||||||
|
{"SU", "Sudanese", ""},
|
||||||
|
{"SV", "Swedish", "svenska"},
|
||||||
|
{"SW", "Swahili", "Kiswahili"},
|
||||||
|
{"TA", "Tamil", ""},
|
||||||
|
{"TE", "Tegulu", "తెలుగు"},
|
||||||
|
{"TG", "Tajik", ""},
|
||||||
|
{"TH", "Thai", "ภาษาไทย"},
|
||||||
|
{"TI", "Tigrinya", ""},
|
||||||
|
{"TK", "Turkmen", ""},
|
||||||
|
{"TL", "Tagalog", ""},
|
||||||
|
{"TN", "Setswana", ""},
|
||||||
|
{"TO", "Tonga", ""},
|
||||||
|
{"TR", "Turkish", "Tϋrkçe"},
|
||||||
|
{"TS", "Tsonga", ""},
|
||||||
|
{"TT", "Tatar", ""},
|
||||||
|
{"TW", "Twi", ""},
|
||||||
|
{"UK", "Ukrainian", "Українська"},
|
||||||
|
{"UR", "Urdu", "اردو"},
|
||||||
|
{"UZ", "Uzbek", "o'zbek"},
|
||||||
|
{"VI", "Vietnamese", "Tiếng Việt"},
|
||||||
|
{"VO", "Volapuk", ""},
|
||||||
|
{"WO", "Wolof", "Wolof"},
|
||||||
|
{"XH", "Xhosa", "isiXhosa"}, //"XS"?
|
||||||
|
{"YO", "Yoruba", "Yorùbá"},
|
||||||
|
{"ZH", "Chinese", "中文"},
|
||||||
|
{"ZU", "Zulu", "isiZulu"},
|
||||||
|
};
|
||||||
|
|
||||||
map<RString,RString>::const_iterator it = g_mapLangToName2Letter.find(sName);
|
void GetLanguageInfos( vector<LanguageInfo> &vAddTo )
|
||||||
if( it != g_mapLangToName2Letter.end() )
|
{
|
||||||
return it->second;
|
for( int i=0; i<ARRAYSIZE(g_langs); i++ )
|
||||||
return "";
|
{
|
||||||
|
// Only use languages in the intersection of Windows languages
|
||||||
|
// and languages that had native forms on the site listed above.
|
||||||
|
// Obscure languages are dropped so that they don't clutter up the
|
||||||
|
// smtools UI.
|
||||||
|
if( g_langs[i].szNativeName == RString() )
|
||||||
|
continue;
|
||||||
|
vAddTo.push_back( g_langs[i] );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RString join( const RString &sDeliminator, const vector<RString> &sSource)
|
RString join( const RString &sDeliminator, const vector<RString> &sSource)
|
||||||
|
|||||||
@@ -280,6 +280,13 @@ RString WStringToRString( const wstring &sString );
|
|||||||
RString WcharToUTF8( wchar_t c );
|
RString WcharToUTF8( wchar_t c );
|
||||||
wstring RStringToWstring( const RString &sString );
|
wstring RStringToWstring( const RString &sString );
|
||||||
|
|
||||||
|
struct LanguageInfo
|
||||||
|
{
|
||||||
|
const char *szIso639Code;
|
||||||
|
const char *szEnglishName;
|
||||||
|
const char *szNativeName; // empty string if not available
|
||||||
|
};
|
||||||
|
void GetLanguageInfos( vector<LanguageInfo> &vAddTo );
|
||||||
RString GetLanguageNameFromISO639Code( RString sName );
|
RString GetLanguageNameFromISO639Code( RString sName );
|
||||||
|
|
||||||
// Splits a RString into an vector<RString> according the Delimitor.
|
// Splits a RString into an vector<RString> according the Delimitor.
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ void ThemeManager::LoadThemeMetrics( deque<Theme> &theme, const RString &sThemeN
|
|||||||
RString ThemeManager::GetDefaultLanguage()
|
RString ThemeManager::GetDefaultLanguage()
|
||||||
{
|
{
|
||||||
RString sLangCode = HOOKS->GetPreferredLanguage();
|
RString sLangCode = HOOKS->GetPreferredLanguage();
|
||||||
return GetLanguageNameFromISO639Code( sLangCode );
|
return sLangCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThemeManager::SwitchThemeAndLanguage( const RString &sThemeName_, const RString &sLanguage_ )
|
void ThemeManager::SwitchThemeAndLanguage( const RString &sThemeName_, const RString &sLanguage_ )
|
||||||
|
|||||||
Reference in New Issue
Block a user