[0.4.7][RAPPS/ATL] Fast-forward both to state of 0.4.8-release-0-gd47d448

Due to infrastructure changes on 2018-02-17 (after initial 0.4.7rls)
we totally broke the rapps compatibility of all releases before 0.4.8
leaving rapps useless in those.

Therefore I decided to port back what is necessary to make rapps work
again also in this ancient release.

fixes CORE-14351 adapts to infrastructure changes
fixes CORE-14350 RAPPS Certificate pinning
fixes download from FTP
and merges many other improvements from GSOC 2017 back in time
This commit is contained in:
Joachim Henze 2020-10-02 01:51:07 +02:00
parent 45044a8371
commit 3966ffa790
41 changed files with 1085 additions and 670 deletions

View file

@ -35,7 +35,7 @@ list(APPEND SOURCE
add_definitions(
-DUSE_CERT_PINNING
-D_ATL_NO_EXCEPTIONS)
file(GLOB_RECURSE rapps_rc_deps res/*.*)
add_rc_deps(rapps.rc ${rapps_rc_deps})
add_executable(rapps ${SOURCE} rapps.rc)

View file

@ -10,7 +10,8 @@
static INT_PTR CALLBACK AboutDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
if (Msg == WM_COMMAND && LOWORD(wParam) == IDOK)
if ((Msg == WM_COMMAND) &&
(LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL))
{
return EndDialog(hDlg, LOWORD(wParam));
}

View file

@ -19,12 +19,9 @@
// CAvailableApplicationInfo
CAvailableApplicationInfo::CAvailableApplicationInfo(const ATL::CStringW& sFileNameParam)
: m_IsInstalled(FALSE), m_HasLanguageInfo(FALSE), m_HasInstalledVersion(FALSE), m_Parser(sFileNameParam)
: m_IsSelected(FALSE), m_LicenseType(LICENSE_NONE), m_sFileName(sFileNameParam),
m_IsInstalled(FALSE), m_HasLanguageInfo(FALSE), m_HasInstalledVersion(FALSE)
{
m_LicenseType = LICENSE_NONE;
m_sFileName = sFileNameParam;
RetrieveGeneralInfo();
}
@ -39,11 +36,14 @@ VOID CAvailableApplicationInfo::RefreshAppInfo()
// Lazily load general info from the file
VOID CAvailableApplicationInfo::RetrieveGeneralInfo()
{
m_Category = m_Parser.GetInt(L"Category");
m_Parser = new CConfigParser(m_sFileName);
m_Category = m_Parser->GetInt(L"Category");
if (!GetString(L"Name", m_szName)
|| !GetString(L"URLDownload", m_szUrlDownload))
{
delete m_Parser;
return;
}
@ -64,6 +64,8 @@ VOID CAvailableApplicationInfo::RetrieveGeneralInfo()
{
RetrieveInstalledVersion();
}
delete m_Parser;
}
VOID CAvailableApplicationInfo::RetrieveInstalledStatus()
@ -87,7 +89,7 @@ VOID CAvailableApplicationInfo::RetrieveLanguages()
ATL::CStringW szBuffer;
// TODO: Get multiline parameter
if (!m_Parser.GetString(L"Languages", szBuffer))
if (!m_Parser->GetString(L"Languages", szBuffer))
{
m_HasLanguageInfo = FALSE;
return;
@ -126,7 +128,7 @@ VOID CAvailableApplicationInfo::RetrieveLanguages()
VOID CAvailableApplicationInfo::RetrieveLicenseType()
{
INT IntBuffer = m_Parser.GetInt(L"LicenseType");
INT IntBuffer = m_Parser->GetInt(L"LicenseType");
if (IsLicenseType(IntBuffer))
{
@ -195,46 +197,33 @@ VOID CAvailableApplicationInfo::SetLastWriteTime(FILETIME* ftTime)
inline BOOL CAvailableApplicationInfo::GetString(LPCWSTR lpKeyName, ATL::CStringW& ReturnedString)
{
if (!m_Parser.GetString(lpKeyName, ReturnedString))
if (!m_Parser->GetString(lpKeyName, ReturnedString))
{
ReturnedString.Empty();
return FALSE;
}
return TRUE;
}
// CAvailableApplicationInfo
// CAvailableApplicationInfo
// AvailableStrings
AvailableStrings::AvailableStrings()
{
//FIXME: maybe provide a fallback?
if (GetStorageDirectory(szPath))
{
szAppsPath = szPath + L"\\rapps\\";
szCabPath = szPath + L"\\rappmgr.cab";
szSearchPath = szAppsPath + L"*.txt";
}
}
// AvailableStrings
// CAvailableApps
ATL::CStringW CAvailableApps::m_szPath;
ATL::CStringW CAvailableApps::m_szCabPath;
ATL::CStringW CAvailableApps::m_szAppsPath;
ATL::CStringW CAvailableApps::m_szSearchPath;
BOOL CAvailableApps::InitializeStaticStrings()
{
if (!m_szPath.IsEmpty())
{
// strings are filled
return TRUE;
}
//FIXME: maybe provide a fallback?
if (GetStorageDirectory(m_szPath))
{
m_szAppsPath = m_szPath + L"\\rapps\\";
m_szCabPath = m_szPath + L"\\rappmgr.cab";
m_szSearchPath = m_szAppsPath + L"*.txt";
return TRUE;
}
return FALSE;
}
AvailableStrings CAvailableApps::m_Strings;
CAvailableApps::CAvailableApps()
{
//set all paths
InitializeStaticStrings();
}
VOID CAvailableApps::FreeCachedEntries()
@ -256,26 +245,21 @@ VOID CAvailableApps::DeleteCurrentAppsDB()
HANDLE hFind = INVALID_HANDLE_VALUE;
WIN32_FIND_DATAW FindFileData;
if (!InitializeStaticStrings())
{
return;
}
hFind = FindFirstFileW(m_szSearchPath.GetString(), &FindFileData);
hFind = FindFirstFileW(m_Strings.szSearchPath.GetString(), &FindFileData);
if (hFind != INVALID_HANDLE_VALUE)
{
ATL::CStringW szTmp;
do
{
szTmp = m_szAppsPath + FindFileData.cFileName;
szTmp = m_Strings.szAppsPath + FindFileData.cFileName;
DeleteFileW(szTmp.GetString());
} while (FindNextFileW(hFind, &FindFileData) != 0);
FindClose(hFind);
}
RemoveDirectoryW(m_szAppsPath);
RemoveDirectoryW(m_szPath);
RemoveDirectoryW(m_Strings.szAppsPath);
RemoveDirectoryW(m_Strings.szPath);
}
BOOL CAvailableApps::UpdateAppsDB()
@ -283,18 +267,13 @@ BOOL CAvailableApps::UpdateAppsDB()
HANDLE hFind = INVALID_HANDLE_VALUE;
WIN32_FIND_DATAW FindFileData;
if (!InitializeStaticStrings())
{
return FALSE;
}
if (!CreateDirectoryW(m_szPath.GetString(), NULL) && GetLastError() != ERROR_ALREADY_EXISTS)
if (!CreateDirectoryW(m_Strings.szPath, NULL) && GetLastError() != ERROR_ALREADY_EXISTS)
{
return FALSE;
}
//if there are some files in the db folder - we're good
hFind = FindFirstFileW(m_szSearchPath.GetString(), &FindFileData);
hFind = FindFirstFileW(m_Strings.szSearchPath, &FindFileData);
if (hFind != INVALID_HANDLE_VALUE)
{
FindClose(hFind);
@ -303,12 +282,12 @@ BOOL CAvailableApps::UpdateAppsDB()
CDownloadManager::DownloadApplicationsDB(APPLICATION_DATABASE_URL);
if (!ExtractFilesFromCab(m_szCabPath, m_szAppsPath))
if (!ExtractFilesFromCab(m_Strings.szCabPath, m_Strings.szAppsPath))
{
return FALSE;
}
DeleteFileW(m_szCabPath.GetString());
DeleteFileW(m_Strings.szCabPath);
return TRUE;
}
@ -325,7 +304,7 @@ BOOL CAvailableApps::Enum(INT EnumType, AVAILENUMPROC lpEnumProc)
HANDLE hFind = INVALID_HANDLE_VALUE;
WIN32_FIND_DATAW FindFileData;
hFind = FindFirstFileW(m_szSearchPath.GetString(), &FindFileData);
hFind = FindFirstFileW(m_Strings.szSearchPath.GetString(), &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
@ -373,17 +352,15 @@ BOOL CAvailableApps::Enum(INT EnumType, AVAILENUMPROC lpEnumProc)
m_InfoList.AddTail(Info);
skip_if_cached:
if (Info->m_Category == FALSE)
continue;
if (EnumType != Info->m_Category && EnumType != ENUM_ALL_AVAILABLE)
continue;
Info->RefreshAppInfo();
if (lpEnumProc)
lpEnumProc(static_cast<CAvailableApplicationInfo*>(Info), m_szAppsPath.GetString());
if (EnumType == Info->m_Category
|| EnumType == ENUM_ALL_AVAILABLE
|| (EnumType == ENUM_CAT_SELECTED && Info->m_IsSelected))
{
Info->RefreshAppInfo();
if (lpEnumProc)
lpEnumProc(Info, m_Strings.szAppsPath.GetString());
}
} while (FindNextFileW(hFind, &FindFileData) != 0);
FindClose(hFind);
@ -411,15 +388,32 @@ CAvailableApplicationInfo* CAvailableApps::FindInfo(const ATL::CStringW& szAppNa
return NULL;
}
ATL::CSimpleArray<CAvailableApplicationInfo*> CAvailableApps::FindInfoList(const ATL::CSimpleArray<ATL::CStringW> &arrAppsNames) const
ATL::CSimpleArray<CAvailableApplicationInfo> CAvailableApps::FindInfoList(const ATL::CSimpleArray<ATL::CStringW> &arrAppsNames) const
{
ATL::CSimpleArray<CAvailableApplicationInfo*> result;
ATL::CSimpleArray<CAvailableApplicationInfo> result;
for (INT i = 0; i < arrAppsNames.GetSize(); ++i)
{
CAvailableApplicationInfo* Info = FindInfo(arrAppsNames[i]);
if (Info)
{
result.Add(Info);
result.Add(*Info);
}
}
return result;
}
ATL::CSimpleArray<CAvailableApplicationInfo> CAvailableApps::GetSelected() const
{
ATL::CSimpleArray<CAvailableApplicationInfo> result;
POSITION CurrentListPosition = m_InfoList.GetHeadPosition();
CAvailableApplicationInfo* Info;
while (CurrentListPosition != NULL)
{
Info = m_InfoList.GetNext(CurrentListPosition);
if (Info->m_IsSelected)
{
result.Add(*Info);
}
}
return result;
@ -427,31 +421,16 @@ ATL::CSimpleArray<CAvailableApplicationInfo*> CAvailableApps::FindInfoList(const
const ATL::CStringW& CAvailableApps::GetFolderPath() const
{
return m_szPath;
return m_Strings.szPath;
}
const ATL::CStringW& CAvailableApps::GetAppPath() const
{
return m_szAppsPath;
return m_Strings.szAppsPath;
}
const ATL::CStringW& CAvailableApps::GetCabPath() const
{
return m_szCabPath;
}
LPCWSTR CAvailableApps::GetFolderPathString() const
{
return m_szPath.GetString();
}
LPCWSTR CAvailableApps::GetAppPathString() const
{
return m_szPath.GetString();
}
LPCWSTR CAvailableApps::GetCabPathString() const
{
return m_szPath.GetString();
return m_Strings.szCabPath;
}
// CAvailableApps

View file

@ -145,7 +145,6 @@ class CAvailableAppView
szLoadedAInfoText.LoadStringW(IDS_AINFO_LANGUAGES);
//TODO: replace those hardcoded strings
if (Info->HasNativeLanguage())
{
szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_AVAILABLE_TRANSLATION);
@ -389,14 +388,17 @@ class CAppsListView :
};
BOOL bHasAllChecked;
BOOL bAscending;
BOOL bIsAscending;
BOOL bHasCheckboxes;
INT nLastHeaderID;
public:
CAppsListView() :
bHasAllChecked(FALSE),
bAscending(TRUE),
bHasCheckboxes(FALSE)
bIsAscending(TRUE),
bHasCheckboxes(FALSE),
nLastHeaderID(-1)
{
}
@ -416,11 +418,40 @@ public:
VOID ColumnClick(LPNMLISTVIEW pnmv)
{
SortContext ctx = {this, pnmv->iSubItem};
HWND hHeader;
HDITEMW hColumn;
INT nHeaderID = pnmv->iSubItem;
if ((GetWindowLongPtr(GWL_STYLE) & ~LVS_NOSORTHEADER) == 0)
return;
hHeader = (HWND) SendMessage(LVM_GETHEADER, 0, 0);
ZeroMemory(&hColumn, sizeof(hColumn));
/* If the sorting column changed, remove the sorting style from the old column */
if ((nLastHeaderID != -1) && (nLastHeaderID != nHeaderID))
{
hColumn.mask = HDI_FORMAT;
Header_GetItem(hHeader, nLastHeaderID, &hColumn);
hColumn.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN);
Header_SetItem(hHeader, nLastHeaderID, &hColumn);
}
/* Set the sorting style to the new column */
hColumn.mask = HDI_FORMAT;
Header_GetItem(hHeader, nHeaderID, &hColumn);
hColumn.fmt &= (bIsAscending ? ~HDF_SORTDOWN : ~HDF_SORTUP);
hColumn.fmt |= (bIsAscending ? HDF_SORTUP : HDF_SORTDOWN);
Header_SetItem(hHeader, nHeaderID, &hColumn);
/* Sort the list, using the current values of nHeaderID and bIsAscending */
SortContext ctx = {this, nHeaderID};
SortItems(s_CompareFunc, &ctx);
bAscending = !bAscending;
/* Save new values */
nLastHeaderID = nHeaderID;
bIsAscending = !bIsAscending;
}
PVOID GetLParam(INT Index)
@ -508,12 +539,7 @@ public:
GetItemText(Index, iSubItem, Item2.GetBuffer(MAX_STR_LEN), MAX_STR_LEN);
Item2.ReleaseBuffer();
if (bAscending)
return Item2 == Item1;
else
return Item1 == Item2;
return 0;
return bIsAscending ? Item1.Compare(Item2) : Item2.Compare(Item1);
}
HWND Create(HWND hwndParent)
@ -542,6 +568,30 @@ public:
if (bHasCheckboxes)
{
SetItemState(item, INDEXTOSTATEIMAGEMASK((fCheck) ? 2 : 1), LVIS_STATEIMAGEMASK);
SetSelected(item, fCheck);
}
}
VOID SetSelected(INT item, BOOL value)
{
if (item < 0)
{
for (INT i = 0; i >= 0; i = GetNextItem(i, LVNI_ALL))
{
CAvailableApplicationInfo* pAppInfo = (CAvailableApplicationInfo*) GetItemData(i);
if (pAppInfo)
{
pAppInfo->m_IsSelected = value;
}
}
}
else
{
CAvailableApplicationInfo* pAppInfo = (CAvailableApplicationInfo*) GetItemData(item);
if (pAppInfo)
{
pAppInfo->m_IsSelected = value;
}
}
}
@ -554,20 +604,20 @@ public:
}
}
ATL::CSimpleArray<CAvailableApplicationInfo*> GetCheckedItems()
ATL::CSimpleArray<CAvailableApplicationInfo> GetCheckedItems()
{
if (!bHasCheckboxes)
{
return ATL::CSimpleArray<CAvailableApplicationInfo*>();
return ATL::CSimpleArray<CAvailableApplicationInfo>();
}
ATL::CSimpleArray<CAvailableApplicationInfo*> list;
ATL::CSimpleArray<CAvailableApplicationInfo> list;
for (INT i = 0; i >= 0; i = GetNextItem(i, LVNI_ALL))
{
if (GetCheckState(i) != FALSE)
{
CAvailableApplicationInfo* pAppInfo = (CAvailableApplicationInfo*) GetItemData(i);
list.Add(pAppInfo);
list.Add(*pAppInfo);
}
}
return list;
@ -645,7 +695,7 @@ public:
const INT m_Width;
const INT m_Height;
CSearchBar() : m_Width(200), m_Height(22)
CSearchBar() : m_Width(200), m_Height(22)
{
}
@ -729,33 +779,35 @@ private:
VOID InitCategoriesList()
{
HTREEITEM hRootItem1, hRootItem2;
HTREEITEM hRootItemInstalled, hRootItemAvailable;
hRootItem1 = AddCategory(TVI_ROOT, IDS_INSTALLED, IDI_CATEGORY);
AddCategory(hRootItem1, IDS_APPLICATIONS, IDI_APPS);
AddCategory(hRootItem1, IDS_UPDATES, IDI_APPUPD);
hRootItemInstalled = AddCategory(TVI_ROOT, IDS_INSTALLED, IDI_CATEGORY);
AddCategory(hRootItemInstalled, IDS_APPLICATIONS, IDI_APPS);
AddCategory(hRootItemInstalled, IDS_UPDATES, IDI_APPUPD);
hRootItem2 = AddCategory(TVI_ROOT, IDS_AVAILABLEFORINST, IDI_CATEGORY);
AddCategory(hRootItem2, IDS_CAT_AUDIO, IDI_CAT_AUDIO);
AddCategory(hRootItem2, IDS_CAT_VIDEO, IDI_CAT_VIDEO);
AddCategory(hRootItem2, IDS_CAT_GRAPHICS, IDI_CAT_GRAPHICS);
AddCategory(hRootItem2, IDS_CAT_GAMES, IDI_CAT_GAMES);
AddCategory(hRootItem2, IDS_CAT_INTERNET, IDI_CAT_INTERNET);
AddCategory(hRootItem2, IDS_CAT_OFFICE, IDI_CAT_OFFICE);
AddCategory(hRootItem2, IDS_CAT_DEVEL, IDI_CAT_DEVEL);
AddCategory(hRootItem2, IDS_CAT_EDU, IDI_CAT_EDU);
AddCategory(hRootItem2, IDS_CAT_ENGINEER, IDI_CAT_ENGINEER);
AddCategory(hRootItem2, IDS_CAT_FINANCE, IDI_CAT_FINANCE);
AddCategory(hRootItem2, IDS_CAT_SCIENCE, IDI_CAT_SCIENCE);
AddCategory(hRootItem2, IDS_CAT_TOOLS, IDI_CAT_TOOLS);
AddCategory(hRootItem2, IDS_CAT_DRIVERS, IDI_CAT_DRIVERS);
AddCategory(hRootItem2, IDS_CAT_LIBS, IDI_CAT_LIBS);
AddCategory(hRootItem2, IDS_CAT_OTHER, IDI_CAT_OTHER);
AddCategory(TVI_ROOT, IDS_SELECTEDFORINST, IDI_SELECTEDFORINST);
hRootItemAvailable = AddCategory(TVI_ROOT, IDS_AVAILABLEFORINST, IDI_CATEGORY);
AddCategory(hRootItemAvailable, IDS_CAT_AUDIO, IDI_CAT_AUDIO);
AddCategory(hRootItemAvailable, IDS_CAT_VIDEO, IDI_CAT_VIDEO);
AddCategory(hRootItemAvailable, IDS_CAT_GRAPHICS, IDI_CAT_GRAPHICS);
AddCategory(hRootItemAvailable, IDS_CAT_GAMES, IDI_CAT_GAMES);
AddCategory(hRootItemAvailable, IDS_CAT_INTERNET, IDI_CAT_INTERNET);
AddCategory(hRootItemAvailable, IDS_CAT_OFFICE, IDI_CAT_OFFICE);
AddCategory(hRootItemAvailable, IDS_CAT_DEVEL, IDI_CAT_DEVEL);
AddCategory(hRootItemAvailable, IDS_CAT_EDU, IDI_CAT_EDU);
AddCategory(hRootItemAvailable, IDS_CAT_ENGINEER, IDI_CAT_ENGINEER);
AddCategory(hRootItemAvailable, IDS_CAT_FINANCE, IDI_CAT_FINANCE);
AddCategory(hRootItemAvailable, IDS_CAT_SCIENCE, IDI_CAT_SCIENCE);
AddCategory(hRootItemAvailable, IDS_CAT_TOOLS, IDI_CAT_TOOLS);
AddCategory(hRootItemAvailable, IDS_CAT_DRIVERS, IDI_CAT_DRIVERS);
AddCategory(hRootItemAvailable, IDS_CAT_LIBS, IDI_CAT_LIBS);
AddCategory(hRootItemAvailable, IDS_CAT_OTHER, IDI_CAT_OTHER);
m_TreeView->SetImageList();
m_TreeView->Expand(hRootItem1, TVE_EXPAND);
m_TreeView->Expand(hRootItem2, TVE_EXPAND);
m_TreeView->SelectItem(hRootItem1);
m_TreeView->Expand(hRootItemInstalled, TVE_EXPAND);
m_TreeView->Expand(hRootItemAvailable, TVE_EXPAND);
m_TreeView->SelectItem(hRootItemAvailable);
}
BOOL CreateStatusBar()
@ -914,6 +966,8 @@ private:
VOID OnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
{
if (wParam == SIZE_MINIMIZED)
return;
/* Size status bar */
m_StatusBar->SendMessage(WM_SIZE, 0, 0);
@ -1081,6 +1135,10 @@ private:
case IDS_CAT_VIDEO:
UpdateApplicationsList(ENUM_CAT_VIDEO);
break;
case IDS_SELECTEDFORINST:
UpdateApplicationsList(ENUM_CAT_SELECTED);
break;
}
}
@ -1153,7 +1211,7 @@ private:
/* Check if the item is checked */
if ((pnic->uNewState & LVIS_STATEIMAGEMASK) && !bUpdating)
{
BOOL checked = ListView_GetCheckState(pnic->hdr.hwndFrom, pnic->iItem);
BOOL checked = m_ListView->GetCheckState(pnic->iItem);
/* FIXME: HAX!
- preventing decremention below zero as a safeguard for ReactOS
In ReactOS this action is triggered whenever user changes *selection*, but should be only when *checkbox* state toggled
@ -1165,6 +1223,10 @@ private:
: ((nSelectedApps > 0)
? -1
: 0);
/* Update item's selection status */
m_ListView->SetSelected(pnic->iItem, checked);
UpdateStatusBarText();
}
}
@ -1399,7 +1461,7 @@ private:
{
if (nSelectedApps > 0)
{
CDownloadManager::DownloadListOfApplications(m_ListView->GetCheckedItems());
CDownloadManager::DownloadListOfApplications(m_AvailableApps.GetSelected());
UpdateApplicationsList(-1);
}
else if (CDownloadManager::DownloadApplication(m_ListView->GetSelectedData()))
@ -1541,6 +1603,7 @@ private:
ListView_SetItemText(hListView, Index, 1, const_cast<LPWSTR>(Info->m_szVersion.GetString()));
ListView_SetItemText(hListView, Index, 2, const_cast<LPWSTR>(Info->m_szDesc.GetString()));
ListView_SetCheckState(hListView, Index, Info->m_IsSelected);
return TRUE;
}
@ -1565,7 +1628,6 @@ private:
bUpdating = TRUE;
m_ListView->SetRedraw(FALSE);
nSelectedApps = 0;
if (EnumType < 0)
{
EnumType = SelectedEnumType;
@ -1580,7 +1642,7 @@ private:
m_ListView->DeleteAllItems();
// Create new ImageList
// Create new ImageList
hImageListView = ImageList_Create(LISTVIEW_ICON_SIZE,
LISTVIEW_ICON_SIZE,
GetSystemColorDepth() | ILC_MASK,

View file

@ -1,7 +1,7 @@
#pragma once
#include <windef.h>
#include <atlstr.h>
#include <atlstr.h>
#include <atlsimpcoll.h>
#include <atlcoll.h>
@ -25,6 +25,7 @@ inline BOOL IsLicenseType(INT x)
struct CAvailableApplicationInfo
{
INT m_Category;
BOOL m_IsSelected;
LicenseType m_LicenseType;
ATL::CStringW m_szName;
ATL::CStringW m_szRegName;
@ -45,6 +46,7 @@ struct CAvailableApplicationInfo
ATL::CStringW m_szSHA1;
ATL::CStringW m_szInstalledVersion;
// Create an object from file
CAvailableApplicationInfo(const ATL::CStringW& sFileNameParam);
// Load all info from the file
@ -63,7 +65,7 @@ private:
BOOL m_IsInstalled;
BOOL m_HasLanguageInfo;
BOOL m_HasInstalledVersion;
CConfigParser m_Parser;
CConfigParser* m_Parser;
inline BOOL GetString(LPCWSTR lpKeyName, ATL::CStringW& ReturnedString);
@ -78,15 +80,19 @@ private:
typedef BOOL(CALLBACK *AVAILENUMPROC)(CAvailableApplicationInfo *Info, LPCWSTR szFolderPath);
struct AvailableStrings
{
ATL::CStringW szPath;
ATL::CStringW szCabPath;
ATL::CStringW szAppsPath;
ATL::CStringW szSearchPath;
AvailableStrings();
};
class CAvailableApps
{
static ATL::CStringW m_szPath;
static ATL::CStringW m_szCabPath;
static ATL::CStringW m_szAppsPath;
static ATL::CStringW m_szSearchPath;
static BOOL InitializeStaticStrings();
static AvailableStrings m_Strings;
ATL::CAtlList<CAvailableApplicationInfo*> m_InfoList;
public:
@ -100,12 +106,10 @@ public:
BOOL Enum(INT EnumType, AVAILENUMPROC lpEnumProc);
CAvailableApplicationInfo* FindInfo(const ATL::CStringW& szAppName) const;
ATL::CSimpleArray<CAvailableApplicationInfo*> FindInfoList(const ATL::CSimpleArray<ATL::CStringW> &arrAppsNames) const;
ATL::CSimpleArray<CAvailableApplicationInfo> FindInfoList(const ATL::CSimpleArray<ATL::CStringW> &arrAppsNames) const;
ATL::CSimpleArray<CAvailableApplicationInfo> GetSelected() const;
const ATL::CStringW& GetFolderPath() const;
const ATL::CStringW& GetAppPath() const;
const ATL::CStringW& GetCabPath() const;
LPCWSTR GetFolderPathString() const;
LPCWSTR GetAppPathString() const;
LPCWSTR GetCabPathString() const;
};

View file

@ -22,7 +22,7 @@ class CRichEdit :
if ((dwEffects == CFM_LINK) && !PathIsURLW(lpszText))
{
// if text is not an URL, no styling is used
SetRangeFormatting(Len, Len + InsertedTextLen, 0);
SetRangeFormatting(Len, Len + InsertedTextLen, 0);
}
else
{

View file

@ -23,13 +23,13 @@
#include <ndk/rtlfuncs.h>
#include <atlcoll.h>
#include <atlsimpcoll.h>
#include <atlstr.h>
#include <atlstr.h>
#include <rappsmsg.h>
#include "resource.h"
#include "winmain.h"
#define APPLICATION_DATABASE_URL L"https://svn.reactos.org/packages/rappmgr.cab"
#define APPLICATION_DATABASE_URL L"https://rapps.reactos.org/rappmgr.cab"
#define MAX_STR_LEN 256
enum AppsCategories
@ -50,13 +50,14 @@ enum AppsCategories
ENUM_CAT_DRIVERS,
ENUM_CAT_LIBS,
ENUM_CAT_OTHER,
ENUM_CAT_SELECTED,
ENUM_ALL_INSTALLED,
ENUM_INSTALLED_APPLICATIONS = 31,
ENUM_UPDATES = 32,
ENUM_INSTALLED_MIN = ENUM_ALL_INSTALLED,
ENUM_INSTALLED_MAX = ENUM_UPDATES,
ENUM_AVAILABLE_MIN = ENUM_ALL_AVAILABLE,
ENUM_AVAILABLE_MAX = ENUM_CAT_OTHER,
ENUM_AVAILABLE_MAX = ENUM_CAT_SELECTED,
};
inline BOOL IsAvailableEnum(INT x)

View file

@ -15,6 +15,7 @@ class CDownloadManager
static CDowloadingAppsListView DownloadsListView;
static VOID Download(const DownloadInfo& DLInfo, BOOL bIsModal = FALSE);
static VOID SetProgressMarquee(HWND Item, BOOL Enable);
public:
static INT_PTR CALLBACK DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
@ -26,7 +27,7 @@ public:
DWORD_PTR dwRefData);
static DWORD WINAPI ThreadFunc(LPVOID Context);
static BOOL DownloadListOfApplications(const ATL::CSimpleArray<CAvailableApplicationInfo*>& AppsList, BOOL bIsModal = FALSE);
static BOOL DownloadListOfApplications(const ATL::CSimpleArray<CAvailableApplicationInfo>& AppsList, BOOL bIsModal = FALSE);
static BOOL DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal = FALSE);
static VOID DownloadApplicationsDB(LPCWSTR lpUrl);
static VOID LaunchDownloadDialog(BOOL);

View file

@ -13,6 +13,7 @@
#define IDI_CATEGORY 19
#define IDI_UPDATE_DB 20
#define IDI_CHECK_ALL 21
#define IDI_SELECTEDFORINST 22
/* Icons for categories */
#define IDI_CAT_AUDIO 50
@ -100,7 +101,7 @@
#define IDS_UNABLE_TO_REMOVE 118
#define IDS_UNABLE_TO_DOWNLOAD 119
#define IDS_UNABLE_TO_DOWNLOAD2 120
#define IDS_CERT_DOES_NOT_MATCH 121
#define IDS_UNABLE_TO_QUERY_CERT 121
#define IDS_INTEG_CHECK_TITLE 122
#define IDS_INTEG_CHECK_FAIL 123
#define IDS_INTERRUPTED_DOWNLOAD 124
@ -108,6 +109,8 @@
#define IDS_SELECT_ALL 126
#define IDS_INSTALL_SELECTED 127
#define IDS_UNABLE_TO_INSTALL 128
#define IDS_SELECTEDFORINST 129
#define IDS_MISMATCH_CERT_INFO 130
/* Tooltips */
#define IDS_TOOLTIP_INSTALL 200
@ -171,7 +174,7 @@
#define IDS_CAT_VIDEO 714
/* App installation status */
#define IDS_STATUS_INSTALLED 800
#define IDS_STATUS_INSTALLED 800
#define IDS_STATUS_NOTINSTALLED 801
#define IDS_STATUS_DOWNLOADED 802
#define IDS_STATUS_UPDATE_AVAILABLE 803

View file

@ -31,5 +31,5 @@ extern SETTINGS_INFO SettingsInfo;
VOID SaveSettings(HWND hwnd);
VOID FillDefaultSettings(PSETTINGS_INFO pSettingsInfo);
// integrity.cpp
// integrity.cpp
BOOL VerifyInteg(LPCWSTR lpSHA1Hash, LPCWSTR lpFileName);

View file

@ -6,15 +6,11 @@
* COPYRIGHT: Copyright Ismael Ferreras Morezuelas (swyterzone+ros@gmail.com)
* Copyright Mark Jansen
*/
#include "rapps.h"
#include <sha1.h>
BOOL VerifyInteg(const ATL::CStringW &SHA1Hash, const ATL::CStringW &FileName)
{
return VerifyInteg(SHA1Hash.GetString(), FileName.GetString());
}
BOOL VerifyInteg(LPCWSTR lpSHA1Hash, LPCWSTR lpFileName)
{
BOOL ret = FALSE;

View file

@ -78,7 +78,7 @@ BEGIN
LTEXT "No proxy for", -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 "Добре", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "Добре", IDOK, 116, 195, 60, 14
PUSHBUTTON "Отказ", IDCANCEL, 181, 195, 60, 14
END
@ -87,16 +87,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Слагане на приложение"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "Слагане от оптичен носител", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Сваляне и слагане", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "Добре", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "Добре", IDOK, 86, 78, 60, 14
PUSHBUTTON "Отказ", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Сваляне %ls..."
CAPTION "Сваляне %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -109,9 +109,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "За"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Управителят за приложожения на РеактОС\nВъзпроизводствени права (C) 2009\nДмитрий Чапъйшев (dmitry@reactos.org)", IDC_STATIC, 48, 7, 150, 39
PUSHBUTTON "Затваряне", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "Управителят за приложожения на РеактОС\nВъзпроизводствени права (C) 2009\nДмитрий Чапъйшев (dmitry@reactos.org)", IDC_STATIC, 48, 7, 150, 39
DEFPUSHBUTTON "Затваряне", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -207,13 +207,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "Премахването на данните за приложението от регистъра е невъзможно!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -248,5 +250,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -69,7 +69,7 @@ BEGIN
GROUPBOX "Stahování", -1, 4, 65, 240, 51
LTEXT "Složka se staženými soubory:", -1, 16, 75, 100, 9
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
PUSHBUTTON "&Procházet...", IDC_CHOOSE, 187, 85, 50, 14
PUSHBUTTON "&Procházet", IDC_CHOOSE, 187, 85, 50, 14
AUTOCHECKBOX "&Smazat instalátor programu po dokončení instalace", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
GROUPBOX "Proxy", -1, 4, 116, 240, 76
CONTROL "Systémové nastavení proxy", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 210, 10
@ -79,7 +79,7 @@ BEGIN
LTEXT "Nepoužívat pro", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Výchozí", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Storno", IDCANCEL, 181, 195, 60, 14
END
@ -88,16 +88,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Instalace programu"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Instalovat z média (CD nebo DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Stáhnout a instalovat", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Storno", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Stahování %ls..."
CAPTION "Stahování %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -110,9 +110,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "O programu"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ReactOS Správce aplikací\nCopyright (C) 2009\nDmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Zavřít", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS Správce aplikací\nCopyright (C) 2009\nDmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Zavřít", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -188,7 +188,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS Správce aplikací"
IDS_SEARCH_TEXT "Hledat..."
IDS_SEARCH_TEXT "Hledat"
IDS_INSTALL "Instalovat"
IDS_UNINSTALL "Odinstalovat"
IDS_MODIFY "Změnit"
@ -208,13 +208,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "Nepodařilo se odstranit data programu z registru!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -249,5 +251,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -74,7 +74,7 @@ BEGIN
LTEXT "Kein Proxy", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Vorgabe", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Abbrechen", IDCANCEL, 181, 195, 60, 14
END
@ -83,16 +83,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Programminstallation"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Installation von einem Datenträger (CD oder DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "Herunterla&den und installieren", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Abbrechen", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Herunterladen %ls..."
CAPTION "Download von %ls…"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -105,9 +105,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Über"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ReactOS-Anwendungsmanager\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Schließen", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS-Anwendungsmanager\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Schließen", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -152,13 +152,13 @@ END
STRINGTABLE
BEGIN
IDS_AINFO_VERSION "\nVersion: "
IDS_AINFO_AVAILABLEVERSION "\nAvailable Version: "
IDS_AINFO_AVAILABLEVERSION "\nVerfügbare Version: "
IDS_AINFO_DESCRIPTION "\nBeschreibung: "
IDS_AINFO_SIZE "\nGröße: "
IDS_AINFO_URLSITE "\nHomepage: "
IDS_AINFO_LICENSE "\nLizenz: "
IDS_AINFO_URLDOWNLOAD "\nHerunterladen: "
IDS_AINFO_LANGUAGES "\nLanguages: "
IDS_AINFO_LANGUAGES "\nSprachen: "
END
STRINGTABLE
@ -183,11 +183,11 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS-Anwendungsmanager"
IDS_SEARCH_TEXT "Suche..."
IDS_SEARCH_TEXT "Suche"
IDS_INSTALL "Installieren"
IDS_UNINSTALL "Deinstallieren"
IDS_MODIFY "Ändern"
IDS_APPS_COUNT "Anzahl der Anwendungen: %d; Selected: %d"
IDS_APPS_COUNT "Anzahl der Anwendungen: %d, ausgewählt: %d"
IDS_WELCOME_TITLE "Willkommen im ReactOS-Anwendungsmanager!\n\n"
IDS_WELCOME_TEXT "Wählen Sie links eine Kategorie und dann eine Anwendung um sie zu installieren oder zu deinstallieren.\nReactOS-Webseite: "
IDS_WELCOME_URL "http://www.reactos.org"
@ -202,26 +202,28 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD "Paket konnte nicht geladen werden! Addresse wurde nicht gefunden!"
IDS_UNABLE_TO_DOWNLOAD2 "Paket konnte nicht geladen werden! Prüfen Sie Ihre Internetverbindung!"
IDS_UNABLE_TO_REMOVE "Konnte die Daten nicht aus der Registry löschen!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "Überprüfung des SSL-Zertifikats fehlgeschlagen."
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_UNABLE_TO_INSTALL "Paket konnte nicht installiert werden!"
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "Integritätsprüfung…"
IDS_INTEG_CHECK_FAIL "Das Paket hat die Integritätsprüfung nicht bestanden. Mögliche Ursachen sind Übertragungsfehler, Datenbankfehler oder Manipulation durch einen Angreifer. Sie sollten die Software nicht ausführen."
IDS_INTERRUPTED_DOWNLOAD "Übertragung unterbrochen. Prüfen Sie Ihre Internetverbindung!"
IDS_UNABLE_TO_WRITE "Schreibfehler. Prüfen Sie die Kapazität des Datenträgers!"
IDS_SELECT_ALL "Alle/Keine"
IDS_INSTALL_SELECTED "Ausgewählte Installieren"
IDS_SELECTEDFORINST "Zur Installation ausgewählt"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
BEGIN
IDS_STATUS_INSTALLED "Installed"
IDS_STATUS_NOTINSTALLED "Not installed"
IDS_STATUS_DOWNLOADED "Downloaded"
IDS_STATUS_UPDATE_AVAILABLE "Update available"
IDS_STATUS_DOWNLOADING "Downloading…"
IDS_STATUS_INSTALLING "Installing…"
IDS_STATUS_WAITING "Waiting to install…"
IDS_STATUS_FINISHED "Finished"
IDS_STATUS_INSTALLED "Installiert"
IDS_STATUS_NOTINSTALLED "Nicht installiert"
IDS_STATUS_DOWNLOADED "Heruntergeladen"
IDS_STATUS_UPDATE_AVAILABLE "Aktualisierung verfügbar"
IDS_STATUS_DOWNLOADING "Lädt herunter…"
IDS_STATUS_INSTALLING "Installiert…"
IDS_STATUS_WAITING "Installation anstehend…"
IDS_STATUS_FINISHED "Abgeschlossen"
END
STRINGTABLE
@ -233,16 +235,16 @@ END
STRINGTABLE
BEGIN
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Supports your language"
IDS_LANGUAGE_NO_TRANSLATION "Supports other languages"
IDS_LANGUAGE_ENGLISH_TRANSLATION "Supports English"
IDS_LANGUAGE_SINGLE "Single language"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d more)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d available)"
IDS_LANGUAGE_AVAILABLE_TRANSLATION "deutsch"
IDS_LANGUAGE_NO_TRANSLATION "anderssprachig"
IDS_LANGUAGE_ENGLISH_TRANSLATION "englisch"
IDS_LANGUAGE_SINGLE "einsprachig"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d mehr)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d verfügbar)"
END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DISP "Anwendungsdatenbank"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Datenbank-Aktualisierung…"
END

