int getFirstDayOfWeek() { // Let's make it's sunday by default int result = 0; GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_IFIRSTDAYOFWEEK, (LPWSTR)&result, 2); // GetLocaleInfo returns numeric char '0' - '6' // Hence, just subtracting... result -= '0'; return result; }
/* * Convert UTF-8 to a platform string */ int convertUft8ToPlatformString(char* utf8_str, int utf8_len, char* platform_str, int platform_len) { LANGID langID; LCID localeID; TCHAR strCodePage[7]; // ANSI code page id UINT codePage; int wlen, plen; WCHAR* wstr; /* * Get the code page for this locale */ langID = LANGIDFROMLCID(GetUserDefaultLCID()); localeID = MAKELCID(langID, SORT_DEFAULT); if (GetLocaleInfo(localeID, LOCALE_IDEFAULTANSICODEPAGE, strCodePage, sizeof(strCodePage)/sizeof(TCHAR)) > 0 ) { codePage = atoi(strCodePage); } else { codePage = GetACP(); } /* * To convert the string to platform encoding we must first convert * to unicode, and then convert to the platform encoding */ plen = -1; wlen = MultiByteToWideChar(CP_UTF8, 0, utf8_str, utf8_len, NULL, 0); if (wlen > 0) { wstr = (WCHAR*)malloc(wlen * sizeof(WCHAR)); if (wstr != NULL) { if (MultiByteToWideChar(CP_UTF8, 0, utf8_str, utf8_len, wstr, wlen) > 0) { plen = WideCharToMultiByte(codePage, 0, wstr, wlen, platform_str, platform_len, NULL, NULL); if (plen >= 0) { platform_str[plen] = '\0'; } free(wstr); } } } return plen; }
QVariant QSystemLocalePrivate::measurementSystem() { wchar_t output[2]; if (GetLocaleInfo(lcid, LOCALE_IMEASURE, output, 2)) { QString iMeasure = QString::fromWCharArray(output); if (iMeasure == QLatin1String("1")) { return QLocale::ImperialSystem; } } return QLocale::MetricSystem; }
TCHAR CLocale::DecimalPoint() { // TODO should really allow multiple character decimal point markers // although I'm not sure if any languages use them. TCHAR Buf[10]; if (GetLocaleInfo(m_LocaleID, LOCALE_SDECIMAL, Buf, sizeof(Buf))) { if (strlen(Buf) == 1) return (Buf[0]); } // default return (TCHAR('.')); }
std::string CapabilitiesGetLanguage() { char locale[8]; #ifdef __MINGW32__ typedef WINBASEAPI LANGID WINAPI (*GetSystemDefaultUILanguageFunc)(); GetSystemDefaultUILanguageFunc GetSystemDefaultUILanguage = (GetSystemDefaultUILanguageFunc)GetProcAddress( LoadLibraryA("kernel32.dll"), "GetSystemDefaultUILanguage"); if (!GetSystemDefaultUILanguage) return "en"; #endif int lang_len = GetLocaleInfo(GetSystemDefaultUILanguage(), LOCALE_SISO639LANGNAME, locale, sizeof(locale)); return std::string(locale, lang_len); }
BOOL IsTime24() { DWORD dwTime24 = 0; wchar_t wsTime24[10] = L"1"; if (GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ITIME, wsTime24, 10)) { if (wcsicmp(wsTime24, L"0") == 0) dwTime24 = 0; else if (wcsicmp(wsTime24, L"1") == 0) dwTime24 = 1; } return dwTime24 ? TRUE : FALSE; }
static void DisplayPackInfo(HWND hwndDlg, const LANGPACK_INFO *pack) { /* locale string */ if (!(pack->flags & LPF_NOLOCALE)) { TCHAR szLocaleName[256], szLanguageName[128], szContryName[128]; if (!GetLocaleInfo(pack->Locale, WINVER >= _WIN32_WINNT_WIN7 ? LOCALE_SENGLISHLANGUAGENAME : LOCALE_SENGLANGUAGE, szLanguageName, _countof(szLanguageName))) szLanguageName[0] = _T('\0'); if (!GetLocaleInfo(pack->Locale, WINVER >= _WIN32_WINNT_WIN7 ? LOCALE_SENGLISHCOUNTRYNAME : LOCALE_SENGCOUNTRY, szContryName, _countof(szContryName))) szContryName[0] = _T('\0'); /* add some note if its incompatible */ if (szLanguageName[0] && szContryName[0]) { mir_sntprintf(szLocaleName, _T("%s (%s)"), TranslateTS(szLanguageName), TranslateTS(szContryName)); if (!IsValidLocale(pack->Locale, LCID_INSTALLED)) { TCHAR *pszIncompat; pszIncompat = TranslateT("(incompatible)"); szLocaleName[_countof(szLocaleName) - mir_tstrlen(pszIncompat) - 1] = 0; mir_tstrcat(mir_tstrcat(szLocaleName, _T(" ")), pszIncompat); } SetDlgItemText(hwndDlg, IDC_LANGLOCALE, szLocaleName); } else SetDlgItemText(hwndDlg, IDC_LANGLOCALE, TranslateT("Unknown")); } else SetDlgItemText(hwndDlg, IDC_LANGLOCALE, TranslateT("Unknown")); /* file date */ SYSTEMTIME stFileDate; TCHAR szDate[128]; szDate[0] = 0; if (FileTimeToSystemTime(&pack->ftFileDate, &stFileDate)) GetDateFormat(Langpack_GetDefaultLocale(), DATE_SHORTDATE, &stFileDate, NULL, szDate, _countof(szDate)); SetDlgItemText(hwndDlg, IDC_LANGDATE, szDate); /* general */ SetDlgItemText_CP(hwndDlg, IDC_LANGMODUSING, pack->szLastModifiedUsing); SetDlgItemText_CP(hwndDlg, IDC_LANGAUTHORS, pack->szAuthors); SetDlgItemText_CP(hwndDlg, IDC_LANGEMAIL, pack->szAuthorEmail); SetDlgItemText(hwndDlg, IDC_LANGINFOFRAME, TranslateTS(pack->tszLanguage)); }
void _imp_getProcessLocale( rtl_Locale ** ppLocale ) { WCHAR langCode[ELP_LANGUAGE_FIELD_LENGTH]; WCHAR ctryCode[ELP_COUNTRY_FIELD_LENGTH]; LCID localeId; OSL_ASSERT( ppLocale ); /* get the LCID to retrieve information from */ localeId = GetUserDefaultLCID(); /* call GetLocaleInfo to retrieve the iso codes */ if( GetLocaleInfo( localeId, LOCALE_SISO639LANGNAME , langCode, ELP_LANGUAGE_FIELD_LENGTH ) && GetLocaleInfo( localeId, LOCALE_SISO3166CTRYNAME , ctryCode, ELP_COUNTRY_FIELD_LENGTH ) ) { *ppLocale = rtl_locale_register( langCode, ctryCode, L"" ); } else { *ppLocale = rtl_locale_register( L"C", L"", L"" ); } }
void test_codeset3() { int ret; CALID calid; DWORD value; LOCALESIGNATURE LocSig; value = 0; memset(&LocSig,0,sizeof(LOCALESIGNATURE)); ret = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER, (LPTSTR)&value, sizeof(value) / sizeof(TCHAR) ); if (ret) { printf("GetLocaleInfo:1: returned %ld ... value %lu\n", ret, value); } else { ret = GetLastError(); printf("GetLocaleInfo:2: returned error %d... value %lu\n", ret, value ); } calid = value; ret = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_FONTSIGNATURE, (LPTSTR)&LocSig, sizeof(LocSig) / sizeof(TCHAR) ); if (ret) { printf("GetLocaleInfo:2: returned %ld ...\n", ret); show_hexified( (char *)&LocSig, sizeof(LOCALESIGNATURE), 0 ); } else { ret = GetLastError(); printf("GetLocaleInfo:2: returned error %d... \n", ret ); } }
/* Init short date control box */ VOID InitShortDateCB(HWND hwndDlg, LCID lcid) { TCHAR szShortDateFmt[MAX_SAMPLES_STR_SIZE]; INT nRetCode; /* Limit text lengths */ SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), CB_LIMITTEXT, MAX_SHRTDATEFMT, 0); SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO), CB_LIMITTEXT, MAX_SHRTDATESEP, 0); /* Get current short date format */ GetLocaleInfo(lcid, LOCALE_SSHORTDATE, szShortDateFmt, MAX_SAMPLES_STR_SIZE); /* Clear all box content */ SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), CB_RESETCONTENT, (WPARAM)0, (LPARAM)0); /* Enumerate short date formats */ hwndEnum = GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO); EnumDateFormats(ShortDateFormatEnumProc, lcid, DATE_SHORTDATE); /* Set current item to value from registry */ nRetCode = SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), CB_SELECTSTRING, -1, (LPARAM)szShortDateFmt); /* If it is not successful, add new value to list and select them */ if (nRetCode == CB_ERR) { SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), CB_ADDSTRING, 0, (LPARAM)szShortDateFmt); SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), CB_SELECTSTRING, -1, (LPARAM)szShortDateFmt); } }
/******************************************** StringToNumber Purpose Converts a string to a number. This function will work with strings containing characters other than numbers, by removing non-digit characters before the conversion. Therefore it will work with strings such as: "$123,456.00","123-456-789" Params string - string to convert number - resulting number Return UG_SUCCESS success UG_ERROR fail *********************************************/ int CUGCell::StringToNumber(CString *string,double *number) { CString tempString; tempString = *string; // remove localized thousand separators TCHAR szThousandSep[4]; GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, szThousandSep, 4); tempString.Replace( szThousandSep, _T("") ); // remove localized currency indicators TCHAR szCurrencyMark[6]; GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, szCurrencyMark, 6); tempString.Replace( szCurrencyMark, _T("") ); // Replace the localized decimal separator with the standard, which is // understood by the _ttol function TCHAR szDecimalSep[4]; GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, szDecimalSep, 4); tempString.Replace( szDecimalSep, _T(".") ); // parse the string to its numeric value *number = ::_tcstod(tempString, NULL); return UG_SUCCESS; }
char *rndnickcountry(char *strbuf) { char temp[10]; srand(GetTickCount()); GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SABBREVCTRYNAME, temp, sizeof(temp)); _snprintf(strbuf, MAXNICKLEN, "%s|", temp); for (int i=0;i < maxrand;i++) _snprintf(strbuf, MAXNICKLEN, "%s%i", strbuf, rand()%10); return (strbuf); }
void Time_GetAMPMSize (HDC hdc, SIZE *pSize, LPTSTR pszAM, LPTSTR pszPM) { TCHAR szAM[ cchRESOURCE ]; TCHAR szPM[ cchRESOURCE ]; if (!pszAM) pszAM = szAM; if (!pszPM) pszPM = szPM; if (!GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_S1159, pszAM, cchRESOURCE)) lstrcpy (pszAM, TEXT("AM")); if (!GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_S2359, pszPM, cchRESOURCE)) lstrcpy (pszPM, TEXT("PM")); SIZE sAM; // size of "AM" GetTextExtentPoint (hdc, pszAM, lstrlen(pszAM), &sAM); SIZE sPM; // size of "PM" GetTextExtentPoint (hdc, pszPM, lstrlen(pszPM), &sPM); pSize->cx = max( sAM.cx, sPM.cx ); pSize->cy = max( sAM.cy, sPM.cy ); }
BOOL CLocale::SetLocale(LCID LocaleID) { TCHAR Buf[4]; if (GetLocaleInfo(LocaleID, LOCALE_SABBREVLANGNAME, Buf, sizeof(Buf))) { TCHAR *LocName = _tsetlocale(LC_ALL, Buf); if (LocName) { m_csLocaleName = LocName; m_LocaleID = LocaleID; } } return (LocaleID == m_LocaleID); }
int MDateTimeHelper::hourMode() { bool format12h = false; #if defined(Q_OS_WIN) wchar_t data[10]; GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, data, 10); format12h = QString::fromWCharArray(data).startsWith(QLatin1Char('h')); #elif defined(HAVE_MEEGOTOUCH) format12h = (MLocale().timeFormat24h() == MLocale::TwelveHourTimeFormat24h ? true : (MLocale().timeFormat24h() == MLocale::TwentyFourHourTimeFormat24h ? false : MLocale().defaultTimeFormat24h() == MLocale::TwelveHourTimeFormat24h)); #endif return format12h ? TwelveHours : TwentyFourHours; }
int SDateTime::hourMode() { bool format12h = false; #if defined(Q_OS_WIN) wchar_t data[10]; GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, data, 10); format12h = QString::fromWCharArray(data).startsWith(QLatin1Char('h')); #elif defined(Q_OS_SYMBIAN) TExtendedLocale loc; loc.LoadSystemSettings(); format12h = loc.GetLocale()->TimeFormat() == ETime12; #endif return format12h ? TwelveHours : TwentyFourHours; }
CString Util::GetMyDate(void) { CString strDate; SYSTEMTIME time; int n = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 0, 0); if(n != 0){ char *szFormat = new char[n]; ZeroMemory(szFormat, n); n = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, szFormat, n); GetLocalTime(&time); n = GetDateFormat(LOCALE_SYSTEM_DEFAULT, 0, &time, szFormat, 0, 0); if(n != 0){ char *szDate = new char[n]; ZeroMemory(szDate, n); n = GetDateFormat(LOCALE_SYSTEM_DEFAULT, 0, &time, szFormat, szDate, n); strDate = szDate; delete szDate; szDate = 0; } delete szFormat; szFormat = 0; } return strDate; }
static BOOL CALLBACK LocalesEnumProc(LPTSTR lpLocale) { LCID lcid; TCHAR lang[255]; INT index; BOOL bNoShow = FALSE; lcid = _tcstoul(lpLocale, NULL, 16); /* Display only languages with installed support */ /* See bug #4898. if (!IsValidLocale(lcid, LCID_INSTALLED)) return TRUE; */ if (lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH), SORT_DEFAULT) || lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN), SORT_DEFAULT)) { if (bSpain == FALSE) { LoadString(hApplet, IDS_SPAIN, lang, 255); bSpain = TRUE; } else { bNoShow = TRUE; } } else { GetLocaleInfo(lcid, LOCALE_SLANGUAGE, lang, sizeof(lang)/sizeof(TCHAR)); } if (bNoShow == FALSE) { index = SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)lang); SendMessage(hList, CB_SETITEMDATA, index, (LPARAM)lcid); } return TRUE; }
void CWordPadApp::LoadOptions() { BYTE* pb = NULL; UINT nLen = 0; HFONT hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT); if (hFont == NULL) hFont = (HFONT)GetStockObject(ANSI_VAR_FONT); VERIFY(::GetObject(hFont, sizeof(LOGFONT), &m_lf)); m_bWordSel = GetProfileInt(szSection, szWordSel, TRUE); TCHAR buf[2]; buf[0] = NULL; GetLocaleInfo(GetUserDefaultLCID(), LOCALE_IMEASURE, buf, 2); int nDefUnits = buf[0] == '1' ? 0 : 1; SetUnits(GetProfileInt(szSection, szUnits, nDefUnits)); m_bMaximized = GetProfileInt(szSection, szMaximized, (int)FALSE); if (GetProfileBinary(szSection, szFrameRect, &pb, &nLen)) { ASSERT(nLen == sizeof(CRect)); memcpy(&m_rectInitialFrame, pb, sizeof(CRect)); delete pb; } else m_rectInitialFrame.SetRect(0,0,0,0); CRect rectScreen(0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN)); CRect rectInt; rectInt.IntersectRect(&rectScreen, &m_rectInitialFrame); if (rectInt.Width() < 10 || rectInt.Height() < 10) m_rectInitialFrame.SetRect(0, 0, 0, 0); if (GetProfileBinary(szSection, szPageMargin, &pb, &nLen)) { ASSERT(nLen == sizeof(CRect)); memcpy(&m_rectPageMargin, pb, sizeof(CRect)); delete pb; } else m_rectPageMargin.SetRect(1800, 1440, 1800, 1440); m_optionsText.LoadOptions(szTextSection); m_optionsRTF.LoadOptions(szRTFSection); m_optionsWord.LoadOptions(szWordSection); m_optionsWrite.LoadOptions(szWriteSection); m_optionsIP.LoadOptions(szIPSection); }
// To get the names of the languages BOOL CALLBACK EnumLocalesProc(LPTSTR lpLocaleString) { TCHAR *stopped = NULL; USHORT langID = (USHORT) _tcstol(lpLocaleString, &stopped, 16); TCHAR ini[32]; TCHAR end[32]; GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SISO639LANGNAME, ini, MAX_REGS(ini)); GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SISO3166CTRYNAME, end, MAX_REGS(end)); TCHAR name[64]; mir_sntprintf(name, MAX_REGS(name), _T("%s_%s"), ini, end); for(int i = 0; i < tmp_dicts->getCount(); i++) { Dictionary *dict = (*tmp_dicts)[i]; if (lstrcmpi(dict->language, name) == 0) { #define LOCALE_SLOCALIZEDLANGUAGENAME 0x0000006f #define LOCALE_SNATIVEDISPLAYNAME 0x00000073 GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SENGLANGUAGE, dict->english_name, MAX_REGS(dict->english_name)); GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SLANGUAGE, dict->localized_name, MAX_REGS(dict->localized_name)); if (dict->localized_name[0] == 0) GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SLOCALIZEDLANGUAGENAME, dict->localized_name, MAX_REGS(dict->localized_name)); if (dict->localized_name[0] == 0) GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SNATIVEDISPLAYNAME, dict->localized_name, MAX_REGS(dict->localized_name)); if (dict->localized_name[0] == 0 && dict->english_name[0] != 0) { TCHAR country[1024]; GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SENGCOUNTRY, country, MAX_REGS(country)); TCHAR name[1024]; if (country[0] != 0) mir_sntprintf(name, MAX_REGS(name), _T("%s (%s)"), dict->english_name, country); else lstrcpyn(name, dict->english_name, MAX_REGS(name)); lstrcpyn(dict->localized_name, TranslateTS(name), MAX_REGS(dict->localized_name)); } if (dict->localized_name[0] != 0) { mir_sntprintf(dict->full_name, MAX_REGS(dict->full_name), _T("%s [%s]"), dict->localized_name, dict->language); } break; } } return TRUE; }
string &FormatNumber(const wchar_t *Src, string &strDest, int NumDigits) { static bool first = true; static NUMBERFMT fmt; static wchar_t DecimalSep[4]; static wchar_t ThousandSep[4]; if (first) { GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STHOUSAND,ThousandSep,ARRAYSIZE(ThousandSep)); GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SDECIMAL,DecimalSep,ARRAYSIZE(DecimalSep)); DecimalSep[1]=0; //В винде сепараторы цифр могут быть больше одного символа ThousandSep[1]=0; //но для нас это будет не очень хорошо if (LOWORD(Opt.FormatNumberSeparators)) *DecimalSep=LOWORD(Opt.FormatNumberSeparators); if (HIWORD(Opt.FormatNumberSeparators)) *ThousandSep=HIWORD(Opt.FormatNumberSeparators); fmt.LeadingZero = 1; fmt.Grouping = 3; fmt.lpDecimalSep = DecimalSep; fmt.lpThousandSep = ThousandSep; fmt.NegativeOrder = 1; first = false; } fmt.NumDigits = NumDigits; string strSrc=Src; int Size=GetNumberFormat(LOCALE_USER_DEFAULT,0,strSrc,&fmt,nullptr,0); wchar_t* lpwszDest=strDest.GetBuffer(Size); GetNumberFormat(LOCALE_USER_DEFAULT,0,strSrc,&fmt,lpwszDest,Size); strDest.ReleaseBuffer(); return strDest; }
static QString winIso639LangName(LCID id) { QString result; // Windows returns the wrong ISO639 for some languages, we need to detect them here using // the language code QString lang_code; wchar_t out[256]; if (GetLocaleInfo(id, LOCALE_ILANGUAGE, out, 255)) // ### shouldn't use them according to msdn lang_code = QString::fromWCharArray(out); if (!lang_code.isEmpty()) { const char *endptr; bool ok; QByteArray latin1_lang_code = lang_code.toLatin1(); int i = qstrtoull(latin1_lang_code, &endptr, 16, &ok); if (ok && *endptr == '\0') { switch (i) { case 0x814: result = QLatin1String("nn"); // Nynorsk break; default: break; } } } if (!result.isEmpty()) return result; // not one of the problematic languages - do the usual lookup if (GetLocaleInfo(id, LOCALE_SISO639LANGNAME , out, 255)) result = QString::fromWCharArray(out); return result; }
VOID SetCBFromRes( HWND HwndCB, DWORD ResId, DWORD Default, BOOL CheckDecimal) { TCHAR szTemp[258], szDecSep[2], cSep; LPTSTR pThis, pThat, pDecSep; int iRV; if (CheckDecimal) { iRV = GetLocaleInfo(GetUserDefaultLCID(), LOCALE_SDECIMAL,szDecSep,2); if (iRV == 0) { // // following code can take only one char for decimal separator, // better leave the point as separator // CheckDecimal = FALSE; } } if (!LoadString(g_hInst, ResId, szTemp, ARRAYSIZE(szTemp))) return; for (pThis = szTemp, cSep = *pThis++; pThis; pThis = pThat) { if (pThat = _tcschr( pThis, cSep)) *pThat++ = TEXT('\0'); if(CheckDecimal) { // // Assume dec separator in resource is '.', comment was put to this // effect // pDecSep = _tcschr(pThis,TEXT('.')); if (pDecSep) { // // assume decimal sep width == 1 // *pDecSep = *szDecSep; } } SendMessage(HwndCB, CB_ADDSTRING, 0, (LPARAM) pThis); } SendMessage(HwndCB, CB_SETCURSEL, Default, 0L); }
void _gdk_windowing_init (void) { gchar buf[10]; #ifdef HAVE_WINTAB if (getenv ("GDK_IGNORE_WINTAB") != NULL) _gdk_input_ignore_wintab = TRUE; else if (getenv ("GDK_USE_WINTAB") != NULL) _gdk_input_ignore_wintab = FALSE; #endif if (gdk_synchronize) GdiSetBatchLimit (1); _gdk_app_hmodule = GetModuleHandle (NULL); _gdk_display_hdc = CreateDC ("DISPLAY", NULL, NULL, NULL); _gdk_input_locale = GetKeyboardLayout (0); _gdk_input_locale_is_ime = ImmIsIME (_gdk_input_locale); GetLocaleInfo (MAKELCID (LOWORD (_gdk_input_locale), SORT_DEFAULT), LOCALE_IDEFAULTANSICODEPAGE, buf, sizeof (buf)); _gdk_input_codepage = atoi (buf); GDK_NOTE (EVENTS, g_print ("input_locale:%p, codepage:%d\n", _gdk_input_locale, _gdk_input_codepage)); CoInitialize (NULL); _cf_rtf = RegisterClipboardFormat ("Rich Text Format"); _cf_utf8_string = RegisterClipboardFormat ("UTF8_STRING"); _cf_image_bmp = RegisterClipboardFormat ("image/bmp"); _gdk_selection_property = gdk_atom_intern ("GDK_SELECTION", FALSE); _wm_transient_for = gdk_atom_intern ("WM_TRANSIENT_FOR", FALSE); _targets = gdk_atom_intern ("TARGETS", FALSE); _save_targets = gdk_atom_intern ("SAVE_TARGETS", FALSE); _utf8_string = gdk_atom_intern ("UTF8_STRING", FALSE); _text = gdk_atom_intern ("TEXT", FALSE); _compound_text = gdk_atom_intern ("COMPOUND_TEXT", FALSE); _text_uri_list = gdk_atom_intern ("text/uri-list", FALSE); _image_bmp = gdk_atom_intern ("image/bmp", FALSE); _local_dnd = gdk_atom_intern ("LocalDndSelection", FALSE); _gdk_win32_dropfiles = gdk_atom_intern ("DROPFILES_DND", FALSE); _gdk_ole2_dnd = gdk_atom_intern ("OLE2_DND", FALSE); _gdk_win32_selection_init (); }
const char *get_locale() { char buffer[4]; int n = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, &buffer, 4); if (n) { code[0] = tolower(buffer[0]); code[1] = tolower(buffer[1]); code[2] = '\0'; } else { code[0] = '\0'; } return code; }
void Applet::UpdateLabel(LCID lang) { // update language label WCHAR label[MAX_LABEL]; GetLocaleInfo(lang, pSettings->GetDisplayLCType(), (LPWSTR)&label, MAX_LABEL); if (pSettings->IsUpperCase()) { CharUpper((LPWSTR)&label); } else { CharLower((LPWSTR)&label); } wcsncpy(displayLabel, label, MAX_LABEL); }
//================================================================================================ //---------------------------------//+++--> load Localized Strings for Month, Day, & AM/PM Symbols: void InitFormat(const char* section, SYSTEMTIME* lt) //--------------------------------------------------------+++--> { char year[6]; int i, ilang, ioptcal; ilang = api.GetInt(section, "Locale", GetUserDefaultLangID()); GetLocaleInfo(ilang, LOCALE_IDEFAULTANSICODEPAGE|LOCALE_RETURN_NUMBER, (LPSTR)&m_codepage, sizeof(m_codepage)); if(!IsValidCodePage(m_codepage)) m_codepage=CP_ACP; i = lt->wDayOfWeek; i--; if(i < 0) i = 6; GetLocaleInfo(ilang, LOCALE_SABBREVDAYNAME1 + i, m_DayOfWeekShort, sizeof(m_DayOfWeekShort)); // GetLocaleInfo(ilang, LOCALE_SSHORTESTDAYNAME1 + i, DayOfWeekShort, sizeof(DayOfWeekShort)); // Vista+ GetLocaleInfo(ilang, LOCALE_SDAYNAME1 + i, m_DayOfWeekLong, sizeof(m_DayOfWeekLong)); i = lt->wMonth; i--; GetLocaleInfo(ilang, LOCALE_SABBREVMONTHNAME1 + i, m_MonthShort, sizeof(m_MonthShort)); GetLocaleInfo(ilang, LOCALE_SMONTHNAME1 + i, m_MonthLong, sizeof(m_MonthLong)); api.GetStr(section, "AMsymbol", m_AM, sizeof(m_AM), ""); if(!*m_AM){ GetLocaleInfo(ilang, LOCALE_S1159, m_AM, sizeof(m_AM)); if(!*m_AM) strcpy(m_AM,"AM"); } api.GetStr(section, "PMsymbol", m_PM, sizeof(m_PM), ""); if(!*m_PM){ GetLocaleInfo(ilang, LOCALE_S2359, m_PM, sizeof(m_PM)); if(!*m_PM) strcpy(m_PM,"PM"); } m_AltYear = -1; if(!GetLocaleInfo(ilang, LOCALE_IOPTIONALCALENDAR|LOCALE_RETURN_NUMBER, (LPSTR)&ioptcal, sizeof(ioptcal))) ioptcal = 0; if(ioptcal < 3) ilang = LANG_USER_DEFAULT; if(!GetDateFormat(ilang, DATE_USE_ALT_CALENDAR, lt, "gg", m_EraStr, sizeof(m_EraStr))) *m_EraStr='\0'; if(GetDateFormat(ilang, DATE_USE_ALT_CALENDAR, lt, "yyyy", year, sizeof(year))) m_AltYear=atoi(year); }
static VOID MakeFloatValueString(DOUBLE* dFloatValue, LPTSTR szOutput, LPTSTR szAppend) { TCHAR szDecimalSeparator[4]; /* Get the decimal separator for the current locale */ if (GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, szDecimalSeparator, sizeof(szDecimalSeparator) / sizeof(TCHAR)) > 0) { UCHAR uDecimals; UINT uIntegral; /* Show the value with two decimals */ uIntegral = (UINT)*dFloatValue; uDecimals = (UCHAR)((UINT)(*dFloatValue * 100) - uIntegral * 100); wsprintf(szOutput, _T("%u%s%02u %s"), uIntegral, szDecimalSeparator, uDecimals, szAppend); } }
void GetDefaultLang() { // calculate the langpacks' root PathToAbsoluteT(_T("\\Languages"), g_tszRoot); if (_taccess(g_tszRoot, 0) != 0) // directory Languages exists PathToAbsoluteT(_T("."), g_tszRoot); // look into mirandaboot.ini TCHAR tszPath[MAX_PATH], tszLangName[256]; PathToAbsoluteT(_T("\\mirandaboot.ini"), tszPath); GetPrivateProfileString(_T("Language"), _T("DefaultLanguage"), _T(""), tszLangName, _countof(tszLangName), tszPath); if (tszLangName[0]) { if (!mir_tstrcmpi(tszLangName, _T("default"))) { db_set_ts(NULL, "Langpack", "Current", _T("default")); return; } if (!LoadLangPack(tszLangName)) { db_set_ts(NULL, "Langpack", "Current", tszLangName); return; } } // try to load langpack that matches UserDefaultUILanguage if (GetLocaleInfo(MAKELCID(GetUserDefaultUILanguage(), SORT_DEFAULT), LOCALE_SENGLANGUAGE, tszLangName, _countof(tszLangName))) { mir_sntprintf(tszPath, _T("langpack_%s.txt"), _tcslwr(tszLangName)); if (!LoadLangPack(tszPath)) { db_set_ts(NULL, "Langpack", "Current", tszPath); return; } } // finally try to load first file mir_sntprintf(tszPath, _T("%s\\langpack_*.txt"), g_tszRoot); WIN32_FIND_DATA fd; HANDLE hFind = FindFirstFile(tszPath, &fd); if (hFind != INVALID_HANDLE_VALUE) { do { /* search first langpack that could be loaded */ if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue; if (!LoadLangPack(fd.cFileName)) { db_set_ts(NULL, "Langpack", "Current", fd.cFileName); break; } } while (FindNextFile(hFind, &fd)); FindClose(hFind); } else db_set_ts(NULL, "Langpack", "Current", _T("default")); }
BOOL CPPgGeneral::OnInitDialog() { CPropertyPage::OnInitDialog(); InitWindowStyles(this); // eF-Mod :: InvisibleMode // Add keys to ComboBox for(int i='A'; i<='Z'; i++) ((CComboBox*)GetDlgItem(IDC_INVISIBLE_MODE_SELECT_COMBO))->AddString(CString((TCHAR)(i))); for(int i='0'; i<='9'; i++) ((CComboBox*)GetDlgItem(IDC_INVISIBLE_MODE_SELECT_COMBO))->AddString(CString((TCHAR)(i))); // eF-Mod end ((CEdit*)GetDlgItem(IDC_NICK))->SetLimitText(thePrefs.GetMaxUserNickLength()); CWordArray aLanguageIDs; thePrefs.GetLanguages(aLanguageIDs); for (int i = 0; i < aLanguageIDs.GetSize(); i++){ TCHAR szLang[128]; int ret=GetLocaleInfo(aLanguageIDs[i], LOCALE_SLANGUAGE, szLang, ARRSIZE(szLang)); if (ret==0 && aLanguageIDs[i]== LANGID_GL_ES ) _tcscpy(szLang,_T("Galician") ); else if (ret==0 && aLanguageIDs[i]==LANGID_FR_BR ) _tcscpy(szLang,_T("Breton (Brezhoneg)") ); m_language.SetItemData(m_language.AddString(szLang), aLanguageIDs[i]); } UpdateEd2kLinkFixCtrl(); GetDlgItem(IDC_ONLINESIG)->ShowWindow( thePrefs.IsExtControlsEnabled()?SW_SHOW:SW_HIDE ); CSliderCtrl *sliderUpdate = (CSliderCtrl*)GetDlgItem(IDC_CHECKDAYS); sliderUpdate->SetRange(2, 7, true); sliderUpdate->SetPos(thePrefs.GetUpdateDays()); LoadSettings(); Localize(); GetDlgItem(IDC_CHECKDAYS)->ShowWindow( IsDlgButtonChecked(IDC_CHECK4UPDATE) ? SW_SHOW : SW_HIDE ); GetDlgItem(IDC_DAYS)->ShowWindow( IsDlgButtonChecked(IDC_CHECK4UPDATE) ? SW_SHOW : SW_HIDE ); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }