- Update language samples upon selection of a new language.

- Add a workaround for a special case: "Spanish (Spain)" uses two sorting methods but two sublang ids are used to distinguish them instead of two sort ids. Ensure they don't appear twice in the language list.
- Add "Spanish (Spain)" as a translatable string resource.

svn path=/trunk/; revision=28950
This commit is contained in:
Eric Kohl 2007-09-08 15:43:19 +00:00
parent 9ef9435f83
commit 6dd949a054
7 changed files with 63 additions and 18 deletions

View file

@ -40,6 +40,7 @@
HWND hList;
HWND hLocaleList, hGeoList;
BOOL bSpain = FALSE;
static BOOL CALLBACK
LocalesEnumProc(LPTSTR lpLocale)
@ -47,12 +48,30 @@ LocalesEnumProc(LPTSTR lpLocale)
LCID lcid;
TCHAR lang[255];
INT index;
BOOL bNoShow = FALSE;
//swscanf(lpLocale, L"%lx", &lcid); // maybe use wcstoul?
lcid = _tcstoul(lpLocale, NULL, 16);
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));
}
if (bNoShow == FALSE)
{
index = SendMessage(hList,
CB_ADDSTRING,
0,
@ -62,6 +81,7 @@ LocalesEnumProc(LPTSTR lpLocale)
CB_SETITEMDATA,
index,
(LPARAM)lcid);
}
return TRUE;
}
@ -110,6 +130,7 @@ CreateLanguagesList(HWND hwnd)
TCHAR langSel[255];
hList = hwnd;
bSpain = FALSE;
EnumSystemLocales(LocalesEnumProc, LCID_SUPPORTED);
/* Select current locale */
@ -322,6 +343,25 @@ GeneralPageProc(HWND hwndDlg,
case IDC_LANGUAGELIST:
if (HIWORD(wParam) == CBN_SELCHANGE)
{
LCID NewLcid;
INT iCurSel;
iCurSel = SendMessage(hList,
CB_GETCURSEL,
0,
0);
if (iCurSel == CB_ERR)
break;
NewLcid = SendMessage(hList,
CB_GETITEMDATA,
iCurSel,
0);
if (NewLcid == (LCID)CB_ERR)
break;
UpdateLocaleSample(hwndDlg, NewLcid);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
}
break;

View file

@ -176,6 +176,7 @@ END
STRINGTABLE
BEGIN
IDS_CUSTOMIZE_TITLE "Regionale Einstellungen bearbeiten"
IDS_SPAIN "Spanisch (Spanien)"
END
STRINGTABLE

View file

@ -179,6 +179,7 @@ END
STRINGTABLE
BEGIN
IDS_CUSTOMIZE_TITLE "Customize Regional Options"
IDS_SPAIN "Spanish (Spain)"
END
STRINGTABLE

View file

@ -180,6 +180,7 @@ END
STRINGTABLE
BEGIN
IDS_CUSTOMIZE_TITLE "Opzioni internazionali e della lingua"
IDS_SPAIN "Spanish (Spain)"
END
STRINGTABLE

View file

@ -179,6 +179,7 @@ END
STRINGTABLE
BEGIN
IDS_CUSTOMIZE_TITLE "Íàñòðîéêà ðåãèîíàëüíûõ ïàðàìåòðîâ"
IDS_SPAIN "Spanish (Spain)"
END
STRINGTABLE

View file

@ -185,6 +185,7 @@ END
STRINGTABLE
BEGIN
IDS_CUSTOMIZE_TITLE "Íàñòðîéêà ðåã³îíàëüíèõ ïàðàìåòð³â"
IDS_SPAIN "Spanish (Spain)"
END
STRINGTABLE

View file

@ -74,7 +74,7 @@
#define IDS_CPLNAME 1000
#define IDS_CPLDESCRIPTION 1001
#define IDS_CUSTOMIZE_TITLE 1002
#define IDS_SPAIN 1003
#endif /* __CPL_RESOURCE_H */