View file

@ -74,7 +74,7 @@ BEGIN
LTEXT "No proxy for", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Cancel", IDCANCEL, 181, 195, 60, 14
END
@ -83,16 +83,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Program installation"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 220
STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
CAPTION "Downloading %ls..."
STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
CAPTION "Downloading %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -105,9 +105,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "About"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Close", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Close", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -183,7 +183,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS Applications Manager"
IDS_SEARCH_TEXT "Search..."
IDS_SEARCH_TEXT "Search"
IDS_INSTALL "Install"
IDS_UNINSTALL "Uninstall"
IDS_MODIFY "Modify"
@ -203,13 +203,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "Unable to remove data on the program from the registry!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -244,5 +246,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -77,7 +77,7 @@ BEGIN
LTEXT "Sin proxy para:", -1, 125, 154, 50, 8, SS_RIGHT
EDITTEXT IDC_NO_PROXY_FOR, 177, 153, 61, 14, ES_AUTOHSCROLL
PUSHBUTTON "Por defecto", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14
PUSHBUTTON "Aceptar", IDOK, 116, 180, 60, 14
DEFPUSHBUTTON "Aceptar", IDOK, 116, 180, 60, 14
PUSHBUTTON "Cancelar", IDCANCEL, 181, 180, 60, 14
END
@ -86,16 +86,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Instalar programas"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Instalar desde un disco (CD o DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Descargar e instalar", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "Aceptar", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "Aceptar", IDOK, 86, 78, 60, 14
PUSHBUTTON "Cancelar", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Descargando %ls..."
CAPTION "Descargando %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -108,9 +108,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Acerca de"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Administrador de aplicaciones de ReactOS\nCopyright (C) 2009\nCreado por Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Cerrar", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "Administrador de aplicaciones de ReactOS\nCopyright (C) 2009\nCreado por Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Cerrar", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -186,7 +186,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "Administrador de aplicaciones de ReactOS"
IDS_SEARCH_TEXT "Buscar..."
IDS_SEARCH_TEXT "Buscar"
IDS_INSTALL "Instalar"
IDS_UNINSTALL "Desinstalar"
IDS_MODIFY "Modificar"
@ -206,13 +206,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "No se pudieron borrar del Registro los datos de instalación del programa."
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "Ha fallado la comprobación del certificado SSL."
IDS_INTEG_CHECK_TITLE "Verificando integridad del paquete..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "Verificando integridad del paquete"
IDS_INTEG_CHECK_FAIL "El paquete no ha pasado la comprobación de integridad, puede haber sido alterado o estar corrupto. No se recomienda ejecutarlo."
IDS_INTERRUPTED_DOWNLOAD "Se ha interrumpido la descarga por un error de red. Comprueba la conexión a Internet."
IDS_UNABLE_TO_WRITE "No se ha podido escribir en el disco duro, es posible que no quede espacio libre."
IDS_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -247,5 +249,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -74,7 +74,7 @@ BEGIN
LTEXT "Pas de proxy pour", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Par défaut", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "Accepter", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "Accepter", IDOK, 116, 195, 60, 14
PUSHBUTTON "Annuler", IDCANCEL, 181, 195, 60, 14
END
@ -83,16 +83,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Installation de programme"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Installer à partir d'un disque (CD ou DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Télécharger et installer", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "Accepter", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "Accepter", IDOK, 86, 78, 60, 14
PUSHBUTTON "Annuler", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Téléchargement %ls..."
CAPTION "Téléchargement %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -105,9 +105,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "À propos"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\npar Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Fermer", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\npar Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Fermer", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -183,7 +183,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS Applications Manager"
IDS_SEARCH_TEXT "Chercher..."
IDS_SEARCH_TEXT "Chercher"
IDS_INSTALL "Installer"
IDS_UNINSTALL "Désinstaller"
IDS_MODIFY "Modifier"
@ -203,13 +203,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Impossible de télécharger le paquet : vérifiez votre connexion à Internet !"
IDS_UNABLE_TO_REMOVE "Impossible de supprimer du registre les données du programme !"
IDS_UNABLE_TO_INSTALL "Impossible d'ouvrir l'installeur !"
IDS_CERT_DOES_NOT_MATCH "La vérification du certificat SSL a échoué."
IDS_INTEG_CHECK_TITLE "Vérification de l'intégrité du paquet..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "Vérification de l'intégrité du paquet"
IDS_INTEG_CHECK_FAIL "Le contrôle d'intégrité du paquet a échoué, il se peut qu'il ait été corrompu ou altéré au cours du téléchargement. L'exécution du programme n'est pas recommandée."
IDS_INTERRUPTED_DOWNLOAD "Le téléchargement a été interrompu. Vérifiez votre connexion à Internet."
IDS_UNABLE_TO_WRITE "Impossible d'écrire sur le disque. Votre disque pourrait être plein."
IDS_SELECT_ALL "Sélectionner/Désélectionner tout"
IDS_INSTALL_SELECTED "Installer les sélectionnés"
IDS_INSTALL_SELECTED "Installer la sélection"
IDS_SELECTEDFORINST "Sélectionnées pour installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -237,12 +239,12 @@ BEGIN
IDS_LANGUAGE_NO_TRANSLATION "Supporte d'autres langues"
IDS_LANGUAGE_ENGLISH_TRANSLATION "Supporte l'Anglais"
IDS_LANGUAGE_SINGLE "Langue unique"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d more)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d available)"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+ %d de plus)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+ %d disponibles)"
END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Base de données d'applications"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Mise à jour de la base de données..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Mise à jour de la base de données"
END

