If default user language does fit exactly, will try to find primary language match.

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@657 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2002-08-07 15:36:28 +00:00
parent 329f59cbd1
commit 00e1d9f5c4

View file

@ -302,6 +302,7 @@ int ui_doinstall(void)
{ {
// Added by Amir Szekely 3rd August 2002 // Added by Amir Szekely 3rd August 2002
// Multilingual support // Multilingual support
char c=0;
LANGID user_lang=GetUserDefaultLangID(); LANGID user_lang=GetUserDefaultLangID();
int size=g_inst_header->common.str_tables_num*sizeof(common_strings); int size=g_inst_header->common.str_tables_num*sizeof(common_strings);
cur_common_strings_table=common_strings_tables=(common_strings*)GlobalAlloc(GPTR,size); cur_common_strings_table=common_strings_tables=(common_strings*)GlobalAlloc(GPTR,size);
@ -316,14 +317,20 @@ int ui_doinstall(void)
cur_uninstall_strings_table=uninstall_strings_tables=(uninstall_strings*)GlobalAlloc(GPTR,size); cur_uninstall_strings_table=uninstall_strings_tables=(uninstall_strings*)GlobalAlloc(GPTR,size);
GetCompressedDataFromDataBlockToMemory(g_inst_header->str_tables,(char*)uninstall_strings_tables,size); GetCompressedDataFromDataBlockToMemory(g_inst_header->str_tables,(char*)uninstall_strings_tables,size);
} }
lang_again:
for (size=0; size<g_inst_header->str_tables_num; size++) { for (size=0; size<g_inst_header->str_tables_num; size++) {
if (user_lang == common_strings_tables[size].lang_id) { if (user_lang == common_strings_tables[size].lang_id
|| (c && PRIMARYLANGID(user_lang) == PRIMARYLANGID(common_strings_tables[size].lang_id))) {
cur_install_strings_table = &install_strings_tables[size]; cur_install_strings_table = &install_strings_tables[size];
cur_common_strings_table = &common_strings_tables[size]; cur_common_strings_table = &common_strings_tables[size];
cur_uninstall_strings_table = &uninstall_strings_tables[size]; cur_uninstall_strings_table = &uninstall_strings_tables[size];
break; break;
} }
} }
if (size==g_inst_header->str_tables_num) {
c=1;
goto lang_again;
}
} }
process_string_fromtab(g_caption,COMMON_STR(caption)); process_string_fromtab(g_caption,COMMON_STR(caption));