diff --git a/reactos/base/applications/rapps/available.cpp b/reactos/base/applications/rapps/available.cpp index cb4c170847e..f6e12b8a646 100644 --- a/reactos/base/applications/rapps/available.cpp +++ b/reactos/base/applications/rapps/available.cpp @@ -111,6 +111,16 @@ HasNativeLanguage(PAPPLICATION_INFO Info) //TODO: make the actual check return TRUE; } +BOOL +HasEnglishLanguage(PAPPLICATION_INFO Info) +{ + if (!Info) + { + return FALSE; + } + //TODO: make the actual check + return TRUE; +} LICENSE_TYPE ParserGetLicenseType(const ATL::CStringW& szFileName) @@ -145,12 +155,15 @@ InsertVersionInfo_RichEdit(PAPPLICATION_INFO Info) InsertTextAfterLoaded_RichEdit(IDS_AINFO_VERSION, szVersion, CFE_BOLD, 0); } else + { InsertLoadedTextNewl_RichEdit(IDS_STATUS_INSTALLED, CFE_ITALIC); - + } } else + { InsertLoadedTextNewl_RichEdit(IDS_STATUS_NOTINSTALLED, CFE_ITALIC); - + } + InsertTextAfterLoaded_RichEdit(IDS_AINFO_AVAILABLEVERSION, Info->szVersion, CFE_BOLD, 0); } @@ -185,6 +198,38 @@ InsertLicenseInfo_RichEdit(PAPPLICATION_INFO Info) } +VOID +InsertLanguageInfo_RichEdit(PAPPLICATION_INFO Info) +{ + const INT nTranslations = Info->Languages.GetSize(); + ATL::CStringW szLangInfo; + ATL::CStringW szLoadedTextAvailability; + ATL::CStringW szLoadedAInfoText; + szLoadedAInfoText.LoadStringW(IDS_AINFO_LANGUAGES); + + if(HasNativeLanguage(Info)) + { + szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_AVAILABLE_TRANSLATION); + } + else if (HasEnglishLanguage(Info)) + { + szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_ENGLISH_TRANSLATION); + } + else + { + szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_NO_TRANSLATION); + } + + if (nTranslations > 1) + { + szLangInfo.Format(L" (+%d more)", nTranslations - 1); + } + + InsertRichEditText(szLoadedAInfoText, CFE_BOLD); + InsertRichEditText(szLoadedTextAvailability, NULL); + InsertRichEditText(szLangInfo, CFE_ITALIC); +} + BOOL ShowAvailableAppInfo(INT Index) { @@ -194,6 +239,7 @@ ShowAvailableAppInfo(INT Index) NewRichEditText(Info->szName, CFE_BOLD); InsertVersionInfo_RichEdit(Info); InsertLicenseInfo_RichEdit(Info); + InsertLanguageInfo_RichEdit(Info); InsertTextAfterLoaded_RichEdit(IDS_AINFO_SIZE, Info->szSize, CFE_BOLD, 0); InsertTextAfterLoaded_RichEdit(IDS_AINFO_URLSITE, Info->szUrlSite, CFE_BOLD, CFE_LINK); diff --git a/reactos/base/applications/rapps/crichedit.h b/reactos/base/applications/rapps/crichedit.h index 1ba88eab5a3..28c47ff26f9 100644 --- a/reactos/base/applications/rapps/crichedit.h +++ b/reactos/base/applications/rapps/crichedit.h @@ -9,14 +9,17 @@ class CRichEdit : SETTEXTEX SetText; LONG Len = GetTextLen(); - /* Insert new text */ - SetText.flags = ST_SELECTION; - SetText.codepage = 1200; + if (InsertedTextLen) + { + /* Insert new text */ + SetText.flags = ST_SELECTION; + SetText.codepage = 1200; - SendMessageW(EM_SETTEXTEX, (WPARAM) &SetText, (LPARAM) lpszText); + SendMessageW(EM_SETTEXTEX, (WPARAM) &SetText, (LPARAM) lpszText); - SetRangeFormatting(Len, Len + InsertedTextLen, - (dwEffects == CFM_LINK) ? (PathIsURLW(lpszText) ? dwEffects : 0) : dwEffects); + SetRangeFormatting(Len, Len + InsertedTextLen, + (dwEffects == CFM_LINK) ? (PathIsURLW(lpszText) ? dwEffects : 0) : dwEffects); + } } public: diff --git a/reactos/base/applications/rapps/lang/en-US.rc b/reactos/base/applications/rapps/lang/en-US.rc index f3431cd078d..dd04caee262 100644 --- a/reactos/base/applications/rapps/lang/en-US.rc +++ b/reactos/base/applications/rapps/lang/en-US.rc @@ -158,6 +158,7 @@ BEGIN IDS_AINFO_URLSITE "\nHome Page: " IDS_AINFO_LICENSE "\nLicense: " IDS_AINFO_URLDOWNLOAD "\nDownload: " + IDS_AINFO_LANGUAGES "\nLanguages: " END STRINGTABLE @@ -224,3 +225,11 @@ BEGIN IDS_LICENSE_FREEWARE "Freeware" IDS_LICENSE_TRIAL "Trial/Demo" END + +STRINGTABLE +BEGIN + IDS_LANGUAGE_AVAILABLE_TRANSLATION "In your language" + IDS_LANGUAGE_NO_TRANSLATION "In your language" + IDS_LANGUAGE_NOT_AVAILABLE "No translations" + IDS_LANGUAGE_ENGLISH_TRANSLATION "In English" +END diff --git a/reactos/base/applications/rapps/lang/uk-UA.rc b/reactos/base/applications/rapps/lang/uk-UA.rc index 4f28b3ea518..d54ecee50e9 100644 --- a/reactos/base/applications/rapps/lang/uk-UA.rc +++ b/reactos/base/applications/rapps/lang/uk-UA.rc @@ -26,7 +26,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Оновити\tF5", ID_REFRESH MENUITEM SEPARATOR - MENUITEM "Update Da&tabase\tCtrl+F5", ID_RESETDB + MENUITEM "Оновити список &програм\tCtrl+F5", ID_RESETDB END POPUP "&Довідка" BEGIN @@ -56,7 +56,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Оновити\tF5", ID_REFRESH MENUITEM SEPARATOR - MENUITEM "Update Da&tabase\tCtrl+F5", ID_RESETDB + MENUITEM "Оновити список &програм\tCtrl+F5", ID_RESETDB END END @@ -79,7 +79,7 @@ BEGIN CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 210, 10 CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 74, 10 EDITTEXT IDC_PROXY_SERVER, 90, 160, 147, 12, ES_AUTOHSCROLL | WS_DISABLED - LTEXT "No proxy for", -1, 27, 175, 64, 10 + LTEXT "Виключення", -1, 27, 175, 64, 10 EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED PUSHBUTTON "Стандартно", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14 PUSHBUTTON "OK", IDOK, 116, 195, 60, 14 @@ -125,7 +125,7 @@ BEGIN IDS_TOOLTIP_MODIFY "Змінити" IDS_TOOLTIP_SETTINGS "Налаштування" IDS_TOOLTIP_REFRESH "Оновити" - IDS_TOOLTIP_UPDATE_DB "Update Database" + IDS_TOOLTIP_UPDATE_DB "Оновити список програм" IDS_TOOLTIP_EXIT "Вихід" END @@ -206,14 +206,14 @@ BEGIN IDS_CHOOSE_FOLDER_ERROR "Ви вказали неіснуючу теку!" IDS_APP_REG_REMOVE "Ви дійсно хочете видалити дані про встановлену програму з реєстру?" IDS_INFORMATION "Інформація" - IDS_UNABLE_TO_DOWNLOAD "Unable to download the package! Address not found!" - IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!" + IDS_UNABLE_TO_DOWNLOAD "Неможливо завантажити додаток! Адресу не знайдено!" + IDS_UNABLE_TO_DOWNLOAD2 "Неможливо завантажити додаток! Перевірте підключення до мережі Інтернет!" IDS_UNABLE_TO_REMOVE "Не вдалося видалити дані про програму з реєстру!" - IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." - IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." - IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." - IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." + IDS_CERT_DOES_NOT_MATCH "Помилка перевіки сертифікату SSL." + IDS_INTEG_CHECK_TITLE "Перевірка цілістності додатку..." + IDS_INTEG_CHECK_FAIL "Додаток не пройшов перевірку цілістності, його молги пошкодити чи замінити. Запуск додатку не рекомендується." + IDS_INTERRUPTED_DOWNLOAD "Завантаження перервано. Перевірте підключення до мережі Інтернет." + IDS_UNABLE_TO_WRITE "Записк на диск неможливий. Можливо, на диску недостатньо містця." END STRINGTABLE diff --git a/reactos/base/applications/rapps/resource.h b/reactos/base/applications/rapps/resource.h index 90d81931ce6..c2367e0072e 100644 --- a/reactos/base/applications/rapps/resource.h +++ b/reactos/base/applications/rapps/resource.h @@ -145,6 +145,7 @@ #define IDS_AINFO_LICENSE 354 #define IDS_AINFO_URLDOWNLOAD 355 #define IDS_AINFO_AVAILABLEVERSION 356 +#define IDS_AINFO_LANGUAGES 357 /* Names of categories */ @@ -177,6 +178,12 @@ #define IDS_LICENSE_FREEWARE 901 #define IDS_LICENSE_TRIAL 902 +/* Language related strings */ +#define IDS_LANGUAGE_AVAILABLE_TRANSLATION 910 +#define IDS_LANGUAGE_NO_TRANSLATION 911 +#define IDS_LANGUAGE_NOT_AVAILABLE 912 +#define IDS_LANGUAGE_ENGLISH_TRANSLATION 913 + /* Accelerators */ #define HOTKEYS 715