View file

@ -20,7 +20,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
@ -50,12 +50,13 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "רענן\tF5", ID_REFRESH
MENUITEM SEPARATOR
MENUITEM "Update Da&tabase\tCtrl+F5", ID_RESETDB
MENUITEM "עדכון מסד נתונים\tCtrl+F5", ID_RESETDB
END
END
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 215
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "הגדרות"
FONT 8, "MS Shell Dlg"
BEGIN
@ -68,33 +69,35 @@ BEGIN
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
PUSHBUTTON "בחר", IDC_CHOOSE, 187, 85, 50, 14
AUTOCHECKBOX "מחק את קובץ ההתקנה לאחר סיום ההתקנה", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
GROUPBOX "Proxy", -1, 4, 116, 240, 76
CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 210, 10
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
GROUPBOX "שרת פרוקסי", -1, 4, 116, 240, 76
CONTROL "הגדרות פרוקסי של המערכת", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 210, 10
CONTROL "חיבור ישיר(ללא פרוקסי)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 210, 10
CONTROL "פרוקסי", 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 "אישור", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "אישור", IDOK, 116, 195, 60, 14
PUSHBUTTON "ביטול", IDCANCEL, 181, 195, 60, 14
END
IDD_INSTALL_DIALOG DIALOGEX 0, 0, 216, 97
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "התקנת תכנית"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "התקן מתוך דיסק (CD או DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "הורד והתקן", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "אישור", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "אישור", IDOK, 86, 78, 60, 14
PUSHBUTTON "ביטול", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "הורדה %ls..."
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "הורדה %ls…"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -104,12 +107,13 @@ END
IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "אודות"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "סגירה", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "סגירה", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -119,7 +123,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
@ -154,13 +158,13 @@ END
STRINGTABLE
BEGIN
IDS_AINFO_VERSION "\nגרסה: "
IDS_AINFO_AVAILABLEVERSION "\nAvailable Version: "
IDS_AINFO_AVAILABLEVERSION "\nגרסה זמינה: "
IDS_AINFO_DESCRIPTION "\nתיאור: "
IDS_AINFO_SIZE "\nגודל: "
IDS_AINFO_URLSITE "\nדף בית: "
IDS_AINFO_LICENSE "\nרישיון: "
IDS_AINFO_URLDOWNLOAD "\nהורד: "
IDS_AINFO_LANGUAGES "\nLanguages: "
IDS_AINFO_LANGUAGES "\nשפות: "
END
STRINGTABLE
@ -185,7 +189,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "מנהל היישומים של ReactOS"
IDS_SEARCH_TEXT "חפש..."
IDS_SEARCH_TEXT "חפש"
IDS_INSTALL "התקנה"
IDS_UNINSTALL "הסרה"
IDS_MODIFY "שינוי"
@ -205,30 +209,32 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "Unable to remove data on the program from the registry!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
BEGIN
IDS_STATUS_INSTALLED "Installed"
IDS_STATUS_NOTINSTALLED "Not installed"
IDS_STATUS_DOWNLOADED "Downloaded"
IDS_STATUS_UPDATE_AVAILABLE "Update available"
IDS_STATUS_DOWNLOADING "Downloading…"
IDS_STATUS_INSTALLING "Installing…"
IDS_STATUS_WAITING "Waiting to install…"
IDS_STATUS_FINISHED "Finished"
IDS_STATUS_INSTALLED "מותקן"
IDS_STATUS_NOTINSTALLED "לא מותקן"
IDS_STATUS_DOWNLOADED "הורד"
IDS_STATUS_UPDATE_AVAILABLE "עדכון זמין"
IDS_STATUS_DOWNLOADING "מוריד..."
IDS_STATUS_INSTALLING "מתקין..."
IDS_STATUS_WAITING "מחכה להתקנה..."
IDS_STATUS_FINISHED "הסתיים"
END
STRINGTABLE
BEGIN
IDS_LICENSE_OPENSOURCE "Open Source"
IDS_LICENSE_OPENSOURCE "קוד פתוח"
IDS_LICENSE_FREEWARE "Freeware"
IDS_LICENSE_TRIAL "Trial/Demo"
END
@ -246,5 +252,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -74,7 +74,7 @@ BEGIN
LTEXT "Ignora proxy per:", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Predefiniti", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Annulla", IDCANCEL, 181, 195, 60, 14
END
@ -83,16 +83,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Installazione"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Installa da un disco (CD o DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Scarica e installa", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Annulla", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Scaricamento in corso %ls..."
CAPTION "Scaricamento in corso %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -105,9 +105,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Informazioni"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Gestione applicazioni di ReactOS \nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Chiudi", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "Gestione applicazioni di ReactOS \nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Chiudi", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -152,13 +152,13 @@ END
STRINGTABLE
BEGIN
IDS_AINFO_VERSION "\nVersione: "
IDS_AINFO_AVAILABLEVERSION "\nAvailable Version: "
IDS_AINFO_AVAILABLEVERSION "\nVersione Disponibile: "
IDS_AINFO_DESCRIPTION "\nDescrizione: "
IDS_AINFO_SIZE "\nDimensione: "
IDS_AINFO_URLSITE "\nHome Page: "
IDS_AINFO_URLSITE "\nPagina Iniziale: "
IDS_AINFO_LICENSE "\nLicenza: "
IDS_AINFO_URLDOWNLOAD "\nScaricare: "
IDS_AINFO_LANGUAGES "\nLanguages: "
IDS_AINFO_LANGUAGES "\nLingue: "
END
STRINGTABLE
@ -183,11 +183,11 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS Gestione applicazioni"
IDS_SEARCH_TEXT "Cerca..."
IDS_SEARCH_TEXT "Cerca"
IDS_INSTALL "Installa"
IDS_UNINSTALL "Rimuovi"
IDS_MODIFY "Modifica"
IDS_APPS_COUNT "Numero applicazioni: %d; Selected: %d"
IDS_APPS_COUNT "Numero applicazioni: %d; Selezionate: %d"
IDS_WELCOME_TITLE "Benvenuto!\n\n"
IDS_WELCOME_TEXT "Scegliere una categoria a sinistra, poi scegliere una applicazione da installare o disinstallare.\nReactOS Web Site: "
IDS_WELCOME_URL "http://www.reactos.org"
@ -200,28 +200,30 @@ BEGIN
IDS_APP_REG_REMOVE "Sicuro di voler cancellare dal registro i dati sui programmi installati?"
IDS_INFORMATION "Informazioni"
IDS_UNABLE_TO_DOWNLOAD "Impossibile scaricare il pacchetto! Indirizzo non trovato!"
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_DOWNLOAD2 "Impossibile scaricare il pacchetto! Controlla la tua connessione internet!"
IDS_UNABLE_TO_REMOVE "Impossibile cancellare i dati dal registro!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "Verifica del certificato SSL fallita."
IDS_INTEG_CHECK_TITLE "Verifica integrità pacchetto..."
IDS_INTEG_CHECK_FAIL "Il pacchetto non ha superato il controllo di integrità, potrebbe essere stato danneggiato o manomesso durante lo scaricamento. L'esecuzione del software non è raccomandata."
IDS_INTERRUPTED_DOWNLOAD "Lo scaricamento è stato interrotto. Verificare la connessione a Internet."
IDS_UNABLE_TO_INSTALL "Impossibile aprire l'installer!"
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "Verifica integrità pacchetto"
IDS_INTEG_CHECK_FAIL "Il pacchetto non ha superato il controllo di integrità, potrebbe essere stato danneggiato o manomesso durante lo scaricamento. L'esecuzione del software non è raccomandata."
IDS_INTERRUPTED_DOWNLOAD "Lo scaricamento è stato interrotto. Verificare la connessione a Internet."
IDS_UNABLE_TO_WRITE "Impossibile scrivere su disco: lo spazio libero potrebbe essere esaurito."
IDS_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECT_ALL "Seleziona/Deseleziona Tutte"
IDS_INSTALL_SELECTED "Installa le selezionate"
IDS_SELECTEDFORINST "Selezionate per l'installazione"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
BEGIN
IDS_STATUS_INSTALLED "Installed"
IDS_STATUS_NOTINSTALLED "Not installed"
IDS_STATUS_DOWNLOADED "Downloaded"
IDS_STATUS_UPDATE_AVAILABLE "Update available"
IDS_STATUS_DOWNLOADING "Downloading…"
IDS_STATUS_INSTALLING "Installing…"
IDS_STATUS_WAITING "Waiting to install…"
IDS_STATUS_FINISHED "Finished"
IDS_STATUS_INSTALLED "Installato"
IDS_STATUS_NOTINSTALLED "Non installato"
IDS_STATUS_DOWNLOADED "Scaricato"
IDS_STATUS_UPDATE_AVAILABLE "Aggiornamento disponibile"
IDS_STATUS_DOWNLOADING "Scaricamento…"
IDS_STATUS_INSTALLING "Installazione…"
IDS_STATUS_WAITING "In attesa di installare…"
IDS_STATUS_FINISHED "Finito"
END
STRINGTABLE
@ -233,16 +235,16 @@ END
STRINGTABLE
BEGIN
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Supports your language"
IDS_LANGUAGE_NO_TRANSLATION "Supports other languages"
IDS_LANGUAGE_ENGLISH_TRANSLATION "Supports English"
IDS_LANGUAGE_SINGLE "Single language"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d more)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d available)"
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Supporta la tua lingua"
IDS_LANGUAGE_NO_TRANSLATION "Supporta le altre lingue"
IDS_LANGUAGE_ENGLISH_TRANSLATION "Supporta l'Inglese"
IDS_LANGUAGE_SINGLE "Lingua singola"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d più)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d disponibile)"
END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DISP "Applicazioni Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Aggiornamento Database…"
END

