From efe106fcd91f44bbf6dd11f1803e81ee81fac344 Mon Sep 17 00:00:00 2001 From: Marc Piulachs Date: Tue, 25 Dec 2007 20:24:19 +0000 Subject: [PATCH] - Allow LANGUAGE_PAGE localization - Use DefaultLanguage setting to set the user interface language even for the language selection itself - Add missing language page entries to current localizations, translators get to work! svn path=/trunk/; revision=31437 --- reactos/base/setup/usetup/interface/usetup.c | 11 ++++- reactos/base/setup/usetup/lang/de-DE.h | 44 +++++++++++++++++++ reactos/base/setup/usetup/lang/el-GR.h | 42 +++++++++++++++++- reactos/base/setup/usetup/lang/en-US.h | 7 ++- reactos/base/setup/usetup/lang/es-ES.h | 46 ++++++++++++++++++-- reactos/base/setup/usetup/lang/fr-FR.h | 42 +++++++++++++++++- reactos/base/setup/usetup/lang/it-IT.h | 42 +++++++++++++++++- reactos/base/setup/usetup/lang/ru-RU.h | 20 ++++++++- reactos/base/setup/usetup/lang/sv-SE.h | 42 +++++++++++++++++- reactos/base/setup/usetup/lang/uk-UA.h | 44 +++++++++++++++++++ reactos/base/setup/usetup/mui.c | 17 +------- reactos/base/setup/usetup/mui.h | 7 +-- reactos/base/setup/usetup/settings.c | 2 + reactos/base/setup/usetup/usetup.h | 1 + 14 files changed, 333 insertions(+), 34 deletions(-) diff --git a/reactos/base/setup/usetup/interface/usetup.c b/reactos/base/setup/usetup/interface/usetup.c index 17f9f582847..1e96c032615 100644 --- a/reactos/base/setup/usetup/interface/usetup.c +++ b/reactos/base/setup/usetup/interface/usetup.c @@ -44,6 +44,7 @@ LONG UnattendMBRInstallType = -1; LONG UnattendFormatPartition = 0; LONG AutoPartition = 0; WCHAR UnattendInstallationDirectory[MAX_PATH]; +PWCHAR SelectedLanguageId; BOOLEAN RepairUpdateFlag = FALSE; HANDLE hPnpThread = INVALID_HANDLE_VALUE; @@ -571,11 +572,19 @@ LanguagePage(PINPUT_RECORD Ir) if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) && (Ir->Event.KeyEvent.wVirtualKeyCode == VK_DOWN)) /* DOWN */ { +#if 0 //Dinamically update user interface + SelectedLanguageId = (PWCHAR)LanguageList->CurrentEntry->UserData; + MUIDisplayPage(LANGUAGE_PAGE); +#endif ScrollDownGenericList (LanguageList); } else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) && (Ir->Event.KeyEvent.wVirtualKeyCode == VK_UP)) /* UP */ { +#if 0 + SelectedLanguageId = (PWCHAR)LanguageList->CurrentEntry->UserData; + MUIDisplayPage(LANGUAGE_PAGE); +#endif ScrollUpGenericList (LanguageList); } else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) && @@ -586,7 +595,7 @@ LanguagePage(PINPUT_RECORD Ir) } else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */ { - MUISelectLanguage((PWCHAR)LanguageList->CurrentEntry->UserData); + SelectedLanguageId = (PWCHAR)LanguageList->CurrentEntry->UserData; return INTRO_PAGE; } } diff --git a/reactos/base/setup/usetup/lang/de-DE.h b/reactos/base/setup/usetup/lang/de-DE.h index c9d8ba48ddd..6a28e390d8b 100644 --- a/reactos/base/setup/usetup/lang/de-DE.h +++ b/reactos/base/setup/usetup/lang/de-DE.h @@ -1,6 +1,46 @@ #ifndef LANG_DE_DE_H__ #define LANG_DE_DE_H__ +static MUI_ENTRY deDELanguagePageEntries[] = +{ + { + 6, + 8, + "Language Selection.", + TEXT_NORMAL + }, + { + 8, + 10, + "\x07 Please choose the language used for the installation process.", + TEXT_NORMAL + }, + { + 8, + 11, + " Then press ENTER.", + TEXT_NORMAL + }, + { + 8, + 13, + "\x07 This Language will be the default language for the final system.", + TEXT_NORMAL + }, + { + 0, + 0, + " ENTER = Continue F3 = Quit", + TEXT_STATUS + }, + { + 0, + 0, + NULL, + 0 + } +}; + static MUI_ENTRY deDEWelcomePageEntries[] = { { @@ -1266,6 +1306,10 @@ MUI_ERROR deDEErrorEntries[] = MUI_PAGE deDEPages[] = { + { + LANGUAGE_PAGE, + deDELanguagePageEntries + }, { START_PAGE, deDEWelcomePageEntries diff --git a/reactos/base/setup/usetup/lang/el-GR.h b/reactos/base/setup/usetup/lang/el-GR.h index e9799657a05..532ab8ef510 100644 --- a/reactos/base/setup/usetup/lang/el-GR.h +++ b/reactos/base/setup/usetup/lang/el-GR.h @@ -1,6 +1,46 @@ #ifndef LANG_EL_GR_H__ #define LANG_EL_GR_H__ +static MUI_ENTRY elGRLanguagePageEntries[] = +{ + { + 6, + 8, + "Language Selection.", + TEXT_NORMAL + }, + { + 8, + 10, + "\x07 Please choose the language used for the installation process.", + TEXT_NORMAL + }, + { + 8, + 11, + " Then press ENTER.", + TEXT_NORMAL + }, + { + 8, + 13, + "\x07 This Language will be the default language for the final system.", + TEXT_NORMAL + }, + { + 0, + 0, + " ENTER = Continue F3 = Quit", + TEXT_STATUS + }, + { + 0, + 0, + NULL, + 0 + } +}; + static MUI_ENTRY elGRWelcomePageEntries[] = { { @@ -1268,7 +1308,7 @@ MUI_PAGE elGRPages[] = { { LANGUAGE_PAGE, - LanguagePageEntries + elGRLanguagePageEntries }, { START_PAGE, diff --git a/reactos/base/setup/usetup/lang/en-US.h b/reactos/base/setup/usetup/lang/en-US.h index ae6df837805..96295f6c1e0 100644 --- a/reactos/base/setup/usetup/lang/en-US.h +++ b/reactos/base/setup/usetup/lang/en-US.h @@ -1,13 +1,12 @@ #ifndef LANG_EN_US_H__ #define LANG_EN_US_H__ -// do not translate these -static MUI_ENTRY LanguagePageEntries[] = +static MUI_ENTRY enUSLanguagePageEntries[] = { { 6, 8, - "Language Selection.", + "Language Selection", TEXT_NORMAL }, { @@ -1308,7 +1307,7 @@ MUI_PAGE enUSPages[] = { { LANGUAGE_PAGE, - LanguagePageEntries + enUSLanguagePageEntries }, { START_PAGE, diff --git a/reactos/base/setup/usetup/lang/es-ES.h b/reactos/base/setup/usetup/lang/es-ES.h index 7c4e4f6dcf2..7138ee4ba78 100644 --- a/reactos/base/setup/usetup/lang/es-ES.h +++ b/reactos/base/setup/usetup/lang/es-ES.h @@ -1,6 +1,46 @@ #ifndef LANG_ES_ES_H__ #define LANG_ES_ES_H__ +static MUI_ENTRY esESLanguagePageEntries[] = +{ + { + 6, + 8, + "Selección de idioma", + TEXT_NORMAL + }, + { + 8, + 10, + "\x07 Please choose the language used for the installation process.", + TEXT_NORMAL + }, + { + 8, + 11, + " Then press ENTER.", + TEXT_NORMAL + }, + { + 8, + 13, + "\x07 This Language will be the default language for the final system.", + TEXT_NORMAL + }, + { + 0, + 0, + " ENTER = Continue F3 = Quit", + TEXT_STATUS + }, + { + 0, + 0, + NULL, + 0 + } +}; + static MUI_ENTRY esESWelcomePageEntries[] = { { @@ -1074,11 +1114,11 @@ MUI_PAGE esESPages[] = { { LANGUAGE_PAGE, - LanguagePageEntries + esESLanguagePageEntries }, { - START_PAGE, - esESWelcomePageEntries + START_PAGE, + esESWelcomePageEntries }, { INSTALL_INTRO_PAGE, diff --git a/reactos/base/setup/usetup/lang/fr-FR.h b/reactos/base/setup/usetup/lang/fr-FR.h index 2c934377f24..96119e0c935 100644 --- a/reactos/base/setup/usetup/lang/fr-FR.h +++ b/reactos/base/setup/usetup/lang/fr-FR.h @@ -1,6 +1,46 @@ #ifndef LANG_FR_FR_H__ #define LANG_FR_FR_H__ +static MUI_ENTRY frFRLanguagePageEntries[] = +{ + { + 6, + 8, + "Language Selection.", + TEXT_NORMAL + }, + { + 8, + 10, + "\x07 Please choose the language used for the installation process.", + TEXT_NORMAL + }, + { + 8, + 11, + " Then press ENTER.", + TEXT_NORMAL + }, + { + 8, + 13, + "\x07 This Language will be the default language for the final system.", + TEXT_NORMAL + }, + { + 0, + 0, + " ENTER = Continue F3 = Quit", + TEXT_STATUS + }, + { + 0, + 0, + NULL, + 0 + } +}; + static MUI_ENTRY frFRWelcomePageEntries[] = { { @@ -1280,7 +1320,7 @@ MUI_PAGE frFRPages[] = { { LANGUAGE_PAGE, - LanguagePageEntries + frFRLanguagePageEntries }, { START_PAGE, diff --git a/reactos/base/setup/usetup/lang/it-IT.h b/reactos/base/setup/usetup/lang/it-IT.h index 0b28638a340..e54fe5d77cc 100644 --- a/reactos/base/setup/usetup/lang/it-IT.h +++ b/reactos/base/setup/usetup/lang/it-IT.h @@ -1,6 +1,46 @@ #ifndef LANG_IT_IT_H__ #define LANG_IT_IT_H__ +static MUI_ENTRY itITLanguagePageEntries[] = +{ + { + 6, + 8, + "Language Selection.", + TEXT_NORMAL + }, + { + 8, + 10, + "\x07 Please choose the language used for the installation process.", + TEXT_NORMAL + }, + { + 8, + 11, + " Then press ENTER.", + TEXT_NORMAL + }, + { + 8, + 13, + "\x07 This Language will be the default language for the final system.", + TEXT_NORMAL + }, + { + 0, + 0, + " ENTER = Continue F3 = Quit", + TEXT_STATUS + }, + { + 0, + 0, + NULL, + 0 + } +}; + static MUI_ENTRY itITWelcomePageEntries[] = { { @@ -1267,7 +1307,7 @@ MUI_PAGE itITPages[] = { { LANGUAGE_PAGE, - LanguagePageEntries + itITLanguagePageEntries }, { START_PAGE, diff --git a/reactos/base/setup/usetup/lang/ru-RU.h b/reactos/base/setup/usetup/lang/ru-RU.h index 081ed747e03..a82219061ae 100644 --- a/reactos/base/setup/usetup/lang/ru-RU.h +++ b/reactos/base/setup/usetup/lang/ru-RU.h @@ -6,7 +6,25 @@ static MUI_ENTRY ruRULanguagePageEntries[] = { 6, 8, - "Select your language:", + "Language Selection.", + TEXT_NORMAL + }, + { + 8, + 10, + "\x07 Please choose the language used for the installation process.", + TEXT_NORMAL + }, + { + 8, + 11, + " Then press ENTER.", + TEXT_NORMAL + }, + { + 8, + 13, + "\x07 This Language will be the default language for the final system.", TEXT_NORMAL }, { diff --git a/reactos/base/setup/usetup/lang/sv-SE.h b/reactos/base/setup/usetup/lang/sv-SE.h index f6c4f406b6b..407c5f91cfd 100644 --- a/reactos/base/setup/usetup/lang/sv-SE.h +++ b/reactos/base/setup/usetup/lang/sv-SE.h @@ -1,6 +1,46 @@ #ifndef LANG_SV_SE_H__ #define LANG_SV_SE_H__ +static MUI_ENTRY svSELanguagePageEntries[] = +{ + { + 6, + 8, + "Language Selection.", + TEXT_NORMAL + }, + { + 8, + 10, + "\x07 Please choose the language used for the installation process.", + TEXT_NORMAL + }, + { + 8, + 11, + " Then press ENTER.", + TEXT_NORMAL + }, + { + 8, + 13, + "\x07 This Language will be the default language for the final system.", + TEXT_NORMAL + }, + { + 0, + 0, + " ENTER = Continue F3 = Quit", + TEXT_STATUS + }, + { + 0, + 0, + NULL, + 0 + } +}; + static MUI_ENTRY svSEWelcomePageEntries[] = { { @@ -1075,7 +1115,7 @@ MUI_PAGE svSEPages[] = { { LANGUAGE_PAGE, - LanguagePageEntries + svSELanguagePageEntries }, { START_PAGE, diff --git a/reactos/base/setup/usetup/lang/uk-UA.h b/reactos/base/setup/usetup/lang/uk-UA.h index f2cbed9aed0..c3ca16c045b 100644 --- a/reactos/base/setup/usetup/lang/uk-UA.h +++ b/reactos/base/setup/usetup/lang/uk-UA.h @@ -1,6 +1,46 @@ #ifndef LANG_UK_UA_H__ #define LANG_UK_UA_H__ +static MUI_ENTRY ukUALanguagePageEntries[] = +{ + { + 6, + 8, + "Language Selection.", + TEXT_NORMAL + }, + { + 8, + 10, + "\x07 Please choose the language used for the installation process.", + TEXT_NORMAL + }, + { + 8, + 11, + " Then press ENTER.", + TEXT_NORMAL + }, + { + 8, + 13, + "\x07 This Language will be the default language for the final system.", + TEXT_NORMAL + }, + { + 0, + 0, + " ENTER = Continue F3 = Quit", + TEXT_STATUS + }, + { + 0, + 0, + NULL, + 0 + } +}; + static MUI_ENTRY ukUAWelcomePageEntries[] = { { @@ -1073,6 +1113,10 @@ static MUI_ENTRY ukUADeletePartitionEntries[] = MUI_PAGE ukUAPages[] = { + { + LANGUAGE_PAGE, + ukUALanguagePageEntries + }, { START_PAGE, ukUAWelcomePageEntries diff --git a/reactos/base/setup/usetup/mui.c b/reactos/base/setup/usetup/mui.c index 4ac1438d30f..cb5b2569b50 100644 --- a/reactos/base/setup/usetup/mui.c +++ b/reactos/base/setup/usetup/mui.c @@ -38,9 +38,6 @@ #include "lang/sv-SE.h" #include "lang/uk-UA.h" -/* The current selected language , by default en-us for now */ -static PWCHAR SelectedLanguageId = L"00000409"; - static MUI_LANGUAGE LanguageList[] = { { @@ -111,16 +108,6 @@ PopupError(PCHAR Text, PINPUT_RECORD Ir, ULONG WaitEvent); -BOOLEAN -MUISelectLanguage(PWCHAR LanguageID) -{ - if (LanguageID == NULL) - return FALSE; - - SelectedLanguageId = LanguageID; - return TRUE; -} - static MUI_ENTRY * FindMUIEntriesOfPage (ULONG PageNumber) @@ -188,8 +175,8 @@ MUIDisplayPage(ULONG page) CONSOLE_SetUnderlinedTextXY(entry[index].X, entry[index].Y, entry[index].Buffer); break; case TEXT_STATUS: - CONSOLE_SetStatusText(entry[index].Buffer); - break; + CONSOLE_SetStatusText(entry[index].Buffer); + break; default: break; } diff --git a/reactos/base/setup/usetup/mui.h b/reactos/base/setup/usetup/mui.h index 1c90291c5d6..0c39f3c6920 100644 --- a/reactos/base/setup/usetup/mui.h +++ b/reactos/base/setup/usetup/mui.h @@ -34,11 +34,6 @@ typedef struct #define TEXT_ALIGN_CENTER 8 VOID -MUIDisplayPage(ULONG PageNumber); - -BOOLEAN -//MUISelectLanguage(ULONG LanguageIndex); -MUISelectLanguage(PWCHAR LanguageID); - +MUIDisplayPage (ULONG PageNumber); #endif diff --git a/reactos/base/setup/usetup/settings.c b/reactos/base/setup/usetup/settings.c index 5915c96f63d..7dd915970b9 100644 --- a/reactos/base/setup/usetup/settings.c +++ b/reactos/base/setup/usetup/settings.c @@ -674,6 +674,8 @@ CreateLanguageList(HINF InfFile) return NULL; wcscpy(DefaultLanguage, KeyValue); + + SelectedLanguageId = KeyValue; List = CreateGenericList(); if (List == NULL) diff --git a/reactos/base/setup/usetup/usetup.h b/reactos/base/setup/usetup/usetup.h index a8371f7d579..ce933d8a5a6 100644 --- a/reactos/base/setup/usetup/usetup.h +++ b/reactos/base/setup/usetup/usetup.h @@ -79,6 +79,7 @@ extern UNICODE_STRING SourceRootPath; extern UNICODE_STRING SourceRootDir; extern UNICODE_STRING SourcePath; extern BOOLEAN IsUnattendedSetup; +extern PWCHAR SelectedLanguageId; typedef enum _PAGE_NUMBER {