win32localepeer.cpp

来自「这是VCF框架的代码」· C++ 代码 · 共 2,890 行 · 第 1/5 页

CPP
2,890
字号
		}		break;		case LANG_HUNGARIAN : {			return Locale::lcHungarian;		}		break;		case LANG_ICELANDIC : {			return Locale::lcIcelandic;		}		break;		case LANG_INDONESIAN : {			return Locale::lcIndonesian;		}		break;		case LANG_ITALIAN : {			return Locale::lcItalian;		}		break;		case LANG_JAPANESE : {			return Locale::lcJapanese;		}		break;		case LANG_KANNADA : {			return Locale::lcKannada;		}		break;		case LANG_KASHMIRI : {			return Locale::lcKashmiri;		}		break;		case LANG_KAZAK : {			return Locale::lcKazakh;		}		break;		case LANG_KOREAN : {			return Locale::lcKorean;		}		break;		case LANG_LATVIAN : {			return Locale::lcLatvian;		}		break;		case LANG_LITHUANIAN : {			return Locale::lcLithuanian;		}		break;		case LANG_MACEDONIAN : {			return Locale::lcMacedonian;		}		break;		case LANG_MALAY : {			return Locale::lcMalay;		}		break;		case LANG_MALAYALAM : {			return Locale::lcMalayalam;		}		break;		case LANG_MARATHI : {			return Locale::lcMarathi;		}		break;		case LANG_NEPALI : {			return Locale::lcNepali;		}		break;		case LANG_NORWEGIAN : {			switch ( subLangID ) {				case SUBLANG_NORWEGIAN_BOKMAL : {					return Locale::lcNorwegianBokmal;				}				break;				case SUBLANG_NORWEGIAN_NYNORSK : {					return Locale::lcNorwegianNynorsk;				}				break;				default : {					return Locale::lcNorwegian;				}				break;			}		}		break;		case LANG_ORIYA : {			return Locale::lcOriya;		}		break;		case LANG_POLISH : {			return Locale::lcPolish;		}		break;		case LANG_PORTUGUESE : {			return Locale::lcPortuguese;		}		break;		case LANG_PUNJABI : {			return Locale::lcPunjabi;		}		break;		case LANG_ROMANIAN : {			return Locale::lcRomanian;		}		break;		case LANG_RUSSIAN : {			return Locale::lcRussian;		}		break;		case LANG_SANSKRIT : {			return Locale::lcSanskrit;		}		break;		case LANG_SINDHI : {			return Locale::lcSindhi;		}		break;		case LANG_SLOVAK : {			return Locale::lcSlovak;		}		break;		case LANG_SLOVENIAN : {			return Locale::lcSlovenian;		}		break;		case LANG_SPANISH : {			return Locale::lcSpanish;		}		break;		case LANG_SWAHILI : {			return Locale::lcSwahili;		}		break;		case LANG_SWEDISH : {			return Locale::lcSwahili;		}		break;		case LANG_TAMIL : {			return Locale::lcSwedish;		}		break;		case LANG_TATAR : {			return Locale::lcTatar;		}		break;		case LANG_TELUGU : {			return Locale::lcTelugu;		}		break;		case LANG_THAI : {			return Locale::lcThai;		}		break;		case LANG_TURKISH : {			return Locale::lcTurkish;		}		break;		case LANG_UKRAINIAN : {			return Locale::lcUkrainian;		}		break;		case LANG_URDU : {			return Locale::lcUrdu;		}		break;		case LANG_UZBEK : {			return Locale::lcUzbek;		}		break;		case LANG_VIETNAMESE : {			return Locale::lcVietnamese;		}		break;	}		/*		WARNING !!!! No support for LANG_MANIPURI because there is NO ISO639 code for it		case LANG_MANIPURI : {			return Locale::ccIndia;		}		break;		*/		/*		WARNING!  No ISO 2 letter code for LANG_KONKANI41		case LANG_KONKANI : {			return Locale::ccIndia;		}		break;		*/	return 0;}String Win32LocalePeer::getLanguage(){	String result;	if ( System::isUnicodeEnabled() ) {		int size = ::GetLocaleInfoW( lcid_, LOCALE_SLANGUAGE, NULL, 0 );		VCFChar* tmp = new VCFChar[size+1];		memset( tmp, 0, (size+1)*sizeof(VCFChar) );		::GetLocaleInfoW( lcid_, LOCALE_SLANGUAGE, tmp, size );		result = tmp;		delete [] tmp;	}	else {		int size = ::GetLocaleInfoA( lcid_, LOCALE_SLANGUAGE, NULL, 0 );		char* tmp = new char[size+1];		memset( tmp, 0, (size+1) );		::GetLocaleInfoA( lcid_, LOCALE_SLANGUAGE, tmp, size );		result = tmp;		delete [] tmp;	}		return result;}ulong32 Win32LocalePeer::getCountryCode(){	UINT languageID = PRIMARYLANGID(LANGIDFROMLCID(lcid_));	UINT countryID = SUBLANGID(LANGIDFROMLCID(lcid_));	switch ( languageID ) {		case LANG_AFRIKAANS : {			return Locale::ccSouthAfrica;		}		break;		case LANG_ALBANIAN : {			return Locale::ccAlbania;		}		break;		case LANG_ARABIC : {			switch ( countryID ) {				case SUBLANG_ARABIC_SAUDI_ARABIA : {					return Locale::ccSaudiArabia;				}				break;				case SUBLANG_ARABIC_IRAQ : { //Win32LocalePeer::countryIDs["ar_IQ"]					return Locale::ccIraq;				}				break;				case SUBLANG_ARABIC_EGYPT : { //Win32LocalePeer::countryIDs["ar_EG"] = SUBLANG_ARABIC_EGYPT;					return Locale::ccEgypt;				}				break;				case SUBLANG_ARABIC_LIBYA : { //Win32LocalePeer::countryIDs["ar_LY"] =					return Locale::ccLibyanArabJamahiriya;				}				break;				case SUBLANG_ARABIC_ALGERIA : { //Win32LocalePeer::countryIDs["ar_DZ"] = SUBLANG_ARABIC_ALGERIA;					return Locale::ccAlgeria;				}				break;				case SUBLANG_ARABIC_MOROCCO : { //Win32LocalePeer::countryIDs["ar_MA"] = SUBLANG_ARABIC_MOROCCO;					return Locale::ccMorocco;				}				break;				case SUBLANG_ARABIC_TUNISIA : { //Win32LocalePeer::countryIDs["ar_TN"] = SUBLANG_ARABIC_TUNISIA;					return Locale::ccTunisia;				}				break;				case SUBLANG_ARABIC_OMAN : { //Win32LocalePeer::countryIDs["ar_OM"] = SUBLANG_ARABIC_OMAN;					return Locale::ccOman;				}				break;				case SUBLANG_ARABIC_YEMEN : { //Win32LocalePeer::countryIDs["ar_YE"] = SUBLANG_ARABIC_YEMEN;					return Locale::ccYemen;				}				break;				case SUBLANG_ARABIC_SYRIA : { //Win32LocalePeer::countryIDs["ar_SY"] = SUBLANG_ARABIC_SYRIA;					return Locale::ccSyrianArabRepublic;				}				break;				case SUBLANG_ARABIC_JORDAN : { //Win32LocalePeer::countryIDs["ar_JO"] = SUBLANG_ARABIC_JORDAN;					return Locale::ccJordan;				}				break;				case SUBLANG_ARABIC_LEBANON : { //Win32LocalePeer::countryIDs["ar_LB"] = SUBLANG_ARABIC_LEBANON;					return Locale::ccLebanon;				}				break;				case SUBLANG_ARABIC_KUWAIT : { //Win32LocalePeer::countryIDs["ar_KW"] = SUBLANG_ARABIC_KUWAIT;					return Locale::ccKuwait;				}				break;				case SUBLANG_ARABIC_UAE : { //Win32LocalePeer::countryIDs["ar_AE"] = SUBLANG_ARABIC_UAE;					return Locale::ccUnitedArabEmirates;				}				break;				case SUBLANG_ARABIC_BAHRAIN : { //Win32LocalePeer::countryIDs["ar_BH"] = SUBLANG_ARABIC_BAHRAIN;					return Locale::ccBahrain;				}				break;				case SUBLANG_ARABIC_QATAR : { //Win32LocalePeer::countryIDs["ar_QA"] = SUBLANG_ARABIC_QATAR;					return Locale::ccQatar;				}				break;			}		}		break;		case LANG_ASSAMESE : {			return Locale::ccIndia;		}		break;		case LANG_ARMENIAN : {			return Locale::ccArmenia;		}		break;		case LANG_AZERI : {			return Locale::ccAzerbaijan;		}		break;		case LANG_BASQUE : {			return Locale::ccSpain;		}		break;		case LANG_BELARUSIAN : {			return Locale::ccSpain;		}		break;		case LANG_BENGALI : {			return Locale::ccIndia;		}		break;		case LANG_BULGARIAN : {			return Locale::ccBulgaria;		}		break;		case LANG_CATALAN : {			return Locale::ccSpain;		}		break;		case LANG_CHINESE : {			switch ( countryID ) {				case SUBLANG_CHINESE_HONGKONG : {					return Locale::ccHongKong;				}				break;				case SUBLANG_CHINESE_SINGAPORE : {					return Locale::ccSingapore;				}				break;				case SUBLANG_CHINESE_MACAU : {					return Locale::ccMacao;				}				break;				default : {					return Locale::ccChina;				}				break;			}		}		break;		case LANG_CROATIAN : { // equivalent to LANG_SERBIAN in winnt.h			switch ( countryID ) {				case SUBLANG_SERBIAN_CYRILLIC : {					return Locale::ccSerbia;				}				break;				case SUBLANG_SERBIAN_LATIN : {					return Locale::ccSerbia;				}				break;				default : {					return Locale::ccCroatia;				}				break;			}		}		break;		case LANG_CZECH : {			return Locale::ccCzechRepublic;		}		break;		case LANG_DANISH : {			return Locale::ccDenmark;		}		break;		case LANG_DUTCH : {			switch ( countryID ) {				case SUBLANG_DUTCH : {					return Locale::ccNetherlands;				}				break;				case SUBLANG_DUTCH_BELGIAN : {					return Locale::ccBelgium;				}				break;			}		}		break;		case LANG_ENGLISH : {			switch ( countryID ) {				case SUBLANG_ENGLISH_US : {					return Locale::ccUnitedStates;				}				break;				case SUBLANG_ENGLISH_UK : {					return Locale::ccUnitedKingdom;				}				break;				case SUBLANG_ENGLISH_AUS : {					return Locale::ccAustralia;				}				break;				case SUBLANG_ENGLISH_CAN : {					return Locale::ccCanada;				}				break;				case SUBLANG_ENGLISH_NZ : {					return Locale::ccNewZealand;				}				break;				case SUBLANG_ENGLISH_EIRE : {					return Locale::ccIreland;				}				break;				case SUBLANG_ENGLISH_SOUTH_AFRICA : {					return Locale::ccSouthAfrica;				}				break;				case SUBLANG_ENGLISH_JAMAICA : {					return Locale::ccJamaica;				}				break;				case SUBLANG_ENGLISH_CARIBBEAN : {					return Locale::ccJamaica;				}				break;				case SUBLANG_ENGLISH_BELIZE : {					return Locale::ccBelize;				}				break;				case SUBLANG_ENGLISH_TRINIDAD : {					return Locale::ccTrinidad;				}				break;				case SUBLANG_ENGLISH_PHILIPPINES : {					return Locale::ccPhilippines;				}				break;				case SUBLANG_ENGLISH_ZIMBABWE : {					return Locale::ccZimbabwe;				}				break;			}		}		break;		case LANG_ESTONIAN : {			return Locale::ccEstonia;		}		break;		case LANG_FAEROESE : {			return Locale::ccFaroIslands;		}		break;		case LANG_FARSI : {			return Locale::ccIraq; //?? do we need others ? Afghanistan??		}		break;		case LANG_FINNISH : {			return Locale::ccFinland;		}		break;		case LANG_FRENCH : {			switch ( countryID ) {				case SUBLANG_FRENCH : {					return Locale::ccFrance;				}				break;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?