View file

@ -74,7 +74,7 @@ BEGIN
LTEXT "No proxy for", -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
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "キャンセル", IDCANCEL, 181, 195, 60, 14
END
@ -83,16 +83,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "プログラムのインストール"
FONT 9, "MS UI Gothic"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "ディスクからインストール (CD や DVD)(&I)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "ダウンロードしてインストール(&D)", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "キャンセル", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "ダウンロード %ls..."
CAPTION "ダウンロード %ls"
FONT 9, "MS UI Gothic"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -105,9 +105,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "バージョン情報"
FONT 9, "MS UI Gothic"
BEGIN
LTEXT "ReactOS アプリケーション マネージャ\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "閉じる", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS アプリケーション マネージャ\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "閉じる", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -183,7 +183,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS アプリケーション マネージャ"
IDS_SEARCH_TEXT "検索..."
IDS_SEARCH_TEXT "検索"
IDS_INSTALL "インストール"
IDS_UNINSTALL "アンインストール"
IDS_MODIFY "変更"
@ -203,13 +203,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "レジストリからこのプログラムに関するデータを削除できません!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -244,5 +246,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -74,7 +74,7 @@ BEGIN
LTEXT "No proxy for", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Cancel", IDCANCEL, 181, 195, 60, 14
END
@ -83,16 +83,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Program installation"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Lastet ned %ls..."
CAPTION "Lastet ned %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -105,9 +105,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Om"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ReactOS Programbehandler\nEnerett (C) 2009\nav Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Lukk", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS Programbehandler\nEnerett (C) 2009\nav Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Lukk", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -182,7 +182,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS programbehandler"
IDS_SEARCH_TEXT "Søk..."
IDS_SEARCH_TEXT "Søk"
IDS_INSTALL "Installere"
IDS_UNINSTALL "Avinstallere"
IDS_MODIFY "Endre"
@ -202,13 +202,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "Unable to remove data on the program from the registry!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -243,5 +245,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -82,7 +82,7 @@ BEGIN
LTEXT "Bez proxy dla", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Domyślne", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Anuluj", IDCANCEL, 181, 195, 60, 14
END
@ -91,16 +91,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Instalacja programu"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Zainstaluj z dysku (CD lub DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Pobierz i zainstaluj", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Anuluj", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 220
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Pobierz %ls..."
CAPTION "Pobierz %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -113,9 +113,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "O programie"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Menedżer aplikacji ReactOS\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Zamknij", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "Menedżer aplikacji ReactOS\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Zamknij", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -160,13 +160,13 @@ END
STRINGTABLE
BEGIN
IDS_AINFO_VERSION "\nWersja: "
IDS_AINFO_AVAILABLEVERSION "\nAvailable Version: "
IDS_AINFO_AVAILABLEVERSION "\nDostępna wersja: "
IDS_AINFO_DESCRIPTION "\nOpis: "
IDS_AINFO_SIZE "\nRozmiar: "
IDS_AINFO_URLSITE "\nStrona: "
IDS_AINFO_LICENSE "\nLicencja: "
IDS_AINFO_URLDOWNLOAD "\nPobieranie: "
IDS_AINFO_LANGUAGES "\nLanguages: "
IDS_AINFO_LANGUAGES "\nJęzyki: "
END
STRINGTABLE
@ -191,7 +191,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "Menedżer aplikacji ReactOS"
IDS_SEARCH_TEXT "Szukaj..."
IDS_SEARCH_TEXT "Szukaj"
IDS_INSTALL "Instaluj"
IDS_UNINSTALL "Odinstaluj"
IDS_MODIFY "Modyfikuj"
@ -211,13 +211,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Nie można pobrać pakietu! Sprawdź połączenie z siecią!"
IDS_UNABLE_TO_REMOVE "Nie można było usunąć wpisu z rejestru!"
IDS_UNABLE_TO_INSTALL "Nie można uruchomić instalatora!"
IDS_CERT_DOES_NOT_MATCH "Weryfikacja certyfikatu SSL nieudana."
IDS_INTEG_CHECK_TITLE "Weryfikowanie integralności pakietu..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "Weryfikowanie integralności pakietu"
IDS_INTEG_CHECK_FAIL "Pakiet nie przeszedł kontroli integralności, mógł zostać uszkodzony lub naruszony podczas pobierania. Uruchamianie tego programu nie jest zalecane."
IDS_INTERRUPTED_DOWNLOAD "Pobieranie zostało przerwane. Sprawdź połączenie z siecią"
IDS_UNABLE_TO_WRITE "Nie można zapisać na dysku. Dysk może być pełny."
IDS_SELECT_ALL "Zaznacz/Odznacz Wszystko"
IDS_INSTALL_SELECTED "Instaluj Zaznaczone"
IDS_SELECTEDFORINST "Wybrane do instalacji"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -227,7 +229,7 @@ BEGIN
IDS_STATUS_DOWNLOADED "Pobrane"
IDS_STATUS_UPDATE_AVAILABLE "Dostępna aktualizacja"
IDS_STATUS_DOWNLOADING "Pobieranie…"
IDS_STATUS_INSTALLING "Instalowanie…"
IDS_STATUS_INSTALLING "Instalowanie…"
IDS_STATUS_WAITING "Oczekiwanie na instalację…"
IDS_STATUS_FINISHED "Gotowe"
END
@ -251,6 +253,6 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Baza Programów"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Aktualizowanie bazy Programów..."
IDS_DL_DIALOG_DB_DISP "Baza programów"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Aktualizowanie bazy programów…"
END

View file

@ -76,7 +76,7 @@ BEGIN
LTEXT "No proxy for", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Padrão", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Cancelar", IDCANCEL, 181, 195, 60, 14
END
@ -85,16 +85,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Instalação do programa"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Instalar com uma mídia (CD ou DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Baixar e instalar", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Cancelar", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Download %ls..."
CAPTION "Download %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -107,9 +107,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Sobre"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Central de Aplicativos ReactOS\nCopyright (C) 2009\npor Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Fechar", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "Central de Aplicativos ReactOS\nCopyright (C) 2009\npor Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Fechar", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -185,7 +185,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "Central de Aplicativos ReactOS"
IDS_SEARCH_TEXT "Procurar..."
IDS_SEARCH_TEXT "Procurar"
IDS_INSTALL "Instalar"
IDS_UNINSTALL "Desinstalar"
IDS_MODIFY "Modificar"
@ -205,13 +205,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "Não foi possível remover as informações do programa do registro!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -246,5 +248,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -1,4 +1,11 @@
/* Ștefan Fulea (stefan dot fulea at mail dot md) */
/*
* PROJECT: ReactOS Applications Manager (RAPPS)
* FILE: base/applications/rapps/lang/ro-RO.rc
* PURPOSE: Romanian Translation for RAPPS
* TRANSLATORS:
* Ștefan Fulea (stefan dot fulea at mail dot md)
* Bișoc George (fraizeraust99@gmail.com)
*/
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
@ -76,7 +83,7 @@ BEGIN
LTEXT "excepție pentru", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "I&mplicite", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "Con&firmă", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "Con&firmă", IDOK, 116, 195, 60, 14
PUSHBUTTON "A&nulează", IDCANCEL, 181, 195, 60, 14
END
@ -85,16 +92,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Instalare aplicație"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "Instalea&ză de pe un disc (CD sau DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Descarcă și instalează", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "Con&firmă", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "Con&firmă", IDOK, 86, 78, 60, 14
PUSHBUTTON "A&nulează", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "În curs de descărcare %ls..."
CAPTION "În curs de descărcare %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -107,9 +114,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Despre gestionarul de programe"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Gestionar de programe ReactOS\nDrept de autor (C) 2009\nde către Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Î&nchide", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "Gestionar de programe ReactOS\nDrept de autor (C) 2009\nde către Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Î&nchide", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -154,13 +161,13 @@ END
STRINGTABLE
BEGIN
IDS_AINFO_VERSION "\nVersiune: "
IDS_AINFO_AVAILABLEVERSION "\nAvailable Version: "
IDS_AINFO_AVAILABLEVERSION "\nVersiune disponibilă: "
IDS_AINFO_DESCRIPTION "\nDescriere: "
IDS_AINFO_SIZE "\nDimensiune: "
IDS_AINFO_URLSITE "\nAdresă web: "
IDS_AINFO_LICENSE "\nLicență: "
IDS_AINFO_URLDOWNLOAD "\nURL fișier: "
IDS_AINFO_LANGUAGES "\nLanguages: "
IDS_AINFO_LANGUAGES "\nLimbi: "
END
STRINGTABLE
@ -189,7 +196,7 @@ BEGIN
IDS_INSTALL "Instalează"
IDS_UNINSTALL "Dezinstalează"
IDS_MODIFY "Modifică"
IDS_APPS_COUNT "Numărul de programe: %d; Selected: %d"
IDS_APPS_COUNT "Numărul de programe: %d; Selectate: %d"
IDS_WELCOME_TITLE "Bun venit la gestionarul de programe ReactOS!\n\n"
IDS_WELCOME_TEXT "Alegeți o categorie din stânga, apoi alegeți o aplicație pentru a o instala sau dezinstala.\nArdesa web ReactOS: "
IDS_WELCOME_URL "http://www.reactos.org"
@ -204,47 +211,49 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD "Pachetul nu poate fi descărcat! Adresa nu este găsită!"
IDS_UNABLE_TO_DOWNLOAD2 "Pachetul nu poate fi descărcat! Verificați conexiunea de Internet!"
IDS_UNABLE_TO_REMOVE "Datele de registru pentru acest program nu au putut fi eliminate!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "Verificarea certificatului SSL a eșuat."
IDS_UNABLE_TO_INSTALL "Programul de instalare nu poate fi executat!"
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "Integritatea pachetului în verificare…"
IDS_INTEG_CHECK_FAIL "Pachetul nu a trecut de verificarea de integritate. Utilizarea programului nu este recomandată."
IDS_INTERRUPTED_DOWNLOAD "Descărcarea a fost întreruptă. Verificați conexiunea la Internet."
IDS_UNABLE_TO_WRITE "Eșec la scriea pe disc. Una din cauze poate fi atingerea limitei de capacitate."
IDS_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_UNABLE_TO_WRITE "Eșec la scrierea pe disc. Una din cauze poate fi atingerea limitei de capacitate."
IDS_SELECT_ALL "Selectează/Deselectează Toate"
IDS_INSTALL_SELECTED "Instalează selecționate"
IDS_SELECTEDFORINST "Selectate pentru instalare"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
BEGIN
IDS_STATUS_INSTALLED "Installed"
IDS_STATUS_NOTINSTALLED "Not installed"
IDS_STATUS_DOWNLOADED "Downloaded"
IDS_STATUS_UPDATE_AVAILABLE "Update available"
IDS_STATUS_DOWNLOADING "Downloading…"
IDS_STATUS_INSTALLING "Installing…"
IDS_STATUS_WAITING "Waiting to install…"
IDS_STATUS_FINISHED "Finished"
IDS_STATUS_INSTALLED "Instalat"
IDS_STATUS_NOTINSTALLED "Nu instalat"
IDS_STATUS_DOWNLOADED "Descărcat"
IDS_STATUS_UPDATE_AVAILABLE "Actualizare disponibilă"
IDS_STATUS_DOWNLOADING "Descărcare…"
IDS_STATUS_INSTALLING "Instalare…"
IDS_STATUS_WAITING "În fază de instalare…"
IDS_STATUS_FINISHED "Terminat"
END
STRINGTABLE
BEGIN
IDS_LICENSE_OPENSOURCE "Open Source"
IDS_LICENSE_OPENSOURCE "Sursă Deschisă"
IDS_LICENSE_FREEWARE "Freeware"
IDS_LICENSE_TRIAL "Trial/Demo"
END
STRINGTABLE
BEGIN
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Supports your language"
IDS_LANGUAGE_NO_TRANSLATION "Supports other languages"
IDS_LANGUAGE_ENGLISH_TRANSLATION "Supports English"
IDS_LANGUAGE_SINGLE "Single language"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d more)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d available)"
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Suportă limba respectivă"
IDS_LANGUAGE_NO_TRANSLATION "Suportă alte limbi"
IDS_LANGUAGE_ENGLISH_TRANSLATION "Suportă limba Engleză"
IDS_LANGUAGE_SINGLE "Singura Limbă"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d mult)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d disponibil)"
END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DISP "Aplicații baza de date"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Actualizare baza de date…"
END

View file

@ -74,7 +74,7 @@ BEGIN
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
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Отмена", IDCANCEL, 181, 195, 60, 14
END
@ -83,16 +83,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Установка программы"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Установить с диска", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Скачать и установить", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Отмена", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 220
STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_SYSMENU | WS_VISIBLE
CAPTION "Загрузка %ls..."
CAPTION "Загрузка %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -105,9 +105,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "О программе"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Менеджер приложений ReactOS\nАвторские права (C) 2009\nДмитрий Чапышев (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Закрыть", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "Менеджер приложений ReactOS\nАвторские права (C) 2009\nДмитрий Чапышев (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Закрыть", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -183,7 +183,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "Менеджер приложений ReactOS"
IDS_SEARCH_TEXT "Поиск..."
IDS_SEARCH_TEXT "Поиск"
IDS_INSTALL "Установить"
IDS_UNINSTALL "Удалить"
IDS_MODIFY "Изменить"
@ -203,13 +203,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Не удалось скачать приложение! Проверьте подключение к сети Интернет!"
IDS_UNABLE_TO_REMOVE "Не удалось удалить данные о программе из реестра!"
IDS_UNABLE_TO_INSTALL "Не удалось завершить установку!"
IDS_CERT_DOES_NOT_MATCH "Ошибка проверки SSL сертификата."
IDS_INTEG_CHECK_TITLE "Проверка целостности приложения..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "Проверка целостности приложения"
IDS_INTEG_CHECK_FAIL "Приложение не прошло проверку целостности, возможно оно было повреждено или подменено. Запуск приложения не рекомендуется."
IDS_INTERRUPTED_DOWNLOAD "Загрузка была прервана. Проверьте подключение к сети Интернет."
IDS_UNABLE_TO_WRITE "Не удалось записать данные на диск. Возможно, недостаточно свободного места на диске."
IDS_SELECT_ALL "Выбрать все"
IDS_INSTALL_SELECTED "Установить выбранное"
IDS_SELECTEDFORINST "Выбрано для установки"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -219,7 +221,7 @@ BEGIN
IDS_STATUS_DOWNLOADED "Загружено"
IDS_STATUS_UPDATE_AVAILABLE "Есть обновления"
IDS_STATUS_DOWNLOADING "Загружается…"
IDS_STATUS_INSTALLING "Установка..."
IDS_STATUS_INSTALLING "Установка"
IDS_STATUS_WAITING "Ожидание установки…"
IDS_STATUS_FINISHED "Завершено"
END
@ -244,5 +246,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "База данных приложений"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Обновление базы данных..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Обновление базы данных"
END

View file

@ -79,7 +79,7 @@ BEGIN
LTEXT "No proxy for", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Predvolené", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Zrušiť", IDCANCEL, 181, 195, 60, 14
END
@ -88,16 +88,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Inštalácia programu"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Inštalovať z disku (CD alebo DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Stiahnuť a inštalovať", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Zrušiť", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Sťahujem %ls..." // Stiahnuť ???
CAPTION "Sťahujem %ls" // Stiahnuť ???
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -110,9 +110,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Čo je Manažér aplikácií systému ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Manažér aplikácií systému ReactOS\nAutorské práva (C) 2009\nod Dmitry Chapyshev (dmitry@reactos.org)\nPreklad: Mário Kačmár (kario@szm.sk)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Zavrieť", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "Manažér aplikácií systému ReactOS\nAutorské práva (C) 2009\nod Dmitry Chapyshev (dmitry@reactos.org)\nPreklad: Mário Kačmár (kario@szm.sk)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Zavrieť", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -188,7 +188,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "Manažér aplikácií systému ReactOS"
IDS_SEARCH_TEXT "Hľadať..."
IDS_SEARCH_TEXT "Hľadať"
IDS_INSTALL "Inštalovať"
IDS_UNINSTALL "Odinštalovať"
IDS_MODIFY "Zmeniť"
@ -208,13 +208,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "Nie je možné odstrániť z registrov údaje o programe!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -249,5 +251,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -78,7 +78,7 @@ BEGIN
LTEXT "No proxy for", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Parazgjedhur", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Anulo", IDCANCEL, 181, 195, 60, 14
END
@ -87,16 +87,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Instalimi i Programeve"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Instalo nga nje disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "Shkarko dhe instalo", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Anulo", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Shkarko %ls..."
CAPTION "Shkarko %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -109,9 +109,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Rreth"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\nnga Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Close", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\nnga Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Close", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -187,7 +187,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS Applications Manager"
IDS_SEARCH_TEXT "Kerko..."
IDS_SEARCH_TEXT "Kerko"
IDS_INSTALL "Instalo"
IDS_UNINSTALL "Uninstall"
IDS_MODIFY "Modifiko"
@ -207,13 +207,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "E pamundur te fshihen informacionet e programit nga regjistri!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -248,5 +250,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -81,7 +81,7 @@ BEGIN
LTEXT "No proxy for", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Standard", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "OK", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Avbryt", IDCANCEL, 181, 195, 60, 14
END
@ -90,16 +90,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Programinstallation"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Installera från disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Ladda ner och installera", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Avbryt", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "Ladda ner %ls..."
CAPTION "Ladda ner %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -112,9 +112,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Om"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ReactOS Programhanterare\nCopyright (C) 2009\nav Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Stäng", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS Programhanterare\nCopyright (C) 2009\nav Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Stäng", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -190,7 +190,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS programhanterare"
IDS_SEARCH_TEXT "Sök..."
IDS_SEARCH_TEXT "Sök"
IDS_INSTALL "Installera"
IDS_UNINSTALL "Avinstallera"
IDS_MODIFY "Ändra"
@ -210,13 +210,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "Det gick ej att ta bort programmets data från registret!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed."
IDS_INTEG_CHECK_TITLE "Verifying package integrity..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -251,5 +253,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -1,4 +1,4 @@
/* TRANSLATOR: 2013-2016 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
/* TRANSLATOR: 2013-2016 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
@ -6,7 +6,7 @@ IDR_MAINMENU MENU
BEGIN
POPUP "&Kütük"
BEGIN
MENUITEM "&Ayarlar...", ID_SETTINGS
MENUITEM "&Ayarlar", ID_SETTINGS
MENUITEM SEPARATOR
MENUITEM "&Çıkış", ID_EXIT
END
@ -76,7 +76,7 @@ BEGIN
LTEXT "Şunun İçin Vekil Sunucu Yok", -1, 27, 175, 64, 10
EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
PUSHBUTTON "Ön Tanımlılar", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14
PUSHBUTTON "Tamam", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "Tamam", IDOK, 116, 195, 60, 14
PUSHBUTTON "İptal", IDCANCEL, 181, 195, 60, 14
END
@ -85,16 +85,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "İzlence Kurulumu"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Bir Diskten (CD'den veyâ DVD'den) Kur", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&İndir ve Kur", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "Tamam", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "Tamam", IDOK, 86, 78, 60, 14
PUSHBUTTON "İptal", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "İndiriliyor %ls..."
CAPTION "İndiriliyor %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -107,9 +107,9 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Üzerine"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ReactOS Uygulama Yöneticisi\nTelif Hakkı: 2009\nDmitry Chapyshev (dmitry@reactos.org) ile.", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Tamam", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS Uygulama Yöneticisi\nTelif Hakkı: 2009\nDmitry Chapyshev (dmitry@reactos.org) ile.", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Tamam", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -205,13 +205,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Paket indirilemez! Umûmî Ağ bağlantınızı yoklayınız!"
IDS_UNABLE_TO_REMOVE "İzlencenin girişi değer defterinden silinemiyor."
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL onay belgesi doğrulaması başarısız."
IDS_INTEG_CHECK_TITLE "Paket bütünlüğü doğrulanıyor..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "Paket bütünlüğü doğrulanıyor"
IDS_INTEG_CHECK_FAIL "Paket bütünlük denetimini geçmedi, bozulmuş veyâ indirme esnâsında oynanmış olabilir. Yazılımı çalıştırmak önerilmez."
IDS_INTERRUPTED_DOWNLOAD "İndirme kesildi. Umûmî Ağ bağlantınızı denetleyiniz."
IDS_UNABLE_TO_WRITE "Diske yazılamıyor. Disk dolu olabilir."
IDS_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -246,5 +248,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -82,7 +82,7 @@ BEGIN
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
DEFPUSHBUTTON "OK", IDOK, 116, 195, 60, 14
PUSHBUTTON "Скасувати", IDCANCEL, 181, 195, 60, 14
END
@ -91,16 +91,16 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "Встановлення програми"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "&Встановити з диску", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "&Завантажити та встановити", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "OK", IDOK, 86, 78, 60, 14
PUSHBUTTON "Скасувати", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 220
STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_SYSMENU | WS_VISIBLE
CAPTION "Завантаження %ls..."
CAPTION "Завантаження %ls"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
@ -110,12 +110,12 @@ END
IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Про програму..."
CAPTION "Про програму"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Менеджер додатків ReactOS\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "Закрити", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "Менеджер додатків ReactOS\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "Закрити", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -191,7 +191,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "Менеджер додатків ReactOS"
IDS_SEARCH_TEXT "Пошук..."
IDS_SEARCH_TEXT "Пошук"
IDS_INSTALL "Встановити"
IDS_UNINSTALL "Видалити"
IDS_MODIFY "Змінити"
@ -211,13 +211,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Неможливо завантажити додаток! Перевірте підключення до мережі Інтернет!"
IDS_UNABLE_TO_REMOVE "Не вдалося видалити дані про програму з реєстру!"
IDS_UNABLE_TO_INSTALL "Не вдалося завершити інсталювання!"
IDS_CERT_DOES_NOT_MATCH "Помилка перевіки сертифікату SSL."
IDS_INTEG_CHECK_TITLE "Перевірка цілістності додатку..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "Перевірка цілістності додатку"
IDS_INTEG_CHECK_FAIL "Додаток не пройшов перевірку цілістності, його молги пошкодити чи замінити. Запуск додатку не рекомендується."
IDS_INTERRUPTED_DOWNLOAD "Завантаження перервано. Перевірте підключення до мережі Інтернет."
IDS_UNABLE_TO_WRITE "Записк на диск неможливий. Можливо, на диску недостатньо містця."
IDS_SELECT_ALL "Вибрати все"
IDS_INSTALL_SELECTED "Встановити обране"
IDS_SELECTEDFORINST "Обрані для встановлення"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -228,7 +230,7 @@ BEGIN
IDS_STATUS_UPDATE_AVAILABLE "Є оновлення"
IDS_STATUS_DOWNLOADING "Завантажується…"
IDS_STATUS_INSTALLING "Встановлюється…"
IDS_STATUS_WAITING "Очікування завантаження..."
IDS_STATUS_WAITING "Очікування завантаження"
IDS_STATUS_FINISHED "Завершено"
END
@ -252,5 +254,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Список програм"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Оновлення списку програм..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Оновлення списку програм"
END

View file

@ -1,5 +1,5 @@
/* Translated by Song Fuchang (0xfc) <sfc_0@yahoo.com.cn> */
/* Imporved by Li Keqing <auroracloud4096@gmail.com> */
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
IDR_MAINMENU MENU
@ -57,9 +57,9 @@ END
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 215
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "设置"
FONT 9, "MS Shell Dlg"
FONT 9, "宋体"
BEGIN
GROUPBOX "普通", -1, 4, 2, 240, 61
GROUPBOX "常规", -1, 4, 2, 240, 61
AUTOCHECKBOX "保存窗口位置(&S)", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
AUTOCHECKBOX "启动时更新可获得的程序列表(&U)", IDC_UPDATE_AVLIST, 15, 29, 222, 12
AUTOCHECKBOX "将程序的安装和卸载记录到日志(&L)", IDC_LOG_ENABLED, 15, 46, 219, 12
@ -76,26 +76,26 @@ BEGIN
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 "确定", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "确定", IDOK, 116, 195, 60, 14
PUSHBUTTON "取消", IDCANCEL, 181, 195, 60, 14
END
IDD_INSTALL_DIALOG DIALOGEX 0, 0, 216, 97
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "安装程序"
FONT 9, "MS Shell Dlg"
CAPTION "程序安装"
FONT 9, "宋体"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "从存储设备安装 (CD 或 DVD)(&I)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "从磁盘安装 (CD 或 DVD)(&I)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "下载并安装(&D)", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "确定", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "确定", IDOK, 86, 78, 60, 14
PUSHBUTTON "取消", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 220
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "正在下载 %ls..."
FONT 9, "MS Shell Dlg"
CAPTION "正在下载 %ls"
FONT 9, "宋体"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
EDITTEXT IDC_DOWNLOAD_STATUS, 10, 28, 200, 22, ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_DISABLED | NOT WS_BORDER
@ -105,11 +105,11 @@ END
IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "关于"
FONT 9, "MS Shell Dlg"
FONT 9, "宋体"
BEGIN
LTEXT "ReactOS 程序管理器 版权所有 (C) 2009\n作者 Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "关闭", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS 程序管理器 版权所有 (C) 2009\n作者 Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "关闭", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -154,13 +154,13 @@ END
STRINGTABLE
BEGIN
IDS_AINFO_VERSION "\n版本"
IDS_AINFO_AVAILABLEVERSION "\nAvailable Version: "
IDS_AINFO_AVAILABLEVERSION "\n可用版本: "
IDS_AINFO_DESCRIPTION "\n描述"
IDS_AINFO_SIZE "\n大小"
IDS_AINFO_URLSITE "\n主页"
IDS_AINFO_LICENSE "\n协议"
IDS_AINFO_URLDOWNLOAD "\n下载:"
IDS_AINFO_LANGUAGES "\nLanguages: "
IDS_AINFO_LANGUAGES "\n语言: "
END
STRINGTABLE
@ -185,12 +185,12 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS 程序管理器"
IDS_SEARCH_TEXT "搜索..."
IDS_SEARCH_TEXT "搜索"
IDS_INSTALL "安装"
IDS_UNINSTALL "卸载"
IDS_MODIFY "修改"
IDS_APPS_COUNT "程序个数:%d; Selected: %d"
IDS_WELCOME_TITLE "欢迎来到 ReactOS 程序管理器!\n\n"
IDS_APPS_COUNT "程序数量:%d已选%d"
IDS_WELCOME_TITLE "欢迎使用 ReactOS 程序管理器!\n\n"
IDS_WELCOME_TEXT "从左栏选择一个类别,然后选择要安装或卸载的程序。\nReactOS 网站:"
IDS_WELCOME_URL "http://www.reactos.org"
IDS_INSTALLED "已安装"
@ -198,53 +198,55 @@ BEGIN
IDS_UPDATES "更新"
IDS_APPLICATIONS "应用程序"
IDS_CHOOSE_FOLDER_TEXT "请选择用来保存下载文件的文件夹:"
IDS_CHOOSE_FOLDER_ERROR "您选择的文件夹不存在。创建"
IDS_CHOOSE_FOLDER_ERROR "您选择的文件夹不存在。是否创建?"
IDS_APP_REG_REMOVE "您确定要从注册表删除该程序的数据吗?"
IDS_INFORMATION "信息"
IDS_UNABLE_TO_DOWNLOAD "无法下载该软件包 !找不到网络的地址 "
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_UNABLE_TO_INSTALL "Unable to open installer!"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_UNABLE_TO_INSTALL "无法打开安装程序!"
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "正在验证包完整性…"
IDS_INTEG_CHECK_FAIL "这个包没有通过完整性验证,它可能在下载过程中损坏或被人为篡改了。不推荐运行这个程序。"
IDS_INTERRUPTED_DOWNLOAD "下载中断。请检查网络连接。"
IDS_UNABLE_TO_WRITE "无法写入磁盘。磁盘可能已满。"
IDS_SELECT_ALL "全选/全反选"
IDS_INSTALL_SELECTED "安装已选中的"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
BEGIN
IDS_STATUS_INSTALLED "Installed"
IDS_STATUS_NOTINSTALLED "Not installed"
IDS_STATUS_DOWNLOADED "Downloaded"
IDS_STATUS_UPDATE_AVAILABLE "Update available"
IDS_STATUS_DOWNLOADING "Downloading…"
IDS_STATUS_INSTALLING "Installing…"
IDS_STATUS_WAITING "Waiting to install…"
IDS_STATUS_FINISHED "Finished"
IDS_STATUS_INSTALLED "已安装"
IDS_STATUS_NOTINSTALLED "未安装"
IDS_STATUS_DOWNLOADED "下载"
IDS_STATUS_UPDATE_AVAILABLE "可用更新"
IDS_STATUS_DOWNLOADING "正在下载…"
IDS_STATUS_INSTALLING "正在安装…"
IDS_STATUS_WAITING "正在等待安装…"
IDS_STATUS_FINISHED "完成"
END
STRINGTABLE
BEGIN
IDS_LICENSE_OPENSOURCE "Open Source"
IDS_LICENSE_FREEWARE "Freeware"
IDS_LICENSE_TRIAL "Trial/Demo"
IDS_LICENSE_OPENSOURCE "开源软件"
IDS_LICENSE_FREEWARE "免费软件"
IDS_LICENSE_TRIAL "试用版/演示版"
END
STRINGTABLE
BEGIN
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Supports your language"
IDS_LANGUAGE_NO_TRANSLATION "Supports other languages"
IDS_LANGUAGE_ENGLISH_TRANSLATION "Supports English"
IDS_LANGUAGE_SINGLE "Single language"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d more)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d available)"
IDS_LANGUAGE_AVAILABLE_TRANSLATION "支持您的语言"
IDS_LANGUAGE_NO_TRANSLATION "支持其他语言"
IDS_LANGUAGE_ENGLISH_TRANSLATION "支持英语"
IDS_LANGUAGE_SINGLE "单语言"
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d 及更多)"
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d 可用)"
END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DISP "应用程序数据库"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "正在更新数据库…"
END

View file

@ -57,7 +57,7 @@ END
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 215
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "設定"
FONT 9, "MS Shell Dlg"
FONT 9, "新細明體"
BEGIN
GROUPBOX "普通", -1, 4, 2, 240, 61
AUTOCHECKBOX "儲存視窗位置(&S)", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
@ -76,26 +76,26 @@ BEGIN
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 "確定", IDOK, 116, 195, 60, 14
DEFPUSHBUTTON "確定", IDOK, 116, 195, 60, 14
PUSHBUTTON "取消", IDCANCEL, 181, 195, 60, 14
END
IDD_INSTALL_DIALOG DIALOGEX 0, 0, 216, 97
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "安裝程式"
FONT 9, "MS Shell Dlg"
FONT 9, "新細明體"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
LTEXT "", IDC_INSTALL_TEXT, 4, 5, 209, 35
AUTORADIOBUTTON "從存儲裝置安裝 (CD 或 DVD)(&I)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
AUTORADIOBUTTON "下載並安裝(&D)", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "確定", IDOK, 86, 78, 60, 14
DEFPUSHBUTTON "確定", IDOK, 86, 78, 60, 14
PUSHBUTTON "取消", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
CAPTION "正在下載 %ls..."
FONT 9, "MS Shell Dlg"
CAPTION "正在下載 %ls"
FONT 9, "新細明體"
BEGIN
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
EDITTEXT IDC_DOWNLOAD_STATUS, 10, 28, 200, 22, ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_DISABLED | NOT WS_BORDER
@ -105,11 +105,11 @@ END
IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "關於"
FONT 9, "MS Shell Dlg"
FONT 9, "新細明體"
BEGIN
LTEXT "ReactOS 程式管理器 版權所有 (C) 2009\n作者 Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
PUSHBUTTON "關閉", IDOK, 133, 46, 50, 14
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
LTEXT "ReactOS 程式管理器 版權所有 (C) 2009\n作者 Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39
DEFPUSHBUTTON "關閉", IDOK, 133, 46, 50, 14
END
STRINGTABLE
@ -185,7 +185,7 @@ END
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS 程式管理器"
IDS_SEARCH_TEXT "搜索..."
IDS_SEARCH_TEXT "搜索"
IDS_INSTALL "安裝"
IDS_UNINSTALL "解除安裝"
IDS_MODIFY "修改"
@ -205,13 +205,15 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
IDS_UNABLE_TO_REMOVE "無法從登錄檔刪除該程式的資料!"
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
IDS_CERT_DOES_NOT_MATCH "SSL 憑證驗證失敗。"
IDS_INTEG_CHECK_TITLE "驗證套裝軟體的完整性..."
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
IDS_INTEG_CHECK_TITLE "驗證套裝軟體的完整性"
IDS_INTEG_CHECK_FAIL "包沒有通過完整性檢查,它可能已損壞,或者在下載過程中篡改。建議您不要運行該軟體。"
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_SELECT_ALL "Select/Deselect All"
IDS_INSTALL_SELECTED "Install Selected"
IDS_SELECTEDFORINST "Selected for installation"
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
END
STRINGTABLE
@ -246,5 +248,5 @@ END
STRINGTABLE
BEGIN
IDS_DL_DIALOG_DB_DISP "Applications Database"
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..."
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database"
END

View file

@ -47,8 +47,8 @@
#include "misc.h"
#ifdef USE_CERT_PINNING
#define CERT_ISSUER_INFO "BE\r\nGlobalSign nv-sa\r\nGlobalSign Domain Validation CA - SHA256 - G2"
#define CERT_SUBJECT_INFO "Domain Control Validated\r\n*.reactos.org"
#define CERT_ISSUER_INFO "US\r\nLet's Encrypt\r\nLet's Encrypt Authority X3"
#define CERT_SUBJECT_INFO "rapps.reactos.org"
#endif
enum DownloadStatus
@ -146,25 +146,44 @@ public:
LONG r;
Item = GetDlgItem(m_hDialog, IDC_DOWNLOAD_PROGRESS);
if (Item && ulProgressMax)
if (Item)
{
WCHAR szProgress[100];
WCHAR szProgressMax[100];
UINT uiPercentage = ((ULONGLONG) ulProgress * 100) / ulProgressMax;
/* send the current progress to the progress bar */
SendMessageW(Item, PBM_SETPOS, uiPercentage, 0);
/* format the bits and bytes into pretty and accessible units... */
StrFormatByteSizeW(ulProgress, szProgress, _countof(szProgress));
StrFormatByteSizeW(ulProgressMax, szProgressMax, _countof(szProgressMax));
/* ...and post all of it to our subclassed progress bar text subroutine */
/* use our subclassed progress bar text subroutine */
ATL::CStringW m_ProgressText;
m_ProgressText.Format(L"%u%% \x2014 %ls / %ls",
uiPercentage,
szProgress,
szProgressMax);
if (ulProgressMax)
{
/* total size is known */
WCHAR szProgressMax[100];
UINT uiPercentage = ((ULONGLONG) ulProgress * 100) / ulProgressMax;
/* send the current progress to the progress bar */
SendMessageW(Item, PBM_SETPOS, uiPercentage, 0);
/* format total download size */
StrFormatByteSizeW(ulProgressMax, szProgressMax, _countof(szProgressMax));
/* generate the text on progress bar */
m_ProgressText.Format(L"%u%% \x2014 %ls / %ls",
uiPercentage,
szProgress,
szProgressMax);
}
else
{
/* send the current progress to the progress bar */
SendMessageW(Item, PBM_SETPOS, 0, 0);
/* total size is not known, display only current size */
m_ProgressText.Format(L"%ls...",
szProgress);
}
/* and finally display it */
SendMessageW(Item, WM_SETTEXT, 0, (LPARAM) m_ProgressText.GetString());
}
@ -312,61 +331,52 @@ HRESULT WINAPI CDownloadDialog_Constructor(HWND Dlg, BOOL *pbCancelled, REFIID r
}
#ifdef USE_CERT_PINNING
static BOOL CertIsValid(HINTERNET hInternet, LPWSTR lpszHostName)
{
HINTERNET hConnect;
HINTERNET hRequest;
DWORD certInfoLength;
BOOL Ret = FALSE;
INTERNET_CERTIFICATE_INFOW certInfo;
typedef CHeapPtr<char, CLocalAllocator> CLocalPtr;
hConnect = InternetConnectW(hInternet, lpszHostName, INTERNET_DEFAULT_HTTPS_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, INTERNET_FLAG_SECURE, 0);
if (hConnect)
static BOOL CertGetSubjectAndIssuer(HINTERNET hFile, CLocalPtr& subjectInfo, CLocalPtr& issuerInfo)
{
DWORD certInfoLength;
INTERNET_CERTIFICATE_INFOA certInfo;
DWORD size, flags;
size = sizeof(flags);
if (!InternetQueryOptionA(hFile, INTERNET_OPTION_SECURITY_FLAGS, &flags, &size))
{
hRequest = HttpOpenRequestW(hConnect, L"HEAD", NULL, NULL, NULL, NULL, INTERNET_FLAG_SECURE, 0);
if (hRequest != NULL)
{
Ret = HttpSendRequestW(hRequest, L"", 0, NULL, 0);
if (Ret)
{
certInfoLength = sizeof(certInfo);
Ret = InternetQueryOptionW(hRequest,
INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT,
&certInfo,
&certInfoLength);
if (Ret)
{
if (certInfo.lpszEncryptionAlgName)
LocalFree(certInfo.lpszEncryptionAlgName);
if (certInfo.lpszIssuerInfo)
{
if (strcmp((LPSTR) certInfo.lpszIssuerInfo, CERT_ISSUER_INFO) != 0)
Ret = FALSE;
LocalFree(certInfo.lpszIssuerInfo);
}
if (certInfo.lpszProtocolName)
LocalFree(certInfo.lpszProtocolName);
if (certInfo.lpszSignatureAlgName)
LocalFree(certInfo.lpszSignatureAlgName);
if (certInfo.lpszSubjectInfo)
{
if (strcmp((LPSTR) certInfo.lpszSubjectInfo, CERT_SUBJECT_INFO) != 0)
Ret = FALSE;
LocalFree(certInfo.lpszSubjectInfo);
}
}
}
InternetCloseHandle(hRequest);
}
InternetCloseHandle(hConnect);
return FALSE;
}
return Ret;
if (!flags & SECURITY_FLAG_SECURE)
{
return FALSE;
}
/* Despite what the header indicates, the implementation of INTERNET_CERTIFICATE_INFO is not Unicode-aware. */
certInfoLength = sizeof(certInfo);
if (!InternetQueryOptionA(hFile,
INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT,
&certInfo,
&certInfoLength))
{
return FALSE;
}
subjectInfo.Attach(certInfo.lpszSubjectInfo);
issuerInfo.Attach(certInfo.lpszIssuerInfo);
if (certInfo.lpszProtocolName)
LocalFree(certInfo.lpszProtocolName);
if (certInfo.lpszSignatureAlgName)
LocalFree(certInfo.lpszSignatureAlgName);
if (certInfo.lpszEncryptionAlgName)
LocalFree(certInfo.lpszEncryptionAlgName);
return certInfo.lpszSubjectInfo && certInfo.lpszIssuerInfo;
}
#endif
inline VOID MessageBox_LoadString(HWND hMainWnd, INT StringID)
{
ATL::CString szMsgText;
ATL::CStringW szMsgText;
if (szMsgText.LoadStringW(StringID))
{
MessageBoxW(hMainWnd, szMsgText.GetString(), NULL, MB_OK | MB_ICONERROR);
@ -393,6 +403,7 @@ INT_PTR CALLBACK CDownloadManager::DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM w
case WM_INITDIALOG:
{
HICON hIconSm, hIconBg;
ATL::CStringW szTempCaption;
hIconBg = (HICON) GetClassLongW(hMainWnd, GCLP_HICON);
hIconSm = (HICON) GetClassLongW(hMainWnd, GCLP_HICONSM);
@ -408,7 +419,7 @@ INT_PTR CALLBACK CDownloadManager::DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM w
if (Item)
{
// initialize the default values for our nifty progress bar
// and subclass it so that it learns to print a status text
// and subclass it so that it learns to print a status text
SendMessageW(Item, PBM_SETRANGE, 0, MAKELPARAM(0, 100));
SendMessageW(Item, PBM_SETPOS, 0, 0);
@ -423,10 +434,15 @@ INT_PTR CALLBACK CDownloadManager::DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM w
}
DownloadsListView.LoadList(AppsToInstallList);
ShowWindow(Dlg, SW_SHOW);
// Get a dlg string for later use
GetWindowTextW(Dlg, szCaption, MAX_PATH);
GetWindowTextW(Dlg, szCaption, _countof(szCaption));
// Hide a placeholder from displaying
szTempCaption = szCaption;
szTempCaption.Replace(L"%ls", L"");
SetWindowText(Dlg, szTempCaption.GetString());
ShowWindow(Dlg, SW_SHOW);
// Start download process
DownloadParam *param = new DownloadParam(Dlg, AppsToInstallList, szCaption);
@ -541,6 +557,21 @@ LRESULT CALLBACK CDownloadManager::DownloadProgressProc(HWND hWnd,
}
}
VOID CDownloadManager::SetProgressMarquee(HWND Item, BOOL Enable)
{
if (!Item)
return;
DWORD style = GetWindowLongPtr(Item, GWL_STYLE);
if (!style)
return;
if (!SetWindowLongPtr(Item, GWL_STYLE, (Enable ? style | PBS_MARQUEE : style & ~PBS_MARQUEE)))
return;
SendMessageW(Item, PBM_SETMARQUEE, Enable, 0);
}
DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
{
CComPtr<IBindStatusCallback> dl;
@ -572,6 +603,8 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
LPCWSTR szCaption = static_cast<DownloadParam*>(param)->szCaption;
ATL::CStringW szNewCaption;
const DWORD dwUrlConnectFlags = INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_KEEP_CONNECTION;
if (InfoArray.GetSize() <= 0)
{
MessageBox_LoadString(hMainWnd, IDS_UNABLE_TO_DOWNLOAD);
@ -580,6 +613,40 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
for (iAppId = 0; iAppId < InfoArray.GetSize(); ++iAppId)
{
// Reset progress bar
Item = GetDlgItem(hDlg, IDC_DOWNLOAD_PROGRESS);
if (Item)
{
SetProgressMarquee(Item, FALSE);
SendMessageW(Item, WM_SETTEXT, 0, (LPARAM) L"");
SendMessageW(Item, PBM_SETPOS, 0, 0);
}
// is this URL an update package for RAPPS? if so store it in a different place
if (InfoArray[iAppId].szUrl == APPLICATION_DATABASE_URL)
{
bCab = TRUE;
if (!GetStorageDirectory(Path))
goto end;
}
else
{
bCab = FALSE;
Path = SettingsInfo.szDownloadDir;
}
// Change caption to show the currently downloaded app
if (!bCab)
{
szNewCaption.Format(szCaption, InfoArray[iAppId].szName.GetString());
}
else
{
szNewCaption.LoadStringW(IDS_DL_DIALOG_DB_DOWNLOAD_DISP);
}
SetWindowTextW(hDlg, szNewCaption.GetString());
// build the path for the download
p = wcsrchr(InfoArray[iAppId].szUrl.GetString(), L'/');
q = wcsrchr(InfoArray[iAppId].szUrl.GetString(), L'?');
@ -596,18 +663,6 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
if (q && q > p && (q - p) > 0)
filenameLength -= wcslen(q - 1) * sizeof(WCHAR);
// is this URL an update package for RAPPS? if so store it in a different place
if (InfoArray[iAppId].szUrl == APPLICATION_DATABASE_URL)
{
bCab = TRUE;
if (!GetStorageDirectory(Path))
goto end;
}
else
{
Path = SettingsInfo.szDownloadDir;
}
// is the path valid? can we access it?
if (GetFileAttributesW(Path.GetString()) == INVALID_FILE_ATTRIBUTES)
{
@ -626,25 +681,6 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
goto run;
}
// Reset progress bar
Item = GetDlgItem(hDlg, IDC_DOWNLOAD_PROGRESS);
if (Item)
{
SendMessageW(Item, PBM_SETPOS, 0, 0);
}
// Change caption to show the currently downloaded app
if (!bCab)
{
szNewCaption.Format(szCaption, InfoArray[iAppId].szName.GetString());
}
else
{
szNewCaption.LoadStringW(IDS_DL_DIALOG_DB_DOWNLOAD_DISP);
}
SetWindowTextW(hDlg, szNewCaption.GetString());
// Add the download URL
SetDlgItemTextW(hDlg, IDC_DOWNLOAD_STATUS, InfoArray[iAppId].szUrl.GetString());
@ -661,39 +697,20 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
switch (SettingsInfo.Proxy)
{
case 0: // preconfig
default:
hOpen = InternetOpenW(lpszAgent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
break;
case 1: // direct (no proxy)
case 1: // direct (no proxy)
hOpen = InternetOpenW(lpszAgent, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
break;
case 2: // use proxy
hOpen = InternetOpenW(lpszAgent, INTERNET_OPEN_TYPE_PROXY, SettingsInfo.szProxyServer, SettingsInfo.szNoProxyFor, 0);
break;
default: // preconfig
hOpen = InternetOpenW(lpszAgent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
break;
}
if (!hOpen)
goto end;
hFile = InternetOpenUrlW(hOpen, InfoArray[iAppId].szUrl.GetString(), NULL, 0, INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_KEEP_CONNECTION, 0);
if (!hFile)
{
MessageBox_LoadString(hMainWnd, IDS_UNABLE_TO_DOWNLOAD2);
goto end;
}
if (!HttpQueryInfoW(hFile, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwStatusLen, NULL))
goto end;
if (dwStatus != HTTP_STATUS_OK)
{
MessageBox_LoadString(hMainWnd, IDS_UNABLE_TO_DOWNLOAD);
goto end;
}
dwStatusLen = sizeof(dwStatus);
memset(&urlComponents, 0, sizeof(urlComponents));
@ -708,26 +725,90 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
if (!InternetCrackUrlW(InfoArray[iAppId].szUrl, urlLength + 1, ICU_DECODE | ICU_ESCAPE, &urlComponents))
goto end;
dwContentLen = 0;
if (urlComponents.nScheme == INTERNET_SCHEME_HTTP || urlComponents.nScheme == INTERNET_SCHEME_HTTPS)
HttpQueryInfoW(hFile, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, &dwContentLen, &dwStatus, 0);
{
hFile = InternetOpenUrlW(hOpen, InfoArray[iAppId].szUrl.GetString(), NULL, 0,
dwUrlConnectFlags,
0);
if (!hFile)
{
MessageBox_LoadString(hMainWnd, IDS_UNABLE_TO_DOWNLOAD2);
goto end;
}
// query connection
if (!HttpQueryInfoW(hFile, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwStatusLen, NULL))
goto end;
if (dwStatus != HTTP_STATUS_OK)
{
MessageBox_LoadString(hMainWnd, IDS_UNABLE_TO_DOWNLOAD);
goto end;
}
// query content length
HttpQueryInfoW(hFile, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, &dwContentLen, &dwStatusLen, NULL);
}
if (urlComponents.nScheme == INTERNET_SCHEME_FTP)
{
// force passive mode on FTP
hFile = InternetOpenUrlW(hOpen, InfoArray[iAppId].szUrl.GetString(), NULL, 0,
dwUrlConnectFlags | INTERNET_FLAG_PASSIVE,
0);
if (!hFile)
{
MessageBox_LoadString(hMainWnd, IDS_UNABLE_TO_DOWNLOAD2);
goto end;
}
dwContentLen = FtpGetFileSize(hFile, &dwStatus);
}
if (!dwContentLen)
{
// content-length is not known, enable marquee mode
SetProgressMarquee(Item, TRUE);
}
free(urlComponents.lpszScheme);
free(urlComponents.lpszHostName);
#ifdef USE_CERT_PINNING
// are we using HTTPS to download the RAPPS update package? check if the certificate is original
if ((urlComponents.nScheme == INTERNET_SCHEME_HTTPS) &&
(wcscmp(InfoArray[iAppId].szUrl, APPLICATION_DATABASE_URL) == 0) &&
(!CertIsValid(hOpen, urlComponents.lpszHostName)))
(wcscmp(InfoArray[iAppId].szUrl, APPLICATION_DATABASE_URL) == 0))
{
MessageBox_LoadString(hMainWnd, IDS_CERT_DOES_NOT_MATCH);
goto end;
CLocalPtr subjectName, issuerName;
CStringW szMsgText;
bool bAskQuestion = false;
if (!CertGetSubjectAndIssuer(hFile, subjectName, issuerName))
{
szMsgText.LoadStringW(IDS_UNABLE_TO_QUERY_CERT);
bAskQuestion = true;
}
else
{
if (strcmp(subjectName, CERT_SUBJECT_INFO) ||
strcmp(issuerName, CERT_ISSUER_INFO))
{
szMsgText.Format(IDS_MISMATCH_CERT_INFO, (char*)subjectName, (const char*)issuerName);
bAskQuestion = true;
}
}
if (bAskQuestion)
{
if (MessageBoxW(hMainWnd, szMsgText.GetString(), NULL, MB_YESNO | MB_ICONERROR) != IDYES)
{
goto end;
}
}
}
#endif
free(urlComponents.lpszScheme);
free(urlComponents.lpszHostName);
hOut = CreateFileW(Path.GetString(), GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 0, NULL);
if (hOut == INVALID_HANDLE_VALUE)
@ -758,6 +839,15 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
if (bCancelled)
goto end;
if (!dwContentLen)
{
// set progress bar to 100%
SetProgressMarquee(Item, FALSE);
dwContentLen = dwCurrentBytesRead;
dl->OnProgress(dwCurrentBytesRead, dwContentLen, 0, InfoArray[iAppId].szUrl.GetString());
}
/* if this thing isn't a RAPPS update and it has a SHA-1 checksum
verify its integrity by using the native advapi32.A_SHA1 functions */
if (!bCab && InfoArray[iAppId].szSHA1[0] != 0)
@ -798,7 +888,13 @@ run:
if (ShellExecuteExW(&shExInfo))
{
//reflect installation progress in the titlebar
//TODO: make a separate string with a placeholder to include app name?
ATL::CStringW szMsgText = LoadStatusString(DLSTATUS_INSTALLING);
SetWindowTextW(hDlg, szMsgText.GetString());
DownloadsListView.SetDownloadStatus(iAppId, DLSTATUS_INSTALLING);
//TODO: issue an install operation separately so that the apps could be downloaded in the background
WaitForSingleObject(shExInfo.hProcess, INFINITE);
CloseHandle(shExInfo.hProcess);
@ -830,20 +926,15 @@ end:
return 0;
}
BOOL CDownloadManager::DownloadListOfApplications(const ATL::CSimpleArray<CAvailableApplicationInfo*>& AppsList, BOOL bIsModal)
BOOL CDownloadManager::DownloadListOfApplications(const ATL::CSimpleArray<CAvailableApplicationInfo>& AppsList, BOOL bIsModal)
{
if (AppsList.GetSize() == 0)
{
return FALSE;
}
// Initialize shared variables
for (INT i = 0; i < AppsList.GetSize(); ++i)
{
if (AppsList[i])
{
AppsToInstallList.Add(*(AppsList[i]));
}
AppsToInstallList.Add(AppsList[i]); // implicit conversion to DownloadInfo
}
// Create a dialog and issue a download process

View file

@ -215,7 +215,7 @@ BOOL ExtractFilesFromCab(LPCWSTR lpCabName, LPCWSTR lpOutputPath)
SESSION Dest;
HRESULT Result;
fnExtract pfnExtract;
hCabinetDll = LoadLibraryW(L"cabinet.dll");
if (hCabinetDll)
{
@ -225,7 +225,7 @@ BOOL ExtractFilesFromCab(LPCWSTR lpCabName, LPCWSTR lpOutputPath)
ZeroMemory(&Dest, sizeof(Dest));
WideCharToMultiByte(CP_ACP, 0, lpOutputPath, -1, Dest.Destination, MAX_PATH, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, lpCabName, -1, szCabName, MAX_PATH, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, lpCabName, -1, szCabName, _countof(szCabName), NULL, NULL);
Dest.Operation = EXTRACT_FILLFILELIST;
Result = pfnExtract(&Dest, szCabName);

View file

@ -40,6 +40,7 @@ IDI_CAT_OTHER ICON "res/cats/other.ico"
IDI_CAT_SCIENCE ICON "res/cats/science.ico"
IDI_CAT_TOOLS ICON "res/cats/tools.ico"
IDI_CAT_VIDEO ICON "res/cats/video.ico"
IDI_SELECTEDFORINST ICON "res/select.ico"
/* Accelerators -- key bindings */
HOTKEYS ACCELERATORS

View file

@ -147,7 +147,6 @@ CreateHSplitBar(HWND hwnd)
hInst,
NULL);
if (hHSplitter == NULL)
{
/* TODO: Show error message */
@ -288,7 +287,6 @@ CreateVSplitBar(HWND hwnd)
hInst,
NULL);
if (!hVSplitter)
{
/* TODO: Show error message */

View file

@ -30,9 +30,9 @@ BOOL UseCmdParameters(LPWSTR lpCmdLine)
for (INT i = 1; i < argc; ++i)
{
arrNames.Add(argv[i]);
}
}
else
}
}
else
if (!StrCmpW(argv[0], CMD_KEY_SETUP))
{
HINF InfHandle = SetupOpenInfFileW(argv[1], NULL, INF_STYLE_WIN4, NULL);
@ -47,7 +47,7 @@ BOOL UseCmdParameters(LPWSTR lpCmdLine)
WCHAR szName[MAX_PATH];
do
{
if (SetupGetStringFieldW(&Context, 1, szName, MAX_PATH, NULL))
if (SetupGetStringFieldW(&Context, 1, szName, _countof(szName), NULL))
{
arrNames.Add(szName);
}
@ -64,12 +64,12 @@ BOOL UseCmdParameters(LPWSTR lpCmdLine)
apps.UpdateAppsDB();
apps.Enum(ENUM_ALL_AVAILABLE, NULL);
ATL::CSimpleArray<CAvailableApplicationInfo*> arrAppInfo = apps.FindInfoList(arrNames);
ATL::CSimpleArray<CAvailableApplicationInfo> arrAppInfo = apps.FindInfoList(arrNames);
if (arrAppInfo.GetSize() > 0)
{
CDownloadManager::DownloadListOfApplications(arrAppInfo, TRUE);
return TRUE;
}
return FALSE;
}

View file

@ -190,15 +190,18 @@ struct _ATL_REGMAP_ENTRY
LPCOLESTR szData;
};
HRESULT __stdcall AtlWinModuleInit(_ATL_WIN_MODULE *pWinModule);
HRESULT __stdcall AtlWinModuleTerm(_ATL_WIN_MODULE *pWinModule, HINSTANCE hInst);
HRESULT __stdcall AtlInternalQueryInterface(void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject);
void __stdcall AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE *pWinModule, _AtlCreateWndData *pData, void *pObject);
void *__stdcall AtlWinModuleExtractCreateWndData(_ATL_WIN_MODULE *pWinModule);
HRESULT __stdcall AtlComModuleGetClassObject(_ATL_COM_MODULE *pComModule, REFCLSID rclsid, REFIID riid, LPVOID *ppv);
HRESULT WINAPI AtlWinModuleInit(_ATL_WIN_MODULE *pWinModule);
HRESULT WINAPI AtlWinModuleTerm(_ATL_WIN_MODULE *pWinModule, HINSTANCE hInst);
HRESULT WINAPI AtlInternalQueryInterface(void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject);
void WINAPI AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE *pWinModule, _AtlCreateWndData *pData, void *pObject);
void *WINAPI AtlWinModuleExtractCreateWndData(_ATL_WIN_MODULE *pWinModule);
HRESULT WINAPI AtlComModuleGetClassObject(_ATL_COM_MODULE *pComModule, REFCLSID rclsid, REFIID riid, LPVOID *ppv);
HRESULT __stdcall AtlComModuleRegisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid);
HRESULT __stdcall AtlComModuleUnregisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid);
HRESULT WINAPI AtlComModuleRegisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid);
HRESULT WINAPI AtlComModuleUnregisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid);
HRESULT WINAPI AtlComModuleRegisterClassObjects(_ATL_COM_MODULE *module, DWORD context, DWORD flags);
HRESULT WINAPI AtlComModuleRevokeClassObjects(_ATL_COM_MODULE *module);
template<class TLock>
@ -662,6 +665,127 @@ public:
}
};
template <class T>
class CAtlExeModuleT : public CAtlModuleT<T>
{
public:
DWORD m_dwMainThreadID;
//DWORD m_dwTimeOut;
//DWORD m_dwPause;
//bool m_bDelayShutdown;
CAtlExeModuleT()
:m_dwMainThreadID(::GetCurrentThreadId())
{
}
~CAtlExeModuleT()
{
}
int WinMain(int nShowCmd)
{
HRESULT hr = T::InitializeCom();
if (FAILED(hr))
return hr;
T* pThis = static_cast<T*>(this);
LPCTSTR lpCommandLine = GetCommandLine();
if (pThis->ParseCommandLine(lpCommandLine, &hr))
{
hr = pThis->Run(nShowCmd);
}
T::UninitializeCom();
return hr;
}
HRESULT Run(int nShowCmd = SW_HIDE)
{
HRESULT hr = S_OK;
T* pThis = static_cast<T*>(this);
hr = pThis->PreMessageLoop(nShowCmd);
if (hr == S_OK)
{
pThis->RunMessageLoop();
hr = pThis->PostMessageLoop();
}
return hr;
}
LONG Lock()
{
return CoAddRefServerProcess();
}
LONG Unlock()
{
LONG lRet = CoReleaseServerProcess();
if (lRet == 0)
{
::PostThreadMessage(m_dwMainThreadID, WM_QUIT, 0, 0);
}
return lRet;
}
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode)
{
// unimplemented!
return true;
}
HRESULT PreMessageLoop(int nShowCmd)
{
T* pThis = static_cast<T*>(this);
return pThis->RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE);
}
void RunMessageLoop()
{
MSG msg;
while (GetMessage(&msg, 0, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
HRESULT PostMessageLoop()
{
T* pThis = static_cast<T*>(this);
return pThis->RevokeClassObjects();
}
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags)
{
return AtlComModuleRegisterClassObjects(&_AtlComModule, dwClsContext, dwFlags);
}
HRESULT RevokeClassObjects()
{
return AtlComModuleRevokeClassObjects(&_AtlComModule);
}
static HRESULT InitializeCom()
{
return ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
}
static void UninitializeCom()
{
::CoUninitialize();
}
};
class CComModule : public CAtlModuleT<CComModule>
{
public:
@ -1421,10 +1545,11 @@ inline HRESULT __stdcall AtlInternalQueryInterface(void *pThis, const _ATL_INTMA
else
{
hResult = pEntries[i].pFunc(pThis, iid, ppvObject, 0);
if (hResult == S_OK || (FAILED(hResult) && pEntries[i].piid != NULL))
if (hResult == S_OK)
return hResult;
if (FAILED(hResult) && pEntries[i].piid != NULL)
break;
}
break;
}
i++;
}
@ -1685,6 +1810,55 @@ inline HRESULT WINAPI AtlComModuleUnregisterServer(_ATL_COM_MODULE *mod, BOOL bU
}
// Adapted from dll/win32/atl/atl.c
inline HRESULT WINAPI AtlComModuleRegisterClassObjects(_ATL_COM_MODULE *module, DWORD context, DWORD flags)
{
_ATL_OBJMAP_ENTRY **iter;
IUnknown* unk = NULL;
HRESULT hr;
if (!module)
return E_INVALIDARG;
for (iter = module->m_ppAutoObjMapFirst; iter < module->m_ppAutoObjMapLast; iter++)
{
if (!(*iter)->pfnGetClassObject)
continue;
hr = (*iter)->pfnGetClassObject((void*)(*iter)->pfnCreateInstance, IID_IUnknown, (void**)&unk);
if (FAILED(hr))
return hr;
hr = CoRegisterClassObject(*(*iter)->pclsid, unk, context, flags, &(*iter)->dwRegister);
unk->Release();
if (FAILED(hr))
return hr;
}
return S_OK;
}
// Adapted from dll/win32/atl/atl.c
inline HRESULT WINAPI AtlComModuleRevokeClassObjects(_ATL_COM_MODULE *module)
{
_ATL_OBJMAP_ENTRY **iter;
HRESULT hr;
if (!module)
return E_INVALIDARG;
for (iter = module->m_ppAutoObjMapFirst; iter < module->m_ppAutoObjMapLast; iter++)
{
hr = CoRevokeClassObject((*iter)->dwRegister);
if (FAILED(hr))
return hr;
}
return S_OK;
}
}; // namespace ATL
#ifndef _ATL_NO_AUTOMATIC_NAMESPACE

View file

@ -301,6 +301,12 @@ public:
return *this;
}
void Attach(BSTR bstr)
{
::SysFreeString(m_str);
m_str = bstr;
}
BSTR Detach()
{
BSTR str = m_str;

View file

@ -20,7 +20,7 @@
#pragma once
#ifdef __GNUC__
#if defined(__GNUC__) || defined(__clang__)
#define GCCU(x) x __attribute__((unused))
#define Unused(x)
#else
@ -575,6 +575,17 @@ public:
return ::GetDlgItemText(m_hWnd, nID, lpStr, nMaxCount);
}
#ifdef __ATLSTR_H__
UINT GetDlgItemText(int nID, CSimpleString& string)
{
HWND item = GetDlgItem(nID);
int len = ::GetWindowTextLength(item);
len = GetDlgItemText(nID, string.GetBuffer(len+1), len+1);
string.ReleaseBuffer(len);
return len;
}
#endif
BOOL GetDlgItemText(int nID, BSTR& bstrText) const
{
ATLASSERT(::IsWindow(m_hWnd));
@ -1800,6 +1811,15 @@ public:
return TRUE; \
}
#define COMMAND_CODE_HANDLER(code, func) \
if (uMsg == WM_COMMAND && code == HIWORD(wParam)) \
{ \
bHandled = TRUE; \
lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
if (bHandled) \
return TRUE; \
}
#define COMMAND_RANGE_HANDLER(idFirst, idLast, func) \
if (uMsg == WM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
{ \

View file

@ -143,6 +143,12 @@ public:
return ::vswprintf(pszDest, pszFormat, args);
}
static BSTR __cdecl AllocSysString(
_In_z_ LPCWSTR pszSource,
_In_ int nLength)
{
return ::SysAllocStringLen(pszSource, nLength);
}
};
@ -269,6 +275,19 @@ public:
return ::vsprintf(pszDest, pszFormat, args);
}
static BSTR __cdecl AllocSysString(
_In_z_ LPCSTR pszSource,
_In_ int nLength)
{
int nLen = ChTraitsCRT<wchar_t>::GetBaseTypeLength(pszSource, nLength);
BSTR bstr = ::SysAllocStringLen(NULL, nLen);
if (bstr)
{
ChTraitsCRT<wchar_t>::ConvertToBaseType(bstr, nLen, pszSource, nLength);
}
return bstr;
}
};
@ -797,8 +816,14 @@ public:
}
BSTR AllocSysString() const
{
return StringTraits::AllocSysString(CThisSimpleString::GetString(), CThisSimpleString::GetLength());
}
};
} //namespace ATL
#endif
#endif