diff --git a/base/applications/cacls/lang/es-ES.rc b/base/applications/cacls/lang/es-ES.rc index e675cf31726..ecc8552c994 100644 --- a/base/applications/cacls/lang/es-ES.rc +++ b/base/applications/cacls/lang/es-ES.rc @@ -1,37 +1,40 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_HELP "Muestra o modifica la lista de control de accesos (ACLs) de los archivos\n\n\ + IDS_HELP "Muestra o modifica listas de control de acceso (ACL) de archivos\n\n\ CACLS archivo [/T] [/E] [/C] [/G user:perm [...]] [/R usuario [...]]\n\ [/P user:perm [...]] [/D usuario [...]]\n\ - archivo Mostrar ACLs.\n\ - /T Cambia ACLs de los archivos especificados en\n\ + archivo Mostrar ACL.\n\ + /T Cambia ACL de los archivos especificados en\n\ el directorio actual y todos sus subdirectorios.\n\ /E Edita la ACL en lugar de reemplazarla.\n\ /C Continúa en caso de errores de acceso.\n\ /G user:perm Da los derechos de acceso al usuario especificado.\n\ - Perm puede ser: R Lectura\n\ - W Escritura\n\ - C Modificación (Escritura)\n\ + Perm puede ser: R Leer\n\ + W Escribir\n\ + C Cambiar (escribir)\n\ F Control total\n\ /R usuario Revoca los derechos de acceso al usuario especificado (unicamente válido con /E).\n\ /P user:perm Reemplaza los derechos de acceso del usuario especificado.\n\ - Perm puede ser: N Nada\n\ - R Lectura\n\ - W Escritura\n\ - C Modificación (Escritura)\n\ + Perm puede ser: N Ninguno\n\ + R Leer\n\ + W Escribir\n\ + C Cambiar (escribir)\n\ F Control total\n\ /D usuario Revoca el acceso al usuario especificado.\n\ Es posible usar comodines para especificar más de un archivo por comando.\n\ Se puede especificar más de un usuario por comando.\n\n\ -Abreviaciones:\n\ +Abreviaturas:\n\ CI - Herencia del contenedor.\n\ - ACE será heredado a los directorios.\n\ + ACE se heredará por directorios.\n\ OI - Herencia del objeto.\n\ - ACE sera heredado a los archivos.\n\ - IO - Herencia sola.\n\ - ACE no se aplicará al archivo/directorio actual.\n" + ACE se heredará por archivos.\n\ + IO - Sólo heredar.\n\ + ACE no se aplicará al archivo o directorio actual.\n" IDS_ABBR_CI "(CI)" IDS_ABBR_OI "(OI)" IDS_ABBR_IO "(IO)" diff --git a/base/applications/cacls/lang/ru-RU.rc b/base/applications/cacls/lang/ru-RU.rc index a52e892ff34..deaf53a5692 100644 --- a/base/applications/cacls/lang/ru-RU.rc +++ b/base/applications/cacls/lang/ru-RU.rc @@ -1,38 +1,39 @@ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE BEGIN - IDS_HELP "Отображает или изменяет списки доступа (Access Control Lists, ACLs) к файлам\n\n\ -CACLS имя_Файла [/T] [/E] [/C] [/G имя:право [...]] [/R имя [...]]\n\ - [/P имя:право[...]] [/D имя [...]]\n\ - имя_файла Вывод списков ACL.\n\ - /T Замена списков ACL для указанных файлов в текущем каталоге\n\ - и всех подкаталогах.\n\ - /E Редактирование списка ACL вместо его замены.\n\ - /C Продолжать при ошибках отказа доступа.\n\ - /G имя:право Предоставление указанному пользователю прав доступа.\n\ - Право может быть: R Чтение\n\ - W Запись\n\ - C Изменение (запись)\n\ - F Полный контроль\n\ - /R имя Отозвать права доступа для указанного пользователя\n\ - (верно только с /E).\n\ - /P имя:право Заменить права указанного пользователя.\n\ - Право может быть: N Нет доступа\n\ - R Чтение\n\ - W Запись\n\ - C Изменение (запись)\n\ - F Полный доступ\n\ - /D имя Запретить доступ для указанного пользователя.\n\ -В команде можно использовать шаблоны для обработки более одного файла.\n\ + IDS_HELP "Просмотр и изменение списков управления доступом (Access Control List, ACL) к файлам\n\n\ +CACLS имя_файла [/T] [/E] [/C] [/G имя:доступ [...]] [/R имя [...]]\n\ + [/P имя:доступ [...]] [/D имя [...]]\n\ + имя_файла Просмотр списков управления доступом.\n\ + /T Изменение списков управления доступом для указанных файлов\n\ + в текущем и вложенных каталогах.\n\ + /E Изменение списка управления доступом вместо его замены.\n\ + /C Продолжение при ошибках отказа в доступе.\n\ + /G имя:доступ Разрешения для указанных пользователей.\n\ + Доступ: R чтение\n\ + W запись\n\ + C изменение (запись)\n\ + F полный доступ\n\ + /R имя Отзыв разрешений для пользователя (только вместе с /E).\n\ + /P имя:доступ Замена разрешений указанного пользователя.\n\ + Доступ: N нет доступа\n\ + R чтение\n\ + W запись\n\ + C изменение (запись)\n\ + F полный доступ\n\ + /D имя Запрет доступа для указанного пользователя.\n\ +Для выбора нескольких файлов используются подстановочные знаки.\n\ В команде можно указывать более одного пользователя.\n\n\ Сокращения:\n\ - CI - Наследование контейнерами (Container Inherit).\n\ - ACE будет унаследован папками.\n\ - OI - Наследование объектами (Object Inherit).\n\ - ACE будет унаследован файлами.\n\ - IO - Только наследованное (Inherit Only).\n\ - ACE не будет применён к данному файлу/папке.\n" + CI - наследование контейнерами.\n\ + ACE наследуется каталогами.\n\ + OI - наследование объектами.\n\ + ACE наследуется файлами.\n\ + IO - только наследование.\n\ + ACE не применяется к текущему файлу или каталогу.\n" IDS_ABBR_CI "(CI)" IDS_ABBR_OI "(OI)" IDS_ABBR_IO "(IO)" diff --git a/base/applications/calc/lang/es-ES.rc b/base/applications/calc/lang/es-ES.rc index 2706014b4b1..a52a6c1056a 100644 --- a/base/applications/calc/lang/es-ES.rc +++ b/base/applications/calc/lang/es-ES.rc @@ -1,6 +1,7 @@ /* * Spanish Language resource file * Traducido por: Javier Remacha 2008 + * Corregido por: Ismael Ferreras Morezuelas 2014 */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -9,7 +10,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163 STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Calculadora ReactOS" +CAPTION "Calculadora de ReactOS" MENU IDR_MENU_SCIENTIFIC_1 FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN @@ -20,7 +21,7 @@ BEGIN CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10 GROUPBOX "", IDC_STATIC, 5, 34, 84, 20 CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10 - CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10 + CONTROL "Hipotenusa", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 37, 41, 48, 10 CTEXT "", IDC_TEXT_PARENT, 93, 38, 18, 16, SS_CENTERIMAGE, WS_EX_CLIENTEDGE CTEXT "", IDC_TEXT_MEMORY, 126, 38, 18, 16, SS_CENTERIMAGE, WS_EX_CLIENTEDGE PUSHBUTTON "Sta", IDC_BUTTON_STA, 5, 60, 24, 18, BS_CENTER | BS_VCENTER | @@ -142,14 +143,14 @@ BEGIN NOT WS_VISIBLE, 230, 21, 38, 10 CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON | NOT WS_VISIBLE, 270, 21, 38, 10 - CONTROL "Sexagesimal", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10 - CONTROL "Radián", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10 - CONTROL "Centesimal", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10 + CONTROL "Grados", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 151, 21, 45, 10 + CONTROL "Radianes", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 198, 21, 45, 10 + CONTROL "Gradianes", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 248, 21, 45, 10 PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP - PUSHBUTTON "Back", IDC_BUTTON_BACK, 177, 38, 43, 18, BS_CENTER | + PUSHBUTTON "Atrás", IDC_BUTTON_BACK, 177, 38, 43, 18, BS_CENTER | BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP RTEXT "", IDC_TEXT_OUTPUT, 5, 1, 305, 14, SS_CENTERIMAGE, WS_EX_CLIENTEDGE DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE @@ -157,7 +158,7 @@ END IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128 STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Calculadora ReactOS" +CAPTION "Calculadora de ReactOS" MENU IDR_MENU_STANDARD FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN @@ -222,7 +223,7 @@ END IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130 STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Calculator" +CAPTION "Calculadora de ReactOS" MENU IDR_MENU_STANDARD FONT 8, "MS Shell Dlg" BEGIN @@ -240,7 +241,7 @@ BEGIN BS_VCENTER | BS_NOTIFY | WS_TABSTOP, 276, 24, 40, 17 CONTROL "CE", IDC_BUTTON_CE, "Button", BS_OWNERDRAW | BS_CENTER | BS_VCENTER | BS_NOTIFY | WS_TABSTOP, 232, 24, 40, 17 - CONTROL "Back", IDC_BUTTON_BACK, "Button", BS_OWNERDRAW | BS_CENTER | + CONTROL "Atrás", IDC_BUTTON_BACK, "Button", BS_OWNERDRAW | BS_CENTER | BS_VCENTER | BS_NOTIFY | WS_TABSTOP, 188, 24, 40,17 RTEXT "", IDC_TEXT_OUTPUT, 5, 1, 312, 14, SS_CENTERIMAGE, WS_EX_CLIENTEDGE CONTROL "7", IDC_BUTTON_7, "Button", BS_OWNERDRAW | BS_CENTER | @@ -297,15 +298,15 @@ END IDD_DIALOG_ABOUT DIALOGEX 0, 0, 264, 169 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Acerca de Calculadora ReactOS" +CAPTION "Acerca de la Calculadora de ReactOS" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "Aceptar", IDOK, 105, 148, 52, 16 CONTROL IDB_BITMAP_ROS, IDC_STATIC, "Static", SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE | WS_BORDER, 4, 4, 104, 48 - LTEXT "Calculadora ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE + LTEXT "Calculadora de ReactOS", IDC_STATIC, 120, 12, 132, 8, SS_CENTERIMAGE LTEXT "Versión ", IDC_TEXT_VERSION, 120, 20, 132, 8, SS_CENTERIMAGE - LTEXT "Escrita por Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE + LTEXT "Creada por Carlo Bramini", IDC_STATIC, 120, 32, 132, 8, SS_CENTERIMAGE GROUPBOX "", IDC_STATIC, 112, 0, 148, 52 GROUPBOX "", IDC_STATIC, 5, 56, 256, 88 EDITTEXT IDC_EDIT_LICENSE, 12, 68, 240, 68, ES_MULTILINE | ES_READONLY | WS_VSCROLL @@ -344,17 +345,17 @@ BEGIN MENUITEM "Octal\tF7", IDM_VIEW_OCT, CHECKED MENUITEM "Binario\tF8", IDM_VIEW_BIN, CHECKED MENUITEM SEPARATOR - MENUITEM "Sexagesimal\tF2", IDM_VIEW_DEG, CHECKED - MENUITEM "Radián\tF3", IDM_VIEW_RAD, CHECKED - MENUITEM "Centesimal\tF4", IDM_VIEW_GRAD, CHECKED + MENUITEM "Grados\tF2", IDM_VIEW_DEG, CHECKED + MENUITEM "Radianes\tF3", IDM_VIEW_RAD, CHECKED + MENUITEM "Gradianes\tF4", IDM_VIEW_GRAD, CHECKED MENUITEM SEPARATOR - MENUITEM "Número de dígitos en grupo", IDM_VIEW_GROUP, CHECKED + MENUITEM "Agrupar dígitos", IDM_VIEW_GROUP, CHECKED END POPUP "Ayuda" BEGIN MENUITEM "Temas de ayuda", IDM_HELP_HELP MENUITEM SEPARATOR - MENUITEM "Acerca de Calculadora ReactOS", IDM_HELP_ABOUT + MENUITEM "Acerca de la Calculadora de ReactOS", IDM_HELP_ABOUT END END @@ -381,13 +382,13 @@ BEGIN MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED MENUITEM "Byte\tF4", IDM_VIEW_BYTE, CHECKED MENUITEM SEPARATOR - MENUITEM "Número de dígitos en grupo", IDM_VIEW_GROUP, CHECKED + MENUITEM "Agrupar dígitos", IDM_VIEW_GROUP, CHECKED END POPUP "Ayuda" BEGIN MENUITEM "Temas de ayuda", IDM_HELP_HELP MENUITEM SEPARATOR - MENUITEM "Acerca de Calculadora ReactOS", IDM_HELP_ABOUT + MENUITEM "Acerca de la Calculadora de ReactOS", IDM_HELP_ABOUT END END @@ -404,13 +405,13 @@ BEGIN MENUITEM "Científica", IDM_VIEW_SCIENTIFIC, CHECKED MENUITEM "Conversión", IDM_VIEW_CONVERSION MENUITEM SEPARATOR - MENUITEM "Número de dígitos en grupo", IDM_VIEW_GROUP, CHECKED + MENUITEM "Agrupar dígitos", IDM_VIEW_GROUP, CHECKED END POPUP "Ayuda" BEGIN MENUITEM "Temas de ayuda", IDM_HELP_HELP MENUITEM SEPARATOR - MENUITEM "Acerca de Calculadora ReactOS", IDM_HELP_ABOUT + MENUITEM "Acerca de la Calculadora de ReactOS", IDM_HELP_ABOUT END END @@ -418,7 +419,14 @@ END STRINGTABLE BEGIN - IDS_STRING_LICENSE "Calculadora ReactOS es software gratuito realizado bajo licencia GNU GPL.\r\n\r\nPuedes coger una copia de la licencia GNU GPL aquí:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nPuedes también coger una traducción de la licencia GNU GPL aquí:\r\nhttp://www.gnu.org/licenses/translations.html" + IDS_STRING_LICENSE "La Calculadora de ReactOS es software libre realizado bajo licencia GNU GPL.\r\n\ + \r\n\ + Puedes obtener una copia de la licencia GNU GPL aquí:\r\n\ + http://www.gnu.org/licenses/gpl.html\r\n\ + \r\n\ + También puedes obtener una traducción de la licencia GNU GPL aquí:\r\n\ + http://www.gnu.org/licenses/translations.html" + IDS_MATH_ERROR "Error" IDS_QUICKHELP "Ayuda rápida" END @@ -444,9 +452,9 @@ END /* Angles */ STRINGTABLE BEGIN - IDS_ANGLE_DEGREES "Grados sexagesimales" - IDS_ANGLE_GRADIANS "Grados centesimales" - IDS_ANGLE_RADIANS "Radianes" + IDS_ANGLE_DEGREES "Grados" + IDS_ANGLE_GRADIANS "Gradianes" + IDS_ANGLE_RADIANS "Radianes" END /* Areas */ @@ -456,7 +464,7 @@ BEGIN IDS_AREA_ACRES_BRAZIL "Acres (Brasil)" IDS_AREA_ACRES_FRANCE "Acres (Francia)" IDS_AREA_ACRES_SCOTS "Acres (Escocia)" - IDS_AREA_ACRES_US "Acres (US)" + IDS_AREA_ACRES_US "Acres (EE.UU.)" IDS_AREA_ARES "Área" IDS_AREA_CHOU "Chou" IDS_AREA_DANBO "Danbo" @@ -482,8 +490,8 @@ BEGIN IDS_AREA_SQUARE_MILLIMETERS "Milímetros cuadrados" IDS_AREA_SQUARE_SHAKU "Square shaku" IDS_AREA_SQUARE_TSUEN "Square tsuen" - IDS_AREA_SQUARE_VA "Square va" - IDS_AREA_SQUARE_YARD "Square yard" + IDS_AREA_SQUARE_VA "Square va" /* ??? (unused in the source code) */ + IDS_AREA_SQUARE_YARD "Yarda cuadrada" IDS_AREA_TAN "Tan" IDS_AREA_TSUBO "Tsubo" END @@ -491,48 +499,48 @@ END /* Consumptions */ STRINGTABLE BEGIN - IDS_CONSUMPTION_KM_PER_L "Kilometros/litro" - IDS_CONSUMPTION_L_PER_100_KM "Litros/100 kilometros" + IDS_CONSUMPTION_KM_PER_L "Kilómetros/litro" + IDS_CONSUMPTION_L_PER_100_KM "Litros/100 kilómetros" IDS_CONSUMPTION_MILES_GALLON_UK "Millas/galón (UK)" - IDS_CONSUMPTION_MILES_GALLON_US "Millas/galón (US)" + IDS_CONSUMPTION_MILES_GALLON_US "Millas/galón (EE.UU.)" END /* Currencies */ STRINGTABLE BEGIN - IDS_CURRENCY_AUSTRIAN_SCHILLING "Schilling Austriaco" - IDS_CURRENCY_BELGIAN_FRANC "Franco Belga" - IDS_CURRENCY_CYPRIOT_POUND "Libra Chipriota" - IDS_CURRENCY_CZECH_KORUNA "Corona Checa" - IDS_CURRENCY_DEUTSCHE_MARK "Marco Alemán" - IDS_CURRENCY_DUTCH_GUILDER "Florín Neerlandés" + IDS_CURRENCY_AUSTRIAN_SCHILLING "Schilling austriaco" + IDS_CURRENCY_BELGIAN_FRANC "Franco belga" + IDS_CURRENCY_CYPRIOT_POUND "Libra chipriota" + IDS_CURRENCY_CZECH_KORUNA "Corona checa" + IDS_CURRENCY_DEUTSCHE_MARK "Marco alemán" + IDS_CURRENCY_DUTCH_GUILDER "Florín neerlandés" IDS_CURRENCY_EURO "Euro" - IDS_CURRENCY_FINNISH_MARKKA "Marco Finlandés" - IDS_CURRENCY_FRENCH_FRANC "Franco Frances" - IDS_CURRENCY_GREEK_DRACHMA "Drachma Griego" - IDS_CURRENCY_IRISH_POUND "Libra Irlandesa" - IDS_CURRENCY_ITALIAN_LIRA "Lira Italiana" - IDS_CURRENCY_LUXEMBOURG_FRANC "Franco Luxemburgués" - IDS_CURRENCY_MALTESE_LIRA "Lira Maltesa" - IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo Portugués" - IDS_CURRENCY_SLOVAK_KORUNA "Corona Eslovaca" - IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar Esloveno" - IDS_CURRENCY_SPANISH_PESETA "Peseta Española" + IDS_CURRENCY_FINNISH_MARKKA "Marco finlandés" + IDS_CURRENCY_FRENCH_FRANC "Franco frances" + IDS_CURRENCY_GREEK_DRACHMA "Drachma griego" + IDS_CURRENCY_IRISH_POUND "Libra irlandesa" + IDS_CURRENCY_ITALIAN_LIRA "Lira italiana" + IDS_CURRENCY_LUXEMBOURG_FRANC "Franco luxemburgués" + IDS_CURRENCY_MALTESE_LIRA "Lira maltesa" + IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo portugués" + IDS_CURRENCY_SLOVAK_KORUNA "Corona eslovaca" + IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar esloveno" + IDS_CURRENCY_SPANISH_PESETA "Peseta española" END /* Energies */ STRINGTABLE BEGIN - IDS_ENERGY_15_C_CALORIES "15 °C calorías" + IDS_ENERGY_15_C_CALORIES "Calorías a 15°C" IDS_ENERGY_BTUS "BTU" IDS_ENERGY_ERGS "Ergios" - IDS_ENERGY_EVS "Electronovoltios" + IDS_ENERGY_EVS "Electronvoltio" IDS_ENERGY_FOOT_POUNDS "Ft·Lbs" IDS_ENERGY_IT_CALORIES "Tabla internacional de calorías" IDS_ENERGY_IT_KILOCALORIES "Tabla internacional de kilocalorías" IDS_ENERGY_JOULES "Julios" IDS_ENERGY_KILOJOULES "Kilojulios" - IDS_ENERGY_KILOWATT_HOURS "Kilowatios hora" + IDS_ENERGY_KILOWATT_HOURS "Kilovatios hora" IDS_ENERGY_NUTRITION_CALORIES "Calorías nutricionales" IDS_ENERGY_TH_CALORIES "Calorías termoquímicas" END @@ -541,16 +549,16 @@ END STRINGTABLE BEGIN IDS_LENGTH_ANGSTROMS "Ångströms" - IDS_LENGTH_ASTRONOMICAL_UNITS "Astronomical units" - IDS_LENGTH_BARLEYCORNS "Barleycorns" + IDS_LENGTH_ASTRONOMICAL_UNITS "Unidades astronómicas" + IDS_LENGTH_BARLEYCORNS "Granos de cebada" IDS_LENGTH_CENTIMETERS "Centímetros" IDS_LENGTH_CHAINS_UK "Cadenas (UK)" IDS_LENGTH_CHI "Chi" IDS_LENGTH_CHOU "Chou" IDS_LENGTH_CHR "Chr" IDS_LENGTH_CUN "Cun" - IDS_LENGTH_FATHOMS "Fathoms" - IDS_LENGTH_FATHOMS_HUNGARY "Fathoms (Hungary)" + IDS_LENGTH_FATHOMS "Brazas" + IDS_LENGTH_FATHOMS_HUNGARY "Brazas (Hungría)" IDS_LENGTH_FEET "Pies" IDS_LENGTH_FURLONGS "Furlongs" IDS_LENGTH_GAN "Gan" @@ -562,7 +570,7 @@ BEGIN IDS_LENGTH_KABIET "Kabiet" IDS_LENGTH_KEN "Ken" IDS_LENGTH_KEUB "Keub" - IDS_LENGTH_KILOMETERS "Kilometros" + IDS_LENGTH_KILOMETERS "Kilómetros" IDS_LENGTH_LAR "Lar" IDS_LENGTH_LIGHT_YEARS "Años luz" IDS_LENGTH_LINKS_UK "Links (UK)" @@ -570,7 +578,7 @@ BEGIN IDS_LENGTH_MICRONS "Micrómetros" IDS_LENGTH_MILES "Millas" IDS_LENGTH_MILLIMETERS "Milímetros" - IDS_LENGTH_NAUTICAL_MILES "Millas nauticas" + IDS_LENGTH_NAUTICAL_MILES "Millas náuticas" IDS_LENGTH_NIEU "Nieu" IDS_LENGTH_PARSECS "Parsecs" IDS_LENGTH_PICAS "Picas" @@ -580,11 +588,11 @@ BEGIN IDS_LENGTH_SAWK "Sawk" IDS_LENGTH_SEN "Sen" IDS_LENGTH_SHAKU "Shaku" - IDS_LENGTH_SPAN "Span" + IDS_LENGTH_SPAN "Palmo" IDS_LENGTH_SUN "Sun" IDS_LENGTH_TSUEN "Tsuen" IDS_LENGTH_VA "Va" - IDS_LENGTH_YARDS "Yards" + IDS_LENGTH_YARDS "Yardas" IDS_LENGTH_YOTE "Yote" IDS_LENGTH_ZHANG "Zhang" END @@ -595,8 +603,8 @@ BEGIN IDS_POWER_BTUS_PER_MINUTE "BTU/Minuto" IDS_POWER_FPS_PER_MINUTE "Ft·Lbs/Minuto" IDS_POWER_HORSEPOWER "Caballos de vapor" - IDS_POWER_KILOWATTS "Kilowatios" - IDS_POWER_MEGAWATTS "Megawatios" + IDS_POWER_KILOWATTS "Kilovatios" + IDS_POWER_MEGAWATTS "Megavatios" IDS_POWER_WATTS "Watios" END @@ -609,7 +617,7 @@ BEGIN IDS_PRESSURE_KILOPASCALS "Hectopascales" IDS_PRESSURE_MM_OF_MERCURY "Milímetros de mercurio" IDS_PRESSURE_PASCALS "Pascales" - IDS_PRESSURE_PSI "Libras fuerza por pulgada cuadrada" + IDS_PRESSURE_PSI "PSI" END /* Temperatures */ @@ -626,7 +634,7 @@ STRINGTABLE BEGIN IDS_TIME_DAYS "Días" IDS_TIME_HOURS "Horas" - IDS_TIME_NANOSECONDS "Nanoseconds" + IDS_TIME_NANOSECONDS "Nanosegundos" IDS_TIME_MICROSECONDS "Microsegundos" IDS_TIME_MILLISECONDS "Milisegundos" IDS_TIME_MINUTES "Minutos" @@ -641,8 +649,8 @@ BEGIN IDS_VELOCITY_CMS_SECOND "Centímetros/segundo" IDS_VELOCITY_FEET_HOUR "Pies/hora" IDS_VELOCITY_FEET_SECOND "Pies/segundo" - IDS_VELOCITY_KILOMETERS_HOUR "Kilometros/hora" - IDS_VELOCITY_KNOTS "Knots" + IDS_VELOCITY_KILOMETERS_HOUR "Kilómetros/hora" + IDS_VELOCITY_KNOTS "Nudos" IDS_VELOCITY_MACH "Mach" IDS_VELOCITY_METERS_SECOND "Metros/segundo" IDS_VELOCITY_MILES_HOUR "Millas/hora" @@ -652,10 +660,10 @@ END STRINGTABLE BEGIN IDS_VOLUME_BARRELS_UK "Barriles (UK)" - IDS_VOLUME_BARRELS_OIL "Barriles de petroleo" + IDS_VOLUME_BARRELS_OIL "Barriles de petróleo" IDS_VOLUME_BUN "Bun" IDS_VOLUME_BUSHELS_UK "Celemín (UK)" - IDS_VOLUME_BUSHELS_US "Celemín (US)" + IDS_VOLUME_BUSHELS_US "Celemín (EE.UU.)" IDS_VOLUME_CUBIC_CENTIMETERS "Centímetros cúbicos" IDS_VOLUME_CUBIC_FEET "Píes cúbicos" IDS_VOLUME_CUBIC_INCHES "Pulgadas cúbicas" @@ -663,10 +671,10 @@ BEGIN IDS_VOLUME_CUBIC_YARDS "Yardas cúbicas" IDS_VOLUME_DOE "Doe" IDS_VOLUME_FLUID_OUNCES_UK "Onza líquida (UK)" - IDS_VOLUME_FLUID_OUNCES_US "Onza líquida (US)" + IDS_VOLUME_FLUID_OUNCES_US "Onza líquida (EE.UU.)" IDS_VOLUME_GALLONS_UK "Galones (UK)" - IDS_VOLUME_GALLONS_DRY_US "Galones, dry (US)" - IDS_VOLUME_GALLONS_LIQUID_US "Galones, liquid (US)" + IDS_VOLUME_GALLONS_DRY_US "Galones, secos (EE.UU.)" + IDS_VOLUME_GALLONS_LIQUID_US "Galones, líquidos (EE.UU.)" IDS_VOLUME_GOU "Gou" IDS_VOLUME_HOP "Hop" IDS_VOLUME_ICCE "Icce" @@ -675,11 +683,11 @@ BEGIN IDS_VOLUME_MAL "Mal" IDS_VOLUME_MILLILITERS "Mililitros" IDS_VOLUME_PINTS_UK "Pintas (UK)" - IDS_VOLUME_PINTS_DRY_US "Pintas, dry (US)" - IDS_VOLUME_PINTS_LIQUID_US "Pintas, liquid (US)" + IDS_VOLUME_PINTS_DRY_US "Pintas, secas (EE.UU.)" + IDS_VOLUME_PINTS_LIQUID_US "Pintas, líquidas (EE.UU.)" IDS_VOLUME_QUARTS_UK "Cuartos (UK)" - IDS_VOLUME_QUARTS_DRY_US "Cuartos, dry (US)" - IDS_VOLUME_QUARTS_LIQUID_US "Cuartos, liquid (US)" + IDS_VOLUME_QUARTS_DRY_US "Cuartos, secos (EE.UU.)" + IDS_VOLUME_QUARTS_LIQUID_US "Cuartos, líquidos (EE.UU.)" IDS_VOLUME_SEKI "Seki" IDS_VOLUME_SYOU "Syou" IDS_VOLUME_TANANLOUNG "Tananloung" @@ -709,11 +717,11 @@ BEGIN IDS_WEIGHT_OUNCES_AVOIRDUPOIS "Onza, avoirdupois" IDS_WEIGHT_OUNCES_TROY "Onza, troy" IDS_WEIGHT_POUNDS "Libras" - IDS_WEIGHT_QUINTAL_METRIC "Quintal (metric)" + IDS_WEIGHT_QUINTAL_METRIC "Quintal (métrico)" IDS_WEIGHT_SALOUNG "Saloung" IDS_WEIGHT_STONES "Stones" IDS_WEIGHT_TAMLUNG "Tamlung" IDS_WEIGHT_TONNES "Toneladas" IDS_WEIGHT_TONS_UK "Toneladas (UK)" - IDS_WEIGHT_TONS_US "Toneladas (US)" + IDS_WEIGHT_TONS_US "Toneladas (EE.UU.)" END diff --git a/base/applications/charmap/lang/es-ES.rc b/base/applications/charmap/lang/es-ES.rc index 61fde05c15a..fd439f4d354 100644 --- a/base/applications/charmap/lang/es-ES.rc +++ b/base/applications/charmap/lang/es-ES.rc @@ -1,21 +1,24 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL IDD_CHARMAP DIALOGEX 6, 6, 292, 224 FONT 8, "MS Shell Dlg", 0, 0 STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE BEGIN - LTEXT "Fuente :", IDC_STATIC, 6, 7, 24, 9 + LTEXT "Fuente:", IDC_STATIC, 6, 7, 24, 9 COMBOBOX IDC_FONTCOMBO, 36, 5, 210, 210, WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS PUSHBUTTON "Ayuda", IDC_CMHELP, 249, 5, 35, 13 CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156 - LTEXT "Caracteres a copiar :", IDC_STATIC, 6, 188, 66, 9 + LTEXT "Caracteres a copiar:", IDC_STATIC, 6, 188, 66, 9 CONTROL "", IDC_TEXTBOX, RICHEDIT_CLASS, ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13 DEFPUSHBUTTON "Seleccionar", IDC_SELECT, 194, 186, 44, 13 PUSHBUTTON "Copiar", IDC_COPY, 242, 186, 44, 13, WS_DISABLED - CONTROL "Advanced view", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX | + CONTROL "Vista avanzada", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 208, 95, 10 END @@ -23,23 +26,23 @@ IDD_ADVANCED DIALOGEX 0, 0, 292, 64 STYLE DS_SHELLFONT | WS_CHILD FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Charset:", IDC_STATIC, 8, 8, 48, 8 - COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Group by:", IDC_STATIC, 8, 28, 50, 8 - COMBOBOX IDC_COMBO_GROUPBY, 72, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Search", IDC_BUTTON_SEARCH, 200, 44, 50, 14 - EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL - LTEXT "Search for:", IDC_STATIC, 8, 48, 42, 8 + LTEXT "Juego de caracteres:", IDC_STATIC, 2, 7, 68, 8, SS_RIGHT + COMBOBOX IDC_COMBO_CHARSET, 74, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Agrupar:", IDC_STATIC, 2, 26, 68, 8, SS_RIGHT + COMBOBOX IDC_COMBO_GROUPBY, 74, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Buscar", IDC_BUTTON_SEARCH, 200, 44, 50, 14 + EDITTEXT IDC_EDIT_SEARCH, 74, 44, 116, 14, ES_AUTOHSCROLL + LTEXT "Buscar por:", IDC_STATIC, 2, 47, 68, 8, SS_RIGHT LTEXT "Unicode:", IDC_STATIC, 200, 8, 30, 8 EDITTEXT IDC_EDIT_UNICODE, 236, 4, 28, 12, ES_AUTOHSCROLL END IDD_ABOUTBOX DIALOGEX 22, 16, 210, 182 -CAPTION "Acerca de Character Map" +CAPTION "Acerca del Mapa de caracteres" FONT 8, "MS Shell Dlg", 0, 0 STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME BEGIN - LTEXT "Character Map v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36 + LTEXT "Mapa de caracteres v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36 PUSHBUTTON "Cerrar", IDOK, 75, 162, 44, 15 ICON IDI_ICON, IDC_STATIC, 10, 10, 7, 30 EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | @@ -48,7 +51,7 @@ END STRINGTABLE BEGIN - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." + IDS_LICENSE "Este programa es software libre; puedes redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License tal y como se publica por la Free Software Foundation; ya sea la versión 2 de la Licencia, o (bajo tu discreción) cualquier versión posterior.\r\n\r\nEste programa se distribuye con el fin de ser útil, pero viene SIN NINGUNA GARANTÍA; sin tan siquiera la garantía implícita de COMERCIALIZACIÓN o la de IDONEIDAD PARA UN PROPÓSITO CONCRETO. Para más información lee la GNU General Public License.\r\n\r\nDeberías de haber recibido una copia de la GNU General Public License con el programa; si no, puedes escribir a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE.UU." IDS_ABOUT "&Acerca de ..." - IDS_TITLE "Character Map" + IDS_TITLE "Mapa de caracteres" END diff --git a/base/applications/charmap/lang/ru-RU.rc b/base/applications/charmap/lang/ru-RU.rc index 717cccea97b..93263038f78 100644 --- a/base/applications/charmap/lang/ru-RU.rc +++ b/base/applications/charmap/lang/ru-RU.rc @@ -1,4 +1,4 @@ -/* Russian language resource file (Dmitry Chapyshev, 2007-06-10) */ +/* Russian language resource file by Dmitry Chapyshev, 2007-06-10,Kudratov Olimjon (olim98@bk.ru) */ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT @@ -12,12 +12,12 @@ BEGIN PUSHBUTTON "Справка", IDC_CMHELP, 249, 5, 35, 13 CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156 - LTEXT "Копировать символ:", IDC_STATIC, 6, 188, 95, 9 + LTEXT "Для копирования:", IDC_STATIC, 6, 188, 95, 9 CONTROL "", IDC_TEXTBOX, RICHEDIT_CLASS, ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13 DEFPUSHBUTTON "Выбрать", IDC_SELECT, 194, 186, 44, 13 PUSHBUTTON "Копировать", IDC_COPY, 242, 186, 44, 13, WS_DISABLED - CONTROL "Расширенный вид", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX | + CONTROL "Дополнительные параметры", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 208, 95, 10 END @@ -27,11 +27,11 @@ FONT 8, "MS Shell Dlg" BEGIN LTEXT "Набор символов:", IDC_STATIC, 8, 8, 55, 8 COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Группировать за:", IDC_STATIC, 8, 28, 50, 8 + LTEXT "Группировка:", IDC_STATIC, 8, 28, 50, 8 COMBOBOX IDC_COMBO_GROUPBY, 72, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Найти", IDC_BUTTON_SEARCH, 200, 44, 50, 14 EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL - LTEXT "Искать:", IDC_STATIC, 8, 48, 42, 8 + LTEXT "Поиск:", IDC_STATIC, 8, 48, 42, 8 LTEXT "Юникод:", IDC_STATIC, 200, 8, 30, 8 EDITTEXT IDC_EDIT_UNICODE, 236, 4, 28, 12, ES_AUTOHSCROLL END diff --git a/base/applications/cmdutils/CMakeLists.txt b/base/applications/cmdutils/CMakeLists.txt index a5164ec1bf6..15f4f240997 100644 --- a/base/applications/cmdutils/CMakeLists.txt +++ b/base/applications/cmdutils/CMakeLists.txt @@ -1,4 +1,5 @@ add_subdirectory(comp) +add_subdirectory(cscript) add_subdirectory(dbgprint) add_subdirectory(doskey) add_subdirectory(find) @@ -11,4 +12,5 @@ add_subdirectory(reg) add_subdirectory(sort) add_subdirectory(taskkill) add_subdirectory(wmic) +add_subdirectory(wscript) add_subdirectory(xcopy) diff --git a/base/applications/cmdutils/cscript/CMakeLists.txt b/base/applications/cmdutils/cscript/CMakeLists.txt new file mode 100644 index 00000000000..3fc90cb7b75 --- /dev/null +++ b/base/applications/cmdutils/cscript/CMakeLists.txt @@ -0,0 +1,21 @@ + +add_definitions(-DCSCRIPT_BUILD) +set(wscript_folder ${REACTOS_SOURCE_DIR}/base/applications/cmdutils/wscript) +include_directories(${wscript_folder}) + +list(APPEND SOURCE + ${wscript_folder}/arguments.c + ${wscript_folder}/host.c + ${wscript_folder}/main.c + ${wscript_folder}/wscript.h) + +add_executable(cscript ${SOURCE} rsrc.rc) +add_idl_headers(cscript_idlheader ihost.idl) +add_typelib(ihost.idl) +set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ihost.tlb) +target_link_libraries(cscript uuid wine) +set_module_type(cscript win32cui UNICODE) +add_importlibs(cscript shell32 oleaut32 ole32 advapi32 msvcrt kernel32 ntdll) +add_dependencies(cscript stdole2 cscript_idlheader) +add_pch(cscript ${wscript_folder}/wscript.h SOURCE) +add_cd_file(TARGET cscript DESTINATION reactos/system32 FOR all) diff --git a/base/applications/cmdutils/cscript/ihost.idl b/base/applications/cmdutils/cscript/ihost.idl new file mode 100644 index 00000000000..9e4202ea039 --- /dev/null +++ b/base/applications/cmdutils/cscript/ihost.idl @@ -0,0 +1,188 @@ +/* + * Copyright 2010 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#pragma makedep typelib + +#include "ihost_dispid.h" + +import "oaidl.idl"; + +[ + uuid(60254ca0-953b-11cf-8c96-00aa00b8708c), + version(5.6), +] +library IHost +{ + importlib("stdole2.tlb"); + + [ + odl, + uuid(2cc5a9d1-b1e5-11d3-a286-00104bd35090), + dual, + oleautomation + ] + interface IArguments2 : IDispatch { + [id(DISPID_VALUE)] + HRESULT Item( + [in] LONG Index, + [out, retval] BSTR *out_Value); + + [id(IARGUMENTS2_COUNT_DISPID)] + HRESULT Count([out, retval] LONG *out_Count); + + [id(IARGUMENTS2_LENGTH_DISPID), propget] + HRESULT length([out, retval] LONG *out_Count); + } + + [ + odl, + uuid(53bad8c1-e718-11cf-893d-00a0c9054228), + hidden, + dual, + nonextensible, + oleautomation + ] + interface ITextStream : IDispatch { + [id(ITEXTSTREAM_LINE_DISPID), propget] + HRESULT Line([out, retval] LONG *Line); + + [id(ITEXTSTREAM_COLUMN_DISPID), propget] + HRESULT Column([out, retval] LONG *Column); + + [id(ITEXTSTREAM_ATENDOFSTREAM_DISPID), propget] + HRESULT AtEndOfStream([out, retval] VARIANT_BOOL *EOS); + + [id(ITEXTSTREAM_ATENDOFLINE_DISPID), propget] + HRESULT AtEndOfLine([out, retval] VARIANT_BOOL *EOL); + + [id(ITEXTSTREAM_READ_DISPID)] + HRESULT Read( + [in] LONG Characters, + [out, retval] BSTR *Text); + + [id(ITEXTSTREAM_READLINE_DISPID)] + HRESULT ReadLine([out, retval] BSTR *Text); + + [id(ITEXTSTREAM_READALL_DISPID)] + HRESULT ReadAll([out, retval] BSTR *Text); + + [id(ITEXTSTREAM_WRITE_DISPID)] + HRESULT Write([in] BSTR Text); + + [id(ITEXTSTREAM_WRITELINE_DISPID)] + HRESULT WriteLine([in, optional, defaultvalue("")] BSTR Text); + + [id(ITEXTSTREAM_WRITEBLANKLINES_DISPID)] + HRESULT WriteBlankLines([in] LONG Lines); + + [id(ITEXTSTREAM_SKIP_DISPID)] + HRESULT Skip([in] LONG Characters); + + [id(ITEXTSTREAM_SKIPLINE_DISPID)] + HRESULT SkipLine(); + + [id(ITEXTSTREAM_CLOSE_DISPID)] + HRESULT Close(); + } + + [ + odl, + uuid(91afbd1b-5feb-43f5-b028-e2ca960617ec), + dual, + oleautomation + ] + interface IHost : IDispatch { + [id(IHOST_NAME_DISPID), propget] + HRESULT Name([out, retval] BSTR *out_Name); + + [id(IHOST_APPLICATION_DISPID), propget] + HRESULT Application([out, retval] IDispatch **out_Dispatch); + + [id(IHOST_FULLNAME_DISPID), propget] + HRESULT FullName([out, retval] BSTR *out_Path); + + [id(IHOST_PATH_DISPID), propget] + HRESULT Path([out, retval] BSTR* out_Path); + + [id(IHOST_INTERACTIVE_DISPID), propget] + HRESULT Interactive([out, retval] VARIANT_BOOL *out_Interactive); + + [id(IHOST_INTERACTIVE_DISPID), propput] + HRESULT Interactive([in] VARIANT_BOOL out_Interactive); + + [id(IHOST_QUIT_DISPID)] + HRESULT Quit([in, optional, defaultvalue(0)] int ExitCode); + + [id(IHOST_SCRIPTNAME_DISPID), propget] + HRESULT ScriptName([out, retval] BSTR *out_ScriptName); + + [id(IHOST_SCRIPTFULLNAME_DISPID), propget] + HRESULT ScriptFullName([out, retval] BSTR* out_ScriptFullName); + + [id(IHOST_ARGUMENTS_DISPID), propget] + HRESULT Arguments([out, retval] IArguments2 **out_Arguments); + + [id(IHOST_VERSION_DISPID), propget] + HRESULT Version([out, retval] BSTR *out_Version); + + [id(IHOST_BUILDVERSION_DISPID), propget] + HRESULT BuildVersion([out, retval] int *out_Build); + + [id(IHOST_TIMEOUT_DISPID), propget] + HRESULT Timeout([out, retval] LONG *out_Timeout); + + [id(IHOST_TIMEOUT_DISPID), propput] + HRESULT Timeout([in] LONG out_Timeout); + + [id(IHOST_CREATEOBJECT_DISPID)] + HRESULT CreateObject( + [in] BSTR ProgID, + [in, optional, defaultvalue("")] BSTR Prefix, + [out, retval] IDispatch **out_Dispatch); + + [id(IHOST_ECHO_DISPID), vararg] + HRESULT Echo([in] SAFEARRAY(VARIANT) pArgs); + + [id(IHOST_GETOBJECT_DISPID)] + HRESULT GetObject( + [in] BSTR Pathname, + [in, optional, defaultvalue("")] BSTR ProgID, + [in, optional, defaultvalue("")] BSTR Prefix, + [out, retval] IDispatch **out_Dispatch); + + [id(IHOST_DISCONNECTOBJECT_DISPID)] + HRESULT DisconnectObject([in] IDispatch *Object); + + [id(IHOST_SLEEP_DISPID)] + HRESULT Sleep([in] LONG Time); + + [id(IHOST_CONNECTOBJECT_DISPID)] + HRESULT ConnectObject( + [in] IDispatch *Object, + [in] BSTR Prefix); + + [id(IHOST_STDIN_DISPID), propget] + HRESULT StdIn([out, retval] ITextStream **out_ppts); + + [id(IHOST_STDOUT_DISPID), propget] + HRESULT StdOut([out, retval] ITextStream **ppts); + + [id(IHOST_STDERR_DISPID), propget] + HRESULT StdErr([out, retval] ITextStream **ppts); + } +} diff --git a/base/applications/cmdutils/cscript/rsrc.rc b/base/applications/cmdutils/cscript/rsrc.rc new file mode 100644 index 00000000000..51ce0982659 --- /dev/null +++ b/base/applications/cmdutils/cscript/rsrc.rc @@ -0,0 +1,20 @@ +/* + * Copyright 2010 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* @makedep: ihost.tlb */ +1 TYPELIB ihost.tlb diff --git a/base/applications/cmdutils/help/lang/ru-RU.rc b/base/applications/cmdutils/help/lang/ru-RU.rc index 3f706d3964e..050e07379d6 100644 --- a/base/applications/cmdutils/help/lang/ru-RU.rc +++ b/base/applications/cmdutils/help/lang/ru-RU.rc @@ -58,6 +58,7 @@ RD Удаляет папку.\n\ REM Помещает комментарии в пакетные файлы.\n\ REN Переименовывает файлы или папки.\n\ RENAME Переименовывает файлы или папки.\n\ +REPLACE Заменяет файлы.\n\ RMDIR Удаляет папку.\n\ SCREEN Перемещение курсора и вывод текста.\n\ SET Показывает, устанавливает и удаляет переменные среды ReactOS.\n\ @@ -70,6 +71,6 @@ TITLE Назначение заголовка окна для текущег командных строк CMD.EXE.\n\ TYPE Вывод на экран содержимого текстовых файлов.\n\ VER Вывод сведений о версии ReactOS.\n\ -VERIFY ВУстановка режима проверки правильности записи файлов на диск.\n\ +VERIFY Установка режима проверки правильности записи файлов на диск.\n\ VOL Вывод метки и серийного номера тома для диска.\n" END diff --git a/base/applications/cmdutils/reg/lang/ru-RU.rc b/base/applications/cmdutils/reg/lang/ru-RU.rc index f9d9344253d..50f653f92d5 100644 --- a/base/applications/cmdutils/reg/lang/ru-RU.rc +++ b/base/applications/cmdutils/reg/lang/ru-RU.rc @@ -2,13 +2,13 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { - STRING_USAGE, "Использование программы:\n\nREG [ ADD | DELETE | QUERY ]\nREG <команда> /?\n" + STRING_USAGE, "Использование:\n\nREG [ ADD | DELETE | QUERY ]\nREG <команда> /?\n" STRING_ADD_USAGE, "REG ADD <имя_раздела> [/v <имя_параметра> | /ve] [/t <тип>] [/s <разделитель>] [/d <данные>] [/f]\n" STRING_DELETE_USAGE, "REG DELETE <имя_раздела> [/v <имя_параметра> | /ve | /va] [/f]\n" STRING_QUERY_USAGE, "REG QUERY <имя_раздела> [/v [имя_параметра] | /ve] [/s]\n" STRING_SUCCESS, "Операция успешно завершена\n" - STRING_INVALID_KEY, "Ошибка: неправильное имя ключа\n" - STRING_INVALID_CMDLINE, "Ошибка: неправильные параметры командной строки\n" - STRING_NO_REMOTE, "Ошибка: невозможно добавить ключи на удаленной машине\n" - STRING_CANNOT_FIND, "Ошибка: не удалось найти указанный ключ реестра или значение\n" + STRING_INVALID_KEY, "Ошибка: Неправильное имя ключа\n" + STRING_INVALID_CMDLINE, "Ошибка: Неправильные параметры командной строки\n" + STRING_NO_REMOTE, "Ошибка: Невозможно добавить ключи на удаленной машине\n" + STRING_CANNOT_FIND, "Ошибка: Не удалось найти указанный ключ реестра или значение\n" } diff --git a/base/applications/cmdutils/taskkill/lang/ru-RU.rc b/base/applications/cmdutils/taskkill/lang/ru-RU.rc index f2a134afe1d..0d792ec7770 100644 --- a/base/applications/cmdutils/taskkill/lang/ru-RU.rc +++ b/base/applications/cmdutils/taskkill/lang/ru-RU.rc @@ -1,19 +1,21 @@ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { - STRING_USAGE, "Usage: TASKKILL [/F] [/IM <образ> | /PID <процесс>]\n" - STRING_INVALID_OPTION, "Error: Unknown or invalid command line option specified.\n" - STRING_INVALID_PARAM, "Error: Invalid command line parameter specified.\n" - STRING_MISSING_OPTION, "Error: One of options /im or /pid must be specified.\n" - STRING_MISSING_PARAM, "Error: Option %1 expects a command line parameter.\n" - STRING_MUTUAL_EXCLUSIVE, "Error: Options /im and /pid are mutually exclusive.\n" - STRING_CLOSE_PID_SEARCH, "Close message sent to top-level windows of process with PID %1!u!.\n" - STRING_CLOSE_PROC_SRCH, "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n" - STRING_TERM_PID_SEARCH, "Process with PID %1!u! was forcibly terminated.\n" - STRING_TERM_PROC_SEARCH, "Process ""%1"" with PID %2!u! was forcibly terminated.\n" - STRING_SEARCH_FAILED, "Error: Could not find process ""%1"".\n" - STRING_ENUM_FAILED, "Error: Unable to enumerate the process list.\n" - STRING_TERMINATE_FAILED, "Error: Unable to terminate process ""%1"".\n" - STRING_SELF_TERMINATION, "Error: Process self-termination is not permitted.\n" + STRING_USAGE, "Использование: TASKKILL [/F] [/IM <образ> | /PID <процесс>]\n" + STRING_INVALID_OPTION, "Ошибка: Указаны неверные параметры командной строки.\n" + STRING_INVALID_PARAM, "Ошибка: Указаны неверные параметры командной строки.\n" + STRING_MISSING_OPTION, "Ошибка: Должен быть указан параметр /im или /pid.\n" + STRING_MISSING_PARAM, "Ошибка: Потерян обязательный параметр %1.\n" + STRING_MUTUAL_EXCLUSIVE, "Ошибка: Одновременное использование параметров '/pid' и '/im' запрещено.\n" + STRING_CLOSE_PID_SEARCH, "Отправлен сигнал завершения процессу с идентификатором %1!u!.\n" + STRING_CLOSE_PROC_SRCH, "Отправлен сигнал завершения процессу ""%1"" с идентификатором %2!u!.\n" + STRING_TERM_PID_SEARCH, "Процесс, с идентификатором %1!u! принудительно завершен.\n" + STRING_TERM_PROC_SEARCH, "Процесс ""%1"" с идентификатором %2!u! принудительно завершен.\n" + STRING_SEARCH_FAILED, "Ошибка: Не удается найти процесс ""%1"".\n" + STRING_ENUM_FAILED, "Ошибка: Unable to enumerate the process list.\n" + STRING_TERMINATE_FAILED, "Ошибка: Не удается завершить процесс ""%1"".\n" + STRING_SELF_TERMINATION, "Ошибка: Процесс не может завершить сам себя.\n" } diff --git a/base/applications/cmdutils/wmic/lang/ru-RU.rc b/base/applications/cmdutils/wmic/lang/ru-RU.rc index f481553d8fe..8c7a3e5756a 100644 --- a/base/applications/cmdutils/wmic/lang/ru-RU.rc +++ b/base/applications/cmdutils/wmic/lang/ru-RU.rc @@ -2,7 +2,7 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { - STRING_CMDLINE_NOT_SUPPORTED, "Ошибка: коммандная строка не поддерживается\n" - STRING_ALIAS_NOT_FOUND, "Ошибка: псевдоним не найден\n" - STRING_INVALID_QUERY, "Ошибка: неврный запрос\n" + STRING_CMDLINE_NOT_SUPPORTED, "Ошибка: Командная строка не поддерживается\n" + STRING_ALIAS_NOT_FOUND, "Ошибка: Псевдоним не найден\n" + STRING_INVALID_QUERY, "Ошибка: Неверный запрос\n" } diff --git a/base/applications/cmdutils/wscript/CMakeLists.txt b/base/applications/cmdutils/wscript/CMakeLists.txt new file mode 100644 index 00000000000..0438ccd1b67 --- /dev/null +++ b/base/applications/cmdutils/wscript/CMakeLists.txt @@ -0,0 +1,17 @@ + +list(APPEND SOURCE + arguments.c + host.c + main.c + wscript.h) + +add_executable(wscript ${SOURCE} rsrc.rc) +add_idl_headers(wscript_idlheader ihost.idl) +add_typelib(ihost.idl) +set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ihost.tlb) +target_link_libraries(wscript uuid wine) +set_module_type(wscript win32cui UNICODE) +add_importlibs(wscript shell32 oleaut32 ole32 advapi32 msvcrt kernel32 ntdll) +add_dependencies(wscript stdole2 wscript_idlheader) +add_pch(wscript wscript.h SOURCE) +add_cd_file(TARGET wscript DESTINATION reactos/system32 FOR all) diff --git a/base/applications/cmdutils/wscript/arguments.c b/base/applications/cmdutils/wscript/arguments.c new file mode 100644 index 00000000000..f36b56e08c5 --- /dev/null +++ b/base/applications/cmdutils/wscript/arguments.c @@ -0,0 +1,127 @@ +/* + * Copyright 2011 Michal Zietek + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "wscript.h" + +WCHAR **argums; +int numOfArgs; + +static HRESULT WINAPI Arguments2_QueryInterface(IArguments2 *iface, REFIID riid, void **ppv) +{ + WINE_TRACE("(%s %p)\n", wine_dbgstr_guid(riid), ppv); + + if(IsEqualGUID(&IID_IUnknown, riid) + || IsEqualGUID(&IID_IDispatch, riid) + || IsEqualGUID(&IID_IArguments2, riid)) { + *ppv = iface; + return S_OK; + } + + *ppv = NULL; + return E_NOINTERFACE; +} + +static ULONG WINAPI Arguments2_AddRef(IArguments2 *iface) +{ + return 2; +} + +static ULONG WINAPI Arguments2_Release(IArguments2 *iface) +{ + return 1; +} + +static HRESULT WINAPI Arguments2_GetTypeInfoCount(IArguments2 *iface, UINT *pctinfo) +{ + WINE_TRACE("(%p)\n", pctinfo); + + *pctinfo = 1; + return S_OK; +} + +static HRESULT WINAPI Arguments2_GetTypeInfo(IArguments2 *iface, UINT iTInfo, LCID lcid, + ITypeInfo **ppTInfo) +{ + WINE_TRACE("(%x %x %p\n", iTInfo, lcid, ppTInfo); + + ITypeInfo_AddRef(arguments_ti); + *ppTInfo = arguments_ti; + return S_OK; +} + +static HRESULT WINAPI Arguments2_GetIDsOfNames(IArguments2 *iface, REFIID riid, LPOLESTR *rgszNames, + UINT cNames, LCID lcid, DISPID *rgDispId) +{ + WINE_TRACE("(%s %p %d %x %p)\n", wine_dbgstr_guid(riid), rgszNames, + cNames, lcid, rgDispId); + + return ITypeInfo_GetIDsOfNames(arguments_ti, rgszNames, cNames, rgDispId); +} + +static HRESULT WINAPI Arguments2_Invoke(IArguments2 *iface, DISPID dispIdMember, REFIID riid, + LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, + EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + WINE_TRACE("(%d %p %p)\n", dispIdMember, pDispParams, pVarResult); + + return ITypeInfo_Invoke(arguments_ti, iface, dispIdMember, wFlags, pDispParams, + pVarResult, pExcepInfo, puArgErr); +} + +static HRESULT WINAPI Arguments2_Item(IArguments2 *iface, LONG index, BSTR *out_Value) +{ + WINE_TRACE("(%d %p)\n", index, out_Value); + + if(index<0 || index >= numOfArgs) + return E_INVALIDARG; + if(!(*out_Value = SysAllocString(argums[index]))) + return E_OUTOFMEMORY; + + return S_OK; +} + +static HRESULT WINAPI Arguments2_Count(IArguments2 *iface, LONG *out_Count) +{ + WINE_TRACE("(%p)\n", out_Count); + + *out_Count = numOfArgs; + return S_OK; +} + +static HRESULT WINAPI Arguments2_get_length(IArguments2 *iface, LONG *out_Count) +{ + WINE_TRACE("(%p)\n", out_Count); + + *out_Count = numOfArgs; + return S_OK; +} + +static const IArguments2Vtbl Arguments2Vtbl = { + Arguments2_QueryInterface, + Arguments2_AddRef, + Arguments2_Release, + Arguments2_GetTypeInfoCount, + Arguments2_GetTypeInfo, + Arguments2_GetIDsOfNames, + Arguments2_Invoke, + Arguments2_Item, + Arguments2_Count, + Arguments2_get_length +}; + +IArguments2 arguments_obj = { &Arguments2Vtbl }; diff --git a/base/applications/cmdutils/wscript/host.c b/base/applications/cmdutils/wscript/host.c new file mode 100644 index 00000000000..64519ad52db --- /dev/null +++ b/base/applications/cmdutils/wscript/host.c @@ -0,0 +1,333 @@ +/* + * Copyright 2010 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "wscript.h" + +#define BUILDVERSION 16535 + +static const WCHAR wshNameW[] = {'W','i','n','d','o','w','s',' ','S','c','r','i','p','t',' ','H','o','s','t',0}; +static const WCHAR wshVersionW[] = {'5','.','8'}; + +VARIANT_BOOL wshInteractive = +#ifndef CSCRIPT_BUILD + VARIANT_TRUE; +#else + VARIANT_FALSE; +#endif + +static HRESULT WINAPI Host_QueryInterface(IHost *iface, REFIID riid, void **ppv) +{ + WINE_TRACE("(%s %p)\n", wine_dbgstr_guid(riid), ppv); + + if(IsEqualGUID(&IID_IUnknown, riid) + || IsEqualGUID(&IID_IDispatch, riid) + || IsEqualGUID(&IID_IHost, riid)) { + *ppv = iface; + return S_OK; + } + + *ppv = NULL; + return E_NOINTERFACE; +} + +static ULONG WINAPI Host_AddRef(IHost *iface) +{ + return 2; +} + +static ULONG WINAPI Host_Release(IHost *iface) +{ + return 1; +} + +static HRESULT WINAPI Host_GetTypeInfoCount(IHost *iface, UINT *pctinfo) +{ + WINE_TRACE("(%p)\n", pctinfo); + *pctinfo = 1; + return S_OK; +} + +static HRESULT WINAPI Host_GetTypeInfo(IHost *iface, UINT iTInfo, LCID lcid, + ITypeInfo **ppTInfo) +{ + WINE_TRACE("(%x %x %p\n", iTInfo, lcid, ppTInfo); + + ITypeInfo_AddRef(host_ti); + *ppTInfo = host_ti; + return S_OK; +} + +static HRESULT WINAPI Host_GetIDsOfNames(IHost *iface, REFIID riid, LPOLESTR *rgszNames, + UINT cNames, LCID lcid, DISPID *rgDispId) +{ + WINE_TRACE("(%s %p %d %x %p)\n", wine_dbgstr_guid(riid), rgszNames, + cNames, lcid, rgDispId); + + return ITypeInfo_GetIDsOfNames(host_ti, rgszNames, cNames, rgDispId); +} + +static HRESULT WINAPI Host_Invoke(IHost *iface, DISPID dispIdMember, REFIID riid, + LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, + EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + WINE_TRACE("(%d %p %p)\n", dispIdMember, pDispParams, pVarResult); + + return ITypeInfo_Invoke(host_ti, iface, dispIdMember, wFlags, pDispParams, + pVarResult, pExcepInfo, puArgErr); +} + +static HRESULT WINAPI Host_get_Name(IHost *iface, BSTR *out_Name) +{ + WINE_TRACE("(%p)\n", out_Name); + + if(!(*out_Name = SysAllocString(wshNameW))) + return E_OUTOFMEMORY; + return S_OK; +} + +static HRESULT WINAPI Host_get_Application(IHost *iface, IDispatch **out_Dispatch) +{ + WINE_TRACE("(%p)\n", out_Dispatch); + + *out_Dispatch = (IDispatch*)&host_obj; + return S_OK; +} + +static HRESULT WINAPI Host_get_FullName(IHost *iface, BSTR *out_Path) +{ + WCHAR fullPath[MAX_PATH]; + + WINE_TRACE("(%p)\n", out_Path); + + if(GetModuleFileNameW(NULL, fullPath, sizeof(fullPath)/sizeof(WCHAR)) == 0) + return E_FAIL; + if(!(*out_Path = SysAllocString(fullPath))) + return E_OUTOFMEMORY; + return S_OK; +} + +static HRESULT WINAPI Host_get_Path(IHost *iface, BSTR *out_Path) +{ + WCHAR path[MAX_PATH]; + int howMany; + WCHAR *pos; + + WINE_TRACE("(%p)\n", out_Path); + + if(GetModuleFileNameW(NULL, path, sizeof(path)/sizeof(WCHAR)) == 0) + return E_FAIL; + pos = strrchrW(path, '\\'); + howMany = pos - path; + if(!(*out_Path = SysAllocStringLen(path, howMany))) + return E_OUTOFMEMORY; + return S_OK; +} + +static HRESULT WINAPI Host_get_Interactive(IHost *iface, VARIANT_BOOL *out_Interactive) +{ + WINE_TRACE("(%p)\n", out_Interactive); + + *out_Interactive = wshInteractive; + return S_OK; +} + +static HRESULT WINAPI Host_put_Interactive(IHost *iface, VARIANT_BOOL v) +{ + WINE_TRACE("(%x)\n", v); + + wshInteractive = v; + return S_OK; +} + +static HRESULT WINAPI Host_Quit(IHost *iface, int ExitCode) +{ + WINE_FIXME("(%d)\n", ExitCode); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_get_ScriptName(IHost *iface, BSTR *out_ScriptName) +{ + WCHAR *scriptName; + + WINE_TRACE("(%p)\n", out_ScriptName); + + scriptName = strrchrW(scriptFullName, '\\'); + ++scriptName; + if(!(*out_ScriptName = SysAllocString(scriptName))) + return E_OUTOFMEMORY; + return S_OK; +} + +static HRESULT WINAPI Host_get_ScriptFullName(IHost *iface, BSTR *out_ScriptFullName) +{ + WINE_TRACE("(%p)\n", out_ScriptFullName); + + if(!(*out_ScriptFullName = SysAllocString(scriptFullName))) + return E_OUTOFMEMORY; + return S_OK; +} + +static HRESULT WINAPI Host_get_Arguments(IHost *iface, IArguments2 **out_Arguments) +{ + WINE_TRACE("(%p)\n", out_Arguments); + + *out_Arguments = &arguments_obj; + return S_OK; +} + +static HRESULT WINAPI Host_get_Version(IHost *iface, BSTR *out_Version) +{ + WINE_TRACE("(%p)\n", out_Version); + + if(!(*out_Version = SysAllocString(wshVersionW))) + return E_OUTOFMEMORY; + return S_OK; +} + +static HRESULT WINAPI Host_get_BuildVersion(IHost *iface, int *out_Build) +{ + WINE_TRACE("(%p)\n", out_Build); + + *out_Build = BUILDVERSION; + return S_OK; +} + +static HRESULT WINAPI Host_get_Timeout(IHost *iface, LONG *out_Timeout) +{ + WINE_FIXME("(%p)\n", out_Timeout); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_put_Timeout(IHost *iface, LONG v) +{ + WINE_FIXME("(%d)\n", v); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_CreateObject(IHost *iface, BSTR ProgID, BSTR Prefix, + IDispatch **out_Dispatch) +{ + IUnknown *unk; + GUID guid; + HRESULT hres; + + TRACE("(%s %s %p)\n", wine_dbgstr_w(ProgID), wine_dbgstr_w(Prefix), out_Dispatch); + + if(Prefix && *Prefix) { + FIXME("Prefix %s not supported\n", debugstr_w(Prefix)); + return E_NOTIMPL; + } + + hres = CLSIDFromProgID(ProgID, &guid); + if(FAILED(hres)) + return hres; + + hres = CoCreateInstance(&guid, NULL, CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER, + &IID_IUnknown, (void**)&unk); + if(FAILED(hres)) + return hres; + + hres = IUnknown_QueryInterface(unk, &IID_IDispatch, (void**)out_Dispatch); + IUnknown_Release(unk); + return hres; +} + +static HRESULT WINAPI Host_Echo(IHost *iface, SAFEARRAY *args) +{ + WINE_FIXME("(%p)\n", args); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_GetObject(IHost *iface, BSTR Pathname, BSTR ProgID, + BSTR Prefix, IDispatch **out_Dispatch) +{ + WINE_FIXME("(%s %s %s %p)\n", wine_dbgstr_w(Pathname), wine_dbgstr_w(ProgID), + wine_dbgstr_w(Prefix), out_Dispatch); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_DisconnectObject(IHost *iface, IDispatch *Object) +{ + WINE_FIXME("(%p)\n", Object); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_Sleep(IHost *iface, LONG Time) +{ + WINE_FIXME("(%d)\n", Time); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_ConnectObject(IHost *iface, IDispatch *Object, BSTR Prefix) +{ + WINE_FIXME("(%p %s)\n", Object, wine_dbgstr_w(Prefix)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_get_StdIn(IHost *iface, ITextStream **ppts) +{ + WINE_FIXME("(%p)\n", ppts); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_get_StdOut(IHost *iface, ITextStream **ppts) +{ + WINE_FIXME("(%p)\n", ppts); + return E_NOTIMPL; +} + +static HRESULT WINAPI Host_get_StdErr(IHost *iface, ITextStream **ppts) +{ + WINE_FIXME("(%p)\n", ppts); + return E_NOTIMPL; +} + +static const IHostVtbl HostVtbl = { + Host_QueryInterface, + Host_AddRef, + Host_Release, + Host_GetTypeInfoCount, + Host_GetTypeInfo, + Host_GetIDsOfNames, + Host_Invoke, + Host_get_Name, + Host_get_Application, + Host_get_FullName, + Host_get_Path, + Host_get_Interactive, + Host_put_Interactive, + Host_Quit, + Host_get_ScriptName, + Host_get_ScriptFullName, + Host_get_Arguments, + Host_get_Version, + Host_get_BuildVersion, + Host_get_Timeout, + Host_put_Timeout, + Host_CreateObject, + Host_Echo, + Host_GetObject, + Host_DisconnectObject, + Host_Sleep, + Host_ConnectObject, + Host_get_StdIn, + Host_get_StdOut, + Host_get_StdErr +}; + +IHost host_obj = { &HostVtbl }; diff --git a/base/applications/cmdutils/wscript/ihost.idl b/base/applications/cmdutils/wscript/ihost.idl new file mode 100644 index 00000000000..9e4202ea039 --- /dev/null +++ b/base/applications/cmdutils/wscript/ihost.idl @@ -0,0 +1,188 @@ +/* + * Copyright 2010 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#pragma makedep typelib + +#include "ihost_dispid.h" + +import "oaidl.idl"; + +[ + uuid(60254ca0-953b-11cf-8c96-00aa00b8708c), + version(5.6), +] +library IHost +{ + importlib("stdole2.tlb"); + + [ + odl, + uuid(2cc5a9d1-b1e5-11d3-a286-00104bd35090), + dual, + oleautomation + ] + interface IArguments2 : IDispatch { + [id(DISPID_VALUE)] + HRESULT Item( + [in] LONG Index, + [out, retval] BSTR *out_Value); + + [id(IARGUMENTS2_COUNT_DISPID)] + HRESULT Count([out, retval] LONG *out_Count); + + [id(IARGUMENTS2_LENGTH_DISPID), propget] + HRESULT length([out, retval] LONG *out_Count); + } + + [ + odl, + uuid(53bad8c1-e718-11cf-893d-00a0c9054228), + hidden, + dual, + nonextensible, + oleautomation + ] + interface ITextStream : IDispatch { + [id(ITEXTSTREAM_LINE_DISPID), propget] + HRESULT Line([out, retval] LONG *Line); + + [id(ITEXTSTREAM_COLUMN_DISPID), propget] + HRESULT Column([out, retval] LONG *Column); + + [id(ITEXTSTREAM_ATENDOFSTREAM_DISPID), propget] + HRESULT AtEndOfStream([out, retval] VARIANT_BOOL *EOS); + + [id(ITEXTSTREAM_ATENDOFLINE_DISPID), propget] + HRESULT AtEndOfLine([out, retval] VARIANT_BOOL *EOL); + + [id(ITEXTSTREAM_READ_DISPID)] + HRESULT Read( + [in] LONG Characters, + [out, retval] BSTR *Text); + + [id(ITEXTSTREAM_READLINE_DISPID)] + HRESULT ReadLine([out, retval] BSTR *Text); + + [id(ITEXTSTREAM_READALL_DISPID)] + HRESULT ReadAll([out, retval] BSTR *Text); + + [id(ITEXTSTREAM_WRITE_DISPID)] + HRESULT Write([in] BSTR Text); + + [id(ITEXTSTREAM_WRITELINE_DISPID)] + HRESULT WriteLine([in, optional, defaultvalue("")] BSTR Text); + + [id(ITEXTSTREAM_WRITEBLANKLINES_DISPID)] + HRESULT WriteBlankLines([in] LONG Lines); + + [id(ITEXTSTREAM_SKIP_DISPID)] + HRESULT Skip([in] LONG Characters); + + [id(ITEXTSTREAM_SKIPLINE_DISPID)] + HRESULT SkipLine(); + + [id(ITEXTSTREAM_CLOSE_DISPID)] + HRESULT Close(); + } + + [ + odl, + uuid(91afbd1b-5feb-43f5-b028-e2ca960617ec), + dual, + oleautomation + ] + interface IHost : IDispatch { + [id(IHOST_NAME_DISPID), propget] + HRESULT Name([out, retval] BSTR *out_Name); + + [id(IHOST_APPLICATION_DISPID), propget] + HRESULT Application([out, retval] IDispatch **out_Dispatch); + + [id(IHOST_FULLNAME_DISPID), propget] + HRESULT FullName([out, retval] BSTR *out_Path); + + [id(IHOST_PATH_DISPID), propget] + HRESULT Path([out, retval] BSTR* out_Path); + + [id(IHOST_INTERACTIVE_DISPID), propget] + HRESULT Interactive([out, retval] VARIANT_BOOL *out_Interactive); + + [id(IHOST_INTERACTIVE_DISPID), propput] + HRESULT Interactive([in] VARIANT_BOOL out_Interactive); + + [id(IHOST_QUIT_DISPID)] + HRESULT Quit([in, optional, defaultvalue(0)] int ExitCode); + + [id(IHOST_SCRIPTNAME_DISPID), propget] + HRESULT ScriptName([out, retval] BSTR *out_ScriptName); + + [id(IHOST_SCRIPTFULLNAME_DISPID), propget] + HRESULT ScriptFullName([out, retval] BSTR* out_ScriptFullName); + + [id(IHOST_ARGUMENTS_DISPID), propget] + HRESULT Arguments([out, retval] IArguments2 **out_Arguments); + + [id(IHOST_VERSION_DISPID), propget] + HRESULT Version([out, retval] BSTR *out_Version); + + [id(IHOST_BUILDVERSION_DISPID), propget] + HRESULT BuildVersion([out, retval] int *out_Build); + + [id(IHOST_TIMEOUT_DISPID), propget] + HRESULT Timeout([out, retval] LONG *out_Timeout); + + [id(IHOST_TIMEOUT_DISPID), propput] + HRESULT Timeout([in] LONG out_Timeout); + + [id(IHOST_CREATEOBJECT_DISPID)] + HRESULT CreateObject( + [in] BSTR ProgID, + [in, optional, defaultvalue("")] BSTR Prefix, + [out, retval] IDispatch **out_Dispatch); + + [id(IHOST_ECHO_DISPID), vararg] + HRESULT Echo([in] SAFEARRAY(VARIANT) pArgs); + + [id(IHOST_GETOBJECT_DISPID)] + HRESULT GetObject( + [in] BSTR Pathname, + [in, optional, defaultvalue("")] BSTR ProgID, + [in, optional, defaultvalue("")] BSTR Prefix, + [out, retval] IDispatch **out_Dispatch); + + [id(IHOST_DISCONNECTOBJECT_DISPID)] + HRESULT DisconnectObject([in] IDispatch *Object); + + [id(IHOST_SLEEP_DISPID)] + HRESULT Sleep([in] LONG Time); + + [id(IHOST_CONNECTOBJECT_DISPID)] + HRESULT ConnectObject( + [in] IDispatch *Object, + [in] BSTR Prefix); + + [id(IHOST_STDIN_DISPID), propget] + HRESULT StdIn([out, retval] ITextStream **out_ppts); + + [id(IHOST_STDOUT_DISPID), propget] + HRESULT StdOut([out, retval] ITextStream **ppts); + + [id(IHOST_STDERR_DISPID), propget] + HRESULT StdErr([out, retval] ITextStream **ppts); + } +} diff --git a/base/applications/cmdutils/wscript/ihost_dispid.h b/base/applications/cmdutils/wscript/ihost_dispid.h new file mode 100644 index 00000000000..da60108a130 --- /dev/null +++ b/base/applications/cmdutils/wscript/ihost_dispid.h @@ -0,0 +1,58 @@ +/* + * Copyright 2010 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#pragma once + +#define IHOST_NAME_DISPID DISPID_VALUE +#define IHOST_APPLICATION_DISPID 100 +#define IHOST_FULLNAME_DISPID 101 +#define IHOST_PATH_DISPID 102 +#define IHOST_INTERACTIVE_DISPID 103 +#define IHOST_QUIT_DISPID 200 +#define IHOST_SCRIPTNAME_DISPID 1000 +#define IHOST_SCRIPTFULLNAME_DISPID 1001 +#define IHOST_ARGUMENTS_DISPID 1002 +#define IHOST_VERSION_DISPID 1003 +#define IHOST_BUILDVERSION_DISPID 1004 +#define IHOST_TIMEOUT_DISPID 1005 +#define IHOST_STDIN_DISPID 1006 +#define IHOST_STDOUT_DISPID 1007 +#define IHOST_STDERR_DISPID 1008 +#define IHOST_CREATEOBJECT_DISPID 2000 +#define IHOST_ECHO_DISPID 2001 +#define IHOST_GETOBJECT_DISPID 2002 +#define IHOST_DISCONNECTOBJECT_DISPID 2003 +#define IHOST_SLEEP_DISPID 2004 +#define IHOST_CONNECTOBJECT_DISPID 2005 + +#define IARGUMENTS2_COUNT_DISPID 1 +#define IARGUMENTS2_LENGTH_DISPID 2 + +#define ITEXTSTREAM_LINE_DISPID 10000 +#define ITEXTSTREAM_COLUMN_DISPID -529 +#define ITEXTSTREAM_ATENDOFSTREAM_DISPID 10002 +#define ITEXTSTREAM_ATENDOFLINE_DISPID 10003 +#define ITEXTSTREAM_READ_DISPID 10004 +#define ITEXTSTREAM_READLINE_DISPID 10005 +#define ITEXTSTREAM_READALL_DISPID 10006 +#define ITEXTSTREAM_WRITE_DISPID 10007 +#define ITEXTSTREAM_WRITELINE_DISPID 10008 +#define ITEXTSTREAM_WRITEBLANKLINES_DISPID 10009 +#define ITEXTSTREAM_SKIP_DISPID 10010 +#define ITEXTSTREAM_SKIPLINE_DISPID 10011 +#define ITEXTSTREAM_CLOSE_DISPID 10012 diff --git a/base/applications/cmdutils/wscript/main.c b/base/applications/cmdutils/wscript/main.c new file mode 100644 index 00000000000..0923c33cecc --- /dev/null +++ b/base/applications/cmdutils/wscript/main.c @@ -0,0 +1,467 @@ +/* + * Copyright 2010 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "wscript.h" + +#include +#include + +#ifdef _WIN64 + +#define IActiveScriptParse_Release IActiveScriptParse64_Release +#define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew +#define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText + +#else + +#define IActiveScriptParse_Release IActiveScriptParse32_Release +#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew +#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText + +#endif + +static const WCHAR wscriptW[] = {'W','S','c','r','i','p','t',0}; +static const WCHAR wshW[] = {'W','S','H',0}; +WCHAR scriptFullName[MAX_PATH]; + +ITypeInfo *host_ti; +ITypeInfo *arguments_ti; + +static HRESULT query_interface(REFIID,void**); + +static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface, + REFIID riid, void **ppv) +{ + return query_interface(riid, ppv); +} + +static ULONG WINAPI ActiveScriptSite_AddRef(IActiveScriptSite *iface) +{ + return 2; +} + +static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface) +{ + return 1; +} + +static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid) +{ + WINE_TRACE("()\n"); + + *plcid = GetUserDefaultLCID(); + return S_OK; +} + +static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, + LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppunkItem, ITypeInfo **ppti) +{ + WINE_TRACE("(%s %x %p %p)\n", wine_dbgstr_w(pstrName), dwReturnMask, ppunkItem, ppti); + + if(strcmpW(pstrName, wshW) && strcmpW(pstrName, wscriptW)) + return E_FAIL; + + if(dwReturnMask & SCRIPTINFO_ITYPEINFO) { + ITypeInfo_AddRef(host_ti); + *ppti = host_ti; + } + + if(dwReturnMask & SCRIPTINFO_IUNKNOWN) { + IHost_AddRef(&host_obj); + *ppunkItem = (IUnknown*)&host_obj; + } + + return S_OK; +} + +static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, + BSTR *pbstrVersion) +{ + WINE_FIXME("()\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI ActiveScriptSite_OnScriptTerminate(IActiveScriptSite *iface, + const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo) +{ + WINE_FIXME("()\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, + SCRIPTSTATE ssScriptState) +{ + WINE_TRACE("(%x)\n", ssScriptState); + return S_OK; +} + +static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, + IActiveScriptError *pscripterror) +{ + WINE_FIXME("()\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface) +{ + WINE_TRACE("()\n"); + return S_OK; +} + +static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface) +{ + WINE_TRACE("()\n"); + return S_OK; +} + +static IActiveScriptSiteVtbl ActiveScriptSiteVtbl = { + ActiveScriptSite_QueryInterface, + ActiveScriptSite_AddRef, + ActiveScriptSite_Release, + ActiveScriptSite_GetLCID, + ActiveScriptSite_GetItemInfo, + ActiveScriptSite_GetDocVersionString, + ActiveScriptSite_OnScriptTerminate, + ActiveScriptSite_OnStateChange, + ActiveScriptSite_OnScriptError, + ActiveScriptSite_OnEnterScript, + ActiveScriptSite_OnLeaveScript +}; + +static IActiveScriptSite script_site = { &ActiveScriptSiteVtbl }; + +static HRESULT WINAPI ActiveScriptSiteWindow_QueryInterface(IActiveScriptSiteWindow *iface, REFIID riid, void **ppv) +{ + return query_interface(riid, ppv); +} + +static ULONG WINAPI ActiveScriptSiteWindow_AddRef(IActiveScriptSiteWindow *iface) +{ + return 2; +} + +static ULONG WINAPI ActiveScriptSiteWindow_Release(IActiveScriptSiteWindow *iface) +{ + return 1; +} + +static HRESULT WINAPI ActiveScriptSiteWindow_GetWindow(IActiveScriptSiteWindow *iface, HWND *phwnd) +{ + TRACE("(%p)\n", phwnd); + + *phwnd = NULL; + return S_OK; +} + +static HRESULT WINAPI ActiveScriptSiteWindow_EnableModeless(IActiveScriptSiteWindow *iface, BOOL fEnable) +{ + TRACE("(%x)\n", fEnable); + return S_OK; +} + +static IActiveScriptSiteWindowVtbl ActiveScriptSiteWindowVtbl = { + ActiveScriptSiteWindow_QueryInterface, + ActiveScriptSiteWindow_AddRef, + ActiveScriptSiteWindow_Release, + ActiveScriptSiteWindow_GetWindow, + ActiveScriptSiteWindow_EnableModeless +}; + +static IActiveScriptSiteWindow script_site_window = { &ActiveScriptSiteWindowVtbl }; + +static HRESULT query_interface(REFIID riid, void **ppv) +{ + if(IsEqualGUID(riid, &IID_IUnknown)) { + TRACE("(IID_IUnknown %p)\n", ppv); + *ppv = &script_site; + }else if(IsEqualGUID(riid, &IID_IActiveScriptSite)) { + TRACE("(IID_IActiveScriptSite %p)\n", ppv); + *ppv = &script_site; + }else if(IsEqualGUID(riid, &IID_IActiveScriptSiteWindow)) { + TRACE("(IID_IActiveScriptSiteWindow %p)\n", ppv); + *ppv = &script_site_window; + }else { + *ppv = NULL; + TRACE("(%s %p)\n", wine_dbgstr_guid(riid), ppv); + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; +} + +static BOOL load_typelib(void) +{ + ITypeLib *typelib; + HRESULT hres; + + static const WCHAR wscript_exeW[] = {'w','s','c','r','i','p','t','.','e','x','e',0}; + + hres = LoadTypeLib(wscript_exeW, &typelib); + if(FAILED(hres)) + return FALSE; + + hres = ITypeLib_GetTypeInfoOfGuid(typelib, &IID_IHost, &host_ti); + if(SUCCEEDED(hres)) + hres = ITypeLib_GetTypeInfoOfGuid(typelib, &IID_IArguments2, &arguments_ti); + + ITypeLib_Release(typelib); + return SUCCEEDED(hres); +} + +static BOOL get_engine_clsid(const WCHAR *ext, CLSID *clsid) +{ + WCHAR fileid[64], progid[64]; + DWORD res; + LONG size; + HKEY hkey; + HRESULT hres; + + static const WCHAR script_engineW[] = + {'\\','S','c','r','i','p','t','E','n','g','i','n','e',0}; + + res = RegOpenKeyW(HKEY_CLASSES_ROOT, ext, &hkey); + if(res != ERROR_SUCCESS) + return FALSE; + + size = sizeof(fileid)/sizeof(WCHAR); + res = RegQueryValueW(hkey, NULL, fileid, &size); + RegCloseKey(hkey); + if(res != ERROR_SUCCESS) + return FALSE; + + WINE_TRACE("fileid is %s\n", wine_dbgstr_w(fileid)); + + strcatW(fileid, script_engineW); + res = RegOpenKeyW(HKEY_CLASSES_ROOT, fileid, &hkey); + if(res != ERROR_SUCCESS) + return FALSE; + + size = sizeof(progid)/sizeof(WCHAR); + res = RegQueryValueW(hkey, NULL, progid, &size); + RegCloseKey(hkey); + if(res != ERROR_SUCCESS) + return FALSE; + + WINE_TRACE("ProgID is %s\n", wine_dbgstr_w(progid)); + + hres = CLSIDFromProgID(progid, clsid); + return SUCCEEDED(hres); +} + +static BOOL create_engine(CLSID *clsid, IActiveScript **script_ret, + IActiveScriptParse **parser) +{ + IActiveScript *script; + IUnknown *unk; + HRESULT hres; + + hres = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, + &IID_IUnknown, (void**)&unk); + if(FAILED(hres)) + return FALSE; + + hres = IUnknown_QueryInterface(unk, &IID_IActiveScript, (void**)&script); + IUnknown_Release(unk); + if(FAILED(hres)) + return FALSE; + + hres = IActiveScript_QueryInterface(script, &IID_IActiveScriptParse, (void**)parser); + if(FAILED(hres)) { + IActiveScript_Release(script); + return FALSE; + } + + *script_ret = script; + return TRUE; +} + +static BOOL init_engine(IActiveScript *script, IActiveScriptParse *parser) +{ + HRESULT hres; + + if(!load_typelib()) + return FALSE; + + hres = IActiveScript_SetScriptSite(script, &script_site); + if(FAILED(hres)) + return FALSE; + + hres = IActiveScriptParse_InitNew(parser); + if(FAILED(hres)) + return FALSE; + + hres = IActiveScript_AddNamedItem(script, wscriptW, SCRIPTITEM_ISVISIBLE); + if(FAILED(hres)) + return FALSE; + + hres = IActiveScript_AddNamedItem(script, wshW, SCRIPTITEM_ISVISIBLE); + if(FAILED(hres)) + return FALSE; + + hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_INITIALIZED); + return SUCCEEDED(hres); +} + +static BSTR get_script_str(const WCHAR *filename) +{ + const char *file_map; + HANDLE file, map; + DWORD size, len; + BSTR ret; + + file = CreateFileW(filename, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL); + if(file == INVALID_HANDLE_VALUE) + return NULL; + + size = GetFileSize(file, NULL); + map = CreateFileMappingW(file, NULL, PAGE_READONLY, 0, 0, NULL); + CloseHandle(file); + if(map == INVALID_HANDLE_VALUE) + return NULL; + + file_map = MapViewOfFile(map, FILE_MAP_READ, 0, 0, 0); + CloseHandle(map); + if(!file_map) + return NULL; + + len = MultiByteToWideChar(CP_ACP, 0, file_map, size, NULL, 0); + ret = SysAllocStringLen(NULL, len); + MultiByteToWideChar(CP_ACP, 0, file_map, size, ret, len); + + UnmapViewOfFile(file_map); + return ret; +} + +static void run_script(const WCHAR *filename, IActiveScript *script, IActiveScriptParse *parser) +{ + BSTR text; + HRESULT hres; + + text = get_script_str(filename); + if(!text) { + WINE_FIXME("Could not get script text\n"); + return; + } + + hres = IActiveScriptParse_ParseScriptText(parser, text, NULL, NULL, NULL, 1, 1, + SCRIPTTEXT_HOSTMANAGESSOURCE|SCRIPTITEM_ISVISIBLE, NULL, NULL); + SysFreeString(text); + if(FAILED(hres)) { + WINE_FIXME("ParseScriptText failed: %08x\n", hres); + return; + } + + hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_STARTED); + if(FAILED(hres)) + WINE_FIXME("SetScriptState failed: %08x\n", hres); +} + +static BOOL set_host_properties(const WCHAR *prop) +{ + static const WCHAR nologoW[] = {'n','o','l','o','g','o',0}; + static const WCHAR iactive[] = {'i',0}; + static const WCHAR batch[] = {'b',0}; + + if(*prop == '/') { + ++prop; + if(*prop == '/') + ++prop; + } + else + ++prop; + + if(strcmpiW(prop, iactive) == 0) + wshInteractive = VARIANT_TRUE; + else if(strcmpiW(prop, batch) == 0) + wshInteractive = VARIANT_FALSE; + else if(strcmpiW(prop, nologoW) == 0) + WINE_FIXME("ignored %s switch\n", debugstr_w(nologoW)); + else + { + WINE_FIXME("unsupported switch %s\n", debugstr_w(prop)); + return FALSE; + } + return TRUE; +} + +int WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR cmdline, int cmdshow) +{ + WCHAR *ext, *filepart, *filename = NULL; + IActiveScriptParse *parser; + IActiveScript *script; + WCHAR **argv; + CLSID clsid; + int argc, i; + DWORD res; + + WINE_TRACE("(%p %p %s %x)\n", hInst, hPrevInst, wine_dbgstr_w(cmdline), cmdshow); + + argv = CommandLineToArgvW(cmdline, &argc); + if(!argv) + return 1; + + for(i=0; i sizeof(scriptFullName)/sizeof(WCHAR)) + return 1; + + ext = strrchrW(filepart, '.'); + if(!ext || !get_engine_clsid(ext, &clsid)) { + WINE_FIXME("Could not find engine for %s\n", wine_dbgstr_w(ext)); + return 1; + } + + CoInitialize(NULL); + + if(!create_engine(&clsid, &script, &parser)) { + WINE_FIXME("Could not create script engine\n"); + CoUninitialize(); + return 1; + } + + if(init_engine(script, parser)) { + run_script(filename, script, parser); + IActiveScript_Close(script); + ITypeInfo_Release(host_ti); + }else { + WINE_FIXME("Script initialization failed\n"); + } + + IActiveScript_Release(script); + IActiveScriptParse_Release(parser); + + CoUninitialize(); + + return 0; +} diff --git a/base/applications/cmdutils/wscript/rsrc.rc b/base/applications/cmdutils/wscript/rsrc.rc new file mode 100644 index 00000000000..51ce0982659 --- /dev/null +++ b/base/applications/cmdutils/wscript/rsrc.rc @@ -0,0 +1,20 @@ +/* + * Copyright 2010 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* @makedep: ihost.tlb */ +1 TYPELIB ihost.tlb diff --git a/base/applications/cmdutils/wscript/wscript.h b/base/applications/cmdutils/wscript/wscript.h new file mode 100644 index 00000000000..7a861613818 --- /dev/null +++ b/base/applications/cmdutils/wscript/wscript.h @@ -0,0 +1,54 @@ +/* + * Copyright 2010 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _WSCRIPT_H_ +#define _WSCRIPT_H_ + +#include + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COBJMACROS +#define CONST_VTABLE + +#include +#include +#include +#include +#include +#include + +WINE_DEFAULT_DEBUG_CHANNEL(wscript); + +extern IHost host_obj; + +extern IArguments2 arguments_obj; + +extern ITypeInfo *host_ti; + +extern ITypeInfo *arguments_ti; + +extern WCHAR scriptFullName[]; + +extern WCHAR **argums; + +extern int numOfArgs; + +extern VARIANT_BOOL wshInteractive; + +#endif /* _WSCRIPT_H_ */ diff --git a/base/applications/dxdiag/lang/es-ES.rc b/base/applications/dxdiag/lang/es-ES.rc index e9e2d96f69c..0c9e39e7416 100644 --- a/base/applications/dxdiag/lang/es-ES.rc +++ b/base/applications/dxdiag/lang/es-ES.rc @@ -1,4 +1,4 @@ -/* Spanish Language resource file. Traducido por: Javier Remacha 2008 */ +/* Spanish Language resource file. Traducido por: Javier Remacha <2008> e Ismael Ferreras Morezuelas <2014> */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -19,10 +19,10 @@ IDD_SYSTEM_DIALOG DIALOGEX 0, 0, 462, 220 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Esta herramienta reporta información detallada acerca de los componentes de ReactX y controladores instalados en su equipo.", -1, 10, 10, 443, 17 - LTEXT "Si sabe que área está causando el problema, presione la pestaña superior apropiada. Si no puede usar el botón ""Siguiente página"" para visitar las páginas en secuencia.", -1, 10, 30, 443, 25 + LTEXT "Esta herramienta informa detalladamente acerca de los componentes y controladores de ReactX instalados en su equipo.", -1, 10, 10, 443, 17 + LTEXT "Si sabe la causa del problema, presione la pestaña superior apropiada. De lo contrario, puede usar el botón ""Siguiente página"" para visitar las páginas en secuencia.", -1, 10, 30, 443, 25 GROUPBOX "Información del sistema ", -1, 10, 55, 443, 130, SS_RIGHT - LTEXT "Fecha/hora actual:", -1, 70, 70, 80, 10, SS_RIGHT + LTEXT "Fecha y hora actual:", -1, 70, 70, 80, 10, SS_RIGHT LTEXT "Nombre del equipo:", -1, 70, 80, 80, 10, SS_RIGHT LTEXT "Sistema operativo:", -1, 70, 90, 80, 10, SS_RIGHT LTEXT "Idioma:", -1, 70, 100, 80, 10, SS_RIGHT @@ -50,11 +50,11 @@ IDD_DISPLAY_DIALOG DIALOGEX 0, 0, 462, 220 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Dispositivo ", -1, 10, 10, 250, 100 + GROUPBOX "Dispositivo", -1, 10, 10, 250, 100 RTEXT "Nombre:", -1, 20, 25, 70, 10 RTEXT "Fabricante:", -1, 20, 35, 70, 10 - RTEXT "Tipo de Chip:", -1, 20, 45, 70, 10 - RTEXT "Ipo de DAC:", -1, 20, 55, 70, 10 + RTEXT "Tipo de chip:", -1, 20, 45, 70, 10 + RTEXT "Tipo de DAC:", -1, 20, 55, 70, 10 RTEXT "Memoria total aprox.:", -1, 14, 65, 75, 10 RTEXT "Resolución actual:", -1, 14, 75, 75, 10 RTEXT "Monitor:", -1, 20, 85, 70, 10 @@ -65,13 +65,13 @@ BEGIN LTEXT "", IDC_STATIC_ADAPTER_MEM, 95, 65, 150, 10 LTEXT "", IDC_STATIC_ADAPTER_MODE, 95, 75, 150, 10 LTEXT "", IDC_STATIC_ADAPTER_MONITOR, 95, 85, 150, 10 - GROUPBOX "Controlador ", -1, 270, 10, 190, 100 + GROUPBOX "Controladores ", -1, 270, 10, 190, 100 RTEXT "Controlador:", -1, 275, 25, 55, 10 RTEXT "Versión:", -1, 275, 35, 55, 10 RTEXT "Fecha:", -1, 275, 45, 55, 10 - RTEXT "WHQL-Logo:", -1, 275, 55, 55, 10 + RTEXT "Logo WHQL:", -1, 275, 55, 55, 10 RTEXT "Mini-VDD:", -1, 275, 65, 55, 10 - RTEXT " vvdddVDD:", -1, 275, 75, 55, 10 + RTEXT "vvdddVDD:", -1, 275, 75, 55, 10 RTEXT "Versión DDI:", -1, 275, 85, 55, 10 LTEXT "", IDC_STATIC_ADAPTER_DRIVER, 335, 35, 100, 10 LTEXT "", IDC_STATIC_ADAPTER_VERSION, 335, 35, 100, 10 @@ -82,16 +82,16 @@ BEGIN LTEXT "", IDC_STATIC_ADAPTER_DDI, 335, 85, 100, 10 GROUPBOX "Características ReactX ", -1, 10, 115, 450, 60 RTEXT "Aceleración DirectDraw:", -1, 15, 130, 110, 12 - RTEXT "AceleraciónDirect3D:", -1, 15, 145, 110, 12 + RTEXT "Aceleración Direct3D:", -1, 15, 145, 110, 12 RTEXT "Aceleración texturas AGP:", -1, 15, 160, 110, 12 LTEXT "", IDC_STATIC_DDSTATE, 130, 130, 40, 10 LTEXT "", IDC_STATIC_D3DSTATE, 130, 145, 40, 10 LTEXT "", IDC_STATIC_AGPSTATE, 130, 160, 40, 10 - PUSHBUTTON "Permita", IDC_BUTTON_DDRAW, 170, 124, 60, 14, WS_DISABLED - PUSHBUTTON "Permita", IDC_BUTTON_D3D, 170, 140, 60, 14, WS_DISABLED - PUSHBUTTON "Permita", IDC_BUTTON_AGP, 170, 156, 60, 14, WS_DISABLED - PUSHBUTTON "Test DirectDraw", IDC_BUTTON_TESTDD, 250, 124, 80, 14 - PUSHBUTTON "Test Direct3D", IDC_BUTTON_TEST3D, 250, 140, 80, 14 + PUSHBUTTON "Habilitar", IDC_BUTTON_DDRAW, 170, 124, 60, 14, WS_DISABLED + PUSHBUTTON "Habilitar", IDC_BUTTON_D3D, 170, 140, 60, 14, WS_DISABLED + PUSHBUTTON "Habilitar", IDC_BUTTON_AGP, 170, 156, 60, 14, WS_DISABLED + PUSHBUTTON "Probar DirectDraw", IDC_BUTTON_TESTDD, 250, 124, 80, 14 + PUSHBUTTON "Probar Direct3D", IDC_BUTTON_TEST3D, 250, 140, 80, 14 GROUPBOX "Notas ", -1, 10, 180, 450, 40 EDITTEXT IDC_TEXT_INFO, 20, 192, 432, 20, WS_DISABLED | WS_TABSTOP END @@ -117,7 +117,7 @@ BEGIN RTEXT "Nombre:", -1, 275, 25, 55, 10 RTEXT "Versión:", -1, 275, 35, 55, 10 RTEXT "Fecha:", -1, 275, 45, 55, 10 - RTEXT "WHQL-Logo:", -1, 275, 55, 55, 10 + RTEXT "Logo WHQL:", -1, 275, 55, 55, 10 RTEXT "Otros archivos:", -1, 275, 65, 55, 10 RTEXT "Proveedor:", -1, 275, 75, 55, 10 LTEXT "", IDC_STATIC_DSOUND_DRIVER, 335, 25, 100, 10 @@ -129,7 +129,7 @@ BEGIN GROUPBOX "Características ReactX ", -1, 10, 115, 450, 60 CONTROL "", IDC_SLIDER_DSOUND, "msctls_trackbar32", TBS_BOTTOM | TBS_AUTOTICKS | WS_TABSTOP, 120, 135, 80, 17 RTEXT "Sonido Hardware\nNivel de aceleración:", -1, 20, 135, 90, 20 - PUSHBUTTON "Test DirectSound", IDC_BUTTON_TESTDSOUND, 270, 134, 80, 14 + PUSHBUTTON "Probar DirectSound", IDC_BUTTON_TESTDSOUND, 270, 134, 80, 14 GROUPBOX "Notas", -1, 10, 180, 450, 40 EDITTEXT IDC_TEXT_DSOUNDINFO, 20, 192, 432, 20, WS_DISABLED | WS_TABSTOP END @@ -157,7 +157,7 @@ IDD_NETWORK_DIALOG DIALOGEX 0, 0, 462, 220 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Proveedores servicios DirectPlay registrados", -1, 10, 10, 452, 80 + GROUPBOX "Proveedores de servicios DirectPlay registrados", -1, 10, 10, 452, 80 CONTROL "", IDC_LIST_PROVIDER, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 22, 432, 60 END @@ -190,7 +190,7 @@ BEGIN IDS_DEVICE_CONTROLLER "ID del controlador" IDS_DEVICE_MANUFACTURER "ID del fabricante" IDS_DEVICE_PRODUCT "ID del producto" - IDS_DEVICE_FORCEFEEDBACK "Forzar recuperación del controlador" + IDS_DEVICE_FORCEFEEDBACK "Controlador de vibración" IDS_NOT_APPLICABLE "n/a" IDS_OPTION_YES "Sí" IDS_DIRECTPLAY_COL_NAME1 "Nombre" @@ -207,17 +207,17 @@ BEGIN IDS_DIRECTPLAY_SERIALCONN "Conexión serie para DirectPlay" IDS_REG_SUCCESS "Aceptar" IDS_REG_FAIL "Error" - IDS_DDTEST_ERROR "¡El test ha fallado!" - IDS_DDTEST_DESCRIPTION "Va ha comenzar el test de interface DirecDraw. ¿Desea continuar?" - IDS_DDPRIMARY_DESCRIPTION "Este test usará DirectDraw para dibujar en la pantalla principal. Deben dibujarse rectángulos blancos y negros. ¿Desea continuar?" + IDS_DDTEST_ERROR "¡La prueba ha fallado!" + IDS_DDTEST_DESCRIPTION "Va ha comenzar la prueba del interfaz DirecDraw. ¿Desea continuar?" + IDS_DDPRIMARY_DESCRIPTION "Esta prueba usará DirectDraw para dibujar en la pantalla principal. Deben aparecer rectángulos blancos y negros. ¿Desea continuar?" IDS_DDPRIMARY_RESULT "¿Ve rectángulos blancos y negros?" - IDS_DDOFFSCREEN_DESCRIPTION "Este test usará DirectDraw para dibujar en pantalla. Un rectángulo blanco moviendose debe dibujarse. ¿Desea continuar?" + IDS_DDOFFSCREEN_DESCRIPTION "Esta prueba usará DirectDraw para dibujar en pantalla. Debe aparecer un rectángulo blanco en movimiento. ¿Desea continuar?" IDS_DDOFFSCREEN_RESULT "¿Ve un rectángulo blanco moviendose?" - IDS_DDFULLSCREEN_DESCRIPTION "Este test usará DirectDraw para dibujar en pantalla completa. Un rectángulo blanco moviendose debe dibujarse. ¿Desea continuar?" - IDS_DDFULLSCREEN_RESULT "¿Ve un rectángulo blanco moviendose en pantalla completa?" + IDS_DDFULLSCREEN_DESCRIPTION "Esta prueba usará DirectDraw para dibujar en pantalla completa. Debe aparecer un rectángulo blanco en movimiento. ¿Desea continuar?" + IDS_DDFULLSCREEN_RESULT "¿Ve un rectángulo blanco moviéndose en pantalla completa?" IDS_FORMAT_ADAPTER_MEM "%u MB" IDS_FORMAT_ADAPTER_MODE "%04u x %04u (%u bit)(%uHz)" IDS_OPTION_NO "No" - IDS_D3DTEST_DESCRIPTION "This will start Direct3D interface test. Continue?" - IDS_D3DTEST_D3Dx "This test will use hardware-accelerated Direct3D %u interface." + IDS_D3DTEST_DESCRIPTION "Va a comenzar la prueba del interfaz Direct3D. ¿Desea continuar?" + IDS_D3DTEST_D3Dx "Esta prueba utilizará un interfaz Direct3D %u acelerado por hardware." END diff --git a/base/applications/dxdiag/lang/ru-RU.rc b/base/applications/dxdiag/lang/ru-RU.rc index a8aa8236f71..df780b60b05 100644 --- a/base/applications/dxdiag/lang/ru-RU.rc +++ b/base/applications/dxdiag/lang/ru-RU.rc @@ -185,9 +185,9 @@ BEGIN IDS_DEVICE_STATUS_UNKNOWN "Неизвестно" IDS_DEVICE_NAME "Имя устройства" IDS_DEVICE_STATUS "Состояние" - IDS_DEVICE_CONTROLLER "ID контроллера" - IDS_DEVICE_MANUFACTURER "ID производителя" - IDS_DEVICE_PRODUCT "ID продукта" + IDS_DEVICE_CONTROLLER "Код контроллера" + IDS_DEVICE_MANUFACTURER "Код производителя" + IDS_DEVICE_PRODUCT "Код продукта" IDS_DEVICE_FORCEFEEDBACK "Драйвер Force Feedback" IDS_NOT_APPLICABLE "Н/Д" IDS_OPTION_YES "Да" @@ -213,7 +213,7 @@ BEGIN IDS_DDOFFSCREEN_RESULT "Вы видели двигающийся белый квадратик?" IDS_DDFULLSCREEN_DESCRIPTION "В этом тесте будет проверена возможность рисования DirectDraw в полноэкранном режиме. Должен быть виден двигающийся белый квадратик. Продолжить?" IDS_DDFULLSCREEN_RESULT "Вы видели белый двигающийся квадратик в полноэкранном режиме?" - IDS_FORMAT_ADAPTER_MEM "%u Мб" + IDS_FORMAT_ADAPTER_MEM "%u МБ" IDS_FORMAT_ADAPTER_MODE "%04u x %04u (%u бит)(%uГц)" IDS_OPTION_NO "Нет" IDS_D3DTEST_DESCRIPTION "Будет произведена проверка Direct3D на этом устройстве. Продолжить?" diff --git a/base/applications/findstr/lang/es-ES.rc b/base/applications/findstr/lang/es-ES.rc index ee65978dc45..0f7b3f912f8 100644 --- a/base/applications/findstr/lang/es-ES.rc +++ b/base/applications/findstr/lang/es-ES.rc @@ -1,13 +1,16 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_USAGE "FIND: Imprime todas las líneas de un fichero que contiene una cadena.\n\n\ - FIND [ /C ] [ /I ] [ /N ] [ /V ] ""cadena"" [ fichero... ]\n\ + IDS_USAGE "FIND: Muestra todas las líneas de un archivo que contenga una cadena.\n\n\ + FIND [ /C ] [ /I ] [ /N ] [ /V ] ""cadena"" [ archivo... ]\n\ /C Cuenta el número de líneas que contienen la cadena de caracteres\n\ /I Ignora mayúsculas y minúsculas\n\ - /N Numero de líneas a mostrar en pantalla, a partir de la primera\n\ + /N Número de líneas a mostrar en pantalla, a partir de la primera\n\ /V Muestra las líneas que no contienen la cadena de caracteres." - IDS_NO_SUCH_FILE "FIND: %s: No se encontró el fichero\n" - IDS_CANNOT_OPEN "FIND: %s: No se pudo abrir el fichero\n" + IDS_NO_SUCH_FILE "FIND: %s: No se encontró el archivo\n" + IDS_CANNOT_OPEN "FIND: %s: No se pudo abrir el arvhivo\n" END diff --git a/base/applications/fontview/lang/es-ES.rc b/base/applications/fontview/lang/es-ES.rc index 2ce98b271ab..59dce1483e2 100644 --- a/base/applications/fontview/lang/es-ES.rc +++ b/base/applications/fontview/lang/es-ES.rc @@ -1,15 +1,15 @@ -/* Spanish language file by Javier Remacha <2007-09-21> */ +/* Spanish language file by Javier Remacha <2007-09-21> and Ismael Ferreras Morezuelas <2014-11-07> */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_INSTALL "Install" + IDS_INSTALL "Instalar" IDS_PRINT "Imprimir" - IDS_STRING "Haz el amor y no la guerra. 1234567890" - IDS_OPEN "Open Font..." + IDS_STRING "Jovencillo emponzoñado de whisky: ¡qué figurota exhibe! 1234567890" + IDS_OPEN "Abrir fuente..." IDS_ERROR "Error" IDS_ERROR_NOMEM "No hay memoria suficiente para completar la operación." - IDS_ERROR_NOFONT "El archivo %1 no es un archivo válido de fuente." - IDS_ERROR_NOCLASS "No es posible iniciar la clase." + IDS_ERROR_NOFONT "El archivo %1 no es un archivo de fuente válido." + IDS_ERROR_NOCLASS "No es posible iniciar la clase de ventana." END diff --git a/base/applications/fontview/lang/ru-RU.rc b/base/applications/fontview/lang/ru-RU.rc index 7cda19f3565..04981f6364c 100644 --- a/base/applications/fontview/lang/ru-RU.rc +++ b/base/applications/fontview/lang/ru-RU.rc @@ -6,10 +6,10 @@ STRINGTABLE BEGIN IDS_INSTALL "Установить" IDS_PRINT "Печать" - IDS_STRING "В чащах юга жил бы цитрус? Да, но фальшивый экземпляр! 1234567890" + IDS_STRING "Съешь же ещё этих мягких французских булок, да выпей чаю. 1234567890" IDS_OPEN "Открыть шрифт..." IDS_ERROR "Ошибка" - IDS_ERROR_NOMEM "Недостаточно памяти, чтобы завершить операцию." + IDS_ERROR_NOMEM "Недостаточно памяти для выполнения операции." IDS_ERROR_NOFONT "%1 не является корректным файлом шрифта." IDS_ERROR_NOCLASS "Невозможно инициализировать класс окна." END diff --git a/base/applications/games/solitaire/lang/es-ES.rc b/base/applications/games/solitaire/lang/es-ES.rc index 24a282d302f..3a3222a558f 100644 --- a/base/applications/games/solitaire/lang/es-ES.rc +++ b/base/applications/games/solitaire/lang/es-ES.rc @@ -5,6 +5,7 @@ * PURPOSE: Spanish Language File for Solitaire * PROGRAMMERS: Daniel "EmuandCo" Reimer (reimer.daniel@freenet.de) * ACTUALIZADO: Javier Remacha - 13/01/09 + * Ismael Ferreras Morezuelas - 2014/11/07 */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -17,21 +18,21 @@ CAPTION "Opciones" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Cartas", -1, 7, 7, 90, 40 - AUTORADIOBUTTON "Sacar &Una", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP - AUTORADIOBUTTON "Sacar &Tres", IDC_OPT_DRAWTHREE, 14, 32, 70, 10 - GROUPBOX "Scoring", -1, 100, 7, 75, 53 - AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP + AUTORADIOBUTTON "Sacar &una", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP + AUTORADIOBUTTON "Sacar &tres", IDC_OPT_DRAWTHREE, 14, 32, 70, 10 + GROUPBOX "Estilo de juego", -1, 100, 7, 75, 53 + AUTORADIOBUTTON "&Normal", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10 - AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10 + AUTORADIOBUTTON "&Sin puntuar", IDC_OPT_NOSCORE, 107, 45, 60, 10 AUTOCHECKBOX "&Mostrar tiempo", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP AUTOCHECKBOX "&Barra de estado", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP - AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP + AUTOCHECKBOX "&Mantener puntuación", IDC_OPT_KEEPSCORE, 100, 66, 83, 10, WS_TABSTOP DEFPUSHBUTTON "Aceptar", IDOK, 35, 97, 50, 14 PUSHBUTTON "Cancelar", IDCANCEL, 101, 97, 50, 14 END IDD_CARDBACK DIALOGEX 6, 6, 345, 185 -CAPTION "Seleccionar el reverso" +CAPTION "Selecciona el reverso de una carta" FONT 8, "MS Shell Dlg" STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT BEGIN @@ -48,20 +49,20 @@ BEGIN CONTROL "", IDC_CARDBACK11, "Static", SS_NOTIFY, 232, 89, 50, 71 CONTROL "", IDC_CARDBACK12, "Static", SS_NOTIFY, 289, 89, 50, 71 DEFPUSHBUTTON "Aceptar", IDOK, 114, 165, 54, 14 - PUSHBUTTON "Cancelar", IDCANCEL, 176, 165, 54, 14 + PUSHBUTTON "Cancelar", IDCANCEL, 176, 165, 54, 14 END /* Strings */ STRINGTABLE BEGIN - IDS_SOL_NAME "Solitario" - IDS_SOL_ABOUT "Solitario por J Brown\n\nCardLib version 1.0." - IDS_SOL_QUIT "¿Finalizar el juego actual?" - IDS_SOL_WIN "Felicidades, ¡¡Has ganado!!" - IDS_SOL_DEAL "¿Repartir de nuevo?" - IDS_SOL_SCORE "Score: %d" - IDS_SOL_TIME "Time: %d" + IDS_SOL_NAME "Solitario" + IDS_SOL_ABOUT "Solitario por J Brown\n\nCardLib versión 1.0." + IDS_SOL_QUIT "¿Salir del juego actual?" + IDS_SOL_WIN "¡Enhorabuena, has ganado!" + IDS_SOL_DEAL "¿Jugar de nuevo?" + IDS_SOL_SCORE "Puntuación: %d" + IDS_SOL_TIME "Tiempo: %d" END /* Menus */ @@ -77,7 +78,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Salir", IDM_GAME_EXIT END - POPUP "&Ayuda" + POPUP "Ay&uda" BEGIN MENUITEM "&Temas de ayuda\tF1", IDM_HELP_CONTENTS MENUITEM "&Acerca de", IDM_HELP_ABOUT diff --git a/base/applications/games/spider/lang/es-ES.rc b/base/applications/games/spider/lang/es-ES.rc index a87e000132a..3d16fc8ae28 100644 --- a/base/applications/games/spider/lang/es-ES.rc +++ b/base/applications/games/spider/lang/es-ES.rc @@ -4,6 +4,7 @@ * FILE: base/applications/games/spider/lang/es-ES.rc * PURPOSE: Spanish Language File for Spider Solitaire * TRANSLATORS: Javier Fernandez & Gabriel ilardi + * PROOFREAD: Ismael Ferreras Morezuelas */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -11,7 +12,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL /* Dialogs */ IDD_CARDBACK DIALOGEX 6, 6, 345, 185 -CAPTION "Escoge Reverso de Carta" +CAPTION "Selecciona el reverso de una carta" FONT 8, "MS Shell Dlg" STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT BEGIN @@ -36,9 +37,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT CAPTION "Dificultad" FONT 8, "MS Shell Dlg" BEGIN - AUTORADIOBUTTON "Fácil: &Un Palo", IDC_DIF_ONECOLOR, 8, 10, 80, 10, WS_GROUP | WS_TABSTOP - AUTORADIOBUTTON "Medio: &Dos Palos", IDC_DIF_TWOCOLORS, 8, 23, 80, 10 - AUTORADIOBUTTON "Difícil: &Cuatro Palos", IDC_DIF_FOURCOLORS, 8, 36, 90, 10 + AUTORADIOBUTTON "Fácil: &Un palo", IDC_DIF_ONECOLOR, 8, 10, 80, 10, WS_GROUP | WS_TABSTOP + AUTORADIOBUTTON "Medio: &Dos palos", IDC_DIF_TWOCOLORS, 8, 23, 80, 10 + AUTORADIOBUTTON "Difícil: &Cuatro palos", IDC_DIF_FOURCOLORS, 8, 36, 90, 10 DEFPUSHBUTTON "Aceptar", IDOK, 8, 58, 40, 14 PUSHBUTTON "Cancelar", IDCANCEL, 58, 58, 40, 14 END @@ -48,9 +49,9 @@ END STRINGTABLE BEGIN IDS_SPI_NAME "Spider" - IDS_SPI_ABOUT "Solitario Spider por Gregor Schneider\n\nCardLib version 1.0" + IDS_SPI_ABOUT "Solitario Spider por Gregor Schneider\n\nCardLib versión 1.0" IDS_SPI_QUIT "¿Salir del juego actual?" - IDS_SPI_WIN "¡Enhorabuena, ganaste!" + IDS_SPI_WIN "¡Enhorabuena, has ganado!" IDS_SPI_DEAL "¿Jugar de nuevo?" END @@ -60,13 +61,13 @@ IDR_MENU1 MENU BEGIN POPUP "&Juego" BEGIN - MENUITEM "&Nuevo Juego\tF2", IDM_GAME_NEW + MENUITEM "&Nuevo juego\tF2", IDM_GAME_NEW MENUITEM SEPARATOR MENUITEM "&Mazo...", IDM_GAME_DECK MENUITEM SEPARATOR MENUITEM "&Salir", IDM_GAME_EXIT END - POPUP "&Ayuda" + POPUP "Ay&uda" BEGIN MENUITEM "&Contenidos\tF1", IDM_HELP_CONTENTS MENUITEM "&Acerca de", IDM_HELP_ABOUT diff --git a/base/applications/logoff/lang/es-ES.rc b/base/applications/logoff/lang/es-ES.rc index 5ebeb0b2df9..2e61080f5a6 100644 --- a/base/applications/logoff/lang/es-ES.rc +++ b/base/applications/logoff/lang/es-ES.rc @@ -1,16 +1,17 @@ /* * Spanish Language resource file * Traducido por: Javier Remacha 2007-12-21 + * Corregido por: Ismael Ferreras Morezuelas 2014-11-06 */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_USAGE "Terminar una sesión.\n\n\ - /v\t\tMuestra información acerca de las acciónes realizadas.\n\ + IDS_USAGE "Cierra una sesión.\n\n\ + /v\t\tMuestra información acerca de las acciones realizadas.\n\ /?\t\tMuestra esta información.\n\n" - IDS_LOGOFF_REMOTE "Terminando sesión en una máquina remota." - IDS_LOGOFF_LOCAL "Terminando la sesión actual de esta máquina." - IDS_ILLEGAL_PARAM "Parámetro(s) no válido(s)\n" + IDS_LOGOFF_REMOTE "Cerrando sesión en una máquina remota." + IDS_LOGOFF_LOCAL "Cerrando la sesión actual de esta máquina." + IDS_ILLEGAL_PARAM "Parámetro o parámetros no válidos\n" END diff --git a/base/applications/magnify/lang/es-ES.rc b/base/applications/magnify/lang/es-ES.rc index d0adb90c269..1555993f04a 100644 --- a/base/applications/magnify/lang/es-ES.rc +++ b/base/applications/magnify/lang/es-ES.rc @@ -1,4 +1,6 @@ -/* Spanish language file by Javier Remacha <2007-09-21> */ +/* Spanish language file by Javier Remacha <2007-09-21> + * Proofread: Ismael Ferreras Morezuelas <2014-11-06> + */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -25,25 +27,25 @@ CAPTION "Acerca de" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN ICON IDI_ICON, IDC_MYICON, 14, 9, 20, 20 - LTEXT "Magnifier Version 1.0", IDC_STATIC, 49, 10, 119, 8, SS_NOPREFIX + LTEXT "Lupa. Versión 1.0", IDC_STATIC, 49, 10, 119, 8, SS_NOPREFIX LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)", IDC_STATIC, 48, 24, 125, 22 PUSHBUTTON "Aceptar", IDOK, 162, 48, 50, 14 END IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Configurar Magnifier" +CAPTION "Configurar lupa" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Salir", IDOK, 96, 161, 50, 14 PUSHBUTTON "Ayuda", IDC_BUTTON_HELP, 38, 161, 50, 14 - LTEXT "Nivel de aumento:", IDC_STATIC, 6, 8, 68, 8 - COMBOBOX IDC_ZOOM, 72, 6, 63, 66, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Rastreando", IDC_STATIC, 7, 25, 139, 59 + LTEXT "Niveles de aumento:", IDC_STATIC, 6, 8, 68, 8 + COMBOBOX IDC_ZOOM, 76, 6, 63, 66, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Seguimiento", IDC_STATIC, 7, 25, 139, 59 GROUPBOX "Presentación", IDC_STATIC, 7, 87, 139, 57 CONTROL "Seguir el cursor del ratón", IDC_FOLLOWMOUSECHECK, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 18, 42, 114, 10 - CONTROL "Seguir el foco del teclado", IDC_FOLLOWKEYBOARDCHECK, "Button", + CONTROL "Seguir la entrada del teclado", IDC_FOLLOWKEYBOARDCHECK, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 18, 54, 114, 10 CONTROL "Seguir la edición de texto", IDC_FOLLOWTEXTEDITINGCHECK, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 18, 66, 114, 10 @@ -51,23 +53,23 @@ BEGIN BS_AUTOCHECKBOX | WS_TABSTOP, 18, 102, 114, 10 CONTROL "Comenzar minimizado", IDC_STARTMINIMIZEDCHECK, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 18, 114, 114, 10 - CONTROL "Mostrar Magnifier", IDC_SHOWMAGNIFIERCHECK, "Button", + CONTROL "Mostrar lupa", IDC_SHOWMAGNIFIERCHECK, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 18, 126, 114, 10 END IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION -CAPTION "ReactOS Magnifier" +CAPTION "Lupa de ReactOS" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Aceptar", IDOK, 193, 76, 50, 14 ICON IDI_ICON, IDC_STATIC, 7, 17, 20, 20 - LTEXT "Magnifier está pensada para proporcionar un nivel mínimo de funcionalidad para usuarios con pequeñas deficiencias visuales. La mayoría de los usuarios con deficiencias visuales necesitarán una utilidad de mayor ampliación para el uso diario.", IDC_STATIC, 36, 7, 207, 33 + LTEXT "La lupa está pensada para proporcionar un nivel mínimo de funcionalidad para usuarios con pequeñas deficiencias visuales. La mayoría de los usuarios con deficiencias visuales necesitarán una utilidad de mayor ampliación para el uso diario.", IDC_STATIC, 36, 7, 207, 33 CONTROL "No volver a mostrar este mensaje", IDC_SHOWWARNINGCHECK, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 43, 80, 137, 10 END STRINGTABLE BEGIN - IDS_APP_TITLE "Magnifier" + IDS_APP_TITLE "Lupa" END diff --git a/base/applications/mmc/lang/es-ES.rc b/base/applications/mmc/lang/es-ES.rc index 27d7546704a..0616beb5874 100644 --- a/base/applications/mmc/lang/es-ES.rc +++ b/base/applications/mmc/lang/es-ES.rc @@ -1,6 +1,7 @@ /* * Spanish Language resource file * Traducido por: Javier Remacha 2007-12-18 + * Corregido por: Ismael Ferreras Morezuelas 2014-11-07 */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -9,13 +10,13 @@ IDM_CONSOLE_SMALL MENU BEGIN POPUP "&Archivo" BEGIN - MENUITEM "New\tCtrl+N", IDM_FILE_NEW + MENUITEM "Nuevo\tCtrl+N", IDM_FILE_NEW MENUITEM SEPARATOR MENUITEM "Sa&lir\tAlt+F4", IDM_FILE_EXIT END POPUP "&Ayuda" BEGIN - MENUITEM "&Acerca de la Consola de Administración de ReactOS...", IDM_HELP_ABOUT + MENUITEM "&Acerca de la Consola de administración de ReactOS...", IDM_HELP_ABOUT END END @@ -23,22 +24,22 @@ IDM_CONSOLE_LARGE MENU BEGIN POPUP "&Archivo" BEGIN - MENUITEM "New\tCtrl+N", IDM_FILE_NEW + MENUITEM "Nuevo\tCtrl+N", IDM_FILE_NEW MENUITEM SEPARATOR MENUITEM "Sa&lir\tAlt+F4", IDM_FILE_EXIT END - POPUP "&Windows" + POPUP "&Ventana" BEGIN - MENUITEM "List", IDM_WINDOWS_LIST + MENUITEM "Lista", IDM_WINDOWS_LIST END POPUP "&Ayuda" BEGIN - MENUITEM "&Acerca de la Consola de Administración de ReactOS...", IDM_HELP_ABOUT + MENUITEM "&Acerca de la Consola de administración de ReactOS...", IDM_HELP_ABOUT END END STRINGTABLE BEGIN - IDS_APPTITLE "Consola de Administración de ReactOS" + IDS_APPTITLE "Consola de administración de ReactOS" IDS_CONSOLETITLE "Consola%1!u!" END diff --git a/base/applications/mmc/lang/ru-RU.rc b/base/applications/mmc/lang/ru-RU.rc index ff02bd1226b..caa2308bc70 100644 --- a/base/applications/mmc/lang/ru-RU.rc +++ b/base/applications/mmc/lang/ru-RU.rc @@ -1,4 +1,4 @@ -/* Russian language resource file (Dmitry Chapyshev, 2007-06-10) */ +/* Russian language resource file by Dmitry Chapyshev, 2007-06-10, Kudratov Olimjon (olim98@bk.ru) */ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT @@ -6,7 +6,7 @@ IDM_CONSOLE_SMALL MENU BEGIN POPUP "&Файл" BEGIN - MENUITEM "New\tCtrl+N", IDM_FILE_NEW + MENUITEM "&Создать\tCtrl+N", IDM_FILE_NEW MENUITEM SEPARATOR MENUITEM "&Выход\tAlt+F4", IDM_FILE_EXIT END @@ -20,13 +20,13 @@ IDM_CONSOLE_LARGE MENU BEGIN POPUP "&Файл" BEGIN - MENUITEM "New\tCtrl+N", IDM_FILE_NEW + MENUITEM "&Создать\tCtrl+N", IDM_FILE_NEW MENUITEM SEPARATOR MENUITEM "&Выход\tAlt+F4", IDM_FILE_EXIT END - POPUP "&Windows" + POPUP "&Окно" BEGIN - MENUITEM "List", IDM_WINDOWS_LIST + MENUITEM "Сверху вниз", IDM_WINDOWS_LIST END POPUP "&Справка" BEGIN diff --git a/base/applications/mplay32/lang/es-ES.rc b/base/applications/mplay32/lang/es-ES.rc index 82e8e89061c..c2b04e12eec 100644 --- a/base/applications/mplay32/lang/es-ES.rc +++ b/base/applications/mplay32/lang/es-ES.rc @@ -11,20 +11,20 @@ BEGIN END POPUP "&Reproducir" BEGIN - MENUITEM "Reproducir/&Pausa\tCtrl+P", IDC_PLAY + MENUITEM "Reproducir/&Pausar\tCtrl+P", IDC_PLAY MENUITEM "&Detener\tCtrl+S", IDC_STOP MENUITEM SEPARATOR MENUITEM "Repe&tir\tCtrl+T", IDM_REPEAT END - POPUP "&Vista" + POPUP "&Ver" BEGIN - MENUITEM "&Modo Ventana Única", IDM_SWITCHVIEW + MENUITEM "&Modo de ventana única", IDM_SWITCHVIEW END POPUP "&Dispositivo" BEGIN MENUITEM "&Propiedades", IDM_DEVPROPS MENUITEM SEPARATOR - MENUITEM "Control de &Volumen", IDM_VOLUMECTL + MENUITEM "Control de &volumen", IDM_VOLUMECTL END POPUP "Ay&uda" BEGIN @@ -43,16 +43,16 @@ END STRINGTABLE BEGIN - IDS_ALL_TYPES_FILTER "Todos los ficheros soportados (*.wav, *.cda, *.midi, *.mid, *.avi)\0*.wav;*.cda;*.midi;*.mid;*.avi\0" - IDS_TOOLTIP_PLAY "Reproducir" - IDS_TOOLTIP_STOP "Detener" - IDS_TOOLTIP_EJECT "Expulsar" + IDS_ALL_TYPES_FILTER "Todos los archivos soportados (*.wav, *.cda, *.midi, *.mid, *.avi)\0*.wav;*.cda;*.midi;*.mid;*.avi\0" + IDS_TOOLTIP_PLAY "Reproducir" + IDS_TOOLTIP_STOP "Detener" + IDS_TOOLTIP_EJECT "Expulsar" IDS_TOOLTIP_BACKWARD "Marca anterior" IDS_TOOLTIP_SEEKBACK "Rebobinar" IDS_TOOLTIP_SEEKFORW "Avance rápido" - IDS_TOOLTIP_FORWARD "Marca siguiente" - IDS_APPTITLE "Reproductor Multimedia de ReactOS" - IDS_PLAY "Reproducir" + IDS_TOOLTIP_FORWARD "Siguiente marca" + IDS_APPTITLE "Reproductor multimedia de ReactOS" + IDS_PLAY "Reproducir" IDS_DEFAULTMCIERRMSG "No hay una descripción disponible para este error." - IDS_UNKNOWNFILEEXT "No se puede determinar el tipo de dispositivo a partir de la extensión del fichero." + IDS_UNKNOWNFILEEXT "No se puede determinar el tipo de dispositivo a partir de la extensión del archivo." END diff --git a/base/applications/msconfig/lang/es-ES.rc b/base/applications/msconfig/lang/es-ES.rc index a2d7fa1048a..a1058d97654 100644 --- a/base/applications/msconfig/lang/es-ES.rc +++ b/base/applications/msconfig/lang/es-ES.rc @@ -1,3 +1,6 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL IDD_MSCONFIG_DIALOG DIALOGEX 0, 0, 378, 220 @@ -30,15 +33,15 @@ BEGIN CONTROL "", IDC_SYSTEM_TREE, "SysTreeView32", TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS | TVS_SHOWSELALWAYS | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 2, 1, 280, 148 - PUSHBUTTON "Mover &Arriba", IDC_BTN_SYSTEM_UP, 290, 5, 66, 14 - PUSHBUTTON "Mover A&bajo", IDC_BTN_SYSTEM_DOWN, 290, 25, 66, 14 + PUSHBUTTON "&Subir", IDC_BTN_SYSTEM_UP, 290, 5, 66, 14 + PUSHBUTTON "Ba&jar", IDC_BTN_SYSTEM_DOWN, 290, 25, 66, 14 PUSHBUTTON "&Permitir", IDC_BTN_SYSTEM_ENABLE, 290, 50, 66, 14 PUSHBUTTON "&Bloquear", IDC_BTN_SYSTEM_DISABLE, 290, 70, 66, 14 PUSHBUTTON "&Buscar", IDC_BTN_SYSTEM_FIND, 290, 95, 66, 14 PUSHBUTTON "&Nuevo", IDC_BTN_SYSTEM_NEW, 290, 115, 66, 14 PUSHBUTTON "Edi&ción", IDC_BTN_SYSTEM_EDIT, 290, 135, 66, 14 - PUSHBUTTON "Permi&tir Todo", IDC_BTN_SYSTEM_ACTIVATE, 123, 155, 66, 14 - PUSHBUTTON "Blo&quear Todo", IDC_BTN_SYSTEM_DEACTIVATE, 195, 155, 66, 14 + PUSHBUTTON "Permi&tir todo", IDC_BTN_SYSTEM_ACTIVATE, 123, 155, 66, 14 + PUSHBUTTON "Blo&quear todo", IDC_BTN_SYSTEM_DEACTIVATE, 195, 155, 66, 14 END IDD_TOOLS_PAGE DIALOGEX 0, 0, 362, 175 @@ -65,13 +68,13 @@ IDD_GENERAL_PAGE DIALOGEX 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Selección de Inicio ", -1, 10, 10, 340, 150, 0, WS_EX_TRANSPARENT - CONTROL "Inicio &Normal - cargar todos los controladores de unidades y servicios", IDC_CBX_NORMAL_START, "Button", 0x50010009, 20, 30, 260, 10 - CONTROL "Inicio de &Diagnostico - cargar sólo los controladores y servicios básicos", IDC_CBX_DIAGNOSTIC_START, "Button", 0x50010009, 20, 45, 260, 10 - CONTROL "Inicio S&electivo", IDC_CBX_SELECTIVE_STARTUP, "Button", 0x50010009, 20, 60, 260, 10 + GROUPBOX "Selección de inicio ", -1, 10, 10, 340, 150, 0, WS_EX_TRANSPARENT + CONTROL "Inicio &normal - Cargar todos los controladores de unidades y servicios", IDC_CBX_NORMAL_START, "Button", 0x50010009, 20, 30, 260, 10 + CONTROL "Inicio de &diagnóstico - Cargar sólo los controladores y servicios básicos", IDC_CBX_DIAGNOSTIC_START, "Button", 0x50010009, 20, 45, 260, 10 + CONTROL "Inicio s&electivo", IDC_CBX_SELECTIVE_STARTUP, "Button", 0x50010009, 20, 60, 260, 10 AUTOCHECKBOX "P&rocesar archivo SYSTEM.INI", IDC_CBX_SYSTEM_INI, 30, 80, 260, 10 - AUTOCHECKBOX "&Cargar Servicios del Sistema", IDC_CBX_SYSTEM_SERVICE, 30, 95, 260, 10 - AUTOCHECKBOX "C&argar elementos de Inicio", IDC_CBX_STARTUP_ITEM, 30, 110, 260, 10 + AUTOCHECKBOX "&Cargar servicios del sistema", IDC_CBX_SYSTEM_SERVICE, 30, 95, 260, 10 + AUTOCHECKBOX "C&argar elementos de inicio", IDC_CBX_STARTUP_ITEM, 30, 110, 260, 10 END IDD_FREELDR_PAGE DIALOGEX 0, 0, 362, 175 @@ -80,18 +83,18 @@ FONT 8, "MS Shell Dlg" BEGIN LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL - PUSHBUTTON "&Verificar las rutas de Arranque", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 110, 12 - PUSHBUTTON "&Configurar por Defecto", IDC_BTN_SET_DEFAULT_BOOT, 130, 65, 80, 12 - PUSHBUTTON "Mover &Arriba", IDC_BTN_MOVE_UP_BOOT_OPTION, 220, 65, 60, 12 - PUSHBUTTON "Mover A&bajo", IDC_BTN_MOVE_DOWN_BOOT_OPTION, 290, 65, 60, 12 - GROUPBOX "Opciones de Arranque ", -1, 10, 80, 250, 90, 0, WS_EX_TRANSPARENT + PUSHBUTTON "&Verificar las rutas de arranque", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 110, 12 + PUSHBUTTON "&Configurar por defecto", IDC_BTN_SET_DEFAULT_BOOT, 130, 65, 80, 12 + PUSHBUTTON "&Subir", IDC_BTN_MOVE_UP_BOOT_OPTION, 220, 65, 60, 12 + PUSHBUTTON "&Bajar", IDC_BTN_MOVE_DOWN_BOOT_OPTION, 290, 65, 60, 12 + GROUPBOX "Opciones de arranque", -1, 10, 80, 250, 90, 0, WS_EX_TRANSPARENT CHECKBOX "/SA&FEBOOT", IDC_CBX_SAFE_BOOT, 15, 90, 55, 10 CHECKBOX "/&NOGUIBOOT", IDC_CBX_NO_GUI_BOOT, 15, 105, 60, 10 CHECKBOX "/&BOOTLOG", IDC_CBX_BOOT_LOG, 15, 120, 50, 10 CHECKBOX "/BAS&EVIDEO", IDC_CBX_BASE_VIDEO, 15, 135, 55, 10 CHECKBOX "/S&OS", IDC_CBX_SOS, 15, 150, 50, 10 - PUSHBUTTON "Opciones A&vazadas...", IDC_BTN_ADVANCED_OPTIONS, 100, 150, 80, 12 - LTEXT "&Tiempo Máx:", -1, 280, 86, 30, 16 + PUSHBUTTON "Opciones a&vanzadas...", IDC_BTN_ADVANCED_OPTIONS, 100, 150, 80, 12 + LTEXT "&Tiempo máx:", -1, 280, 86, 30, 16 EDITTEXT IDC_TXT_BOOT_TIMEOUT, 310, 90, 25, 12, ES_LEFT LTEXT "seg.", -1, 340, 91, 15, 10 END @@ -123,7 +126,7 @@ END STRINGTABLE BEGIN - IDS_MSCONFIG "Programa de configuración del Sistema" + IDS_MSCONFIG "Utilidad de configuración del sistema" IDS_TAB_GENERAL "General" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI" @@ -135,8 +138,8 @@ END STRINGTABLE BEGIN IDS_SERVICES_COLUMN_SERVICE "Servicio" - IDS_SERVICES_COLUMN_REQ "Requirido" - IDS_SERVICES_COLUMN_VENDOR "Vendedor" + IDS_SERVICES_COLUMN_REQ "Necesario" + IDS_SERVICES_COLUMN_VENDOR "Fabricante" IDS_SERVICES_COLUMN_STATUS "Estado" END @@ -151,7 +154,7 @@ BEGIN IDS_TOOLS_INFO_DESCR "Muestra información de la versión." IDS_TOOLS_INFO_CMD "winver.exe" IDS_TOOLS_REGEDIT_NAME "Editor del Registro" - IDS_TOOLS_REGEDIT_DESCR "Abre el Editor del Registro." + IDS_TOOLS_REGEDIT_DESCR "Abre el editor del Registro." IDS_TOOLS_REGEDIT_CMD "regedit.exe" IDS_TOOLS_SYSDM_NAME "Propiedades del sistema" IDS_TOOLS_SYSDM_DESCR "Muestra información acerca de este equipo." diff --git a/base/applications/mscutils/devmgmt/lang/ru-RU.rc b/base/applications/mscutils/devmgmt/lang/ru-RU.rc index e5b3b7c058d..b97e31df7e6 100644 --- a/base/applications/mscutils/devmgmt/lang/ru-RU.rc +++ b/base/applications/mscutils/devmgmt/lang/ru-RU.rc @@ -23,7 +23,7 @@ BEGIN MENUITEM "Ресурсы по типу", IDC_RESBYTYPE, GRAYED MENUITEM "Ресурсы по подключению", IDC_RESBYCONN, GRAYED MENUITEM SEPARATOR - MENUITEM "Show hidden devices", IDC_SHOWHIDDEN + MENUITEM "Показать скрытые устройства", IDC_SHOWHIDDEN END POPUP "Справка" BEGIN @@ -75,8 +75,8 @@ BEGIN IDS_HINT_REFRESH " Обновить список." IDS_HINT_PROP " Открыть свойства для выбранного элемента." IDS_HINT_HELP " Показать окно справки." - IDS_HINT_ABOUT " О ReactOS Device Manager." - IDS_HINT_SYS_RESTORE " Востановить нормальный размер этого окна." + IDS_HINT_ABOUT " О Диспетчере устройств ReactOS." + IDS_HINT_SYS_RESTORE " Восстановить нормальный размер этого окна." IDS_HINT_SYS_MOVE " Переместить это окно." IDS_HINT_SYS_SIZE " Изменить размер этого окна." IDS_HINT_SYS_MINIMIZE " Свернуть это окно в значок." diff --git a/base/applications/mscutils/devmgmt_new/lang/es-ES.rc b/base/applications/mscutils/devmgmt_new/lang/es-ES.rc index 2455689e9c9..b490e3b3f6d 100644 --- a/base/applications/mscutils/devmgmt_new/lang/es-ES.rc +++ b/base/applications/mscutils/devmgmt_new/lang/es-ES.rc @@ -1,6 +1,6 @@ /* - *Spanish Language resource file - * Traducido por: Javier Remacha 2007-12-21 + * Spanish Language resource file + * Traducido por: Javier Remacha <2007-12-21> e Ismael Ferreras Morezuelas <2014-11-07> */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -38,11 +38,11 @@ BEGIN END IDD_ABOUTBOX DIALOGEX 22,16,190,182 -CAPTION "Acerca del Gestor de Dispositivos" +CAPTION "Acerca del Administrador de dispositivos" FONT 8,"MS Shell Dlg",0,0 STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME BEGIN - LTEXT "Gestor de Dispositivos v0.1\nCopyright (C) 2006\nby Ged Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 130, 26 + LTEXT "Administrador de dispositivos v0.1\nCopyright (C) 2006\ncreado por Ged Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 130, 26 PUSHBUTTON "Cerrar", IDOK, 75, 162, 44, 15 ICON IDI_MAIN_ICON, IDC_STATIC, 10, 10, 7, 30 EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE @@ -50,7 +50,7 @@ END STRINGTABLE BEGIN - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." + IDS_LICENSE "Este programa es software libre; puedes redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License tal y como fueron publicados por la Free Software Foundation; ya sea la versión 2 de la Licencia, o (bajo tu discreción) cualquier versión posterior.\r\n\r\nEste programa se distribuye con el fin de ser útil, pero viene SIN NINGUNA GARANTÍA; sin tan siquiera la garantía implícita de COMERCIALIZACIÓN o la de IDONEIDAD PARA UN PROPÓSITO CONCRETO. Para más información lee la GNU General Public License.\r\n\r\nDeberías de haber recibido una copia de la GNU General Public License con el programa; si no, puedes escribir a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE.UU." END STRINGTABLE diff --git a/base/applications/mscutils/devmgmt_new/lang/ru-RU.rc b/base/applications/mscutils/devmgmt_new/lang/ru-RU.rc index 88192a72dad..0337bed0702 100644 --- a/base/applications/mscutils/devmgmt_new/lang/ru-RU.rc +++ b/base/applications/mscutils/devmgmt_new/lang/ru-RU.rc @@ -12,18 +12,18 @@ BEGIN BEGIN MENUITEM "Печать", IDC_PRINT, GRAYED MENUITEM SEPARATOR - MENUITEM "Свойства", IDC_PROP, GRAYED + MENUITEM "Свойства", IDC_PROP, GRAYED END POPUP "Вид" BEGIN - MENUITEM "Устройства по типу", IDC_DEVBYTYPE, CHECKED - MENUITEM "Устройства по подключению", IDC_STATIC, GRAYED - MENUITEM "Ресурсы по типу", IDC_STATIC, GRAYED - MENUITEM "Ресурсы по подключению", IDC_STATIC, GRAYED + MENUITEM "Устройства по типу", IDC_DEVBYTYPE, CHECKED + MENUITEM "Устройства по подключению",IDC_STATIC, GRAYED + MENUITEM "Ресурсы по типу", IDC_STATIC, GRAYED + MENUITEM "Ресурсы по подключению", IDC_STATIC, GRAYED END POPUP "Справка" BEGIN - MENUITEM "О программе", IDC_ABOUT + MENUITEM "О программе", IDC_ABOUT END END @@ -31,7 +31,7 @@ IDR_POPUP MENU BEGIN POPUP "popup" BEGIN - MENUITEM "Свойства", IDC_PROP, GRAYED + MENUITEM "Свойства", IDC_PROP, GRAYED END END @@ -68,9 +68,9 @@ BEGIN IDS_HINT_REFRESH " Обновить список." IDS_HINT_PROP " Открыть свойства для выбранного элемента." IDS_HINT_HELP " Показать окно справки." - IDS_HINT_ABOUT " О ReactOS Device Manager." + IDS_HINT_ABOUT " О Диспетчере устройств ReactOS ." - IDS_HINT_SYS_RESTORE " Востановить нормальный размер этого окна." + IDS_HINT_SYS_RESTORE " Восстановить нормальный размер этого окна." IDS_HINT_SYS_MOVE " Переместить это окно." IDS_HINT_SYS_SIZE " Изменить размер этого окна." IDS_HINT_SYS_MINIMIZE " Свернуть это окно в значок." diff --git a/base/applications/mscutils/eventvwr/lang/es-ES.rc b/base/applications/mscutils/eventvwr/lang/es-ES.rc index 97ce5eb126b..f3e1f70325e 100644 --- a/base/applications/mscutils/eventvwr/lang/es-ES.rc +++ b/base/applications/mscutils/eventvwr/lang/es-ES.rc @@ -1,14 +1,14 @@ -/* Spanish translation by Marc Piulachs */ +/* Spanish translation by Marc Piulachs, proofread by Ismael Ferreras Morezuelas */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL IDC_EVENTVWR MENU BEGIN - POPUP "&Log" + POPUP "&Registro" BEGIN - MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED + MENUITEM "Guardar &protocolo...", ID_SAVE_PROTOCOL, GRAYED MENUITEM SEPARATOR - MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED + MENUITEM "&Borrar todos los eventos", ID_CLEAR_EVENTS, GRAYED MENUITEM SEPARATOR MENUITEM "S&alir", IDM_EXIT END @@ -17,9 +17,9 @@ BEGIN MENUITEM "&Actualizar", IDM_REFRESH END MENUITEM "&Opciones", ID_OPTIONS - POPUP "A&yuda" + POPUP "Ay&uda" BEGIN - MENUITEM "A&yuda", IDM_HELP + MENUITEM "Ay&uda", IDM_HELP MENUITEM SEPARATOR MENUITEM "&Acerca de...", IDM_ABOUT END @@ -37,23 +37,23 @@ CAPTION "Acerca de" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN ICON IDI_EVENTVWR, IDC_MYICON, 14, 9, 21, 20 - LTEXT "ReactOS Visor de sucesos Versión 1.0", IDC_STATIC, 49, 10, 124, 8, SS_NOPREFIX + LTEXT "Visor de eventos de ReactOS. Versión 1.0", IDC_STATIC, 49, 10, 124, 8, SS_NOPREFIX LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)", IDC_STATIC, 49, 20, 119, 22 DEFPUSHBUTTON "Aceptar", IDOK, 90, 48, 42, 16, WS_GROUP END IDD_PROGRESSBOX DIALOGEX 0, 0, 230, 40 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER -CAPTION "Espere.." +CAPTION "Espere..." FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - CTEXT "Recuperando eventos. Por favor, espere ...", IDC_STATIC, 0, 15, 230, 8, SS_NOPREFIX + CTEXT "Recuperando eventos. Espere un momento...", IDC_STATIC, 0, 15, 230, 8, SS_NOPREFIX END IDD_EVENTDETAILDIALOG DIALOGEX 0, 0, 276, 282 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_CONTEXTHELP -CAPTION "Detalles del Evento" +CAPTION "Detalles del evento" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "&Cerrar", IDOK, 12, 258, 50, 14 @@ -70,7 +70,7 @@ BEGIN EDITTEXT IDC_EVENTUSERSTATIC, 56, 41, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "&Equipo:", IDC_STATIC, 14, 54, 36, 8 EDITTEXT IDC_EVENTCOMPUTERSTATIC, 56, 54, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "ID de suceso:", IDC_STATIC, 133, 15, 36, 8 + LTEXT "ID de evento:", IDC_STATIC, 133, 15, 36, 8 EDITTEXT IDC_EVENTIDSTATIC, 175, 15, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "Origen:", IDC_STATIC, 133, 28, 36, 8 EDITTEXT IDC_EVENTSOURCESTATIC, 175, 28, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL @@ -86,19 +86,19 @@ END STRINGTABLE BEGIN - IDS_APP_TITLE "Visor de sucesos" - IDS_APP_TITLE_EX "%s - %s Log on \\\\" - IDS_STATUS_MSG "%s has %lu event(s)" - IDS_EVENTSTRINGIDNOTFOUND "La descripción para el evento con ID ( %lu ) y origen ( %s ) no pudo ser recuperada.El equipo local puede no tener la información necesaria en el registro o las DLLs requeridas para mostrar los mensajes de un equipo remoto." + IDS_APP_TITLE "Visor de eventos" + IDS_APP_TITLE_EX "%s - Registro de %s en \\\\" + IDS_STATUS_MSG "%s tiene %lu evento(s)" + IDS_EVENTSTRINGIDNOTFOUND "No se pudo recuperar la descripción para el evento con ID (%lu) y origen (%s). El equipo local puede no tener la información necesaria en el registro o las DLLs necesarias para mostrar los mensajes de un equipo remoto." IDS_EVENTLOG_ERROR_TYPE "Error" IDS_EVENTLOG_WARNING_TYPE "Advertencia" IDS_EVENTLOG_INFORMATION_TYPE "Información" - IDS_EVENTLOG_AUDIT_SUCCESS "Auditoria Satisfactoria" - IDS_EVENTLOG_AUDIT_FAILURE "Auditoria Fallida" - IDS_EVENTLOG_SUCCESS "Acierto" - IDS_EVENTLOG_UNKNOWN_TYPE "Evento Desconocido" - IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?" - IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0" + IDS_EVENTLOG_AUDIT_SUCCESS "Auditoría completada" + IDS_EVENTLOG_AUDIT_FAILURE "Auditoría fallida" + IDS_EVENTLOG_SUCCESS "Completado" + IDS_EVENTLOG_UNKNOWN_TYPE "Evento desconocido" + IDS_CLEAREVENTS_MSG "¿Desea guardar este registro de eventos antes de borrarlo?" + IDS_SAVE_FILTER "Registro de eventos (*.evt)\0*.evt\0" END STRINGTABLE @@ -110,12 +110,12 @@ BEGIN IDS_COLUMNCATEGORY "Categoría" IDS_COLUMNEVENT "Evento" IDS_COLUMNUSER "Usuario" - IDS_COLUMNCOMPUTER "Computadora" + IDS_COLUMNCOMPUTER "Equipo" IDS_COLUMNEVENTDATA "Datos del evento" END STRINGTABLE BEGIN - IDS_NONE "Ninguna" - IDS_NOT_AVAILABLE "N/A" + IDS_NONE "Ninguno" + IDS_NOT_AVAILABLE "N/D" END diff --git a/base/applications/mscutils/eventvwr/lang/ru-RU.rc b/base/applications/mscutils/eventvwr/lang/ru-RU.rc index be6eb7fbb75..61438fbd7a3 100644 --- a/base/applications/mscutils/eventvwr/lang/ru-RU.rc +++ b/base/applications/mscutils/eventvwr/lang/ru-RU.rc @@ -1,14 +1,14 @@ -/* Russian translation by Dmitry Chapyshev, Artem Reznikov */ +/* Russian translation by Dmitry Chapyshev, Artem Reznikov, Kudratov Olimjon (olim98@bk.ru) */ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT IDC_EVENTVWR MENU BEGIN - POPUP "&Логи" + POPUP "С&обытия" BEGIN - MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED + MENUITEM "Сохранить &протокол...", ID_SAVE_PROTOCOL, GRAYED MENUITEM SEPARATOR - MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED + MENUITEM "Очистить &все события", ID_CLEAR_EVENTS, GRAYED MENUITEM SEPARATOR MENUITEM "В&ыход", IDM_EXIT END @@ -44,10 +44,10 @@ END IDD_PROGRESSBOX DIALOGEX 0, 0, 230, 40 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER -CAPTION "Подождите.." +CAPTION "Подождите..." FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - CTEXT "Идет загрузка. Подождите ...", IDC_STATIC, 0, 15, 230, 8, SS_NOPREFIX + CTEXT "Идет загрузка. Подождите...", IDC_STATIC, 0, 15, 230, 8, SS_NOPREFIX END IDD_EVENTDETAILDIALOG DIALOGEX 0, 0, 276, 282 @@ -63,21 +63,21 @@ BEGIN EDITTEXT IDC_EVENTTEXTEDIT, 14, 81, 247, 108, ES_MULTILINE | ES_READONLY LTEXT "Описание:", IDC_STATIC, 15, 70, 39, 8 LTEXT "Дата:", IDC_STATIC, 14, 14, 36, 8 - EDITTEXT IDC_EVENTDATESTATIC, 56, 14, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT IDC_EVENTDATESTATIC, 68, 14, 60, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "Время:", IDC_STATIC, 14, 27, 36, 8 - EDITTEXT IDC_EVENTTIMESTATIC, 56, 27, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT IDC_EVENTTIMESTATIC, 68, 27, 60, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "Пользователь:", IDC_STATIC, 14, 41, 50, 8 - EDITTEXT IDC_EVENTUSERSTATIC, 56, 41, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT IDC_EVENTUSERSTATIC, 68, 41, 60, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "Компьютер:", IDC_STATIC, 14, 54, 45, 8 - EDITTEXT IDC_EVENTCOMPUTERSTATIC, 56, 54, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT IDC_EVENTCOMPUTERSTATIC, 68, 54, 60, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "Код (ID):", IDC_STATIC, 143, 15, 45, 8 - EDITTEXT IDC_EVENTIDSTATIC, 175, 15, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT IDC_EVENTIDSTATIC, 183, 15, 80, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "Источник:", IDC_STATIC, 143, 28, 36, 8 - EDITTEXT IDC_EVENTSOURCESTATIC, 175, 28, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT IDC_EVENTSOURCESTATIC, 183, 28, 80, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "Тип:", IDC_STATIC, 143, 42, 36, 8 - EDITTEXT IDC_EVENTTYPESTATIC, 175, 42, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT IDC_EVENTTYPESTATIC, 183, 42, 80, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "Категория:", IDC_STATIC, 143, 55, 38, 8 - EDITTEXT IDC_EVENTCATEGORYSTATIC, 175, 55, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT IDC_EVENTCATEGORYSTATIC, 183, 55, 80, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL EDITTEXT IDC_EVENTDATAEDIT, 14, 204, 247, 44, ES_MULTILINE | ES_READONLY LTEXT "Данные:", IDC_STATIC, 14, 192, 30, 8 CONTROL "&Байты", IDC_BYTESRADIO, "Button", BS_AUTORADIOBUTTON, 49, 192, 34, 8 @@ -97,8 +97,8 @@ BEGIN IDS_EVENTLOG_AUDIT_FAILURE "Аудит отказов" IDS_EVENTLOG_SUCCESS "Успех" IDS_EVENTLOG_UNKNOWN_TYPE "Неизвестное событие" - IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?" - IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0" + IDS_CLEAREVENTS_MSG "Вы хотите сохранить журнал событий перед очисткой?" + IDS_SAVE_FILTER "Журнал событий (*.evt)\0*.evt\0" END STRINGTABLE @@ -116,6 +116,6 @@ END STRINGTABLE BEGIN - IDS_NONE "Нету" + IDS_NONE "Нет" IDS_NOT_AVAILABLE "N/A" END diff --git a/base/applications/mscutils/servman/lang/es-ES.rc b/base/applications/mscutils/servman/lang/es-ES.rc index 6ea9f5ca2ba..a5ed94e0591 100644 --- a/base/applications/mscutils/servman/lang/es-ES.rc +++ b/base/applications/mscutils/servman/lang/es-ES.rc @@ -1,3 +1,6 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL IDR_MAINMENU MENU @@ -28,8 +31,8 @@ BEGIN END POPUP "Ver" BEGIN - MENUITEM "Iconos Grandes", ID_VIEW_LARGE - MENUITEM "Iconos Pequeños", ID_VIEW_SMALL + MENUITEM "Iconos grandes", ID_VIEW_LARGE + MENUITEM "Iconos pequeños", ID_VIEW_SMALL MENUITEM "Lista", ID_VIEW_LIST MENUITEM "Detalles", ID_VIEW_DETAILS MENUITEM SEPARATOR @@ -64,11 +67,11 @@ BEGIN END IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Acerca de Gestor de Servicios" +CAPTION "Acerca del Administrador de servicios" FONT 8, "MS Shell Dlg", 0, 0 STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME BEGIN - LTEXT "Gestor de Servicios v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 35 + LTEXT "Administrador de servicios v0.8\nCopyright (C) 2005-2007\ncreado por Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 35 PUSHBUTTON "Cerrar", IDOK, 75, 162, 44, 15 ICON IDI_SM_ICON, IDC_STATIC, 10, 10, 7, 30 EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE @@ -95,7 +98,7 @@ BEGIN LTEXT "Tipo de inicio:", IDC_STATIC, 6, 108, 53, 11 LTEXT "Estado del servicio:", IDC_STATIC, 4, 138, 63, 14 LTEXT "", IDC_SERV_STATUS, 70, 138, 176, 11, WS_CHILD | WS_VISIBLE - LTEXT "Puede especificar los parámetros de inicio a aplicar cuando inicie el servicio desde aquí.", IDC_STATIC, 6, 177, 240, 15 + LTEXT "Puede especificar los parámetros de inicio que se utilizarán cuando inicie el servicio desde aquí.", IDC_STATIC, 6, 177, 240, 15 LTEXT "Parámetros de inicio:", IDC_STATIC, 6, 200, 58, 14 EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "Editar", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED @@ -112,8 +115,8 @@ BEGIN CONTROL "", IDC_DEPEND_TREE2, "SysTreeView32", WS_BORDER | WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP, 8, 151, 234, 67 - LTEXT "Algunos servicios dependen de otros servicios, controladores de sistemas y grupos de orden de carga. Si un componente de sistema se detiene o no funciona correctamente, es posible que otros servicios dependientes resulten afectados.", IDC_STATIC, 8, 7, 238, 26 - LTEXT "Este servicio depende de los siguientes componentes", IDC_STATIC, 8, 57, 236, 9 + LTEXT "Algunos servicios dependen de otros servicios, controladores del sistema y grupos de orden de carga. Si se detiene un componente del sistema o no funciona correctamente, es posible que otros servicios que dependan de éstos resulten afectados.", IDC_STATIC, 8, 7, 238, 26 + LTEXT "Éste servicio depende de los siguientes componentes", IDC_STATIC, 8, 57, 236, 9 LTEXT "", IDC_DEPEND_SERVICE, 8, 38, 236, 13 END @@ -133,7 +136,7 @@ BEGIN LTEXT "Descripción:", IDC_STATIC, 12, 86, 44, 9 PUSHBUTTON "Aceptar", IDOK, 126, 192, 44, 13 PUSHBUTTON "Cancelar", IDCANCEL, 176, 192, 46, 13 - LTEXT "Opciones adicionales (Pulsa Ayuda para detalles)", IDC_STATIC, 10, 151, 170, 9 + LTEXT "Opciones adicionales (Pulse Ayuda para más información)", IDC_STATIC, 10, 151, 170, 9 PUSHBUTTON "Ayuda", ID_CREATE_HELP, 10, 192, 44, 13 END @@ -143,7 +146,7 @@ FONT 8, "MS Shell Dlg", 0, 0 STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | DS_MODALFRAME BEGIN ICON IDI_WARNING, IDC_STATIC, 10, 8, 24, 22 - LTEXT "¿Esta seguro que quiere borrar el siguiente servicio? ¡No se puede deshacer una vez borrado!", IDC_STATIC, 50, 6, 125, 25 + LTEXT "¿Seguro que quiere borrar el siguiente servicio? Una vez borrado no se puede deshacer.", IDC_STATIC, 50, 6, 125, 25 LTEXT "Nombre del servicio:", IDC_STATIC, 6, 40, 80, 9 LTEXT "", IDC_DEL_NAME, 15, 53, 160, 15 EDITTEXT IDC_DEL_DESC, 6, 73, 174, 48, WS_CHILD | WS_VISIBLE | WS_VSCROLL | @@ -161,7 +164,7 @@ BEGIN LTEXT "", IDC_STOP_DEPENDS, 40, 8, 170, 25 LISTBOX IDC_STOP_DEPENDS_LB, 15, 40, 210, 70, WS_CHILD | WS_VISIBLE | WS_EX_STATICEDGE | LBS_NOSEL LTEXT "¿Desea detener estos servicios?", IDC_STATIC, 15, 110, 150, 10 - DEFPUSHBUTTON "Si", IDOK, 60, 129, 54, 14 + DEFPUSHBUTTON "Sí", IDOK, 60, 129, 54, 14 PUSHBUTTON "No", IDCANCEL, 120, 129, 54, 14 END @@ -175,7 +178,7 @@ BEGIN END IDD_DLG_PROGRESS DIALOGEX 6, 6, 255, 89 -CAPTION "Control de Servicios" +CAPTION "Control de servicios" FONT 8, "MS Shell Dlg", 0, 0 STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | WS_VISIBLE | DS_MODALFRAME EXSTYLE WS_EX_TOOLWINDOW @@ -199,17 +202,17 @@ STRINGTABLE BEGIN IDS_SERVICES_STARTED "Iniciado" IDS_SERVICES_STOPPED "Detenido" - IDS_SERVICES_AUTO "Automatico" + IDS_SERVICES_AUTO "Automático" IDS_SERVICES_MAN "Manual" IDS_SERVICES_DIS "Deshabilitado" END STRINGTABLE BEGIN - IDS_NUM_SERVICES "Núm Servicios: %d" + IDS_NUM_SERVICES "Número de servicios: %d" IDS_STOP_DEPENDS "Cuando %s se detenga, estos otros servicios también se detendrán" IDS_NO_DEPENDS "" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." + IDS_LICENSE "Este programa es software libre; puedes redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License tal y como fueron publicados por la Free Software Foundation; ya sea la versión 2 de la Licencia, o (bajo tu discreción) cualquier versión posterior.\r\n\r\nEste programa se distribuye con el fin de ser útil, pero viene SIN NINGUNA GARANTÍA; sin tan siquiera la garantía implícita de COMERCIALIZACIÓN o la de IDONEIDAD PARA UN PROPÓSITO CONCRETO. Para más información lee la GNU General Public License.\r\n\r\nDeberías de haber recibido una copia de la GNU General Public License con el programa; si no, puedes escribir a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE.UU." END STRINGTABLE @@ -231,15 +234,15 @@ BEGIN IDS_PROGRESS_INFO_STOP "ReactOS está intentando detener el siguiente servicio" IDS_PROGRESS_INFO_PAUSE "ReactOS está intentando pausar el siguiente servicio" IDS_PROGRESS_INFO_RESUME "ReactOS está intentando reiniciar el siguiente servicio" - IDS_CREATE_SUCCESS "Servicio Creado satisfactoriamente" - IDS_DELETE_SUCCESS "Servicio Borrado satisfactoriamente" - IDS_CREATE_REQ "Los campos marcados con un\nasterísco son obligatorios" - IDS_DELETE_STOP "¡Debe detener manualmente el servicio antes de borrarlo!" + IDS_CREATE_SUCCESS "Servicio creado correctamente" + IDS_DELETE_SUCCESS "Servicio borrado correctamente" + IDS_CREATE_REQ "Los campos marcados con un\nasterisco son obligatorios" + IDS_DELETE_STOP "El servicio debe detenerse manualmente para poder borrarlo." END STRINGTABLE BEGIN - IDS_HELP_OPTIONS "OPCIONES DE CREACION:\r\nNOTA: El nombre de la opción incluye el signo igual.\r\n type= \r\n (por defecto = own)\r\n start= \r\n (por defecto = demand) \r\n error= \r\n (por defecto = normal)\r\n group= \r\n E= \r\n depend= \r\n obj= \r\n (por defecto = LocalSystem)\r\n password= \r\n" + IDS_HELP_OPTIONS "OPCIONES DE CREACIÓN:\r\nNOTA: El nombre de la opción incluye el signo igual.\r\n type= \r\n (por defecto = own)\r\n start= \r\n (por defecto = demand) \r\n error= \r\n (por defecto = normal)\r\n group= \r\n E= \r\n depend= \r\n obj= \r\n (por defecto = LocalSystem)\r\n password= \r\n" END /* Hints */ @@ -265,17 +268,17 @@ BEGIN IDS_HINT_DETAILS " Muestra información acerca de los elementos de la ventana." IDS_HINT_CUST " Personaliza la vista." IDS_HINT_HELP " Muestra la ventana de ayuda." - IDS_HINT_ABOUT " Acerca del Gestor de Servicios de ReactOS." + IDS_HINT_ABOUT " Acerca del Administrador de servicios de ReactOS." IDS_HINT_SYS_RESTORE " Restaura esta ventana a su tamaño normal." IDS_HINT_SYS_MOVE " Mueve esta ventana." IDS_HINT_SYS_SIZE " Redimensiona esta ventana." - IDS_HINT_SYS_MINIMIZE " Colapsa esta ventana a un icono." - IDS_HINT_SYS_MAXIMIZE " Expande esta ventana hasta llenar esta pantalla." + IDS_HINT_SYS_MINIMIZE " Contrae esta ventana en un icono." + IDS_HINT_SYS_MAXIMIZE " Expande esta ventana hasta ocupar la pantalla." IDS_HINT_SYS_CLOSE " Cierra esta ventana." END /* Application title */ STRINGTABLE BEGIN - IDS_APPNAME "Gestor de Servicios de ReactOS" + IDS_APPNAME "Administrador de servicios de ReactOS" END diff --git a/base/applications/mscutils/servman/lang/ru-RU.rc b/base/applications/mscutils/servman/lang/ru-RU.rc index 3e32594d876..55fde33be24 100644 --- a/base/applications/mscutils/servman/lang/ru-RU.rc +++ b/base/applications/mscutils/servman/lang/ru-RU.rc @@ -28,8 +28,8 @@ BEGIN END POPUP "Вид" BEGIN - MENUITEM "Крупные", ID_VIEW_LARGE - MENUITEM "Мелкие", ID_VIEW_SMALL + MENUITEM "Крупные значки", ID_VIEW_LARGE + MENUITEM "Мелкие значки", ID_VIEW_SMALL MENUITEM "Список", ID_VIEW_LIST MENUITEM "Таблица", ID_VIEW_DETAILS MENUITEM SEPARATOR @@ -160,7 +160,7 @@ BEGIN ICON IDI_WARNING, IDC_STATIC, 10, 8, 24, 22 LTEXT "", IDC_STOP_DEPENDS, 40, 8, 170, 25 LISTBOX IDC_STOP_DEPENDS_LB, 15, 40, 210, 70, WS_CHILD | WS_VISIBLE | WS_EX_STATICEDGE | LBS_NOSEL - LTEXT "Do you want to stop these services?", IDC_STATIC, 15, 110, 150, 10 + LTEXT "Вы хотите остановить эти службы?", IDC_STATIC, 15, 110, 150, 10 DEFPUSHBUTTON "Да", IDOK, 60, 129, 54, 14 PUSHBUTTON "Нет", IDCANCEL, 120, 129, 54, 14 END diff --git a/base/applications/mspaint/lang/es-ES.rc b/base/applications/mspaint/lang/es-ES.rc index 68e02943864..e5aab2b8011 100644 --- a/base/applications/mspaint/lang/es-ES.rc +++ b/base/applications/mspaint/lang/es-ES.rc @@ -4,6 +4,7 @@ * FILE: base/applications/mspaint/lang/es-ES.rc * PURPOSE: Spanish Language resource file * TRANSLATOR: Gabriel Ilardi + * PROOFREAD: Ismael Ferreras Morezuelas */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -45,9 +46,9 @@ BEGIN MENUITEM "Barra de estado", IDM_VIEWSTATUSBAR, CHECKED MENUITEM "Barra de formato del texto", IDM_FORMATICONBAR, CHECKED, GRAYED MENUITEM SEPARATOR - POPUP "Zoom" + POPUP "Ampliación" BEGIN - POPUP "Definido por el usuario" + POPUP "Definida por el usuario" BEGIN MENUITEM "12,5%", IDM_VIEWZOOM125 MENUITEM "25%", IDM_VIEWZOOM25 @@ -66,7 +67,7 @@ BEGIN POPUP "&Imagen" BEGIN MENUITEM "Rotar/Invertir...\tCtrl+R", IDM_IMAGEROTATEMIRROR - MENUITEM "Stretch/Skew...\tCtrl+W", IDM_IMAGESTRETCHSKEW + MENUITEM "Estirar/Inclinar...\tCtrl+W", IDM_IMAGESTRETCHSKEW MENUITEM "Recortar", IDM_IMAGECROP MENUITEM "Invertir colores\tCtrl+I", IDM_IMAGEINVERTCOLORS MENUITEM "Atributos...\tCtrl+E", IDM_IMAGEATTRIBUTES @@ -77,8 +78,8 @@ BEGIN BEGIN MENUITEM "Editar paleta...", IDM_COLORSEDITPALETTE MENUITEM SEPARATOR - MENUITEM "Modern palette", IDM_COLORSMODERNPALETTE - MENUITEM "Old palette", IDM_COLORSOLDPALETTE + MENUITEM "Paleta moderna", IDM_COLORSMODERNPALETTE + MENUITEM "Paleta antigua", IDM_COLORSOLDPALETTE END POPUP "Ay&uda" BEGIN @@ -134,21 +135,21 @@ CAPTION "Atributos" BEGIN EDITTEXT IDD_ATTRIBUTESEDIT1, 48, 40, 35, 12 EDITTEXT IDD_ATTRIBUTESEDIT2, 128, 40, 35, 12 - LTEXT "Ancho:", IDD_ATTRIBUTESTEXT1, 10, 42, 30, 10 - LTEXT "Alto:", IDD_ATTRIBUTESTEXT2, 85, 42, 23, 10 - LTEXT "Fecha modificación:", IDD_ATTRIBUTESTEXT3, 10, 5, 80, 10 - LTEXT "Espacio en disco:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10 - LTEXT "Resolución:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10 + LTEXT "Anchura:", IDD_ATTRIBUTESTEXT1, 10, 42, 30, 10 + LTEXT "Altura:", IDD_ATTRIBUTESTEXT2, 101, 42, 23, 10 + LTEXT "Fecha modificación:", IDD_ATTRIBUTESTEXT3, 3, 5, 67, 10, SS_RIGHT + LTEXT "Espacio en disco:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10, SS_RIGHT + LTEXT "Resolución:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10, SS_RIGHT LTEXT "No disponible", IDD_ATTRIBUTESTEXT6, 73, 5, 80, 10 LTEXT "No disponible", IDD_ATTRIBUTESTEXT7, 73, 15, 80, 10 LTEXT "No disponible", IDD_ATTRIBUTESTEXT8, 73, 25, 80, 10 GROUPBOX "Unidades ", IDD_ATTRIBUTESGROUP1, 6, 57, 158, 27 AUTORADIOBUTTON "Pulgadas", IDD_ATTRIBUTESRB1, 12, 69, 45, 10, WS_GROUP - AUTORADIOBUTTON "cm", IDD_ATTRIBUTESRB2, 60, 69, 35, 10 - AUTORADIOBUTTON "Píxeles", IDD_ATTRIBUTESRB3, 112, 69, 45, 10 + AUTORADIOBUTTON "Centímetros", IDD_ATTRIBUTESRB2, 60, 69, 51, 10 + AUTORADIOBUTTON "Píxeles", IDD_ATTRIBUTESRB3, 120, 69, 42, 10 GROUPBOX "Colores ", IDD_ATTRIBUTESGROUP2, 6, 88, 158, 27 AUTORADIOBUTTON "Blanco y negro", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP - AUTORADIOBUTTON "Colores", IDD_ATTRIBUTESRB5, 92, 100, 35, 10 + AUTORADIOBUTTON "En color", IDD_ATTRIBUTESRB5, 92, 100, 40, 10 DEFPUSHBUTTON "Aceptar", IDOK, 170, 8, 48, 14 PUSHBUTTON "Cancelar", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Predefinido", IDD_ATTRIBUTESSTANDARD, 170, 40, 48, 14 @@ -157,9 +158,9 @@ END IDD_STRETCHSKEW DIALOGEX 100, 100, 225, 150 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" -CAPTION "Stretch and skew image" +CAPTION "Estirar e inclinar imagen" BEGIN - GROUPBOX "Stretch", IDD_STRETCHSKEWGROUPSTRETCH, 6, 6, 158, 66 + GROUPBOX "Estirar", IDD_STRETCHSKEWGROUPSTRETCH, 6, 6, 158, 66 ICON IDI_HORZSTRETCH, IDD_STRETCHSKEWICONHSTRETCH, 12, 18, 32, 32 LTEXT "Horizontal:", IDD_STRETCHSKEWTEXTHSTRETCH, 45, 24, 40, 10 EDITTEXT IDD_STRETCHSKEWEDITHSTRETCH, 90, 23, 32, 12 @@ -168,15 +169,15 @@ BEGIN LTEXT "Vertical:", IDD_STRETCHSKEWTEXTVSTRETCH, 45, 49, 40, 10 EDITTEXT IDD_STRETCHSKEWEDITVSTRETCH, 90, 48, 32, 12 LTEXT "%", IDD_STRETCHSKEWTEXTVPERCENT, 125, 49, 15, 10 - GROUPBOX "Skew", IDD_STRETCHSKEWGROUPSKEW, 6, 76, 158, 66 + GROUPBOX "Inclinar", IDD_STRETCHSKEWGROUPSKEW, 6, 76, 158, 66 ICON IDI_HORZSKEW, IDD_STRETCHSKEWICONHSKEW, 12, 88, 32, 32 LTEXT "Horizontal:", IDD_STRETCHSKEWTEXTHSKEW, 45, 94, 40, 10 EDITTEXT IDD_STRETCHSKEWEDITHSKEW, 90, 93, 32, 12 - LTEXT "degrees", IDD_STRETCHSKEWTEXTHDEG, 125, 94, 30, 10 + LTEXT "grados", IDD_STRETCHSKEWTEXTHDEG, 125, 94, 30, 10 ICON IDI_VERTSKEW, IDD_STRETCHSKEWICONVSKEW, 12, 113, 32, 32 LTEXT "Vertical:", IDD_STRETCHSKEWTEXTVSKEW, 45, 119, 40, 10 EDITTEXT IDD_STRETCHSKEWEDITVSKEW, 90, 118, 32, 12 - LTEXT "degrees", IDD_STRETCHSKEWTEXTVDEG, 125, 119, 30, 10 + LTEXT "grados", IDD_STRETCHSKEWTEXTVDEG, 125, 119, 30, 10 DEFPUSHBUTTON "Aceptar", IDOK, 170, 8, 48, 14 PUSHBUTTON "Cancelar", IDCANCEL, 170, 24, 48, 14 END @@ -186,8 +187,8 @@ BEGIN IDS_PROGRAMNAME "Paint" IDS_WINDOWTITLE "%s - Paint" IDS_INFOTITLE "Paint para ReactOS" - IDS_INFOTEXT "Paint para ReactOS is available under the GNU Lesser General Public License (LGPL, ver www.gnu.org)" - IDS_SAVEPROMPTTEXT "¿Guardar cambios cambios a %s?" + IDS_INFOTEXT "Paint para ReactOS está disponible bajo los términos de la GNU Lesser General Public License (LGPL, ver www.gnu.org)" + IDS_SAVEPROMPTTEXT "¿Guardar cambios a %s?" IDS_DEFAULTFILENAME "Sin titulo.bmp" IDS_MINIATURETITLE "Miniatura" IDS_TOOLTIP1 "Selección de forma libre" @@ -209,9 +210,9 @@ BEGIN IDS_OPENFILTER "Archivos de mapa de bits (*.bmp;*.dib)\1*.bmp;*.dib\1Todos los archivos (*.*)\1*.*\1" IDS_SAVEFILTER "Mapa de bits de 24 bits (*.bmp;*.dib)\1*.bmp;*.dib\1" IDS_FILESIZE "%d bytes" - IDS_PRINTRES "%d x %d pixels por metro" - IDS_INTNUMBERS "Please enter integral numbers only!" - IDS_PERCENTAGE "The percentage must be between 1 and 500." - IDS_ANGLE "The angle must be between -89 and 89." - IDS_LOADERRORTEXT "The file %s could not be loaded." + IDS_PRINTRES "%d x %d píxeles/m" + IDS_INTNUMBERS "Sólo se admiten números sin decimales." + IDS_PERCENTAGE "El porcentaje debe de estar entre 1 y 500." + IDS_ANGLE "El ángulo debe de estar entre -89 y 89." + IDS_LOADERRORTEXT "No se pudo cargar el archivo %s." END diff --git a/base/applications/mstsc/lang/es-ES.rc b/base/applications/mstsc/lang/es-ES.rc index 31acde17f46..81c9c65a729 100644 --- a/base/applications/mstsc/lang/es-ES.rc +++ b/base/applications/mstsc/lang/es-ES.rc @@ -1,4 +1,4 @@ -/* Spanish Language resource file. Traducido por: Javier Remacha 2007-12-22 */ +/* Spanish Language resource file. Traducido por: Javier Remacha 2007-12-22 e Ismael Ferreras Morezuelas 2014-11-07 */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -14,11 +14,11 @@ BEGIN LTEXT "Nombre de usuario:", IDC_STATIC, 47, 58, 70, 8 COMBOBOX IDC_SERVERCOMBO, 79, 39, 141, 150, CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL - PUSHBUTTON "Guardar", IDC_SAVE, 60, 139, 50, 14 //67 - PUSHBUTTON "Guardar Como...", IDC_SAVEAS, 115, 139, 58,14 //123, 50 + PUSHBUTTON "&Guardar", IDC_SAVE, 60, 139, 50, 14 //67 + PUSHBUTTON "Guardar &como...", IDC_SAVEAS, 115, 139, 58,14 //123, 50 PUSHBUTTON "Abrir...", IDC_OPEN, 177, 139, 50, 14 ICON "", IDC_CONNICON, 16, 114, 20, 20 - LTEXT "Guardar esta configuración o abrir una existente", IDC_STATIC, 50, 115, 172, 20 + LTEXT "Guarde la configuración de conexión actual en un archivo RDP o abra una ya existente.", IDC_STATIC, 50, 115, 172, 20 END IDD_DISPLAY DIALOGEX 0, 0, 242, 175 @@ -29,7 +29,7 @@ BEGIN GROUPBOX "Colores", IDC_STATIC, 7, 83, 228, 85 ICON "", IDC_REMICON, 15, 19, 20, 20 ICON "", IDC_COLORSICON, 15, 98, 20, 20 - LTEXT "Elija el tamaño de su escritorio remoto. Arrastre el control deslizante hacia el extremo derecho para el modo de pantalla completa", IDC_STATIC, 53, 18, 175, 26 //22 + LTEXT "Elija el tamaño de su escritorio remoto. Para utilizar el modo de pantalla completa, arrastre el control deslizante hacia el extremo derecho.", IDC_STATIC, 53, 18, 175, 26 //22 CONTROL "", IDC_GEOSLIDER, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 56, 45, 124, 17 COMBOBOX IDC_BPPCOMBO, 56, 102, 128, 80, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP CONTROL "", IDC_COLORIMAGE, "Static", SS_OWNERDRAW | SS_SUNKEN, 56, 121, 127, 10 @@ -41,7 +41,7 @@ END IDD_CONNECTDIALOG DIALOGEX 0, 0, 260, 262 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Conexión a Escritorio Remoto" +CAPTION "Conexión a Escritorio remoto" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Conectar", IDOK, 147, 245, 50, 14 @@ -54,12 +54,12 @@ BEGIN IDS_TAB_GENERAL "General" IDS_TAB_DISPLAY "Pantalla" IDS_256COLORS "256 Colores" - IDS_HIGHCOLOR15 "32,768 Colores (15 bit)" - IDS_HIGHCOLOR16 "65,536 Colores (16 bit)" - IDS_HIGHCOLOR24 "16,777,216 Colores (24 bit)" - IDS_PIXEL "%lux%lu Pixels" - IDS_FULLSCREEN "Pantalla Completa" + IDS_HIGHCOLOR15 "32,768 colores (15 bit)" + IDS_HIGHCOLOR16 "65,536 colores (16 bit)" + IDS_HIGHCOLOR24 "16,777,216 colores (24 bit)" + IDS_PIXEL "%lux%lu píxeles" + IDS_FULLSCREEN "Pantalla completa" IDS_BROWSESERVER "" - IDS_HEADERTEXT1 "Escritorio Remoto" - IDS_HEADERTEXT2 "Conexión" + IDS_HEADERTEXT1 "Conexión a escritorio" + IDS_HEADERTEXT2 "Remoto" END diff --git a/base/applications/mstsc/lang/ru-RU.rc b/base/applications/mstsc/lang/ru-RU.rc index f9fe8a04440..71dfbab7e34 100644 --- a/base/applications/mstsc/lang/ru-RU.rc +++ b/base/applications/mstsc/lang/ru-RU.rc @@ -1,22 +1,24 @@ +/* Russian language resource file by Dmitry Chapyshev, Kudratov Olimjon (olim98@bk.ru) */ + LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT IDD_GENERAL DIALOGEX 0, 0, 242, 175 STYLE DS_SHELLFONT | WS_CHILD FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "Настройки входа", IDC_STATIC, 7, 7, 228, 89 - GROUPBOX "Настройки подключения", IDC_STATIC, 7, 103, 228, 65 + GROUPBOX "Параметры входа", IDC_STATIC, 7, 7, 228, 89 + GROUPBOX "Параметры подключения", IDC_STATIC, 7, 103, 228, 65 ICON "", IDC_LOGONICON, 15, 19, 20, 20 LTEXT "Введите адрес сервера", IDC_STATIC, 47, 24, 100, 8 LTEXT "Сервер:", IDC_STATIC, 52, 41, 31, 8 LTEXT "Имя пользователя:", IDC_STATIC, 15, 58, 67, 8 COMBOBOX IDC_SERVERCOMBO, 86, 39, 141, 150, CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL - PUSHBUTTON "Сохранить", IDC_SAVE, 49, 139, 50, 14 - PUSHBUTTON "Сохранить как...", IDC_SAVEAS, 103, 139, 70, 14 - PUSHBUTTON "Открыть...", IDC_OPEN, 177, 139, 50, 14 + PUSHBUTTON "Сохр&анить", IDC_SAVE, 49, 139, 50, 14 + PUSHBUTTON "Со&хранить как...", IDC_SAVEAS, 103, 139, 70, 14 + PUSHBUTTON "&Открыть...", IDC_OPEN, 177, 139, 50, 14 ICON "", IDC_CONNICON, 16, 114, 20, 20 - LTEXT "Сохранить текущие настройки подключения или открыть существующую конфигурацию.", IDC_STATIC, 50, 115, 172, 20 + LTEXT "Сохранение текущих параметров подключения в RDP-файл или открытие сохраненного подключения.", IDC_STATIC, 50, 115, 172, 20 END IDD_DISPLAY DIALOGEX 0, 0, 242, 175 @@ -27,13 +29,13 @@ BEGIN GROUPBOX "Цвета", IDC_STATIC, 7, 83, 228, 85 ICON "", IDC_REMICON, 15, 19, 20, 20 ICON "", IDC_COLORSICON, 15, 98, 20, 20 - LTEXT "Установить размер экрана на удаленном компью-\nтере. Перетащите ползунок в крайнее правое положение для перехода в полноэкранный режим.", IDC_STATIC, 53, 17, 175, 24 + LTEXT "Укажите размер удаленного рабочего стола. Крайнее правое положение ползунка соответствует полноэкранному режиму.", IDC_STATIC, 53, 17, 175, 24 CONTROL "", IDC_GEOSLIDER, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 56, 42, 124, 17 COMBOBOX IDC_BPPCOMBO, 56, 102, 128, 80, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP CONTROL "", IDC_COLORIMAGE, "Static", SS_OWNERDRAW | SS_SUNKEN, 56, 121, 127, 10 LTEXT "Примечание: Эти параметры определяются настройками удаленного компьютера.", IDC_STATIC, 56, 143, 165, 18 - LTEXT "меньше", IDC_STATIC, 20, 52, 30, 8 - LTEXT "больше", IDC_STATIC, 189, 51, 32, 8 + LTEXT "Меньше", IDC_STATIC, 20, 52, 30, 8 + LTEXT "Больше", IDC_STATIC, 189, 51, 32, 8 LTEXT "", IDC_SETTINGS_RESOLUTION_TEXT, 56, 62, 120, 10, SS_CENTER END @@ -55,7 +57,7 @@ BEGIN IDS_HIGHCOLOR15 "32,768 цветов (15 бит)" IDS_HIGHCOLOR16 "65,536 цветов (16 бит)" IDS_HIGHCOLOR24 "16,777,216 цветов (24 бит)" - IDS_PIXEL "%lux%lu пикселей" + IDS_PIXEL "%lu на %lu пикселей" IDS_FULLSCREEN "Полный экран" IDS_BROWSESERVER "<Указать путь...>" IDS_HEADERTEXT1 "Удаленный рабочий стол" diff --git a/base/applications/network/ipconfig/lang/es-ES.rc b/base/applications/network/ipconfig/lang/es-ES.rc index 52d89a5600a..abea6311fba 100644 --- a/base/applications/network/ipconfig/lang/es-ES.rc +++ b/base/applications/network/ipconfig/lang/es-ES.rc @@ -1,23 +1,26 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_BCAST "Broadcast" - IDS_P2P "Peer To Peer" - IDS_MIXED "Mixto" - IDS_HYBRID "Híbrido" - IDS_UNKNOWN "Deconocido" + IDS_BCAST "Difusión" + IDS_P2P "Punto a punto" + IDS_MIXED "Mixto" + IDS_HYBRID "Híbrido" + IDS_UNKNOWN "Desconocido" END STRINGTABLE BEGIN - IDS_OTHER "Otro Tipo de Adaptador" - IDS_ETH "Adaptador Ethernet" - IDS_TOKEN "Adaptador Token Ring" - IDS_FDDI "Adaptador FDDI" - IDS_PPP "Adaptador PPP" - IDS_LOOP "Adaptador Loopback" - IDS_SLIP "Adaptador SLIP" + IDS_OTHER "Otro tipo de adaptador" + IDS_ETH "Adaptador Ethernet" + IDS_TOKEN "Adaptador de red en anillo" + IDS_FDDI "Adaptador FDDI" + IDS_PPP "Adaptador PPP" + IDS_LOOP "Adaptador de bucle invertido" + IDS_SLIP "Adaptador SLIP" END STRINGTABLE @@ -30,36 +33,38 @@ BEGIN /showclassid adaptador |\n \ /setclassid adaptador [classid] ]\n \ \n \ - En la cual\n \ + donde\n \ adaptador Nombre de la conexión\n \ - (caracteres especiales * and ? autorizados, ver ejemplos)\n \ + (los caracteres comodín * y ? están permitidos, ver ejemplos)\n \ \n \ - Optiones:\n \ + Opciones:\n \ /? Muestra este mensaje de ayuda\n \ - /all Muestra todas las informaciones de configuración.\n \ + /all Muestra la información de configuración.\n \ /release Libera la dirección IP para el adaptador especificado.\n \ /renew Renueva la dirección IP para el adaptador especificado.\n \ - /flushdns Purga la cache de Resolución DNS.\n \ - /registerdns Actualiza todas las concesiones DHCP y registra de nuevo nombres DNS.\n \ - /displaydns Muestra el contenido del cache de Resolución DNS.\n \ - /showclassid Muestra todos los class IDs dhcp concedidos al adaptador.\n \ - /setclassid Modifica el class id dhcp.\n \ + /flushdns Purga la caché de resolución DNS.\n \ + /registerdns Actualiza todas las concesiones DHCP y registran \n \ + de nuevo los nombres DNS.\n \ + /displaydns Muestra el contenido de la caché de resolución DNS.\n \ + /showclassid Muestra todos los id. de clase DHCP permitidos al adaptador.\n \ + /setclassid Modifica el id. de clase DHCP.\n \ \n \ - Generalmente se muestra solamente la dirección IP, la máscara de red y\n \ - la puerta de enlace predefinidas de cada adaptador relacionado a TCP/IP.\n \ + Normalmente se muestra sólo la dirección IP, la máscara de red y\n \ + la puerta de enlace predeterminada de cada adaptador enlazado a TCP/IP.\n \ \n \ - Para los parámetros Release y Renew, si no se especifica un adaptador, entonces la(s) dirección(es)\n \ - IP asignada(s) para todos los adaptadores relacionados a TCP/IP serán liberadas o renovadas.\n \ + Para los parámetros Release y Renew, si no se especifica un adaptador,\n \ + se liberan o renuevan las concesiones de dirección IP para todos\n \ + los adaptadores enlazados por TCP/IP.\n \ \n \ - Para Setclassid, si no se especifica algún ClassId, este será removido.\n \ + Para Setclassid, si no se especifica algún classid, se quita.\n \ \n \ Ejemplos:\n \ - > ipconfig ... Muestra informaciones.\n \ - > ipconfig /all ... Muestra informaciones detalladas\n \ - > ipconfig /renew ... Renueva todos los adaptadores\n \ + > ipconfig ... Muestra información.\n \ + > ipconfig /all ... Muestra información detallada.\n \ + > ipconfig /renew ... Renueva todos los adaptadores.\n \ > ipconfig /renew EL* ... Renueva todas las direcciones IP de los adaptadores\n \ - cuyo nombre comienza con EL\n \ - > ipconfig /release *Con* ... Libera todas las conexiones concernidas,\n \ - ej. ""Conexión al area local 1"" o\n \ - ""Conexión al area local 2""\n" + cuyo nombre comienza con EL.\n \ + > ipconfig /release *Con* ... Libera todas las conexiones coincidentes,\n \ + por ejemplo. ""Conexión de área local 1"" o\n \ + ""Conexión de área local 2"".\n" END diff --git a/base/applications/network/net/cmdAccounts.c b/base/applications/network/net/cmdAccounts.c index dcd93de724c..0785abb20ba 100644 --- a/base/applications/network/net/cmdAccounts.c +++ b/base/applications/network/net/cmdAccounts.c @@ -27,6 +27,7 @@ cmdAccounts( #if 0 BOOL Domain = FALSE; #endif + INT nPaddedLength = 58; NET_API_STATUS Status; INT result = 0; @@ -48,7 +49,7 @@ cmdAccounts( if (_wcsicmp(argv[i], L"/domain") == 0) { - PrintToConsole(L"The /DOMAIN option is not supported yet!\n"); + PrintResourceString(IDS_ERROR_OPTION_NOT_SUPPORTED, L"/DOMAIN"); #if 0 Domain = TRUE; #endif @@ -74,7 +75,7 @@ cmdAccounts( value = wcstoul(p, &endptr, 10); if (*endptr != 0) { - PrintToConsole(L"You entered an invalid value for the /FORCELOGOFF option.\n"); + PrintResourceString(IDS_ERROR_INVALID_OPTION_VALUE, L"/FORCELOGOFF"); result = 1; goto done; } @@ -89,7 +90,7 @@ cmdAccounts( value = wcstoul(p, &endptr, 10); if (*endptr != 0) { - PrintToConsole(L"You entered an invalid value for the /MINPWLEN option.\n"); + PrintResourceString(IDS_ERROR_INVALID_OPTION_VALUE, L"/MINPWLEN"); result = 1; goto done; } @@ -111,7 +112,7 @@ cmdAccounts( value = wcstoul(p, &endptr, 10); if (*endptr != 0) { - PrintToConsole(L"You entered an invalid value for the /MAXPWAGE option.\n"); + PrintResourceString(IDS_ERROR_INVALID_OPTION_VALUE, L"/MAXPWLEN"); result = 1; goto done; } @@ -126,7 +127,7 @@ cmdAccounts( value = wcstoul(p, &endptr, 10); if (*endptr != 0) { - PrintToConsole(L"You entered an invalid value for the /MINPWAGE option.\n"); + PrintResourceString(IDS_ERROR_INVALID_OPTION_VALUE, L"/MINPWAGE"); result = 1; goto done; } @@ -140,7 +141,7 @@ cmdAccounts( value = wcstoul(p, &endptr, 10); if (*endptr != 0) { - PrintToConsole(L"You entered an invalid value for the /UNIQUEPW option.\n"); + PrintResourceString(IDS_ERROR_INVALID_OPTION_VALUE, L"/UNIQUEPW"); result = 1; goto done; } @@ -168,52 +169,63 @@ cmdAccounts( RtlGetNtProductType(&ProductType); - PrintToConsole(L"Force logoff after: "); + PrintPaddedResourceString(IDS_ACCOUNTS_FORCE_LOGOFF, nPaddedLength); if (Info0->usrmod0_force_logoff == TIMEQ_FOREVER) - PrintToConsole(L"Never\n"); + PrintResourceString(IDS_GENERIC_NEVER); else - PrintToConsole(L"%lu seconds\n", Info0->usrmod0_force_logoff); + PrintResourceString(IDS_ACCOUNTS_LOGOFF_SECONDS, Info0->usrmod0_force_logoff); + PrintToConsole(L"\n"); - PrintToConsole(L"Minimum password age (in days): %lu\n", Info0->usrmod0_min_passwd_age / 86400); - PrintToConsole(L"Maximum password age (in days): %lu\n", Info0->usrmod0_max_passwd_age / 86400); - PrintToConsole(L"Minimum password length: %lu\n", Info0->usrmod0_min_passwd_len); + PrintPaddedResourceString(IDS_ACCOUNTS_MIN_PW_AGE, nPaddedLength); + PrintToConsole(L"%lu\n", Info0->usrmod0_min_passwd_age / 86400); - PrintToConsole(L"Password history length: "); + PrintPaddedResourceString(IDS_ACCOUNTS_MAX_PW_AGE, nPaddedLength); + PrintToConsole(L"%lu\n", Info0->usrmod0_max_passwd_age / 86400); + + PrintPaddedResourceString(IDS_ACCOUNTS_MIN_PW_LENGTH, nPaddedLength); + PrintToConsole(L"%lu\n", Info0->usrmod0_min_passwd_len); + + PrintPaddedResourceString(IDS_ACCOUNTS_PW_HIST_LENGTH, nPaddedLength); if (Info0->usrmod0_password_hist_len == 0) - PrintToConsole(L"None\n"); + PrintResourceString(IDS_GENERIC_NONE); else - PrintToConsole(L"%lu\n", Info0->usrmod0_password_hist_len); + PrintToConsole(L"%lu", Info0->usrmod0_password_hist_len); + PrintToConsole(L"\n"); - PrintToConsole(L"Lockout threshold: "); + PrintPaddedResourceString(IDS_ACCOUNTS_LOCKOUT_THRESHOLD, nPaddedLength); if (Info3->usrmod3_lockout_threshold == 0) - PrintToConsole(L"Never\n"); + PrintResourceString(IDS_GENERIC_NEVER); else - PrintToConsole(L"%lu\n", Info3->usrmod3_lockout_threshold); + PrintToConsole(L"%lu", Info3->usrmod3_lockout_threshold); + PrintToConsole(L"\n"); - PrintToConsole(L"Lockout duration (in minutes): %lu\n", Info3->usrmod3_lockout_duration / 60); - PrintToConsole(L"Lockout observation window (in minutes): %lu\n", Info3->usrmod3_lockout_observation_window / 60); + PrintPaddedResourceString(IDS_ACCOUNTS_LOCKOUT_DURATION, nPaddedLength); + PrintToConsole(L"%lu\n", Info3->usrmod3_lockout_duration / 60); - PrintToConsole(L"Computer role: "); + PrintPaddedResourceString(IDS_ACCOUNTS_LOCKOUT_WINDOW, nPaddedLength); + PrintToConsole(L"%lu\n", Info3->usrmod3_lockout_observation_window / 60); + PrintPaddedResourceString(IDS_ACCOUNTS_COMPUTER_ROLE, nPaddedLength); if (Info1->usrmod1_role == UAS_ROLE_PRIMARY) { if (ProductType == NtProductLanManNt) { - PrintToConsole(L"Primary server\n"); + PrintResourceString(IDS_ACCOUNTS_PRIMARY_SERVER); } else if (ProductType == NtProductServer) { - PrintToConsole(L"Standalone server\n"); + PrintResourceString(IDS_ACCOUNTS_STANDALONE_SERVER); } else { - PrintToConsole(L"Workstation\n"); + PrintResourceString(IDS_ACCOUNTS_WORKSTATION); } } else { - PrintToConsole(L"Backup server\n"); + PrintResourceString(IDS_ACCOUNTS_BACKUP_SERVER); } + PrintToConsole(L"\n"); } done: diff --git a/base/applications/network/net/cmdLocalGroup.c b/base/applications/network/net/cmdLocalGroup.c index 3cd5af48af3..8c05530c2c3 100644 --- a/base/applications/network/net/cmdLocalGroup.c +++ b/base/applications/network/net/cmdLocalGroup.c @@ -38,7 +38,9 @@ EnumerateLocalGroups(VOID) if (Status != NERR_Success) return Status; - PrintToConsole(L"\nAliases for \\\\%s\n\n", pServer->sv100_name); + PrintToConsole(L"\n"); + PrintResourceString(IDS_LOCALGROUP_ALIASES, pServer->sv100_name); + PrintToConsole(L"\n\n"); PrintToConsole(L"------------------------------------------\n"); NetApiBufferFree(pServer); @@ -83,6 +85,7 @@ DisplayLocalGroup(LPWSTR lpGroupName) DWORD_PTR ResumeHandle = 0; DWORD i; DWORD len; + INT nPaddedLength = 18; NET_API_STATUS Status; Status = NetLocalGroupGetInfo(NULL, @@ -127,11 +130,17 @@ DisplayLocalGroup(LPWSTR lpGroupName) pNames[i] = pMembers[i].lgrmi3_domainandname; } - PrintToConsole(L"Alias name %s\n", pGroupInfo->lgrpi1_name); - PrintToConsole(L"Comment %s\n", pGroupInfo->lgrpi1_comment); - PrintToConsole(L"\n"); - PrintToConsole(L"Members\n"); + PrintPaddedResourceString(IDS_LOCALGROUP_ALIAS_NAME, nPaddedLength); + PrintToConsole(L"%s\n", pGroupInfo->lgrpi1_name); + + PrintPaddedResourceString(IDS_LOCALGROUP_COMMENT, nPaddedLength); + PrintToConsole(L"%s\n", pGroupInfo->lgrpi1_comment); + PrintToConsole(L"\n"); + + PrintResourceString(IDS_LOCALGROUP_MEMBERS); + PrintToConsole(L"\n\n"); + PrintToConsole(L"------------------------------------------\n"); for (i = 0; i < dwRead; i++) @@ -248,7 +257,7 @@ cmdLocalGroup( } else if (_wcsicmp(argv[i], L"/domain") == 0) { - printf("The /DOMAIN option is not supported yet!\n"); + PrintResourceString(IDS_ERROR_OPTION_NOT_SUPPORTED, L"/DOMAIN"); #if 0 bDomain = TRUE; #endif diff --git a/base/applications/network/net/cmdUser.c b/base/applications/network/net/cmdUser.c index c9d07c4c89f..f09e6603e28 100644 --- a/base/applications/network/net/cmdUser.c +++ b/base/applications/network/net/cmdUser.c @@ -37,12 +37,13 @@ EnumerateUsers(VOID) if (Status != NERR_Success) return Status; - PrintToConsole(L"\nUser accounts for \\\\%s\n\n", pServer->sv100_name); + PrintToConsole(L"\n"); + PrintResourceString(IDS_USER_ACCOUNTS, pServer->sv100_name); + PrintToConsole(L"\n\n"); + PrintToConsole(L"------------------------------------------\n"); NetApiBufferFree(pServer); - PrintToConsole(L"------------------------------------------\n"); - Status = NetUserEnum(NULL, 0, 0, @@ -103,7 +104,7 @@ PrintDateTime(DWORD dwSeconds) TimeBuffer, 80); - PrintToConsole(L"%s %s\n", DateBuffer, TimeBuffer); + PrintToConsole(L"%s %s", DateBuffer, TimeBuffer); } @@ -136,6 +137,7 @@ DisplayUser(LPWSTR lpUserName) DWORD dwGroupRead, dwGroupTotal; DWORD dwLastSet; DWORD i; + INT nPaddedLength = 29; NET_API_STATUS Status; /* Modify the user */ @@ -173,54 +175,89 @@ DisplayUser(LPWSTR lpUserName) if (Status != NERR_Success) goto done; - PrintToConsole(L"User name %s\n", pUserInfo->usri4_name); - PrintToConsole(L"Full name %s\n", pUserInfo->usri4_full_name); - PrintToConsole(L"Comment %s\n", pUserInfo->usri4_comment); - PrintToConsole(L"User comment %s\n", pUserInfo->usri4_usr_comment); - PrintToConsole(L"Country code %03ld ()\n", pUserInfo->usri4_country_code); - PrintToConsole(L"Account active %s\n", (pUserInfo->usri4_flags & UF_ACCOUNTDISABLE)? L"No" : ((pUserInfo->usri4_flags & UF_LOCKOUT) ? L"Locked" : L"Yes")); - PrintToConsole(L"Account expires "); - if (pUserInfo->usri4_acct_expires == TIMEQ_FOREVER) - PrintToConsole(L"Never\n"); - else - PrintDateTime(pUserInfo->usri4_acct_expires); + PrintPaddedResourceString(IDS_USER_NAME, nPaddedLength); + PrintToConsole(L"%s\n", pUserInfo->usri4_name); + PrintPaddedResourceString(IDS_USER_FULL_NAME, nPaddedLength); + PrintToConsole(L"%s\n", pUserInfo->usri4_full_name); + + PrintPaddedResourceString(IDS_USER_COMMENT, nPaddedLength); + PrintToConsole(L"%s\n", pUserInfo->usri4_comment); + + PrintPaddedResourceString(IDS_USER_USER_COMMENT, nPaddedLength); + PrintToConsole(L"%s\n", pUserInfo->usri4_usr_comment); + + PrintPaddedResourceString(IDS_USER_COUNTRY_CODE, nPaddedLength); + PrintToConsole(L"%03ld ()\n", pUserInfo->usri4_country_code); + + PrintPaddedResourceString(IDS_USER_ACCOUNT_ACTIVE, nPaddedLength); + if (pUserInfo->usri4_flags & UF_ACCOUNTDISABLE) + PrintResourceString(IDS_GENERIC_NO); + else if (pUserInfo->usri4_flags & UF_LOCKOUT) + PrintResourceString(IDS_GENERIC_LOCKED); + else + PrintResourceString(IDS_GENERIC_YES); PrintToConsole(L"\n"); - PrintToConsole(L"Password last set "); + PrintPaddedResourceString(IDS_USER_ACCOUNT_EXPIRES, nPaddedLength); + if (pUserInfo->usri4_acct_expires == TIMEQ_FOREVER) + PrintResourceString(IDS_GENERIC_NEVER); + else + PrintDateTime(pUserInfo->usri4_acct_expires); + PrintToConsole(L"\n\n"); + + PrintPaddedResourceString(IDS_USER_PW_LAST_SET, nPaddedLength); dwLastSet = GetTimeInSeconds() - pUserInfo->usri4_password_age; PrintDateTime(dwLastSet); - PrintToConsole(L"Password expires "); + PrintPaddedResourceString(IDS_USER_PW_EXPIRES, nPaddedLength); if ((pUserInfo->usri4_flags & UF_DONT_EXPIRE_PASSWD) || pUserModals->usrmod0_max_passwd_age == TIMEQ_FOREVER) - PrintToConsole(L"Never\n"); + PrintResourceString(IDS_GENERIC_NEVER); else PrintDateTime(dwLastSet + pUserModals->usrmod0_max_passwd_age); + PrintToConsole(L"\n"); - PrintToConsole(L"Password changeable "); + PrintPaddedResourceString(IDS_USER_PW_CHANGEABLE, nPaddedLength); PrintDateTime(dwLastSet + pUserModals->usrmod0_min_passwd_age); - PrintToConsole(L"Password required %s\n", (pUserInfo->usri4_flags & UF_PASSWD_NOTREQD) ? L"No" : L"Yes"); - PrintToConsole(L"User may change password %s\n", (pUserInfo->usri4_flags & UF_PASSWD_CANT_CHANGE) ? L"No" : L"Yes"); - + PrintPaddedResourceString(IDS_USER_PW_REQUIRED, nPaddedLength); + PrintResourceString((pUserInfo->usri4_flags & UF_PASSWD_NOTREQD) ? IDS_GENERIC_NO : IDS_GENERIC_YES); PrintToConsole(L"\n"); - PrintToConsole(L"Workstations allowed %s\n", (pUserInfo->usri4_workstations == NULL || wcslen(pUserInfo->usri4_workstations) == 0) ? L"All" : pUserInfo->usri4_workstations); - PrintToConsole(L"Logon script %s\n", pUserInfo->usri4_script_path); - PrintToConsole(L"User profile %s\n", pUserInfo->usri4_profile); - PrintToConsole(L"Home directory %s\n", pUserInfo->usri4_home_dir); - PrintToConsole(L"Last logon "); + + PrintPaddedResourceString(IDS_USER_CHANGE_PW, nPaddedLength); + PrintResourceString((pUserInfo->usri4_flags & UF_PASSWD_CANT_CHANGE) ? IDS_GENERIC_NO : IDS_GENERIC_YES); + PrintToConsole(L"\n\n"); + + PrintPaddedResourceString(IDS_USER_WORKSTATIONS, nPaddedLength); + if (pUserInfo->usri4_workstations == NULL || wcslen(pUserInfo->usri4_workstations) == 0) + PrintResourceString(IDS_GENERIC_ALL); + else + PrintToConsole(L"%s", pUserInfo->usri4_workstations); + PrintToConsole(L"\n"); + + PrintPaddedResourceString(IDS_USER_LOGON_SCRIPT, nPaddedLength); + PrintToConsole(L"%s\n", pUserInfo->usri4_script_path); + + PrintPaddedResourceString(IDS_USER_PROFILE, nPaddedLength); + PrintToConsole(L"%s\n", pUserInfo->usri4_profile); + + PrintPaddedResourceString(IDS_USER_HOME_DIR, nPaddedLength); + PrintToConsole(L"%s\n", pUserInfo->usri4_home_dir); + + PrintPaddedResourceString(IDS_USER_LAST_LOGON, nPaddedLength); if (pUserInfo->usri4_last_logon == 0) - PrintToConsole(L"Never\n"); + PrintResourceString(IDS_GENERIC_NEVER); else PrintDateTime(pUserInfo->usri4_last_logon); - PrintToConsole(L"\n"); - PrintToConsole(L"Logon hours allowed "); + PrintToConsole(L"\n\n"); + + PrintPaddedResourceString(IDS_USER_LOGON_HOURS, nPaddedLength); if (pUserInfo->usri4_logon_hours == NULL) - PrintToConsole(L"All\n"); - PrintToConsole(L"\n"); + PrintResourceString(IDS_GENERIC_ALL); + PrintToConsole(L"\n\n"); PrintToConsole(L"\n"); - PrintToConsole(L"Local group memberships "); + PrintPaddedResourceString(IDS_USER_LOCAL_GROUPS, nPaddedLength); if (dwLocalGroupTotal != 0 && pLocalGroupInfo != NULL) { for (i = 0; i < dwLocalGroupTotal; i++) @@ -235,7 +272,7 @@ DisplayUser(LPWSTR lpUserName) PrintToConsole(L"\n"); } - PrintToConsole(L"Global group memberships "); + PrintPaddedResourceString(IDS_USER_GLOBAL_GROUPS, nPaddedLength); if (dwGroupTotal != 0 && pGroupInfo != NULL) { for (i = 0; i < dwGroupTotal; i++) @@ -267,6 +304,53 @@ done: } +static +VOID +ReadPassword( + LPWSTR *lpPassword, + LPBOOL lpAllocated) +{ + WCHAR szPassword1[PWLEN + 1]; + WCHAR szPassword2[PWLEN + 1]; + LPWSTR ptr; + + *lpAllocated = FALSE; + + while (TRUE) + { + PrintResourceString(IDS_USER_ENTER_PASSWORD1); + ReadFromConsole(szPassword1, PWLEN + 1, FALSE); + PrintToConsole(L"\n"); + + PrintResourceString(IDS_USER_ENTER_PASSWORD2); + ReadFromConsole(szPassword2, PWLEN + 1, FALSE); + PrintToConsole(L"\n"); + + if (wcslen(szPassword1) == wcslen(szPassword2) && + wcscmp(szPassword1, szPassword2) == 0) + { + ptr = HeapAlloc(GetProcessHeap(), + 0, + (wcslen(szPassword1) + 1) * sizeof(WCHAR)); + if (ptr != NULL) + { + wcscpy(ptr, szPassword1); + *lpPassword = ptr; + *lpAllocated = TRUE; + return; + } + } + else + { + PrintToConsole(L"\n"); + PrintResourceString(IDS_USER_NO_PASSWORD_MATCH); + PrintToConsole(L"\n"); + *lpPassword = NULL; + } + } +} + + INT cmdUser( INT argc, @@ -286,6 +370,7 @@ cmdUser( LPWSTR p; LPWSTR endptr; DWORD value; + BOOL bPasswordAllocated = FALSE; NET_API_STATUS Status; if (argc == 2) @@ -305,14 +390,14 @@ cmdUser( if (argv[i][0] != L'/') { lpUserName = argv[i]; - printf("User: %S\n", lpUserName); +// printf("User: %S\n", lpUserName); i++; } if (argv[i][0] != L'/') { lpPassword = argv[i]; - printf("Password: %S\n", lpPassword); +// printf("Password: %S\n", lpPassword); i++; } @@ -333,7 +418,7 @@ cmdUser( } else if (_wcsicmp(argv[j], L"/domain") == 0) { - printf("The /DOMAIN option is not supported yet!\n"); + PrintResourceString(IDS_ERROR_OPTION_NOT_SUPPORTED, L"/DOMAIN"); #if 0 bDomain = TRUE; #endif @@ -346,6 +431,13 @@ cmdUser( goto done; } + /* Interactive password input */ + if (lpPassword != NULL && wcscmp(lpPassword, L"*") == 0) + { + ReadPassword(&lpPassword, + &bPasswordAllocated); + } + if (!bAdd && !bDelete) { /* Modify the user */ @@ -387,7 +479,7 @@ cmdUser( } else { - PrintToConsole(L"You entered an invalid value for the /ACTIVE option.\n"); + PrintResourceString(IDS_ERROR_INVALID_OPTION_VALUE, L"/ACTIVE"); result = 1; goto done; } @@ -402,7 +494,7 @@ cmdUser( value = wcstoul(p, &endptr, 10); if (*endptr != 0) { - PrintToConsole(L"You entered an invalid value for the /COUNTRYCODE option.\n"); + PrintResourceString(IDS_ERROR_INVALID_OPTION_VALUE, L"/COUNTRYCODE"); result = 1; goto done; } @@ -413,6 +505,16 @@ cmdUser( } else if (_wcsnicmp(argv[j], L"/expires:", 9) == 0) { + p = &argv[i][9]; + if (_wcsicmp(p, L"never") == 0) + { + pUserInfo->usri4_acct_expires = TIMEQ_FOREVER; + } + else + { + /* FIXME: Parse the date */ + PrintResourceString(IDS_ERROR_OPTION_NOT_SUPPORTED, L"/EXPIRES"); + } } else if (_wcsnicmp(argv[j], L"/fullname:", 10) == 0) { @@ -435,7 +537,7 @@ cmdUser( } else { - PrintToConsole(L"You entered an invalid value for the /PASSWORDCHG option.\n"); + PrintResourceString(IDS_ERROR_INVALID_OPTION_VALUE, L"/PASSWORDCHG"); result = 1; goto done; } @@ -453,7 +555,7 @@ cmdUser( } else { - PrintToConsole(L"You entered an invalid value for the /PASSWORDREQ option.\n"); + PrintResourceString(IDS_ERROR_INVALID_OPTION_VALUE, L"/PASSWORDREQ"); result = 1; goto done; } @@ -468,6 +570,8 @@ cmdUser( } else if (_wcsnicmp(argv[j], L"/times:", 7) == 0) { + /* FIXME */ + PrintResourceString(IDS_ERROR_OPTION_NOT_SUPPORTED, L"/TIMES"); } else if (_wcsnicmp(argv[j], L"/usercomment:", 13) == 0) { @@ -475,6 +579,8 @@ cmdUser( } else if (_wcsnicmp(argv[j], L"/workstations:", 14) == 0) { + /* FIXME */ + PrintResourceString(IDS_ERROR_OPTION_NOT_SUPPORTED, L"/WORKSTATIONS"); } } @@ -506,6 +612,9 @@ cmdUser( } done: + if (bPasswordAllocated == TRUE && lpPassword != NULL) + HeapFree(GetProcessHeap(), 0, lpPassword); + if (!bAdd && !bDelete && pUserInfo != NULL) NetApiBufferFree(pUserInfo); diff --git a/base/applications/network/net/lang/en-US.rc b/base/applications/network/net/lang/en-US.rc index d84ca737a50..938bd000da9 100644 --- a/base/applications/network/net/lang/en-US.rc +++ b/base/applications/network/net/lang/en-US.rc @@ -34,7 +34,7 @@ BEGIN IDS_SESSION_HELP "SESSION\n..." IDS_SHARE_SYNTAX "Usage:\nNET SHARE ..." IDS_SHARE_HELP "SHARE\n..." - IDS_START_SYNTAX "Usage:\nNET START ..." + IDS_START_SYNTAX "Usage:\nNET START " IDS_START_HELP "START\n..." IDS_STATISTICS_SYNTAX "Usage:\nNET STATISTICS ..." IDS_STATISTICS_HELP "STATISTICS\n..." @@ -64,4 +64,60 @@ BEGIN IDS_NET_SYNTAX "Usage:\nNET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | NET USER | VIEW ]\n" + + IDS_ACCOUNTS_FORCE_LOGOFF "Force logoff after" + IDS_ACCOUNTS_LOGOFF_SECONDS "%lu seconds" + IDS_ACCOUNTS_MIN_PW_AGE "Minimum password age (in days)" + IDS_ACCOUNTS_MAX_PW_AGE "Maximum password age (in days)" + IDS_ACCOUNTS_MIN_PW_LENGTH "Minimum password length" + IDS_ACCOUNTS_PW_HIST_LENGTH "Password history length" + IDS_ACCOUNTS_LOCKOUT_THRESHOLD "Lockout threshold" + IDS_ACCOUNTS_LOCKOUT_DURATION "Lockout duration (in minutes)" + IDS_ACCOUNTS_LOCKOUT_WINDOW "Lockout observation window (in minutes)" + IDS_ACCOUNTS_COMPUTER_ROLE "Computer role" + IDS_ACCOUNTS_PRIMARY_SERVER "Primary server" + IDS_ACCOUNTS_BACKUP_SERVER "Backup server" + IDS_ACCOUNTS_STANDALONE_SERVER "Standalone server" + IDS_ACCOUNTS_WORKSTATION "Workstation" + + IDS_LOCALGROUP_ALIASES "Aliases for \\\\%s" + IDS_LOCALGROUP_ALIAS_NAME "Alias name" + IDS_LOCALGROUP_COMMENT "Comment" + IDS_LOCALGROUP_MEMBERS "Members" + + IDS_USER_ACCOUNTS "User accounts for \\\\%s" + IDS_USER_NAME "User name" + IDS_USER_FULL_NAME "Full name" + IDS_USER_COMMENT "Comment" + IDS_USER_USER_COMMENT "User comment" + IDS_USER_COUNTRY_CODE "Country code" + IDS_USER_ACCOUNT_ACTIVE "Account active" + IDS_USER_ACCOUNT_EXPIRES "Account expires" + IDS_USER_PW_LAST_SET "Password last set" + IDS_USER_PW_EXPIRES "Password expires" + IDS_USER_PW_CHANGEABLE "Password changeable" + IDS_USER_PW_REQUIRED "Password required" + IDS_USER_CHANGE_PW "User may change password" + IDS_USER_WORKSTATIONS "Workstations allowed" + IDS_USER_LOGON_SCRIPT "Logon script" + IDS_USER_PROFILE "User profile" + IDS_USER_HOME_DIR "Home directory" + IDS_USER_LAST_LOGON "Last logon" + IDS_USER_LOGON_HOURS "Logon hours allowed" + IDS_USER_LOCAL_GROUPS "Local group memberships" + IDS_USER_GLOBAL_GROUPS "Global group memberships" + + IDS_USER_ENTER_PASSWORD1 "Enter a new password for the user: " + IDS_USER_ENTER_PASSWORD2 "Enter the password again: " + IDS_USER_NO_PASSWORD_MATCH "The passwords do not match!" + + IDS_GENERIC_YES "Yes" + IDS_GENERIC_NO "No" + IDS_GENERIC_NEVER "Never" + IDS_GENERIC_NONE "None" + IDS_GENERIC_ALL "All" + IDS_GENERIC_LOCKED "Locked" + + IDS_ERROR_OPTION_NOT_SUPPORTED "The %s option is not supported yet.\n" + IDS_ERROR_INVALID_OPTION_VALUE "You entered an invalid value for the %s option.\n" END diff --git a/base/applications/network/net/lang/es-ES.rc b/base/applications/network/net/lang/es-ES.rc new file mode 100644 index 00000000000..f781994805e --- /dev/null +++ b/base/applications/network/net/lang/es-ES.rc @@ -0,0 +1,126 @@ +/* Spanish Language resource file. + * Translated by: Ismael Ferreras Morezuelas <2014-11-07> */ + +LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_ACCOUNTS_SYNTAX "Uso:\nNET ACCOUNTS [/FORCELOGOFF:{minutos | NO}] [/MINPWLEN:longitud]\n\ + [/MAXPWAGE:{días | UNLIMITED}] [/MINPWAGE:días]\n\ + [/UNIQUEPW:número] [/DOMAIN]\n" + IDS_ACCOUNTS_HELP "ACCOUNTS\n..." + IDS_COMPUTER_SYNTAX "Uso:\nNET COMPUTER ..." + IDS_COMPUTER_HELP "COMPUTER\n..." + IDS_CONFIG_SYNTAX "Uso:\nNET CONFIG ..." + IDS_CONFIG_HELP "CONFIG\n..." + IDS_CONTINUE_SYNTAX "Uso:\nNET CONTINUE " + IDS_CONTINUE_HELP "CONTINUE\n..." + IDS_FILE_SYNTAX "Uso:\nNET FILE ..." + IDS_FILE_HELP "FILE\n..." + IDS_GROUP_SYNTAX "Uso:\nNET GROUP ..." + IDS_GROUP_HELP "GROUP\n..." + IDS_HELPMSG_SYNTAX "Uso:\nNET HELPMSG " + IDS_HELPMSG_HELP "HELPMSG\n..." + IDS_LOCALGROUP_SYNTAX "Uso:\nNET LOCALGROUP [grupo [/COMMENT:""texto""]] [/DOMAIN]\n\ + grupo {/ADD [/COMMENT:""texto""] | /DELETE} [/DOMAIN]\n\ + grupo nombre [...] {/ADD | /DELETE} [/DOMAIN]" + IDS_LOCALGROUP_HELP "LOCALGROUP\n..." + IDS_NAME_SYNTAX "Uso:\nNET NAME ..." + IDS_NAME_HELP "NAME\n..." + IDS_PRINT_SYNTAX "Uso:\nNET PRINT ..." + IDS_PRINT_HELP "PRINT\n..." + IDS_PAUSE_SYNTAX "Uso:\nNET PAUSE " + IDS_PAUSE_HELP "PAUSE\n..." + IDS_SEND_SYNTAX "Uso:\nNET SEND ..." + IDS_SEND_HELP "SEND\n..." + IDS_SESSION_SYNTAX "Uso:\nNET SESSION ..." + IDS_SESSION_HELP "SESSION\n..." + IDS_SHARE_SYNTAX "Uso:\nNET SHARE ..." + IDS_SHARE_HELP "SHARE\n..." + IDS_START_SYNTAX "Uso:\nNET START ..." + IDS_START_HELP "START\n..." + IDS_STATISTICS_SYNTAX "Uso:\nNET STATISTICS ..." + IDS_STATISTICS_HELP "STATISTICS\n..." + IDS_STOP_SYNTAX "Uso:\nNET STOP " + IDS_STOP_HELP "STOP\n..." + IDS_TIME_SYNTAX "Uso:\nNET TIME ..." + IDS_TIME_HELP "TIME\n..." + IDS_USE_SYNTAX "Uso:\nNET USE ..." + IDS_USE_HELP "USE\n..." + IDS_USER_SYNTAX "Uso:\nNET USER [usuario [contraseña | *] [opciones]] [/DOMAIN]\n\ + usuario {contraseña | *} /ADD [opciones] [/DOMAIN]\n\ + usuario [/DELETE] [/DOMAIN]" + IDS_USER_HELP "USER\n..." + IDS_VIEW_SYNTAX "Uso:\nNET VIEW ..." + IDS_VIEW_HELP "VIEW\n..." + IDS_HELP_SYNTAX "Uso:\nNET HELP \n - o -\nNET /HELP\n\n\ + Éstos son los argumentos de línea de comandos disponibles:\n\n\ + NET ACCOUNTS NET HELP NET SHARE\n\ + NET COMPUTER NET HELPMSG NET START\n\ + NET CONFIG NET LOCALGROUP NET STATISTICS\n\ + NET CONFIG SERVER NET NAME NET STOP\n\ + NET CONFIG WORKSTATION NET PAUSE NET TIME\n\ + NET CONTINUE NET PRINT NET USE\n\ + NET FILE NET SEND NET USER\n\ + NET GROUP NET SESSION NET VIEW\n\n\ + ..." + IDS_NET_SYNTAX "Uso:\nNET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ + HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ + SHARE | START | STATISTICS | STOP | TIME | USE | NET USER | VIEW ]\n" + + IDS_ACCOUNTS_FORCE_LOGOFF "Force logoff after" + IDS_ACCOUNTS_LOGOFF_SECONDS "%lu seconds" + IDS_ACCOUNTS_MIN_PW_AGE "Minimum password age (in days)" + IDS_ACCOUNTS_MAX_PW_AGE "Maximum password age (in days)" + IDS_ACCOUNTS_MIN_PW_LENGTH "Minimum password length" + IDS_ACCOUNTS_PW_HIST_LENGTH "Password history length" + IDS_ACCOUNTS_LOCKOUT_THRESHOLD "Lockout threshold" + IDS_ACCOUNTS_LOCKOUT_DURATION "Lockout duration (in minutes)" + IDS_ACCOUNTS_LOCKOUT_WINDOW "Lockout observation window (in minutes)" + IDS_ACCOUNTS_COMPUTER_ROLE "Computer role" + IDS_ACCOUNTS_PRIMARY_SERVER "Primary server" + IDS_ACCOUNTS_BACKUP_SERVER "Backup server" + IDS_ACCOUNTS_STANDALONE_SERVER "Standalone server" + IDS_ACCOUNTS_WORKSTATION "Workstation" + + IDS_LOCALGROUP_ALIASES "Aliases for \\\\%s" + IDS_LOCALGROUP_ALIAS_NAME "Alias name" + IDS_LOCALGROUP_COMMENT "Comment" + IDS_LOCALGROUP_MEMBERS "Members" + + IDS_USER_ACCOUNTS "User accounts for \\\\%s" + IDS_USER_NAME "User name" + IDS_USER_FULL_NAME "Full name" + IDS_USER_COMMENT "Comment" + IDS_USER_USER_COMMENT "User comment" + IDS_USER_COUNTRY_CODE "Country code" + IDS_USER_ACCOUNT_ACTIVE "Account active" + IDS_USER_ACCOUNT_EXPIRES "Account expires" + IDS_USER_PW_LAST_SET "Password last set" + IDS_USER_PW_EXPIRES "Password expires" + IDS_USER_PW_CHANGEABLE "Password changeable" + IDS_USER_PW_REQUIRED "Password required" + IDS_USER_CHANGE_PW "User may change password" + IDS_USER_WORKSTATIONS "Workstations allowed" + IDS_USER_LOGON_SCRIPT "Logon script" + IDS_USER_PROFILE "User profile" + IDS_USER_HOME_DIR "Home directory" + IDS_USER_LAST_LOGON "Last logon" + IDS_USER_LOGON_HOURS "Logon hours allowed" + IDS_USER_LOCAL_GROUPS "Local group memberships" + IDS_USER_GLOBAL_GROUPS "Global group memberships" + + IDS_USER_ENTER_PASSWORD1 "Enter a new password for the user: " + IDS_USER_ENTER_PASSWORD2 "Enter the password again: " + IDS_USER_NO_PASSWORD_MATCH "The passwords do not match!" + + IDS_GENERIC_YES "Yes" + IDS_GENERIC_NO "No" + IDS_GENERIC_NEVER "Never" + IDS_GENERIC_NONE "None" + IDS_GENERIC_ALL "All" + IDS_GENERIC_LOCKED "Locked" + + IDS_ERROR_OPTION_NOT_SUPPORTED "The %s option is not supported yet.\n" + IDS_ERROR_INVALID_OPTION_VALUE "You entered an invalid value for the %s option.\n" +END diff --git a/base/applications/network/net/lang/ro-RO.rc b/base/applications/network/net/lang/ro-RO.rc index 6ed299ca7e1..534baba968c 100644 --- a/base/applications/network/net/lang/ro-RO.rc +++ b/base/applications/network/net/lang/ro-RO.rc @@ -70,4 +70,60 @@ BEGIN IDS_NET_SYNTAX "Utilizare:\nNET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | NET USER | VIEW ]\n" + + IDS_ACCOUNTS_FORCE_LOGOFF "Force logoff after" + IDS_ACCOUNTS_LOGOFF_SECONDS "%lu seconds" + IDS_ACCOUNTS_MIN_PW_AGE "Minimum password age (in days)" + IDS_ACCOUNTS_MAX_PW_AGE "Maximum password age (in days)" + IDS_ACCOUNTS_MIN_PW_LENGTH "Minimum password length" + IDS_ACCOUNTS_PW_HIST_LENGTH "Password history length" + IDS_ACCOUNTS_LOCKOUT_THRESHOLD "Lockout threshold" + IDS_ACCOUNTS_LOCKOUT_DURATION "Lockout duration (in minutes)" + IDS_ACCOUNTS_LOCKOUT_WINDOW "Lockout observation window (in minutes)" + IDS_ACCOUNTS_COMPUTER_ROLE "Computer role" + IDS_ACCOUNTS_PRIMARY_SERVER "Primary server" + IDS_ACCOUNTS_BACKUP_SERVER "Backup server" + IDS_ACCOUNTS_STANDALONE_SERVER "Standalone server" + IDS_ACCOUNTS_WORKSTATION "Workstation" + + IDS_LOCALGROUP_ALIASES "Aliases for \\\\%s" + IDS_LOCALGROUP_ALIAS_NAME "Alias name" + IDS_LOCALGROUP_COMMENT "Comment" + IDS_LOCALGROUP_MEMBERS "Members" + + IDS_USER_ACCOUNTS "User accounts for \\\\%s" + IDS_USER_NAME "User name" + IDS_USER_FULL_NAME "Full name" + IDS_USER_COMMENT "Comment" + IDS_USER_USER_COMMENT "User comment" + IDS_USER_COUNTRY_CODE "Country code" + IDS_USER_ACCOUNT_ACTIVE "Account active" + IDS_USER_ACCOUNT_EXPIRES "Account expires" + IDS_USER_PW_LAST_SET "Password last set" + IDS_USER_PW_EXPIRES "Password expires" + IDS_USER_PW_CHANGEABLE "Password changeable" + IDS_USER_PW_REQUIRED "Password required" + IDS_USER_CHANGE_PW "User may change password" + IDS_USER_WORKSTATIONS "Workstations allowed" + IDS_USER_LOGON_SCRIPT "Logon script" + IDS_USER_PROFILE "User profile" + IDS_USER_HOME_DIR "Home directory" + IDS_USER_LAST_LOGON "Last logon" + IDS_USER_LOGON_HOURS "Logon hours allowed" + IDS_USER_LOCAL_GROUPS "Local group memberships" + IDS_USER_GLOBAL_GROUPS "Global group memberships" + + IDS_USER_ENTER_PASSWORD1 "Enter a new password for the user: " + IDS_USER_ENTER_PASSWORD2 "Enter the password again: " + IDS_USER_NO_PASSWORD_MATCH "The passwords do not match!" + + IDS_GENERIC_YES "Yes" + IDS_GENERIC_NO "No" + IDS_GENERIC_NEVER "Never" + IDS_GENERIC_NONE "None" + IDS_GENERIC_ALL "All" + IDS_GENERIC_LOCKED "Locked" + + IDS_ERROR_OPTION_NOT_SUPPORTED "The %s option is not supported yet.\n" + IDS_ERROR_INVALID_OPTION_VALUE "You entered an invalid value for the %s option.\n" END diff --git a/base/applications/network/net/lang/ru-RU.rc b/base/applications/network/net/lang/ru-RU.rc index 076ae07e51f..f782b4b054a 100644 --- a/base/applications/network/net/lang/ru-RU.rc +++ b/base/applications/network/net/lang/ru-RU.rc @@ -1,17 +1,18 @@ -/* Russian translation by Kudratov Olimjon, 2014.09.25 */ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE BEGIN - IDS_ACCOUNTS_SYNTAX "Использование:\nNET ACCOUNTS [/FORCELOGOFF:{Минуты | NO}] [/MINPWLEN: Длина]\n\ - [/MAXPWAGE:{Дни | UNLIMITED}] [/MINPWAGE:Дни]\n\ - [/UNIQUEPW:Число] [/DOMAIN]\n" + IDS_ACCOUNTS_SYNTAX "Использование:\nNET ACCOUNTS [/FORCELOGOFF:{минуты | NO}] [/MINPWLEN:длина]\n\ + [/MAXPWAGE:{дни | UNLIMITED}] [/MINPWAGE:дни]\n\ + [/UNIQUEPW:число] [/DOMAIN]\n" IDS_ACCOUNTS_HELP "ACCOUNTS\n..." IDS_COMPUTER_SYNTAX "Использование:\nNET COMPUTER ..." IDS_COMPUTER_HELP "COMPUTER\n..." IDS_CONFIG_SYNTAX "Использование:\nNET CONFIG ..." IDS_CONFIG_HELP "CONFIG\n..." - IDS_CONTINUE_SYNTAX "Использование:\nNET CONTINUE <Имя службы>" + IDS_CONTINUE_SYNTAX "Использование:\nNET CONTINUE <имя_службы>" IDS_CONTINUE_HELP "CONTINUE\n..." IDS_FILE_SYNTAX "Использование:\nNET FILE ..." IDS_FILE_HELP "FILE\n..." @@ -19,15 +20,15 @@ BEGIN IDS_GROUP_HELP "GROUP\n..." IDS_HELPMSG_SYNTAX "Использование:\nNET HELPMSG <Код ошибки>" IDS_HELPMSG_HELP "HELPMSG\n..." - IDS_LOCALGROUP_SYNTAX "Использование:\nNET LOCALGROUP [groupname [/COMMENT:""text""]] [/DOMAIN]\n\ - groupname {/ADD [/COMMENT:""text""] | /DELETE} [/DOMAIN]\n\ - groupname name [...] {/ADD | /DELETE} [/DOMAIN]" + IDS_LOCALGROUP_SYNTAX "Использование:\nNET LOCALGROUP [имя_группы [/COMMENT:""текст""]] [/DOMAIN]\n\ + имя_группы {/ADD [/COMMENT:""текст""] | /DELETE} [/DOMAIN]\n\ + имя_группы имя [...] {/ADD | /DELETE} [/DOMAIN]" IDS_LOCALGROUP_HELP "LOCALGROUP\n..." IDS_NAME_SYNTAX "Использование:\nNET NAME ..." IDS_NAME_HELP "NAME\n..." IDS_PRINT_SYNTAX "Использование:\nNET PRINT ..." IDS_PRINT_HELP "PRINT\n..." - IDS_PAUSE_SYNTAX "Использование:\nNET PAUSE <Имя службы>" + IDS_PAUSE_SYNTAX "Использование:\nNET PAUSE <имя_службы>" IDS_PAUSE_HELP "PAUSE\n..." IDS_SEND_SYNTAX "Использование:\nNET SEND ..." IDS_SEND_HELP "SEND\n..." @@ -39,15 +40,15 @@ BEGIN IDS_START_HELP "START\n..." IDS_STATISTICS_SYNTAX "Использование:\nNET STATISTICS ..." IDS_STATISTICS_HELP "STATISTICS\n..." - IDS_STOP_SYNTAX "Использование:\nNET STOP <Имя службы>" + IDS_STOP_SYNTAX "Использование:\nNET STOP <имя_службы>" IDS_STOP_HELP "STOP\n..." IDS_TIME_SYNTAX "Использование:\nNET TIME ..." IDS_TIME_HELP "TIME\n..." IDS_USE_SYNTAX "Использование:\nNET USE ..." IDS_USE_HELP "USE\n..." - IDS_USER_SYNTAX "Использование:\nNET USER [username [password | *] [options]] [/DOMAIN]\n\ - username {password | *} /ADD [options] [/DOMAIN]\n\ - username [/DELETE] [/DOMAIN]" + IDS_USER_SYNTAX "Использование:\nNET USER [имя_пользователя [пароль | *] [параметры]] [/DOMAIN]\n\ + имя_пользователя {пароль | *} /ADD [параметры] [/DOMAIN]\n\ + имя_пользователя [/DELETE] [/DOMAIN]" IDS_USER_HELP "USER\n..." IDS_VIEW_SYNTAX "Использование:\nNET VIEW ..." IDS_VIEW_HELP "VIEW\n..." @@ -65,4 +66,60 @@ BEGIN IDS_NET_SYNTAX "Использование:\nNET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | NET USER | VIEW ]\n" + + IDS_ACCOUNTS_FORCE_LOGOFF "Force logoff after" + IDS_ACCOUNTS_LOGOFF_SECONDS "%lu seconds" + IDS_ACCOUNTS_MIN_PW_AGE "Minimum password age (in days)" + IDS_ACCOUNTS_MAX_PW_AGE "Maximum password age (in days)" + IDS_ACCOUNTS_MIN_PW_LENGTH "Minimum password length" + IDS_ACCOUNTS_PW_HIST_LENGTH "Password history length" + IDS_ACCOUNTS_LOCKOUT_THRESHOLD "Lockout threshold" + IDS_ACCOUNTS_LOCKOUT_DURATION "Lockout duration (in minutes)" + IDS_ACCOUNTS_LOCKOUT_WINDOW "Lockout observation window (in minutes)" + IDS_ACCOUNTS_COMPUTER_ROLE "Computer role" + IDS_ACCOUNTS_PRIMARY_SERVER "Primary server" + IDS_ACCOUNTS_BACKUP_SERVER "Backup server" + IDS_ACCOUNTS_STANDALONE_SERVER "Standalone server" + IDS_ACCOUNTS_WORKSTATION "Workstation" + + IDS_LOCALGROUP_ALIASES "Aliases for \\\\%s" + IDS_LOCALGROUP_ALIAS_NAME "Alias name" + IDS_LOCALGROUP_COMMENT "Comment" + IDS_LOCALGROUP_MEMBERS "Members" + + IDS_USER_ACCOUNTS "User accounts for \\\\%s" + IDS_USER_NAME "User name" + IDS_USER_FULL_NAME "Full name" + IDS_USER_COMMENT "Comment" + IDS_USER_USER_COMMENT "User comment" + IDS_USER_COUNTRY_CODE "Country code" + IDS_USER_ACCOUNT_ACTIVE "Account active" + IDS_USER_ACCOUNT_EXPIRES "Account expires" + IDS_USER_PW_LAST_SET "Password last set" + IDS_USER_PW_EXPIRES "Password expires" + IDS_USER_PW_CHANGEABLE "Password changeable" + IDS_USER_PW_REQUIRED "Password required" + IDS_USER_CHANGE_PW "User may change password" + IDS_USER_WORKSTATIONS "Workstations allowed" + IDS_USER_LOGON_SCRIPT "Logon script" + IDS_USER_PROFILE "User profile" + IDS_USER_HOME_DIR "Home directory" + IDS_USER_LAST_LOGON "Last logon" + IDS_USER_LOGON_HOURS "Logon hours allowed" + IDS_USER_LOCAL_GROUPS "Local group memberships" + IDS_USER_GLOBAL_GROUPS "Global group memberships" + + IDS_USER_ENTER_PASSWORD1 "Enter a new password for the user: " + IDS_USER_ENTER_PASSWORD2 "Enter the password again: " + IDS_USER_NO_PASSWORD_MATCH "The passwords do not match!" + + IDS_GENERIC_YES "Yes" + IDS_GENERIC_NO "No" + IDS_GENERIC_NEVER "Never" + IDS_GENERIC_NONE "None" + IDS_GENERIC_ALL "All" + IDS_GENERIC_LOCKED "Locked" + + IDS_ERROR_OPTION_NOT_SUPPORTED "The %s option is not supported yet.\n" + IDS_ERROR_INVALID_OPTION_VALUE "You entered an invalid value for the %s option.\n" END diff --git a/base/applications/network/net/main.c b/base/applications/network/net/main.c index 1b489cc493c..20614654972 100644 --- a/base/applications/network/net/main.c +++ b/base/applications/network/net/main.c @@ -64,6 +64,26 @@ PrintResourceString( } +VOID +PrintPaddedResourceString( + INT resID, + INT nPaddedLength) +{ + WCHAR szMsgBuffer[MAX_BUFFER_SIZE]; + INT nLength, i; + + nLength = LoadStringW(GetModuleHandle(NULL), resID, szMsgBuffer, MAX_BUFFER_SIZE); + if (nLength < nPaddedLength) + { + for (i = nLength; i < nPaddedLength; i++) + szMsgBuffer[i] = L' '; + szMsgBuffer[nPaddedLength] = UNICODE_NULL; + } + + WriteToConsole(szMsgBuffer); +} + + VOID PrintToConsole( LPWSTR lpFormat, @@ -118,6 +138,43 @@ WriteToConsole( } +VOID +ReadFromConsole( + LPWSTR lpInput, + DWORD dwLength, + BOOL bEcho) +{ + DWORD dwOldMode; + DWORD dwRead = 0; + HANDLE hFile; + LPWSTR p; + PCHAR pBuf; + + pBuf = HeapAlloc(GetProcessHeap(), 0, dwLength - 1); + ZeroMemory(lpInput, dwLength * sizeof(WCHAR)); + hFile = GetStdHandle(STD_INPUT_HANDLE); + GetConsoleMode(hFile, &dwOldMode); + + SetConsoleMode(hFile, ENABLE_LINE_INPUT | (bEcho ? ENABLE_ECHO_INPUT : 0)); + + ReadFile(hFile, (PVOID)pBuf, dwLength - 1, &dwRead, NULL); + + MultiByteToWideChar(CP_OEMCP, 0, pBuf, dwRead, lpInput, dwLength - 1); + HeapFree(GetProcessHeap(), 0, pBuf); + + for (p = lpInput; *p; p++) + { + if (*p == L'\x0d') + { + *p = L'\0'; + break; + } + } + + SetConsoleMode(hFile, dwOldMode); +} + + int wmain(int argc, WCHAR **argv) { PCOMMAND cmdptr; diff --git a/base/applications/network/net/net.h b/base/applications/network/net/net.h index 7f1d05924a3..6e7993578a8 100644 --- a/base/applications/network/net/net.h +++ b/base/applications/network/net/net.h @@ -30,6 +30,11 @@ PrintResourceString( INT resID, ...); +VOID +PrintPaddedResourceString( + INT resID, + INT nPaddedLength); + VOID PrintToConsole( LPWSTR lpFormat, @@ -39,6 +44,12 @@ VOID WriteToConsole( LPWSTR lpString); +VOID +ReadFromConsole( + LPWSTR lpInput, + DWORD dwLength, + BOOL bEcho); + VOID help(VOID); INT unimplemented(INT argc, WCHAR **argv); diff --git a/base/applications/network/net/net.rc b/base/applications/network/net/net.rc index b0fbd6f494b..64716423568 100644 --- a/base/applications/network/net/net.rc +++ b/base/applications/network/net/net.rc @@ -15,6 +15,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif +#ifdef LANGUAGE_ES_ES + #include "lang/es-ES.rc" +#endif #ifdef LANGUAGE_RO_RO #include "lang/ro-RO.rc" #endif diff --git a/base/applications/network/net/resource.h b/base/applications/network/net/resource.h index f13e3e1d881..daedcefb289 100644 --- a/base/applications/network/net/resource.h +++ b/base/applications/network/net/resource.h @@ -44,3 +44,59 @@ #define IDS_VIEW_HELP 141 #define IDS_HELP_SYNTAX 142 #define IDS_NET_SYNTAX 143 + +#define IDS_ACCOUNTS_FORCE_LOGOFF 200 +#define IDS_ACCOUNTS_LOGOFF_SECONDS 201 +#define IDS_ACCOUNTS_MIN_PW_AGE 202 +#define IDS_ACCOUNTS_MAX_PW_AGE 203 +#define IDS_ACCOUNTS_MIN_PW_LENGTH 204 +#define IDS_ACCOUNTS_PW_HIST_LENGTH 205 +#define IDS_ACCOUNTS_LOCKOUT_THRESHOLD 206 +#define IDS_ACCOUNTS_LOCKOUT_DURATION 207 +#define IDS_ACCOUNTS_LOCKOUT_WINDOW 208 +#define IDS_ACCOUNTS_COMPUTER_ROLE 209 +#define IDS_ACCOUNTS_PRIMARY_SERVER 210 +#define IDS_ACCOUNTS_BACKUP_SERVER 211 +#define IDS_ACCOUNTS_STANDALONE_SERVER 212 +#define IDS_ACCOUNTS_WORKSTATION 213 + +#define IDS_LOCALGROUP_ALIASES 300 +#define IDS_LOCALGROUP_ALIAS_NAME 301 +#define IDS_LOCALGROUP_COMMENT 302 +#define IDS_LOCALGROUP_MEMBERS 303 + +#define IDS_USER_ACCOUNTS 449 +#define IDS_USER_NAME 450 +#define IDS_USER_FULL_NAME 451 +#define IDS_USER_COMMENT 452 +#define IDS_USER_USER_COMMENT 453 +#define IDS_USER_COUNTRY_CODE 454 +#define IDS_USER_ACCOUNT_ACTIVE 455 +#define IDS_USER_ACCOUNT_EXPIRES 456 +#define IDS_USER_PW_LAST_SET 457 +#define IDS_USER_PW_EXPIRES 458 +#define IDS_USER_PW_CHANGEABLE 459 +#define IDS_USER_PW_REQUIRED 460 +#define IDS_USER_CHANGE_PW 461 +#define IDS_USER_WORKSTATIONS 462 +#define IDS_USER_LOGON_SCRIPT 463 +#define IDS_USER_PROFILE 464 +#define IDS_USER_HOME_DIR 465 +#define IDS_USER_LAST_LOGON 466 +#define IDS_USER_LOGON_HOURS 467 +#define IDS_USER_LOCAL_GROUPS 468 +#define IDS_USER_GLOBAL_GROUPS 469 + +#define IDS_USER_ENTER_PASSWORD1 490 +#define IDS_USER_ENTER_PASSWORD2 491 +#define IDS_USER_NO_PASSWORD_MATCH 492 + +#define IDS_GENERIC_YES 500 +#define IDS_GENERIC_NO 501 +#define IDS_GENERIC_NEVER 502 +#define IDS_GENERIC_NONE 503 +#define IDS_GENERIC_ALL 504 +#define IDS_GENERIC_LOCKED 505 + +#define IDS_ERROR_OPTION_NOT_SUPPORTED 600 +#define IDS_ERROR_INVALID_OPTION_VALUE 601 diff --git a/base/applications/network/ping/lang/es-ES.rc b/base/applications/network/ping/lang/es-ES.rc new file mode 100644 index 00000000000..bfbf6cc0cd5 --- /dev/null +++ b/base/applications/network/ping/lang/es-ES.rc @@ -0,0 +1,38 @@ +/* Spanish Language resource file. + * Translated by: Ismael Ferreras Morezuelas <2014-11-07> */ + +LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_USAGE "\nUso: ping [-t] [-n cuenta] [-l tamaño] [-w tiempo_de_espera] nombre_de_destino\n\n\ +Opciones:\n\ + -t Hacer ping al host especificado hasta que se detenga;\n\ + para detener, presione Ctrl+C.\n\ + -n cuenta Número de solicitudes de eco a enviar.\n\ + -l tamaño Tamaño de búfer a enviar.\n\ + -w t_espera Tiempo de espera en milisegundos para cada respuesta.\n\n\0" + + IDS_PING_WITH_BYTES "\nHaciendo ping a %1 [%2] con %3!d! bytes de datos:\n\n\0" + IDS_PING_STATISTICS "\nEstadísticas de ping para %1:\n\0" + IDS_PACKETS_SENT_RECEIVED_LOST " Paquetes: enviados = %1!d!, recibidos = %2!d!, perdidos = %3!d! (%4!d!%% perdidos),\n\0" + IDS_APPROXIMATE_ROUND_TRIP "Tiempos aproximados de ida y vuelta en milisegundos:\n\0" + IDS_MIN_MAX_AVERAGE " Mínimo = %1, Máximo = %2, Media = %3\n\0" + IDS_NOT_ENOUGH_RESOURCES "No hay suficientes recursos libres disponibles.\n\0" + IDS_UNKNOWN_HOST "No se pudo encontrar el host %1.\n\0" + IDS_SETSOCKOPT_FAILED "setsockopt ha fallado (%1!d!).\n\0" + IDS_COULD_NOT_CREATE_SOCKET "No se pudo iniciar el socket (#%1!d!).\n\0" + IDS_COULD_NOT_INIT_WINSOCK "No se pudo iniciar winsock dll.\n\0" + IDS_DEST_MUST_BE_SPECIFIED "Debe especificar el nombre o dirección IP del destino.\n\0" + IDS_BAD_PARAMETER "El parámetro %1 no es válido.\n\0" + IDS_BAD_OPTION_FORMAT "El formato de opción %1 no es válido.\n\0" + IDS_BAD_OPTION "La opción %1 no es válida.\n\0" + IDS_BAD_VALUE_OPTION_L "El valor para la opción -l no es válido, debe de estar entre 0 y %1!d!.\n\0" + IDS_REPLY_FROM "Respuesta desde %1: bytes=%2!d! tiempo%3%4 TTL=%5!d!\n\0" + IDS_DEST_UNREACHABLE "Host de destino inaccesible.\n\0" + IDS_COULD_NOT_TRANSMIT "No se ha podido transmitir ningún dato (%1!d!).\n\0" + IDS_COULD_NOT_RECV "No se ha podido recibir ningún dato (%1!d!).\n\0" + IDS_REQUEST_TIMEOUT "La petición ha caducado.\n\0" + IDS_MS "ms\0" + IDS_1MS "1ms\0" +END diff --git a/base/applications/network/ping/ping.rc b/base/applications/network/ping/ping.rc index 6f3a9353cc9..e9a4c645d31 100644 --- a/base/applications/network/ping/ping.rc +++ b/base/applications/network/ping/ping.rc @@ -23,6 +23,9 @@ #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif +#ifdef LANGUAGE_ES_ES + #include "lang/es-ES.rc" +#endif #ifdef LANGUAGE_FR_FR #include "lang/fr-FR.rc" #endif diff --git a/base/applications/network/wlanconf/lang/es-ES.rc b/base/applications/network/wlanconf/lang/es-ES.rc new file mode 100644 index 00000000000..cc44c97cfd8 --- /dev/null +++ b/base/applications/network/wlanconf/lang/es-ES.rc @@ -0,0 +1,40 @@ +/* Spanish Language resource file. + * Translated by: Ismael Ferreras Morezuelas <2014-11-07> */ + +LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_USAGE "\nConfigura un adaptador inalámbrico.\n\n\ +WLANCONF [-c SSID [-w WEP] [-a]] [-d] [-s]\n\n\ +\t-c SSID\t\tConectarse al SSID especificado,\n\ +\t-w WEP\t\tEspecifica una clave WEP con la que conectarse.\n\ +\t-a\t\tEspecifica que la red a conectarse es de punto a punto (ad-hoc)\n\ +\t-d\t\tDesconectarse de la red inalámbrica actual.\n\ +\t-s\t\tBusca y muestra una lista con las redes inalámbricas disponibles\n\ +\t\t\tin range.\n\n\ +Si no se pasa ningún parámetro se mostrará información sobre la conexión inalámbrica actual\n" + IDS_NO_NETWORK "No se han encontrado redes disponibles en las cercanías\n" + IDS_NO_WLAN_ADAPTER "No se ha encontrado ningún adaptador inalámbrico en el equipo\n" + IDS_SUCCESS "La operación se ha completado correctamente.\n" + IDS_WLAN_DISCONNECT "\nAdaptador inalámbrico desconectado\n" + IDS_MSG_WEP_ENABLED "WEP activado: %s\n" + IDS_MSG_NETWORK_MODE "Modo de red: %s\n" + IDS_MSG_CURRENT_WIRELESS "\nInformación de la configuración inalámbrica actual:\n\n" + IDS_MSG_ENCRYPTED "Cifrado: %s\n" + IDS_MSG_NETWORK_TYPE "Tipo de red: %s\n" + IDS_MSG_RSSI "RSSI: %i dBm\n" + IDS_MSG_SUPPORT_RATE "Tasas de transferencia soportadas (Mbps): " + IDS_MSG_TRANSMISSION_POWER "Potencia de transmisión: %d mW\n" + IDS_MSG_ANTENNA_COUNT "Número de antenas: %d\n" + IDS_MSG_TRANSMIT_ANTENNA "Antena de transmisión: %d\n" + IDS_MSG_TRANSMIT_ANTENNA_ANY "Antena de transmisión: Cualquiera\n" + IDS_MSG_RECEIVE_ANTENNA "Antena de recepción: %d\n" + IDS_MSG_RECEIVE_ANTENNA_ANY "Antena de recepción: Cualquiera\n" + IDS_MSG_FRAGMENT_THRESHOLD "Nivel de fragmentación: %d bytes\n" + IDS_MSG_RTS_THRESHOLD "Nivel RTS: %d bytes\n" + IDS_YES "Sí" + IDS_NO "No" + IDS_ADHOC "Punto a punto (Adhoc)" + IDS_INFRASTRUCTURE "Infrastructura" +END diff --git a/base/applications/network/wlanconf/wlanconf.rc b/base/applications/network/wlanconf/wlanconf.rc index 6237061686c..a8445e3e7a0 100644 --- a/base/applications/network/wlanconf/wlanconf.rc +++ b/base/applications/network/wlanconf/wlanconf.rc @@ -19,6 +19,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif +#ifdef LANGUAGE_ES_ES + #include "lang/es-ES.rc" +#endif #ifdef LANGUAGE_CS_CZ #include "lang/cs-CZ.rc" #endif diff --git a/base/applications/notepad/lang/es-ES.rc b/base/applications/notepad/lang/es-ES.rc index 0d142fe9571..42af72e0e0c 100644 --- a/base/applications/notepad/lang/es-ES.rc +++ b/base/applications/notepad/lang/es-ES.rc @@ -29,7 +29,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "Configurar &página...", CMD_PAGE_SETUP MENUITEM "&Imprimir\tCtrl+P", CMD_PRINT - MENUITEM "Configuración &impresora...", CMD_PRINTER_SETUP + MENUITEM "A&justes de impresión...", CMD_PRINTER_SETUP MENUITEM SEPARATOR MENUITEM "&Salir", CMD_EXIT END @@ -132,7 +132,7 @@ END STRINGTABLE BEGIN - STRING_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." + STRING_LICENSE "Este programa es software libre; puedes redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License tal y como fueron publicados por la Free Software Foundation; ya sea la versión 2 de la Licencia, o (bajo tu discreción) cualquier versión posterior.\r\n\r\nEste programa se distribuye con el fin de ser útil, pero viene SIN NINGUNA GARANTÍA; sin tan siquiera la garantía implícita de COMERCIALIZACIÓN o la de IDONEIDAD PARA UN PROPÓSITO CONCRETO. Para más información lee la GNU General Public License.\r\n\r\nDeberías de haber recibido una copia de la GNU General Public License con el programa; si no, puedes escribir a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE.UU." END STRINGTABLE diff --git a/base/applications/notepad/lang/ru-RU.rc b/base/applications/notepad/lang/ru-RU.rc index 00056dae74d..29e745baab9 100644 --- a/base/applications/notepad/lang/ru-RU.rc +++ b/base/applications/notepad/lang/ru-RU.rc @@ -103,7 +103,7 @@ BEGIN COMBOBOX ID_ENCODING, 54, 0, 156, 80, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP LTEXT "Кодировка:", 0x155, 5, 2, 41, 12 COMBOBOX ID_EOLN, 54, 18, 156, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Вариант:", 0x156, 5, 20, 41, 12 + LTEXT "Конец строки:", 0x156, 5, 20, 50, 12 END /* Dialog 'Go To' */ @@ -113,7 +113,7 @@ FONT 8, "MS Shell Dlg" CAPTION "Перейти к строке" BEGIN EDITTEXT ID_LINENUMBER, 54, 10, 106, 12, WS_CHILD | WS_BORDER | WS_TABSTOP - LTEXT "Номер строки:", 0x155, 5, 12, 41, 12, WS_CHILD | WS_TABSTOP | ES_NUMBER + LTEXT "Номер строки:", 0x155, 5, 12, 49, 12, WS_CHILD | WS_TABSTOP | ES_NUMBER DEFPUSHBUTTON "OK", IDOK, 75, 30, 40, 15, WS_CHILD | WS_TABSTOP PUSHBUTTON "Отмена", IDCANCEL, 120, 30, 40, 15, WS_CHILD | WS_TABSTOP END @@ -150,24 +150,24 @@ BEGIN STRING_UNTITLED "Без заголовка" STRING_ALL_FILES "Все файлы (*.*)" STRING_TEXT_FILES_TXT "Текстовые файлы (*.txt)" - STRING_TOOLARGE "Файл '%s' слишком большой для блокнота.\n \ -Используйте другой редактор." - STRING_NOTEXT "Вы не ввели никакого текста. \ -\nВведите что-нибудь и попробуйте еще." - STRING_DOESNOTEXIST "Файл '%s'\nне существует\n\n \ + STRING_TOOLARGE "Файл '%s' слишком велик.\n\ +Воспользуйтесь другим текстовым редактором." + STRING_NOTEXT "Вы не ввели текст.\n\ +Введите что-нибудь и попробуйте еще." + STRING_DOESNOTEXIST "Файл '%s'\nне существует\n\n\ Хотите создать новый файл?" - STRING_NOTSAVED "Файл '%s'\nбыл изменен\n\n \ + STRING_NOTSAVED "Файл '%s'\nбыл изменен\n\n\ Хотите сохранить изменения?" STRING_NOTFOUND "'%s' не найден." STRING_OUT_OF_MEMORY "Недостаточно памяти для завершения этой операции. \ \nЗакройте одно или несколько приложений и повторите попытку." STRING_CANNOTFIND "Невозможно найти '%s'" STRING_ANSI "ANSI" - STRING_UNICODE "Юникод" - STRING_UNICODE_BE "Юникод (big endian)" + STRING_UNICODE "Unicode" + STRING_UNICODE_BE "Unicode (big endian)" STRING_UTF8 "UTF-8" STRING_CRLF "Windows (CR + LF)" STRING_LF "Unix (LF)" - STRING_CR "Макинтош (CR)" + STRING_CR "Macintosh (CR)" STRING_LINE_COLUMN "Строка %d, столбец %d" END diff --git a/base/applications/rapps/lang/es-ES.rc b/base/applications/rapps/lang/es-ES.rc index 8dcab10cbd6..622fef74e3e 100644 --- a/base/applications/rapps/lang/es-ES.rc +++ b/base/applications/rapps/lang/es-ES.rc @@ -1,3 +1,6 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL IDR_MAINMENU MENU @@ -14,11 +17,11 @@ BEGIN MENUITEM "&Desinstalar", ID_UNINSTALL MENUITEM "&Modificar", ID_MODIFY MENUITEM SEPARATOR - MENUITEM "&Eliminar del registro", ID_REGREMOVE + MENUITEM "&Eliminar del Registro", ID_REGREMOVE MENUITEM SEPARATOR - MENUITEM "&Refrescar", ID_REFRESH + MENUITEM "&Recargar", ID_REFRESH MENUITEM SEPARATOR - MENUITEM "Update Da&tabase", ID_RESETDB + MENUITEM "&Actualizar el listado desde Internet", ID_RESETDB END POPUP "Ayuda" BEGIN @@ -44,11 +47,11 @@ BEGIN MENUITEM "&Desinstalar", ID_UNINSTALL MENUITEM "&Modificar", ID_MODIFY MENUITEM SEPARATOR - MENUITEM "&Eliminar del registro", ID_REGREMOVE + MENUITEM "&Eliminar del Registro", ID_REGREMOVE MENUITEM SEPARATOR - MENUITEM "&Refrescar", ID_REFRESH + MENUITEM "&Recargar", ID_REFRESH MENUITEM SEPARATOR - MENUITEM "Update Da&tabase", ID_RESETDB + MENUITEM "&Actualizar listado desde Internet", ID_RESETDB END END @@ -61,7 +64,7 @@ BEGIN AUTOCHECKBOX "&Guardar posición de la ventana", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12 AUTOCHECKBOX "&Actualizar la lista de programas accesibles al comenzar", IDC_UPDATE_AVLIST, 15, 29, 222, 12 AUTOCHECKBOX "&Registro de programas instalados y desinstalados", IDC_LOG_ENABLED, 15, 46, 219, 12 - GROUPBOX "Descargando ", -1, 4, 65, 240, 51 + GROUPBOX "Descargas", -1, 4, 65, 240, 51 LTEXT "Carpeta de descargas:", -1, 16, 75, 100, 9 EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL PUSHBUTTON "&Seleccionar", IDC_CHOOSE, 187, 85, 50, 14 @@ -80,12 +83,12 @@ BEGIN 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 - PUSHBUTTON "Cancelas", IDCANCEL, 150, 78, 60, 14 + PUSHBUTTON "Cancelar", IDCANCEL, 150, 78, 60, 14 END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 76 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Descargar..." +CAPTION "Descargando..." FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -98,7 +101,7 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME CAPTION "Acerca de" 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 + 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 END @@ -109,7 +112,7 @@ BEGIN IDS_TOOLTIP_UNINSTALL "Desinstalar" IDS_TOOLTIP_MODIFY "Modificar" IDS_TOOLTIP_SETTINGS "Ajustes" - IDS_TOOLTIP_REFRESH "Refrescar" + IDS_TOOLTIP_REFRESH "Recargar" IDS_TOOLTIP_EXIT "Salir" END @@ -127,18 +130,18 @@ BEGIN IDS_INFO_PUBLISHER "\nAutor: " IDS_INFO_HELPLINK "\nEnlace de ayuda: " IDS_INFO_HELPPHONE "\nTeléfono de ayuda: " - IDS_INFO_README "\nLeeme: " - IDS_INFO_REGOWNER "\nUsuario registrador: " + IDS_INFO_README "\nLéeme: " + IDS_INFO_REGOWNER "\nUsuario registrado: " IDS_INFO_PRODUCTID "\nID Producto: " IDS_INFO_CONTACT "\nContacto: " IDS_INFO_UPDATEINFO "\nInformación actualización: " - IDS_INFO_INFOABOUT "\nInformación Acerca de: " + IDS_INFO_INFOABOUT "\nInformación sobre el programa: " IDS_INFO_COMMENTS "\nComentarios: " - IDS_INFO_INSTLOCATION "\nLocalización de instalación: " + IDS_INFO_INSTLOCATION "\nCarpeta de instalación: " IDS_INFO_INSTALLSRC "\nOrigen de instalación: " IDS_INFO_UNINSTALLSTR "\nComando de desinstalación: " - IDS_INFO_MODIFYPATH "\nRuta modificada: " - IDS_INFO_INSTALLDATE "\nFecha instalación: " + IDS_INFO_MODIFYPATH "\nRuta de modificación: " + IDS_INFO_INSTALLDATE "\nFecha de instalación: " END STRINGTABLE @@ -154,39 +157,39 @@ STRINGTABLE BEGIN IDS_CAT_AUDIO "Audio" IDS_CAT_DEVEL "Desarrollo" - IDS_CAT_DRIVERS "Drivers" + IDS_CAT_DRIVERS "Controladores" IDS_CAT_EDU "Educación" IDS_CAT_ENGINEER "Ingeniería" IDS_CAT_FINANCE "Finanzas" - IDS_CAT_GAMES "Juegos y Entretenimiento" + IDS_CAT_GAMES "Juegos y entretenimiento" IDS_CAT_GRAPHICS "Gráficos" - IDS_CAT_INTERNET "Internet & Redes" - IDS_CAT_LIBS "Librerias" + IDS_CAT_INTERNET "Internet y redes" + IDS_CAT_LIBS "Bibliotecas" IDS_CAT_OFFICE "Oficina" IDS_CAT_OTHER "Otros" IDS_CAT_SCIENCE "Ciencia" IDS_CAT_TOOLS "Herramientas" - IDS_CAT_VIDEO "Video" + IDS_CAT_VIDEO "Vídeo" END STRINGTABLE BEGIN - IDS_APPTITLE "ReactOS Applications Manager" + IDS_APPTITLE "Administrador de aplicaciones de ReactOS" IDS_SEARCH_TEXT "Buscar..." IDS_INSTALL "Instalar" IDS_UNINSTALL "Desinstalar" IDS_MODIFY "Modificar" - IDS_APPS_COUNT "Cantidad de aplicaciones: %d" - IDS_WELCOME_TITLE "Bienvenido a ReactOS Applications Manager!\n\n" - IDS_WELCOME_TEXT "Seleccione una categoría a la izquierda, posteriormente seleccione la aplicación a instalar o desinstalar.\nReactOS Web: " + IDS_APPS_COUNT "Número de aplicaciones: %d" + IDS_WELCOME_TITLE "Bienvenido al Administrador de aplicaciones de ReactOS.\n\n" + IDS_WELCOME_TEXT "Seleccione una categoría a la izquierda, para más tarde seleccionar la aplicación a instalar o desinstalar.\nWeb de ReactOS: " IDS_WELCOME_URL "http://www.reactos.org" IDS_INSTALLED "Instaladas" - IDS_AVAILABLEFORINST "Disponible para instalación" + IDS_AVAILABLEFORINST "Disponible para su instalación" IDS_UPDATES "Actualizaciones" IDS_APPLICATIONS "Aplicaciones" IDS_CHOOSE_FOLDER_TEXT "Seleccione una carpeta donde se descargarán los programas:" IDS_CHOOSE_FOLDER_ERROR "¡La carpeta especificada no existe!" - IDS_APP_REG_REMOVE "¿Esta seguro que quiere borrar los datos del programa instalado del registro?" + IDS_APP_REG_REMOVE "¿Está seguro de querer borrar del Registro los datos de instalación del programa?" IDS_INFORMATION "Información" - IDS_UNABLE_TO_REMOVE "!Imposible eliminar los datos del programa del registro!" + IDS_UNABLE_TO_REMOVE "¡No se pudieron borrar del Registro los datos de instalación del programa!" END diff --git a/base/applications/rapps/rapps/7zip.txt b/base/applications/rapps/rapps/7zip.txt index 859768f4c8d..9c630485ca6 100644 --- a/base/applications/rapps/rapps/7zip.txt +++ b/base/applications/rapps/rapps/7zip.txt @@ -35,6 +35,9 @@ Description = Narzędzie do tworzenia i otwierania plików typu 7zip, zip, tar, Description = Un utilitar de arhivare a fișierelor, compatibil cu 7zip, zip, tar, rar și multe alte formate de arhive. Size = 1,14 Mo +[Section.0419] +Description = Утилита для создания и открытия 7zip, zip, tar, rar и других архивных файлов. + [Section.041f] Description = 7zip, zip, tar, rar ve başka birçok belgelik biçimi destekli bir kütük belgelikleme aracı. Size = 1,14 MB diff --git a/base/applications/regedit/framewnd.c b/base/applications/regedit/framewnd.c index 38186736b1e..8f7d4882bde 100644 --- a/base/applications/regedit/framewnd.c +++ b/base/applications/regedit/framewnd.c @@ -587,7 +587,7 @@ BOOL ExportRegistryFile(HWND hWnd) { BOOL bRet = FALSE; OPENFILENAME ofn; - WCHAR ExportKeyPath[_MAX_PATH]; + WCHAR ExportKeyPath[_MAX_PATH] = {0}; WCHAR Caption[128], szTitle[512], szText[512]; HKEY hKeyRoot; LPCWSTR pszKeyPath; diff --git a/base/applications/regedit/lang/es-ES.rc b/base/applications/regedit/lang/es-ES.rc index 6e473230e39..8de2b2d6f21 100644 --- a/base/applications/regedit/lang/es-ES.rc +++ b/base/applications/regedit/lang/es-ES.rc @@ -1,3 +1,6 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL ID_ACCEL ACCELERATORS @@ -18,7 +21,7 @@ BEGIN BEGIN MENUITEM "&Salir", ID_REGISTRY_EXIT END - POPUP "A&yuda" + POPUP "Ay&uda" BEGIN MENUITEM "&Acerca de...", ID_HELP_ABOUT END @@ -28,11 +31,11 @@ IDR_REGEDIT_MENU MENU BEGIN POPUP "&Registro" BEGIN - MENUITEM "&Importar archivo de registro...", ID_REGISTRY_IMPORTREGISTRYFILE - MENUITEM "&Exportar archivo de registro...", ID_REGISTRY_EXPORTREGISTRYFILE + MENUITEM "&Importar archivo...", ID_REGISTRY_IMPORTREGISTRYFILE + MENUITEM "&Exportar archivo...", ID_REGISTRY_EXPORTREGISTRYFILE MENUITEM SEPARATOR - MENUITEM "Cargar archivo de registro...", ID_REGISTRY_LOADHIVE, GRAYED - MENUITEM "Descargar archivo de registro...", ID_REGISTRY_UNLOADHIVE, GRAYED + MENUITEM "Cargar subárbol...", ID_REGISTRY_LOADHIVE, GRAYED + MENUITEM "Descargar subárbol...", ID_REGISTRY_UNLOADHIVE, GRAYED MENUITEM SEPARATOR MENUITEM "&Conectar al Registro de red...", ID_REGISTRY_CONNECTNETWORKREGISTRY MENUITEM "&Desconectar del Registro de red...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED @@ -41,7 +44,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "S&alir", ID_REGISTRY_EXIT END - POPUP "&Editar" + POPUP "&Edición" BEGIN MENUITEM "&Modificar", ID_EDIT_MODIFY MENUITEM SEPARATOR @@ -52,16 +55,16 @@ BEGIN MENUITEM "Valor de c&adena", ID_EDIT_NEW_STRINGVALUE MENUITEM "Valor &binario", ID_EDIT_NEW_BINARYVALUE MENUITEM "Valor &DWORD", ID_EDIT_NEW_DWORDVALUE - MENUITEM "&Valor de varias lineas", ID_EDIT_NEW_MULTISTRINGVALUE - MENUITEM "&Valor de una linea expandibles", ID_EDIT_NEW_EXPANDABLESTRINGVALUE + MENUITEM "Valor de cadena &múltiple", ID_EDIT_NEW_MULTISTRINGVALUE + MENUITEM "Valor de cadena e&xpandible", ID_EDIT_NEW_EXPANDABLESTRINGVALUE END MENUITEM SEPARATOR MENUITEM "&Permisos...", ID_EDIT_PERMISSIONS MENUITEM SEPARATOR - MENUITEM "&Eliminar\tDel", ID_EDIT_DELETE + MENUITEM "&Eliminar\tSupr", ID_EDIT_DELETE MENUITEM "&Renombrar", ID_EDIT_RENAME MENUITEM SEPARATOR - MENUITEM "&Copiar valor de la clave", ID_EDIT_COPYKEYNAME + MENUITEM "&Copiar nombre de clave", ID_EDIT_COPYKEYNAME MENUITEM SEPARATOR MENUITEM "&Buscar\tCtrl+F", ID_EDIT_FIND MENUITEM "Buscar &siguiente\tF3", ID_EDIT_FINDNEXT @@ -76,14 +79,14 @@ BEGIN END POPUP "&Favoritos" BEGIN - MENUITEM "&Añadir a Favoritos", ID_FAVOURITES_ADDTOFAVOURITES, GRAYED - MENUITEM "&Eliminar Favorito", ID_FAVOURITES_REMOVEFAVOURITE, GRAYED + MENUITEM "&Añadir a favoritos", ID_FAVOURITES_ADDTOFAVOURITES, GRAYED + MENUITEM "&Quitar favorito", ID_FAVOURITES_REMOVEFAVOURITE, GRAYED END - POPUP "&Ayuda" + POPUP "Ay&uda" BEGIN MENUITEM "Temas de Ayuda", ID_HELP_HELPTOPICS MENUITEM SEPARATOR - MENUITEM "&Acerca de Editor de registro", ID_HELP_ABOUT + MENUITEM "&Acerca de Editor del Registro", ID_HELP_ABOUT END END @@ -92,9 +95,9 @@ BEGIN POPUP "" BEGIN MENUITEM "&Modificar", ID_EDIT_MODIFY - MENUITEM "Modificar Dato Binario", ID_EDIT_MODIFY_BIN + MENUITEM "Modificar dato binario", ID_EDIT_MODIFY_BIN MENUITEM SEPARATOR - MENUITEM "&Borrar\tDel", ID_EDIT_DELETE + MENUITEM "&Eliminar\tSupr", ID_EDIT_DELETE MENUITEM "&Renombrar", ID_EDIT_RENAME END POPUP "" @@ -103,29 +106,29 @@ BEGIN BEGIN MENUITEM "&Clave", ID_EDIT_NEW_KEY MENUITEM SEPARATOR - MENUITEM "Valor &Alfanumérico", ID_EDIT_NEW_STRINGVALUE - MENUITEM "Valor &Binario", ID_EDIT_NEW_BINARYVALUE + MENUITEM "Valor de &cadena", ID_EDIT_NEW_STRINGVALUE + MENUITEM "Valor &binario", ID_EDIT_NEW_BINARYVALUE MENUITEM "Valor &DWORD", ID_EDIT_NEW_DWORDVALUE - MENUITEM "Valor de cadena-&múltiple", ID_EDIT_NEW_MULTISTRINGVALUE + MENUITEM "Valor de cadena &múltiple", ID_EDIT_NEW_MULTISTRINGVALUE MENUITEM "Valor de cadena e&xpandible", ID_EDIT_NEW_EXPANDABLESTRINGVALUE END END POPUP "" BEGIN - MENUITEM "Expandir/Colapsar", ID_TREE_EXPANDBRANCH + MENUITEM "Expandir/Contraer", ID_TREE_EXPANDBRANCH POPUP "&Nuevo" BEGIN MENUITEM "&Clave", ID_EDIT_NEW_KEY MENUITEM SEPARATOR - MENUITEM "Valor &Alfanumérico", ID_EDIT_NEW_STRINGVALUE - MENUITEM "Valor &Binario", ID_EDIT_NEW_BINARYVALUE + MENUITEM "Valor de &cadena", ID_EDIT_NEW_STRINGVALUE + MENUITEM "Valor &binario", ID_EDIT_NEW_BINARYVALUE MENUITEM "Valor &DWORD", ID_EDIT_NEW_DWORDVALUE - MENUITEM "Valor de cadena-&múltiple", ID_EDIT_NEW_MULTISTRINGVALUE + MENUITEM "Valor de cadena &múltiple", ID_EDIT_NEW_MULTISTRINGVALUE MENUITEM "Valor de cadena e&xpandible", ID_EDIT_NEW_EXPANDABLESTRINGVALUE END MENUITEM "&Buscar", ID_EDIT_FIND MENUITEM SEPARATOR - MENUITEM "&Borrar", ID_TREE_DELETE + MENUITEM "&Eliminar", ID_TREE_DELETE MENUITEM "&Renombrar", ID_TREE_RENAME MENUITEM SEPARATOR MENUITEM "&Exportar", ID_TREE_EXPORT @@ -135,12 +138,12 @@ BEGIN END POPUP "" BEGIN - MENUITEM "C&ut", ID_HEXEDIT_CUT - MENUITEM "&Copy", ID_HEXEDIT_COPY - MENUITEM "&Paste", ID_HEXEDIT_PASTE - MENUITEM "&Delete", ID_HEXEDIT_DELETE + MENUITEM "&Cortar", ID_HEXEDIT_CUT + MENUITEM "Cop&iar", ID_HEXEDIT_COPY + MENUITEM "&Pegar", ID_HEXEDIT_PASTE + MENUITEM "&Eliminar", ID_HEXEDIT_DELETE MENUITEM SEPARATOR - MENUITEM "Select &All", ID_HEXEDIT_SELECT_ALL + MENUITEM "Seleccionar &todo", ID_HEXEDIT_SELECT_ALL END END @@ -148,10 +151,10 @@ END IDD_EDIT_STRING DIALOGEX 32, 24, 252, 84 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Editar Cadena" +CAPTION "Editar cadena" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Nombre de Valor:", IDC_STATIC, 6, 6, 134, 8 + LTEXT "&Nombre del valor:", IDC_STATIC, 6, 6, 134, 8 EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY LTEXT "&Información del valor:", IDC_STATIC, 6, 35, 161, 8 EDITTEXT IDC_VALUE_DATA, 6, 46, 240, 12, ES_AUTOHSCROLL @@ -161,10 +164,10 @@ END IDD_EDIT_MULTI_STRING DIALOGEX 32, 24, 252, 174 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Editar Multi-Cadena" +CAPTION "Editar cadena múltiple" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Nombre de Valor:", IDC_STATIC, 6, 6, 134, 8 + LTEXT "&Nombre del valor:", IDC_STATIC, 6, 6, 134, 8 EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY LTEXT "&Información del valor:", IDC_STATIC, 6, 35, 161, 8 EDITTEXT IDC_VALUE_DATA, 6, 46, 240, 102, ES_AUTOHSCROLL | ES_MULTILINE | @@ -175,10 +178,10 @@ END IDD_EDIT_BIN_DATA DIALOGEX 32, 24, 252, 174 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Editar valor Binario" +CAPTION "Editar valor binario" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Nombre de Valor:", IDC_STATIC, 6, 6, 134, 8 + LTEXT "&Nombre del valor:", IDC_STATIC, 6, 6, 134, 8 EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY LTEXT "&Información del valor:", IDC_STATIC, 6, 35, 161, 8 CONTROL "", IDC_VALUE_DATA, "HexEdit32", WS_VSCROLL | WS_BORDER | WS_TABSTOP, 6, 46, 240, 102 @@ -191,7 +194,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | CAPTION "Editar valor DWORD" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Nombre de Valor:", IDC_STATIC, 6, 6, 134, 8 + LTEXT "&Nombre del valor:", IDC_STATIC, 6, 6, 134, 8 EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY LTEXT "&Información del valor:", IDC_STATIC, 6, 35, 161, 8 EDITTEXT IDC_VALUE_DATA, 6, 46, 116, 12, ES_AUTOHSCROLL @@ -204,18 +207,18 @@ END IDD_EDIT_RESOURCE_LIST DIALOGEX 32, 24, 170, 120 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Resource List" +CAPTION "Lista de recursos" FONT 8, "MS Shell Dlg" BEGIN CONTROL "", IDC_RESOURCE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 10, 150, 75 - DEFPUSHBUTTON "OK", IDOK, 27, 100, 50, 14 - PUSHBUTTON "Show...", IDC_SHOW_RESOURCE, 93, 100, 50, 14, WS_DISABLED + DEFPUSHBUTTON "Aceptar", IDOK, 27, 100, 50, 14 + PUSHBUTTON "Mostrar...", IDC_SHOW_RESOURCE, 93, 100, 50, 14, WS_DISABLED END IDD_EDIT_RESOURCE DIALOGEX 6, 18, 281, 283 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Resources" +CAPTION "Recursos" FONT 8, "MS Shell Dlg" BEGIN LTEXT "DMA:", IDC_STATIC, 10, 5, 20, 8 @@ -224,30 +227,30 @@ BEGIN LTEXT "Interrupt:", IDC_STATIC, 10, 48, 35, 8 CONTROL "", IDC_IRQ_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 58, 261, 31 - LTEXT "Memory:", IDC_STATIC, 10, 91, 32, 8 + LTEXT "Memoria:", IDC_STATIC, 10, 91, 32, 8 CONTROL "", IDC_MEMORY_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 101, 261, 31 - LTEXT "Port:", IDC_STATIC, 10, 134, 38, 8 + LTEXT "Puerto:", IDC_STATIC, 10, 134, 38, 8 CONTROL "", IDC_PORT_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 144, 261, 31 - LTEXT "Device specific data:", IDC_STATIC, 10, 177, 80, 8 + LTEXT "Datos específicos del dispositivo:", IDC_STATIC, 10, 177, 80, 8 CONTROL "", IDC_DEVICE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 188, 261, 31 - GROUPBOX "Usage", IDC_STATIC, 10, 219, 125, 39 - LTEXT "Undetermined", IDC_UNDETERMINED, 18, 230, 46, 8, WS_DISABLED - LTEXT "Shared", IDC_SHARED, 18, 240, 48, 8, WS_DISABLED - LTEXT "Device exclusive", IDC_DEVICE_EXCLUSIVE, 72, 230, 58, 8, WS_DISABLED - LTEXT "Driver exclusive", IDC_DRIVER_EXCLUSIVE, 72, 240, 54, 8, WS_DISABLED - RTEXT "Interface Type:", IDC_STATIC, 144, 220, 58, 8 + GROUPBOX "Uso", IDC_STATIC, 10, 219, 125, 39 + LTEXT "Sin determinar", IDC_UNDETERMINED, 18, 230, 46, 8, WS_DISABLED + LTEXT "Compartido", IDC_SHARED, 18, 240, 48, 8, WS_DISABLED + LTEXT "Exclusivo del dispositivo", IDC_DEVICE_EXCLUSIVE, 72, 230, 58, 8, WS_DISABLED + LTEXT "Exclusivo del controlador", IDC_DRIVER_EXCLUSIVE, 72, 240, 54, 8, WS_DISABLED + RTEXT "Tipo de interfaz:", IDC_STATIC, 144, 220, 58, 8 LTEXT "", IDC_INTERFACETYPE, 205, 220, 66, 8 - RTEXT "Bus Nummer:", IDC_STATIC, 151, 230, 51, 8 + RTEXT "Número de bus:", IDC_STATIC, 151, 230, 51, 8 LTEXT "", IDC_BUSNUMBER, 205, 230, 66, 8 - RTEXT "Version:", IDC_STATIC, 151, 240, 51, 8 + RTEXT "Versión:", IDC_STATIC, 151, 240, 51, 8 LTEXT "", IDC_VERSION, 205, 240, 66, 8 - RTEXT "Revision:", IDC_STATIC, 151, 250, 51, 8 + RTEXT "Revisión:", IDC_STATIC, 151, 250, 51, 8 LTEXT "", IDC_REVISION, 205, 250, 66, 8 - DEFPUSHBUTTON "OK", IDOK, 92, 263, 40, 14 - PUSHBUTTON "&Data...", IDC_SHOW_RESOURCE_DATA, 148, 263, 40, 14, WS_DISABLED + DEFPUSHBUTTON "Aceptar", IDOK, 92, 263, 40, 14 + PUSHBUTTON "&Datos...", IDC_SHOW_RESOURCE_DATA, 148, 263, 40, 14, WS_DISABLED END /* String Tables */ @@ -261,18 +264,18 @@ END STRINGTABLE BEGIN - IDS_APP_TITLE "Editor de registro" + IDS_APP_TITLE "Editor del Registro" IDC_REGEDIT "REGEDIT" IDC_REGEDIT_FRAME "REGEDIT_FRAME" END STRINGTABLE BEGIN - ID_REGISTRY_MENU "Contiene comandos para trabajar con el registro completo" + ID_REGISTRY_MENU "Contiene comandos para trabajar con el Registro completo" ID_EDIT_MENU "Contiene comandos para editar valores o claves" - ID_VIEW_MENU "Contiene comandos para personalizar la ventana de registro" + ID_VIEW_MENU "Contiene comandos para personalizar la ventana de Registro" ID_FAVOURITES_MENU "Contiene comandos para acceder a claves usadas frecuentemente" - ID_HELP_MENU "Contiene comandos para mostrar ayuda e información sobre el editor de registro" + ID_HELP_MENU "Contiene comandos para mostrar ayuda e información sobre el Editor del Registro" ID_EDIT_NEW_MENU "Contiene comandos para crear nuevas claves o valores" END @@ -283,20 +286,20 @@ BEGIN ID_EDIT_NEW_STRINGVALUE "Añade un nuevo valor de cadena" ID_EDIT_NEW_BINARYVALUE "Añade un nuevo valor binario" ID_EDIT_NEW_DWORDVALUE "Añade un nuevo valor de doble palabra" - ID_REGISTRY_IMPORTREGISTRYFILE "Importa un archivo de texto al registro" - ID_REGISTRY_EXPORTREGISTRYFILE "Exporta todo o parte del registro a un archivo de texto" - ID_REGISTRY_LOADHIVE "Loads a hive file into the registry" - ID_REGISTRY_UNLOADHIVE "Unloads a hive from the registry" - ID_REGISTRY_CONNECTNETWORKREGISTRY "Se conecta al registro de un ordenador remoto" - ID_REGISTRY_DISCONNECTNETWORKREGISTRY "Se desconecta del registro de un ordenador remoto" - ID_REGISTRY_PRINT "Imprime todo o parte del registro" + ID_REGISTRY_IMPORTREGISTRYFILE "Importa un archivo de texto al Registro" + ID_REGISTRY_EXPORTREGISTRYFILE "Exporta todo o parte del Registro a un archivo de texto" + ID_REGISTRY_LOADHIVE "Carga un subárbol en el Registro" + ID_REGISTRY_UNLOADHIVE "Descarga un subárbol del Registro" + ID_REGISTRY_CONNECTNETWORKREGISTRY "Se conecta al Registro de un ordenador remoto" + ID_REGISTRY_DISCONNECTNETWORKREGISTRY "Se desconecta del Registro de un ordenador remoto" + ID_REGISTRY_PRINT "Imprime todo o parte del Registro" /* ID_HELP_HELPTOPICS "Opens registry editor help" */ ID_HELP_ABOUT "Muestra información del programa, número de versión y derechos de autor" END STRINGTABLE BEGIN - ID_REGISTRY_EXIT "Sale del editor de registro" + ID_REGISTRY_EXIT "Sale del Editor de Registro" ID_FAVOURITES_ADDTOFAVOURITES "Añade claves a la lista de favoritos" ID_FAVOURITES_REMOVEFAVOURITE "Elimina claves de la lista de favoritos" ID_VIEW_STATUSBAR "Muestra u oculta la barra de estado" @@ -304,7 +307,7 @@ BEGIN ID_VIEW_REFRESH "Actualiza la ventana" ID_EDIT_DELETE "Elimina la selección" ID_EDIT_RENAME "Renombra la selección" - ID_EDIT_COPYKEYNAME "Copia el nombre de la clave seleccionada al portapapeles" + ID_EDIT_COPYKEYNAME "Copia el nombre de la clave seleccionada al Portapapeles" ID_EDIT_FIND "Busca una cadena de texto en una clave, valor o datos" ID_EDIT_FINDNEXT "Busca la siguiente ocurrencia del texto especificado en la búsqueda anterior" END @@ -313,49 +316,49 @@ STRINGTABLE BEGIN IDS_ERROR "Error" IDS_WARNING "Aviso" - IDS_BAD_KEY "No puede averiguar valor clave '%s'" - IDS_BAD_VALUE "No puede averiguar valor '%s'" - IDS_UNSUPPORTED_TYPE "No puede editar claves de este tipo (%ld)" - IDS_TOO_BIG_VALUE "Valor es muy grande (%ld)" - IDS_MULTI_SZ_EMPTY_STRING "Datos del tipo REG_MULTI_SZ no pueden contener lineas vacias.\nLas lineas vacias han sido eliminadas." - IDS_QUERY_DELETE_KEY_ONE "¿Esta seguro que quiere borrar esta clave?" - IDS_QUERY_DELETE_KEY_MORE "¿Esta seguro que quiere borrar estas claves?" - IDS_QUERY_DELETE_KEY_CONFIRM "Confirme borrar clave" - IDS_QUERY_DELETE_ONE "¿Esta seguro que quiere borrar este valor?" - IDS_QUERY_DELETE_MORE "¿Esta seguro que quiere borrar estos valores?" - IDS_QUERY_DELETE_CONFIRM "Confirme borrar valor" - IDS_ERR_DELVAL_CAPTION "Error borrando valores" - IDS_ERR_DELETEVALUE "¡Incapaz de borrar todos los valores especificados!" - IDS_ERR_RENVAL_CAPTION "Error Renombrando Valor" - IDS_ERR_RENVAL_TOEMPTY "No puede renombrar %s. El nombre de valor especificado esta vacio. Trate otro nombre y comienze otra vez." - IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration" - IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?" - IDS_NEW_KEY "Nueva Clave #%d" - IDS_NEW_VALUE "Nuevo Valor #%d" + IDS_BAD_KEY "No puede averiguar el valor de la clave '%s'" + IDS_BAD_VALUE "No se puede averiguar el valor de '%s'" + IDS_UNSUPPORTED_TYPE "No se pueden editar claves de este tipo (%ld)" + IDS_TOO_BIG_VALUE "El valor es demasiado grande (%ld)" + IDS_MULTI_SZ_EMPTY_STRING "Los datos de tipo REG_MULTI_SZ no pueden contener líneas vacías.\nLas líneas vacías han sido eliminadas." + IDS_QUERY_DELETE_KEY_ONE "¿Seguro que quiere borrar esta clave?" + IDS_QUERY_DELETE_KEY_MORE "¿Seguro que quiere borrar estas claves?" + IDS_QUERY_DELETE_KEY_CONFIRM "Confirmar la eliminación de la clave" + IDS_QUERY_DELETE_ONE "¿Seguro que quiere borrar este valor?" + IDS_QUERY_DELETE_MORE "¿Seguro que quiere borrar estos valores?" + IDS_QUERY_DELETE_CONFIRM "Confirmar la eliminación del valor" + IDS_ERR_DELVAL_CAPTION "Hubo un eror al borrar los valores" + IDS_ERR_DELETEVALUE "No se pudieron borrar todos los valores seleccionados." + IDS_ERR_RENVAL_CAPTION "Hubo un error al renombrar el valor" + IDS_ERR_RENVAL_TOEMPTY "No se pudo renombrar %s. El nombre de valor especificado está en blanco. Escriba otro nombre y pruebe de nuevo." + IDS_QUERY_IMPORT_HIVE_CAPTION "Confirmar la restauración de claves" + IDS_QUERY_IMPORT_HIVE_MSG "Una clave va a ser restaurada sobre la clave seleccionada.\nTodos los valores y subclaves de esta clave se borrarán.\n¿Desea continuar con la operación?" + IDS_NEW_KEY "Clave nueva #%d" + IDS_NEW_VALUE "Nuevo valor #%d" END STRINGTABLE BEGIN IDS_BINARY_EMPTY "(valor binario de longitud cero)" - IDS_DEFAULT_VALUE_NAME "(Por Defecto)" - IDS_VALUE_NOT_SET "(valor no introducido)" + IDS_DEFAULT_VALUE_NAME "(Predeterminado)" + IDS_VALUE_NOT_SET "(valor no establecido)" IDS_UNKNOWN_TYPE "Tipo desconocido: (0x%lx)" IDS_MY_COMPUTER "Mi PC" - IDS_IMPORT_REG_FILE "Importa Fichero de Registro" - IDS_EXPORT_REG_FILE "Exporta Fichero de Registro" - IDS_LOAD_HIVE "Load Hive" - IDS_UNLOAD_HIVE "Unload Hive" - IDS_INVALID_DWORD "(valor DWORD invalido)" + IDS_IMPORT_REG_FILE "Importar archivo del Registro" + IDS_EXPORT_REG_FILE "Exportar archivo del Registro" + IDS_LOAD_HIVE "Cargar subárbol" + IDS_UNLOAD_HIVE "Descargar subárbol" + IDS_INVALID_DWORD "(valor DWORD no válido)" END STRINGTABLE BEGIN - IDS_FLT_REGFILE "Fichero de Registro" - IDS_FLT_REGFILES "Fichero de Registro (*.reg)" + IDS_FLT_REGFILE "Archivo del registro" + IDS_FLT_REGFILES "Archivo del registro (*.reg)" IDS_FLT_REGFILES_FLT "*.reg" - IDS_FLT_HIVFILES "Registry Hive Files (*.*)" + IDS_FLT_HIVFILES "Archivo de subárbol del registro (*.*)" IDS_FLT_HIVFILES_FLT "*.*" - IDS_FLT_REGEDIT4 "Fichero de Registro Win9x/NT4 (REGEDIT4) (*.reg)" + IDS_FLT_REGEDIT4 "Archivo del registro de Win9x/NT4 (REGEDIT4) (*.reg)" IDS_FLT_REGEDIT4_FLT "*.reg" IDS_FLT_ALLFILES "Todos los archivos (*.*)" IDS_FLT_ALLFILES_FLT "*.*" @@ -363,79 +366,79 @@ END STRINGTABLE BEGIN - IDS_ACCESS_FULLCONTROL "Control Total" + IDS_ACCESS_FULLCONTROL "Control total" IDS_ACCESS_READ "Lectura" - IDS_ACCESS_QUERYVALUE "Consultar Valor" - IDS_ACCESS_SETVALUE "Modificar Valor" - IDS_ACCESS_CREATESUBKEY "Crear Subclave" - IDS_ACCESS_ENUMERATESUBKEYS "Enumerar Subclaves" + IDS_ACCESS_QUERYVALUE "Consultar valor" + IDS_ACCESS_SETVALUE "Modificar valor" + IDS_ACCESS_CREATESUBKEY "Crear subclave" + IDS_ACCESS_ENUMERATESUBKEYS "Enumerar subclaves" IDS_ACCESS_NOTIFY "Notificar" IDS_ACCESS_CREATELINK "Crear vínculo" IDS_ACCESS_DELETE "Borrar" IDS_ACCESS_WRITEDAC "Escribir DAC" IDS_ACCESS_WRITEOWNER "Escribir propietario" - IDS_ACCESS_READCONTROL "Controles de Lectura" + IDS_ACCESS_READCONTROL "Control de lectura" END STRINGTABLE BEGIN - IDS_INHERIT_THISKEYONLY "Esta clave solamente" + IDS_INHERIT_THISKEYONLY "Sólo esta clave" IDS_INHERIT_THISKEYANDSUBKEYS "Esta clave y sus subclaves" - IDS_INHERIT_SUBKEYSONLY "Subclaves solamente" + IDS_INHERIT_SUBKEYSONLY "Sólo sus subclabes" END STRINGTABLE BEGIN IDS_EXPAND "&Expandir" - IDS_COLLAPSE "&Colapsar" + IDS_COLLAPSE "&Contraer" IDS_GOTO_SUGGESTED_KEY "&Ir a '%s'" - IDS_FINISHEDFIND "Finalizado la busqueda del registro." + IDS_FINISHEDFIND "Ha terminado la búsqueda en el Registro." END STRINGTABLE BEGIN - IDS_IMPORT_PROMPT "Adding information can unintentionally change or delete values and cause components to stop working correctly.\nIf you do not trust the source of this information in '%s', do not add it to registry.\n\nAre you sure you want to continue?" - IDS_IMPORT_OK "The keys and values contained in '%s' have been successfully added to the registry." - IDS_IMPORT_ERROR "Cannot import '%s': Error opening the file. There may be a disk, file system error or file may not exist." - IDS_EXPORT_ERROR "Cannot export '%s': Error creating or writing to the file. There may be a disk or file system error." + IDS_IMPORT_PROMPT "Al añadir información puede borrar o alterar valores de forma involuntaria y hacer que algunos componentes dejen de funcionar.\nSi no confía del origen de la información contenida en '%s', no la añada al Registro.\n\n¿Seguro que quiere continuar?" + IDS_IMPORT_OK "Las claves y valores contenidos en '%s' se han añadido correctamente al Registro." + IDS_IMPORT_ERROR "No se pudo importar '%s': Hubo un error al abrir el archivo. Puede deberse a fallos en el disco o en el sistema de archivos, o puede que el archivo no exista." + IDS_EXPORT_ERROR "No se pudo exportar '%s': Hubo un error al crear o escribir el archivo. Puede deberse a fallos en el disco o en el sistema de archivos." END STRINGTABLE BEGIN - IDS_BUSNUMBER "Bus Number" - IDS_INTERFACE "Interface" - IDS_DMA_CHANNEL "Channel" - IDS_DMA_PORT "Port" + IDS_BUSNUMBER "Número de bus" + IDS_INTERFACE "Interfaz" + IDS_DMA_CHANNEL "Canal" + IDS_DMA_PORT "Puerto" IDS_INTERRUPT_VECTOR "Vector" - IDS_INTERRUPT_LEVEL "Level" - IDS_INTERRUPT_AFFINITY "Affinity" - IDS_INTERRUPT_TYPE "Type" - IDS_MEMORY_ADDRESS "Physical Address" - IDS_MEMORY_LENGTH "Length" - IDS_MEMORY_ACCESS "Access" - IDS_PORT_ADDRESS "Physical Address" - IDS_PORT_LENGTH "Length" - IDS_PORT_ACCESS "Access" - IDS_SPECIFIC_RESERVED1 "Reserved 1" - IDS_SPECIFIC_RESERVED2 "Reserved 2" - IDS_SPECIFIC_DATASIZE "Data Size" + IDS_INTERRUPT_LEVEL "Nivel" + IDS_INTERRUPT_AFFINITY "Afinidad" + IDS_INTERRUPT_TYPE "Tipo" + IDS_MEMORY_ADDRESS "Direción física" + IDS_MEMORY_LENGTH "Longitud" + IDS_MEMORY_ACCESS "Aceso" + IDS_PORT_ADDRESS "Direción física" + IDS_PORT_LENGTH "Longitud" + IDS_PORT_ACCESS "Aceso" + IDS_SPECIFIC_RESERVED1 "Reservada 1" + IDS_SPECIFIC_RESERVED2 "Reservada 2" + IDS_SPECIFIC_DATASIZE "Tamaño de datos" END STRINGTABLE BEGIN - IDS_PORT_PORT_IO "Port" - IDS_PORT_MEMORY_IO "Memory" + IDS_PORT_PORT_IO "Puerto" + IDS_PORT_MEMORY_IO "Memoria" IDS_INTERRUPT_EDGE_SENSITIVE "Edge Sensitive" IDS_INTERRUPT_LEVEL_SENSITIVE "Level Sensitive" - IDS_MEMORY_READ_ONLY "Read Only" - IDS_MEMORY_WRITE_ONLY "Write Only" - IDS_MEMORY_READ_WRITE "Read / Write" + IDS_MEMORY_READ_ONLY "Sólo lectura" + IDS_MEMORY_WRITE_ONLY "Sólo escritura" + IDS_MEMORY_READ_WRITE "Lectura / Escritura" END STRINGTABLE BEGIN - IDS_BUS_UNDEFINED "Undefined" - IDS_BUS_INTERNAL "Internal" + IDS_BUS_UNDEFINED "Sin definir" + IDS_BUS_INTERNAL "Interno" IDS_BUS_ISA "ISA" IDS_BUS_EISA "EISA" IDS_BUS_MICROCHANNEL "MicroChannel" @@ -447,11 +450,11 @@ BEGIN IDS_BUS_CBUS "C-Bus" IDS_BUS_MPIBUS "MPI-Bus" IDS_BUS_MPSABUS "MPSA-Bus" - IDS_BUS_PROCESSORINTERNAL "Processor Internal" - IDS_BUS_INTERNALPOWERBUS "Internal Power Bus" - IDS_BUS_PNPISABUS "PnP-ISA Bus" - IDS_BUS_PNPBUS "PnP Bus" - IDS_BUS_UNKNOWNTYPE "Unknown Interface Type" + IDS_BUS_PROCESSORINTERNAL "Interno del procesador" + IDS_BUS_INTERNALPOWERBUS "Bus de alimentación interno" + IDS_BUS_PNPISABUS "Bus PnP-ISA" + IDS_BUS_PNPBUS "Bus PnP" + IDS_BUS_UNKNOWNTYPE "Tipo de interfaz desconocido" END /*****************************************************************/ @@ -470,36 +473,36 @@ END IDD_LOADHIVE DIALOGEX 0, 0, 193, 34 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Load Hive" +CAPTION "Cargar subárbol" FONT 8, "Ms Shell Dlg" BEGIN - LTEXT "&Key:", IDC_STATIC, 4, 4, 15, 8, SS_LEFT + LTEXT "&Clave:", IDC_STATIC, 4, 4, 15, 8, SS_LEFT EDITTEXT IDC_EDIT_KEY, 23, 2, 167, 13 - DEFPUSHBUTTON "OK", IDOK, 140, 17, 50, 14 - PUSHBUTTON "Cancel", IDCANCEL, 89, 17, 50, 14 + DEFPUSHBUTTON "Aceptar", IDOK, 140, 17, 50, 14 + PUSHBUTTON "Cancelar", IDCANCEL, 89, 17, 50, 14 END IDD_ADDFAVORITES DIALOGEX 0, 0, 186, 46 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Añadir a Favoritos" +CAPTION "Añadir a favoritos" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "Aceptar", IDOK, 129, 7, 50, 14 PUSHBUTTON "Cancelar", IDCANCEL, 129, 24, 50, 14 - LTEXT "Nombre del &Favorito:", IDC_STATIC, 7, 7, 90, 10 + LTEXT "Nombre de &favorito:", IDC_STATIC, 7, 7, 90, 10 EDITTEXT IDC_FAVORITENAME, 7, 26, 110, 13, ES_AUTOHSCROLL END IDD_REMOVEFAVORITES DIALOGEX 0, 0, 164, 135 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Quitar favoritos" +CAPTION "Quitar de favoritos" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "Aceptar", IDOK, 107, 114, 50, 14 PUSHBUTTON "Cancelar", IDCANCEL, 7, 114, 50, 14 CONTROL "Lista1", IDC_FAVORITESLIST, "SysListView32", LVS_LIST | WS_BORDER | WS_TABSTOP, 7, 20, 150, 90 - LTEXT "Seleccionar favorito(s):", IDC_STATIC, 7, 7, 99, 12 + LTEXT "Seleccionar favoritos:", IDC_STATIC, 7, 7, 99, 12 END IDD_FIND DIALOGEX 0, 0, 254, 82 @@ -531,7 +534,7 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN ICON IDI_REGEDIT, IDC_STATIC, 7, 7, 20, 20 DEFPUSHBUTTON "&Cancelar", IDCANCEL, 93, 29, 45, 14 - LTEXT "Buscando en el registro...", IDC_STATIC, 33, 12, 83, 8 + LTEXT "Buscando en el Registro...", IDC_STATIC, 33, 12, 83, 8 END /* String Table */ diff --git a/base/applications/screensavers/3dtext/lang/es-ES.rc b/base/applications/screensavers/3dtext/lang/es-ES.rc index 68cfad628ca..30ca6b862ed 100644 --- a/base/applications/screensavers/3dtext/lang/es-ES.rc +++ b/base/applications/screensavers/3dtext/lang/es-ES.rc @@ -1,8 +1,11 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Configuración del Salvapantallas Texto en 3D" +CAPTION "Configuración del Salvapantallas de texto en 3D" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Aceptar", IDOK, 216, 7, 50, 14 @@ -13,5 +16,5 @@ END STRINGTABLE BEGIN - IDS_DESCRIPTION "Salvapantallas Texto en 3D" + IDS_DESCRIPTION "Salvapantallas de texto en 3D" END diff --git a/base/applications/screensavers/logon/lang/es-ES.rc b/base/applications/screensavers/logon/lang/es-ES.rc index 62798487b44..8d1aae7051b 100644 --- a/base/applications/screensavers/logon/lang/es-ES.rc +++ b/base/applications/screensavers/logon/lang/es-ES.rc @@ -1,7 +1,10 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_DESCRIPTION "Logotipo ReactOS" - IDS_TEXT "Ninguna opción necesita ser configurada." + IDS_DESCRIPTION "Logotipo de ReactOS" + IDS_TEXT "No se necesita configurar ninguna opción." END diff --git a/base/applications/shutdown/lang/es-ES.rc b/base/applications/shutdown/lang/es-ES.rc index 158242f7f81..58923110677 100644 --- a/base/applications/shutdown/lang/es-ES.rc +++ b/base/applications/shutdown/lang/es-ES.rc @@ -1,103 +1,106 @@ +/* Spanish Language resource file. + * Translated by: Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL /* Dialog */ IDD_GUI DIALOGEX 0, 0, 240, 255 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Remote Shutdown" +CAPTION "Apagado remoto" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "&OK", IDC_OK, 125, 232, 50, 14 - PUSHBUTTON "&Cancel", IDC_CANCEL, 178, 232, 50, 14 - LTEXT "Co&mputers:", IDC_STATIC, 9, 9, 35, 36 + DEFPUSHBUTTON "&Aceptar", IDC_OK, 125, 232, 50, 14 + PUSHBUTTON "&Cancelar", IDC_CANCEL, 178, 232, 50, 14 + LTEXT "&Equipos:", IDC_STATIC, 9, 9, 35, 36 LISTBOX IDC_COMPUTER_LIST, 8, 19, 162, 55 - PUSHBUTTON "&Add...", IDC_ADD_SYSTEM, 179, 19, 50, 14 - PUSHBUTTON "&Remove", IDC_REMOVE_SYSTEM, 179, 36, 50, 14, WS_DISABLED - PUSHBUTTON "&Browse...", IDC_BROWSE_SYSTEM, 179, 53, 50, 14 - LTEXT "Action", IDC_ACTION, 11, 81, 20, 14 + PUSHBUTTON "&Añadir...", IDC_ADD_SYSTEM, 179, 19, 50, 14 + PUSHBUTTON "&Eliminar", IDC_REMOVE_SYSTEM, 179, 36, 50, 14, WS_DISABLED + PUSHBUTTON "&Examinar...", IDC_BROWSE_SYSTEM, 179, 53, 50, 14 + LTEXT "Acción", IDC_ACTION, 11, 81, 20, 14 COMBOBOX IDC_ACTION_TYPE, 37, 79, 129, 14, WS_TABSTOP | CBS_DROPDOWN - CHECKBOX "Warn users", IDC_WARN_USERS, 175, 79, 55, 14, BS_AUTOCHECKBOX | WS_TABSTOP - LTEXT "Display warning for", IDC_SHOW_WARN_ONE, 11, 99, 65, 14 + CHECKBOX "Avisar a los usuarios", IDC_WARN_USERS, 175, 79, 55, 14, BS_AUTOCHECKBOX | WS_TABSTOP + LTEXT "Mostrar la advertencia durante", IDC_SHOW_WARN_ONE, 11, 99, 65, 14 EDITTEXT IDC_SHOW_WARN, 78, 97, 41, 14 - LTEXT "second(s)", IDC_SHOW_WARN_TWO, 124, 99, 32, 10 - GROUPBOX "Shutdown Event Tracker", IDC_STATIC, 5, 114, 224, 114 - LTEXT "Reason:", IDC_STATIC, 16, 130, 27, 8 - CHECKBOX "Planned", IDC_PLANNED, 175, 130, 40, 12, BS_AUTOCHECKBOX | WS_TABSTOP + LTEXT "segundo(s)", IDC_SHOW_WARN_TWO, 124, 99, 32, 10 + GROUPBOX "Rastreador de sucesos de apagado", IDC_STATIC, 5, 114, 224, 114 + LTEXT "Razón:", IDC_STATIC, 16, 130, 27, 8 + CHECKBOX "Planeado", IDC_PLANNED, 175, 130, 40, 12, BS_AUTOCHECKBOX | WS_TABSTOP COMBOBOX IDC_REASON_CODE, 17, 142, 198, 13, WS_TABSTOP | CBS_DROPDOWN - LTEXT "Comm&ent:", IDC_COMMENT_CAPTION, 16, 159, 38, 8 + LTEXT "Co&mentario:", IDC_COMMENT_CAPTION, 16, 159, 38, 8 EDITTEXT IDC_COMMENT_TEXT, 17, 171, 198, 50, WS_VSCROLL END /* Information and error messages */ STRINGTABLE BEGIN - IDS_USAGE "ReactOS Shutdown Utility\n\ + IDS_USAGE "Utilidad de apagado de ReactOS\n\ \n\ -Usage: shutdown [/?] [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]\n\ - [/m \\\\computer][/t xxx][/d [p|u:]xx:yy [/c ""comment""]]\n\ +Uso: shutdown [/?] [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]\n\ + [/m \\\\equipo][/t xxx][/d [p|u:]xx:yy [/c ""comentario""]]\n\ \n\ - No arguments or /? Display this help.\n\ - /i Show the graphical user interface (GUI). This option must be the\n\ - first one.\n\ - /l Log off on the local system only. Cannot be used with /m or /d.\n\ - /s Shutdown the computer.\n\ - /r Restart the computer.\n\ - /g Restart the computer and restart all the registered applications.\n\ - /a Cancel a delayed shutdown. Can only be used during the delay\n\ - period.\n\ - /p Shutdown the local computer without any timeout or warning. Can be\n\ - used with /d or /f.\n\ - /h Hibernate the local computer. Usable with /f.\n\ - /e Document the reason for the unexpected computer shutdown.\n\ - /m \\\\computer Specify the target computer (UNC/IP address).\n\ - /t xxx Set the timeout period to xxx seconds before shutting down.\n\ - The valid range starts from 0 to 315360000 (10 years),\n\ - 30 being the default value.\n\ - /c ""comment"" Comment on the reason for shutdown or restart.\n\ - 512 characters maximum allowed.\n\ - /f Force running applications to close without warning users. If you\n\ - do not specify any other parameter, this option will also log off.\n\ - /d [p|u:]xx:yy Give the reason code for the shutdown or the restart.\n\ - p indicates that the shutdown or the restart is planned.\n\ - u indicates that the reason is defined by the user.\n\ - If neither p nor u are specified, the shutdown or the restart are\n\ - not planned.\n\ - xx is the major reason code (positive integer smaller than 256).\n\ - yy is the minor reason code (positive integer smaller than 65536).\n" + Sin argumentos o con /? Muestra esta ayuda.\n\ + /i Muestra la interfaz gráfica de usuario (GUI).\n\ + Esta opción debe ser la primera.\n\ + /l Cierrar sesión en el equipo local. No funciona con /m o /d.\n\ + /s Apaga el equipo.\n\ + /r Reinicia el equipo.\n\ + /g Reiniciar el equipo junto con todas las aplicaciones registradas.\n\ + /a Cancela un apagado retrasado. Sólo se puede utilizar durante\n\ + la cuanta atrás, pero no más tarde.\n\ + /p Apaga el equipo local sin esperas o avisos.\n\ + Se puede usar junto con /d o /f.\n\ + /h Hiberna el equipo local. Se puede usar junto con /f.\n\ + /e Documenta la razón por apagado no planeado.\n\ + /m \\\\equipo Especifica el equipo remoto de destino (dirección UNC/IP).\n\ + /t xxx Establece el tiempo de espera a xxx segundos antes de apagar.\n\ + El rango válido es de 0 a 315360000 (10 años),\n\ + con 30 siendo el valor por defecto.\n\ + /c ""comentario"" Comenta la razón de apagado o reinicio.\n\ + Sólo se permiten hasta 512 caracteres.\n\ + /f Fuerza el cierre de aplicaciones sin avisar a los usuarios.\n\ + Si no se especifica ningún otro parámetro también cerrará sesión.\n\ + /d [p|u:]xx:yy Da un código de razón para el apagado o reinicio.\n\ + p indica que el apagado o reinicio estaba planeado.\n\ + u indica que la razón está definida por el usuario.\n\ + Si no se especifica ni p ni la u, el apagado se\n\ + marca como no planeado.\n\ + Donde xx es el código de razón mayor (entero positivo menor que 256).\n\ + Donde yy es el código de razón mayor (entero positivo menor que 65536).\n" - IDS_ERROR_SHUTDOWN_REBOOT "ERROR: Unable to shutdown and restart at the same time.\n" - IDS_ERROR_TIMEOUT "ERROR: Timeout value of %u is out of bounds (0-315360000).\n" - IDS_ERROR_ABORT "ERROR: Unable to abort the shutdown of the system.\n" - IDS_ERROR_LOGOFF "ERROR: Unable to logoff the system.\n" - IDS_ERROR_SHUTDOWN "ERROR: Unable to shutdown the system.\n" - IDS_ERROR_RESTART "ERROR: Unable to restart the system.\n" - IDS_ERROR_MAX_COMMENT_LENGTH "ERROR: Comment length exceeds maximum character limit set by the system.\n" - IDS_ERROR_HIBERNATE "ERROR: Unable to send system into hibernation mode.\n" - IDS_ERROR_HIBERNATE_LOCAL "ERROR: Hibernation mode cannot be started remotely.\n" - IDS_ERROR_HIBERNATE_ENABLED "ERROR: Hibernation mode is not enabled.\n" - IDS_ERROR_DIALOG_CAPTION "Remote Shutdown" - IDS_ERROR_DIALOG_INIT "Unable to display the graphical user interface." + IDS_ERROR_SHUTDOWN_REBOOT "ERROR: No se puede apagar y reiniciar a la vez.\n" + IDS_ERROR_TIMEOUT "ERROR: El valor de tiempo de espera de %u está fuera del rango permitido (0-315360000).\n" + IDS_ERROR_ABORT "ERROR: No se ha podido cancelar el apagado del equipo.\n" + IDS_ERROR_LOGOFF "ERROR: No se ha podido cerrar sesión en el equipo.\n" + IDS_ERROR_SHUTDOWN "ERROR: No se ha podido apagar el equipo.\n" + IDS_ERROR_RESTART "ERROR: No se ha podido reiniciar el equipo.\n" + IDS_ERROR_MAX_COMMENT_LENGTH "ERROR: La longitud del comentario excede el límite de palabras especificado por el equipo.\n" + IDS_ERROR_HIBERNATE "ERROR: No se ha podido poner el sistema en el modo de hibernación.\n" + IDS_ERROR_HIBERNATE_LOCAL "ERROR: No se ha podido activar de forma remota el modo de hibernación.\n" + IDS_ERROR_HIBERNATE_ENABLED "ERROR: No está activado el modo de hibernación.\n" + IDS_ERROR_DIALOG_CAPTION "Apagado remoto" + IDS_ERROR_DIALOG_INIT "No se pudo mostrar la interfaz gráfica de usuario." END /* Remote shutdown action strings */ STRINGTABLE BEGIN - IDS_ACTION_SHUTDOWN "Shutdown the system" - IDS_ACTION_RESTART "Restart the system" - IDS_ACTION_UNEXPECTED_SHUTDOWN "Annotate the unexpected shutdown" + IDS_ACTION_SHUTDOWN "Apagar el equipo" + IDS_ACTION_RESTART "Reiniciar el equipo" + IDS_ACTION_UNEXPECTED_SHUTDOWN "Anotar las razones del apagado" END /* Remote shutdown reason strings */ STRINGTABLE BEGIN - IDS_REASON_OTHER "Other" - IDS_REASON_HARDWARE_MAINTENANCE "Hardware: Maintenance" + IDS_REASON_OTHER "Otra" + IDS_REASON_HARDWARE_MAINTENANCE "Hardware: Mantenimiento" IDS_REASON_HARDWARE_INSTALL "Hardware: Installation" - IDS_REASON_OS_RECOVER "Operating System: Recovery" - IDS_REASON_OS_RECONFIGURE "Operating System: Reconfigure" - IDS_REASON_APP_MAINTENANCE "Application: Maintenance" - IDS_REASON_APP_INSTALL "Application: Installation" - IDS_REASON_APP_UNRESPONSIVE "Application: Unresponsive" - IDS_REASON_APP_UNSTABLE "Application: Unstable" - IDS_REASON_SECURITY "Security Issue" - IDS_REASON_NETWORK "Loss of network connectivity" + IDS_REASON_OS_RECOVER "Sistema operativo: Recuperación" + IDS_REASON_OS_RECONFIGURE "Sistema operativo: Reconfiguración" + IDS_REASON_APP_MAINTENANCE "Aplicación: Mantenimiento" + IDS_REASON_APP_INSTALL "Aplicación: Instalación" + IDS_REASON_APP_UNRESPONSIVE "Aplicación: No responde" + IDS_REASON_APP_UNSTABLE "Aplicación: Inestable" + IDS_REASON_SECURITY "Problema de seguridad" + IDS_REASON_NETWORK "Pérdida de conectividad de red" END diff --git a/base/applications/sndrec32/lang/es-ES.rc b/base/applications/sndrec32/lang/es-ES.rc index ec6e7661082..7c8e54b345d 100644 --- a/base/applications/sndrec32/lang/es-ES.rc +++ b/base/applications/sndrec32/lang/es-ES.rc @@ -1,3 +1,6 @@ +/* Spanish Language resource file. + * Translated by: ?? and Ismael Ferreras Morezuelas <2014-11-07> */ + LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL IDC_REACTOS_SNDREC32 ACCELERATORS @@ -8,56 +11,56 @@ END IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Acerca de Grabadora de sonidos ReactOS" +CAPTION "Acerca de la Grabadora de sonidos de ReactOS" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "Grabadora de sonidos ReactOS, version 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX + LTEXT "Grabadora de sonidos de ReactOS, versión 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 DEFPUSHBUTTON "Aceptar", IDOK, 139, 54, 50, 14, WS_GROUP END IDR_MENU1 MENU BEGIN - POPUP "Archivo" + POPUP "&Archivo" BEGIN - MENUITEM "Nuevo", ID_FILE_NEW - MENUITEM "Abrir...", ID_FILE_OPEN - MENUITEM "Guardar", ID_FILE_SAVE, GRAYED - MENUITEM "Guardar como...", ID_FILE_SAVEAS, GRAYED - MENUITEM "Restore...", ID_FILE_RESTORE, GRAYED - MENUITEM "Properties", ID_FILE_PROPERTIES + MENUITEM "&Nuevo", ID_FILE_NEW + MENUITEM "&Abrir...", ID_FILE_OPEN + MENUITEM "&Guardar", ID_FILE_SAVE, GRAYED + MENUITEM "Guardar &como...", ID_FILE_SAVEAS, GRAYED + MENUITEM "&Restaurar...", ID_FILE_RESTORE, GRAYED + MENUITEM "&Propiedades", ID_FILE_PROPERTIES MENUITEM SEPARATOR - MENUITEM "Salir", ID_FILE_EXIT + MENUITEM "&Salir", ID_FILE_EXIT END - POPUP "&Edit" + POPUP "&Edición" BEGIN - MENUITEM "&Copy", ID_EDIT_COPY - MENUITEM "&Paste Insert", ID_EDIT_PASTE, GRAYED - MENUITEM "Paste Mi&x", ID_EDIT_PASTEMIX, GRAYED + MENUITEM "&Copiar", ID_EDIT_COPY + MENUITEM "&Pegar insertando", ID_EDIT_PASTE, GRAYED + MENUITEM "Pegar me&zclando", ID_EDIT_PASTEMIX, GRAYED MENUITEM SEPARATOR - MENUITEM "&Insert File...", ID_EDIT_INSERTFILE - MENUITEM "&Mix with File...", ID_EDIT_MIXFILE + MENUITEM "&Insertar archivo...", ID_EDIT_INSERTFILE + MENUITEM "&Mezclar con archivo...", ID_EDIT_MIXFILE MENUITEM SEPARATOR - MENUITEM "Delete &Before Current Position",ID_EDIT_DELETEBEFORE, GRAYED - MENUITEM "Delete &After Current Position",ID_EDIT_DELETEAFTER, GRAYED + MENUITEM "&Borrar antes de la posición actual",ID_EDIT_DELETEBEFORE, GRAYED + MENUITEM "Borrar &tras la posición actual",ID_EDIT_DELETEAFTER, GRAYED MENUITEM SEPARATOR - MENUITEM "A&udio Properties", ID_EDIT_AUDIOPROPS + MENUITEM "Propiedades de a&udio", ID_EDIT_AUDIOPROPS END - POPUP "Effect&s" + POPUP "Efecto&s" BEGIN - MENUITEM "&Increase Volume (by 25%)", ID_EFFECTS_INCVOL - MENUITEM "&Decrease Volume", ID_EFFECTS_DECVOL + MENUITEM "&Subir volumen (un 25%)", ID_EFFECTS_INCVOL + MENUITEM "&Bajar volumen", ID_EFFECTS_DECVOL MENUITEM SEPARATOR - MENUITEM "&Increase Speed (by 100%)", ID_EFFECTS_INCSPD - MENUITEM "&Decrease Speed", ID_EFFECTS_DECSPD + MENUITEM "Subir &velocidad (un 100%)", ID_EFFECTS_INCSPD + MENUITEM "Ba&jar velocidad", ID_EFFECTS_DECSPD MENUITEM SEPARATOR - MENUITEM "&Add Echo", ID_EFFECTS_ECHO - MENUITEM "&Reverse", ID_EFFECTS_REVERSE + MENUITEM "&Añadir eco", ID_EFFECTS_ECHO + MENUITEM "&Invertir", ID_EFFECTS_REVERSE END POPUP "?" BEGIN - MENUITEM "Acerca de...", ID_ABOUT + MENUITEM "&Acerca de...", ID_ABOUT END END @@ -69,11 +72,11 @@ END STRINGTABLE BEGIN - IDS_STRPOS "Position: %.2f s" - IDS_STRDUR "Length: %.2f s" - IDS_STRBUF "Buffer: %.2f kb" + IDS_STRPOS "Posición: %.2f s" + IDS_STRDUR "Longitud: %.2f s" + IDS_STRBUF "Búfer: %.2f kb" IDS_STRFMT "%.1f kHz %u bits" IDS_STRMONO "mono" - IDS_STRSTEREO "stereo" + IDS_STRSTEREO "estéreo" IDS_STRCHAN "%s" END diff --git a/base/applications/sndvol32/lang/es-ES.rc b/base/applications/sndvol32/lang/es-ES.rc index e91b4018704..8ba4fc4efc2 100644 --- a/base/applications/sndvol32/lang/es-ES.rc +++ b/base/applications/sndvol32/lang/es-ES.rc @@ -1,4 +1,4 @@ -/* Spanish language file by Javier Remacha <2007-2008> */ +/* Spanish language file by Javier Remacha <2007-2008> and Ismael Ferreras Morezuelas <2014-11-07> */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -7,21 +7,21 @@ BEGIN POPUP "&Opciones" BEGIN MENUITEM "P&ropiedades", IDC_PROPERTIES - MENUITEM "&Controles Avanzados", IDC_ADVANCED_CONTROLS + MENUITEM "&Controles avanzados", IDC_ADVANCED_CONTROLS MENUITEM SEPARATOR MENUITEM "&Salir", IDC_EXIT END POPUP "Ay&uda" BEGIN - MENUITEM "&Temas de Ayuda", IDC_HELP_TOPICS + MENUITEM "&Temas de ayuda", IDC_HELP_TOPICS MENUITEM SEPARATOR - MENUITEM "&Acerca de Control de Volumen", IDC_ABOUT + MENUITEM "&Acerca de Control de volumen", IDC_ABOUT END END STRINGTABLE BEGIN - IDS_SNDVOL32 "Control de Volumen" + IDS_SNDVOL32 "Control de volumen" IDS_NOMIXERDEVICES "¡No hay dispositivos mezcladores activos en este momento! \n\ La aplicación se cerrará ahora." END @@ -38,7 +38,7 @@ BEGIN PUSHBUTTON "&Grabación", IDC_RECORDING, 13, 61, 47, 8, BS_AUTORADIOBUTTON PUSHBUTTON "&Otros:", IDC_OTHER, 13, 80, 42, 8, BS_AUTORADIOBUTTON | WS_DISABLED COMBOBOX IDC_LINE, 55, 80, 155, 50, CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED - LTEXT "Mostrar los controles de volumen siguientes:", IDC_LABELCONTROLS, 7, 109, 162, 8 + LTEXT "Mostrar los siguientes controles de volumen:", IDC_LABELCONTROLS, 7, 109, 162, 8 CONTROL "", IDC_CONTROLS, "SysListView32", LVS_REPORT | LVS_NOCOLUMNHEADER | WS_TABSTOP | WS_BORDER, 7, 122, 211, 96 PUSHBUTTON "Aceptar", IDOK, 114, 226, 50, 14 PUSHBUTTON "Cancelar", IDCANCEL, 168, 226, 50, 14 @@ -48,12 +48,12 @@ IDD_VOLUME_CTRL DIALOG 0, 0, 90, 150 STYLE WS_POPUP | WS_BORDER FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Master", IDC_LINE_NAME, 4, 7, 100, 15 + LTEXT "Principal", IDC_LINE_NAME, 4, 7, 100, 15 CONTROL "", -1, "static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 4, 30, 82, 1 LTEXT "Balance", -1, 4, 35, 80, 42 LTEXT "Volumen", -1, 4, 100, 77, 108 CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 25, 55, 85, 30 CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 115, 30, 70 - CHECKBOX "&Silencio", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX + CHECKBOX "&Silenciar", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200 END diff --git a/base/applications/taskmgr/lang/es-ES.rc b/base/applications/taskmgr/lang/es-ES.rc index 06114b28f2f..595f1c1a2ba 100644 --- a/base/applications/taskmgr/lang/es-ES.rc +++ b/base/applications/taskmgr/lang/es-ES.rc @@ -1,4 +1,4 @@ -/* Spanish (Spain) resources by Carlos Garcia Gomez, Samuel Serapión */ +/* Spanish (Spain) resources by Carlos Garcia Gomez, Samuel Serapión and Ismael Ferreras Morezuelas */ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL @@ -6,86 +6,86 @@ IDR_TASKMANAGER MENU BEGIN POPUP "&Archivo" BEGIN - MENUITEM "&Nueva Tarea (Ejecutar...)", ID_FILE_NEW + MENUITEM "&Nueva tarea (Ejecutar...)", ID_FILE_NEW MENUITEM SEPARATOR - MENUITEM "&Salir del Administrador de Tareas", ID_FILE_EXIT + MENUITEM "&Salir del Administrador de tareas", ID_FILE_EXIT END POPUP "&Opciones" BEGIN - MENUITEM "Siempre &Visible", ID_OPTIONS_ALWAYSONTOP, CHECKED - MENUITEM "&Minimizar En Uso", ID_OPTIONS_MINIMIZEONUSE, CHECKED - MENUITEM "&Ocultar al Minimizar", ID_OPTIONS_HIDEWHENMINIMIZED, CHECKED + MENUITEM "Siempre &visible", ID_OPTIONS_ALWAYSONTOP, CHECKED + MENUITEM "&Minimizar al abrir", ID_OPTIONS_MINIMIZEONUSE, CHECKED + MENUITEM "&Ocultar al estar minimizado", ID_OPTIONS_HIDEWHENMINIMIZED, CHECKED MENUITEM "Mo&strar tareas de 16-bit", ID_OPTIONS_SHOW16BITTASKS, CHECKED END POPUP "&Ver" BEGIN - MENUITEM "&Actualizar Ahora", ID_VIEW_REFRESH - POPUP "Velocidad de A&ctualización" + MENUITEM "&Actualizar ahora", ID_VIEW_REFRESH + POPUP "Velocidad de a&ctualización" BEGIN MENUITEM "A<a", ID_VIEW_UPDATESPEED_HIGH MENUITEM "&Normal", ID_VIEW_UPDATESPEED_NORMAL, CHECKED MENUITEM "&Baja", ID_VIEW_UPDATESPEED_LOW - MENUITEM "&Pausado", ID_VIEW_UPDATESPEED_PAUSED + MENUITEM "&Pausar", ID_VIEW_UPDATESPEED_PAUSED END MENUITEM SEPARATOR - MENUITEM "Iconos &Grandes", ID_VIEW_LARGE - MENUITEM "Iconos &Pequeños", ID_VIEW_SMALL + MENUITEM "Iconos &grandes", ID_VIEW_LARGE + MENUITEM "Iconos &pequeños", ID_VIEW_SMALL MENUITEM "&Detalles", ID_VIEW_DETAILS, CHECKED - MENUITEM "&Seleccionar Columnas...", ID_VIEW_SELECTCOLUMNS - POPUP "Historial de la &CPU" + MENUITEM "&Seleccionar columnas...", ID_VIEW_SELECTCOLUMNS + POPUP "Historial de &CPU" BEGIN - MENUITEM "&Una Gráfica, Todas las CPUs", ID_VIEW_CPUHISTORY_ONEGRAPHALL - MENUITEM "Una Gráfica, &Por CPU", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, CHECKED + MENUITEM "&Un gráfico de todas las CPU", ID_VIEW_CPUHISTORY_ONEGRAPHALL + MENUITEM "Un gráfico &por cada CPU", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, CHECKED END - MENUITEM "&Mostrar tiempos del Núcleo", ID_VIEW_SHOWKERNELTIMES + MENUITEM "&Mostrar cronología del kernel", ID_VIEW_SHOWKERNELTIMES END POPUP "&Ventanas" BEGIN - MENUITEM "Mosaico &Horizontal", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "Mosaico &Vertical", ID_WINDOWS_TILEVERTICALLY + MENUITEM "Mosaico &horizontal", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "Mosaico &vertical", ID_WINDOWS_TILEVERTICALLY MENUITEM "&Minimizar", ID_WINDOWS_MINIMIZE MENUITEM "Ma&ximizar", ID_WINDOWS_MAXIMIZE MENUITEM "&Cascada", ID_WINDOWS_CASCADE - MENUITEM "&Traer al Frente", ID_WINDOWS_BRINGTOFRONT + MENUITEM "&Traer al frente", ID_WINDOWS_BRINGTOFRONT END - POPUP "Sh&ut Down" + POPUP "Apaga&r" BEGIN - MENUITEM "Stand &By", ID_SHUTDOWN_STANDBY - MENUITEM "&Hibernate", ID_SHUTDOWN_HIBERNATE - MENUITEM "T&urn Off", ID_SHUTDOWN_POWEROFF - MENUITEM "&Restart", ID_SHUTDOWN_REBOOT - MENUITEM "&Log Off %s", ID_SHUTDOWN_LOGOFF - MENUITEM "&Switch User\tWinKey+L", ID_SHUTDOWN_SWITCHUSER, GRAYED - MENUITEM "Loc&k Computer\tWinKey+L", ID_SHUTDOWN_LOCKCOMPUTER - MENUITEM "&Disconnect", ID_SHUTDOWN_DISCONNECT, GRAYED - MENUITEM "&Eject Computer", ID_SHUTDOWN_EJECT_COMPUTER, GRAYED + MENUITEM "&Suspender", ID_SHUTDOWN_STANDBY + MENUITEM "&Hibernar", ID_SHUTDOWN_HIBERNATE + MENUITEM "&Apagar", ID_SHUTDOWN_POWEROFF + MENUITEM "&Reiniciar", ID_SHUTDOWN_REBOOT + MENUITEM "&Cerrar sesión de %s", ID_SHUTDOWN_LOGOFF + MENUITEM "&Cambiar usuario\tWin+L", ID_SHUTDOWN_SWITCHUSER, GRAYED + MENUITEM "&Bloquear equipo\tWin+L", ID_SHUTDOWN_LOCKCOMPUTER + MENUITEM "&Desconectar", ID_SHUTDOWN_DISCONNECT, GRAYED + MENUITEM "&Expulsar equipo", ID_SHUTDOWN_EJECT_COMPUTER, GRAYED END - POPUP "A&yuda" + POPUP "Ay&uda" BEGIN - MENUITEM "&Temas de Ayuda del Administrador de Tareas", ID_HELP_TOPICS + MENUITEM "&Temas de Ayuda del Administrador de tareas", ID_HELP_TOPICS MENUITEM SEPARATOR - MENUITEM "&Acerca del Administrador de Tareas", ID_HELP_ABOUT + MENUITEM "&Acerca del Administrador de tareas", ID_HELP_ABOUT END END IDR_WINDOWSMENU MENU BEGIN - MENUITEM "Mosaico &Horizontal", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "Mosaico &Vertical", ID_WINDOWS_TILEVERTICALLY + MENUITEM "Mosaico &horizontal", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "Mosaico &vertical", ID_WINDOWS_TILEVERTICALLY MENUITEM "&Minimizar", ID_WINDOWS_MINIMIZE MENUITEM "Ma&ximizar", ID_WINDOWS_MAXIMIZE MENUITEM "&Cascada", ID_WINDOWS_CASCADE - MENUITEM "&Traer al Frente", ID_WINDOWS_BRINGTOFRONT + MENUITEM "&Traer al frente", ID_WINDOWS_BRINGTOFRONT END IDR_APPLICATION_PAGE_CONTEXT1 MENU BEGIN POPUP "DUMMY" BEGIN - MENUITEM "&Nueva Tarea (Ejecutar...)", ID_FILE_NEW + MENUITEM "&Nueva tarea (Ejecutar...)", ID_FILE_NEW MENUITEM SEPARATOR - MENUITEM "Iconos &Grandes", ID_VIEW_LARGE - MENUITEM "Iconos &Pequeños", ID_VIEW_SMALL + MENUITEM "Iconos &grandes", ID_VIEW_LARGE + MENUITEM "Iconos &pequeños", ID_VIEW_SMALL MENUITEM "&Detalles", ID_VIEW_DETAILS, CHECKED END END @@ -94,17 +94,17 @@ IDR_APPLICATION_PAGE_CONTEXT2 MENU BEGIN POPUP "DUMMY" BEGIN - MENUITEM "&Cambiar A", ID_APPLICATION_PAGE_SWITCHTO - MENUITEM "&Traer al Frente", ID_WINDOWS_BRINGTOFRONT + MENUITEM "&Cambiar a", ID_APPLICATION_PAGE_SWITCHTO + MENUITEM "&Traer al frente", ID_WINDOWS_BRINGTOFRONT MENUITEM SEPARATOR - MENUITEM "Mosaico &Horizontal", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "Mosaico &Vertical", ID_WINDOWS_TILEVERTICALLY + MENUITEM "Mosaico &horizontal", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "Mosaico &vertical", ID_WINDOWS_TILEVERTICALLY MENUITEM "&Minimizar", ID_WINDOWS_MINIMIZE MENUITEM "Ma&ximizar", ID_WINDOWS_MAXIMIZE MENUITEM "Ca&scada", ID_WINDOWS_CASCADE MENUITEM SEPARATOR - MENUITEM "&Finalizar Tarea", ID_APPLICATION_PAGE_ENDTASK - MENUITEM "&Ir al Proceso", ID_APPLICATION_PAGE_GOTOPROCESS + MENUITEM "&Finalizar tarea", ID_APPLICATION_PAGE_ENDTASK + MENUITEM "&Ir al proceso", ID_APPLICATION_PAGE_GOTOPROCESS END END @@ -115,7 +115,7 @@ BEGIN MENUITEM "&Restaurar", ID_RESTORE MENUITEM "&Cerrar", ID_FILE_EXIT MENUITEM SEPARATOR - MENUITEM "&Siempre Visible", ID_OPTIONS_ALWAYSONTOP + MENUITEM "&Siempre visible", ID_OPTIONS_ALWAYSONTOP END END @@ -123,21 +123,21 @@ IDR_PROCESS_PAGE_CONTEXT MENU BEGIN POPUP "DUMMY" BEGIN - MENUITEM "&Finalizar Proceso", ID_PROCESS_PAGE_ENDPROCESS - MENUITEM "Finalizar &Árbol de Procesos", ID_PROCESS_PAGE_ENDPROCESSTREE - MENUITEM "&Depurador", ID_PROCESS_PAGE_DEBUG + MENUITEM "&Terminar proceso", ID_PROCESS_PAGE_ENDPROCESS + MENUITEM "Finalizar el ár&bol de procesos", ID_PROCESS_PAGE_ENDPROCESSTREE + MENUITEM "&Depurar", ID_PROCESS_PAGE_DEBUG MENUITEM SEPARATOR - POPUP "Establecer &Prioridad" + POPUP "Establecer &prioridad" BEGIN - MENUITEM "Tiempo-&Real", ID_PROCESS_PAGE_SETPRIORITY_REALTIME + MENUITEM "Tiempo &real", ID_PROCESS_PAGE_SETPRIORITY_REALTIME MENUITEM "&Alta", ID_PROCESS_PAGE_SETPRIORITY_HIGH - MENUITEM "Arr&iba de lo Normal", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL + MENUITEM "Por &encima de lo normal", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL MENUITEM "&Normal", ID_PROCESS_PAGE_SETPRIORITY_NORMAL - MENUITEM "&Debajo de lo Normal", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL + MENUITEM "Por &debajo de lo normal", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL MENUITEM "&Baja", ID_PROCESS_PAGE_SETPRIORITY_LOW END - MENUITEM "Establecer &Afinidad...", ID_PROCESS_PAGE_SETAFFINITY - MENUITEM "Editar &Canales de Depuración...", ID_PROCESS_PAGE_DEBUGCHANNELS + MENUITEM "Establecer &afinidad...", ID_PROCESS_PAGE_SETAFFINITY + MENUITEM "Editar &canales de depuración...", ID_PROCESS_PAGE_DEBUGCHANNELS END END @@ -148,7 +148,7 @@ END IDD_TASKMGR_DIALOG DIALOGEX 0, 0, 264, 246 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME -CAPTION "Administrador de Tareas" +CAPTION "Administrador de tareas" MENU IDR_TASKMANAGER FONT 8, "MS Shell Dlg" BEGIN @@ -161,9 +161,9 @@ FONT 8, "MS Shell Dlg" BEGIN CONTROL "List2", IDC_APPLIST, "SysListView32", LVS_REPORT | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 7, 7, 233, 177 - PUSHBUTTON "&Nueva Tarea...", IDC_NEWTASK, 187, 189, 53, 14 - PUSHBUTTON "&Cambiar A", IDC_SWITCHTO, 131, 189, 53, 14, WS_DISABLED - PUSHBUTTON "&Finalizar Tarea", IDC_ENDTASK, 75, 189, 53, 14, WS_DISABLED + PUSHBUTTON "&Nueva tarea...", IDC_NEWTASK, 187, 189, 53, 14 + PUSHBUTTON "&Cambiar a", IDC_SWITCHTO, 131, 189, 53, 14, WS_DISABLED + PUSHBUTTON "&Finalizar tarea", IDC_ENDTASK, 75, 189, 53, 14, WS_DISABLED END IDD_PROCESS_PAGE DIALOGEX 0, 0, 247, 210 @@ -172,9 +172,9 @@ FONT 8, "MS Shell Dlg" BEGIN CONTROL "List2", IDC_PROCESSLIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 7, 7, 233, 177 - PUSHBUTTON "&Finalizar Proceso", IDC_ENDPROCESS, 171, 189, 69, 14 - CONTROL "&Mostrar Procesos de todos los usuario", IDC_SHOWALLPROCESSES, "Button", - BS_AUTOCHECKBOX | WS_TABSTOP, 7, 191, 165, 10 + PUSHBUTTON "&Finalizar proceso", IDC_ENDPROCESS, 171, 189, 69, 14 + CONTROL "&Mostrar procesos de todos los usuarios", IDC_SHOWALLPROCESSES, "Button", + BS_AUTOCHECKBOX | WS_TABSTOP, 7, 191, 160, 10 END /* IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210 */ @@ -183,12 +183,12 @@ STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Uso de CPU", IDC_CPU_USAGE_FRAME, 5, 5, 60, 54, 0, WS_EX_TRANSPARENT - GROUPBOX "Uso de MEM", IDC_MEM_USAGE_FRAME, 5, 63, 60, 54, BS_LEFTTEXT, WS_EX_TRANSPARENT - GROUPBOX "Totales", IDC_TOTALS_FRAME, 5, 122, 111, 39, 0, WS_EX_TRANSPARENT + GROUPBOX "Memoria", IDC_MEM_USAGE_FRAME, 5, 63, 60, 54, BS_LEFTTEXT, WS_EX_TRANSPARENT + GROUPBOX "Sistema", IDC_TOTALS_FRAME, 5, 122, 111, 39, 0, WS_EX_TRANSPARENT GROUPBOX "Carga de transacciones (KB)", IDC_COMMIT_CHARGE_FRAME, 5, 166, 111, 39, 0, WS_EX_TRANSPARENT GROUPBOX "Memoria física (KB)", IDC_PHYSICAL_MEMORY_FRAME, 131, 122, 111, 39, 0, WS_EX_TRANSPARENT - GROUPBOX "Memoria del núcleo (KB)", IDC_KERNEL_MEMORY_FRAME, 131, 166, 111, 39, 0, WS_EX_TRANSPARENT - LTEXT "Identificadores", IDS_TOTALS_HANDLE_COUNT, 12, 131, 40, 8 + GROUPBOX "Memoria del kernel (KB)", IDC_KERNEL_MEMORY_FRAME, 131, 166, 111, 39, 0, WS_EX_TRANSPARENT + LTEXT "Identificadores", IDS_TOTALS_HANDLE_COUNT, 12, 131, 50, 8 LTEXT "Subprocesos", IDS_TOTALS_THREAD_COUNT, 12, 140, 40, 8 LTEXT "Procesos", IDS_TOTALS_PROCESS_COUNT, 12, 149, 34, 8 EDITTEXT IDC_TOTALS_HANDLE_COUNT, 65, 131, 45, 8, ES_RIGHT | ES_READONLY | @@ -208,33 +208,33 @@ BEGIN ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP LTEXT "Total", IDS_PHYSICAL_MEMORY_TOTAL, 137, 131, 27, 8 LTEXT "Disponible", IDS_PHYSICAL_MEMORY_AVAILABLE, 137, 140, 35, 8 - LTEXT "Caché sistema", IDS_PHYSICAL_MEMORY_SYSTEM_CACHE, 137, 149, 85, 8 + LTEXT "En caché", IDS_PHYSICAL_MEMORY_SYSTEM_CACHE, 137, 149, 85, 8 EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL, 185, 131, 48, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE, 185, 140, 48, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE, 185, 149, 48, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP - LTEXT "Total", IDS_KERNEL_MEMORY_TOTAL, 137, 174, 27, 8 + LTEXT "Total", IDS_KERNEL_MEMORY_TOTAL, 137, 175, 27, 8 LTEXT "Paginado", IDS_KERNEL_MEMORY_PAGED, 137, 184, 30, 8 - LTEXT "No-paginado", IDS_KERNEL_MEMORY_NONPAGED, 137, 193, 40, 8 + LTEXT "No paginado", IDS_KERNEL_MEMORY_NONPAGED, 137, 193, 40, 8 EDITTEXT IDC_KERNEL_MEMORY_TOTAL, 185, 174, 48, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP EDITTEXT IDC_KERNEL_MEMORY_PAGED, 185, 184, 48, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP EDITTEXT IDC_KERNEL_MEMORY_NONPAGED, 185, 193, 48, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP - GROUPBOX "Historial de uso de la CPU", IDC_CPU_USAGE_HISTORY_FRAME, 74, 5, 168, 54, 0, WS_EX_TRANSPARENT - GROUPBOX "Historial de uso de la Memoria", IDC_MEMORY_USAGE_HISTORY_FRAME, 74, 63, 168, 54, 0, WS_EX_TRANSPARENT - PUSHBUTTON "Display de uso de la CPU", IDC_CPU_USAGE_GRAPH, 12, 17, 47, 37, NOT WS_TABSTOP, WS_EX_CLIENTEDGE - PUSHBUTTON "Display de uso de la Memoria", IDC_MEM_USAGE_GRAPH, 12, 75, 47, 37, NOT WS_TABSTOP, WS_EX_CLIENTEDGE - PUSHBUTTON "Historial de uso de la CPU", IDC_CPU_USAGE_HISTORY_GRAPH, 81, 17, 153, 37, NOT WS_TABSTOP, WS_EX_CLIENTEDGE - PUSHBUTTON "Historial de uso de la Memoria", IDC_MEM_USAGE_HISTORY_GRAPH, 81, 75, 153, 37, NOT WS_TABSTOP, WS_EX_CLIENTEDGE + GROUPBOX "Historial de uso de CPU", IDC_CPU_USAGE_HISTORY_FRAME, 74, 5, 168, 54, 0, WS_EX_TRANSPARENT + GROUPBOX "Historial de uso de memoria física", IDC_MEMORY_USAGE_HISTORY_FRAME, 74, 63, 168, 54, 0, WS_EX_TRANSPARENT + PUSHBUTTON "Gráfico de uso de CPU", IDC_CPU_USAGE_GRAPH, 12, 17, 47, 37, NOT WS_TABSTOP, WS_EX_CLIENTEDGE + PUSHBUTTON "Gráfico de uso de memoria", IDC_MEM_USAGE_GRAPH, 12, 75, 47, 37, NOT WS_TABSTOP, WS_EX_CLIENTEDGE + PUSHBUTTON "Historial de uso de CPU", IDC_CPU_USAGE_HISTORY_GRAPH, 81, 17, 153, 37, NOT WS_TABSTOP, WS_EX_CLIENTEDGE + PUSHBUTTON "Historial de uso de memoria", IDC_MEM_USAGE_HISTORY_GRAPH, 81, 75, 153, 37, NOT WS_TABSTOP, WS_EX_CLIENTEDGE END IDD_DEBUG_CHANNELS_DIALOG DIALOGEX 0, 0, 247, 210 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Canales de Depuración" +CAPTION "Canales de depuración" FONT 8, "MS Shell Dlg" BEGIN CONTROL "List2", IDC_DEBUG_CHANNELS_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | @@ -244,22 +244,22 @@ END IDD_AFFINITY_DIALOG DIALOGEX 0, 0, 231, 154 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Afinidad del Procesador" +CAPTION "Afinidad del procesador" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "Aceptar", IDOK, 120, 133, 50, 14 PUSHBUTTON "Cancelar", IDCANCEL, 174, 133, 50, 14 - LTEXT "La Afinidad de Procesador que pone mandos sobre los cuales permitirán a las CPUs el proceso para ejecutar.", IDC_STATIC, 5, 5, 220, 16 - CONTROL "CPU 0", IDC_CPU0, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 11, 28, 37, 10 - CONTROL "CPU 1", IDC_CPU1, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 41, 37, 10 - CONTROL "CPU 2", IDC_CPU2, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 54, 37, 10 - CONTROL "CPU 3", IDC_CPU3, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 67, 37, 10 - CONTROL "CPU 4", IDC_CPU4, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 80, 37, 10 - CONTROL "CPU 5", IDC_CPU5, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 93, 37, 10 - CONTROL "CPU 6", IDC_CPU6, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 106, 37, 10 - CONTROL "CPU 7", IDC_CPU7, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 119, 37, 10 - CONTROL "CPU 8", IDC_CPU8, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 61, 28, 37, 10 - CONTROL "CPU 9", IDC_CPU9, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 61, 41, 37, 10 + LTEXT "El ajuste de afinidad de procesador controla las CPU en las que el proceso tendrá permiso para ejecutarse.", IDC_STATIC, 5, 5, 220, 16 + CONTROL "CPU 0", IDC_CPU0, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 11, 28, 37, 10 + CONTROL "CPU 1", IDC_CPU1, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 41, 37, 10 + CONTROL "CPU 2", IDC_CPU2, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 54, 37, 10 + CONTROL "CPU 3", IDC_CPU3, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 67, 37, 10 + CONTROL "CPU 4", IDC_CPU4, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 80, 37, 10 + CONTROL "CPU 5", IDC_CPU5, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 93, 37, 10 + CONTROL "CPU 6", IDC_CPU6, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 106, 37, 10 + CONTROL "CPU 7", IDC_CPU7, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 11, 119, 37, 10 + CONTROL "CPU 8", IDC_CPU8, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 61, 28, 37, 10 + CONTROL "CPU 9", IDC_CPU9, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 61, 41, 37, 10 CONTROL "CPU 10", IDC_CPU10, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 61, 54, 41, 10 CONTROL "CPU 11", IDC_CPU11, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 61, 67, 41, 10 CONTROL "CPU 12", IDC_CPU12, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 61, 80, 41, 10 @@ -286,58 +286,58 @@ END IDD_COLUMNS_DIALOG DIALOGEX 0, 0, 245, 199 // 0, 0, 195, 199 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Seleccionar Columnas" +CAPTION "Seleccionar columnas" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "Aceptar", IDOK, 126, 178, 50, 14 // 84 PUSHBUTTON "Cancelar", IDCANCEL, 180, 178, 50, 14 // 138 - LTEXT "Selecciona las columnas que aparecerán en la página de Procesos del Administrador de Tareas.", IDC_STATIC, 7, 7, 221, 17 // 181 - CONTROL "Nombre de la &Imagen", IDC_IMAGENAME, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 7, 28, 88, 10 // 56 - CONTROL "&PID (Identificador de Proceso)", IDC_PID, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 39, 120, 10 // 88 + LTEXT "Seleccione las columnas que aparecerán en la página de Procesos del Administrador de tareas.", IDC_STATIC, 7, 7, 221, 17 // 181 + CONTROL "Nombre de ruta de la &imagen", IDC_IMAGENAME, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 7, 28, 88, 10 // 56 + CONTROL "Identificador de proceso (&PID)", IDC_PID, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 39, 120, 10 // 88 CONTROL "Uso de &CPU", IDC_CPUUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 50, 53, 10 CONTROL "Ti&empo de CPU", IDC_CPUTIME, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 61, 65, 10 // 48 - CONTROL "Uso de &Memoria", IDC_MEMORYUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 72, 63, 10 + CONTROL "Uso de &memoria", IDC_MEMORYUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 72, 63, 10 CONTROL "Di&ferencia de uso de memoria", IDC_MEMORYUSAGEDELTA, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 83, 120, 10 // 82 - CONTROL "Uso má&ximo de la Memoria", IDC_PEAKMEMORYUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 94, 120, 10 // 82 - CONTROL "Err&ores de Página", IDC_PAGEFAULTS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 105, 80, 10 // 53 + CONTROL "Uso má&ximo de la memoria", IDC_PEAKMEMORYUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 94, 120, 10 // 82 + CONTROL "Err&ores de página", IDC_PAGEFAULTS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 105, 80, 10 // 53 CONTROL "O&bjetos de USUARIO", IDC_USEROBJECTS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 116, 80, 10 // 62 - CONTROL "Lecturas E/S", IDC_IOREADS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 127, 60, 10 // 49 - CONTROL "Bytes E/S Leidos", IDC_IOREADBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 138, 65, 10 - CONTROL "I&D de Sesion", IDC_SESSIONID, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 149, 65, 10 // 50 - CONTROL "&Nombre de Usuario", IDC_USERNAME, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 160, 75, 10 // 51 + CONTROL "Lecturas de E/S", IDC_IOREADS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 127, 60, 10 // 49 + CONTROL "Bytes de lectura de E/S", IDC_IOREADBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 138, 65, 10 + CONTROL "I&d. de sesión", IDC_SESSIONID, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 149, 65, 10 // 50 + CONTROL "&Nombre de usuario", IDC_USERNAME, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 160, 75, 10 // 51 CONTROL "Diferencia de erro&res de página", IDC_PAGEFAULTSDELTA, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 28, 120, 10 // 107, 60 - CONTROL "Tamaño de la Memoria &Virtual", IDC_VIRTUALMEMORYSIZE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 39, 120, 10 // 107, 60 + CONTROL "Tamaño de la memoria &virtual", IDC_VIRTUALMEMORYSIZE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 39, 120, 10 // 107, 60 CONTROL "B&loque paginado", IDC_PAGEDPOOL, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 50, 67, 10 // 107, 53 CONTROL "Blo&que no paginado", IDC_NONPAGEDPOOL, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 61, 115, 10 // 107 - CONTROL "P&rioridad Base", IDC_BASEPRIORITY, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 72, 80, 10 // 107 + CONTROL "P&rioridad base", IDC_BASEPRIORITY, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 72, 80, 10 // 107 CONTROL "&Recuento de identificadores", IDC_HANDLECOUNT, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 83, 59, 10 // 107 CONTROL "Nú&mero de subprocesos", IDC_THREADCOUNT, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 94, 59, 10 // 107 CONTROL "Objetos &GDI", IDC_GDIOBJECTS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 105, 55, 10 // 107 CONTROL "Escrituras de E/S", IDC_IOWRITES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 116, 90, 10 // 107 CONTROL "Bytes de escritura de E/S", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 127, 105, 10 // 107 CONTROL "Otros de E/S", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 138, 60, 10 - CONTROL "Otros Bytes de E/S", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 149, 75, 10 + CONTROL "Otros bytes de E/S", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 149, 75, 10 END /* String Tables */ STRINGTABLE BEGIN - IDS_APP_TITLE "Administrador de Tareas" - IDC_TASKMGR "Administrador de Tareas" - IDS_IDLE_PROCESS "System Idle Process" + IDS_APP_TITLE "Administrador de tareas" + IDC_TASKMGR "Administrador de tareas" + IDS_IDLE_PROCESS "Proceso inactivo del sistema" END STRINGTABLE BEGIN - ID_FILE_NEW "Ejecutar un nuevo Programa" - ID_OPTIONS_ALWAYSONTOP "El Administrador de Tareas permanece siempre visible excepto cuando este minimizado" - ID_OPTIONS_MINIMIZEONUSE "El Administrador de Tareas sera minimizado cuando una operación 'Cambiar A' se realice" - ID_OPTIONS_HIDEWHENMINIMIZED "Ocultar el Administrador de Tareas al minimizar" - ID_VIEW_REFRESH "Forzar el Administrador de Tareas a actualizar ahora, sin tener en cuenta ajuste de Velocidad de Actualización" + ID_FILE_NEW "Ejecutar un nuevo programa" + ID_OPTIONS_ALWAYSONTOP "El Administrador de tareas permanece siempre visible excepto cuando esté minimizado" + ID_OPTIONS_MINIMIZEONUSE "El Administrador de tareas se minimiza cuando se realiza una operación Cambiar a" + ID_OPTIONS_HIDEWHENMINIMIZED "Ocultar el Administrador de tareas al minimizar" + ID_VIEW_REFRESH "Actualizar el Administrador de tareas, sea cual sea la velocidad de actualización" ID_VIEW_LARGE "Mostrar tareas usando iconos grandes" ID_VIEW_SMALL "Mostrar tareas usando iconos pequeños" - ID_VIEW_DETAILS "Mostrar informacion acerca de cada tarea" + ID_VIEW_DETAILS "Mostrar información sobre cada tarea" ID_VIEW_UPDATESPEED_HIGH "Actualizar la vista dos veces por segundo" ID_VIEW_UPDATESPEED_NORMAL "Actualizar la vista cada dos segundos" ID_VIEW_UPDATESPEED_LOW "Actualizar la vista cada cuatro segundos" @@ -345,19 +345,19 @@ END STRINGTABLE BEGIN - ID_VIEW_UPDATESPEED_PAUSED "No actualizar automaticamente" + ID_VIEW_UPDATESPEED_PAUSED "No actualizar automáticamente" ID_WINDOWS_TILEHORIZONTALLY "Mostrar las ventanas horizontalmente sobre el escritorio" ID_WINDOWS_TILEVERTICALLY "Mostrar las ventanas verticalmente sobre el escritorio" ID_WINDOWS_MINIMIZE "Minimizar las ventanas" ID_WINDOWS_MAXIMIZE "Maximizar las ventanas" ID_WINDOWS_CASCADE "Mostrar las ventanas en diagonal sobre el escritorio en forma de cascada" - ID_WINDOWS_BRINGTOFRONT "Trae el frente de ventana, pero no cambiar a ella" - ID_HELP_TOPICS "Mostrar Temas de ayuda del Administrador de Tareas" + ID_WINDOWS_BRINGTOFRONT "Trae al frente la ventana, pero no cambia a ella" + ID_HELP_TOPICS "Mostrar Temas de ayuda del Administrador de tareas" ID_HELP_ABOUT "Mostrar información del programa, número de versión y copyright" - ID_FILE_EXIT "Cerrar el Administrador de Tareas" + ID_FILE_EXIT "Cierra el Administrador de tareas" ID_OPTIONS_SHOW16BITTASKS "Mostrar tareas de 16-bit bajo el ntvdm.exe asociado" - ID_VIEW_SELECTCOLUMNS "Seleccionar que columnas seran visibles en la pagina de Procesos" - ID_VIEW_SHOWKERNELTIMES "Mostrar tiempos del núcleo en los graficos de rendimiento" + ID_VIEW_SELECTCOLUMNS "Seleccione las columnas que serán visibles en la página de procesos" + ID_VIEW_SHOWKERNELTIMES "Muestra el tiempo del kernel en los gráficos de rendimiento" ID_VIEW_CPUHISTORY_ONEGRAPHALL "Un simple histograma muestra el uso total de la CPU" ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Cada CPU tiene su histograma propio" ID_APPLICATION_PAGE_SWITCHTO "Trae una tarea al primer plano, enfocar esa tarea" @@ -365,12 +365,12 @@ END STRINGTABLE BEGIN - ID_ENDTASK "Finalizar las tareas seleccionadas" + ID_ENDTASK "Terminar las tareas seleccionadas" ID_GOTOPROCESS "Enfocar el proceso de la tarea seleccionada" ID_RESTORE "Restaurar el Administrador de Tareas de su estado oculto" - ID_PROCESS_PAGE_ENDPROCESS "Eliminar el proceso del sistema" - ID_PROCESS_PAGE_ENDPROCESSTREE "Eliminar este proceso y todos sus subprocesos del sistema" - ID_PROCESS_PAGE_DEBUG "Ata a la depuración a este proceso" + ID_PROCESS_PAGE_ENDPROCESS "Finaliza el proceso" + ID_PROCESS_PAGE_ENDPROCESSTREE "Finaliza este proceso y todos sus subprocesos asociados" + ID_PROCESS_PAGE_DEBUG "Vincula el depurador a este proceso" ID_PROCESS_PAGE_SETAFFINITY "Controlar en que procesadores puede ejecutarse cada proceso" ID_PROCESS_PAGE_SETPRIORITY_REALTIME "Establece el proceso en prioridad de TIEMPO REAL" ID_PROCESS_PAGE_SETPRIORITY_HIGH "Establece el proceso en ALTA prioridad" @@ -387,57 +387,57 @@ BEGIN IDS_TAB_PERFORMANCE "Rendimiento" IDS_TAB_TASK "Tareas" IDS_TAB_STATUS "Estado" - IDS_TAB_IMAGENAME "Nombre de Imagen" + IDS_TAB_IMAGENAME "Nombre de imagen" IDS_TAB_PID "PID" - IDS_TAB_USERNAME "Nombre Usuario" + IDS_TAB_USERNAME "Nombre de usuario" IDS_TAB_SESSIONID "ID de sección" IDS_TAB_CPU "CPU" - IDS_TAB_CPUTIME "Tiempo CPU" - IDS_TAB_MEMUSAGE "Uso de Memoria" - IDS_TAB_PEAKMEMUSAGE "Pico uso de Memoria" - IDS_TAB_MEMDELTA "Diferencia de Memoria" - IDS_TAB_PAGEFAULT "Faltas de Pagina" + IDS_TAB_CPUTIME "Tiempo de CPU" + IDS_TAB_MEMUSAGE "Uso de memoria" + IDS_TAB_PEAKMEMUSAGE "Pico uso de memoria" + IDS_TAB_MEMDELTA "Diferencia de memoria" + IDS_TAB_PAGEFAULT "Fallos de página" IDS_TAB_PFDELTA "Diferencia de FP" - IDS_TAB_VMSIZE "Tamaño MV(Maquina Virtual)" - IDS_TAB_PAGEDPOOL "Grupo Paginado" + IDS_TAB_VMSIZE "Tamaño MV (máquina virtual)" + IDS_TAB_PAGEDPOOL "Grupo paginado" IDS_TAB_NPPOOL "Grupo NP" IDS_TAB_BASEPRI "Base Pri" - IDS_TAB_HANDLES "Manejadores" + IDS_TAB_HANDLES "Identificadores" IDS_TAB_THREADS "Hilos" IDS_TAB_USERPBJECTS "Objetos USER" IDS_TAB_GDIOBJECTS "Objetos GDI" - IDS_TAB_IOREADS "I/O Lectura" - IDS_TAB_IOWRITES "I/O Escrito" - IDS_TAB_IOOTHER "I/O Otro" - IDS_TAB_IOREADBYTES "I/O Bytes Leidos" - IDS_TAB_IOWRITESBYTES "I/O Bytes Escritos" - IDS_TAB_IOOTHERBYTES "I/O Otros Bytes" - IDS_MENU_SELECTCOLUMNS "&Seleccione Columnas..." - IDS_MENU_16BITTASK "Mos&trar tareas 16-bit" + IDS_TAB_IOREADS "Lecturas de E/S" + IDS_TAB_IOWRITES "Escrituras de E/S" + IDS_TAB_IOOTHER "Otros de E/S" + IDS_TAB_IOREADBYTES "Bytes de lectura de E/S" + IDS_TAB_IOWRITESBYTES "Bytes de escritura de E/S" + IDS_TAB_IOOTHERBYTES "Otros bytes de E/S" + IDS_MENU_SELECTCOLUMNS "&Seleccionar columnas..." + IDS_MENU_16BITTASK "Mos&trar tareas de 16-bit" IDS_MENU_WINDOWS "&Ventanas" - IDS_MENU_LARGEICONS "Iconos G&randes" - IDS_MENU_SMALLICONS "Iconos &Pequeños" + IDS_MENU_LARGEICONS "Iconos g&randes" + IDS_MENU_SMALLICONS "Iconos &pequeños" IDS_MENU_DETAILS "&Detalles" - IDS_MENU_ONEGRAPHALLCPUS "&Una Grafica, Todos CPUs" - IDS_MENU_ONEGRAPHPERCPU "Una Grafica &Por CPU" - IDS_MENU_CPUHISTORY "Historial &CPU" - IDS_MENU_SHOWKERNELTIMES "Mues&tra tiempos Núcleo" - IDS_CREATENEWTASK "Crear Tarea Nueva" - IDS_CREATENEWTASK_DESC "Escriba el nombre del programa, carpeta, documento o recurso de Internet que desea que ReactOS abra." - IDS_MSG_ACCESSPROCESSAFF "Incapaz de acceder o configurar la Afinidad del Proceso" - IDS_MSG_PROCESSONEPRO "El proceso debe tener afinidad con por lo menos un procesador." - IDS_MSG_INVALIDOPTION "Opción Invalida" - IDS_MSG_UNABLEDEBUGPROCESS "Incapaz de depurar proceso" - IDS_MSG_WARNINGDEBUG "ADVERTENCIA: La depuración de este proceso puede resultar en perdidad de data.\n¿Esta seguro que quiere usar el depurador?" - IDS_MSG_TASKMGRWARNING "Advertencia de Manejador de Tareas" - IDS_MSG_WARNINGTERMINATING "ADVERTENCIA: Si temina un proceso puede obtener resultados no\ndeseados como la pérdida de datos y la inestabilidad del sistema. El\nproceso no tendrá tiempo para guardar su estado o datos\nantes de ser terminado. ¿Está seguro que quiere terminar\nel proceso?" - IDS_MSG_UNABLETERMINATEPRO "Incapaz de cerrar el Proceso" - IDS_MSG_UNABLECHANGEPRIORITY "Incapaz de cambiar la prioridad" - IDS_MSG_WARNINGCHANGEPRIORITY "Advertencia: Si cambia la clase de prioridad de este proceso, puede\nobtener resultados no deseados, incluso la inestabilidad del sistema. ¿Está seguro que\ndesea cambiar la Clase de Prioridad?" + IDS_MENU_ONEGRAPHALLCPUS "&Un gráfico de todas las CPU" + IDS_MENU_ONEGRAPHPERCPU "Un gráfico &por CPU" + IDS_MENU_CPUHISTORY "Historial de &CPU" + IDS_MENU_SHOWKERNELTIMES "Mostrar cronología del &kernel" + IDS_CREATENEWTASK "Crear nueva tarea" + IDS_CREATENEWTASK_DESC "Escriba el nombre del programa, carpeta, documento o recurso de Internet que desea abrir con ReactOS." + IDS_MSG_ACCESSPROCESSAFF "No se pudo acceder o configurar la afinidad del proceso" + IDS_MSG_PROCESSONEPRO "El proceso debe tener afinidad al menos con un procesador." + IDS_MSG_INVALIDOPTION "Opción no válida" + IDS_MSG_UNABLEDEBUGPROCESS "No se pudo depurar el proceso" + IDS_MSG_WARNINGDEBUG "ADVERTENCIA: La depuración de este proceso puede resultar en perdidad de datos.\n¿Esta seguro que quiere usar el depurador?" + IDS_MSG_TASKMGRWARNING "Advertencia del Administrador de tareas" + IDS_MSG_WARNINGTERMINATING "ADVERTENCIA: Si finaliza un proceso puede obtener resultados no\ndeseados como la pérdida de datos y la inestabilidad del sistema. El\nproceso no tendrá tiempo para guardar su estado o datos\nantes de cerrarse. ¿Está seguro que desea continuar?" + IDS_MSG_UNABLETERMINATEPRO "No se pudo finalizar el proceso" + IDS_MSG_UNABLECHANGEPRIORITY "No se pudo cambiar la prioridad" + IDS_MSG_WARNINGCHANGEPRIORITY "Advertencia: El cambio de prioridad en ciertos procesos podría provocar la inestabilidad del sistema.\n¿Seguro que desea cambiar la prioridad?" IDS_MSG_TRAYICONCPUUSAGE "Promedio CPU: %d%%" - IDS_STATUS_MEMUSAGE "Uso Memoria: %dK / %dK" - IDS_STATUS_CPUUSAGE "Uso CPU: %3d%%" + IDS_STATUS_MEMUSAGE "Uso de memoria: %dK / %dK" + IDS_STATUS_CPUUSAGE "Uso de CPU: %3d%%" IDS_STATUS_PROCESSES "Procesos: %d" - IDS_NOT_RESPONDING "No Responde" - IDS_RUNNING "Funcionando" + IDS_NOT_RESPONDING "No responde" + IDS_RUNNING "En ejecución" END diff --git a/base/applications/taskmgr/lang/ru-RU.rc b/base/applications/taskmgr/lang/ru-RU.rc index 6f1cb8f7697..4fc295e1b22 100644 --- a/base/applications/taskmgr/lang/ru-RU.rc +++ b/base/applications/taskmgr/lang/ru-RU.rc @@ -1,4 +1,4 @@ -/* Russian language resource file (Dmitry Chapyshev, 2007-06-10) */ +/* Russian language resource file by Dmitry Chapyshev, 2007-06-10, Kudratov Olimjon (olim98@bk.ru) */ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT @@ -190,7 +190,7 @@ BEGIN GROUPBOX "Память ядра (КБ)", IDC_KERNEL_MEMORY_FRAME, 131, 166, 111, 39, 0, WS_EX_TRANSPARENT LTEXT "Дескрипторов", IDS_TOTALS_HANDLE_COUNT, 12, 131, 57, 8 LTEXT "Потоков", IDS_TOTALS_THREAD_COUNT, 12, 140, 30, 8 - LTEXT "Процессов", IDS_TOTALS_PROCESS_COUNT, 12, 149, 34, 8 + LTEXT "Процессов", IDS_TOTALS_PROCESS_COUNT, 12, 149, 36, 8 EDITTEXT IDC_TOTALS_HANDLE_COUNT, 65, 131, 45, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP EDITTEXT IDC_TOTALS_THREAD_COUNT, 65, 140, 45, 8, ES_RIGHT | ES_READONLY | @@ -209,20 +209,20 @@ BEGIN LTEXT "Всего", IDS_PHYSICAL_MEMORY_TOTAL, 137, 131, 27, 8 LTEXT "Доступно", IDS_PHYSICAL_MEMORY_AVAILABLE, 137, 140, 33, 8 LTEXT "Системный кэш", IDS_PHYSICAL_MEMORY_SYSTEM_CACHE, 137, 149, 80, 8 - EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL, 192, 131, 41, 8, ES_RIGHT | ES_READONLY | + EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL, 184, 131, 49, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE, 185, 140, 48, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE, 185, 149, 48, 8, ES_RIGHT | ES_READONLY | + EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE, 190, 149, 43, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP LTEXT "Всего", IDS_KERNEL_MEMORY_TOTAL, 137, 174, 27, 8 LTEXT "Выгружаемая", IDS_KERNEL_MEMORY_PAGED, 137, 184, 50, 8 LTEXT "Невыгружаемая", IDS_KERNEL_MEMORY_NONPAGED, 137, 193, 80, 8 - EDITTEXT IDC_KERNEL_MEMORY_TOTAL, 192, 174, 41, 8, ES_RIGHT | ES_READONLY | + EDITTEXT IDC_KERNEL_MEMORY_TOTAL, 195, 174, 41, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_KERNEL_MEMORY_PAGED, 185, 184, 48, 8, ES_RIGHT | ES_READONLY | + EDITTEXT IDC_KERNEL_MEMORY_PAGED, 195, 184, 48, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_KERNEL_MEMORY_NONPAGED, 185, 193, 48, 8, ES_RIGHT | ES_READONLY | + EDITTEXT IDC_KERNEL_MEMORY_NONPAGED, 195, 194, 48, 8, ES_RIGHT | ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP GROUPBOX "Хронология загрузки ЦП", IDC_CPU_USAGE_HISTORY_FRAME, 74, 5, 168, 54, 0, WS_EX_TRANSPARENT GROUPBOX "Хронология использования файла подкачки", IDC_MEMORY_USAGE_HISTORY_FRAME, 74, 63, 168, 54, 0, WS_EX_TRANSPARENT @@ -367,7 +367,7 @@ STRINGTABLE BEGIN ID_ENDTASK "Сообщает выбранным задачам о необходимости завершиться" ID_GOTOPROCESS "Переносит выбранный процесс на передний план" - ID_RESTORE "Востанавливает Менеджер задач из скрытого состояния" + ID_RESTORE "Восстанавливает Диспетчер задач из скрытого состояния" ID_PROCESS_PAGE_ENDPROCESS "Завершает процесс в системе" ID_PROCESS_PAGE_ENDPROCESSTREE "Завершает процесс и все его дочерние процессы в системе" ID_PROCESS_PAGE_DEBUG "Прикрепляет отладчик к выбранному процессу" diff --git a/base/applications/taskmgr/precomp.h b/base/applications/taskmgr/precomp.h index e70ffa3fd36..f6bc6813170 100644 --- a/base/applications/taskmgr/precomp.h +++ b/base/applications/taskmgr/precomp.h @@ -5,6 +5,7 @@ #error Task-Manager uses NDK functions, so it can only be compiled with Unicode support enabled! #endif +#include #include #include diff --git a/base/applications/taskmgr/taskmgr.c b/base/applications/taskmgr/taskmgr.c index 01a73b296b8..2eb384b6af9 100644 --- a/base/applications/taskmgr/taskmgr.c +++ b/base/applications/taskmgr/taskmgr.c @@ -564,13 +564,17 @@ BOOL OnCreate(HWND hWnd) HMENU hMenu; HMENU hEditMenu; HMENU hViewMenu; + HMENU hShutMenu; HMENU hUpdateSpeedMenu; HMENU hCPUHistoryMenu; int nActivePage; int nParts[3]; RECT rc; WCHAR szTemp[256]; + WCHAR szLogOffItem[MAX_PATH]; + LPWSTR lpUserName; TCITEM item; + DWORD len = 0; SendMessageW(hMainWnd, WM_SETICON, ICON_BIG, (LPARAM)LoadIconW(hInst, MAKEINTRESOURCEW(IDI_TASKMANAGER))); @@ -653,8 +657,9 @@ BOOL OnCreate(HWND hWnd) hMenu = GetMenu(hWnd); hEditMenu = GetSubMenu(hMenu, 1); hViewMenu = GetSubMenu(hMenu, 2); + hShutMenu = GetSubMenu(hMenu, 4); hUpdateSpeedMenu = GetSubMenu(hViewMenu, 1); - hCPUHistoryMenu = GetSubMenu(hViewMenu, 7); + hCPUHistoryMenu = GetSubMenu(hViewMenu, 7); /* Check or uncheck the always on top menu item */ if (TaskManagerSettings.AlwaysOnTop) { @@ -704,6 +709,35 @@ BOOL OnCreate(HWND hWnd) TabCtrl_SetCurFocus/*Sel*/(hTabWnd, 2); TabCtrl_SetCurFocus/*Sel*/(hTabWnd, nActivePage); + /* Set the username in the "Log Off %s" item of the Shutdown menu */ + + /* 1- Get the menu item text and store it temporarily */ + GetMenuStringW(hShutMenu, ID_SHUTDOWN_LOGOFF, szTemp, 256, MF_BYCOMMAND); + + /* 2- Retrieve the username length first, then allocate a buffer for it and call it again */ + if (!GetUserNameW(NULL, &len) && GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + lpUserName = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len * sizeof(WCHAR)); + if (lpUserName && GetUserNameW(lpUserName, &len)) + { + _snwprintf(szLogOffItem, sizeof(szLogOffItem)/sizeof(szLogOffItem[0]), szTemp, lpUserName); + szLogOffItem[sizeof(szLogOffItem)/sizeof(szLogOffItem[0]) - 1] = UNICODE_NULL; + } + else + { + _snwprintf(szLogOffItem, sizeof(szLogOffItem)/sizeof(szLogOffItem[0]), szTemp, L"n/a"); + } + + if (lpUserName) HeapFree(GetProcessHeap(), 0, lpUserName); + } + else + { + _snwprintf(szLogOffItem, sizeof(szLogOffItem)/sizeof(szLogOffItem[0]), szTemp, L"n/a"); + } + + /* 3- Set the menu item text to its formatted counterpart */ + ModifyMenuW(hShutMenu, ID_SHUTDOWN_LOGOFF, MF_BYCOMMAND | MF_STRING, ID_SHUTDOWN_LOGOFF, szLogOffItem); + /* Setup update speed */ SetUpdateSpeed(hWnd); diff --git a/base/applications/winhlp32/lang/Es.rc b/base/applications/winhlp32/lang/Es.rc index 303a0557010..20a5ceb325c 100644 --- a/base/applications/winhlp32/lang/Es.rc +++ b/base/applications/winhlp32/lang/Es.rc @@ -3,7 +3,8 @@ * * Copyright 1996 Ulrich Schmid * Copyright 2002 Sylvain Petreolle - * Copyright 2003, 2004 Jos Manuel Ferrer Ortiz + * Copyright 2003, 2004 José Manuel Ferrer Ortiz + * Copyright 2014 Ismael Ferreras Morezuelas * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -28,31 +29,31 @@ MAIN_MENU MENU MENUITEM "A&brir...", MNID_FILE_OPEN MENUITEM SEPARATOR MENUITEM "&Imprimir", MNID_FILE_PRINT - MENUITEM "&Configuracin impresora...", MNID_FILE_SETUP + MENUITEM "&Ajustes de impresión...", MNID_FILE_SETUP MENUITEM SEPARATOR - MENUITEM "&Salir", MNID_FILE_EXIT + MENUITEM "&Salir", MNID_FILE_EXIT } POPUP "&Editar" { - MENUITEM "&Copiar...", MNID_EDIT_COPYDLG + MENUITEM "&Copiar...", MNID_EDIT_COPYDLG MENUITEM SEPARATOR - MENUITEM "&Anotar...", MNID_EDIT_ANNOTATE + MENUITEM "&Anotar...", MNID_EDIT_ANNOTATE } POPUP "&Marcador" { - MENUITEM "&Definir...", MNID_BKMK_DEFINE + MENUITEM "&Definir...", MNID_BKMK_DEFINE } POPUP "&Opciones" { - MENUITEM "Historial", MNID_OPTS_HISTORY - POPUP "Fuentes" + MENUITEM "Historial", MNID_OPTS_HISTORY + POPUP "Tamaño de letra" BEGIN - MENUITEM "Pequea", MNID_OPTS_FONTS_SMALL - MENUITEM "Normal", MNID_OPTS_FONTS_NORMAL - MENUITEM "Grande", MNID_OPTS_FONTS_LARGE + MENUITEM "Pequeña", MNID_OPTS_FONTS_SMALL + MENUITEM "Normal", MNID_OPTS_FONTS_NORMAL + MENUITEM "Grande", MNID_OPTS_FONTS_LARGE END } POPUP "A&yuda" { - MENUITEM "&Ayuda sobre la ayuda", MNID_HELP_HELPON - MENUITEM "&Siempre visible", MNID_HELP_HELPTOP - MENUITEM "&Info...", MNID_HELP_ABOUT + MENUITEM "&Ayuda sobre la ayuda", MNID_HELP_HELPON + MENUITEM "&Siempre visible", MNID_HELP_HELPTOP + MENUITEM "&Acerca de la Ayuda de Wine...", MNID_HELP_ABOUT } } @@ -60,40 +61,40 @@ CONTEXT_MENU MENU BEGIN POPUP "" BEGIN - MENUITEM "Annotation...", MNID_CTXT_ANNOTATE - MENUITEM "Copy", MNID_CTXT_COPY - MENUITEM "Print...", MNID_CTXT_PRINT - POPUP "Fonts" + MENUITEM "Anotar...", MNID_CTXT_ANNOTATE + MENUITEM "Copiar", MNID_CTXT_COPY + MENUITEM "Imprimir...", MNID_CTXT_PRINT + POPUP "Tamaño de letra" BEGIN - MENUITEM "Small", MNID_CTXT_FONTS_SMALL - MENUITEM "Normal", MNID_CTXT_FONTS_NORMAL - MENUITEM "Large", MNID_CTXT_FONTS_LARGE + MENUITEM "Pequeña", MNID_CTXT_FONTS_SMALL + MENUITEM "Normal", MNID_CTXT_FONTS_NORMAL + MENUITEM "Grande", MNID_CTXT_FONTS_LARGE END END END STRINGTABLE { -STID_WINE_HELP, "Ayuda de Wine" -STID_WHERROR, "ERROR" -STID_WARNING, "ADVERTENCIA" -STID_INFO, "Informacin" -STID_NOT_IMPLEMENTED, "An no implementado" -STID_HLPFILE_ERROR_s, "Error al leer el archivo de ayuda `%s'" -STID_INDEX, "&ndice" -STID_CONTENTS, "Resumen" -STID_BACK, "&Anterior" -STID_ALL_FILES, "Todos los archivos (*.*)" -STID_HELP_FILES_HLP, "Archivos de ayuda (*.hlp)" -STID_FILE_NOT_FOUND_s "No se pudo encontrar '%s'. Desea buscar este archivo usted mismo?" -STID_NO_RICHEDIT "No se pudo encontrar una implementacin de richedit... Abortando" -STID_PSH_INDEX, "Temas de ayuda: " +STID_WINE_HELP, "Ayuda de Wine" +STID_WHERROR, "ERROR" +STID_WARNING, "ADVERTENCIA" +STID_INFO, "Información" +STID_NOT_IMPLEMENTED, "Aún no implementado" +STID_HLPFILE_ERROR_s, "Error al leer el archivo de ayuda `%s'" +STID_INDEX, "&Índice" +STID_CONTENTS, "Resumen" +STID_BACK, "&Anterior" +STID_ALL_FILES, "Todos los archivos (*.*)" +STID_HELP_FILES_HLP, "Archivos de ayuda (*.hlp)" +STID_FILE_NOT_FOUND_s "No se pudo encontrar '%s'. ¿Desea buscar este archivo por sí mismo?" +STID_NO_RICHEDIT "No se pudo encontrar una implementación de RichEdit... Cancelando." +STID_PSH_INDEX, "Temas de ayuda: " } IDD_INDEX DIALOG 0, 0, 200, 190 STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" -CAPTION "ndice" +CAPTION "Índice" { LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER } @@ -103,5 +104,5 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" CAPTION "Buscar" { - LTEXT "An no implementado", -1, 10, 10, 180, 150 + LTEXT "Aún no implementado", -1, 10, 10, 180, 150 } diff --git a/base/applications/wordpad/lang/Es.rc b/base/applications/wordpad/lang/Es.rc new file mode 100644 index 00000000000..76db69d95e3 --- /dev/null +++ b/base/applications/wordpad/lang/Es.rc @@ -0,0 +1,262 @@ +/* + * Copyright 2004 by Krzysztof Foltman + * Copyright 2014 Ismael Ferreras Morezuelas + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL + +IDM_MAINMENU MENU +BEGIN + POPUP "&Archivo" + BEGIN + MENUITEM "&Nuevo...\tCtrl+N", ID_FILE_NEW + MENUITEM "&Abrir...\tCtrl+O", ID_FILE_OPEN + MENUITEM "&Guardar\tCtrl+S", ID_FILE_SAVE + MENUITEM "Guardar &como...", ID_FILE_SAVEAS + MENUITEM SEPARATOR + MENUITEM "&Imprimir...\tCtrl+P", ID_PRINT + MENUITEM "&Vista previa de impresión", ID_PREVIEW + MENUITEM "&Configuración de página...", ID_PRINTSETUP + MENUITEM SEPARATOR + MENUITEM "&Salir", ID_FILE_EXIT + END + POPUP "&Edición" + BEGIN + MENUITEM "&Deshacer\tCtrl+Z", ID_EDIT_UNDO + MENUITEM "&Rehacer\tCtrl+Y", ID_EDIT_REDO + MENUITEM SEPARATOR + MENUITEM "&Cortar\tCtrl+X", ID_EDIT_CUT + MENUITEM "Cop&iar\tCtrl+C", ID_EDIT_COPY + MENUITEM "&Pegar\tCtrl+V", ID_EDIT_PASTE + MENUITEM "&Borrar todo\tDel", ID_EDIT_CLEAR + MENUITEM "S&eleccionar todo\tCtrl+A", ID_EDIT_SELECTALL + MENUITEM SEPARATOR + MENUITEM "&Buscar...\tCtrl+F", ID_FIND + MENUITEM "&Buscar siguiente\tF3", ID_FIND_NEXT + MENUITEM "&Reemplazar...\tCtrl+H", ID_REPLACE + MENUITEM SEPARATOR + MENUITEM "Sólo &lectura", ID_EDIT_READONLY + MENUITEM "&Modificado", ID_EDIT_MODIFIED + MENUITEM SEPARATOR + POPUP "E&xtras" + BEGIN + MENUITEM "&Información de selección", ID_EDIT_SELECTIONINFO + MENUITEM "Formato de caracteres", ID_EDIT_CHARFORMAT + MENUITEM "&Formato de caracteres por defecto", ID_EDIT_DEFCHARFORMAT + MENUITEM "&Formato de párrafo", ID_EDIT_PARAFORMAT + MENUITEM "&Mostrar texto", ID_EDIT_GETTEXT + END + END + POPUP "&Ver" + BEGIN + MENUITEM "&Barra de herramientas", ID_TOGGLE_TOOLBAR + MENUITEM "&Barra de formato", ID_TOGGLE_FORMATBAR + MENUITEM "&Regla", ID_TOGGLE_RULER + MENUITEM "&Barra de estado", ID_TOGGLE_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "&Opciones...", ID_VIEWPROPERTIES + END + POPUP "&Insertar" + BEGIN + MENUITEM "&Fecha y hora...", ID_DATETIME + END + POPUP "F&ormato" + BEGIN + MENUITEM "&Fuente...", ID_FONTSETTINGS + MENUITEM "&Viñetas", ID_BULLET + MENUITEM "&Párrafo...", ID_PARAFORMAT + MENUITEM "&Tabulación...", ID_TABSTOPS + POPUP "&Fondo" + BEGIN + MENUITEM "&Sistema\tCtrl+1", ID_BACK_1 + MENUITEM "&Amarillo pálido\tCtrl+2", ID_BACK_2 + END + END + POPUP "&Ayuda" + BEGIN + MENUITEM "&Acerca del Wordpad de Wine", ID_ABOUT + END +END + +IDM_POPUP MENU +BEGIN + POPUP "" + BEGIN + MENUITEM "&Cortar", ID_EDIT_CUT + MENUITEM "Cop&iar", ID_EDIT_COPY + MENUITEM "P&egar", ID_EDIT_PASTE + MENUITEM SEPARATOR + MENUITEM "&Viñetas", ID_BULLET + MENUITEM "&Párrafo...", ID_PARAFORMAT + END +END + +IDM_COLOR_POPUP MENU +BEGIN + POPUP "" + BEGIN + MENUITEM "Negro", ID_COLOR_BLACK + MENUITEM "Granate", ID_COLOR_MAROON + MENUITEM "Verde", ID_COLOR_GREEN + MENUITEM "Aceitunado", ID_COLOR_OLIVE + MENUITEM "Azul marino", ID_COLOR_NAVY + MENUITEM "Morado", ID_COLOR_PURPLE + MENUITEM "Verde azulado", ID_COLOR_TEAL + MENUITEM "Gris", ID_COLOR_GRAY + MENUITEM "Plateado", ID_COLOR_SILVER + MENUITEM "Rojo", ID_COLOR_RED + MENUITEM "Lima", ID_COLOR_LIME + MENUITEM "Amarillo", ID_COLOR_YELLOW + MENUITEM "Azul", ID_COLOR_BLUE + MENUITEM "Fucsia", ID_COLOR_FUCHSIA + MENUITEM "Aguamarina", ID_COLOR_AQUA + MENUITEM "Blanco", ID_COLOR_WHITE + MENUITEM "Automático", ID_COLOR_AUTOMATIC + END +END + +STRINGTABLE +BEGIN + STRING_ALL_FILES, "Todos los documentos (*.*)" + STRING_TEXT_FILES_TXT, "Documentos de texto (*.txt)" + STRING_TEXT_FILES_UNICODE_TXT, "Documentos de texto Unicode (*.txt)" + STRING_RICHTEXT_FILES_RTF, "Texto en formato enriquecido (*.rtf)" + STRING_NEWFILE_RICHTEXT, "Documento de texto enriquecido" + STRING_NEWFILE_TXT, "Documento de texto" + STRING_NEWFILE_TXT_UNICODE, "Documento de texto Unicode" + STRING_PRINTER_FILES_PRN, "Archivos de impresión (*.prn)" +END + +STRINGTABLE +BEGIN + STRING_ALIGN_LEFT, "Izquierda" + STRING_ALIGN_RIGHT, "Derecha" + STRING_ALIGN_CENTER, "Centrado" +END + +STRINGTABLE +BEGIN + STRING_VIEWPROPS_TITLE, "Opciones" + STRING_VIEWPROPS_TEXT, "Texto" + STRING_VIEWPROPS_RICHTEXT, "Texto enriquecido" +END + +STRINGTABLE +BEGIN + STRING_PREVIEW_PRINT, "Imprimir" + STRING_PREVIEW_NEXTPAGE, "Siguiente página" + STRING_PREVIEW_PREVPAGE, "Página anterior" + STRING_PREVIEW_TWOPAGES, "Dos páginas" + STRING_PREVIEW_ONEPAGE, "Una página" + STRING_PREVIEW_ZOOMIN, "Acercar" + STRING_PREVIEW_ZOOMOUT, "Alejar" + STRING_PREVIEW_CLOSE, "Cerrar" + STRING_PREVIEW_PAGE, "Página" + STRING_PREVIEW_PAGES, "Páginas" + STRING_UNITS_CM, "cm" + STRING_UNITS_IN, "in" + STRING_UNITS_INCH, "pulgadas" + STRING_UNITS_PT, "pt" +END + +STRINGTABLE +BEGIN + STRING_DEFAULT_FILENAME, "Documento" + STRING_PROMPT_SAVE_CHANGES, "¿Guardar cambios a '%s'?" + STRING_SEARCH_FINISHED, "Ha terminado la búsqueda en el documento." + STRING_LOAD_RICHED_FAILED, "No se ha podido cargar la biblioteca RichEdit." + STRING_SAVE_LOSEFORMATTING, "Has elegido guardar en formato de texto plano, lo que causará que se pierda todo el formato. ¿Seguro que quieres hacerlo?" + STRING_INVALID_NUMBER, "El formato numérico no es válido." + STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage documents are not supported." + STRING_WRITE_FAILED, "No se pudo guardar el archivo." + STRING_WRITE_ACCESS_DENIED, "No hay permisos suficientes para escribir en el archivo." + STRING_OPEN_FAILED, "No se pudo leer el archivo." + STRING_OPEN_ACCESS_DENIED, "No hay permisos suficientes para abrir el archivo." + STRING_PRINTING_NOT_IMPLEMENTED, "La impresión todavía no se ha implementado." + STRING_MAX_TAB_STOPS, "No se pueden añadir más de 32 marcas de tabulación." +END + +IDD_DATETIME DIALOG 30, 20, 130, 80 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Fecha y hora" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Formatos disponibles",-1,3,2,100,15 + LISTBOX IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY + DEFPUSHBUTTON "Aceptar",IDOK,87,12,40,12 + PUSHBUTTON "Cancelar",IDCANCEL,87,26,40,12 +END + +IDD_NEWFILE DIALOG 30, 20, 140, 80 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Nuevo" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Nuevo tipo de documento",-1,3,2,100,15 + LISTBOX IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT + DEFPUSHBUTTON "Aceptar",IDOK,97,12,40,12 + PUSHBUTTON "Cancelar",IDCANCEL,97,26,40,12 +END + +IDD_PARAFORMAT DIALOG 30, 20, 220, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Formato de párrafo" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Sangría", -1, 10, 10, 140, 68 + LTEXT "Izquierda", -1, 15, 22, 60, 13 + EDITTEXT IDC_PARA_LEFT, 75, 20, 65, 13 + LTEXT "Derecha", -1, 15, 40, 60, 13 + EDITTEXT IDC_PARA_RIGHT, 75, 38, 65, 13 + LTEXT "Primera línea", -1, 15, 58, 60, 13 + EDITTEXT IDC_PARA_FIRST, 75, 56, 65, 13 + LTEXT "Alineación", -1, 15, 87, 60, 13 + COMBOBOX IDC_PARA_ALIGN, 75, 85, 65, 60, CBS_DROPDOWNLIST + DEFPUSHBUTTON "Aceptar", IDOK, 160, 15, 50, 15 + PUSHBUTTON "Cancelar", IDCANCEL, 160, 33, 50, 15 +END + +IDD_TABSTOPS DIALOG 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Pestañas" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Marcas de tabulación", -1, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE + DEFPUSHBUTTON "&Añadir", ID_TAB_ADD, 20, 80, 45, 15 + PUSHBUTTON "&Borrar", ID_TAB_DEL, 72, 80, 45, 15 + PUSHBUTTON "Aceptar", IDOK, 135, 15, 58, 15 + PUSHBUTTON "Cancelar", IDCANCEL, 135, 33, 58, 15 + PUSHBUTTON "Borrar todo", ID_TAB_EMPTY, 135, 51, 58, 15 +END + +IDD_FORMATOPTS DIALOG 0, 0, 280, 110 +STYLE DS_SYSMODAL +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Ajuste de línea", -1, 5, 10, 145, 85 + RADIOBUTTON "&Sin ajuste de línea", IDC_PAGEFMT_WN, 10, 25, 138, 15 + RADIOBUTTON "Ajustar texto a la ventana", IDC_PAGEFMT_WW, 10, 45, 138, 15 + RADIOBUTTON "Ajustar texto al margen", IDC_PAGEFMT_WM, 10, 65, 138, 15 + GROUPBOX "Barras de herramientas", -1, 155, 10, 115, 85 + CHECKBOX "&Barra de herramientas", IDC_PAGEFMT_TB, 165, 20, 80, 15 + CHECKBOX "&Barra de formato", IDC_PAGEFMT_FB, 165, 38, 80, 15 + CHECKBOX "&Regla", IDC_PAGEFMT_RU, 165, 56, 80, 15 + CHECKBOX "&Barra de estado", IDC_PAGEFMT_SB, 165, 74, 80, 15 + LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0 +END diff --git a/base/applications/wordpad/rsrc.rc b/base/applications/wordpad/rsrc.rc index e8c5bae4d48..abfc186057a 100644 --- a/base/applications/wordpad/rsrc.rc +++ b/base/applications/wordpad/rsrc.rc @@ -86,6 +86,9 @@ IDC_ZOOM CURSOR "res/zoom.cur" #ifdef LANGUAGE_DE_DE #include "lang/De.rc" #endif +#ifdef LANGUAGE_ES_ES + #include "lang/Es.rc" +#endif #ifdef LANGUAGE_FR_FR #include "lang/Fr.rc" #endif diff --git a/base/applications/write/lang/Es.rc b/base/applications/write/lang/Es.rc index 6e41bd0ec51..5c44eb9a5dc 100644 --- a/base/applications/write/lang/Es.rc +++ b/base/applications/write/lang/Es.rc @@ -2,6 +2,7 @@ * Spanish language support * * Copyright 2010 José Rostagno + * Copyright 2014 Ismael Ferreras Morezuelas * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -28,5 +29,5 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL STRINGTABLE { - IDS_FAILED, "Fallo inicio Wordpad" + IDS_FAILED, "Se produjo un fallo al iniciar Wordpad." } diff --git a/base/services/umpnpmgr/umpnpmgr.c b/base/services/umpnpmgr/umpnpmgr.c index c28d9ab157b..d6e6afa960a 100644 --- a/base/services/umpnpmgr/umpnpmgr.c +++ b/base/services/umpnpmgr/umpnpmgr.c @@ -169,6 +169,8 @@ NtStatusToCrError(NTSTATUS Status) { case STATUS_NO_SUCH_DEVICE: return CR_NO_SUCH_DEVINST; + case STATUS_NOT_IMPLEMENTED: + return CR_CALL_NOT_IMPLEMENTED; default: /* FIXME: add more mappings */ @@ -1223,8 +1225,34 @@ PNP_GetInterfaceDeviceList( PNP_RPC_BUFFER_SIZE *pulLength, DWORD ulFlags) { - UNIMPLEMENTED; - return CR_CALL_NOT_IMPLEMENTED; + NTSTATUS Status; + PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA PlugPlayData; + DWORD ret = CR_SUCCESS; + + UNREFERENCED_PARAMETER(hBinding); + + RtlInitUnicodeString(&PlugPlayData.DeviceInstance, + pszDeviceID); + + PlugPlayData.Flags = ulFlags; + PlugPlayData.FilterGuid = InterfaceGuid; + PlugPlayData.Buffer = Buffer; + PlugPlayData.BufferSize = *pulLength; + + Status = NtPlugPlayControl(PlugPlayControlGetInterfaceDeviceList, + (PVOID)&PlugPlayData, + sizeof(PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA)); + if (NT_SUCCESS(Status)) + { + *pulLength = PlugPlayData.BufferSize; + } + else + { + ret = NtStatusToCrError(Status); + } + + DPRINT("PNP_GetInterfaceDeviceListSize() done (returns %lx)\n", ret); + return ret; } @@ -1238,8 +1266,36 @@ PNP_GetInterfaceDeviceListSize( LPWSTR pszDeviceID, DWORD ulFlags) { - UNIMPLEMENTED; - return CR_CALL_NOT_IMPLEMENTED; + NTSTATUS Status; + PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA PlugPlayData; + DWORD ret = CR_SUCCESS; + + UNREFERENCED_PARAMETER(hBinding); + + DPRINT("PNP_GetInterfaceDeviceListSize() called\n"); + + RtlInitUnicodeString(&PlugPlayData.DeviceInstance, + pszDeviceID); + + PlugPlayData.FilterGuid = InterfaceGuid; + PlugPlayData.Buffer = NULL; + PlugPlayData.BufferSize = 0; + PlugPlayData.Flags = ulFlags; + + Status = NtPlugPlayControl(PlugPlayControlGetInterfaceDeviceList, + (PVOID)&PlugPlayData, + sizeof(PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA)); + if (NT_SUCCESS(Status)) + { + *pulLen = PlugPlayData.BufferSize; + } + else + { + ret = NtStatusToCrError(Status); + } + + DPRINT("PNP_GetInterfaceDeviceListSize() done (returns %lx)\n", ret); + return ret; } diff --git a/base/setup/usetup/lang/tr-TR.h b/base/setup/usetup/lang/tr-TR.h index bc49c1c38b2..0c6fb8d1173 100644 --- a/base/setup/usetup/lang/tr-TR.h +++ b/base/setup/usetup/lang/tr-TR.h @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ #pragma once @@ -1680,27 +1680,27 @@ MUI_STRING trTRStrings[] = {STRING_KEEPFORMAT, " imdiki ktk dizgesini koru. (Deiiklik yok.) "}, {STRING_HDINFOPARTCREATE, - "%I64u %s Sbit Disk %lu (Giri=%hu, Veri Yolu=%hu, Kimlik=%hu), %wZ zerinde."}, + "%I64u %s Sbit Disk %lu (Giri=%hu, Veriyolu=%hu, Kimlik=%hu), %wZ zerinde."}, {STRING_HDDINFOUNK1, - "%I64u %s Sbit Disk %lu (Giri=%hu, Veri Yolu=%hu, Kimlik=%hu)."}, + "%I64u %s Sbit Disk %lu (Giri=%hu, Veriyolu=%hu, Kimlik=%hu)."}, {STRING_HDDINFOUNK2, " %c%c Tr %lu %I64u %s"}, {STRING_HDINFOPARTDELETE, - "zerinde: %I64u %s Sbit Disk %lu (Giri=%hu, Veri Yolu=%hu, Kimlik=%hu), %wZ zerinde."}, + "zerinde: %I64u %s Sbit Disk %lu (Giri=%hu, Veriyolu=%hu, Kimlik=%hu), %wZ zerinde."}, {STRING_HDDINFOUNK3, - "zerinde: %I64u %s Sbit Disk %lu (Giri=%hu, Veri Yolu=%hu, Kimlik=%hu)."}, + "zerinde: %I64u %s Sbit Disk %lu (Giri=%hu, Veriyolu=%hu, Kimlik=%hu)."}, {STRING_HDINFOPARTZEROED, - "Sbit Disk %lu (%I64u %s), Giri=%hu, Veri Yolu=%hu, Kimlik=%hu (%wZ)."}, + "Sbit Disk %lu (%I64u %s), Giri=%hu, Veriyolu=%hu, Kimlik=%hu (%wZ)."}, {STRING_HDDINFOUNK4, "%c%c Tr %lu %I64u %s"}, {STRING_HDINFOPARTEXISTS, - "zerinde: Sbit Disk %lu (%I64u %s), Giri=%hu, Veri Yolu=%hu, Kimlik=%hu (%wZ)."}, + "zerinde: Sbit Disk %lu (%I64u %s), Giri=%hu, Veriyolu=%hu, Kimlik=%hu (%wZ)."}, {STRING_HDDINFOUNK5, "%c%c %sTr %-3u%s %6lu %s"}, {STRING_HDINFOPARTSELECT, - "%6lu %s Sbit Disk %lu (Giri=%hu, Veri Yolu=%hu, Kimlik=%hu), %S zerinde"}, + "%6lu %s Sbit Disk %lu (Giri=%hu, Veriyolu=%hu, Kimlik=%hu), %S zerinde"}, {STRING_HDDINFOUNK6, - "%6lu %s Sbit Disk %lu (Giri=%hu, Veri Yolu=%hu, Kimlik=%hu)"}, + "%6lu %s Sbit Disk %lu (Giri=%hu, Veriyolu=%hu, Kimlik=%hu)"}, {STRING_NEWPARTITION, "Kur, zerinde bir yeni blm oluturdu:"}, {STRING_UNPSPACE, diff --git a/base/shell/cmd/lang/ru-RU.rc b/base/shell/cmd/lang/ru-RU.rc index 3acd352ff67..8daa10f8997 100644 --- a/base/shell/cmd/lang/ru-RU.rc +++ b/base/shell/cmd/lang/ru-RU.rc @@ -1,4 +1,4 @@ -/* Russian translation by Andrey Korotaev (unC0Rr@inbox.ru) & Aleksey Bragin (aleksey@reactos.org) */ +/* Russian translation by Andrey Korotaev (unC0Rr@inbox.ru) & Aleksey Bragin (aleksey@reactos.org) & Kudratov Olimjon (olim98@bk.ru)*/ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT @@ -21,9 +21,9 @@ ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] файл ...\n\ S Атрибут ""Системный"".\n\ H Атрибут ""Скрытый"".\n\ /S Обработка файлов с указанными именами в текущей папке\n\ -и во всех ее подпапках.\n\ + и во всех ее подпапках.\n\ /D Обработка и файлов, и папок.\n\n\ -ATTRIB без параметров выводит атрибуты всех файлов.\n" +Команда ATTRIB без параметров выводит атрибуты всех файлов.\n" STRING_ALIAS_HELP "Вывод, установка или удаление псевдонимов.\n\n\ ALIAS [псевдоним=[команда]]\n\n\ псевдоним Наименование псевдонима.\n\ @@ -75,7 +75,7 @@ CMD [/[C|K] команда][/P][/Q][/T:bf]\n\n\ /K команда Выполнение указанной команды без последующего завершения.\n\ /P CMD становится перманентным и запускает autoexec.bat\n\ (процесс неможет быть завершен).\n\ - /T:цв Выбор цвета текста/фона (более подробно см. COLOR /?).\n" + /T:bf Выбор цвета текста/фона (более подробно см. COLOR /?).\n" STRING_COLOR_HELP1 "Установка цветов по умолчанию для текста и фона.\n\n\ COLOR [цвета [/-F]] \n\n\ цвета Атрибуты цветов для текстовых окон\n\ @@ -85,22 +85,22 @@ COLOR [цвета [/-F]] \n\n\ 2) в виде десятичных чисел (decimal on decimal)\n\ 3) два шестнадцатеричных числа\n\n\ Таблица цветов:\n\ -дес. шест.название дес. шест.название\n\ - 0 0 = Черный 8 8 = Серый\n\ - 1 1 = Синий 9 9 = Светло-синий\n\ - 2 2 = Зеленый 10 A = Светло-зеленый\n\ - 3 3 = Голубой 11 B = Светло-голубой\n\ - 4 4 = Красный 12 C = Светло-красный\n\ - 5 5 = Лиловый 13 D = Светло-лиловый\n\ - 6 6 = Желтый 14 E = Светло-желтый\n\ - 7 7 = Белый 15 F = Ярко-белый\n" +дес шест название дес шест название\n\ + 0 0 Черный 8 8 Серый\n\ + 1 1 Синий 9 9 Светло-синий\n\ + 2 2 Зеленый 10 A Светло-зеленый\n\ + 3 3 Голубой 11 B Светло-голубой\n\ + 4 4 Красный 12 C Светло-красный\n\ + 5 5 Лиловый 13 D Светло-лиловый\n\ + 6 6 Желтый 14 E Светло-желтый\n\ + 7 7 Белый 15 F Ярко-белый\n" STRING_COPY_HELP1 "Перезаписать %s (Yes/No/All)? " STRING_COPY_HELP2 "Копирование одного или нескольких файлов в другое место.\n\n\ -COPY [/V][/Y|/-Y][/A|/B] источник [/A|/B]\n\ - [+ источник [/A|/B] [+ ...]] [результат [/A|/B]]\n\n\ +COPY [/V][/Y | /-Y] [/A | /B] источник [/A | /B]\n\ + [+ источник [/A | /B] [+ ...]] [результат [/A | /B]]]\n\n\ источник Имена одного или нескольких копируемых файлов.\n\ - /A Файл является текстовым файлом ASCII.\n\ - /B Файл является двоичным файлом.\n\ + /A Является текстовым ASCII файлом.\n\ + /B Является двоичным файлом.\n\ результат Каталог и/или имя для конечных файлов.\n\ /V Проверка правильности копирования файлов.\n\ /Y Подавление запроса подтверждения на перезапись существующего\n\ @@ -116,11 +116,11 @@ COPY [/V][/Y|/-Y][/A|/B] источник [/A|/B]\n\ DATE [/T][дата]\n\n\ /T Не запрашивать ввод новой даты\n\n\ Команда DATE без параметров отображает текущую дату и запрашивает ввод\n\ -новой даты. Для сохранения текущей даты нажмите клавишу ENTER.\n" +новой даты. Для сохранения текущей даты нажмите клавишу ENTER.\n" STRING_DEL_HELP1 "Удаление одного или нескольких файлов.\n\n\ -DEL [/N /P /T /Q /S /W /Y /Z /A[[:]атрибуты]] имена_файлов ...\n\ -DELETE [/N /P /T /Q /S /W /Y /Z /A[[:]атрибуты]] имена_файлов ...\n\ -ERASE [/N /P /T /Q /S /W /Y /Z /A[[:]атрибуты]] имена_файлов ...\n\n\ +DEL [/N] [/P] [/T] [/Q] [/S] [/W] [/Y] [/Z] [/A[[:]атрибуты]] имена_файлов ...\n\ +DELETE [/N] [/P] [/T] [/Q] [/S] [/W] [/Y] [/Z] [/A[[:]атрибуты]] имена_файлов ...\n\ +ERASE [/N] [/P] [/T] [/Q] [/S] [/W] [/Y] [/Z] [/A[[:]атрибуты]] имена_файлов ...\n\n\ имена_файлов Имена одного или нескольких файлов.\n\n\ /N Не выполнять непосредственно операцию удаления файла.\n\ /P Запрос на подтверждение перед удалением каждого файла.\n\ @@ -133,7 +133,7 @@ ERASE [/N /P /T /Q /S /W /Y /Z /A[[:]атрибуты]] имена_файлов /F Принудительное удаление файлов, доступных только для чтения.\n\ /S Удалять файл из всех поддиректорий\n\ /A Отбор файлов для удаления по атрибутам.\n\ - R Доступный только для чтения\n\ + R Доступные только для чтения\n\ S Системные файлы\n\ A Файлы для архивирования\n\ H Скрытые файлы\n\ @@ -146,64 +146,67 @@ DELAY [/m]n\n\n\ /m указывает, что n означает количество миллисекунд\n\ иначе n означает количество секунд\n" STRING_DIR_HELP1 "DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]] [/B] [/C] [/D] [/L] [/N]\n\ - [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\ + [/O[[:]сортировка]] [/P] [/Q] [/S] [/T[[:]время]] [/W] [/X] [/4]\n\n\ [диск:][путь][имя_файла]\n\ Диск, каталог и/или файлы, которые следует включить в список.\n\n\ /A Вывод файлов с указанными атрибутами.\n\ - атрибуты D Каталоги R Доступные только для чтения\n\ - H Скрытые файлы A Файлы для архивирования\n\ - S Системные файлы Префикс ""-"" имеет значение НЕ\n\ - /B Вывод только имен файлов.\n\ - /C Применение разделителя групп разрядов для вывода размеров файлов\n\ - (по умолчанию). Для отключения этого режима служит ключ /-C.\n\ - /D Вывод списка в несколько столбцов с сортировкой по столбцам.\n\ - /L Использование нижнего регистра для имен файлов.\n\ - /N Отображение имен файлов в крайнем правом столбце.\n\ - /O Сортировка списка отображаемых файлов.\n\ - порядок N По имени (алфавитная) S По размеру (сперва меньшие)\n\ - E По расширению (алфавитная) D По дате (сперва более старые)\n\ - G Начать список с каталогов Префикс ""-"" обращает порядок\n\ - /P Пауза после заполнения каждого экрана.\n\ - /Q Вывод сведений о владельце файла.\n\ - /S Вывод списка файлов из указанного каталога и его подкаталогов.\n\ - /T Выбор поля времени для отображения и сортировки\n\ - время C Создание\n\ - A Последнее использование\n\ - W Последнее изменение\n\ - /W Вывод списка в несколько столбцов.\n\ - /X Отображение коротких имен для файлов, чьи имена не соответствуют\n\ - стандарту 8.3. Формат аналогичен выводу с ключом /N, но короткие\n\ - имена файлов выводятся слева от длинных. Если короткого имени у\n\ - файла нет, вместо него выводятся пробелы.\n\ - /4 Вывод номера года в четырехзначном формате\n" + атрибуты D Каталоги R Доступные только для чтения\n\ + H Скрытые файлы A Файлы для архивирования\n\ + S Системные файлы Префикс ""-"" имеет значение НЕ\n\ + /B Вывод только имен файлов.\n\ + /C Применение разделителя групп разрядов для вывода размеров файлов\n\ + (по умолчанию). Для отключения этого режима служит ключ /-C.\n\ + /D Вывод списка в несколько столбцов с сортировкой по столбцам.\n\ + /L Использование нижнего регистра для имен файлов.\n\ + /N Отображение имен файлов в крайнем правом столбце.\n\ + /O Сортировка списка отображаемых файлов.\n\ + сортировка N По имени (алфавитная) S По размеру (сперва меньшие)\n\ + E По расширению (алфавитная) D По дате (сперва более старые)\n\ + G Начать список с каталогов Префикс ""-"" обращает порядок\n\ + /P Пауза после заполнения каждого экрана.\n\ + /Q Вывод сведений о владельце файла.\n\ + /S Вывод списка файлов из указанного каталога и его подкаталогов.\n\ + /T Выбор поля времени для отображения и сортировки\n\ + время C Создание\n\ + A Последнее использование\n\ + W Последнее изменение\n\ + /W Вывод списка в несколько столбцов.\n\ + /X Отображение коротких имен для файлов, чьи имена не соответствуют\n\ + стандарту 8.3. Формат аналогичен выводу с ключом /N, но короткие\n\ + имена файлов выводятся слева от длинных. Если короткого имени у\n\ + файла нет, вместо него выводятся пробелы.\n\ + /4 Вывод года в четырехзначном формате\n" STRING_DIR_HELP2 " Том в устройстве %c имеет метку %s\n" STRING_DIR_HELP3 " Том в устройстве %c не имеет метки.\n" STRING_DIR_HELP4 " Серийный номер тома: %04X-%04X\n" - STRING_DIR_HELP5 "\n Всего:\n%16i Файл(ов)% 14s байт\n" - STRING_DIR_HELP6 "%16i Dir(s)% 15s байт свободно\n" - STRING_DIR_HELP7 "\n Каталог of %s\n\n" + STRING_DIR_HELP5 "\n Всего:\n%16i файл(ов)% 14s байт\n" + STRING_DIR_HELP6 "%16i каталог(ов)% 15s байт свободно\n" + STRING_DIR_HELP7 "\n каталог %s\n\n" STRING_DIR_HELP8 "%16i файл(ов)% 14s байт\n" STRING_DIRSTACK_HELP1 "Сохраняет текущую директорию для использования командой POPD, затем\n\ изменяет ее на указанную.\n\n\ -PUSHD [path | ..]\n\n\ - path Указывает директорию, которую надо сделать текущей\n" +PUSHD [путь | ..]\n\n\ + путь Каталог, который следует назначить текущим.\n" STRING_DIRSTACK_HELP2 "Изменяет текущую директорию на ту, которая сохранена командой PUSHD.\n\nPOPD" STRING_DIRSTACK_HELP3 "Печатает содержимое стека директорий.\n\nDIRS" STRING_DIRSTACK_HELP4 "Стек директорий пуст" STRING_ECHO_HELP1 "Выдает сообщение без перевода строки.\n\n\ - ECHOS message" + ECHOS сообщение" STRING_ECHO_HELP2 "Выдает сообщение в стандартный канал вывода ошибок.\n\n\ - ECHOERR message\n\ + ECHOERR сообщение\n\ ECHOERR. печатает пустую строку" STRING_ECHO_HELP3 "Печатает сообщение в стандартный канал вывода ошибок без перевода строки и возврата каретки.\n\n\ - ECHOSERR message" + ECHOSERR сообщение" STRING_ECHO_HELP4 "Вывод сообщений и переключение режима отображения команд на экране.\n\n\ ECHO [ON | OFF]\n\ ECHO [сообщение]\n\ ECHO. вывод пустой строки\n\n\ ECHO без параметра выводит текущий режим отображения команд." STRING_ECHO_HELP5 "ECHO is %s\n" - STRING_EXIT_HELP "Завершает интерпретатор команд.\n\nEXIT\n" + STRING_EXIT_HELP "Завершает работу интерпретатора командной строки.\n\nEXIT [/b] [ExitCode]\n\n\ + /B Завершает текущий пакетный файл. \n\ + Если выполняется вне пакетного файла, то будет завершена программа CMD.EXE\n\ + ExitCode Это значение будет присвоено ERRORLEVEL после выхода\n" STRING_FOR_HELP1 "Запускает указанную команду для каждого файла из набора файлов\n\n\ FOR %переменная IN (набор) DO команда [параметры]\n\n\ %переменная Подставляемый параметр.\n\ @@ -218,30 +221,30 @@ FOR %переменная IN (набор) DO команда [параметры] %16s байт общего дискового пространства\n\ %16s байт занято\n\ %16s байт свободно\n" - STRING_FREE_HELP2 "Выводит информацию о томе.\n\nFREE [drive: ...]\n" + STRING_FREE_HELP2 "Выводит информацию о томе.\n\nFREE [том: ...]\n" STRING_GOTO_HELP1 "Передача управления содержащей метку строке пакетного файла.\n\n\ GOTO метка\n\n\ - label Строка пакетного файла, оформленная как метка.\n\n\ + метка Строка пакетного файла, оформленная как метка.\n\n\ Метка должна находиться в отдельной строке и начинаться с двоеточия." STRING_IF_HELP1 "Оператор условного выполнения команд в пакетном файле.\n\n\ IF [NOT] ERRORLEVEL число команда\n\ IF [NOT] строка1==строка2 команда\n\ IF [NOT] EXIST имя_файла команда\n\ IF [NOT] DEFINED переменная команда\n\n\ - NOT Обращает истинность условия: истинное условие\n\ - становится ложным, а ложное - истинным.\n\ - ERRORLEVEL число Условие является истинным, если код возврата последней\n\ - выполненной программы не меньше указанного числа.\n\ - строка1==строка2 Это условие является истинным, если указанные строки\n\ - совпадают.\n\ - EXIST имя_файла Это условие является истинным, если файл с указанным\n\ - именем существует.\n\ -DEFINED переменная Это условие является истинным, если указанная переменная\n\ - задана\n\ - команда Задает команду, выполняемую при истинности условия.\n\ - За этой командой может следовать ключевое слово ELSE,\n\ - служащее для указания команды, которая должна\n\ - выполняться в том случае, если условие ложно.\n" + NOT Обращает истинность условия: истинное условие\n\ + становится ложным, а ложное - истинным.\n\ + ERRORLEVEL число Условие является истинным, если код возврата последней\n\ + выполненной программы не меньше указанного числа.\n\ + строка1==строка2 Это условие является истинным, если указанные строки\n\ + совпадают.\n\ + EXIST имя_файла Это условие является истинным, если файл с указанным\n\ + именем существует.\n\ + DEFINED переменная Это условие является истинным, если указанная переменная\n\ + задана\n\ + команда Задает команду, выполняемую при истинности условия.\n\ + За этой командой может следовать ключевое слово ELSE,\n\ + служащее для указания команды, которая должна\n\ + выполняться в том случае, если условие ложно.\n" STRING_LABEL_HELP1 "Создание, изменение и удаление меток тома.\n\nLABEL [диск:][метка]\n" STRING_LABEL_HELP2 "Том в устройстве %c имеет метку %s\n" STRING_LABEL_HELP3 "Том в устройстве %c: не имеет метки\n" @@ -251,16 +254,16 @@ DEFINED переменная Это условие является истин STRING_MKDIR_HELP "Создание каталога.\n\n\ MKDIR [диск:]путь\nMD [диск:]путь" STRING_MKLINK_HELP "Создание символической ссылки.\n\n\ -MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение\n\n\ +MKLINK [[/D] | [/H] | [/J]] ссылка назначение\n\n\ /D Создание символической ссылки на каталог.\n\ /H Создание жесткой связи вместо символической ссылки.\n\ /J Создание соединения для каталога.\n\ - Ссылка Имя новой символической ссылки.\n\ - Назначение Путь (относительный или абсолютный), на который ссылается\n\ + ссылка Имя новой символической ссылки.\n\ + назначение Путь (относительный или абсолютный), на который ссылается\n\ новая ссылка.\n\n\ -If neither /H or /J is specified, a symbolic link is created." +Если не указаны /H и /J, то будет создана символическая ссылка." STRING_MEMMORY_HELP1 "Вывод объема системной памяти.\n\nMEMORY" - STRING_MEMMORY_HELP2 "\n %12s%% memory load.\n\n\ + STRING_MEMMORY_HELP2 "\n %12s%% загружено памяти.\n\n\ %13s байт всего физической памяти.\n\ %13s байт доступно физической памяти.\n\n\ %13s байт всего в файле подкачки.\n\ @@ -268,7 +271,7 @@ If neither /H or /J is specified, a symbolic link is created." %13s байт всего виртуальной памяти.\n\ %13s байт доступно виртуально памяти.\n" STRING_MISC_HELP1 "Нажмите клавишу для продолжения...\n" - STRING_MOVE_HELP1 "Переписать %s (Yes/No/All)? " + STRING_MOVE_HELP1 "Перезаписать %s (Yes/No/All)? " STRING_MOVE_HELP2 "Перемещение файлов и переименование файлов и каталогов.\n\n\ Перемещение одного или более файлов:\n\ MOVE [/N][диск:][путь]имя_файла1[,...] назначение\n\n\ @@ -281,14 +284,14 @@ MOVE [/N][диск:][путь]имя_каталога1 имя_каталога2\ - Невозможно переносить файлы или папки между разными разделами.\n" STRING_MSGBOX_HELP "Вывод окна с сообщением и возврат ответа пользователя\n\n\ MSGBOX тип ['заголовок'] подсказка\n\n\ -тип выводимые кнопки\n\ - возможные значения: OK, OKCANCEL,\n\ +тип Выводимые кнопки\n\ + Возможные значения: OK, OKCANCEL,\n\ YESNO, YESNOCANCEL\n\ -заголовок заголовок окна с сообщением\n\ -подсказка выводимый текст подсказки\n\n\n\ -ERRORLEVEL устанавливается в соответствии с нажатой кнопкой:\n\n\ -YES : 10 | NO : 11\n\ -OK : 10 | CANCEL : 12\n" +заголовок Заголовок окна с сообщением\n\ +подсказка Выводимый текст подсказки\n\n\n\ +ERRORLEVEL Устанавливается в соответствии с нажатой кнопкой:\n\n\ +Да: 10 | Нет: 11\n\ +OK: 10 | Отмена: 12\n" STRING_PATH_HELP1 "Вывод или задание пути поиска исполняемых файлов.\n\n\ PATH [[диск:]путь[;...]]\nPATH ;\n\n\ Команда PATH ; очищает путь поиска используемых файлов, ограничив его\n\ @@ -306,33 +309,33 @@ PROMPT [текст]\n\n\ $F ) (правая круглая скобка)\n\ $G > (знак ""больше"")\n\ $H BACKSPACE (удаление предыдущего символа)\n\ - $I Information line\n\ + $I Информационная линия\n\ $L < (знак ""меньше"")\n\ $N Текущий диск\n\ $P Текущие диск и каталог\n\ $Q = (знак равенства)\n\ - $S (space)\n\ + $S (пробел)\n\ $T Текущее время\n\ $V Номер версии операционной системы\n\ - $_ Перевод строки\n\ + $_ Возврат каретки и перевод строки\n\ $$ $ (знак доллара)\n" STRING_PAUSE_HELP1 "Приостановка выполнения пакетного файла и вывод сообщения:\n\ 'Для продолжения нажмите любую клавишу...' или указанное сообщение.\n\n\ PAUSE [сообщение]" - STRING_PROMPT_HELP2 " $+ Displays the current depth of the directory stack" + STRING_PROMPT_HELP2 " $+ Вывод глубины вложенности каталогов" STRING_PROMPT_HELP3 "\nPROMPT без параметров устанавливает приглашение командной строки по умолчанию." STRING_REM_HELP "Помещение комментариев в пакетные файлы.\n\nREM [комментарий]" STRING_RMDIR_HELP "Удаление каталога.\n\n\ RMDIR [диск:]путь\nRD [диск:]путь\n\ /S Удаление дерева каталогов\n\ /Q Отключение запроса подтверждения\n" - STRING_RMDIR_HELP2 "Каталог пуст!\n" - STRING_REN_HELP1 "Переименование одного или нескольких файлов или каталогов.\n\n\ + STRING_RMDIR_HELP2 "Каталог не пуст!\n" + STRING_REN_HELP1 "Переименование одного или нескольких файлов/каталогов.\n\n\ RENAME [/E /N /P /Q /S /T] старое_имя ... новое_имя\n\ REN [/E /N /P /Q /S /T] старое_имя ... новое_имя\n\n\ /E Не выводить сообщения об ошибках.\n\ /N Nothing.\n\ - /P Запрос подтверждения перед переименованием.\n\ + /P Запрос подтверждения перед каждым переименованием.\n\ (Не реализовано в данный момент!)\n\ /Q Тихий режим.\n\ /S Переименовывать подкаталоги.\n\ @@ -361,14 +364,14 @@ REPLACE [диск1:][путь1]имя_файла [диск2:][путь2] [/P] [/ Этот ключ несовместим с ключом /A.\n" STRING_REPLACE_HELP2 "Необходимо указать путь к исходным файлам.\n" STRING_REPLACE_HELP3 "Ни один файл не заменен\n" - STRING_REPLACE_HELP4 "%lu file(s) replaced\n" - STRING_REPLACE_HELP5 "Replacing %s\n" - STRING_REPLACE_HELP6 "Replace %s\n" - STRING_REPLACE_HELP7 "No files added\n" - STRING_REPLACE_HELP8 "%lu file(s) added\n" - STRING_REPLACE_HELP9 "Add %s (Y/N) " - STRING_REPLACE_HELP10 "Replace %s (Y/N) " - STRING_REPLACE_HELP11 "Adding %s\n" + STRING_REPLACE_HELP4 "%lu файл(ов) заменено\n" + STRING_REPLACE_HELP5 "Замена %s\n" + STRING_REPLACE_HELP6 "Замена %s\n" + STRING_REPLACE_HELP7 "Нет новых файлов\n" + STRING_REPLACE_HELP8 "%lu файл(ов) добавлено\n" + STRING_REPLACE_HELP9 "Добавить %s (Y/N) " + STRING_REPLACE_HELP10 "Заменить %s (Y/N) " + STRING_REPLACE_HELP11 "Добавление %s\n" STRING_SHIFT_HELP "Изменение содержимого (сдвиг) подставляемых параметров для пакетного файла.\n\n\ SHIFT [DOWN]" STRING_SCREEN_HELP "Перемещение курсора и вывод текста\n\n\ @@ -395,14 +398,14 @@ TIME без параметров выводит текущее время и з STRING_TIME_HELP2 "Введите новое время: " STRING_TIMER_HELP1 "Прошло %d мсек\n" STRING_TIMER_HELP2 "Прошло %02d%c%02d%c%02d%c%02d\n" - STRING_TIMER_HELP3 "Секундомер.\n\n\ + STRING_TIMER_HELP3 "ПОзволяет использовать десять секундомеров.\n\n\ TIMER [ON|OFF] [/S] [/n] [/Fn]\n\n\ ON Включить секундомер\n\ OFF Выключить секундомер\n\ /S Разница времени. Возвращает разницу времени\n\ секундомера без изменения его значения\n\ /n Задать номер секундомера.\n\ - Доступные номера - от 0 до 9\n\ + Доступны номера от 0 до 9\n\ Значение по умолчанию - 1\n\ /Fn Формат вывода\n\ n одно из:\n\ @@ -421,11 +424,11 @@ VERIFY без параметра выводит текущее значение STRING_VERIFY_HELP3 "Необходимо указать ON или OFF." STRING_VERSION_HELP1 "Вывод версии\n\n\ VER [/C] [/R] [/W]\n\n\ - /C Отображает авторов.\n\ + /C Отображание авторов.\n\ /R Displays redistribution information.\n\ - /W Displays warranty information." - STRING_VERSION_HELP2 " comes with ABSOLUTELY NO WARRANTY; for details\n\ -type: `ver /w'. This is free software, and you are welcome to redistribute\n\ + /W Отображаение предоставляемых гарантий." + STRING_VERSION_HELP2 " предоставляется БЕЗ ВСЯКИХ ГАРАНТИЙ; для подробности\n\ +введите: `ver /w'. This is free software, and you are welcome to redistribute\n\ it under certain conditions; type `ver /r' for details. Type `ver /c' for a\n\ listing of credits." STRING_VERSION_HELP3 "\n This program is distributed in the hope that it will be useful,\n\ @@ -437,24 +440,24 @@ listing of credits." the Free Software Foundation; either version 2 of the License, or\n\ (at your option) any later version.\n" STRING_VERSION_HELP5 "\nПосылайте отчеты об ошибках на .\n\ -Обновления доступны по адресу: http://www.reactos.org/" - STRING_VERSION_HELP6 "\nFreeDOS-версия написана:\n" - STRING_VERSION_HELP7 "\nReactOS-версия написана:\n" +Обновления доступны по адресу: http://www.reactos.org" + STRING_VERSION_HELP6 "\nFreeDOS версия написана:\n" + STRING_VERSION_HELP7 "\nReactOS версия написана:\n" STRING_VOL_HELP1 " Том в устройстве %c имеет метку %s\n" STRING_VOL_HELP2 " Том в устройстве %c не имеет метки\n" STRING_VOL_HELP3 " Серийный номер тома: %04X-%04X\n" STRING_VOL_HELP4 "Выводит метку тома и серийный номер.\n\nVOL [диск:]" STRING_WINDOW_HELP1 "Меняет вид окна консоли\n\n\ -WINDOW [/POS[=]left,top,ширина,высота]\n\ - [MIN|MAX|RESTORE] ['заголовок']\n\n\ +WINDOW [/POS[=]лево,верх,ширина,высота]\n\ + [MIN | MAX | RESTORE] ['заголовок']\n\n\ /POS указывает размер и положение окна\n\ MIN сворачивает окно\n\ MAX разворачивает окно\n\ RESTORE восстанавливает окно\n" STRING_WINDOW_HELP2 "Меняет вид окна консоли\n\n\ -ACTIVATE 'window' [/POS[=]left,top,ширина,высота]\n\ - [MIN|MAX|RESTORE] ['заголовок']\n\n\ -window заголовок окна, вид которого следует менять\n\ +ACTIVATE 'окно' [/POS[=]лево,верх,ширина,высота]\n\ + [MIN | MAX | RESTORE] ['заголовок']\n\n\ +окно заголовок окна, состояние которого следует менять\n\ /POS указывает размер и положение окна\n\ MIN сворачивает окно\n\ MAX разворачивает окно\n\ @@ -476,7 +479,7 @@ RESTORE восстанавливает окно\n\ STRING_CMD_ERROR4 "Запуск %s...\n" STRING_CMD_ERROR5 "Запуск cmdexit.bat...\n" STRING_COLOR_ERROR1 "Одинаковые цвета! (Цвета фона и текста не могут быть одинаковыми)" - STRING_COLOR_ERROR2 "ошибка в указании цвета" + STRING_COLOR_ERROR2 "Ошибка в указании цвета" STRING_COLOR_ERROR3 "Цвет %02x\n" STRING_CONSOLE_ERROR "Неизвестная ошибка: %d\n" STRING_COPY_ERROR1 "Ошибка: Невозможно открыть источник - %s!\n" @@ -526,7 +529,7 @@ RESTORE восстанавливает окно\n\ STRING_REPLACE_ERROR4 "Неверная комбинация параметров\n" STRING_REPLACE_ERROR5 "Доступ запрещен - %s\n" STRING_REPLACE_ERROR6 "Не найдено файлов - %s\n" - STRING_REPLACE_ERROR7 "Extended Error 32\n" + STRING_REPLACE_ERROR7 "Расширенная ошибка 32\n" STRING_REACTOS_VERSION "Операционная система ReactOS [Версия %s-%s]\n" STRING_CMD_SHELLINFO "\nИнтерпретатор командной строки ReactOS\nВерсия %s %s" STRING_VERSION_RUNVER " запущен на %s" @@ -538,7 +541,7 @@ RESTORE восстанавливает окно\n\ STRING_TIMER_TIME "Timer %d is %s: " STRING_MKLINK_CREATED_SYMBOLIC "Символическая ссылка создана для %s <<===>> %s\n" STRING_MKLINK_CREATED_HARD "Жесткая связь создана для %s <<===>> %s\n" - STRING_MKLINK_CREATED_JUNCTION "Junction created for %s <<===>> %s\n" + STRING_MKLINK_CREATED_JUNCTION "Ссылка-каталог создана для %s <<===>> %s\n" STRING_MORE "Еще? " STRING_CANCEL_BATCH_FILE "\r\nЗавершить выполнение пакетного файла [Y(да)/N(нет)]? " STRING_INVALID_OPERAND "Неверный операнд." diff --git a/base/shell/explorer-new/lang/ru-RU.rc b/base/shell/explorer-new/lang/ru-RU.rc index c6c9f6aebd6..8d47a3a0a92 100644 --- a/base/shell/explorer-new/lang/ru-RU.rc +++ b/base/shell/explorer-new/lang/ru-RU.rc @@ -47,7 +47,7 @@ BEGIN MENUITEM "&Безопасность...", IDM_SECURITY, MFT_STRING, MFS_ENABLED MENUITEM "&Сетевые подключения", IDM_NETWORKCONNECTIONS, MFT_STRING, MFS_ENABLED MENUITEM "&Принтеры и факсы", IDM_PRINTERSANDFAXES, MFT_STRING, MFS_ENABLED - MENUITEM "&Панель задач и меню пуск", IDM_TASKBARANDSTARTMENU, MFT_STRING, MFS_ENABLED + MENUITEM "Панель &задач и меню ""Пуск""", IDM_TASKBARANDSTARTMENU, MFT_STRING, MFS_ENABLED END POPUP "П&оиск", IDM_SEARCH BEGIN @@ -86,8 +86,8 @@ BEGIN AUTORADIOBUTTON "М&еню ""Пуск""", IDC_TASKBARPROP_STARTMENU, 7, 7, 105, 10 LTEXT "Этот стиль меню обеспечивает удобный доступ к папкам, часто используемым программам и поиску.", IDC_STATIC, 20, 17, 150, 24, WS_DISABLED PUSHBUTTON "&Настроить...", IDC_TASKBARPROP_STARTMENUCUST, 192, 4, 53, 14, WS_DISABLED - AUTORADIOBUTTON "&Классичесское меню ""Пуск""", IDC_TASKBARPROP_STARTMENUCLASSIC, 7, 47, 105, 10, WS_DISABLED - LTEXT "Классичесский стиль отображения меню ""Пуск"".", -1, 20, 57, 150, 24, WS_DISABLED + AUTORADIOBUTTON "&Классическое меню ""Пуск""", IDC_TASKBARPROP_STARTMENUCLASSIC, 7, 47, 105, 10, WS_DISABLED + LTEXT "Классический стиль отображения меню ""Пуск"".", -1, 20, 57, 150, 24, WS_DISABLED PUSHBUTTON "Н&астроить...", IDC_TASKBARPROP_STARTMENUCLASSICCUST, 192, 44, 53, 14, WS_DISABLED GROUPBOX "Конфиденциальность", IDC_STATIC, 7, 100, 238, 50 AUTOCHECKBOX "Хранить и отображать список недавно открывавшихся фа&йлов", IDC_TASKBARPROP_RECENTFILES, 14, 114, 227, 10, WS_DISABLED @@ -127,7 +127,7 @@ CAPTION "Дополнительно" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Дополнительные настройки", IDC_STATIC, 6, 6, 240, 121 - AUTOCHECKBOX "Показывать с&екунды", IDC_TASKBARPROP_SECONDS, 13, 18, 200, 10 + AUTOCHECKBOX "Отображать с&екунды", IDC_TASKBARPROP_SECONDS, 13, 18, 200, 10 AUTOCHECKBOX "Отобра&жать образцы окон (эскизы)", IDC_TASKBARPROP_WNDPREV, 13, 31, 200, 10 END diff --git a/base/system/diskpart/diskpart.rc b/base/system/diskpart/diskpart.rc index 0b46ba41190..e6d141dc0f5 100644 --- a/base/system/diskpart/diskpart.rc +++ b/base/system/diskpart/diskpart.rc @@ -17,6 +17,9 @@ #ifdef LANGUAGE_RO_RO #include "lang/ro-RO.rc" #endif +#ifdef LANGUAGE_RU_RU + #include "lang/ru-RU.rc" +#endif #ifdef LANGUAGE_SQ_AL #include "lang/sq-AL.rc" #endif diff --git a/base/system/diskpart/lang/ru-RU.rc b/base/system/diskpart/lang/ru-RU.rc new file mode 100644 index 00000000000..959ebcebce9 --- /dev/null +++ b/base/system/diskpart/lang/ru-RU.rc @@ -0,0 +1,368 @@ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +/* Basic application information */ +STRINGTABLE +BEGIN + IDS_APP_HEADER "ReactOS DiskPart" + IDS_APP_USAGE "\nDisk Partitioning Interpreter.\n\n\ +Использование: DISKPART [/S <имя файла>] [/T <тайм-аут>] [/?]\n\n\ +/S <имя файла>\tЗапускает указанный скрипт.\n\ +/T <тайм-аут>\tTimeout in seconds to prevent diskpart usage overlap.\n\ +/?\t\tОтображает эту справку.\n\n" + IDS_APP_LICENSE "Распространяется под лицензией GNU GPLv2\n" + IDS_APP_CURR_COMPUTER "На компьютере: %s\n\n" + IDS_APP_LEAVING "\nЗавершение работы DiskPart...\n" + IDS_APP_PROMPT "DISKPART> " +END + +/* Disk Information Labels */ +STRINGTABLE +BEGIN + IDS_DETAIL_INFO_DISK_ID "Диск" + IDS_DETAIL_INFO_TYPE "Тип" + IDS_DETAIL_INFO_STATUS "Состояние" + IDS_DETAIL_INFO_PATH "Путь" + IDS_DETAIL_INFO_TARGET "Цель" + IDS_DETAIL_INFO_LUN_ID "LUN ID" + IDS_DETAIL_INFO_LOC_PATH "Location Path" + IDS_DETAIL_INFO_CURR_RO_STATE "Current Read-only State" + IDS_DETAIL_INFO_RO "Только для чтения" + IDS_DETAIL_INFO_BOOT_DSK "Загрузочный диск" + IDS_DETAIL_INFO_PAGE_FILE_DSK "Pagefile диск" + IDS_DETAIL_INFO_HIBER_FILE_DSK "Hibernation File диск" + IDS_DETAIL_INFO_CRASH_DSK "Crashdump диск" + IDS_DETAIL_INFO_CLST_DSK "Кластерный диск" +END + +/* Detail header titles */ +STRINGTABLE +BEGIN + IDS_LIST_DISK_HEAD "Диск ### Состояние\tРазмер\tСвободно\tДин\tGPT\n" + IDS_LIST_DISK_LINE "-------- ------\t----\t----\t---\t---\n" + IDS_LIST_VOLUME_HEAD "Том ###\tИмя\tМетка\n" +END + +/* Disk Status */ +STRINGTABLE +BEGIN + IDS_STATUS_YES "Да" + IDS_STATUS_NO "Нет" + IDS_STATUS_DISK_HEALTHY "Исправен" + IDS_STATUS_DISK_SICK "Не исправен" + IDS_STATUS_UNAVAILABLE "НЕДОСТУПЕН" + IDS_STATUS_ONLINE "В сети" + IDS_STATUS_OFFLINE "Вне сети" + IDS_STATUS_NO_MEDIA "Нет носителя" +END + +/* CMD Messages for commands */ +STRINGTABLE +BEGIN + IDS_MSG_CURRENT_DSK_STATUS "выбран текущим диском." + IDS_MSG_NO_DISK "Диск для преобразования не выбран.\nВыберите диск и повторите попытку." + IDS_MSG_ARG_SYNTAX_ERROR "Указаны неверные параметры команды.\nЧтобы получить дополнительные сведения о данной команде, введите:" +END + +/* Help Command Descripions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_DESC_ACTIVE "ACTIVE\t\t- Пометка выбранного раздела как активного.\n" + IDS_HELP_CMD_DESC_ADD "ADD\t\t- Добавление зеркала к простому тому.\n" + IDS_HELP_CMD_DESC_ASSIGN "ASSIGN\t\t- Назначение имени или точки подключения выбранному тому.\n" + IDS_HELP_CMD_DESC_ATTACH "ATTACH\t\t- Присоединяет файл виртуального диска.\n" + IDS_HELP_CMD_DESC_ATTRIBUTES "ATTRIBUTES\t- Работа с атрибутами тома или диска.\n" + IDS_HELP_CMD_DESC_AUTOMOUNT "AUTOMOUNT\t- Включение и отключение автоматического подключения базовых томов.\n" + IDS_HELP_CMD_DESC_BREAK "BREAK\t\t- Разбиение зеркального набора.\n" + IDS_HELP_CMD_DESC_CLEAN "CLEAN\t\t- Очистка сведений о конфигурации или всех данных на диске.\n" + IDS_HELP_CMD_DESC_COMPACT "COMPACT\t\t- Попытки уменьшения физического размера файла.\n" + IDS_HELP_CMD_DESC_CONVERT "CONVERT\t\t- Преобразование форматов диска.\n" + IDS_HELP_CMD_DESC_CREATE "CREATE\t\t- Создание тома, раздела или виртуального диска.\n" + IDS_HELP_CMD_DESC_DELETE "DELETE\t\t- Удалить объект.\n" + IDS_HELP_CMD_DESC_DETACH "DETACH\t\t- Отсоединяет файл виртуального диска.\n" + IDS_HELP_CMD_DESC_DETAIL "DETAIL\t\t- Просмотр параметров объекта.\n" + IDS_HELP_CMD_DESC_EXIT "EXIT\t\t- Завершение работыDiskPart.\n" + IDS_HELP_CMD_DESC_EXPAND "EXPAND\t\t- Увеличение максимального доступного пространства на виртуальном\n\t\t диске.\n" + IDS_HELP_CMD_DESC_EXTEND "EXTEND\t\t- Расширить том.\n" + IDS_HELP_CMD_DESC_FS "FILESYSTEMS\t- Отображение текущей и поддерживаемой файловых систем для тома.\n" + IDS_HELP_CMD_DESC_FORMAT "FORMAT\t\t- Форматирование данного тома или раздела.\n" + IDS_HELP_CMD_DESC_GPT "GPT\t\t- Назначение атрибутов выбранному GPT-разделу.\n" + IDS_HELP_CMD_DESC_HELP "HELP\t\t- Отображение списка команд.\n" + IDS_HELP_CMD_DESC_IMPORT "IMPORT\t\t- Импорт группы дисков.\n" + IDS_HELP_CMD_DESC_INACTIVE "INACTIVE\t- Пометка выбранного раздела как неактивного.\n" + IDS_HELP_CMD_DESC_LIST "LIST\t\t- Отображение списка объектов.\n" + IDS_HELP_CMD_DESC_MERGE "MERGE\t\t- Объединение дочернего диска с родительскими.\n" + IDS_HELP_CMD_DESC_OFFLINE "OFFLINE\t\t- Перевод объекта из состояния ""вне сети"", в состояние ""в сети"".\n" + IDS_HELP_CMD_DESC_ONLINE "ONLINE\t\t- Перевод объекта из состояния ""в сети"", в состояние ""вне сети"".\n" + IDS_HELP_CMD_DESC_RECOVER "RECOVER\t\t- Обновление состояния всех дисков выбранного пакета.\n\t\t Попытка восстановить диски неправильного пакета и\n\t\t повторная синхронизация зеркальных томов и томов RAID5 с\n\t\t устаревшим плексом или данными четности.\n" + IDS_HELP_CMD_DESC_REM "REM\t\t- Ничего не делает. Используется для комментирования сценария.\n" + IDS_HELP_CMD_DESC_REMOVE "REMOVE\t\t- Удаление имени диска или точки подключения..\n" + IDS_HELP_CMD_DESC_REPAIR "REPAIR\t\t- Восстановление тома RAID-5 с отказавшим участником.\n" + IDS_HELP_CMD_DESC_RESCAN "RESCAN\t\t- Поиск дисков и томов на компьютере.\n" + IDS_HELP_CMD_DESC_RETAIN "RETAIN\t\t- Размещение служебного раздела на простом томе.\n" + IDS_HELP_CMD_DESC_SAN "SAN\t\t- Отображение или установка политики SAN для текущей загруженной ОС.\n" + IDS_HELP_CMD_DESC_SELECT "SELECT\t\t- Установка фокуса на объект.\n" + IDS_HELP_CMD_DESC_SETID "SETID\t\t- Изменение типа раздела.\n" + IDS_HELP_CMD_DESC_SHRINK "SHRINK\t\t- Уменьшение размера выбранного тома.\n" + IDS_HELP_CMD_DESC_UNIQUEID "UNIQUEID\t- Отображение или установка кода таблицы разделов GUID (GPT) или\n\t\t подписи основной загрузочной записи (MBR) диска.." +END + +/* Common Error Messages */ +STRINGTABLE +BEGIN + IDS_ERROR_MSG_NO_SCRIPT "Ошибка открытия скрипта: %s\n" + IDS_ERROR_MSG_BAD_ARG "Ошибка обработки параметров: %s\n" +END + +/* Active help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_ACTIVE "\n\ +\n\n" +END + +/* Add help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_ADD "\n\ +\n\n" +END + +/* Assign help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_ASSIGN "\n\ +\n\n" +END + +/* Attach help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_ATTACH "\n\ +\n\n" +END + +/* Attributes Command Messages */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_ATTRIBUTES "\n\ +\n\n" +END + +/* Automount help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_AUTOMOUNT "\n\ +\n\n" +END + +/* Break help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_BREAK "\n\ +\n\n" +END + +/* Clean help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_CLEAN "\n\ +\n\n" +END + +/* Compact help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_COMPACT "\n\ +\n\n" +END + +/* Convert help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_CONVERT "\n\ +\n\n" +END + +/* Convert help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_CREATE "\n\ +\n\n" +END + +/* Delete help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_DELETE "\n\ +\n\n" +END + +/* Delete help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_DETAIL "\n\ +\n\n" +END + +/* Detach help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_DETACH "\n\ +\n\n" +END + +/* Expand help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_EXPAND "\n\ +\n\n" +END + +/* Extend help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_EXTEND "\n\ +\n\n" +END + +/* Filesystems help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_FILESYSTEMS "\n\ +\n\n" +END + +/* Format help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_FORMAT "\n\ +\n\n" +END + +/* GPT help description */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_GPT "\n\ +\n\n" +END + +/* Help help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_HELP "\n\ +\n\n" +END + +/* Import help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_IMPORT "\n\ +\n\n" +END + +/* Inactive help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_INACTIVE "\n\ +\n\n" +END + +/* List help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_LIST "\n\ +\n\n" +END + +/* Merge help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_MERGE "\n\ +\n\n" +END + +/* Offline help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_OFFLINE "\n\ +\n\n" +END + +/* Online help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_ONLINE "\n\ +\n\n" +END + +/* Recover help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_RECOVER "\n\ +\n\n" +END + +/* Remove help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_REMOVE "\n\ +\n\n" +END + +/* Repair help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_REPAIR "\n\ +\n\n" +END + +/* Rescan help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_RESCAN "\n\ +\n\n" +END + +/* Retain help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_RETAIN "\n\ +\n\n" +END + +/* San help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_SAN "\n\ +\n\n" +END + +/* Select help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_SELECT "\n\ +\n\n" +END + +/* Setid help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_SETID "\n\ +\n\n" +END + +/* Setid help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_SHRINK "\n\ +\n\n" +END + +/* Uniqueid help descriptions */ +STRINGTABLE +BEGIN + IDS_HELP_CMD_UNIQUEID "\n\ +\n\n" +END diff --git a/base/system/format/lang/ru-RU.rc b/base/system/format/lang/ru-RU.rc index 8af2955830d..20dd955dae2 100644 --- a/base/system/format/lang/ru-RU.rc +++ b/base/system/format/lang/ru-RU.rc @@ -5,9 +5,9 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE BEGIN STRING_HELP "Использование: %s том: [-FS:система] [-V:метка] [-Q] [-A:размер] [-C]\n\n\ - [том:] Указывает букву диска (с последующим двоеточием),\n\ + том: Указывает букву диска (с последующим двоеточием),\n\ точку подключения или имя тома.\n\ - -FS:система Указывает на тип файловой системы (%s).\n\ + -FS:система Указывает тип файловой системы (%s).\n\ -V:метка Метка тома.\n\ -Q Быстрое форматирование.\n\ -A:размер Заменяет размер кластера по умолчанию. В общих\n\ @@ -15,8 +15,8 @@ BEGIN NTFS поддерживает 512, 1024, 2048, 4096, 8192, 16K, 32K, 64K.\n\ FAT поддерживает 8192, 16K, 32K, 64K, 128K, 256K.\n\ Для сжатых NTFS-томов не поддерживается размер более 4096.\n\ - -C Устанавливает режим сжатия по умолчанию для всех файлов,\n\ - создаваемых на новом томе.\n\n" + -C Только для NTFS: Устанавливает режим сжатия по умолчанию для\n\ + всех файлов, создаваемых на новом томе.\n\n" STRING_COMPLETE "%lu процентов выполнено.\r" STRING_FORMAT_FAIL "FormatEx завершился неудачей.\n\n" STRING_NO_SUPPORT "Операция не поддерживается" diff --git a/base/system/subst/lang/ru-RU.rc b/base/system/subst/lang/ru-RU.rc new file mode 100644 index 00000000000..7f4f0bde319 --- /dev/null +++ b/base/system/subst/lang/ru-RU.rc @@ -0,0 +1,19 @@ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +STRINGTABLE +BEGIN + IDS_INCORRECT_PARAMETER_COUNT "Неверное число параметров - %s\n" + IDS_INVALID_PARAMETER "Неверное число параметров - %s\n" + IDS_INVALID_PARAMETER2 "Неверный параметр - %s\n" + IDS_DRIVE_ALREADY_SUBSTED "Диск уже сопоставлен\n" + IDS_FAILED_WITH_ERRORCODE "Сбой с кодом ошибки 0x%x: %s\n" + IDS_USAGE "Сопоставление имени диска указанному пути.\n\n\ +SUBST [диск1: [диск2:]путь]\n\ +SUBST диск1: /D\n\n\ + диск1: Виртуальный диск, который сопоставляется указанному пути.\n\ + [диск:]путь Физические диск и путь,\n которым сопоставляется виртуальный диск.\n\ + /D Удаление ранее созданного виртуального диска.\n\n\ +Введите SUBST без параметров для вывода текущего списка виртуальных дисков.\n" +END diff --git a/base/system/subst/subst.rc b/base/system/subst/subst.rc index a9321d1e743..b8070d763bf 100644 --- a/base/system/subst/subst.rc +++ b/base/system/subst/subst.rc @@ -34,6 +34,9 @@ #ifdef LANGUAGE_RO_RO #include "lang/ro-RO.rc" #endif +#ifdef LANGUAGE_RU_RU + #include "lang/ru-RU.rc" +#endif #ifdef LANGUAGE_SQ_AL #include "lang/sq-AL.rc" #endif diff --git a/boot/bootdata/hivecls.inf b/boot/bootdata/hivecls.inf index b1ebd726d8e..c0461bbe9e1 100644 --- a/boot/bootdata/hivecls.inf +++ b/boot/bootdata/hivecls.inf @@ -492,4 +492,9 @@ CPLFILE_OPENWITH="Otwórz poprzez Panel Sterowania" CPLFILE="Extensie pentru panou de control" CPLFILE_OPENWITH="Deschide în panou de control" +; LANG_RUSSIAN SUBLANG_NEUTRAL +[Strings.0019] +CPLFILE="Элемент панели управления" +CPLFILE_OPENWITH="Открыть с помощью Панели управления" + ; EOF diff --git a/boot/bootdata/hivedef.inf b/boot/bootdata/hivedef.inf index 6780c7d1ed1..c99473f5c84 100644 --- a/boot/bootdata/hivedef.inf +++ b/boot/bootdata/hivedef.inf @@ -2681,9 +2681,9 @@ TEMP_DIR="%USERPROFILE%\Preferinte locale\Temp" ; LANG_RUSSIAN SUBLANG_NEUTRAL [Strings.0019] -POWERCFG_NAME_0="Домашний/офисный настольный" +POWERCFG_NAME_0="Домашний/офисный компьютер" POWERCFG_DESC_0="Эта схема подходит для большинства домашних и офисных настольных компьютеров, которые работают от электросети." -POWERCFG_NAME_1="Переносный/ноутбук" +POWERCFG_NAME_1="Ноутбук" POWERCFG_DESC_1="Эта схема предназначена для продления времени работы переносного компьютера от батареи в дороге." POWERCFG_NAME_2="Презентация" POWERCFG_DESC_2="Эта схема оставляет монитор включённым для ведения презентаций." diff --git a/boot/freeldr/fdebug/lang/ru-RU.rc b/boot/freeldr/fdebug/lang/ru-RU.rc index f85d00f4e4e..286ca067ac0 100644 --- a/boot/freeldr/fdebug/lang/ru-RU.rc +++ b/boot/freeldr/fdebug/lang/ru-RU.rc @@ -7,8 +7,8 @@ IDC_FDEBUG MENU BEGIN POPUP "&Файл" BEGIN - MENUITEM "&Соединение", IDM_FILE_CONNECT - MENUITEM "&Отключение", IDM_FILE_DISCONNECT, GRAYED + MENUITEM "&Подключить", IDM_FILE_CONNECT + MENUITEM "&Отключить", IDM_FILE_DISCONNECT, GRAYED MENUITEM SEPARATOR MENUITEM "О&чистить экран", IDM_FILE_CLEARDISPLAY MENUITEM SEPARATOR @@ -50,9 +50,9 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Настройки соединения" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Введите COM-порт (e.g. COM1):", IDC_STATIC, 7, 7, 108, 8 + LTEXT "Введите COM-порт (напр. COM1):", IDC_STATIC, 7, 7, 108, 8 EDITTEXT IDC_COMPORT, 7, 17, 182, 14, ES_AUTOHSCROLL - LTEXT "Введите скорость передачи (e.g. 115200):", IDC_STATIC, 7, 38, 114, 8 + LTEXT "Введите скорость передачи (напр. 115200):", IDC_STATIC, 7, 38, 114, 8 EDITTEXT IDC_BAUTRATE, 7, 48, 182, 14, ES_AUTOHSCROLL DEFPUSHBUTTON "OK", IDOK, 45, 79, 50, 14 PUSHBUTTON "Отмена", IDCANCEL, 100, 79, 50, 14 diff --git a/boot/freeldr/freeldr/arch/arm/macharm.c b/boot/freeldr/freeldr/arch/arm/macharm.c index c45bd0f6e93..b59f58e1969 100644 --- a/boot/freeldr/freeldr/arch/arm/macharm.c +++ b/boot/freeldr/freeldr/arch/arm/macharm.c @@ -60,6 +60,12 @@ ULONG LenBits[] = /* FUNCTIONS ******************************************************************/ +VOID +FrLdrCheckCpuCompatiblity(VOID) +{ + /* Nothing for now */ +} + VOID ArmInit(IN PARM_BOARD_CONFIGURATION_BLOCK BootContext) { diff --git a/boot/freeldr/freeldr/arch/i386/hardware.c b/boot/freeldr/freeldr/arch/i386/hardware.c index 6b6d759a7b9..b12de47df99 100644 --- a/boot/freeldr/freeldr/arch/i386/hardware.c +++ b/boot/freeldr/freeldr/arch/i386/hardware.c @@ -1788,7 +1788,51 @@ PcHwIdle(VOID) /* * No futher processing here. * Optionally implement HLT instruction handling. - */ + */ } +VOID +FrLdrCheckCpuCompatiblity(VOID) +{ + INT CpuInformation[4] = {-1}; + ULONG NumberOfIds; + + /* Check if the processor first supports ID 1 */ + __cpuid(CpuInformation, 0); + + NumberOfIds = CpuInformation[0]; + + if (NumberOfIds == 0) + { + FrLdrBugCheckWithMessage(MISSING_HARDWARE_REQUIREMENTS, + __FILE__, + __LINE__, + "ReactOS requires the CPUID instruction to return " + "more than one supported ID.\n\n"); + } + + /* NumberOfIds will be greater than 1 if the processor is new enough. */ + if (NumberOfIds == 1) + { + INT ProcessorFamily; + + /* Get information. */ + __cpuid(CpuInformation, 1); + + ProcessorFamily = (CpuInformation[0] >> 8) & 0xF; + + /* If it's Family 4 or lower, bugcheck. */ + if(ProcessorFamily < 5) + { + FrLdrBugCheckWithMessage(MISSING_HARDWARE_REQUIREMENTS, + __FILE__, + __LINE__, + "Processor is too old (family %u < 5)\n" + "ReactOS requires a Pentium-level processor or newer.", + ProcessorFamily); + } + } +} + + /* EOF */ diff --git a/boot/freeldr/freeldr/freeldr.c b/boot/freeldr/freeldr/freeldr.c index a425357e91a..70f23693390 100644 --- a/boot/freeldr/freeldr/freeldr.c +++ b/boot/freeldr/freeldr/freeldr.c @@ -37,6 +37,9 @@ VOID BootMain(LPSTR CmdLine) TRACE("BootMain() called.\n"); + /* Check if the CPU is new enough */ + FrLdrCheckCpuCompatiblity(); + if (!UiInitialize(FALSE)) { UiMessageBoxCritical("Unable to initialize UI.\n"); @@ -50,10 +53,10 @@ VOID BootMain(LPSTR CmdLine) } #ifdef _M_IX86 - HalpInitializePciStubs(); - HalpInitBusHandler(); + HalpInitializePciStubs(); + HalpInitBusHandler(); #endif - RunLoader(); + RunLoader(); quit: /* If we reach this point, something went wrong before, therefore reboot */ diff --git a/boot/freeldr/freeldr/include/freeldr.h b/boot/freeldr/freeldr/include/freeldr.h index 0a0f1d5898b..0976bd6bde0 100644 --- a/boot/freeldr/freeldr/include/freeldr.h +++ b/boot/freeldr/freeldr/include/freeldr.h @@ -121,5 +121,6 @@ VOID BootMain(LPSTR CmdLine); VOID LoadOperatingSystem(IN OperatingSystemItem* OperatingSystem); VOID RunLoader(VOID); +VOID FrLdrCheckCpuCompatiblity(VOID); #endif /* __FREELDR_H */ diff --git a/dll/cpl/console/lang/ru-RU.rc b/dll/cpl/console/lang/ru-RU.rc index 5b5dcb1e850..2abef0ea14e 100644 --- a/dll/cpl/console/lang/ru-RU.rc +++ b/dll/cpl/console/lang/ru-RU.rc @@ -8,9 +8,9 @@ CAPTION "Параметры" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Размер курсора", -1, 7, 7, 120, 70, WS_CHILD | WS_VISIBLE | WS_GROUP - CONTROL "&Большой", IDC_RADIO_SMALL_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 20, 90, 10 + CONTROL "&Маленький", IDC_RADIO_SMALL_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 20, 90, 10 CONTROL "&Средний", IDC_RADIO_MEDIUM_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 40, 90, 10 - CONTROL "&Маленький", IDC_RADIO_LARGE_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 60, 90, 10 + CONTROL "&Большой", IDC_RADIO_LARGE_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 60, 90, 10 GROUPBOX "Экран", -1, 133, 7, 112, 70, WS_CHILD | WS_VISIBLE | WS_GROUP CONTROL "&Окно", IDC_RADIO_DISPLAY_WINDOW, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 142, 20, 70, 10 CONTROL "&Полный экран", IDC_RADIO_DISPLAY_FULL, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 142, 40, 70, 10 diff --git a/dll/cpl/desk/background.c b/dll/cpl/desk/background.c index 20d2aeaff12..3a7a26f870c 100644 --- a/dll/cpl/desk/background.c +++ b/dll/cpl/desk/background.c @@ -237,7 +237,7 @@ AddListViewItems(HWND hwndDlg, PDATA pData) } /* Don't add any hidden bitmaps. Also don't add current wallpaper once more. */ - if (((fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) == 0) && (_tcscmp(wallpaperFilename, filename) != 0)) + if (((fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) == 0) && (_tcsicmp(wallpaperFilename, filename) != 0)) { himl = (HIMAGELIST)SHGetFileInfo(filename, 0, diff --git a/dll/cpl/inetcpl/lang/ru-RU.rc b/dll/cpl/inetcpl/lang/ru-RU.rc index 1963c8ed411..3805b0445bc 100644 --- a/dll/cpl/inetcpl/lang/ru-RU.rc +++ b/dll/cpl/inetcpl/lang/ru-RU.rc @@ -30,11 +30,11 @@ BEGIN IDS_CPL_INFO "Настроить Wine Интернет-Браузер и настройки, связанные с" IDS_SEC_SETTINGS "Параметры безопасности этой зоны: " IDS_SEC_LEVEL0 "Пользовательские" - IDS_SEC_LEVEL1 "Очень Низкая" - IDS_SEC_LEVEL2 "Низкая" - IDS_SEC_LEVEL3 "Средняя" - IDS_SEC_LEVEL4 "Увеличенная" - IDS_SEC_LEVEL5 "Высокая" + IDS_SEC_LEVEL1 "Низкий" + IDS_SEC_LEVEL2 "Ниже среднего" + IDS_SEC_LEVEL3 "Средний" + IDS_SEC_LEVEL4 "Выше среднего" + IDS_SEC_LEVEL5 "Высокий" END /* "General" propsheet */ diff --git a/dll/cpl/wined3dcfg/lang/ru-RU.rc b/dll/cpl/wined3dcfg/lang/ru-RU.rc new file mode 100644 index 00000000000..1485f711d39 --- /dev/null +++ b/dll/cpl/wined3dcfg/lang/ru-RU.rc @@ -0,0 +1,39 @@ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +IDD_PROPPAGEGENERAL DIALOGEX 0, 0, 246, 228 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Основные" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_CPLICON, IDI_CPLICON, 8, 0, 21, 20 + GROUPBOX "Шейдеры", -1, 5, 25, 230, 80 + LTEXT "Включить GLSL:", -1, 15, 42, 120, 10 + COMBOBOX IDC_GLSL, 135, 40, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + LTEXT "Максимальный уровень GS:", -1, 15, 57, 120, 10 + COMBOBOX IDC_GSLEVEL, 135, 55, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + LTEXT "Максимальный уровень PS:", -1, 15, 72, 120, 10 + COMBOBOX IDC_PSLEVEL, 135, 70, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + LTEXT "Максимальный уровень VS:", -1, 15, 87, 120, 10 + COMBOBOX IDC_VSLEVEL, 135, 85, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + GROUPBOX "Рендеринг", -1, 5, 110, 230, 110 + LTEXT "Мультисэмплинг:", -1, 15, 127, 120, 10 + COMBOBOX IDC_MULTISAMPLING, 135, 125, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + LTEXT "Strict draw ordering:", -1, 15, 142, 120, 10 + COMBOBOX IDC_STRICTDRAWORDERING, 135, 140, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + LTEXT "Offscreen рендеринг:", -1, 15, 157, 120, 10 + COMBOBOX IDC_OFFSCREEN, 135, 155, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + LTEXT "Always offscreen:", -1, 15, 172, 120, 10, SS_LEFT + COMBOBOX IDC_ALWAYSOFFSCREEN, 135, 170, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + LTEXT "Размер видеопамяти:", -1, 15, 187, 120, 10, SS_LEFT + COMBOBOX IDC_VIDMEMSIZE, 135, 185, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + LTEXT "DirectDraw рендерер:", -1, 15, 202, 120, 10, SS_LEFT + COMBOBOX IDC_DDRENDERER, 135, 200, 90, 10, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST +END + +STRINGTABLE +BEGIN + IDS_CPLNAME "WineD3D" + IDS_CPLDESCRIPTION "Задание параметров WineD3D библиотеки." +END diff --git a/dll/cpl/wined3dcfg/wined3dcfg.rc b/dll/cpl/wined3dcfg/wined3dcfg.rc index 3c19a192066..07a081ef667 100644 --- a/dll/cpl/wined3dcfg/wined3dcfg.rc +++ b/dll/cpl/wined3dcfg/wined3dcfg.rc @@ -36,6 +36,9 @@ IDI_CPLICON ICON "resources/wined3dcfg.ico" #ifdef LANGUAGE_RO_RO #include "lang/ro-RO.rc" #endif +#ifdef LANGUAGE_RU_RU + #include "lang/ru-RU.rc" +#endif #ifdef LANGUAGE_SQ_AL #include "lang/sq-AL.rc" #endif diff --git a/dll/ntdll/csr/capture.c b/dll/ntdll/csr/capture.c index ad266250c9b..1f1e6956e55 100644 --- a/dll/ntdll/csr/capture.c +++ b/dll/ntdll/csr/capture.c @@ -321,7 +321,7 @@ CsrCaptureTimeout(IN ULONG Milliseconds, if (Milliseconds == -1) return NULL; /* Convert to relative ticks */ - Timeout->QuadPart = Int32x32To64(Milliseconds, -10000); + Timeout->QuadPart = Milliseconds * -10000LL; return Timeout; } diff --git a/dll/win32/CMakeLists.txt b/dll/win32/CMakeLists.txt index 867faf6267f..c4febe05c47 100644 --- a/dll/win32/CMakeLists.txt +++ b/dll/win32/CMakeLists.txt @@ -243,6 +243,7 @@ add_subdirectory(ws2_32) add_subdirectory(ws2_32_new) add_subdirectory(ws2help) add_subdirectory(wshirda) +add_subdirectory(wshom.ocx) add_subdirectory(wshtcpip) add_subdirectory(wsock32) add_subdirectory(wtsapi32) diff --git a/dll/win32/avifil32/lang/avifile_Ru.rc b/dll/win32/avifil32/lang/avifile_Ru.rc index 1040706b2de..75859d6407f 100644 --- a/dll/win32/avifil32/lang/avifile_Ru.rc +++ b/dll/win32/avifil32/lang/avifile_Ru.rc @@ -40,10 +40,10 @@ BEGIN LTEXT "&Выберите поток:",-1,5,5,154,10 COMBOBOX IDC_STREAM,5,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "&Параметры...",IDC_OPTIONS,170,17,50,14 + PUSHBUTTON "&Параметры",IDC_OPTIONS,170,17,50,14 AUTOCHECKBOX "&Прослаивать каждые",IDC_INTERLEAVE,5,42,85,11,WS_TABSTOP EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL - LTEXT "фрейма",-1,129,43,36,9 + LTEXT "кадров",-1,129,43,36,9 LTEXT "Текущий формат:",-1,5,56,73,9 LTEXT "",IDC_FORMATTEXT,80,56,88,26 DEFPUSHBUTTON "ОК",IDOK,170,42,50,14 diff --git a/dll/win32/comctl32/lang/comctl_Ru.rc b/dll/win32/comctl32/lang/comctl_Ru.rc index e64445f11e0..f6b52417588 100644 --- a/dll/win32/comctl32/lang/comctl_Ru.rc +++ b/dll/win32/comctl32/lang/comctl_Ru.rc @@ -79,8 +79,8 @@ BEGIN DEFPUSHBUTTON "&Закрыть", IDCANCEL,320,6,70,14 PUSHBUTTON "С&брос", IDC_RESET_BTN,320,23,70,14 PUSHBUTTON "&Справка", IDC_HELP_BTN,320,40,70,14 - PUSHBUTTON "Переместить вв&ерх", IDC_MOVEUP_BTN,320,74,70,14 - PUSHBUTTON "Переместить &вниз", IDC_MOVEDN_BTN,320,91,70,14 + PUSHBUTTON "Вв&ерх", IDC_MOVEUP_BTN,320,74,70,14 + PUSHBUTTON "&Вниз", IDC_MOVEDN_BTN,320,91,70,14 LTEXT "Доступные &кнопки:", -1,4,5,120,10 LISTBOX IDC_AVAILBTN_LBOX,5,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP PUSHBUTTON "&Добавить >", IDOK, 132, 42, 55, 14 diff --git a/dll/win32/comdlg32/lang/cdlg_Ru.rc b/dll/win32/comdlg32/lang/cdlg_Ru.rc index c05ade6b630..3754000add6 100644 --- a/dll/win32/comdlg32/lang/cdlg_Ru.rc +++ b/dll/win32/comdlg32/lang/cdlg_Ru.rc @@ -146,23 +146,23 @@ STRINGTABLE OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Открыть" +CAPTION "Открытие файла" FONT 8, "MS Shell Dlg" { LTEXT "&Имя файла:", stc3, 6, 6, 76, 9 EDITTEXT edt1, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP LISTBOX lst1, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP - LTEXT "&Каталоги:", -1, 110, 6, 92, 9 + LTEXT "&Папки:", -1, 110, 6, 92, 9 LTEXT "", stc1, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP LISTBOX lst2, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP - LTEXT "Показывать файлы &типа:", stc2, 6, 104, 90, 9 + LTEXT "&Типы файлов:", stc2, 6, 104, 90, 9 COMBOBOX cmb1, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP LTEXT "&Диски:", stc4, 110, 104, 92, 9 COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Открыть", IDOK, 208, 6, 60, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 208, 6, 60, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "Отмена", IDCANCEL, 208, 24, 60, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "&Справка", pshHelp, 208, 46, 60, 14, WS_GROUP | WS_TABSTOP - CHECKBOX "&Только для чтения", chx1, 208, 68, 65, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "Только &чтение", chx1, 208, 68, 65, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP } @@ -195,18 +195,18 @@ FONT 8, "MS Shell Dlg" { LTEXT "Принтер:", stc1, 6, 6, 40, 9 LTEXT "", stc2, 60, 6, 150, 9 - GROUPBOX "Печатать", grp1, 6, 30, 160, 65, BS_GROUPBOX - RADIOBUTTON "&Весь реестр", rad1, 16, 45, 60, 12 + GROUPBOX "Диапазон печати", grp1, 6, 30, 160, 65, BS_GROUPBOX + RADIOBUTTON "&Все", rad1, 16, 45, 60, 12 RADIOBUTTON "В&ыделенный фрагмент", rad2, 16, 60, 60, 12 - RADIOBUTTON "&Страницы", rad3, 16, 75, 60, 12 - DEFPUSHBUTTON "Печать", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + RADIOBUTTON "С&траницы", rad3, 16, 75, 60, 12 + DEFPUSHBUTTON "OK", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "Отмена", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Сво&йства", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP LTEXT "&с:", stc3, 60, 80, 30, 9 LTEXT "&по:", stc4, 120, 80, 30, 9 LTEXT "&Качество печати:", stc5, 6, 100, 76, 9 COMBOBOX cmb1, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP - CHECKBOX "П&ечать в файл", chx1, 20, 120, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "Пе&чать в файл", chx1, 20, 120, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP CHECKBOX "Сжато", chx2, 160, 120, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP } @@ -231,7 +231,7 @@ FONT 8, "MS Shell Dlg" ICON "PORTRAIT", stc11, 10, 95, 32, 32 GROUPBOX "Бумага", grp3, 116, 82, 178, 50, BS_GROUPBOX LTEXT "Ра&змер", stc2, 126, 95, 35, 9 - LTEXT "&Источник", stc3, 126, 110, 35, 9 + LTEXT "&Подача", stc3, 126, 110, 35, 9 COMBOBOX cmb2, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP COMBOBOX cmb3, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP } @@ -350,41 +350,41 @@ FONT 8, "MS Shell Dlg" { DEFPUSHBUTTON "ОК", IDOK, 176,164, 50,14, WS_GROUP | BS_DEFPUSHBUTTON PUSHBUTTON "Отмена", IDCANCEL, 230,164, 50,14, WS_GROUP - PUSHBUTTON "&Справка", pshHelp, 50, 161, 50,14, WS_GROUP + PUSHBUTTON "Спр&авка", pshHelp, 50, 161, 50,14, WS_GROUP GROUPBOX "Принтер", grp4, 8, 4, 272,84, WS_GROUP - CONTROL "Печать в фай&л", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,185,36,90,16 - PUSHBUTTON "&Свойства", psh2, 212, 17, 60,14, WS_GROUP + CONTROL "Пе&чать в файл", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,185,36,90,16 + PUSHBUTTON "Сво&йства...", psh2, 212, 17, 60,14, WS_GROUP LTEXT "&Имя:", stc6, 16, 20, 36,8 COMBOBOX cmb4, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP - LTEXT "Статус:", stc8, 16, 36, 47,10, SS_NOPREFIX + LTEXT "Состояние:", stc8, 16, 36, 47,10, SS_NOPREFIX LTEXT "", stc12, 65, 36, 120,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP LTEXT "Тип:", stc7, 16, 48, 47,10, SS_NOPREFIX LTEXT "", stc11, 65, 48, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP LTEXT "Место:", stc10, 16, 60, 47,10, SS_NOPREFIX LTEXT "", stc14, 65, 60, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Примечание:", stc9, 16, 72, 47,10, SS_NOPREFIX + LTEXT "Комментарий:", stc9, 16, 72, 47,10, SS_NOPREFIX LTEXT "", stc13, 65, 72, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP GROUPBOX "Копии", grp2, 160, 92, 120,64, WS_GROUP LTEXT "Число &копий:",stc5,168,105,68,8 ICON "", ico3, 170,131, 76,24, WS_GROUP | SS_CENTERIMAGE - CONTROL "&Разбить", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,168,118,100,12 + CONTROL "&Разобрать по копиям", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,168,118,100,12 EDITTEXT edt3, 240,103, 32,12, WS_GROUP | ES_NUMBER - GROUPBOX "Печатать", grp1, 8,92, 144,64, WS_GROUP - CONTROL "&Весь реестр", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12 - CONTROL "&Страницы", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12 - CONTROL "&Выделение", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12 + GROUPBOX "Диапазон печати", grp1, 8,92, 144,64, WS_GROUP + CONTROL "&Все", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12 + CONTROL "С&траницы", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12 + CONTROL "В&ыделенный фрагмент", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12 EDITTEXT edt1, 73,122, 26,12, WS_GROUP | ES_NUMBER EDITTEXT edt2, 120,122, 26,12, WS_GROUP | ES_NUMBER - RTEXT "&от:", stc2, 52,124, 20,8 - RTEXT "&до:", stc3, 99,124, 20,8 + RTEXT "&с:", stc2, 52,124, 20,8 + RTEXT "&по:", stc3, 99,124, 20,8 } PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK -CAPTION "Настройка принтера" +CAPTION "Настройка печати" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "ОК", IDOK, 176, 156, 50, 14, WS_GROUP @@ -395,25 +395,25 @@ BEGIN PUSHBUTTON "&Свойства", psh2, 212, 17, 60,14, WS_GROUP LTEXT "&Имя:", stc6, 16, 20, 36,8 COMBOBOX cmb1, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP - LTEXT "Статус:", stc8, 16, 36, 47,10, SS_NOPREFIX + LTEXT "Состояние:", stc8, 16, 36, 47,10, SS_NOPREFIX LTEXT "", stc12, 65, 36, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP LTEXT "Тип:", stc7, 16, 48, 47,10, SS_NOPREFIX LTEXT "", stc11, 65, 48, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP LTEXT "Место:", stc10, 16, 60, 47,10, SS_NOPREFIX LTEXT "", stc14, 65, 60, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Примечание:", stc9, 16, 72, 47,10, SS_NOPREFIX + LTEXT "Комментарий:", stc9, 16, 72, 47,10, SS_NOPREFIX LTEXT "", stc13, 65, 72, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP GROUPBOX "Бумага", grp2, 8, 92, 164,56, WS_GROUP - LTEXT "Размер:", stc2, 16,108, 36, 8 + LTEXT "Ра&змер:", stc2, 16,108, 36, 8 COMBOBOX cmb2, 52,106, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP - LTEXT "&Источник:", stc3, 16,128, 36, 8 + LTEXT "Пода&ча:", stc3, 16,128, 36, 8 COMBOBOX cmb3, 52,126, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP GROUPBOX "Ориентация", grp1, 180, 92, 100,56, WS_GROUP ICON "", ico1, 195,112, 18,20, WS_GROUP - CONTROL "&Портрет", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP |WS_TABSTOP,224,106,52,12 - CONTROL "Л&андшафт", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 + CONTROL "&Книжная", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP |WS_TABSTOP,224,106,52,12 + CONTROL "&Альбомная", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END PAGESETUPDLGORD DIALOG 32, 32, 240, 240 @@ -433,11 +433,11 @@ BEGIN AUTORADIOBUTTON "&Книжная", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON AUTORADIOBUTTON "&Альбомная", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON GROUPBOX "Поля", grp4, 80, 156, 152, 56, BS_GROUPBOX - LTEXT "&Слева:", stc15, 88, 172, 30, 8 + LTEXT "&Левое:", stc15, 88, 172, 30, 8 EDITTEXT edt4, 119, 170, 36, 12, WS_TABSTOP|WS_GROUP|WS_BORDER LTEXT "&Правое:", stc16, 159, 172, 30, 8 EDITTEXT edt6, 190, 170, 36, 12, WS_TABSTOP|WS_GROUP|WS_BORDER - LTEXT "Спр&ава:", stc17, 88, 192, 30, 8 + LTEXT "&Верхнее:", stc17, 88, 192, 30, 8 EDITTEXT edt5, 119, 190, 36, 12, WS_TABSTOP|WS_GROUP|WS_BORDER LTEXT "&Нижнее:", stc18, 159, 192, 30, 8 EDITTEXT edt7, 190, 190, 36, 12, WS_TABSTOP|WS_GROUP|WS_BORDER diff --git a/dll/win32/crypt32/crypt32.rc b/dll/win32/crypt32/crypt32.rc index aecccc32204..467b50272d7 100644 --- a/dll/win32/crypt32/crypt32.rc +++ b/dll/win32/crypt32/crypt32.rc @@ -70,6 +70,9 @@ #ifdef LANGUAGE_RO_RO #include "lang/crypt32_Ro.rc" #endif +#ifdef LANGUAGE_RU_RU + #include "lang/crypt32_Ru.rc" +#endif #ifdef LANGUAGE_SQ_AL #include "lang/crypt32_Sq.rc" #endif diff --git a/dll/win32/crypt32/lang/crypt32_Ru.rc b/dll/win32/crypt32/lang/crypt32_Ru.rc new file mode 100644 index 00000000000..68bad5de67a --- /dev/null +++ b/dll/win32/crypt32/lang/crypt32_Ru.rc @@ -0,0 +1,238 @@ +/* + * crypt32 dll resources + * + * Copyright (C) 2006 Juan Lang + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_AUTHORITY_KEY_ID "Идентификатор ключа центра сертификатов" + IDS_KEY_ATTRIBUTES "Атрибуты ключа" + IDS_KEY_USAGE_RESTRICTION "Ограничение использования ключа" + IDS_SUBJECT_ALT_NAME "Дополнительное имя субъекта" + IDS_ISSUER_ALT_NAME "Дополнительное имя поставщика" + IDS_BASIC_CONSTRAINTS "Основные ограничения" + IDS_KEY_USAGE "Использование ключа" + IDS_CERT_POLICIES "Политики сертификата" + IDS_SUBJECT_KEY_IDENTIFIER "Идентификатор ключа субъекта" + IDS_CRL_REASON_CODE "Код причины списка отзыва (CRL)" + IDS_CRL_DIST_POINTS "Точки распространения списков отзыва (CRL)" + IDS_ENHANCED_KEY_USAGE "Улучшенный ключ" + IDS_AUTHORITY_INFO_ACCESS "Доступ к информации о центрах сертификации" + IDS_CERT_EXTENSIONS "Расширения сертификатов" + IDS_NEXT_UPDATE_LOCATION "Размещение следующего обновления" + IDS_YES_OR_NO_TRUST "Да или Нет доверию" + IDS_EMAIL_ADDRESS "Электронная почта" + IDS_UNSTRUCTURED_NAME "Неструктурированное имя" + IDS_CONTENT_TYPE "Тип содержимого" + IDS_MESSAGE_DIGEST "Выборка сообщения" + IDS_SIGNING_TIME "Время подписания" + IDS_COUNTER_SIGN "Подпись счетчика" + IDS_CHALLENGE_PASSWORD "Пароль вызова" + IDS_UNSTRUCTURED_ADDRESS "Неструктурированный адрес" + IDS_SMIME_CAPABILITIES "Возможности S/MIME" + IDS_PREFER_SIGNED_DATA "Предпочтение подписанных данных" + IDS_CPS "CPS" + IDS_USER_NOTICE "Уведомление пользователя" + IDS_OCSP "Протокол определения состояния сертификата через сеть" + IDS_CA_ISSUER "Поставщик центра сертификации" + IDS_CERT_TEMPLATE_NAME "Имя шаблона сертификата" + IDS_CERT_TYPE "Тип сертификата" + IDS_CERT_MANIFOLD "Размножение сертификата" + IDS_NETSCAPE_CERT_TYPE "Тип сертификата Netscape" + IDS_NETSCAPE_BASE_URL "Базовый URL Netscape" + IDS_NETSCAPE_REVOCATION_URL "URL отзыва Netscape" + IDS_NETSCAPE_CA_REVOCATION_URL "URL отзыва ЦС Netscape" + IDS_NETSCAPE_CERT_RENEWAL_URL "URL обновления сертификатов Netscape" + IDS_NETSCAPE_CA_POLICY_URL "URL политики ЦС Netscape" + IDS_NETSCAPE_SSL_SERVER_NAME "Имя SSL-сервера Netscape" + IDS_NETSCAPE_COMMENT "Комментарий Netscape" + IDS_COUNTRY "Страна или регион" + IDS_ORGANIZATION "Организация" + IDS_ORGANIZATIONAL_UNIT "Подразделение" + IDS_COMMON_NAME "Обычное имя" + IDS_LOCALITY "Размещение" + IDS_STATE_OR_PROVINCE "Область, штат" + IDS_TITLE "Должность" + IDS_GIVEN_NAME "Заданное имя" + IDS_INITIALS "Инициалы" + IDS_SUR_NAME "Фамилия" + IDS_DOMAIN_COMPONENT "Компонент домена" + IDS_STREET_ADDRESS "Адрес, улица" + IDS_SERIAL_NUMBER "Серийный номер" + IDS_CA_VERSION "Версия ЦС" + IDS_CROSS_CA_VERSION "Cross CA Version" + IDS_SERIALIZED_SIG_SERIAL_NUMBER "Серийный номер сериализованной подписи" + IDS_PRINCIPAL_NAME "Имя участника" + IDS_WINDOWS_PRODUCT_UPDATE "Обновление продукта ReactOS" + IDS_ENROLLMENT_NAME_VALUE_PAIR "Пара имени и значения заявки" + IDS_OS_VERSION "Версия ОС" + IDS_ENROLLMENT_CSP "CSP подачи заявок" + IDS_CRL_NUMBER "Номер CRL" + IDS_DELTA_CRL_INDICATOR "Индикатор разностного CRL" + IDS_ISSUING_DIST_POINT "Точка распространения выдачи" + IDS_FRESHEST_CRL "Новейший CRL" + IDS_NAME_CONSTRAINTS "Ограничения имени" + IDS_POLICY_MAPPINGS "Сопоставления политики" + IDS_POLICY_CONSTRAINTS "Ограничения политики" + IDS_CROSS_CERT_DIST_POINTS "Точки распространения перекрестных сертификатов" + IDS_APPLICATION_POLICIES "Политики применения" + IDS_APPLICATION_POLICY_MAPPINGS "Сопоставления политики применения" + IDS_APPLICATION_POLICY_CONSTRAINTS "Ограничения политики применения" + IDS_CMC_DATA "Данные CMC" + IDS_CMC_RESPONSE "Ответ CMC" + IDS_UNSIGNED_CMC_REQUEST "Неподписанный запрос CMC" + IDS_CMC_STATUS_INFO "Состояние CMC" + IDS_CMC_EXTENSIONS "Расширения CMC" + IDS_CMC_ATTRIBUTES "Атрибуты CMC" + IDS_PKCS_7_DATA "Данные PKCS 7" + IDS_PKCS_7_SIGNED "Подписан PKCS 7" + IDS_PKCS_7_ENVELOPED "Запечатан PKCS 7" + IDS_PKCS_7_SIGNED_ENVELOPED "Подписан и запечатан PKCS 7" + IDS_PKCS_7_DIGESTED "Сделан дайджест PKCS 7" + IDS_PKCS_7_ENCRYPTED "Зашифрован PKCS 7" + IDS_PREVIOUS_CA_CERT_HASH "Хеш сертификата прежнего ЦС" + IDS_CRL_VIRTUAL_BASE "Виртуальный номер базового CRL" + IDS_CRL_NEXT_PUBLISH "Следующая публикация CRL" + IDS_CA_EXCHANGE "CA Encryption Certificate" + IDS_KEY_RECOVERY_AGENT "Агент восстановления ключей" + IDS_CERTIFICATE_TEMPLATE "Сведения о шаблоне сертификата" + IDS_ENTERPRISE_ROOT_OID "Корневой OID предприятия" + IDS_RDN_DUMMY_SIGNER "Заглушка подписи" + IDS_ARCHIVED_KEY_ATTR "Зашифрованный закрытый ключ" + IDS_CRL_SELF_CDP "Размещения опубликованных CRL" + IDS_REQUIRE_CERT_CHAIN_POLICY "Задействовать политику цепочки сертификатов" + IDS_TRANSACTION_ID "Код транзакции" + IDS_SENDER_NONCE "Специальный отправитель" + IDS_RECIPIENT_NONCE "Специальный адресат" + IDS_REG_INFO "Сведения" + IDS_GET_CERTIFICATE "Получение сертификата" + IDS_GET_CRL "Получить CRL" + IDS_REVOKE_REQUEST "Отзыв запроса" + IDS_QUERY_PENDING "Ожидание выполнения запроса" + IDS_SORTED_CTL "Список доверия сертификатов" + IDS_ARCHIVED_KEY_CERT_HASH "Хеш сертификата архивированного ключа" + IDS_PRIVATE_KEY_USAGE_PERIOD "Период использования закрытого ключа" + IDS_CLIENT_INFORMATION "Сведения о клиенте" + IDS_SERVER_AUTHENTICATION "Проверка подлинности сервера" + IDS_CLIENT_AUTHENTICATION "Проверка подлинности клиента" + IDS_CODE_SIGNING "Подписывание кода" + IDS_SECURE_EMAIL "Защищенная электронная почта" + IDS_TIME_STAMPING "Установка отметки времени" + IDS_MICROSOFT_TRUST_LIST_SIGNING "Подписывание списка доверия" + IDS_MICROSOFT_TIME_STAMPING "Установка отметки времени" + IDS_IPSEC_END_SYSTEM "Конечная система IP-безопасности" + IDS_IPSEC_TUNNEL "Окончание туннеля IP-безопасности" + IDS_IPSEC_USER "Пользователь IP-безопасности" + IDS_EFS "Шифрующая файловая система (EFS)" + IDS_WHQL_CRYPTO "Проверка драйверов оборудования ReactOS" + IDS_NT5_CRYPTO "Проверка системных компонентов ReactOS" + IDS_OEM_WHQL_CRYPTO "Проверка системных компонентов OEM ReactOS" + IDS_EMBEDDED_NT_CRYPTO "Встроенная проверка системных компонентов ReactOS" + IDS_KEY_PACK_LICENSES "Лицензии пакета ключей" + IDS_LICENSE_SERVER "Проверка сервера лицензий" + IDS_SMART_CARD_LOGON "Вход со смарт-картой" + IDS_DIGITAL_RIGHTS "Цифровые права" + IDS_QUALIFIED_SUBORDINATION "Квалифицированное подчинение" + IDS_KEY_RECOVERY "Восстановление ключа" + IDS_DOCUMENT_SIGNING "Подписывание документа" + IDS_IPSEC_IKE_INTERMEDIATE "IKE-посредник IP-безопасности" + IDS_FILE_RECOVERY "Восстановление файлов" + IDS_ROOT_LIST_SIGNER "Подпись корневого списка" + IDS_ANY_APPLICATION_POLICIES "Все политики применения" + IDS_DS_EMAIL_REPLICATION "Почтовая репликация службы каталогов" + IDS_ENROLLMENT_AGENT "Агент запроса сертификата" + IDS_LIFETIME_SIGNING "Бессрочная подписка" + IDS_ANY_CERT_POLICY "All issuance policies" +} + +STRINGTABLE +{ + IDS_LOCALIZEDNAME_ROOT "Доверенные корневые центры сертификации" + IDS_LOCALIZEDNAME_MY "Личное" + IDS_LOCALIZEDNAME_CA "Промежуточные центры сертификации" + IDS_LOCALIZEDNAME_ADDRESSBOOK "Другие пользователи" + IDS_LOCALIZEDNAME_TRUSTEDPUBLISHER "Доверенные издатели" + IDS_LOCALIZEDNAME_DISALLOWED "Не доверенные сертификаты" +} + +STRINGTABLE +{ + IDS_KEY_ID "KeyID=" + IDS_CERT_ISSUER "Certificate Issuer" + IDS_CERT_SERIAL_NUMBER "Серийный номер сертификата=" + IDS_ALT_NAME_OTHER_NAME "Other Name=" + IDS_ALT_NAME_RFC822_NAME "Почтовый адрес=" + IDS_ALT_NAME_DNS_NAME "DNS-имя=" + IDS_ALT_NAME_DIRECTORY_NAME "Адрес каталога" + IDS_ALT_NAME_URL "URL=" + IDS_ALT_NAME_IP_ADDRESS "IP-адрес=" + IDS_ALT_NAME_MASK "Маска=" + IDS_ALT_NAME_REGISTERED_ID "Зарегистрированный идентификатор=" + IDS_USAGE_UNKNOWN "Unknown Key Usage" + IDS_SUBJECT_TYPE "Тип субъекта=" + IDS_SUBJECT_TYPE_CA "CA" + IDS_SUBJECT_TYPE_END_CERT "End Entity" + IDS_PATH_LENGTH "Path Length Constraint=" + IDS_PATH_LENGTH_NONE "None" + IDS_INFO_NOT_AVAILABLE "Information Not Available" + IDS_AIA "Authority Info Access" + IDS_ACCESS_METHOD "Метод доступа=" + IDS_ACCESS_METHOD_OCSP "OCSP" + IDS_ACCESS_METHOD_CA_ISSUERS "CA Issuers" + IDS_ACCESS_METHOD_UNKNOWN "Unknown Access Method" + IDS_ACCESS_LOCATION "Alternative Name" + IDS_CRL_DIST_POINT "CRL Distribution Point" + IDS_CRL_DIST_POINT_NAME "Distribution Point Name" + IDS_CRL_DIST_POINT_FULL_NAME "Полное имя" + IDS_CRL_DIST_POINT_RDN_NAME "RDN имя" + IDS_CRL_DIST_POINT_REASON "CRL Reason=" + IDS_CRL_DIST_POINT_ISSUER "CRL Issuer" + IDS_REASON_KEY_COMPROMISE "Key Compromise" + IDS_REASON_CA_COMPROMISE "CA Compromise" + IDS_REASON_AFFILIATION_CHANGED "Affiliation Changed" + IDS_REASON_SUPERSEDED "Superseded" + IDS_REASON_CESSATION_OF_OPERATION "Operation Ceased" + IDS_REASON_CERTIFICATE_HOLD "Certificate Hold" + IDS_FINANCIAL_CRITERIA "Финансовая информация=" + IDS_FINANCIAL_CRITERIA_AVAILABLE "Доступно" + IDS_FINANCIAL_CRITERIA_NOT_AVAILABLE "Недоступно" + IDS_FINANCIAL_CRITERIA_MEETS_CRITERIA "Meets Criteria=" + IDS_YES "Да" + IDS_NO "Нет" + IDS_DIGITAL_SIGNATURE "Цифровая подпись" + IDS_NON_REPUDIATION "Non-Repudiation" + IDS_KEY_ENCIPHERMENT "Key Encipherment" + IDS_DATA_ENCIPHERMENT "Data Encipherment" + IDS_KEY_AGREEMENT "Key Agreement" + IDS_CERT_SIGN "Certificate Signing" + IDS_OFFLINE_CRL_SIGN "Off-line CRL Signing" + IDS_CRL_SIGN "CRL Signing" + IDS_ENCIPHER_ONLY "Encipher Only" + IDS_DECIPHER_ONLY "Decipher Only" + IDS_NETSCAPE_SSL_CLIENT "SSL Client Authentication" + IDS_NETSCAPE_SSL_SERVER "SSL Server Authentication" + IDS_NETSCAPE_SMIME "S/MIME" + IDS_NETSCAPE_SIGN "Подпись" + IDS_NETSCAPE_SSL_CA "SSL CA" + IDS_NETSCAPE_SMIME_CA "S/MIME CA" + IDS_NETSCAPE_SIGN_CA "Подпись CA" +} diff --git a/dll/win32/crypt32/lang/crypt32_Tr.rc b/dll/win32/crypt32/lang/crypt32_Tr.rc index a4ddb7b29a0..b8221116b72 100644 --- a/dll/win32/crypt32/lang/crypt32_Tr.rc +++ b/dll/win32/crypt32/lang/crypt32_Tr.rc @@ -220,7 +220,7 @@ STRINGTABLE IDS_NON_REPUDIATION "Geri Çevrilmiş Olmayan" IDS_KEY_ENCIPHERMENT "Anahtar Şifreleme" IDS_DATA_ENCIPHERMENT "Veri Şifreleme" - IDS_KEY_AGREEMENT "Anahtar Onaylanması" + IDS_KEY_AGREEMENT "Anahtar Kabûlü" IDS_CERT_SIGN "Onay Belgesi İmzâlama" IDS_OFFLINE_CRL_SIGN "Çevrim Dışı CRL İmzâlama" IDS_CRL_SIGN "CRL İmzâlama" diff --git a/dll/win32/cryptdlg/cryptdlg.rc b/dll/win32/cryptdlg/cryptdlg.rc index 783f677a597..66b560e5535 100644 --- a/dll/win32/cryptdlg/cryptdlg.rc +++ b/dll/win32/cryptdlg/cryptdlg.rc @@ -65,6 +65,9 @@ #ifdef LANGUAGE_RO_RO #include "lang/cryptdlg_Ro.rc" #endif +#ifdef LANGUAGE_RU_RU + #include "lang/cryptdlg_Ru.rc" +#endif #ifdef LANGUAGE_SQ_AL #include "lang/cryptdlg_Sq.rc" #endif diff --git a/dll/win32/cryptdlg/lang/cryptdlg_Ru.rc b/dll/win32/cryptdlg/lang/cryptdlg_Ru.rc new file mode 100644 index 00000000000..0991cceb7a0 --- /dev/null +++ b/dll/win32/cryptdlg/lang/cryptdlg_Ru.rc @@ -0,0 +1,40 @@ +/* + * cryptdlg dll resources + * + * Copyright 2008 Juan Lang + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + +/* UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_CERT_POLICY "Политика сертификата" + IDS_POLICY_ID "Идентификатор политики: " + IDS_POLICY_QUALIFIER_INFO "Policy Qualifier Info" + IDS_POLICY_QUALIFIER_ID "Policy Qualifier Id=" + IDS_CPS "CPS" /* Certification Practice Statement */ + IDS_USER_NOTICE "Пользовательское уведомление" + IDS_QUALIFIER "Спецификатор" + IDS_NOTICE_REF "Notice Reference" + IDS_ORGANIZATION "Организация=" + IDS_NOTICE_NUM "Номер уведомления=" + IDS_NOTICE_TEXT "Текст уведомления=" +} diff --git a/dll/win32/cryptui/lang/cryptui_Ru.rc b/dll/win32/cryptui/lang/cryptui_Ru.rc index aceea668103..ea9ebca17fb 100644 --- a/dll/win32/cryptui/lang/cryptui_Ru.rc +++ b/dll/win32/cryptui/lang/cryptui_Ru.rc @@ -26,85 +26,85 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_CERTIFICATE "Certificate" - IDS_CERTIFICATEINFORMATION "Certificate Information" + IDS_CERTIFICATE "Сертификат" + IDS_CERTIFICATEINFORMATION "Информация о сертификате" IDS_CERT_INFO_BAD_SIG "This certificate has an invalid signature. The certificate may have been altered or corrupted." IDS_CERT_INFO_UNTRUSTED_CA "This root certificate is not trusted. To trust it, add it to your system's trusted root certificate store." IDS_CERT_INFO_UNTRUSTED_ROOT "This certificate could not be validated to a trusted root certificate." IDS_CERT_INFO_PARTIAL_CHAIN "This certificate's issuer could not be found." IDS_CERT_INFO_BAD_PURPOSES "All the intended purposes of this certificate could not be verified." IDS_CERT_INFO_PURPOSES "This certificate is intended for the following purposes:" - IDS_SUBJECT_HEADING "Issued to: " - IDS_ISSUER_HEADING "Issued by: " - IDS_VALID_FROM "Valid from " - IDS_VALID_TO " to " - IDS_CERTIFICATE_BAD_SIGNATURE "This certificate has an invalid signature." - IDS_CERTIFICATE_BAD_TIME "This certificate has expired or is not yet valid." + IDS_SUBJECT_HEADING "Кому выдан: " + IDS_ISSUER_HEADING "Кем выдан: " + IDS_VALID_FROM "Действителен с " + IDS_VALID_TO " по " + IDS_CERTIFICATE_BAD_SIGNATURE "Данный сертификат имеет неверную подпись." + IDS_CERTIFICATE_BAD_TIME "Срок действия данного сертификата истек." IDS_CERTIFICATE_BAD_TIMENEST "This certificate's validity period exceeds that of its issuer." IDS_CERTIFICATE_REVOKED "This certificate was revoked by its issuer." IDS_CERTIFICATE_VALID "This certificate is OK." - IDS_FIELD "Field" - IDS_VALUE "Value" - IDS_FIELDS_ALL "" - IDS_FIELDS_V1 "Version 1 Fields Only" - IDS_FIELDS_EXTENSIONS "Extensions Only" - IDS_FIELDS_CRITICAL_EXTENSIONS "Critical Extensions Only" - IDS_FIELDS_PROPERTIES "Properties Only" - IDS_FIELD_VERSION "Version" - IDS_FIELD_SERIAL_NUMBER "Serial number" - IDS_FIELD_ISSUER "Issuer" - IDS_FIELD_VALID_FROM "Valid from" - IDS_FIELD_VALID_TO "Valid to" - IDS_FIELD_SUBJECT "Subject" - IDS_FIELD_PUBLIC_KEY "Public key" + IDS_FIELD "Поле" + IDS_VALUE "Значение" + IDS_FIELDS_ALL "<Все>" + IDS_FIELDS_V1 "Только поля V1" + IDS_FIELDS_EXTENSIONS "Только расширения" + IDS_FIELDS_CRITICAL_EXTENSIONS "Только критические расширения" + IDS_FIELDS_PROPERTIES "Только свойства" + IDS_FIELD_VERSION "Версия" + IDS_FIELD_SERIAL_NUMBER "Серийный номер" + IDS_FIELD_ISSUER "Издатель" + IDS_FIELD_VALID_FROM "Действителен с" + IDS_FIELD_VALID_TO "Действителен по" + IDS_FIELD_SUBJECT "Субъект" + IDS_FIELD_PUBLIC_KEY "Открытый ключ" IDS_FIELD_PUBLIC_KEY_FORMAT "%1 (%2!d! bits)" IDS_PROP_HASH "SHA1 hash" IDS_PROP_ENHKEY_USAGE "Enhanced key usage (property)" - IDS_PROP_FRIENDLY_NAME "Friendly name" - IDS_PROP_DESCRIPTION "Description" - IDS_CERTIFICATE_PROPERTIES "Certificate Properties" - IDS_CERTIFICATE_PURPOSE_ERROR "Please enter an OID in the form 1.2.3.4" - IDS_CERTIFICATE_PURPOSE_EXISTS "The OID you entered already exists." - IDS_SELECT_STORE_TITLE "Select Certificate Store" - IDS_SELECT_STORE "Please select a certificate store." - IDS_IMPORT_WIZARD "Certificate Import Wizard" + IDS_PROP_FRIENDLY_NAME "Понятное имя" + IDS_PROP_DESCRIPTION "Описание" + IDS_CERTIFICATE_PROPERTIES "Свойства сертификата" + IDS_CERTIFICATE_PURPOSE_ERROR "Пожалуйста, введите OID в форму 1.2.3.4" + IDS_CERTIFICATE_PURPOSE_EXISTS "Введенный OID уже существует." + IDS_SELECT_STORE_TITLE "Выберите хранилище сертификата" + IDS_SELECT_STORE "Пожалуйста, выберите хранилище сертификата" + IDS_IMPORT_WIZARD "Мастер импорта сертификатов" IDS_IMPORT_TYPE_MISMATCH "The file contains objects that do not match the given criteria. Please select another file." - IDS_IMPORT_FILE_TITLE "File to Import" - IDS_IMPORT_FILE_SUBTITLE "Specify the file you want to import." - IDS_IMPORT_STORE_TITLE "Certificate Store" + IDS_IMPORT_FILE_TITLE "Файл для импорта" + IDS_IMPORT_FILE_SUBTITLE "Укажите файл для импорта." + IDS_IMPORT_STORE_TITLE "Хранилище сертификата" IDS_IMPORT_STORE_SUBTITLE "Certificate stores are collections of certificates, certificate revocation lists, and certificate trust lists." - IDS_IMPORT_FILTER_CERT "X.509 Certificate (*.cer; *.crt)" - IDS_IMPORT_FILTER_PFX "Personal Information Exchange (*.pfx; *.p12)" - IDS_IMPORT_FILTER_CRL "Certificate Revocation List (*.crl)" - IDS_IMPORT_FILTER_CTL "Certificate Trust List (*.stl)" - IDS_IMPORT_FILTER_SERIALIZED_STORE "Microsoft Serialized Certificate Store (*.sst)" - IDS_IMPORT_FILTER_CMS "CMS/PKCS #7 Messages (*.spc; *.p7b)" - IDS_IMPORT_FILTER_ALL "All files (*.*)" - IDS_IMPORT_EMPTY_FILE "Please select a file." + IDS_IMPORT_FILTER_CERT "Сертификат X.509 (*.cer; *.crt)" + IDS_IMPORT_FILTER_PFX "Файлы обмена личной информацией (*.pfx; *.p12)" + IDS_IMPORT_FILTER_CRL "Список отзыва сертификатов (*.crl)" + IDS_IMPORT_FILTER_CTL "Список доверия сертификатов (*.stl)" + IDS_IMPORT_FILTER_SERIALIZED_STORE "Хранилище сериализованных сертификатов (*.sst)" + IDS_IMPORT_FILTER_CMS "Сертификаты PKCS #7 (*.spc; *.p7b)" + IDS_IMPORT_FILTER_ALL "Все файлы (*.*)" + IDS_IMPORT_EMPTY_FILE "Пожалуйста, выберите файл." IDS_IMPORT_BAD_FORMAT "The file format is not recognized. Please select another file." IDS_IMPORT_OPEN_FAILED "Could not open " IDS_IMPORT_DEST_DETERMINED "Determined by the program" - IDS_IMPORT_SELECT_STORE "Please select a store" - IDS_IMPORT_STORE_SELECTION "Certificate Store Selected" + IDS_IMPORT_SELECT_STORE "Пожалуйста, выберите хранилище сертификатов" + IDS_IMPORT_STORE_SELECTION "Хранилище сертификатов выбрано" IDS_IMPORT_DEST_AUTOMATIC "Automatically determined by the program" - IDS_IMPORT_FILE "File" + IDS_IMPORT_FILE "Файл" IDS_IMPORT_CONTENT "Content" - IDS_IMPORT_CONTENT_CERT "Certificate" + IDS_IMPORT_CONTENT_CERT "Сертификат" IDS_IMPORT_CONTENT_CRL "Certificate Revocation List" IDS_IMPORT_CONTENT_CTL "Certificate Trust List" IDS_IMPORT_CONTENT_CMS "CMS/PKCS #7 Message" IDS_IMPORT_CONTENT_PFX "Personal Information Exchange" - IDS_IMPORT_CONTENT_STORE "Certificate Store" - IDS_IMPORT_SUCCEEDED "The import was successful." - IDS_IMPORT_FAILED "The import failed." + IDS_IMPORT_CONTENT_STORE "Хранилище сертификатов" + IDS_IMPORT_SUCCEEDED "Импорт был успешен." + IDS_IMPORT_FAILED "Ошибка импорта." IDS_WIZARD_TITLE_FONT "Arial" - IDS_PURPOSE_ALL "" + IDS_PURPOSE_ALL "<Все>" IDS_PURPOSE_ADVANCED "" - IDS_SUBJECT_COLUMN "Issued To" - IDS_ISSUER_COLUMN "Issued By" - IDS_EXPIRATION_COLUMN "Expiration Date" + IDS_SUBJECT_COLUMN "Кому выдан" + IDS_ISSUER_COLUMN "Кем выдан" + IDS_EXPIRATION_COLUMN "Срок действия" IDS_FRIENDLY_NAME_COLUMN "Friendly Name" - IDS_ALLOWED_PURPOSE_ALL "" + IDS_ALLOWED_PURPOSE_ALL "<Все>" IDS_ALLOWED_PURPOSE_NONE "" IDS_WARN_REMOVE_MY "You will no longer be able to decrypt messages with this certificate, or sign messages with it.\nAre you sure you want to remove this certificate?" IDS_WARN_REMOVE_PLURAL_MY "You will no longer be able to decrypt messages with these certificates, or sign messages with them.\nAre you sure you want to remove these certificates?" @@ -116,9 +116,9 @@ STRINGTABLE IDS_WARN_REMOVE_PLURAL_ROOT "Certificates issued by these root certification authorities, or any certification authorities they issued, will no longer be trusted.\nAre you sure you want to remove these trusted root certificates?" IDS_WARN_REMOVE_TRUSTEDPUBLISHER "Software signed by this publisher will no longer be trusted.\nAre you sure you want to remove this certificate?" IDS_WARN_REMOVE_PLURAL_TRUSTEDPUBLISHER "Software signed by these publishers will no longer be trusted.\nAre you sure you want to remove these certificates?" - IDS_WARN_REMOVE_DEFAULT "Are you sure you want to remove this certificate?" - IDS_WARN_REMOVE_PLURAL_DEFAULT "Are you sure you want to remove these certificates?" - IDS_CERT_MGR "Certificates" + IDS_WARN_REMOVE_DEFAULT "Вы хотите удалить этот сертификат?" + IDS_WARN_REMOVE_PLURAL_DEFAULT "Вы хотите удалить эти сертификаты?" + IDS_CERT_MGR "Сертификаты" IDS_FRIENDLY_NAME_NONE "" IDS_PURPOSE_SERVER_AUTH "Ensures the identity of a remote computer" IDS_PURPOSE_CLIENT_AUTH "Proves your identity to a remote computer" @@ -146,31 +146,31 @@ STRINGTABLE IDS_PURPOSE_CA_EXCHANGE "Private Key Archival" IDS_PURPOSE_KEY_RECOVERY_AGENT "Key Recovery Agent" IDS_PURPOSE_DS_EMAIL_REPLICATION "Directory Service Email Replication" - IDS_EXPORT_WIZARD "Certificate Export Wizard" + IDS_EXPORT_WIZARD "Мастер экспорта сертификатов" IDS_EXPORT_FORMAT_TITLE "Export Format" IDS_EXPORT_FORMAT_SUBTITLE "Choose the format in which the content will be saved." IDS_EXPORT_FILE_TITLE "Export Filename" IDS_EXPORT_FILE_SUBTITLE "Specify the name of the file in which the content will be saved." - IDS_EXPORT_FILE_EXISTS "The specified file already exists. Do you want to replace it?" - IDS_EXPORT_FILTER_CERT "DER-Encoded Binary X.509 (*.cer)" - IDS_EXPORT_FILTER_BASE64_CERT "Base64-Encoded X.509 (*.cer)" - IDS_EXPORT_FILTER_CRL "Certificate Revocation List (*.crl)" - IDS_EXPORT_FILTER_CTL "Certificate Trust List (*.stl)" - IDS_EXPORT_FILTER_CMS "CMS/PKCS #7 Messages (*.p7b)" - IDS_EXPORT_FILTER_PFX "Personal Information Exchange (*.pfx)" - IDS_EXPORT_FILTER_SERIALIZED_CERT_STORE "Microsoft Serialized Certificate Store (*.sst)" - IDS_EXPORT_FORMAT "File Format" + IDS_EXPORT_FILE_EXISTS "Указанный файл уже существует. Заменить его?" + IDS_EXPORT_FILTER_CERT "Двоичные файлы X.509 в кодировке DER (*.cer)" + IDS_EXPORT_FILTER_BASE64_CERT "Двоичные файлы X.509 в кодировке BASE64 (*.cer)" + IDS_EXPORT_FILTER_CRL "Список отзыва сертификатов (*.crl)" + IDS_EXPORT_FILTER_CTL "Список доверия сертификатов (*.stl)" + IDS_EXPORT_FILTER_CMS "Сертификаты PKCS #7 (*.p7b)" + IDS_EXPORT_FILTER_PFX "Файлы обмена личной информацией (*.pfx)" + IDS_EXPORT_FILTER_SERIALIZED_CERT_STORE "Хранилище сериализованных сертификатов (*.sst)" + IDS_EXPORT_FORMAT "Формат файла" IDS_EXPORT_INCLUDE_CHAIN "Include all certificates in certificate path" - IDS_EXPORT_KEYS "Export keys" - IDS_YES "Yes" - IDS_NO "No" - IDS_EXPORT_SUCCEEDED "The export was successful." - IDS_EXPORT_FAILED "The export failed." - IDS_EXPORT_PRIVATE_KEY_TITLE "Export Private Key" + IDS_EXPORT_KEYS "Экспорт ключей" + IDS_YES "Да" + IDS_NO "Нет" + IDS_EXPORT_SUCCEEDED "Экспорт выполнен успешно." + IDS_EXPORT_FAILED "Ошибка экспорта." + IDS_EXPORT_PRIVATE_KEY_TITLE "Экспорт закрытых ключей" IDS_EXPORT_PRIVATE_KEY_SUBTITLE "The certificate contains a private key which may be exported along with the certificate." - IDS_EXPORT_PASSWORD_TITLE "Enter Password" + IDS_EXPORT_PASSWORD_TITLE "Введите пароль" IDS_EXPORT_PASSWORD_SUBTITLE "You may password-protect a private key." - IDS_EXPORT_PASSWORD_MISMATCH "The passwords do not match." + IDS_EXPORT_PASSWORD_MISMATCH "Пароли не совпадают." IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Note: The private key for this certificate could not be opened." IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Note: The private key for this certificate is not exportable." } @@ -214,7 +214,7 @@ BEGIN CONTROL "",IDC_CERTPATH, "SysTreeView32", TVS_HASLINES|WS_BORDER, 13,22,231,130 PUSHBUTTON "&Просмотр сертификата", IDC_VIEWCERTIFICATE,155,156,90,14 - LTEXT "Состо&яние сертификата", IDC_CERTIFICATESTATUS,6,183,200,14 + LTEXT "Состо&яние сертификата:", IDC_CERTIFICATESTATUS,6,183,200,14 CONTROL "", IDC_CERTIFICATESTATUSTEXT,"RichEdit20W", WS_BORDER|ES_READONLY|ES_MULTILINE|WS_DISABLED,6,195,245,36 END @@ -249,7 +249,7 @@ BEGIN CONTROL "", IDC_CERTIFICATE_USAGES,"SysListView32", LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 24,100,220,106 - PUSHBUTTON "Добавить &назначение...", IDC_ADD_PURPOSE,174,212,70,14 + PUSHBUTTON "Добавить &назначение...", IDC_ADD_PURPOSE,154,212,90,14 END IDD_ADD_CERT_PURPOSE DIALOG 0,0,200,68 @@ -270,7 +270,7 @@ BEGIN LTEXT "Выберите хранилище сертификата:", IDC_STORE_TEXT, 6,6,190,28 CONTROL "",IDC_STORE_LIST, "SysTreeView32", TVS_HASLINES|WS_BORDER|WS_TABSTOP, 6,28,188,70 - CHECKBOX "&Хранилища сертификатов", IDC_SHOW_PHYSICAL_STORES, 6,102,180,14, BS_AUTOCHECKBOX|WS_TABSTOP + CHECKBOX "&Показать физические хранилища", IDC_SHOW_PHYSICAL_STORES, 6,102,180,14, BS_AUTOCHECKBOX|WS_TABSTOP PUSHBUTTON "OK", IDOK, 90,118,50,14, BS_DEFPUSHBUTTON PUSHBUTTON "Отмена", IDCANCEL, 144,118,50,14 END @@ -310,7 +310,7 @@ BEGIN LTEXT "Выбор хранилища может быть произведен ReactOS автоматически, или же можно указать размещение сертификата вручную.", -1, 21,1,220,25 AUTORADIOBUTTON "&Автоматически выбрать хранилище на основе типа сертификата", - IDC_IMPORT_AUTO_STORE, 31,28,220,12, BS_AUTORADIOBUTTON|WS_TABSTOP + IDC_IMPORT_AUTO_STORE, 31,28,235,12, BS_AUTORADIOBUTTON|WS_TABSTOP AUTORADIOBUTTON "&Поместить все сертификаты в следующее хранилище", IDC_IMPORT_SPECIFY_STORE, 31,42,220,12, BS_AUTORADIOBUTTON EDITTEXT IDC_IMPORT_STORE, 44,61,185,14, ES_READONLY @@ -333,36 +333,36 @@ BEGIN END IDD_CERT_MGR DIALOG 0,0,335,270 -CAPTION "Certificates" +CAPTION "Сертификаты" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "I&ntended purpose:", -1, 7,9,100,12 + LTEXT "&Назначение:", -1, 7,9,100,12 COMBOBOX IDC_MGR_PURPOSE_SELECTION, 83,7,245,14, CBS_DROPDOWNLIST|WS_BORDER|WS_VSCROLL|WS_TABSTOP CONTROL "", IDC_MGR_STORES, "SysTabControl32", WS_CLIPSIBLINGS|WS_TABSTOP, 7,25,321,140 CONTROL "", IDC_MGR_CERTS, "SysListView32", LVS_REPORT|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 15,46,305,111 - PUSHBUTTON "&Import...", IDC_MGR_IMPORT, 7,172,65,14 - PUSHBUTTON "&Export...", IDC_MGR_EXPORT, 76,172,65,14, WS_DISABLED - PUSHBUTTON "&Remove", IDC_MGR_REMOVE, 145,172,65,14, WS_DISABLED - PUSHBUTTON "&Advanced...", IDC_MGR_ADVANCED, 263,172,65,14 - GROUPBOX "Certificate intended purposes", -1,7,194,321,47, BS_GROUPBOX + PUSHBUTTON "&Импорт...", IDC_MGR_IMPORT, 7,172,65,14 + PUSHBUTTON "&Экспорт...", IDC_MGR_EXPORT, 76,172,65,14, WS_DISABLED + PUSHBUTTON "&Удалить", IDC_MGR_REMOVE, 145,172,65,14, WS_DISABLED + PUSHBUTTON "&Дополнительно", IDC_MGR_ADVANCED, 263,172,65,14 + GROUPBOX "Назначения сертификата", -1,7,194,321,47, BS_GROUPBOX LTEXT "", IDC_MGR_PURPOSES, 13,206,252,32 - PUSHBUTTON "&View", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED - PUSHBUTTON "&Close", IDCANCEL, 277,249,51,14, BS_DEFPUSHBUTTON + PUSHBUTTON "&Просмотр", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED + PUSHBUTTON "&Закрыть", IDCANCEL, 277,249,51,14, BS_DEFPUSHBUTTON END IDD_CERT_MGR_ADVANCED DIALOG 0,0,248,176 -CAPTION "Advanced Options" +CAPTION "Дополнительные параметры" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Certificate purpose", -1, 7,7,234,141, BS_GROUPBOX - LTEXT "Select one or more purposes to be listed when Advanced Purposes is selected.", + GROUPBOX "Назначение сертификата", -1, 7,7,234,141, BS_GROUPBOX + LTEXT "Выберите одно или более назначений, перечисленных в разделе расширенных назначений.", -1, 14,18,220,16 - LTEXT "&Certificate purposes:", -1, 14,41,90,12, WS_TABSTOP + LTEXT "На&значения сертификата:", -1, 14,41,90,12, WS_TABSTOP CONTROL "", IDC_CERTIFICATE_USAGES,"SysListView32", LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 14,51,220,90 PUSHBUTTON "OK", IDOK, 132,155,51,14, BS_DEFPUSHBUTTON - PUSHBUTTON "Cancel", IDCANCEL, 190,155,51,14 + PUSHBUTTON "Отмена", IDCANCEL, 190,155,51,14 END IDD_EXPORT_WELCOME DIALOG 0,0,317,143 @@ -381,7 +381,7 @@ CAPTION "Мастер экспорта сертификатов" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Закрытые ключи защищены паролем. Чтобы экспортировать закрытый ключ вместе с сертификатом, нужно будет указать пароль.", -1, 21,1,195,25 - LTEXT "Экспортировать закрытый ключ вместе с сертификатом?", -1, 21,27,195,10 + LTEXT "Экспортировать закрытый ключ вместе с сертификатом?", -1, 21,27,200,10 AUTORADIOBUTTON "Д&а, экспортировать закрытый ключ", IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP AUTORADIOBUTTON "Н&ет, не экспортировать закрытый ключ", diff --git a/dll/win32/devmgr/lang/ru-RU.rc b/dll/win32/devmgr/lang/ru-RU.rc index 5e8405009f9..690d24df2d4 100644 --- a/dll/win32/devmgr/lang/ru-RU.rc +++ b/dll/win32/devmgr/lang/ru-RU.rc @@ -1,4 +1,6 @@ -LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE BEGIN @@ -25,8 +27,8 @@ BEGIN IDS_NOTAVAILABLE "Недоступно" IDS_NOTDIGITALLYSIGNED "Нет цифровой подписи" IDS_NODRIVERS "Файлы драйверов для этого устройства не установлены или не были загружены." - IDS_RESOURCE_COLUMN "Resource type" - IDS_SETTING_COLUMN "Setting" + IDS_RESOURCE_COLUMN "Тип ресурса" + IDS_SETTING_COLUMN "Настройки" IDS_RESOURCE_MEMORY_RANGE "Память" IDS_RESOURCE_INTERRUPT "IRQ" IDS_RESOURCE_DMA "DMA" @@ -145,11 +147,11 @@ FONT 8, "MS Shell Dlg" BEGIN ICON "", IDC_DEVICON, 7, 7, 20, 20 LTEXT "", IDC_DEVNAME, 37, 9, 174, 16, SS_NOPREFIX - LTEXT "Тип устройства:", -1, 7, 39, 60, 8, SS_NOPREFIX + LTEXT "Тип устройства:", -1, 37, 39, 60, 8, SS_NOPREFIX EDITTEXT IDC_DEVTYPE, 100, 39, 146, 12, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY - LTEXT "Изготовитель:", -1, 7, 53, 60, 8, SS_NOPREFIX + LTEXT "Изготовитель:", -1, 37, 53, 60, 8, SS_NOPREFIX EDITTEXT IDC_DEVMANUFACTURER, 100, 53, 145, 12, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY - LTEXT "Размещение:", -1, 7, 67, 60, 8, SS_NOPREFIX + LTEXT "Размещение:", -1, 37, 67, 60, 8, SS_NOPREFIX EDITTEXT IDC_DEVLOCATION, 100, 67, 145, 12, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY GROUPBOX "Состояние устройства", IDC_DEVSTATUSGROUP, 7, 83, 238, 100 EDITTEXT IDC_DEVSTATUS, 14, 96, 224, 61, NOT WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL @@ -165,18 +167,18 @@ FONT 8, "MS Shell Dlg" BEGIN ICON "", IDC_DEVICON, 7, 7, 20, 20 LTEXT "", IDC_DEVNAME, 37, 9, 174, 16, SS_NOPREFIX - LTEXT "Поставщик драйвера:", -1, 7, 39, 80, 8, SS_NOPREFIX + LTEXT "Поставщик драйвера:", -1, 17, 39, 80, 8, SS_NOPREFIX EDITTEXT IDC_DRVPROVIDER, 100, 39, 146, 12, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY - LTEXT "Дата разработки:", -1, 7, 53, 80, 8, SS_NOPREFIX + LTEXT "Дата разработки:", -1, 17, 53, 80, 8, SS_NOPREFIX EDITTEXT IDC_DRVDATE, 100, 53, 145, 12, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY - LTEXT "Версия драйвера:", -1, 7, 67, 80, 8, SS_NOPREFIX + LTEXT "Версия драйвера:", -1, 17, 67, 80, 8, SS_NOPREFIX EDITTEXT IDC_DRVVERSION, 100, 67, 145, 12, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY - LTEXT "Цифровая подпись:", -1, 7, 81, 80, 8, SS_NOPREFIX + LTEXT "Цифровая подпись:", -1, 17, 81, 80, 8, SS_NOPREFIX EDITTEXT IDC_DIGITALSIGNER, 100, 81, 145, 12, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY PUSHBUTTON "&Сведения...", IDC_DRIVERDETAILS, 7, 106, 75, 15 LTEXT "Просмотр сведений о файлах драйверов.", -1, 91, 110, 154, 17, SS_NOPREFIX - PUSHBUTTON "&Обновить драйвер...", IDC_UPDATEDRIVER, 7, 126, 75, 15 - LTEXT "Обновить драйвер устройства.", -1, 91, 130, 154, 17, SS_NOPREFIX + PUSHBUTTON "&Обновить...", IDC_UPDATEDRIVER, 7, 126, 75, 15 + LTEXT "Обновление драйверов для устройства.", -1, 91, 130, 154, 17, SS_NOPREFIX END IDD_DRIVERDETAILS DIALOGEX 0, 0, 224, 230 @@ -190,14 +192,14 @@ BEGIN CONTROL "", IDC_DRIVERFILES, "SysListView32", LVS_REPORT | LVS_NOCOLUMNHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | LVS_SORTASCENDING | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 7, 46, 209, 80 - LTEXT "Поставщик:", -1, 7, 134, 50, 8 - EDITTEXT IDC_FILEPROVIDER, 137, 134, 155, 8, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY - LTEXT "Версия файла:", -1, 7, 150, 80, 8 - EDITTEXT IDC_FILEVERSION, 137, 150, 155, 8, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY - LTEXT "Авторские права:", -1, 7, 166, 112, 8 - EDITTEXT IDC_FILECOPYRIGHT, 137, 166, 155, 8, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY - LTEXT "Цифровая подпись:", -1, 7, 182, 125, 8 - EDITTEXT IDC_DIGITALSIGNER, 137, 182, 155, 8, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY + LTEXT "Поставщик:", -1, 7, 134, 70, 8 + EDITTEXT IDC_FILEPROVIDER, 81, 134, 140, 8, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY + LTEXT "Версия файла:", -1, 7, 150, 70, 8 + EDITTEXT IDC_FILEVERSION, 81, 150, 140, 8, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY + LTEXT "Авторские права:", -1, 7, 166, 70, 8 + EDITTEXT IDC_FILECOPYRIGHT, 81, 166, 140, 8, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY + LTEXT "Цифровая подпись:", -1, 7, 182, 70, 8 + EDITTEXT IDC_DIGITALSIGNER, 81, 182, 140, 8, NOT WS_TABSTOP | NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY DEFPUSHBUTTON "OK", IDOK, 167, 208, 50, 14 END diff --git a/dll/win32/iccvid/lang/iccvid_Ru.rc b/dll/win32/iccvid/lang/iccvid_Ru.rc index fabd43c2384..4909cf06408 100644 --- a/dll/win32/iccvid/lang/iccvid_Ru.rc +++ b/dll/win32/iccvid/lang/iccvid_Ru.rc @@ -23,6 +23,6 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_NAME "Видео кодер-декодер Cinepak" - IDS_DESCRIPTION "Видео кодер-декодер Cinepak" + IDS_NAME "Видео кодек Cinepak" + IDS_DESCRIPTION "Видео кодек Cinepak" } diff --git a/dll/win32/jscript/lang/jscript_Ru.rc b/dll/win32/jscript/lang/jscript_Ru.rc index 6d6ead740e2..3c2967d37ab 100644 --- a/dll/win32/jscript/lang/jscript_Ru.rc +++ b/dll/win32/jscript/lang/jscript_Ru.rc @@ -15,6 +15,7 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ /* UTF-8 */ #pragma code_page(65001) @@ -24,22 +25,22 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { IDS_TO_PRIMITIVE "Ошибка конвертирования объекта в примитивный тип" - IDS_INVALID_CALL_ARG "Неверный вызов процедуры или аргумент" + IDS_INVALID_CALL_ARG "Недопустимый вызов или аргумент процедуры" IDS_SUBSCRIPT_OUT_OF_RANGE "Subscript out of range" - IDS_OBJECT_REQUIRED "Object required" + IDS_OBJECT_REQUIRED "Требуется объект" IDS_CREATE_OBJ_ERROR "Сервер автоматизации не может создать объект" IDS_NO_PROPERTY "Объект не поддерживает это свойство или метод" - IDS_UNSUPPORTED_ACTION "Object doesn't support this action" + IDS_UNSUPPORTED_ACTION "Объект не поддерживает это действие" IDS_ARG_NOT_OPT "Отсутствует обязательный аргумент" IDS_SYNTAX_ERROR "Синтаксическая ошибка" - IDS_SEMICOLON "Ожидается ';'" - IDS_LBRACKET "Ожидается '('" - IDS_RBRACKET "Ожидается ')'" - IDS_INVALID_CHAR "Invalid character" + IDS_SEMICOLON "Предполагается наличие ';'" + IDS_LBRACKET "Предполагается наличие '('" + IDS_RBRACKET "Предполагается наличие ')'" + IDS_INVALID_CHAR "Недопустимый символ" IDS_UNTERMINATED_STR "Незавершённая строковая константа" - IDS_MISPLACED_RETURN "'return' statement outside of function" - IDS_INVALID_BREAK "Can't have 'break' outside of loop" - IDS_INVALID_CONTINUE "Can't have 'continue' outside of loop" + IDS_MISPLACED_RETURN "Инструкция 'return' вне функции" + IDS_INVALID_BREAK "Инструкция 'break' не может находиться вне блока loop" + IDS_INVALID_CONTINUE "Инструкция 'continue' не может находиться вне блока loop" IDS_LABEL_REDEFINED "Label redefined" IDS_LABEL_NOT_FOUND "Label not found" IDS_DISABLED_CC "Conditional compilation is turned off" @@ -50,14 +51,14 @@ STRINGTABLE IDS_ILLEGAL_ASSIGN "Неверное присваивание" IDS_UNDEFINED "'|' не определён" IDS_NOT_BOOL "Ожидается объект типа 'bool'" - IDS_INVALID_DELETE "Cannot delete '|'" - IDS_NOT_VBARRAY "VBArray object expected" - IDS_JSCRIPT_EXPECTED "Ожидается объект типа 'JScript'" + IDS_INVALID_DELETE "Не удается удалить '|'" + IDS_NOT_VBARRAY "Предполагается наличие VBArray" + IDS_JSCRIPT_EXPECTED "Предполагается наличие объекта 'JScript'" IDS_REGEXP_SYNTAX_ERROR "Синтаксическая ошибка в регулярном выражении" - IDS_URI_INVALID_CODING "URI to be decoded is incorrect" - IDS_URI_INVALID_CHAR "URI содержит неверные символы" + IDS_URI_INVALID_CODING "Обнаружена недопустимая кодировка при попытке декодирования URI" + IDS_URI_INVALID_CHAR "Обнаружен недопустимый знак при попытке кодирования URI" IDS_FRACTION_DIGITS_OUT_OF_RANGE "Number of fraction digits is out of range" IDS_PRECISION_OUT_OF_RANGE "Precision is out of range" IDS_INVALID_LENGTH "Длиной массива должно быть конечное положительное число" - IDS_ARRAY_EXPECTED "Ожидается объект типа 'Array'" + IDS_ARRAY_EXPECTED "Предполагается наличие объекта 'Array'" } diff --git a/dll/win32/kernel32/client/console/alias.c b/dll/win32/kernel32/client/console/alias.c index cb05c89a2b6..d835c05632b 100644 --- a/dll/win32/kernel32/client/console/alias.c +++ b/dll/win32/kernel32/client/console/alias.c @@ -124,7 +124,7 @@ AddConsoleAliasW(LPCWSTR lpSource, USHORT SourceBufferLength = (USHORT)wcslen(lpSource) * sizeof(WCHAR); USHORT TargetBufferLength = (USHORT)(lpTarget ? wcslen(lpTarget) * sizeof(WCHAR) : 0); - DPRINT1("AddConsoleAliasW entered with lpSource '%S' lpTarget '%S' lpExeName '%S'\n", + DPRINT("AddConsoleAliasW entered with lpSource '%S' lpTarget '%S' lpExeName '%S'\n", lpSource, lpTarget, lpExeName); return IntAddConsoleAlias(lpSource, @@ -149,7 +149,7 @@ AddConsoleAliasA(LPCSTR lpSource, USHORT SourceBufferLength = (USHORT)strlen(lpSource) * sizeof(CHAR); USHORT TargetBufferLength = (USHORT)(lpTarget ? strlen(lpTarget) * sizeof(CHAR) : 0); - DPRINT1("AddConsoleAliasA entered with lpSource '%s' lpTarget '%s' lpExeName '%s'\n", + DPRINT("AddConsoleAliasA entered with lpSource '%s' lpTarget '%s' lpExeName '%s'\n", lpSource, lpTarget, lpExeName); return IntAddConsoleAlias(lpSource, @@ -262,7 +262,7 @@ GetConsoleAliasW(LPWSTR lpSource, DWORD TargetBufferLength, LPWSTR lpExeName) { - DPRINT1("GetConsoleAliasW entered with lpSource '%S' lpExeName '%S'\n", + DPRINT("GetConsoleAliasW entered with lpSource '%S' lpExeName '%S'\n", lpSource, lpExeName); return IntGetConsoleAlias(lpSource, @@ -285,7 +285,7 @@ GetConsoleAliasA(LPSTR lpSource, DWORD TargetBufferLength, LPSTR lpExeName) { - DPRINT1("GetConsoleAliasA entered with lpSource '%s' lpExeName '%s'\n", + DPRINT("GetConsoleAliasA entered with lpSource '%s' lpExeName '%s'\n", lpSource, lpExeName); return IntGetConsoleAlias(lpSource, @@ -377,7 +377,7 @@ GetConsoleAliasesW(LPWSTR AliasBuffer, DWORD AliasBufferLength, LPWSTR ExeName) { - DPRINT1("GetConsoleAliasesW entered with lpExeName '%S'\n", + DPRINT("GetConsoleAliasesW entered with lpExeName '%S'\n", ExeName); return IntGetConsoleAliases(AliasBuffer, @@ -397,7 +397,7 @@ GetConsoleAliasesA(LPSTR AliasBuffer, DWORD AliasBufferLength, LPSTR ExeName) { - DPRINT1("GetConsoleAliasesA entered with lpExeName '%s'\n", + DPRINT("GetConsoleAliasesA entered with lpExeName '%s'\n", ExeName); return IntGetConsoleAliases(AliasBuffer, @@ -535,7 +535,7 @@ DECLSPEC_HOTPATCH GetConsoleAliasExesW(LPWSTR lpExeNameBuffer, DWORD ExeNameBufferLength) { - DPRINT1("GetConsoleAliasExesW called\n"); + DPRINT("GetConsoleAliasExesW called\n"); return IntGetConsoleAliasExes(lpExeNameBuffer, ExeNameBufferLength, TRUE); } @@ -549,7 +549,7 @@ DECLSPEC_HOTPATCH GetConsoleAliasExesA(LPSTR lpExeNameBuffer, DWORD ExeNameBufferLength) { - DPRINT1("GetConsoleAliasExesA called\n"); + DPRINT("GetConsoleAliasExesA called\n"); return IntGetConsoleAliasExes(lpExeNameBuffer, ExeNameBufferLength, FALSE); } @@ -585,7 +585,7 @@ WINAPI DECLSPEC_HOTPATCH GetConsoleAliasExesLengthW(VOID) { - DPRINT1("GetConsoleAliasExesLengthW called\n"); + DPRINT("GetConsoleAliasExesLengthW called\n"); return IntGetConsoleAliasExesLength(TRUE); } @@ -598,7 +598,7 @@ WINAPI DECLSPEC_HOTPATCH GetConsoleAliasExesLengthA(VOID) { - DPRINT1("GetConsoleAliasExesLengthA called\n"); + DPRINT("GetConsoleAliasExesLengthA called\n"); return IntGetConsoleAliasExesLength(FALSE); } diff --git a/dll/win32/kernel32/client/proc.c b/dll/win32/kernel32/client/proc.c index e590f20ab2a..da22dafac2f 100644 --- a/dll/win32/kernel32/client/proc.c +++ b/dll/win32/kernel32/client/proc.c @@ -4035,7 +4035,7 @@ StartScan: if (lpCurrentDirectory) { /* Allocate a buffer so we can keep a Unicode copy */ - DPRINT1("Current directory: %S\n", lpCurrentDirectory); + DPRINT("Current directory: %S\n", lpCurrentDirectory); CurrentDirectory = RtlAllocateHeap(RtlGetProcessHeap(), 0, (MAX_PATH * sizeof(WCHAR)) + diff --git a/dll/win32/kernel32/winnls/lang/ru-RU.rc b/dll/win32/kernel32/winnls/lang/ru-RU.rc index 14af0910f28..04129f0dbae 100644 --- a/dll/win32/kernel32/winnls/lang/ru-RU.rc +++ b/dll/win32/kernel32/winnls/lang/ru-RU.rc @@ -160,72 +160,72 @@ BEGIN 54936 "54936 (GB18030 китайская упрощенная)" /* Locations */ - 2+NLSRC_OFFSET "Antigua and Barbuda" - 3+NLSRC_OFFSET "Afghanistan" - 4+NLSRC_OFFSET "Algeria" - 5+NLSRC_OFFSET "Azerbaijan" - 6+NLSRC_OFFSET "Albania" - 7+NLSRC_OFFSET "Armenia" - 8+NLSRC_OFFSET "Andorra" - 9+NLSRC_OFFSET "Angola" - 10+NLSRC_OFFSET "American Samoa" - 11+NLSRC_OFFSET "Argentina" - 12+NLSRC_OFFSET "Australia" - 14+NLSRC_OFFSET "Austria" - 17+NLSRC_OFFSET "Bahrain" - 18+NLSRC_OFFSET "Barbados" - 19+NLSRC_OFFSET "Botswana" - 20+NLSRC_OFFSET "Bermuda" - 21+NLSRC_OFFSET "Belgium" - 22+NLSRC_OFFSET "Bahamas, The" - 23+NLSRC_OFFSET "Bangladesh" - 24+NLSRC_OFFSET "Belize" - 25+NLSRC_OFFSET "Bosnia and Herzegovina" - 26+NLSRC_OFFSET "Bolivia" - 27+NLSRC_OFFSET "Myanmar" - 28+NLSRC_OFFSET "Benin" - 29+NLSRC_OFFSET "Belarus" - 30+NLSRC_OFFSET "Solomon Islands" - 32+NLSRC_OFFSET "Brazil" - 34+NLSRC_OFFSET "Bhutan" - 35+NLSRC_OFFSET "Bulgaria" - 38+NLSRC_OFFSET "Burundi" - 39+NLSRC_OFFSET "Canada" - 40+NLSRC_OFFSET "Cambodia" - 41+NLSRC_OFFSET "Chad" - 42+NLSRC_OFFSET "Sri Lanka" - 43+NLSRC_OFFSET "Congo" - 44+NLSRC_OFFSET "Congo (DRC)" - 45+NLSRC_OFFSET "China" - 46+NLSRC_OFFSET "Chile" - 49+NLSRC_OFFSET "Cameroon" - 50+NLSRC_OFFSET "Comoros" - 51+NLSRC_OFFSET "Colombia" - 54+NLSRC_OFFSET "Costa Rica" - 55+NLSRC_OFFSET "Central African Republic" - 56+NLSRC_OFFSET "Cuba" - 57+NLSRC_OFFSET "Cape Verde" - 59+NLSRC_OFFSET "Cyprus" - 61+NLSRC_OFFSET "Denmark" - 62+NLSRC_OFFSET "Djibouti" - 63+NLSRC_OFFSET "Dominica" - 65+NLSRC_OFFSET "Dominican Republic" - 66+NLSRC_OFFSET "Ecuador" - 67+NLSRC_OFFSET "Egypt" - 68+NLSRC_OFFSET "Ireland" - 69+NLSRC_OFFSET "Equatorial Guinea" - 70+NLSRC_OFFSET "Estonia" - 71+NLSRC_OFFSET "Eritrea" - 72+NLSRC_OFFSET "El Salvador" - 73+NLSRC_OFFSET "Ethiopia" - 75+NLSRC_OFFSET "Czech Republic" - 77+NLSRC_OFFSET "Finland" - 78+NLSRC_OFFSET "Fiji Islands" - 80+NLSRC_OFFSET "Micronesia" - 81+NLSRC_OFFSET "Faroe Islands" - 84+NLSRC_OFFSET "France" - 86+NLSRC_OFFSET "Gambia, The" - 87+NLSRC_OFFSET "Gabon" + 2+NLSRC_OFFSET "Антигуа и Барбуда" + 3+NLSRC_OFFSET "Афганистан" + 4+NLSRC_OFFSET "Алжир" + 5+NLSRC_OFFSET "Азербайджан" + 6+NLSRC_OFFSET "Албания" + 7+NLSRC_OFFSET "Армения" + 8+NLSRC_OFFSET "Андорра" + 9+NLSRC_OFFSET "Ангола" + 10+NLSRC_OFFSET "Американское Самоа" + 11+NLSRC_OFFSET "Аргентина" + 12+NLSRC_OFFSET "Австралия" + 14+NLSRC_OFFSET "Австрия" + 17+NLSRC_OFFSET "Бахрейн" + 18+NLSRC_OFFSET "Барбадос" + 19+NLSRC_OFFSET "Ботсвана" + 20+NLSRC_OFFSET "Бермуды" + 21+NLSRC_OFFSET "Бельгия" + 22+NLSRC_OFFSET "Багамы" + 23+NLSRC_OFFSET "Бангладеш" + 24+NLSRC_OFFSET "Белиз" + 25+NLSRC_OFFSET "Босния и Герцеговина" + 26+NLSRC_OFFSET "Боливия" + 27+NLSRC_OFFSET "Мьянма" + 28+NLSRC_OFFSET "Бенин" + 29+NLSRC_OFFSET "Беларусь" + 30+NLSRC_OFFSET "Соломоновы Острова" + 32+NLSRC_OFFSET "Бразилия" + 34+NLSRC_OFFSET "Бутан" + 35+NLSRC_OFFSET "Болгария" + 38+NLSRC_OFFSET "Бурунди" + 39+NLSRC_OFFSET "Канада" + 40+NLSRC_OFFSET "Камбоджа" + 41+NLSRC_OFFSET "Чад" + 42+NLSRC_OFFSET "Шри-Ланка" + 43+NLSRC_OFFSET "Конго" + 44+NLSRC_OFFSET "Демократическая Республика Конго" + 45+NLSRC_OFFSET "Китай" + 46+NLSRC_OFFSET "Чили" + 49+NLSRC_OFFSET "Камерун" + 50+NLSRC_OFFSET "Коморы" + 51+NLSRC_OFFSET "Колумбия" + 54+NLSRC_OFFSET "Коста-Рика" + 55+NLSRC_OFFSET "Центрально-Африканская Республика" + 56+NLSRC_OFFSET "Куба" + 57+NLSRC_OFFSET "Кабо-Верде" + 59+NLSRC_OFFSET "Кипр" + 61+NLSRC_OFFSET "Дания" + 62+NLSRC_OFFSET "Джибути" + 63+NLSRC_OFFSET "Доминика" + 65+NLSRC_OFFSET "Доминиканская Республика" + 66+NLSRC_OFFSET "Эквадор" + 67+NLSRC_OFFSET "Египет" + 68+NLSRC_OFFSET "Ирландия" + 69+NLSRC_OFFSET "Экваториальная Гвинея" + 70+NLSRC_OFFSET "Эстония" + 71+NLSRC_OFFSET "Эритрея" + 72+NLSRC_OFFSET "Эль-Сальвадор" + 73+NLSRC_OFFSET "Эфиопия" + 75+NLSRC_OFFSET "Чешская Республика" + 77+NLSRC_OFFSET "Финляндия" + 78+NLSRC_OFFSET "Фиджи" + 80+NLSRC_OFFSET "Микронезия, Федеративные Штаты" + 81+NLSRC_OFFSET "Фарерские Острова" + 84+NLSRC_OFFSET "Франция" + 86+NLSRC_OFFSET "Гамбия" + 87+NLSRC_OFFSET "Габон" 88+NLSRC_OFFSET "Georgia" 89+NLSRC_OFFSET "Ghana" 90+NLSRC_OFFSET "Gibraltar" @@ -259,9 +259,9 @@ BEGIN 130+NLSRC_OFFSET "Kyrgyzstan" 131+NLSRC_OFFSET "North Korea" 133+NLSRC_OFFSET "Kiribati" - 134+NLSRC_OFFSET "Korea" - 136+NLSRC_OFFSET "Kuwait" - 137+NLSRC_OFFSET "Kazakhstan" + 134+NLSRC_OFFSET "Корея" + 136+NLSRC_OFFSET "Кувейт" + 137+NLSRC_OFFSET "Казахстан" 138+NLSRC_OFFSET "Laos" 139+NLSRC_OFFSET "Lebanon" 140+NLSRC_OFFSET "Latvia" @@ -314,7 +314,7 @@ BEGIN 200+NLSRC_OFFSET "Romania" 201+NLSRC_OFFSET "Philippines" 202+NLSRC_OFFSET "Puerto Rico" - 203+NLSRC_OFFSET "Russia" + 203+NLSRC_OFFSET "Россия" 204+NLSRC_OFFSET "Rwanda" 205+NLSRC_OFFSET "Saudi Arabia" 206+NLSRC_OFFSET "St. Pierre and Miquelon" @@ -348,12 +348,12 @@ BEGIN 238+NLSRC_OFFSET "Turkmenistan" 239+NLSRC_OFFSET "Tanzania" 240+NLSRC_OFFSET "Uganda" - 241+NLSRC_OFFSET "Ukraine" - 242+NLSRC_OFFSET "United Kingdom" - 244+NLSRC_OFFSET "United States" + 241+NLSRC_OFFSET "Украина" + 242+NLSRC_OFFSET "Соединенное Королевство" + 244+NLSRC_OFFSET "Соединенные Штаты" 245+NLSRC_OFFSET "Burkina Faso" 246+NLSRC_OFFSET "Uruguay" - 247+NLSRC_OFFSET "Uzbekistan" + 247+NLSRC_OFFSET "Узбекистан" 248+NLSRC_OFFSET "St. Vincent and the Grenadines" 249+NLSRC_OFFSET "Bolivarian Republic of Venezuela" 251+NLSRC_OFFSET "Vietnam" @@ -376,50 +376,50 @@ BEGIN 301+NLSRC_OFFSET "Antarctica" 302+NLSRC_OFFSET "Aruba" 303+NLSRC_OFFSET "Ascension Island" - 304+NLSRC_OFFSET "Ashmore and Cartier Islands" - 305+NLSRC_OFFSET "Baker Island" - 306+NLSRC_OFFSET "Bouvet Island" - 307+NLSRC_OFFSET "Cayman Islands" - 308+NLSRC_OFFSET "Channel Islands" - 309+NLSRC_OFFSET "Christmas Island" - 310+NLSRC_OFFSET "Clipperton Island" - 311+NLSRC_OFFSET "Cocos (Keeling) Islands" - 312+NLSRC_OFFSET "Cook Islands" - 313+NLSRC_OFFSET "Coral Sea Islands" - 314+NLSRC_OFFSET "Diego Garcia" - 315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)" - 317+NLSRC_OFFSET "French Guiana" - 318+NLSRC_OFFSET "French Polynesia" - 319+NLSRC_OFFSET "French Southern and Antarctic Lands" - 321+NLSRC_OFFSET "Guadeloupe" - 322+NLSRC_OFFSET "Guam" - 323+NLSRC_OFFSET "Guantanamo Bay" - 324+NLSRC_OFFSET "Guernsey" - 325+NLSRC_OFFSET "Heard Island and McDonald Islands" - 326+NLSRC_OFFSET "Howland Island" - 327+NLSRC_OFFSET "Jarvis Island" - 328+NLSRC_OFFSET "Jersey" - 329+NLSRC_OFFSET "Kingman Reef" - 330+NLSRC_OFFSET "Martinique" - 331+NLSRC_OFFSET "Mayotte" - 332+NLSRC_OFFSET "Montserrat" - 333+NLSRC_OFFSET "Netherlands Antilles (Former)" - 334+NLSRC_OFFSET "New Caledonia" - 335+NLSRC_OFFSET "Niue" - 336+NLSRC_OFFSET "Norfolk Island" - 337+NLSRC_OFFSET "Northern Mariana Islands" - 338+NLSRC_OFFSET "Palmyra Atoll" - 339+NLSRC_OFFSET "Pitcairn Islands" - 340+NLSRC_OFFSET "Rota Island" - 341+NLSRC_OFFSET "Saipan" - 342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands" - 343+NLSRC_OFFSET "St. Helena" - 346+NLSRC_OFFSET "Tinian Island" - 347+NLSRC_OFFSET "Tokelau" - 348+NLSRC_OFFSET "Tristan da Cunha" - 349+NLSRC_OFFSET "Turks and Caicos Islands" - 351+NLSRC_OFFSET "Virgin Islands, British" - 352+NLSRC_OFFSET "Wallis and Futuna" + 304+NLSRC_OFFSET "о-ва Эшмор и Картье" + 305+NLSRC_OFFSET "о. Бэйкер" + 306+NLSRC_OFFSET "о. Бювет" + 307+NLSRC_OFFSET "Каймановы о-ва" + 308+NLSRC_OFFSET "Нормандские о-ва" + 309+NLSRC_OFFSET "о. Рождества" + 310+NLSRC_OFFSET "о. Клиппертон" + 311+NLSRC_OFFSET "Кокосовые о-ва" + 312+NLSRC_OFFSET "о-ва Кука" + 313+NLSRC_OFFSET "о-ва Кораллового моря" + 314+NLSRC_OFFSET "Диего-Гарсиа" + 315+NLSRC_OFFSET "Фолклендские (Мальвинские) о-ва" + 317+NLSRC_OFFSET "Французская Гвиана" + 318+NLSRC_OFFSET "Французская Полинезия" + 319+NLSRC_OFFSET "Французские южные и антарктические территории" + 321+NLSRC_OFFSET "Гваделупа" + 322+NLSRC_OFFSET "Гуам" + 323+NLSRC_OFFSET "Гуантанамо" + 324+NLSRC_OFFSET "Гернси" + 325+NLSRC_OFFSET "о-ва Херд и Макдональд" + 326+NLSRC_OFFSET "о.Хаулэнд" + 327+NLSRC_OFFSET "о.Джарвис" + 328+NLSRC_OFFSET "Джерси" + 329+NLSRC_OFFSET "риф Кингмен" + 330+NLSRC_OFFSET "Мартиника" + 331+NLSRC_OFFSET "Майотт" + 332+NLSRC_OFFSET "Монсеррат" + 333+NLSRC_OFFSET "Нидерландские Антилы (бывшая)" + 334+NLSRC_OFFSET "Новая Каледония" + 335+NLSRC_OFFSET "Ниуэ" + 336+NLSRC_OFFSET "о.Норфолк" + 337+NLSRC_OFFSET "Северные Марианские острова" + 338+NLSRC_OFFSET "атолл Пальмэйре" + 339+NLSRC_OFFSET "о-ва Питкерн" + 340+NLSRC_OFFSET "о.Рота" + 341+NLSRC_OFFSET "о.Сайпан" + 342+NLSRC_OFFSET "Южная Джорджия и Южные Сандвичевы о-ва" + 343+NLSRC_OFFSET "о.Св.Елены" + 346+NLSRC_OFFSET "о.Тиниан" + 347+NLSRC_OFFSET "Токелау" + 348+NLSRC_OFFSET "Тристан-да-Куньа" + 349+NLSRC_OFFSET "о-ва Туркс и Кайкос" + 351+NLSRC_OFFSET "Британские Виргинские о-ва" + 352+NLSRC_OFFSET "Уоллис и Футуна" 15126+NLSRC_OFFSET "Man, Isle of" 19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of" 21242+NLSRC_OFFSET "Midway Islands" diff --git a/dll/win32/lsasrv/lang/ru-RU.rc b/dll/win32/lsasrv/lang/ru-RU.rc new file mode 100644 index 00000000000..d36e6e19b7f --- /dev/null +++ b/dll/win32/lsasrv/lang/ru-RU.rc @@ -0,0 +1,46 @@ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +STRINGTABLE +BEGIN + IDS_NT_AUTHORITY "NT AUTHORITY" + IDS_NULL_RID "NULL SID" + IDS_WORLD_RID "Все" + IDS_LOCAL_RID "LOCAL" + IDS_CREATOR_OWNER_RID "CREATOR OWNER" + IDS_CREATOR_GROUP_RID "CREATOR GROUP" + IDS_CREATOR_OWNER_SERVER_RID "CREATOR OWNER SERVER" + IDS_CREATOR_GROUP_SERVER_RID "CREATOR GROUP SERVER" + IDS_DIALUP_RID "DIALUP" + IDS_NETWORK_RID "NETWORK" + IDS_BATCH_RID "BATCH" + IDS_INTERACTIVE_RID "INTERACTIVE" + IDS_SERVICE_RID "SERVICE" + IDS_ANONYMOUS_LOGON_RID "ANONYMOUS LOGON" + IDS_PROXY_RID "PROXY" + IDS_ENTERPRISE_CONTROLLERS_RID "ENTERPRISE DOMAIN CONTROLLERS" + IDS_PRINCIPAL_SELF_RID "SELF" + IDS_AUTHENTICATED_USER_RID "Авторизованные пользователи" + IDS_RESTRICTED_CODE_RID "RESTRICTED" + IDS_TERMINAL_SERVER_RID "TERMINAL SERVER USER" + IDS_REMOTE_LOGON_RID "REMOTE INTERACTIVE LOGON" + IDS_THIS_ORGANIZATION_RID "Эта организация" + IDS_LOCAL_SYSTEM_RID "SYSTEM" + IDS_LOCAL_SERVICE_RID "LOCAL SERVICE" + IDS_NETWORK_SERVICE_RID "NETWORK SERVICE" + IDS_BUILTIN_DOMAIN_RID "BUILTIN" + IDS_ALIAS_RID_ADMINS "Администраторы" + IDS_ALIAS_RID_USERS "Пользователи" + IDS_ALIAS_RID_GUESTS "Гости" + IDS_ALIAS_RID_POWER_USERS "Опытные пользователи" + IDS_ALIAS_RID_ACCOUNT_OPS "Операторы аккаунтов" + IDS_ALIAS_RID_SYSTEM_OPS "Операторы сервера" + IDS_ALIAS_RID_PRINT_OPS "Print Operators" + IDS_ALIAS_RID_BACKUP_OPS "Операторы архива" + IDS_ALIAS_RID_REPLICATOR "Репликаторы" + IDS_ALIAS_RID_RAS_SERVERS "RAS и IAS серверы" + IDS_ALIAS_RID_PREW2KCOMPACCESS "Pre-Windows 2000 Compatible Access" + IDS_ALIAS_RID_REMOTE_DESKTOP_USERS "Пользователи удаленного рабочего стола" + IDS_ALIAS_RID_NETWORK_CONFIGURATION_OPS "Операторы настройки сети" +END diff --git a/dll/win32/lsasrv/lsasrv.rc b/dll/win32/lsasrv/lsasrv.rc index 76f76923097..7bcbf8b303c 100644 --- a/dll/win32/lsasrv/lsasrv.rc +++ b/dll/win32/lsasrv/lsasrv.rc @@ -30,6 +30,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #ifdef LANGUAGE_RO_RO #include "lang/ro-RO.rc" #endif +#ifdef LANGUAGE_RU_RU + #include "lang/ru-RU.rc" +#endif #ifdef LANGUAGE_SQ_AL #include "lang/sq-AL.rc" #endif diff --git a/dll/win32/mpr/lang/mpr_Ru.rc b/dll/win32/mpr/lang/mpr_Ru.rc index 34d76fe0bcf..5722633542c 100644 --- a/dll/win32/mpr/lang/mpr_Ru.rc +++ b/dll/win32/mpr/lang/mpr_Ru.rc @@ -42,7 +42,7 @@ FONT 8, "MS Shell Dlg" LTEXT "", IDC_REALM, 70, 46, 150, 14, 0 EDITTEXT IDC_USERNAME, 70, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP EDITTEXT IDC_PASSWORD, 70, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD - CHECKBOX "&Сохранить этот пароль (небезопасно!)", IDC_SAVEPASSWORD, + CHECKBOX "&Сохранить этот пароль (небезопасно)", IDC_SAVEPASSWORD, 70, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 114, 126, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Отмена", IDCANCEL, 170, 126, 50, 14, WS_GROUP | WS_TABSTOP diff --git a/dll/win32/msacm32/lang/msacm_Ru.rc b/dll/win32/msacm32/lang/msacm_Ru.rc index b9832de4fa0..6660580193e 100644 --- a/dll/win32/msacm32/lang/msacm_Ru.rc +++ b/dll/win32/msacm32/lang/msacm_Ru.rc @@ -47,7 +47,7 @@ BEGIN COMBOBOX IDD_ACMFORMATCHOOSE_CMB_FORMAT, 50, 74, 170, 60, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "&Помощь", IDD_ACMFORMATCHOOSE_BTN_HELP, 5, 100, 50, 14 + PUSHBUTTON "С&правка", IDD_ACMFORMATCHOOSE_BTN_HELP, 5, 100, 50, 14 DEFPUSHBUTTON "OK", IDOK, 115, 100, 50, 14 PUSHBUTTON "Отмена", IDCANCEL, 170, 100, 50, 14 diff --git a/dll/win32/msgina/lang/ru-RU.rc b/dll/win32/msgina/lang/ru-RU.rc index 5f4e7253a59..0c0d98f448f 100644 --- a/dll/win32/msgina/lang/ru-RU.rc +++ b/dll/win32/msgina/lang/ru-RU.rc @@ -1,4 +1,4 @@ -/* Russian translation by Dmitry Chapyshev, 2007.06.17 */ +/* Russian translation by Dmitry Chapyshev, 2007.06.17, Kudratov Olimjon (olim98@bk.ru) */ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT @@ -27,7 +27,7 @@ CAPTION "Вход" FONT 8, "MS Shell Dlg", 400, 0, 1 BEGIN CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54 - LTEXT "Имя пользователя:", IDC_STATIC, 6, 60, 52, 8 + LTEXT "Пользователь:", IDC_STATIC, 6, 60, 52, 8 EDITTEXT IDC_USERNAME, 60, 57, 155, 14, ES_AUTOHSCROLL LTEXT "Пароль:", IDC_STATIC, 6, 78, 52, 8 EDITTEXT IDC_PASSWORD, 60, 76, 155, 14, ES_AUTOHSCROLL | ES_PASSWORD @@ -44,16 +44,16 @@ CAPTION "Безопасность" FONT 8, "MS Shell Dlg", 400, 0, 1 BEGIN CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54 - GROUPBOX "Вход в систему", IDC_STATIC, 7, 61, 261, 52 + GROUPBOX "Информация о входе в систему", IDC_STATIC, 7, 61, 261, 52 LTEXT "", IDC_LOGONMSG, 15, 73, 245, 18 LTEXT "", IDC_LOGONDATE, 15, 94, 245, 8 CTEXT "Выберите необходимое действие:", IDC_STATIC, 10, 119, 255, 8 - PUSHBUTTON "Заблокировать", IDC_LOCK, 7, 135, 86, 14 - PUSHBUTTON "Завершение сеанса", IDC_LOGOFF, 102, 135, 86, 14 - PUSHBUTTON "Выключение", IDC_SHUTDOWN, 198, 135, 70, 14 - PUSHBUTTON "Смена пароля", IDC_CHANGEPWD, 7, 155, 86, 14 - PUSHBUTTON "Диспетчер задач", IDC_TASKMGR, 102, 154, 86, 14 - PUSHBUTTON "Отмена", IDCANCEL, 198, 154, 70, 14 + PUSHBUTTON "Заблокировать", IDC_LOCK, 7, 135, 80, 14 + PUSHBUTTON "Завершение сеанса", IDC_LOGOFF, 98, 135, 80, 14 + PUSHBUTTON "Завершение работы", IDC_SHUTDOWN, 188, 135, 80, 14 + PUSHBUTTON "Смена пароля", IDC_CHANGEPWD, 7, 155, 80, 14 + PUSHBUTTON "Диспетчер задач", IDC_TASKMGR, 98, 154, 80, 14 + PUSHBUTTON "Отмена", IDCANCEL, 188, 154, 80, 14 END IDD_LOCKED_DLG DIALOGEX 0, 0, 275, 121 @@ -65,7 +65,7 @@ BEGIN ICON IDI_LOCKICON, -1, 7, 59, 20, 20 LTEXT "Этот компьютер используется и заблокирован.", IDC_STATIC, 37, 61, 231, 8 LTEXT "Сообщение", IDC_LOCKMSG, 37, 75, 231, 26 - LTEXT "Нажмите Ctrl-Alt-Del, чтобы разблокировать.", IDC_STATIC, 37, 106, 231, 8 + LTEXT "Нажмите Ctrl-Alt-Del, чтобы разблокировать компьютер.", IDC_STATIC, 37, 106, 231, 8 END IDD_UNLOCK_DLG DIALOGEX 0, 0, 275, 179 @@ -78,9 +78,9 @@ BEGIN LTEXT "Этот компьютер используется и заблокирован.", IDC_STATIC, 36, 61, 232, 8 LTEXT "Сообщение", IDC_LOCKMSG, 36, 75, 232, 26 LTEXT "По&льзователь:", IDC_STATIC, 36, 107, 51, 8 - EDITTEXT IDC_USERNAME, 84, 104, 119, 14, ES_AUTOHSCROLL - LTEXT "&Пароль:", IDC_STATIC, 33, 125, 42, 8 - EDITTEXT IDC_PASSWORD, 84, 123, 119, 14, ES_AUTOHSCROLL | ES_PASSWORD + EDITTEXT IDC_USERNAME, 95, 104, 110, 14, ES_AUTOHSCROLL + LTEXT "&Пароль:", IDC_STATIC, 36, 125, 42, 8 + EDITTEXT IDC_PASSWORD, 95, 123, 110, 14, ES_AUTOHSCROLL | ES_PASSWORD PUSHBUTTON "OK", IDOK, 80, 154, 50, 14, BS_DEFPUSHBUTTON PUSHBUTTON "Отмена", IDCANCEL, 144, 154, 50, 14 END @@ -91,7 +91,7 @@ CAPTION "Смена пароля" FONT 8, "MS Shell Dlg", 400, 0, 1 BEGIN CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54 - LTEXT "Имя:", IDC_STATIC, 7, 61, 78, 8 + LTEXT "Пользователь:", IDC_STATIC, 7, 61, 78, 8 EDITTEXT IDC_CHANGEPWD_USERNAME, 90, 59, 127, 12, ES_AUTOHSCROLL LTEXT "Войти на:", IDC_STATIC, 7, 78, 78, 8 COMBOBOX IDC_CHANGEPWD_DOMAIN, 90, 75, 127, 144, CBS_DROPDOWNLIST | CBS_SORT @@ -99,7 +99,7 @@ BEGIN EDITTEXT IDC_CHANGEPWD_OLDPWD, 90, 92, 127, 12, ES_AUTOHSCROLL | ES_PASSWORD LTEXT "Новый пароль:", IDC_STATIC, 7, 111, 78, 8 EDITTEXT IDC_CHANGEPWD_NEWPWD1, 90, 109, 127, 12, ES_AUTOHSCROLL | ES_PASSWORD - LTEXT "Подтвердите пароль:", IDC_STATIC, 7, 127, 78, 20 + LTEXT "Подтвердите пароль:", IDC_STATIC, 7, 127, 78, 8 EDITTEXT IDC_CHANGEPWD_NEWPWD2, 90, 125, 127, 12, ES_AUTOHSCROLL | ES_PASSWORD PUSHBUTTON "OK", IDOK, 164, 145, 50, 14, BS_DEFPUSHBUTTON PUSHBUTTON "Отмена", IDCANCEL, 218, 145, 50, 14 @@ -159,7 +159,7 @@ BEGIN IDS_LOGGEDOUTSAS "Добро пожаловать!" IDS_LOCKEDSAS "Этот компьютер сейчас заблокирован." IDS_PRESSCTRLALTDELETE "Нажмите клавиши Ctrl-Alt-Del для входа." - IDS_ASKFORUSER "Имя пользователя: " + IDS_ASKFORUSER "Пользователь: " IDS_ASKFORPASSWORD "Пароль: " IDS_FORCELOGOFF "При регистрации нового пользователя все несохраненные данные будут утеряны. Продолжить?" IDS_LOCKMSG "Только %s или Администратор могут разблокировать этот компьютер." @@ -169,7 +169,7 @@ BEGIN IDS_LOCKEDWRONGPASSWORD "Неверный пароль. Пожалуйста, введите пароль еще раз. Символы в пароле вводятся с учетом регистра." IDS_LOCKEDWRONGUSER "Этот компьютер сейчас заблокирован. Только %s\\%s или Администратор могут разблокировать этот компьютер." IDS_CHANGEPWDTITLE "Сменить пароль" - IDS_NONMATCHINGPASSWORDS "Введенные пароли не совпадают. Введите пароль в оба поля" + IDS_NONMATCHINGPASSWORDS "Введенные пароли не совпадают. Введите одинаковый пароль в оба поля" IDS_PASSWORDCHANGED "Ваш пароль был изменен." IDS_LOGONTITLE "Logon Message" IDS_LOGONWRONGUSERORPWD "Системе не удается войти. Проверьте правильность имени пользователя и домена и повторите ввод. Пароли вводятся с учетом регистра" diff --git a/dll/win32/msi/msi_Ru.rc b/dll/win32/msi/msi_Ru.rc index b50139aebc0..e4c2cfe00fc 100644 --- a/dll/win32/msi/msi_Ru.rc +++ b/dll/win32/msi/msi_Ru.rc @@ -30,7 +30,7 @@ STRINGTABLE 4 "Указанный пакет не может быть открыт. Проверьте файл и повторите попытку." 5 "путь %s не найден" 9 "вставьте диск %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 10 "Устанновщик ReactOS %s\n\nИспользование:\nmsiexec команда {обязательные параметры} [необязательные параметры]\n\nУстановить продукт:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nВосстановить установку:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nУдалить продукт:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nПрименить патч:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nОтобразить эту справку:\n\t/help\n\t/?\n" 11 "укажите каталог, содержащий %s" 12 "источник установки данной возможности не указан" 13 "сетевой диск для данной возможности не указан" diff --git a/dll/win32/msports/lang/ru-RU.rc b/dll/win32/msports/lang/ru-RU.rc index 84c7862beae..8b81df15b2c 100644 --- a/dll/win32/msports/lang/ru-RU.rc +++ b/dll/win32/msports/lang/ru-RU.rc @@ -1,4 +1,5 @@ /* Russian translation by Kudratov Olimjon (olim98@bk.ru) */ + LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT IDD_SERIALSETTINGS DIALOGEX 0, 0, 252, 218 @@ -14,10 +15,10 @@ BEGIN COMBOBOX IDC_SERIAL_PARITY, 139, 59, 106, 62, WS_TABSTOP | CBS_DROPDOWNLIST RTEXT "С&топовые биты:", -1, 74, 82, 62, 8 COMBOBOX IDC_SERIAL_STOPBITS, 139, 80, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST - RTEXT "&Управление потоком:", -1, 74, 102, 62, 8 + RTEXT "&Управление потоком:", -1, 63, 102, 73, 8 COMBOBOX IDC_SERIAL_FLOWCONTROL, 139, 100, 106, 54, WS_TABSTOP | CBS_DROPDOWNLIST - PUSHBUTTON "До&полнительно...", IDC_SERIAL_ADVANCED, 111, 130, 65, 14, WS_GROUP - PUSHBUTTON "&Восстановить умолчания", IDC_SERIAL_RESTORE, 180, 130, 65, 14, WS_GROUP + PUSHBUTTON "До&полнительно...", IDC_SERIAL_ADVANCED, 101, 130, 70, 14, WS_GROUP + PUSHBUTTON "&По умолчанию", IDC_SERIAL_RESTORE, 175, 130, 70, 14, WS_GROUP END IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218 diff --git a/dll/win32/msvfw32/lang/msvfw32_Ru.rc b/dll/win32/msvfw32/lang/msvfw32_Ru.rc index 4bedeacc346..407ee2516c2 100644 --- a/dll/win32/msvfw32/lang/msvfw32_Ru.rc +++ b/dll/win32/msvfw32/lang/msvfw32_Ru.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_FULLFRAMES "Кадры целиком (Без компрессии)" + IDS_FULLFRAMES "Исходные кадры (Без компрессии)" } ICM_CHOOSE_COMPRESSOR DIALOG 36, 24, 210, 95 @@ -37,8 +37,8 @@ FONT 8, "MS Shell Dlg" LTEXT "&Алгоритм сжатия:",-1,9,6,135,8 COMBOBOX IDC_COMP_LIST,9,16,135,67,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP - PUSHBUTTON "&Настройки...",IDC_CONFIGURE,154,36,52,14 - PUSHBUTTON "&Информация...",IDC_ABOUT,154,52,52,14 + PUSHBUTTON "&Настроить...",IDC_CONFIGURE,154,36,52,14 + PUSHBUTTON "&О программе",IDC_ABOUT,154,52,52,14 SCROLLBAR IDC_QUALITY_SCROLL,9,44,135,10,WS_TABSTOP @@ -46,7 +46,7 @@ FONT 8, "MS Shell Dlg" CONTROL "Кл&ючевой кадр каждые",IDC_KEYFRAME_CHECKBOX,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,60,86,12 EDITTEXT IDC_KEYFRAME,98,60,22,12 - LTEXT "кадр(ов)",IDC_KEYFRAME_FRAMES,123,62,26,10 + LTEXT "кадров",IDC_KEYFRAME_FRAMES,123,62,26,10 CONTROL "&Поток данных",IDC_DATARATE_CHECKBOX,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,76,86,12 EDITTEXT IDC_DATARATE,98,76,22,12 diff --git a/dll/win32/msvidc32/lang/msvidc32_Ru.rc b/dll/win32/msvidc32/lang/msvidc32_Ru.rc index 54750f4c1bd..dfd086574ac 100644 --- a/dll/win32/msvidc32/lang/msvidc32_Ru.rc +++ b/dll/win32/msvidc32/lang/msvidc32_Ru.rc @@ -24,5 +24,5 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { IDS_NAME "MS-CRAM" - IDS_DESCRIPTION "Видео кодер Wine Video 1" + IDS_DESCRIPTION "Видео кодек Wine Video 1" } diff --git a/dll/win32/netcfgx/lang/en-US.rc b/dll/win32/netcfgx/lang/en-US.rc index 92ac51b4cc4..bbedab24501 100644 --- a/dll/win32/netcfgx/lang/en-US.rc +++ b/dll/win32/netcfgx/lang/en-US.rc @@ -17,7 +17,7 @@ BEGIN CONTROL "", IDC_DEFGATEWAY, "SysIPAddress32", WS_TABSTOP, 150, 105 - 2, 80, 12 CONTROL "Obtain the DNS server address automatically", IDC_AUTODNS, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 139, 210, 12 GROUPBOX "", -1, 9, 157, 228, 47, BS_GROUPBOX - CONTROL "&Use the following DNS server addresses", IDC_FIXEDDNS, "BUTTON", BS_AUTORADIOBUTTON, 14, 155, 142, 12 + CONTROL "&Use the following DNS server addresses:", IDC_FIXEDDNS, "BUTTON", BS_AUTORADIOBUTTON, 14, 155, 142, 12 LTEXT "Preferred DNS server:", -1, 14, 171, 135, 8 CONTROL "", IDC_DNS1, "SysIPAddress32", WS_TABSTOP, 150, 171 - 2, 80, 12 LTEXT "Alternate DNS server:", -1, 14, 186, 135, 8 diff --git a/dll/win32/netcfgx/lang/ru-RU.rc b/dll/win32/netcfgx/lang/ru-RU.rc index 06a4af4722b..dfba49cf02b 100644 --- a/dll/win32/netcfgx/lang/ru-RU.rc +++ b/dll/win32/netcfgx/lang/ru-RU.rc @@ -2,13 +2,13 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT IDD_TCPIP_BASIC_DLG DIALOGEX 0, 0, 246, 228 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Основные" +CAPTION "Общие" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Параметры протокола IP могут назначаться автоматически, если сеть поддерживает такую возможность. В противном случае эти параметры можно получить у сетевого администратора.", -1, 9, 9, 228, 27 + LTEXT "Параметры протокола IP могут назначаться автоматически, если сеть поддерживает эту возможность. В противном случае параметры IP можно получить у сетевого администратора.", -1, 9, 9, 228, 27 CONTROL "Получать IP-адрес автоматически", IDC_USEDHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 43, 210, 12 GROUPBOX "", -1, 9, 61, 228, 70, BS_GROUPBOX - CONTROL "&Использовать указанный IP-адрес:", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON, 14, 59, 140, 12 + CONTROL "&Использовать следующий IP-адрес:", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON, 14, 59, 140, 12 LTEXT "IP-адрес:", -1, 14, 75, 135, 8 CONTROL "", IDC_IPADDR, "SysIPAddress32", WS_TABSTOP, 150, 75 - 2, 80, 12 LTEXT "Маска подсети:", -1, 14, 90, 135, 8 @@ -17,7 +17,7 @@ BEGIN CONTROL "", IDC_DEFGATEWAY, "SysIPAddress32", WS_TABSTOP, 150, 105 - 2, 80, 12 CONTROL "Получать адрес DNS-сервера автоматически", IDC_AUTODNS, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 139, 210, 12 GROUPBOX "", -1, 9, 157, 228, 47, BS_GROUPBOX - CONTROL "&Использовать следующие адреса DNS-серверов", IDC_FIXEDDNS, "BUTTON", BS_AUTORADIOBUTTON, 14, 155, 185, 12 + CONTROL "&Использовать следующие адреса DNS-серверов:", IDC_FIXEDDNS, "BUTTON", BS_AUTORADIOBUTTON, 14, 155, 185, 12 LTEXT "Предпочитаемый DNS-сервер:", -1, 14, 171, 135, 8 CONTROL "", IDC_DNS1, "SysIPAddress32", WS_TABSTOP, 150, 171 - 2, 80, 12 LTEXT "Альтернативный DNS-сервер:", -1, 14, 186, 135, 8 diff --git a/dll/win32/netid/lang/ru-RU.rc b/dll/win32/netid/lang/ru-RU.rc index f82ac7be1ac..a1cced0a679 100644 --- a/dll/win32/netid/lang/ru-RU.rc +++ b/dll/win32/netid/lang/ru-RU.rc @@ -6,7 +6,7 @@ CAPTION "Имя компьютера" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_COMPNAME, IDC_STATIC, 4, 3, 26, 24, SS_ICON - LTEXT "ReactOS использует указанные ниже сведения для идентификации компьютера в сети.", IDC_STATIC, 40, 5, 204, 20 + LTEXT "Указанные ниже сведения используются для идентификации компьютера в сети.", IDC_STATIC, 40, 5, 204, 20 LTEXT "Описание:", IDC_STATIC, 6, 40, 70, 9 EDITTEXT IDC_COMPDESC, 98, 38, 146, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP LTEXT "Полное имя:", IDC_STATIC, 6, 68, 64, 9 @@ -35,7 +35,7 @@ BEGIN AUTORADIOBUTTON "до&мена:", 1008, 17, 132, 192, 10, WS_GROUP AUTORADIOBUTTON "рабочей &группы:", 1004, 17, 161, 191, 10 EDITTEXT 116, 28, 144, 181, 14, ES_AUTOHSCROLL | WS_GROUP - PUSHBUTTON "&Поиск домена", 1010, 7, 203, 109, 14, NOT WS_VISIBLE | WS_DISABLED + PUSHBUTTON "&Найти домен", 1010, 7, 203, 109, 14, NOT WS_VISIBLE | WS_DISABLED EDITTEXT 1007, 28, 172, 181, 14, ES_UPPERCASE | ES_AUTOHSCROLL | ES_OEMCONVERT DEFPUSHBUTTON "OK", 1, 121, 203, 50, 14, WS_GROUP PUSHBUTTON "Отмена", 2, 176, 203, 50, 14 diff --git a/dll/win32/netshell/lang/ru-RU.rc b/dll/win32/netshell/lang/ru-RU.rc index d0fc0c2beb7..4d11ecc017b 100644 --- a/dll/win32/netshell/lang/ru-RU.rc +++ b/dll/win32/netshell/lang/ru-RU.rc @@ -109,7 +109,7 @@ BEGIN IDS_NET_REPAIR "Исправить" IDS_NET_CREATELINK "Создать ярлык" IDS_NET_DELETE "Удалить" - IDS_NET_RENAME "Rename" + IDS_NET_RENAME "Переименовать" IDS_NET_PROPERTIES "Свойства" IDS_FORMAT_BIT "%u бит/с" IDS_FORMAT_KBIT "%u Кбит/с" diff --git a/dll/win32/newdev/lang/ru-RU.rc b/dll/win32/newdev/lang/ru-RU.rc index 8657a8be3c1..6f4e389f74a 100644 --- a/dll/win32/newdev/lang/ru-RU.rc +++ b/dll/win32/newdev/lang/ru-RU.rc @@ -88,9 +88,9 @@ END STRINGTABLE BEGIN - IDS_INSTALLWIZARDTITLE "New hardware wizard" - IDS_UPDATEWIZARDTITLE "Update driver wizard" - IDS_CHSOURCE_TITLE "Choose search and install options" - IDS_SEARCHDRV_TITLE "Searching..." - IDS_INSTALLDRV_TITLE "Installing..." + IDS_INSTALLWIZARDTITLE "Мастер нового оборудования" + IDS_UPDATEWIZARDTITLE "Мастер обновления драйверов" + IDS_CHSOURCE_TITLE "Выберите настройки поиска и установки" + IDS_SEARCHDRV_TITLE "Поиск..." + IDS_INSTALLDRV_TITLE "Установка..." END diff --git a/dll/win32/oleacc/lang/oleacc_Ru.rc b/dll/win32/oleacc/lang/oleacc_Ru.rc index 050c707d825..5de12aadfa0 100644 --- a/dll/win32/oleacc/lang/oleacc_Ru.rc +++ b/dll/win32/oleacc/lang/oleacc_Ru.rc @@ -88,36 +88,36 @@ STRINGTABLE ROLE_SYSTEM_IPADDRESS "IP-адрес" ROLE_SYSTEM_OUTLINEBUTTON "кнопка контура" - IDS_STATE_NORMAL "normal" - IDS_STATE_UNAVAILABLE "unavailable" - IDS_STATE_SELECTED "selected" - IDS_STATE_FOCUSED "focused" - IDS_STATE_PRESSED "pressed" - IDS_STATE_CHECKED "checked" - IDS_STATE_MIXED "mixed" - IDS_STATE_READONLY "read only" - IDS_STATE_HOTTRACKED "hot tracked" - IDS_STATE_DEFAULT "default" - IDS_STATE_EXPANDED "expanded" - IDS_STATE_COLLAPSED "collapsed" - IDS_STATE_BUSY "busy" - IDS_STATE_FLOATING "floating" - IDS_STATE_MARQUEED "marqueed" - IDS_STATE_ANIMATED "animated" - IDS_STATE_INVISIBLE "invisible" - IDS_STATE_OFFSCREEN "offscreen" - IDS_STATE_SIZEABLE "sizeable" - IDS_STATE_MOVEABLE "moveable" - IDS_STATE_SELFVOICING "self voicing" - IDS_STATE_FOCUSABLE "focusable" - IDS_STATE_SELECTABLE "selectable" - IDS_STATE_LINKED "linked" - IDS_STATE_TRAVERSED "traversed" - IDS_STATE_MULTISELECTABLE "multi selectable" - IDS_STATE_EXTSELECTABLE "extended selectable" - IDS_STATE_ALERT_LOW "alert low" - IDS_STATE_ALERT_MEDIUM "alert medium" - IDS_STATE_ALERT_HIGH "alert high" - IDS_STATE_PROTECTED "protected" - IDS_STATE_HASPOPUP "has popup" + IDS_STATE_NORMAL "обычный" + IDS_STATE_UNAVAILABLE "сведения отсутствуют" + IDS_STATE_SELECTED "выделенный" + IDS_STATE_FOCUSED "с фокусом ввода" + IDS_STATE_PRESSED "нажато" + IDS_STATE_CHECKED "отмечено" + IDS_STATE_MIXED "оба типа" + IDS_STATE_READONLY "только чтение" + IDS_STATE_HOTTRACKED "отслеженное" + IDS_STATE_DEFAULT "по умолчанию" + IDS_STATE_EXPANDED "развернуто" + IDS_STATE_COLLAPSED "свернуто" + IDS_STATE_BUSY "занято" + IDS_STATE_FLOATING "перемещаемый" + IDS_STATE_MARQUEED "бегущая строка" + IDS_STATE_ANIMATED "анимировано" + IDS_STATE_INVISIBLE "невидимо" + IDS_STATE_OFFSCREEN "за экраном" + IDS_STATE_SIZEABLE "изменяемого размера" + IDS_STATE_MOVEABLE "перемещаемое" + IDS_STATE_SELFVOICING "говорящее" + IDS_STATE_FOCUSABLE "фокусируемое" + IDS_STATE_SELECTABLE "выделяемое" + IDS_STATE_LINKED "связанное" + IDS_STATE_TRAVERSED "пройденное" + IDS_STATE_MULTISELECTABLE "со множественным выделением" + IDS_STATE_EXTSELECTABLE "с расширенным выделением" + IDS_STATE_ALERT_LOW "низкий уровень оповещений" + IDS_STATE_ALERT_MEDIUM "средний уровень оповещений" + IDS_STATE_ALERT_HIGH "высокий уровень оповещений" + IDS_STATE_PROTECTED "защищенный режим" + IDS_STATE_HASPOPUP "есть всплывающая подсказка" } diff --git a/dll/win32/oleacc/lang/oleacc_Tr.rc b/dll/win32/oleacc/lang/oleacc_Tr.rc index ca2765eccb5..02de6bff134 100644 --- a/dll/win32/oleacc/lang/oleacc_Tr.rc +++ b/dll/win32/oleacc/lang/oleacc_Tr.rc @@ -29,7 +29,7 @@ STRINGTABLE ROLE_SYSTEM_GRIP "tutacak" ROLE_SYSTEM_SOUND "ses" ROLE_SYSTEM_CURSOR "imleç" - ROLE_SYSTEM_CARET "düzeltme imi" + ROLE_SYSTEM_CARET "şapka" ROLE_SYSTEM_ALERT "uyarı" ROLE_SYSTEM_WINDOW "pencere" ROLE_SYSTEM_CLIENT "istemci" diff --git a/dll/win32/rasdlg/lang/tr-TR.rc b/dll/win32/rasdlg/lang/tr-TR.rc index 1e3f3b15f67..00df024a2eb 100644 --- a/dll/win32/rasdlg/lang/tr-TR.rc +++ b/dll/win32/rasdlg/lang/tr-TR.rc @@ -44,9 +44,9 @@ BEGIN LTEXT "Bir ya da daha çok ek geçek bağlanmadı.", 1033, 37, 8, 216, 20 CONTROL "", 1032, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x00008401, 37, 83, 224, 136 AUTOCHECKBOX "&İleride, Olmayan Geçekleri Deneme", 1030, 38, 226, 222, 10 - DEFPUSHBUTTON "&Onayla", 1, 135, 242, 60, 14 + DEFPUSHBUTTON "&Kabul Et", 1, 135, 242, 60, 14 PUSHBUTTON "&Ertele", 2, 201, 242, 60, 14 - LTEXT "Eğer yalnızca bir tek geçek bağlıysa sunucu çoklu bağlantılı aramaları kabul etmeye yapılandırılmamış olabilir. Böyle bir durumda gereksiz bağlantı yüklerinden kaçınmak için ""İleride, Olmayan Geçekleri Deneme""yi imleyiniz.", -1, 37, 36, 224, 44 + LTEXT "Eğer yalnızca bir tek geçek bağlıysa sunucu çok geçekli aramaları kabul etmeye yapılandırılmamış olabilir. Böyle bir durumda gereksiz bağlantı yüklerinden kaçınmak için ""İleride, Olmayan Geçekleri Deneme""yi imleyiniz.", -1, 37, 36, 224, 44 END 105 DIALOGEX 0, 0, 261, 253 @@ -432,7 +432,7 @@ BEGIN ICON 32516, 1328, 7, 7, 21, 20, WS_GROUP LTEXT "", 1329, 38, 7, 216, 24, NOT WS_GROUP AUTOCHECKBOX "O&lmayan İletişim Kâidelerini Bir Dahaki Kezde İsteme", 1327, 40, 44, 215, 10, BS_TOP | BS_MULTILINE | WS_GROUP - PUSHBUTTON "&Onayla", 1, 129, 64, 60, 14 + PUSHBUTTON "&Kabul Et", 1, 129, 64, 60, 14 PUSHBUTTON "&Ertele", 2, 193, 64, 60, 14 END @@ -610,7 +610,7 @@ END STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CHILD | WS_VISIBLE | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Bu çevirme arayüzü isteği için bir ad seçiniz. Bağlanan yönlendirici ya da ağdan sonra arayüzleri adlandırmak bilinen bir uygulamadır.", 1158, 7, 5, 309, 29 + LTEXT "Bu çevirme arayüzü isteği için bir ad seçiniz. Bağlanan yönlendiriciden ya da bağlanan ağdan sonra arayüzleri adlandırmak bilinen bir uygulamadır.", 1158, 7, 5, 309, 29 LTEXT "&Arayüz Adı:", 1159, 17, 41, 285, 8, NOT WS_GROUP EDITTEXT 1157, 17, 53, 284, 12, ES_AUTOHSCROLL AUTOCHECKBOX "&Çevirme Arayüzleri İsteği Üzerine Tüm Şeyleri Biliyorum ve Husûsiyetleri Doğrudan Düzenlemeyi Yeğliyorum", 1156, 24, 100, 258, 31, BS_TOP | BS_MULTILINE | NOT WS_VISIBLE | WS_DISABLED @@ -668,118 +668,118 @@ END STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Enter the IP address of a DNS or WINS server on the remote network, or leave as 0.0.0.0 if you expect the remote router to provide them, or do not know.", 1275, 7, 2, 311, 25 - LTEXT "&DNS server:", 1274, 7, 29, 160, 8, NOT WS_GROUP + LTEXT "Uzak ağdaki bir DNS sunucusunun veyâ bir WINS sunucusunun IP adresini giriniz ya da uzak yönlendiricinin onları sağlaması için bekleyecekseniz veyâ bilmiyorsanız 0.0.0.0 olarak bırakınız.", 1275, 7, 2, 311, 25 + LTEXT "&DNS Sunucusu:", 1274, 7, 29, 160, 8, NOT WS_GROUP CONTROL "", 1272, "RASIPADDRESS", WS_TABSTOP, 21, 41, 85, 12 - LTEXT "&WINS server:", 1276, 7, 65, 166, 8, NOT WS_GROUP + LTEXT "&WINS Sunucusu:", 1276, 7, 65, 166, 8, NOT WS_GROUP CONTROL "", 1273, "RASIPADDRESS", WS_TABSTOP, 21, 77, 85, 12 END 167 DIALOGEX 0, 0, 230, 215 STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION -CAPTION "Options" +CAPTION "Seçenekler" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Dialing options", 1289, 7, 2, 213, 64 - AUTOCHECKBOX "&Display progress while connecting", 1284, 16, 14, 201, 10 - AUTOCHECKBOX "&Prompt for name and password, certificate, etc.", 1554, 16, 27, 201, 10 - AUTOCHECKBOX "Include &ReactOS logon domain", 1555, 16, 39, 201, 10 - AUTOCHECKBOX "Prompt for phone &number", 1285, 16, 52, 200, 10, BS_TOP | BS_MULTILINE - GROUPBOX "Redialing options", 1290, 6, 72, 213, 79 - LTEXT "&Redial attempts:", 1300, 16, 87, 123, 8 + GROUPBOX "Çevirme Seçenekleri", 1289, 7, 2, 213, 64 + AUTOCHECKBOX "&Bağlanırken İlerlemeyi Göster", 1284, 16, 14, 201, 10 + AUTOCHECKBOX "&Ad ve Şifre, Onay Belgesi ve Benzeri İçin Sor", 1554, 16, 27, 201, 10 + AUTOCHECKBOX "&ReactOS Oturum Açma Etki Alanını İçer", 1555, 16, 39, 201, 10 + AUTOCHECKBOX "&Telefon Numarası İçin Sor", 1285, 16, 52, 200, 10, BS_TOP | BS_MULTILINE + GROUPBOX "Yeniden Çevirme Seçenekleri", 1290, 6, 72, 213, 79 + LTEXT "&Yeniden Çevirme Girişimleri:", 1300, 16, 87, 123, 8 EDITTEXT 1287, 141, 84, 69, 14, ES_AUTOHSCROLL | ES_NUMBER - LTEXT "&Time between redial attempts:", 1301, 16, 103, 123, 8 + LTEXT "Ye&niden Çevirme Girişimleri Arasındaki Süre:", 1301, 16, 103, 123, 8 COMBOBOX 1292, 141, 101, 70, 123, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "Idle ti&me before hanging up:", 1299, 16, 120, 123, 8 + LTEXT "&Ertelemeden Önceki Boşta Kalma Süresi:", 1299, 16, 120, 123, 8 COMBOBOX 1291, 141, 116, 70, 108, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - AUTOCHECKBOX "Redial if &line is dropped", 1286, 16, 136, 199, 10, BS_TOP | BS_MULTILINE - GROUPBOX "Multiple devices", 1288, 7, 156, 213, 32 + AUTOCHECKBOX "&Geçek Kesilmişse Yeniden Çevir", 1286, 16, 136, 199, 10, BS_TOP | BS_MULTILINE + GROUPBOX "Çoklu Aygıtlar", 1288, 7, 156, 213, 32 COMBOBOX 1551, 16, 169, 128, 45, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - PUSHBUTTON "C&onfigure...", 1293, 150, 168, 60, 14 + PUSHBUTTON "Ya&pılandır...", 1293, 150, 168, 60, 14 PUSHBUTTON "&X.25", 1295, 7, 194, 50, 14 - PUSHBUTTON "&Virtual ""tunnel"" connection", 1294, 62, 194, 120, 14, NOT WS_VISIBLE | WS_DISABLED + PUSHBUTTON "&Farazî ""Tünel"" Bağlantısı", 1294, 62, 194, 120, 14, NOT WS_VISIBLE | WS_DISABLED END 168 DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "New Connection Wizard" +CAPTION "Yeni Bağlantı Yardımcısı" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Type the phone number below. ", -1, 7, 4, 306, 14 - LTEXT "&Phone number:", 1308, 7, 19, 130, 8 + LTEXT "Aşağıda telefon numarasını yazınız.", -1, 7, 4, 306, 14 + LTEXT "&Telefon Numarası:", 1308, 7, 19, 130, 8 EDITTEXT 1304, 7, 30, 304, 14, ES_AUTOHSCROLL - LTEXT "You might need to include a ""1"" or the area code, or both. If you are not sure you need the extra numbers, dial the phone number on your telephone. If you hear a modem sound, the number dialed is correct.", -1, 20, 50, 291, 53 + LTEXT """1"" veyâ alan kodunu eklemeye gereksinim duyabilirsiniz. Ek numaralara gereksinim duymadığınızdan emin değilseniz telefonunuzdaki telefon numarasını çeviriniz. Eğer bir çevirge sesi duyarsanız çevrilen numara doğrudur.", -1, 20, 50, 291, 53 END 169 DIALOGEX 6, 18, 235, 135 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Phonebook" +CAPTION "Telefon Defteri" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Use this phonebook:", 1326, 8, 8, 222, 8 - AUTORADIOBUTTON "The &system phonebook", 1325, 14, 22, 216, 10, WS_GROUP - AUTORADIOBUTTON "My &personal phonebook", 1324, 14, 34, 216, 10 - AUTORADIOBUTTON "This a<ernate phonebook:", 1323, 14, 46, 217, 10 + LTEXT "Bu Telefon Defterini Kullan:", 1326, 8, 8, 222, 8 + AUTORADIOBUTTON "&Dizge Telefon Defteri", 1325, 14, 22, 216, 10, WS_GROUP + AUTORADIOBUTTON "&Şahsî Telefon Defterim", 1324, 14, 34, 216, 10 + AUTORADIOBUTTON "Ş&u Başka Telefon Defteri:", 1323, 14, 46, 217, 10 COMBOBOX 1321, 26, 61, 201, 77, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_GROUP | NOT WS_TABSTOP - PUSHBUTTON "&Browse...", 1322, 167, 81, 60, 14 + PUSHBUTTON "&Göz At...", 1322, 167, 81, 60, 14 END 170 DIALOGEX 6, 18, 235, 135 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Phonebook" +CAPTION "Telefon Defteri" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Use this phonebook:", 1326, 8, 8, 223, 8 - AUTORADIOBUTTON "The &system phonebook", 1325, 14, 22, 217, 10, WS_GROUP - AUTORADIOBUTTON "This a<ernate phonebook:", 1323, 14, 36, 216, 10 + LTEXT "Bu Telefon Defterini Kullan:", 1326, 8, 8, 223, 8 + AUTORADIOBUTTON "&Dizge Telefon Defteri", 1325, 14, 22, 217, 10, WS_GROUP + AUTORADIOBUTTON "Ş&u Başka Telefon Defteri:", 1323, 14, 36, 216, 10 COMBOBOX 1321, 26, 51, 203, 77, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_GROUP | NOT WS_TABSTOP - PUSHBUTTON "&Browse...", 1322, 169, 69, 60, 14 + PUSHBUTTON "&Göz At...", 1322, 169, 69, 60, 14 END 171 DIALOGEX 6, 18, 317, 144 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Enter this router's IP address on the remote network or if you expect the remote router to provide the address, leave as 0.0.0.0. Usually the operator of the remote network or router will tell you what to use.", 1331, 5, 4, 308, 35 - LTEXT "My &IP address:", 1332, 4, 51, 100, 8, NOT WS_GROUP + LTEXT "Uzak ağdaki bu yönlendiricinin IP adresini giriniz ya da adresi sağlaması için uzak yönlendiriciyi bekleyecekseniz 0.0.0.0 olarak bırakınız. Umûmiyetle uzak ağın ya da yönlendiricinin işletmeni ne kullanılacağını size söyleyecektir.", 1331, 5, 4, 308, 35 + LTEXT "&IP Adresim:", 1332, 4, 51, 100, 8, NOT WS_GROUP CONTROL "", 1330, "RASIPADDRESS", WS_TABSTOP, 21, 62, 104, 12 - LTEXT "Note: If you have a network adapter installed, you should NOT choose the same address as your network adapter.", 1333, 5, 94, 306, 36, NOT WS_GROUP + LTEXT "Önemli: Kurulu bir ağ bağdaştırıcınız varsa ağ bağdaştırıcınıza karşın aynı adresi seçmemelisiniz.", 1333, 5, 94, 306, 36, NOT WS_GROUP END 172 DIALOGEX 6, 18, 317, 144 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Some dial-up servers and routers require an interactive login after connecting. You can run a script automatically to respond for you.", 1339, 5, 3, 309, 27 - AUTOCHECKBOX "Show &terminal window", 1462, 15, 31, 162, 10 - AUTOCHECKBOX "&Run script:", 1463, 15, 45, 58, 10 + LTEXT "Birtakım çevirme sunucuları ve yönlendiricileri bağlandıktan sonra bir etkileşimli oturum açma gerektirir. Sizin için yanıt vermeye kendiliğinden bir betik çalıştırabilirsiniz.", 1339, 5, 3, 309, 27 + AUTOCHECKBOX "&Uçbirim Penceresini Göster", 1462, 15, 31, 162, 10 + AUTOCHECKBOX "&Betik Çalıştır:", 1463, 15, 45, 58, 10 COMBOBOX 1334, 30, 60, 275, 88, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | NOT WS_TABSTOP - PUSHBUTTON "&Edit...", 1335, 180, 77, 60, 14 - PUSHBUTTON "&Browse...", 1465, 244, 77, 60, 14 + PUSHBUTTON "&Düzenle...", 1335, 180, 77, 60, 14 + PUSHBUTTON "&Göz At...", 1465, 244, 77, 60, 14 END 173 DIALOGEX 6, 18, 230, 215 STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE | WS_CAPTION -CAPTION "Dialing" +CAPTION "Çevirme" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Dialing policy", 1344, 9, 4, 213, 53, WS_GROUP - LTEXT "&Number of redial attempts:", 1349, 16, 22, 140, 8, NOT WS_GROUP + GROUPBOX "Çevirme İlkesi", 1344, 9, 4, 213, 53, WS_GROUP + LTEXT "&Çevirme Girişimleri Sayısı:", 1349, 16, 22, 140, 8, NOT WS_GROUP EDITTEXT 1340, 158, 19, 56, 14, ES_AUTOHSCROLL - LTEXT "&Seconds between redial attempts:", 1351, 16, 38, 140, 8, NOT WS_GROUP + LTEXT "Çe&virme Girişimleri Arasındaki Sâniyeler:", 1351, 16, 38, 140, 8, NOT WS_GROUP EDITTEXT 1342, 158, 36, 56, 14, ES_AUTOHSCROLL - GROUPBOX "Connection type", 1343, 9, 63, 213, 56, WS_GROUP - LTEXT "Idl&e seconds before hanging up:", 1350, 28, 88, 124, 8, NOT WS_GROUP - AUTORADIOBUTTON "&Demand dial connection", 1347, 16, 78, 135, 10, WS_GROUP - AUTORADIOBUTTON "&Persistent connection", 1348, 16, 103, 199, 10, NOT WS_TABSTOP, WS_EX_TRANSPARENT + GROUPBOX "Bağantı Türü", 1343, 9, 63, 213, 56, WS_GROUP + LTEXT "&Ertelemeden Önceki Boşta Kalma Sâniyeleri:", 1350, 28, 88, 124, 8, NOT WS_GROUP + AUTORADIOBUTTON "&İsteğe Bağlı Arama Bağlantısı", 1347, 16, 78, 135, 10, WS_GROUP + AUTORADIOBUTTON "&Kalıcı Bağlantı", 1348, 16, 103, 199, 10, NOT WS_TABSTOP, WS_EX_TRANSPARENT EDITTEXT 1341, 159, 85, 56, 14, ES_AUTOHSCROLL - PUSHBUTTON "&Callback...", 1345, 150, 125, 70, 14, WS_GROUP - PUSHBUTTON "&Multiple Lines...", 1346, 74, 125, 70, 14 + PUSHBUTTON "&Geri Arama...", 1345, 150, 125, 70, 14, WS_GROUP + PUSHBUTTON "Ç&oklu Geçekler...", 1346, 74, 125, 70, 14 END 174 DIALOGEX 0, 0, 215, 226 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Router" +CAPTION "Yönlendirici" FONT 8, "MS Shell Dlg" BEGIN CTEXT "NYI...need spec from KCrocker", -1, 57, 86, 106, 28 @@ -789,74 +789,74 @@ END STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Completing the demand dial interface wizard.", 1352, 122, 5, 192, 32 - LTEXT "To create this interface and enable it on the router, click Finish.", 1354, 122, 41, 192, 26, NOT WS_GROUP - LTEXT "To edit this interface in the Routing and RemoteAccess Manager, select it in Routing Interfaces and press Properties.", 1355, 122, 68, 190, 39, NOT WS_GROUP + LTEXT "İsteğe Bağlı Çevirme Arayüzü Yardımcısının Bitirilmesi.", 1352, 122, 5, 192, 32 + LTEXT "Yönlendiricide bu arayüzü oluşturmak ve etkinleştirmek için Bitir'e tıklayınız.", 1354, 122, 41, 192, 26, NOT WS_GROUP + LTEXT "Yönlendirme ve Uzaktan Erişim Yöneticisi'nde bu arayüzü düzenlemek için Yönlendirme Arayüzlerinde onu seçiniz ve Husûsiyetler'e tıklayınız.", 1355, 122, 68, 190, 39, NOT WS_GROUP END 179 DIALOGEX 6, 18, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Select the &modem or adapter this interface will use.", 1356, 7, 4, 306, 11 + LTEXT "&Bu arayüzün kullanacağı çevirgeyi ya da bağdaştırıcıyı seçiniz.", 1356, 7, 4, 306, 11 CONTROL "", 1355, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C415, 6, 15, 305, 80 - LTEXT "The list shows devices set up for routing.", 1357, 15, 98, 288, 37, NOT WS_GROUP + LTEXT "Bu dizelge yönlendirme için ayarlanmış aygıtları gösterir.", 1357, 15, 98, 288, 37, NOT WS_GROUP END 180 DIALOGEX 6, 18, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Enter the phone number of the dial-up server or router you are calling. Alternate phone numbers, if any, are dialed automatically if the primary number cannot be reached.", 1360, 7, 4, 305, 42 - LTEXT "&Phone number or address:", 1361, 7, 50, 275, 8, NOT WS_GROUP + LTEXT "Aradığınız çevirme sunucusunun ya da yönlendiricinin telefon numarasını giriniz. Başka telefon numaraları eğer varsa birinci numaraya erişilemezse kendiliğinden çevrilir.", 1360, 7, 4, 305, 42 + LTEXT "&Telefon Numarası ya da Adres:", 1361, 7, 50, 275, 8, NOT WS_GROUP EDITTEXT 1358, 7, 62, 304, 14, ES_AUTOHSCROLL - PUSHBUTTON "Alternates...", 1359, 250, 80, 60, 14 + PUSHBUTTON "&Başkaları...", 1359, 250, 80, 60, 14 END 181 DIALOGEX 6, 18, 230, 215 STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE | WS_CAPTION -CAPTION "Security" +CAPTION "Güvenlik" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Authentication and encryption policy", 1367, 6, 8, 216, 103, WS_GROUP - AUTORADIOBUTTON "A&ccept any authentication including clear text", 1370, 16, 20, 195, 10, BS_TOP | BS_MULTILINE - AUTORADIOBUTTON "Acc&ept only encrypted authentication", 1373, 16, 36, 195, 10, BS_TOP | BS_MULTILINE - AUTORADIOBUTTON "Accept &only MS encrypted authentication", 1374, 16, 52, 195, 10, BS_TOP | BS_MULTILINE - AUTOCHECKBOX "&Require data encryption", 1363, 27, 65, 184, 10, BS_TOP | BS_MULTILINE | WS_GROUP - AUTOCHECKBOX "Require &strong data encryption", 1364, 41, 80, 172, 10, BS_TOP | BS_MULTILINE - AUTOCHECKBOX "Use t&wo-way authentication", 1362, 17, 95, 194, 10, BS_TOP | BS_MULTILINE - PUSHBUTTON "&Unsave Password", 1369, 59, 117, 80, 14, WS_GROUP - PUSHBUTTON "Ad&vanced...", 1368, 142, 117, 80, 14, NOT WS_VISIBLE | WS_DISABLED - AUTOCHECKBOX "&Detect file and print sharing before dialing", 1365, 7, 198, 218, 10, BS_TOP | BS_MULTILINE | NOT WS_VISIBLE | WS_DISABLED + GROUPBOX "Yetkilendirme ve Şifreleme İlkesi", 1367, 6, 8, 216, 103, WS_GROUP + AUTORADIOBUTTON "&Boş Metin İçeren Tüm Kimlik Doğrulamalarını Kabul Et", 1370, 16, 20, 195, 10, BS_TOP | BS_MULTILINE + AUTORADIOBUTTON "&Yalnızca Şifreli Kimlik Doğrulamasını Kabul Et", 1373, 16, 36, 195, 10, BS_TOP | BS_MULTILINE + AUTORADIOBUTTON "Y&alnızca MS Şifreli Kimlik Doğrulamasını Kabul Et", 1374, 16, 52, 195, 10, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Veri Sıkıştırmasını Gerektir", 1363, 27, 65, 184, 10, BS_TOP | BS_MULTILINE | WS_GROUP + AUTOCHECKBOX "&Güçlü Veri Sıkıştırmasını Gerektir", 1364, 41, 80, 172, 10, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&İki Yönlü Kimlik Doğrulamasını Kullan", 1362, 17, 95, 194, 10, BS_TOP | BS_MULTILINE + PUSHBUTTON "&Şifreyi Kaydetme", 1369, 59, 117, 80, 14, WS_GROUP + PUSHBUTTON "G&elişmiş...", 1368, 142, 117, 80, 14, NOT WS_VISIBLE | WS_DISABLED + AUTOCHECKBOX "&Çevirmeden Önce Kütük ve Yazdırma Paylaşımını Algıla", 1365, 7, 198, 218, 10, BS_TOP | BS_MULTILINE | NOT WS_VISIBLE | WS_DISABLED END 182 DIALOGEX 6, 18, 248, 148 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Security" +CAPTION "Güvenlik" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Authentication and encryption policy", 1367, 7, 8, 200, 98, WS_GROUP - AUTORADIOBUTTON "Accept any authentication including &clear text", 1370, 14, 24, 183, 10 - AUTORADIOBUTTON "Accept only &encrypted authentication", 1373, 14, 39, 183, 10 - AUTORADIOBUTTON "Accept only &MS encrypted authentication", 1374, 14, 53, 184, 10 - AUTOCHECKBOX "Require &data encryption", 1363, 33, 67, 165, 10, WS_GROUP - AUTOCHECKBOX "Require &strong data encryption", 1364, 48, 79, 152, 10 - AUTOCHECKBOX "&Use current username and password ", 1366, 31, 91, 165, 10 - PUSHBUTTON "Unsave &password", 1369, 6, 114, 100, 14, WS_GROUP - PUSHBUTTON "&Advanced...", 1368, 109, 114, 60, 14, NOT WS_VISIBLE | WS_DISABLED - AUTOCHECKBOX "Detect &file and print sharing before dialing", 1365, 14, 134, 193, 10, NOT WS_VISIBLE | WS_DISABLED + GROUPBOX "Yetkilendirme ve Şifreleme İlkesi", 1367, 7, 8, 200, 98, WS_GROUP + AUTORADIOBUTTON "&Boş Metin İçeren Tüm Kimlik Doğrulamalarını Kabul Et", 1370, 14, 24, 183, 10 + AUTORADIOBUTTON "&Yalnızca Şifreli Kimlik Doğrulamalarını Kabul Et", 1373, 14, 39, 183, 10 + AUTORADIOBUTTON "Y&alnızca MS Şifreli Kimlik Doğrulamalarını Kabul Et", 1374, 14, 53, 184, 10 + AUTOCHECKBOX "&Veri Sıkıştırmasını Gerektir", 1363, 33, 67, 165, 10, WS_GROUP + AUTOCHECKBOX "&Güçlü Veri Sıkıştırmasını Gerektir", 1364, 48, 79, 152, 10 + AUTOCHECKBOX "Ş&imdiki Kulanıcı Adını ve Şifreyi Kullan", 1366, 31, 91, 165, 10 + PUSHBUTTON "&Şifreyi Kaydetme", 1369, 6, 114, 100, 14, WS_GROUP + PUSHBUTTON "G&elişmiş...", 1368, 109, 114, 60, 14, NOT WS_VISIBLE | WS_DISABLED + AUTOCHECKBOX "&Çevirmeden Önce Kütük ve Yazdırma Paylaşımını Algıla", 1365, 14, 134, 193, 10, NOT WS_VISIBLE | WS_DISABLED END 183 DIALOGEX 6, 18, 317, 144 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Check all that apply:", 1388, 7, 4, 296, 9 - AUTOCHECKBOX "Route &IP packets on this interface.", 1386, 20, 19, 285, 11, BS_LEFT | BS_TOP | BS_MULTILINE - AUTOCHECKBOX "Route IP&X packets on this interface.", 1387, 20, 35, 287, 11, BS_LEFT | BS_TOP | BS_MULTILINE - AUTOCHECKBOX "&Add a user account so a remote router can dial in.", 1382, 20, 52, 287, 11, BS_LEFT | BS_TOP | BS_MULTILINE - AUTOCHECKBOX "Send a &plain-text password if that is the only way to connect.", 1385, 20, 70, 287, 11, BS_LEFT | BS_TOP | BS_MULTILINE - AUTOCHECKBOX "&Use scripting to complete the connection with the remote router.", 1384, 20, 87, 289, 22, BS_LEFT | BS_TOP | BS_MULTILINE + LTEXT "Uygulanacakların Tümünü Denetle:", 1388, 7, 4, 296, 9 + AUTOCHECKBOX "&Bu Arayüzdeki IP Paketleri Yolu", 1386, 20, 19, 285, 11, BS_LEFT | BS_TOP | BS_MULTILINE + AUTOCHECKBOX "B&u Arayüzdeki IPX Paketleri Yolu", 1387, 20, 35, 287, 11, BS_LEFT | BS_TOP | BS_MULTILINE + AUTOCHECKBOX "B&ir Kullanıcı Hesâbı Ekle, Böylece Bir Uzak Yönlendirici İçeri Arayabilir", 1382, 20, 52, 287, 11, BS_LEFT | BS_TOP | BS_MULTILINE + AUTOCHECKBOX "B&ağlanmak İçin Tek Yolsa Bir Düz Metin Şifresi Gönder", 1385, 20, 70, 287, 11, BS_LEFT | BS_TOP | BS_MULTILINE + AUTOCHECKBOX "U&zak Yönlendiriciyle Bağlantıyı Bitirmek İçin Betik Kütüğü Kullan", 1384, 20, 87, 289, 22, BS_LEFT | BS_TOP | BS_MULTILINE END 184 DIALOGEX 0, 0, 317, 143 @@ -867,202 +867,202 @@ END 186 DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "New Connection Wizard" +CAPTION "Yeni Bağlantı Yardımcısı" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "A connection that is created for your use only is saved in your user account and is not available unless you are logged on.", -1, 7, 4, 306, 23 - LTEXT "Create this connection for:", -1, 14, 27, 288, 12 - AUTORADIOBUTTON "&Anyone's use", 1400, 26, 40, 265, 10, BS_TOP | BS_MULTILINE | NOT WS_TABSTOP - AUTORADIOBUTTON "&My use only", 1401, 26, 55, 265, 10, BS_TOP | BS_MULTILINE | NOT WS_TABSTOP + LTEXT "Yalnızca sizin kullanımınıza oluşturulan bir bağlantı kullanıcı hesâbınıza kaydedilir ve siz oturumda olmadıkça kullanılamaz.", -1, 7, 4, 306, 23 + LTEXT "Bu Bağlantıyı Şu İçin Oluştur:", -1, 14, 27, 288, 12 + AUTORADIOBUTTON "&Rastgele Birinin Kullanımı", 1400, 26, 40, 265, 10, BS_TOP | BS_MULTILINE | NOT WS_TABSTOP + AUTORADIOBUTTON "&Yalnızca Benim Kullanımım", 1401, 26, 55, 265, 10, BS_TOP | BS_MULTILINE | NOT WS_TABSTOP END 498 DIALOGEX 12, 16, 215, 126 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "ReactOS was unable to connect to the network using the user name and password you provided. Please re-enter the user name and password.", 1396, 7, 6, 206, 36 - LTEXT "&User name:", 1399, 8, 51, 49, 8 + LTEXT "ReactOS, sağladığınız kullanıcı adını ve şifreyi kullanan ağa bağlanamadı. Lütfen kullanıcı adını ve şifreyi yeniden giriniz.", 1396, 7, 6, 206, 36 + LTEXT "&Kullanıcı Adı:", 1399, 8, 51, 49, 8 EDITTEXT 1394, 66, 46, 143, 14, ES_AUTOHSCROLL - LTEXT "&Password:", 1397, 8, 70, 49, 8, NOT WS_GROUP + LTEXT "&Şifre:", 1397, 8, 70, 49, 8, NOT WS_GROUP EDITTEXT 1393, 66, 64, 143, 14, ES_PASSWORD | ES_AUTOHSCROLL - AUTOCHECKBOX "&Save password", 1391, 66, 84, 143, 10 + AUTOCHECKBOX "Ş&ifreyi Kaydet", 1391, 66, 84, 143, 10 CONTROL "", 1398, "STATIC", SS_ETCHEDHORZ | WS_GROUP, 7, 98, 200, 1 - DEFPUSHBUTTON "OK", 1, 81, 104, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 145, 104, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 81, 104, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 145, 104, 60, 14 END 500 DIALOGEX 12, 16, 215, 173 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "ReactOS was unable to connect to the network using the user name and password you provided. Please re-enter the user name and password.", 1396, 7, 6, 209, 26 - LTEXT "&User name:", 1399, 7, 72, 44, 8 + LTEXT "ReactOS, sağladığınız kullanıcı adını ve şifreyi kullanan ağa bağlanamadı. Lütfen kullanıcı adını ve şifreyi yeniden giriniz.", 1396, 7, 6, 209, 26 + LTEXT "&Kullanıcı Adı:", 1399, 7, 72, 44, 8 EDITTEXT 1394, 97, 69, 115, 14, ES_AUTOHSCROLL - LTEXT "&Password:", 1397, 7, 90, 45, 8, NOT WS_GROUP + LTEXT "&Şifre:", 1397, 7, 90, 45, 8, NOT WS_GROUP EDITTEXT 1393, 97, 87, 115, 14, ES_PASSWORD | ES_AUTOHSCROLL - LTEXT "&Domain:", 1395, 7, 108, 53, 8, NOT WS_GROUP + LTEXT "&Etki Alanı:", 1395, 7, 108, 53, 8, NOT WS_GROUP EDITTEXT 1392, 97, 105, 115, 14, ES_UPPERCASE | ES_AUTOHSCROLL - AUTOCHECKBOX "&Save user name and password", 1391, 85, 125, 123, 10, BS_TOP | BS_MULTILINE - DEFPUSHBUTTON "OK", 1, 87, 146, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 151, 146, 60, 14 + AUTOCHECKBOX "K&ullanıcı Adını ve Şifreyi Kaydet", 1391, 85, 125, 123, 10, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "Tamam", 1, 87, 146, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 151, 146, 60, 14 CONTROL "", 1398, "STATIC", SS_ETCHEDHORZ | WS_GROUP, 7, 140, 205, 1 - LTEXT "You can enter a domain name or leave the domain field empty.\n(Domain names are not required for connections to the Internet)", -1, 8, 38, 209, 26 + LTEXT "Bir etki alanı girebilirsiniz ya da etki alanı alanını boş bırakabilirsiniz. \n(Etki alanı adları Umûmî Ağ'a bağlantılar için gerekli değildir.)", -1, 8, 38, 209, 26 END 502 DIALOGEX 20, 60, 215, 73 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "PPP Settings" +CAPTION "PPP Ayarları" FONT 8, "MS Shell Dlg" BEGIN - AUTOCHECKBOX "&Enable LCP extensions", 1423, 9, 7, 200, 10, BS_TOP | BS_MULTILINE - AUTOCHECKBOX "E&nable software compression", 1424, 9, 22, 201, 10, BS_TOP | BS_MULTILINE - AUTOCHECKBOX "Negotiate &multi-link for single link connections", 1557, 9, 37, 202, 10, BS_TOP | BS_MULTILINE - DEFPUSHBUTTON "OK", 1, 82, 53, 60, 14 - PUSHBUTTON "Cancel", 2, 148, 53, 60, 14 + AUTOCHECKBOX "&LCP Eklentileri Etkinleştir", 1423, 9, 7, 200, 10, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Yazılım Sıkıştırmasını Etkinleştir", 1424, 9, 22, 201, 10, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Tek Geçekli Bağlantılar İçin Çok Geçekliyle Anlaş", 1557, 9, 37, 202, 10, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "Tamam", 1, 82, 53, 60, 14 + PUSHBUTTON "İptal", 2, 148, 53, 60, 14 END 509 DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "New Connection Wizard" +CAPTION "Yeni Bağlantı Yardımcısı" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Choose the role you want for this computer:", -1, 10, 5, 275, 9 - AUTORADIOBUTTON "&Host", 1483, 31, 20, 265, 10, BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "&Guest", 1484, 31, 44, 265, 10, BS_TOP | BS_MULTILINE - LTEXT "This computer has the information you want to access.", -1, 43, 31, 253, 13, NOT WS_GROUP | WS_TABSTOP - LTEXT "This computer is used to access information on the host computer.", -1, 43, 56, 253, 23, NOT WS_GROUP + LTEXT "Bu bilgisayar için istediğiniz görevi seçiniz:", -1, 10, 5, 275, 9 + AUTORADIOBUTTON "&Anabilgisayar", 1483, 31, 20, 265, 10, BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "&Konuk", 1484, 31, 44, 265, 10, BS_TOP | BS_MULTILINE + LTEXT "Bu bilgisayarın erişmek istediğiniz bilgisi var.", -1, 43, 31, 253, 13, NOT WS_GROUP | WS_TABSTOP + LTEXT "Bu bilgisayar anabilgisayarda bilgi erişimi için kullanılır.", -1, 43, 56, 253, 23, NOT WS_GROUP END 511 DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Select a device:", -1, 8, 5, 261, 8 + LTEXT "&Bir Aygıt Seçiniz:", -1, 8, 5, 261, 8 COMBOBOX 1485, 9, 18, 302, 62, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | NOT WS_TABSTOP END 528 DIALOGEX 0, 0, 227, 215 STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION -CAPTION "Connections" +CAPTION "Bağlantılar" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Logon privileges", 1582, 8, 10, 213, 63 - LTEXT "Non-administrators may be allowed to create or modify connections before logging on.", 1581, 16, 21, 194, 30 - AUTOCHECKBOX "Allo&w creating and modifying connections before logon", 1497, 16, 56, 195, 10, BS_TOP | BS_MULTILINE + GROUPBOX "Oturum Açma Ayrıcalıkları", 1582, 8, 10, 213, 63 + LTEXT "Yönetici olmayanlara oturum açmadan önce bağlantılar oluşturmak ve değiştirmek için izin verilmiş olabilir.", 1581, 16, 21, 194, 30 + AUTOCHECKBOX "&Oturum Açamdan Önce Bağlantılar Oluşturmaya ve Değiştirmeye İzin Ver", 1497, 16, 56, 195, 10, BS_TOP | BS_MULTILINE END 532 DIALOGEX 0, 0, 263, 263 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Router Callback" +CAPTION "Yönlendirici Geri Araması" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "When you dial into a router, it may offer to call you back to reduce your phone charges or to increase security. Specify whether you want callback or not.", 1043, 7, 5, 253, 24 - AUTORADIOBUTTON "&No callback", 1501, 9, 36, 252, 10, BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "Al&ways call me back at the number(s) below:", 1502, 9, 48, 252, 10, BS_TOP | BS_MULTILINE, WS_EX_TRANSPARENT + LTEXT "Bir yönlendiriciye çevirdiğinizde telefon yüklemelerinizi azaltmak veyâ güvenliği arttırmak için sizi geri aramayı sunabilir. Geri arama isteyip istemediğinizi belirtiniz.", 1043, 7, 5, 253, 24 + AUTORADIOBUTTON "&Geri Arama Yok", 1501, 9, 36, 252, 10, BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "&Beni Tüm Zamanlarda Aşağıdaki Numaralardan Geri Ara:", 1502, 9, 48, 252, 10, BS_TOP | BS_MULTILINE, WS_EX_TRANSPARENT CONTROL "", 1503, "SYSLISTVIEW32", WS_BORDER | WS_GROUP | WS_TABSTOP | 0x00008401, 15, 63, 240, 143 - PUSHBUTTON "&Edit...", 1504, 131, 213, 60, 14 - PUSHBUTTON "&Delete", 1505, 194, 213, 60, 14 + PUSHBUTTON "&Düzenle...", 1504, 131, 213, 60, 14 + PUSHBUTTON "&Sil", 1505, 194, 213, 60, 14 CONTROL "", -1, "STATIC", SS_ETCHEDHORZ, 7, 233, 249, 1 - DEFPUSHBUTTON "OK", 1, 132, 242, 60, 14 - PUSHBUTTON "Cancel", 2, 196, 242, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 132, 242, 60, 14 + PUSHBUTTON "İptal", 2, 196, 242, 60, 14 END 534 DIALOGEX 0, 0, 230, 215 STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION -CAPTION "Options" +CAPTION "Seçenekler" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Connection type", 1289, 7, 7, 215, 55 - AUTORADIOBUTTON "&Demand dial", 1506, 16, 20, 199, 9, BS_TOP | BS_MULTILINE | WS_GROUP | NOT WS_TABSTOP - LTEXT "Idle ti&me before hanging up:", 1299, 27, 33, 99, 8, NOT WS_GROUP + GROUPBOX "Bağlantı Türü", 1289, 7, 7, 215, 55 + AUTORADIOBUTTON "&Çevirme İsteği", 1506, 16, 20, 199, 9, BS_TOP | BS_MULTILINE | WS_GROUP | NOT WS_TABSTOP + LTEXT "E&rtelemeden Önce Boşta Kalma Süresi:", 1299, 27, 33, 99, 8, NOT WS_GROUP COMBOBOX 1291, 144, 30, 70, 108, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - AUTORADIOBUTTON "&Persistent connection", 1507, 16, 47, 197, 9, BS_TOP | BS_MULTILINE | NOT WS_TABSTOP - GROUPBOX "Dialing policy", 1290, 7, 66, 215, 48 - LTEXT "&Redial attempts:", 1300, 14, 79, 123, 8 + AUTORADIOBUTTON "&Sürekli Bağlantı", 1507, 16, 47, 197, 9, BS_TOP | BS_MULTILINE | NOT WS_TABSTOP + GROUPBOX "Çevirme İlkesi", 1290, 7, 66, 215, 48 + LTEXT "&Yeniden Çevirme Girişimleri:", 1300, 14, 79, 123, 8 EDITTEXT 1287, 143, 76, 70, 14, ES_AUTOHSCROLL | ES_NUMBER - LTEXT "A&verage redial intervals:", 1301, 14, 96, 123, 8 + LTEXT "Y&eniden Çevirme Aralıklarının Ortalaması:", 1301, 14, 96, 123, 8 COMBOBOX 1292, 143, 94, 70, 123, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - GROUPBOX "Multiple devices", 1288, 7, 116, 215, 35 + GROUPBOX "Çoklu Aygıtlar", 1288, 7, 116, 215, 35 COMBOBOX 1551, 16, 130, 128, 41, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - PUSHBUTTON "C&onfigure...", 1293, 150, 129, 65, 14 - PUSHBUTTON "Call&back", 1302, 8, 195, 60, 14 + PUSHBUTTON "Y&apılandır...", 1293, 150, 129, 65, 14 + PUSHBUTTON "&Geri Arama", 1302, 8, 195, 60, 14 PUSHBUTTON "&X.25", 1295, 73, 195, 50, 14 END 539 DIALOGEX 0, 0, 265, 110 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 14, 64, 84, 8 + LTEXT "&Kullanıcı Adı:", 1413, 14, 64, 84, 8 EDITTEXT 1104, 102, 62, 154, 14, ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 9, 82, 247, 1 - DEFPUSHBUTTON "&Dial", 1590, 8, 89, 60, 14 - PUSHBUTTON "Cancel", 1591, 71, 89, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 133, 89, 60, 14 - PUSHBUTTON "&Help", 1592, 195, 89, 60, 14 + DEFPUSHBUTTON "&Çevir", 1590, 8, 89, 60, 14 + PUSHBUTTON "İptal", 1591, 71, 89, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 133, 89, 60, 14 + PUSHBUTTON "&Yardım", 1592, 195, 89, 60, 14 END 540 DIALOGEX 0, 0, 265, 133 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 10, 64, 90, 8 + LTEXT "&Kullanıcı Adı:", 1413, 10, 64, 90, 8 EDITTEXT 1104, 105, 60, 154, 14, ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 7, 80, 252, 1 - LTEXT "D&ial:", 1412, 10, 91, 92, 10 + LTEXT "&Çevir:", 1412, 10, 91, 92, 10 COMBOBOX 1416, 105, 88, 154, 112, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | NOT WS_TABSTOP CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 7, 107, 251, 1 - DEFPUSHBUTTON "&Dial", 1590, 8, 113, 60, 14 - PUSHBUTTON "Cancel", 1591, 71, 113, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 134, 113, 60, 14 - PUSHBUTTON "&Help", 1592, 197, 113, 60, 14 + DEFPUSHBUTTON "Ç&evir", 1590, 8, 113, 60, 14 + PUSHBUTTON "İptal", 1591, 71, 113, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 134, 113, 60, 14 + PUSHBUTTON "&Yardım", 1592, 197, 113, 60, 14 END 541 DIALOGEX 0, 0, 265, 157 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 10, 67, 87, 8 + LTEXT "&Kulanıcı Adı:", 1413, 10, 67, 87, 8 EDITTEXT 1104, 103, 63, 154, 14, ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 9, 84, 248, 1 - LTEXT "D&ial:", 1412, 11, 96, 48, 8 + LTEXT "&Çevir:", 1412, 11, 96, 48, 8 COMBOBOX 1416, 103, 92, 154, 112, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "Dialing &from:", 1415, 10, 114, 46, 8 + LTEXT "&Şuradan Çevir:", 1415, 10, 114, 46, 8 COMBOBOX 1414, 103, 110, 87, 112, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | NOT WS_TABSTOP - PUSHBUTTON "Dialing &Rules", 1108, 193, 110, 64, 14 + PUSHBUTTON "Ç&evirme Kâideleri", 1108, 193, 110, 64, 14 CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 7, 130, 250, 1 - DEFPUSHBUTTON "&Dial", 1590, 6, 136, 60, 14 - PUSHBUTTON "Cancel", 1591, 69, 136, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 132, 136, 60, 14 - PUSHBUTTON "&Help", 1592, 196, 136, 60, 14 + DEFPUSHBUTTON "Çe&vir", 1590, 6, 136, 60, 14 + PUSHBUTTON "İptal", 1591, 69, 136, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 132, 136, 60, 14 + PUSHBUTTON "&Yardım", 1592, 196, 136, 60, 14 END 544 DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "New Connection Wizard" +CAPTION "Yeni Bağlantı Yardımcısı" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Internet Connection Sharing allows other computers on your local network to access external resources through this connection.", -1, 10, 5, 300, 22 - AUTOCHECKBOX "&Enable Internet Connection Sharing for this connection", 1512, 21, 31, 272, 10 - LTEXT "To dial this connection automatically when a computer on your local network attempts to access external resources, select the following check box.", 1514, 10, 56, 294, 22 - AUTOCHECKBOX "Enab&le on-demand dialing", 1513, 21, 86, 260, 10 + LTEXT "Umûmî Ağ Bağlantısı Paylaşımı, bu bağlantı boyunca dış kaynaklara erişmek için yerli ağınızdaki başka bilgisayarlara izin verir.", -1, 10, 5, 300, 22 + AUTOCHECKBOX "&Bu Bağlantı İçin Umûmî Ağ Bağlantısı Paylaşımı'nı Etkinleştir", 1512, 21, 31, 272, 10 + LTEXT "Yerli ağınızdaki bir bilgisayar dış kaynaklara erişmek için girişimde bulunduğunda bu bağlantıyı kendiliğinden çevirmek için aşağıdaki kutucuğu imleyiniz.", 1514, 10, 56, 294, 22 + AUTOCHECKBOX "&İstek Üzerine Çevirmeyi Etkinleştir", 1513, 21, 86, 260, 10 END 545 DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "New Connection Wizard" +CAPTION "Yeni Bağlantı Yardımcısı" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Shared access allows other computers on your local network to access external resources through this dial-up connection. You can enable shared access for one connection and one local network at a time.", -1, 10, 5, 300, 25 - LTEXT "&Select the local network that will access resources through this connection:", -1, 21, 35, 285, 8 + LTEXT "Paylaşılan erişim, bu çevirmeli bağlantı boyunca dış kaynaklara erişmek için yerli ağınızdaki başka bilgisayarlara izin verir. Paylaşılan erişimi bir bağlantı ve bir yeri ağ için bir kezde etkinleştirebilirsiniz.", -1, 10, 5, 300, 25 + LTEXT "&Bu bağlantı boyunca kaynaklara erişecek yerli ağı seçiniz:", -1, 21, 35, 285, 8 COMBOBOX 1522, 21, 48, 231, 56, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | NOT WS_TABSTOP END @@ -1070,178 +1070,178 @@ END STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "You can configure this connection to use your smart card to log you into the remote network. Select whether to use your smart card with this connection.", -1, 10, 5, 303, 22 - AUTORADIOBUTTON "&Use my smart card ", 1524, 26, 29, 264, 12, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP | NOT WS_TABSTOP - AUTORADIOBUTTON "&Do not use my smart card ", 1525, 26, 44, 261, 16, BS_LEFT | BS_TOP | BS_MULTILINE | NOT WS_TABSTOP + LTEXT "Uzak ağa oturum açmaya akıllı kartınızı kullanmak için bu bağlantıyı yapılandırabilirsiniz. Bu bağlantıyla akıllı kartınızı kullanıp kullanmayacağınızı seçiniz.", -1, 10, 5, 303, 22 + AUTORADIOBUTTON "&Akıllı Kartımı Kullan", 1524, 26, 29, 264, 12, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP | NOT WS_TABSTOP + AUTORADIOBUTTON "&Akıllı Kartımı Kullanma", 1525, 26, 44, 261, 16, BS_LEFT | BS_TOP | BS_MULTILINE | NOT WS_TABSTOP END 547 DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "Demand Dial Interface Wizard" +CAPTION "İsteğe Bağlı Çevirme Arayüzü Yardımcısı" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Welcome to the Demand Dial Interface Wizard.", 1530, 122, 8, 192, 32 - LTEXT "Using this wizard you can create a demand dial interface to connect this router to other routers.", 1531, 122, 43, 192, 37 - LTEXT "Press Next to continue.", 1532, 122, 85, 191, 29 + LTEXT "İsteğe Bağlı Çevirme Arayüzü Yardımcısı'na hoşgeldiniz.", 1530, 122, 8, 192, 32 + LTEXT "Başka yönlendiricilere erişmeye bu yönlendiriciye bağlanmak için bu yardımcıyı kullanarak bir isteğe bağlı çevirme arayüzü oluşturabilirsiniz.", 1531, 122, 43, 192, 37 + LTEXT "Sürdürmek için İleri'ye tıklayınız.", 1532, 122, 85, 191, 29 END 548 DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - AUTORADIOBUTTON "Connect using a &modem, ISDN adapter, or other physical device.", 1531, 21, 17, 290, 15, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP | NOT WS_TABSTOP - AUTORADIOBUTTON "Connect using &virtual private networking (VPN)", 1532, 21, 38, 291, 15, BS_LEFT | BS_TOP | BS_MULTILINE | NOT WS_TABSTOP - AUTORADIOBUTTON "Connect using PPP over Ethernet (PPPoE)", 1688, 21, 58, 290, 12, NOT WS_TABSTOP + AUTORADIOBUTTON "&Bir Modem, Bir ISDN Bağdaştırıcısı ya da Başka Bir Fizîkî Aygıt Kullanarak Bağlan", 1531, 21, 17, 290, 15, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP | NOT WS_TABSTOP + AUTORADIOBUTTON "&Farazî Şahsî Ağ (VPN) Kullanarak Bağlan", 1532, 21, 38, 291, 15, BS_LEFT | BS_TOP | BS_MULTILINE | NOT WS_TABSTOP + AUTORADIOBUTTON "&PPP Boyunca Ethernet (PPPoE) Kullanarak Bağlan", 1688, 21, 58, 290, 12, NOT WS_TABSTOP END 550 DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CHILD | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Enter the name or IP address of the router to which you are connecting.", 1535, 10, 8, 289, 18 - LTEXT "&Host name or IP address (such as reactos.org or 145.52.0.1):", 1537, 21, 35, 285, 8 + LTEXT "Bağlanıyor olduğunuz yönlendiricinin adını ya da IP adresini giriniz.", 1535, 10, 8, 289, 18 + LTEXT "&Anabilgisayar Adı ya da IP Adresi (reactos.org ya da 145.52.0.1 Gibi):", 1537, 21, 35, 285, 8 EDITTEXT 1536, 21, 47, 285, 14, ES_AUTOHSCROLL END 551 DIALOGEX 0, 0, 265, 127 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 12, 62, 89, 8 + LTEXT "&Kullanıcı Adı:", 1413, 12, 62, 89, 8 EDITTEXT 1104, 104, 58, 154, 14, ES_AUTOHSCROLL - LTEXT "Do&main:", 1110, 12, 82, 90, 8 + LTEXT "&Etki Alanı:", 1110, 12, 82, 90, 8 EDITTEXT 1102, 104, 79, 154, 14, ES_UPPERCASE | ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 10, 99, 248, 1 - DEFPUSHBUTTON "&Dial", 1590, 9, 106, 61, 14 - PUSHBUTTON "Cancel", 1591, 72, 106, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 135, 106, 60, 14 - PUSHBUTTON "&Help", 1592, 198, 106, 60, 14 + DEFPUSHBUTTON "&Çevir:", 1590, 9, 106, 61, 14 + PUSHBUTTON "İptal", 1591, 72, 106, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 135, 106, 60, 14 + PUSHBUTTON "&Yardım", 1592, 198, 106, 60, 14 END 552 DIALOGEX 0, 0, 265, 159 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 10, 67, 91, 10 + LTEXT "&Kullanıcı Adı:", 1413, 10, 67, 91, 10 EDITTEXT 1104, 104, 64, 154, 14, ES_AUTOHSCROLL - LTEXT "Do&main:", 1110, 10, 86, 91, 8 + LTEXT "&Etki Alanı:", 1110, 10, 86, 91, 8 EDITTEXT 1102, 104, 83, 154, 14, ES_UPPERCASE | ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 10, 103, 248, 1 - LTEXT "D&ial:", 1412, 10, 115, 91, 8 + LTEXT "&Çevir:", 1412, 10, 115, 91, 8 COMBOBOX 1416, 104, 111, 154, 112, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | NOT WS_TABSTOP CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 10, 132, 248, 1 - DEFPUSHBUTTON "&Dial", 1590, 8, 139, 60, 14 - PUSHBUTTON "Cancel", 1591, 71, 139, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 134, 139, 60, 14 - PUSHBUTTON "&Help", 1592, 198, 139, 60, 14 + DEFPUSHBUTTON "Çe&vir", 1590, 8, 139, 60, 14 + PUSHBUTTON "İptal", 1591, 71, 139, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 134, 139, 60, 14 + PUSHBUTTON "&Yardım", 1592, 198, 139, 60, 14 END 553 DIALOGEX 0, 0, 265, 183 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 10, 68, 92, 10 + LTEXT "&Kullanıcı Adı:", 1413, 10, 68, 92, 10 EDITTEXT 1104, 104, 65, 154, 14, ES_AUTOHSCROLL - LTEXT "Do&main:", 1110, 10, 90, 91, 8 + LTEXT "&Etki Alanı:", 1110, 10, 90, 91, 8 EDITTEXT 1102, 104, 86, 154, 14, ES_UPPERCASE | ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 10, 106, 248, 1 - LTEXT "D&ial:", 1412, 10, 118, 92, 8 + LTEXT "&Çevir:", 1412, 10, 118, 92, 8 COMBOBOX 1416, 104, 114, 154, 112, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "Dialing &from:", 1415, 10, 137, 91, 8 + LTEXT "&Şuradan Çevir:", 1415, 10, 137, 91, 8 COMBOBOX 1414, 104, 134, 87, 112, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | NOT WS_TABSTOP - PUSHBUTTON "Dialing &Rules", 1108, 194, 134, 65, 14 + PUSHBUTTON "Çev&irme Kâideleri", 1108, 194, 134, 65, 14 CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 10, 154, 248, 1 - DEFPUSHBUTTON "&Dial", 1590, 8, 162, 60, 14 - PUSHBUTTON "Cancel", 1591, 71, 162, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 134, 162, 60, 14 - PUSHBUTTON "&Help", 1592, 198, 162, 60, 14 + DEFPUSHBUTTON "Çe&vir", 1590, 8, 162, 60, 14 + PUSHBUTTON "İptal", 1591, 71, 162, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 134, 162, 60, 14 + PUSHBUTTON "&Yardım", 1592, 198, 162, 60, 14 END 554 DIALOGEX 0, 0, 230, 215 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "General" +CAPTION "Umûmî" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Connec&t using:", 1124, 7, 4, 193, 8 + LTEXT "&Şunu Kullanarak Bağlan:", 1124, 7, 4, 193, 8 CONTROL "", 1128, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x00004C0D, 7, 17, 195, 44, WS_EX_CLIENTEDGE - PUSHBUTTON "&Up", 1132, 208, 18, 16, 14, BS_ICON - PUSHBUTTON "&Down", 1131, 208, 36, 16, 14, BS_ICON - AUTOCHECKBOX "A&ll devices call the same numbers", 1119, 7, 65, 131, 21, BS_TOP | BS_MULTILINE - PUSHBUTTON "C&onfigure...", 1130, 140, 66, 60, 14 - GROUPBOX "Sample type", 1125, 7, 87, 213, 56, WS_GROUP - LTEXT "&Phone number:", 1135, 19, 102, 191, 8 + PUSHBUTTON "&Yukarı", 1132, 208, 18, 16, 14, BS_ICON + PUSHBUTTON "&Aşağı", 1131, 208, 36, 16, 14, BS_ICON + AUTOCHECKBOX "&Tüm Aygıtlar Aynı Numaraları Arasın", 1119, 7, 65, 131, 21, BS_TOP | BS_MULTILINE + PUSHBUTTON "Ya&pılandır...", 1130, 140, 66, 60, 14 + GROUPBOX "Örnek Tür", 1125, 7, 87, 213, 56, WS_GROUP + LTEXT "T&elefon Numarası:", 1135, 19, 102, 191, 8 EDITTEXT 1123, 17, 112, 138, 14, ES_AUTOHSCROLL - PUSHBUTTON "Alter&nates", 1129, 161, 112, 50, 14 - AUTOCHECKBOX "Sho&w icon in notification area when connected", 1120, 11, 194, 212, 20, BS_TOP | BS_MULTILINE + PUSHBUTTON "&Başkaları", 1129, 161, 112, 50, 14 + AUTOCHECKBOX "Ba&ğlandığında Bildirim Alanında Simge Göster", 1120, 11, 194, 212, 20, BS_TOP | BS_MULTILINE END 555 DIALOGEX 0, 0, 230, 215 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "General" +CAPTION "Umûmî" FONT 8, "MS Shell Dlg" BEGIN - PUSHBUTTON "C&onfigure...", 1130, 160, 38, 60, 14 - LTEXT "&Phone number:", 1135, 8, 72, 194, 8 + PUSHBUTTON "&Yapılandır...", 1130, 160, 38, 60, 14 + LTEXT "&Telefon Numarası:", 1135, 8, 72, 194, 8 EDITTEXT 1123, 8, 83, 148, 14, ES_AUTOHSCROLL - PUSHBUTTON "Alter&nates", 1129, 160, 83, 60, 14 - AUTOCHECKBOX "Sho&w icon in notification area when connected", 1120, 11, 194, 213, 10, BS_TOP | BS_MULTILINE - LTEXT "Connec&t using:", 1124, 8, 5, 214, 8 + PUSHBUTTON "&Başkaları", 1129, 160, 83, 60, 14 + AUTOCHECKBOX "B&ağlandığında Bildirim Alanında Simge Göster", 1120, 11, 194, 213, 10, BS_TOP | BS_MULTILINE + LTEXT "&Şunu Kullanarak Bağlan:", 1124, 8, 5, 214, 8 CONTROL "", 1127, "SYSLISTVIEW32", WS_DISABLED | WS_BORDER | 0x0000EC0D, 7, 18, 214, 15 END 556 DIALOGEX 0, 0, 220, 165 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Program Settings" +CAPTION "İzlence Ayarları" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Description of program running on your network:", -1, 7, 5, 203, 8 + LTEXT "&Ağınızda Çalışan İzlencenin Tanımı:", -1, 7, 5, 203, 8 EDITTEXT 1565, 7, 17, 206, 14, ES_AUTOHSCROLL - LTEXT "&Internet server port number:", -1, 7, 35, 202, 8 + LTEXT "&Umûmî Ağ Sunucusu Giriş Numarası:", -1, 7, 35, 202, 8 EDITTEXT 1566, 7, 47, 113, 14, ES_AUTOHSCROLL | ES_NUMBER AUTORADIOBUTTON "&TCP", 1548, 128, 49, 30, 10, NOT WS_TABSTOP - AUTORADIOBUTTON "&UDP", 1567, 166, 49, 31, 10, NOT WS_TABSTOP - LTEXT "&Listen for Internet server responses on port or port range:\n(for example: 1024-1209, 1300-1310, 1450)", -1, 7, 70, 207, 22 + AUTORADIOBUTTON "U&DP", 1567, 166, 49, 31, 10, NOT WS_TABSTOP + LTEXT "&Giriş ya da Giriş Aralığı Üzerinde Umûmî Ağ Sunucu Yanıtları İçin Dinle:\n(Örnek: 1024-1209, 1300-1310, 1450)", -1, 7, 70, 207, 22 LTEXT "T&CP:", -1, 7, 100, 28, 8 EDITTEXT 1569, 50, 97, 162, 14, ES_AUTOHSCROLL LTEXT "UD&P:", -1, 7, 121, 30, 8 EDITTEXT 1551, 50, 117, 162, 14, ES_AUTOHSCROLL - DEFPUSHBUTTON "OK", 1, 90, 144, 60, 14 - PUSHBUTTON "Cancel", 2, 154, 144, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 90, 144, 60, 14 + PUSHBUTTON "İptal", 2, 154, 144, 60, 14 END 557 DIALOGEX 0, 0, 217, 164 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Service Settings" +CAPTION "Hizmet Ayarları" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Description of service:", -1, 7, 5, 203, 8 + LTEXT "&Hizmetin Tanımı:", -1, 7, 5, 203, 8 EDITTEXT 1552, 7, 18, 205, 14, ES_AUTOHSCROLL - LTEXT "&Name or IP address (for example 192.168.0.12) of the computer hosting this service on your network:", -1, 7, 37, 208, 16 + LTEXT "&Ağınızdaki Bu Hizmeti Barındırdığı Bilgisayarın Adı ya da IP Adresi (Örnek: 192.168.0.12):", -1, 7, 37, 208, 16 EDITTEXT 1556, 7, 57, 203, 14, ES_AUTOHSCROLL - LTEXT "&Port number where this service resides:", -1, 7, 85, 203, 8 + LTEXT "&Bu Hizmetin Bulunduğu Giriş Numarası:", -1, 7, 85, 203, 8 EDITTEXT 1553, 7, 97, 113, 14, ES_AUTOHSCROLL | ES_NUMBER AUTORADIOBUTTON "&TCP", 1554, 128, 99, 30, 10, NOT WS_TABSTOP AUTORADIOBUTTON "&UDP", 1555, 166, 99, 31, 10, NOT WS_TABSTOP - DEFPUSHBUTTON "OK", 1, 86, 143, 60, 14 - PUSHBUTTON "Cancel", 2, 150, 143, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 86, 143, 60, 14 + PUSHBUTTON "İptal", 2, 150, 143, 60, 14 END 558 DIALOGEX 0, 0, 230, 215 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Programs" +CAPTION "İzlenceler" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "The Internet connection on this computer has been customized to allow the following programs to run properly over your network:", -1, 7, 7, 218, 28 + LTEXT "Bilgisayarınızdaki Umûmî Ağ bağlantısı, ağınız boyunca düzgün çalışmaya aşağıdaki izlencelere izin vermek için husûsileştirilmiştir:", -1, 7, 7, 218, 28 CONTROL "List1", 1558, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000441D, 7, 37, 215, 155, WS_EX_CLIENTEDGE - PUSHBUTTON "A&dd...", 1538, 7, 197, 67, 14 - PUSHBUTTON "Edi&t...", 1559, 80, 197, 67, 14 - PUSHBUTTON "D&elete", 1568, 153, 197, 67, 14 + PUSHBUTTON "&Ekle...", 1538, 7, 197, 67, 14 + PUSHBUTTON "&Düzenle...", 1559, 80, 197, 67, 14 + PUSHBUTTON "&Sil", 1568, 153, 197, 67, 14 END 559 DIALOGEX 0, 0, 230, 215 diff --git a/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc index e44f66723b7..2af48a09940 100644 --- a/dll/win32/shell32/lang/ru-RU.rc +++ b/dll/win32/shell32/lang/ru-RU.rc @@ -1,3 +1,5 @@ +/* Russian language resource file by Kudratov Olimjon (olim98@bk.ru) */ + LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT MENU_001 MENU @@ -65,8 +67,8 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU CAPTION "Обзор" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "OK", 1, 80, 174, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP - PUSHBUTTON "Отмена", 2, 134, 174, 50, 14, WS_GROUP | WS_TABSTOP + DEFPUSHBUTTON "OK", 1, 60, 175, 60, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Отмена", 2, 125, 175, 60, 15, WS_GROUP | WS_TABSTOP LTEXT "", IDC_BROWSE_FOR_FOLDER_TITLE, 4, 4, 180, 12 LTEXT "", IDC_BROWSE_FOR_FOLDER_STATUS, 4, 25, 180, 12 CONTROL "", IDC_BROWSE_FOR_FOLDER_TREEVIEW, "SysTreeView32", TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_TABSTOP, 4, 40, 180, 120 @@ -84,7 +86,7 @@ BEGIN EDITTEXT IDC_BROWSE_FOR_FOLDER_FOLDER_TEXT, 46, 150, 160, 14, WS_BORDER | WS_GROUP | WS_TABSTOP PUSHBUTTON "&Создать папку", IDC_BROWSE_FOR_FOLDER_NEW_FOLDER, 12, 174, 77, 14, WS_GROUP | WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 102, 174, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP - PUSHBUTTON "Отменить", IDCANCEL, 156, 174, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Отмена", IDCANCEL, 156, 174, 50, 14, WS_GROUP | WS_TABSTOP END IDD_YESTOALL_MSGBOX DIALOGEX 200, 100, 280, 90 @@ -102,7 +104,7 @@ END IDD_ABOUT DIALOGEX 0, 0, 275, 198 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "О %s" +CAPTION "О программе %s" FONT 8, "MS Shell Dlg" BEGIN ICON "", IDC_ABOUT_ICON, 7, 55, 21, 20 @@ -141,11 +143,11 @@ FONT 8, "MS Shell Dlg" BEGIN ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE LTEXT "Введите имя программы, папки, документа или ресурс Интернета, и ReactOS откроет их.", 12289, 36, 11, 182, 18 - LTEXT "&Открыть:", 12305, 5, 39, 34, 10 - CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_AUTOHSCROLL | CBS_DROPDOWN, 40, 37, 183, 100 - DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP - PUSHBUTTON "Отмена", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP - PUSHBUTTON "Об&зор...", 12288, 170, 63, 50, 14, WS_TABSTOP + LTEXT "&Открыть:", 12305, 7, 39, 34, 10 + CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_AUTOHSCROLL | CBS_DROPDOWN, 43, 37, 176, 100 + DEFPUSHBUTTON "OK", IDOK, 36, 63, 59, 14, WS_TABSTOP + PUSHBUTTON "Отмена", IDCANCEL, 98, 63, 59, 14, WS_TABSTOP + PUSHBUTTON "Об&зор...", 12288, 160, 63, 59, 14, WS_TABSTOP END IDD_SHORTCUT_PROPERTIES DIALOGEX 0, 0, 235, 215 @@ -184,9 +186,9 @@ BEGIN LTEXT "Установите нужные свойства для этого ярлыка.", -1, 5, 30, 210, 10 CHECKBOX "Запускать с другими учетными данными", 14000, 25, 50, 150, 10 LTEXT "Позволяет использовать этот ярлык для запуска программы от &имени администратора, в то же время продолжая работу от своего имени, что защищает компьютер от несанкционированных действий других программ.", -1, 50, 60, 175, 40 - CHECKBOX "Запус&кать в отдельной области памяти", 14001, 25, 104, 160, 10, WS_DISABLED - PUSHBUTTON "OK", IDOK, 54, 123, 50, 14, WS_VISIBLE - PUSHBUTTON "Отмена", IDCANCEL, 120, 123, 50, 14, WS_VISIBLE + CHECKBOX "Запус&кать в отдельной области памяти", 14001, 25, 104, 145, 10, WS_DISABLED + PUSHBUTTON "OK", IDOK, 63, 124, 50, 15, WS_VISIBLE + PUSHBUTTON "Отмена", IDCANCEL, 120, 124, 50, 15, WS_VISIBLE END IDD_FOLDER_PROPERTIES DIALOGEX 0, 0, 240, 205 @@ -208,12 +210,12 @@ BEGIN LTEXT "Содержит:", 14026, 8, 104, 55, 10 EDITTEXT 14027, 68, 104, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "", -1, 8, 120, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE - LTEXT "Создано:", 14014, 8, 128, 55, 10 + LTEXT "Создан:", 14014, 8, 128, 55, 10 EDITTEXT 14015, 68, 128, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "", -1, 8, 144, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Атрибуты:", 14020, 8, 152, 46, 10 - AUTOCHECKBOX "&Только чтение", 14021, 56, 152, 70, 10 - AUTOCHECKBOX "&Скрытый", 14022, 56, 166, 70, 10 + AUTOCHECKBOX "Только &чтение", 14021, 56, 152, 70, 10 + AUTOCHECKBOX "Скр&ытый", 14022, 56, 166, 70, 10 AUTOCHECKBOX "&Архивный", 14023, 56, 180, 70, 10 PUSHBUTTON "Д&ополнительно...", 14028, 158, 150, 70, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP END @@ -227,7 +229,7 @@ BEGIN EDITTEXT 14001, 70, 9, 158, 14, ES_LEFT | WS_TABSTOP LTEXT "", -1, 8, 29, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Тип файла:", 14004, 8, 35, 50, 10 - CONTROL "файл", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP, 68, 35, 160, 10 + CONTROL "Файл", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP, 68, 35, 160, 10 LTEXT "Приложение:", 14006, 8, 53, 50, 10 ICON "", 14025, 68, 52, 11, 10, NOT WS_VISIBLE PUSHBUTTON "&Изменить...", 14024, 168, 50, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP @@ -251,7 +253,7 @@ BEGIN AUTOCHECKBOX "Только &чтение", 14021, 58, 189, 67, 10 AUTOCHECKBOX "Скр&ытый", 14022, 126, 189, 50, 10 AUTOCHECKBOX "&Архивный", 14023, 181, 189, 49, 10 - PUSHBUTTON "Д&ополнительно...", 14028, 180, 185, 50, 15, WS_TABSTOP + PUSHBUTTON "&Другие...", 14028, 180, 185, 50, 15, WS_TABSTOP END IDD_FILE_VERSION DIALOGEX 0, 0, 235, 215 @@ -312,13 +314,13 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Проверка диска", -1, 5, 5, 230, 60 LTEXT "Проверка тома на наличие ошибок.", -1, 40, 25, 160, 20 - PUSHBUTTON "Выполнить &проверку...", 14000, 116, 45, 112, 15, WS_TABSTOP + PUSHBUTTON "Выполнить &проверку...", 14000, 110, 45, 120, 15, WS_TABSTOP GROUPBOX "Дефрагментация диска", -1, 5, 65, 230, 60 LTEXT "Дефрагментация файлов, хранящихся на этом томе.", -1, 40, 85, 160, 20 - PUSHBUTTON "Выполнить д&ефрагментацию...", 14001, 116, 105, 112, 15, WS_TABSTOP + PUSHBUTTON "Выполнить д&ефрагментацию...", 14001, 110, 105, 120, 15, WS_TABSTOP GROUPBOX "Архивация", -1, 5, 130, 230, 60 LTEXT "Архивация файлов, хранящихся на этом томе.", -1, 40, 150, 160, 20 - PUSHBUTTON "Выполнить &архивацию...", 14002, 116, 170, 112, 15, WS_TABSTOP + PUSHBUTTON "Выполнить &архивацию...", 14002, 110, 170, 120, 15, WS_TABSTOP END IDD_DRIVE_HARDWARE DIALOGEX 0, 0, 240, 230 @@ -328,24 +330,24 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN END -IDD_RUN_AS DIALOGEX 0, 0, 252, 190 +IDD_RUN_AS DIALOGEX 0, 0, 240, 190 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Запуск от другого имени" +CAPTION "Запустить от другого пользователя" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "От имени какого пользователя вы хотите запустить программу?", -1, 10, 19, 230, 20 - CHECKBOX "Текущий пользователь %s", 14000, 10, 42, 210, 10 - LTEXT "Защитить мой компьютер и мои данные от несанкционированной деятельности программ.", -1, 21, 57, 225, 20, WS_DISABLED - CHECKBOX "Данная опция может защитить ваш компьютер и данные от вирусов, но программа может работать неправильно", 14001, 25, 79, 221, 24, BS_MULTILINE | WS_DISABLED - CHECKBOX "Запустить от имени следующего пользователя:", 14002, 10, 110, 187, 10 - LTEXT "Имя пользователя:", -1, 16, 133, 54, 10 - COMBOBOX 14003, 76, 130, 100, 15, CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "...", 14004, 180, 130, 30, 14, WS_TABSTOP - LTEXT "Пароль:", -1, 16, 152, 60, 10 - EDITTEXT 14005, 76, 148, 100, 14, ES_LEFT | WS_BORDER | WS_GROUP - PUSHBUTTON "...", 14006, 180, 148, 30, 14, WS_TABSTOP - PUSHBUTTON "OK", 14007, 59, 170, 60, 14, WS_TABSTOP - PUSHBUTTON "Отмена", 14008, 125, 170, 60, 14, WS_TABSTOP + LTEXT "От имени какого пользователя вы хотите запустить программу?", -1, 10, 20, 220, 20 + CHECKBOX "Текущий пользователь %s", 14000, 10, 45, 150, 10 + LTEXT "Защитить мой компьютер и данные от несанкционированной деятельности программ.", -1, 25, 57, 210, 10, WS_DISABLED /* FIXME Не влезает в рамки */ + CHECKBOX "Данная опция может защитить ваш компьютер и данные от вирусов, но программа может работать неправильно", 14001, 25, 68, 200, 30, WS_DISABLED | BS_MULTILINE + CHECKBOX "Запустить от указанного пользователя:", 14002, 10, 100, 175, 10 + LTEXT "Пользователь:", -1, 20, 118, 54, 10 + COMBOBOX 14003, 75, 115, 100, 15, CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "...", 14004, 180, 115, 30, 14, WS_TABSTOP + LTEXT "Пароль:", -1, 20, 143, 53, 10 + EDITTEXT 14005, 74, 140, 100, 14, ES_LEFT | WS_BORDER | WS_GROUP + PUSHBUTTON "...", 14006, 180, 140, 30, 14, WS_TABSTOP + PUSHBUTTON "OK", 14007, 57, 170, 60, 14, WS_TABSTOP + PUSHBUTTON "Отмена", 14008, 122, 170, 60, 14, WS_TABSTOP END IDD_RECYCLE_BIN_PROPERTIES DIALOGEX 0, 0, 240, 190 @@ -354,12 +356,12 @@ CAPTION "Свойства: Корзина" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN CONTROL "", 14000, "SysListView32", LVS_REPORT | LVS_SHAREIMAGELISTS | WS_BORDER | WS_TABSTOP, 10, 10, 220, 50 - GROUPBOX "Установки для выбранного расположения", -1, 10, 66, 220, 73 - RADIOBUTTON "&Другой размер:", 14001, 17, 80, 80, 10, NOT WS_TABSTOP - EDITTEXT 14002, 100, 78, 65, 14, WS_TABSTOP | ES_NUMBER - LTEXT "&Максимальный размер (МБ):", -1, 17, 95, 102, 10 - RADIOBUTTON "&Уничтожать файлы сразу после удаления, не помещая их в корзину.", 14003, 17, 108, 206, 20, BS_MULTILINE | WS_TABSTOP - AUTOCHECKBOX "&Запрашивать подтверждение на удаление", 14004, 20, 145, 176, 10, WS_TABSTOP + GROUPBOX "Установки для выбранного расположения", -1, 10, 72, 220, 70 + RADIOBUTTON "&Другой размер:", 14001, 20, 90, 80, 10, WS_TABSTOP + EDITTEXT 14002, 106, 87, 50, 14, WS_TABSTOP | ES_NUMBER + LTEXT "&Максимальный размер (МБ):", -1, 20, 105, 100, 10 + RADIOBUTTON "&Уничтожать файлы сразу после удаления, не помещая их в корзину.", 14003, 20, 117, 170, 20, BS_MULTILINE | WS_TABSTOP + AUTOCHECKBOX "&Запрашивать подтверждение на удаление", 14004, 20, 155, 160, 10, WS_TABSTOP END IDD_OPEN_WITH DIALOGEX 0, 0, 264, 256 @@ -388,59 +390,59 @@ BEGIN LTEXT "Файл", 14001, 8, 6, 169, 10 END -IDD_FOLDER_OPTIONS_GENERAL DIALOGEX 0, 0, 264, 238 +IDD_FOLDER_OPTIONS_GENERAL DIALOGEX 0, 0, 264, 256 STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION CAPTION "Общие" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Задачи", -1, 7, 10, 249, 45 - ICON "", 30109, 14, 24, 21, 20, SS_REALSIZECONTROL - AUTORADIOBUTTON "Отобра&жение списка типичных задач в папках", 14001, 40, 24, 185, 10, WS_TABSTOP | WS_GROUP - AUTORADIOBUTTON "Использовать обы&чные папки ReactOS", 14002, 40, 36, 185, 10, WS_TABSTOP | WS_GROUP + ICON "", 30109, 14, 25, 21, 20, SS_REALSIZECONTROL + AUTORADIOBUTTON "Отобра&жение списка типичных задач в папках", 14001, 40, 25, 170, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "Использовать обы&чные папки ReactOS", 14002, 40, 37, 145, 10, WS_TABSTOP | WS_GROUP GROUPBOX "Обзор папок", -1, 7, 60, 249, 45, WS_TABSTOP - ICON "", 30110, 14, 75, 21, 20, SS_REALSIZECONTROL - AUTORADIOBUTTON "&Открывать папки в одном и том же окне", 14004, 40, 75, 185, 10, WS_TABSTOP | WS_GROUP - AUTORADIOBUTTON "О&ткрывать каждую папку в отдельном окне", 14005, 40, 87, 185, 10, WS_TABSTOP | WS_GROUP + ICON "", 30110, 14, 70, 21, 20, SS_REALSIZECONTROL + AUTORADIOBUTTON "&Открывать папки в одном и том же окне", 14004, 40, 70, 150, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "О&ткрывать каждую папку в отдельном окне", 14005, 40, 82, 165, 10, WS_TABSTOP | WS_GROUP GROUPBOX "Щелчки мышью", -1, 7, 110, 249, 60 ICON "", 30111, 14, 120, 21, 20, SS_REALSIZECONTROL - AUTORADIOBUTTON "От&крывать одним щелчком, выделять указателем", 14007, 40, 120, 200, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "От&крывать одним щелчком, выделять указателем", 14007, 40, 120, 185, 10, WS_TABSTOP | WS_GROUP AUTORADIOBUTTON "Подчеркив&ать подписи значков", 14008, 50, 132, 170, 10, WS_TABSTOP | WS_GROUP - AUTORADIOBUTTON "Подчеркивать подписи з&начков при наведении", 14009, 50, 144, 185, 10, WS_TABSTOP | WS_GROUP - AUTORADIOBUTTON "Откр&ывать двойным, а выделять одним щелчком", 14010, 40, 156, 195, 10, WS_TABSTOP | WS_GROUP - PUSHBUTTON "&Восстановить умолчания", 14011, 148, 180, 104, 14, WS_TABSTOP + AUTORADIOBUTTON "Подчеркивать подписи з&начков при наведении", 14009, 50, 144, 175, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "Откр&ывать двойным, а выделять одним щелчком", 14010, 40, 156, 180, 10, WS_TABSTOP | WS_GROUP + PUSHBUTTON "&Восстановить умолчания", 14011, 145, 180, 95, 14, WS_TABSTOP END -IDD_FOLDER_OPTIONS_VIEW DIALOGEX 0, 0, 264, 238 +IDD_FOLDER_OPTIONS_VIEW DIALOGEX 0, 0, 264, 256 STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION CAPTION "Вид" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Представление папок", -1, 7, 10, 249, 60 //ICON - LTEXT "Можно применить вид, выбранный для этой папки, например, ""Таблица"" или ""Плитка"", ко всем папкам.", -1, 60, 24, 180, 20 - PUSHBUTTON "&Применить ко всем папкам", 14001, 60, 50, 100, 14, WS_TABSTOP - PUSHBUTTON "&Сброс для всех папок", 14002, 164, 50, 80, 14, WS_TABSTOP - LTEXT "Дополнительные параметры:", -1, 9, 78, 120, 10 + LTEXT "Можно применить вид, выбранный для этой папки, например, ""Таблица"" или ""Плитка"", ко всем папкам.", -1, 60, 20, 180, 20 + PUSHBUTTON "&Применить к папкам", 14001, 60, 50, 80, 14, WS_TABSTOP + PUSHBUTTON "&Сброс вида папок", 14002, 150, 50, 80, 14, WS_TABSTOP + LTEXT "Дополнительные параметры:", -1, 7, 80, 105, 10 CONTROL "", 14003, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | WS_BORDER | WS_TABSTOP, 7, 90, 249, 120 - PUSHBUTTON "&Восстановить умолчания", 14004, 156, 216, 101, 14, WS_TABSTOP + PUSHBUTTON "&Восстановить умолчания", 14004, 160, 210, 100, 14, WS_TABSTOP END -IDD_FOLDER_OPTIONS_FILETYPES DIALOGEX 0, 0, 264, 238 +IDD_FOLDER_OPTIONS_FILETYPES DIALOGEX 0, 0, 264, 256 STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION CAPTION "Типы файлов" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "&Зарегистрированные типы файлов:", -1, 9, 7, 133, 10 + LTEXT "&Зарегистрированные типы файлов:", -1, 7, 10, 125, 10 CONTROL "", 14000, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | WS_BORDER | WS_TABSTOP, 7, 20, 249, 80 - PUSHBUTTON "&Создать", 14001, 147, 110, 50, 14, WS_TABSTOP - PUSHBUTTON "&Удалить", 14002, 202, 110, 50, 14, WS_TABSTOP + PUSHBUTTON "&Создать", 14001, 120, 110, 50, 14, WS_TABSTOP + PUSHBUTTON "&Удалить", 14002, 180, 110, 50, 14, WS_TABSTOP GROUPBOX "Описание расширения '%s'", 14003, 7, 130, 249, 70 - LTEXT "Открывать в:", -1, 12, 142, 54, 10 + LTEXT "Открывать с:", -1, 12, 140, 40, 10 //ICON - LTEXT "Приложение:", 14005, 100, 142, 54, 10 - PUSHBUTTON "&Изменить...", 14006, 180, 140, 63, 14, WS_TABSTOP - LTEXT "", 14007, 12, 155, 162, 36 - PUSHBUTTON "До&полнительно", 14008, 180, 175, 63, 14, WS_TABSTOP + LTEXT "Приложение", 14005, 100, 140, 45, 10 + PUSHBUTTON "&Изменить...", 14006, 180, 140, 65, 14, WS_TABSTOP + LTEXT "", 14007, 12, 155, 160, 30 + PUSHBUTTON "До&полнительно", 14008, 180, 175, 65, 14, WS_TABSTOP END IDD_CONFIRM_FILE_REPLACE DIALOGEX 0, 0, 282, 143 @@ -519,12 +521,12 @@ CAPTION "Смешанное содержимое" FONT 8, "MS Shell Dlg" BEGIN ICON "", 1000, 5, 7, 21, 20 - LTEXT "ReactOS может всегда выполнять одно и то же действие, когда вы вставляете диск или подключаете устройство с файлами следующего типа:", 1001, 30, 7, 193, 20 + LTEXT "ReactOS может всегда выполнять одно и то же действие, когда вы вставляете диск или подключаете устройство с файлами следующего типа:", 1001, 30, 7, 193, 20 /* FIXME Не влазит в рамки */ ICON "", 1005, 32, 27, 11, 10, SS_REALSIZECONTROL EDITTEXT 1006, 49, 28, 177, 14, ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP LTEXT "Какое действие следует выполнять ReactOS?", 1002, 32, 41, 190, 8 CONTROL "", 1003, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C04D, 32, 55, 188, 112 - AUTOCHECKBOX "Всегда выполнять выбранное действие.", 1004, 32, 171, 190, 10 + AUTOCHECKBOX "Всегда выполнять выбранное действие", 1004, 32, 171, 190, 10 DEFPUSHBUTTON "OK", IDOK, 96, 185, 60, 14 PUSHBUTTON "Отмена", IDCANCEL, 160, 185, 60, 14 END @@ -551,7 +553,7 @@ BEGIN ICON 8240, -1, 6, 6, 21, 20, SS_REALSIZECONTROL | WS_GROUP LTEXT "Выберите желаемое действие.", -1, 39, 7, 167, 10 COMBOBOX 8224, 39, 20, 165, 200, CBS_DROPDOWNLIST | WS_VSCROLL - LTEXT "Сохранить сеанс, обеспечивая работу компьютера в спящем режиме и данными в памяти. При нажатии на любую клавишу или передвижении мыши компьютер возвратится в обычный режим.", 8225, 39, 40, 167, 37 + LTEXT "Сохранить сеанс, обеспечивая работу компьютера в спящем режиме и данными в памяти. При нажатии на любую клавишу или передвижении мыши компьютер возвратится в обычный режим.", 8225, 39, 38, 167, 41 DEFPUSHBUTTON "OK", 1, 7, 82, 60, 14, WS_GROUP PUSHBUTTON "Отмена", IDCANCEL, 75, 82, 60, 14 PUSHBUTTON "&Справка", IDHELP, 144, 82, 60, 14 @@ -578,18 +580,18 @@ BEGIN AUTOCHECKBOX "&Использовать сжатие", 28675, 16, 152, 155, 10 END -IDD_CHECK_DISK DIALOGEX 50, 50, 232, 111 +IDD_CHECK_DISK DIALOGEX 50, 50, 226, 114 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION CAPTION "Проверка диска" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "Запуск", IDOK, 101, 91, 60, 14 - GROUPBOX "Параметры проверки диска", -1, 7, 5, 218, 50 - PUSHBUTTON "Отмена", IDCANCEL, 165, 91, 60, 14 - AUTOCHECKBOX "&Автоматически исправлять системные ошибки", 14000, 16, 19, 178, 10 - AUTOCHECKBOX "&Проверять и восстанавливать поврежденные сектора", 14001, 16, 35, 200, 10 - CONTROL "", 14002, "MSCTLS_PROGRESS32", 16, 7, 60, 218, 8 - LTEXT "", 14003, 7, 75, 218, 10 + DEFPUSHBUTTON "&Запуск", IDOK, 114, 95, 50, 14 + GROUPBOX "Параметры проверки диска", -1, 5, 7, 214, 40 + PUSHBUTTON "Отмена", IDCANCEL, 169, 95, 50, 14 + AUTOCHECKBOX "&Автоматически исправлять системные ошибки", 14000, 11, 18, 206, 10 + AUTOCHECKBOX "&Проверять и восстанавливать поврежденные сектора", 14001, 11, 31, 206, 10 + CONTROL "", 14002, "MSCTLS_PROGRESS32", 16, 5, 54, 214, 10 + LTEXT "", 14003, 9, 69, 204, 22 END IDD_PICK_ICON DIALOGEX 0, 0, 237, 204 @@ -598,7 +600,7 @@ CAPTION "Изменение значка" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN LTEXT "Имя файла:", -1, 7, 14, 208, 10 - PUSHBUTTON "Обзор...",IDC_BUTTON_PATH, 148, 24,67,14 + PUSHBUTTON "Обзор...",IDC_BUTTON_PATH, 148, 24, 67, 14 EDITTEXT IDC_EDIT_PATH, 6, 24, 135, 15, ES_AUTOHSCROLL LTEXT "Значки:", -1, 7, 47, 208, 10 LISTBOX IDC_PICKICON_LIST, 7, 57, 208, 119, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, WS_EX_STATICEDGE @@ -662,7 +664,7 @@ BEGIN IDS_DELETEITEM_CAPTION "Подтверждение удаления файла" IDS_DELETEFOLDER_CAPTION "Подтверждение удаления папки" IDS_DELETEITEM_TEXT "Удалить '%1'?" - IDS_DELETEMULTIPLE_TEXT "Удалить эти объекты (%1?" + IDS_DELETEMULTIPLE_TEXT "Удалить эти объекты %1?" IDS_DELETESELECTED_TEXT "Вы действительно хотите удалить выбранный элементы(ы)?" IDS_TRASHITEM_TEXT "Вы действительно хотите поместить '%1' в Корзину?" IDS_TRASHFOLDER_TEXT "Вы действительно хотите поместить '%1' и все содержащиеся файлы в Корзину?" @@ -690,7 +692,7 @@ BEGIN IDS_PROGRAMS "Главное меню\\Программы" IDS_PERSONAL "Мои документы" IDS_FAVORITES "Избранное" - IDS_STARTUP "Главное меню\\Программы\\Автозагрузка" + IDS_STARTUP "Главное меню\\Программы\\Автозапуск" IDS_RECENT "Недавнее" IDS_SENDTO "Отправить" IDS_STARTMENU "Главное меню" @@ -744,7 +746,7 @@ BEGIN IDS_VIRTUAL_DRIVER "Драйвер виртуального устройства" IDS_BAT_FILE "Пакетный файл ReactOS" IDS_CMD_FILE "Командный скрипт ReactOS" - IDS_COM_FILE "Приложение Dos" + IDS_COM_FILE "Приложение DOS" IDS_CPL_FILE "Апплет панели управления" IDS_CUR_FILE "Курсор" IDS_DLL_FILE "Расширение приложения" @@ -770,9 +772,9 @@ BEGIN IDS_INSTALLNEWFONT "Установить новый шрифт..." IDS_DEFAULT_CLUSTER_SIZE "Выделяемый по умолчанию размер" - IDS_COPY_OF "Copy of" + IDS_COPY_OF "Копия" - IDS_SHLEXEC_NOASSOC "There is no Windows program configured to open this type of file." + IDS_SHLEXEC_NOASSOC "Нет программ для открытия данного типа файла" IDS_FILE_DETAILS "Описание расширения '%s'" IDS_FILE_DETAILSADV "Файлы с расширением '%s' имеют тип '%s'. Для изменения параметров всех файлов '%s', нажмите 'Дополнительно'." diff --git a/dll/win32/shell32/lang/sq-AL.rc b/dll/win32/shell32/lang/sq-AL.rc index 34aa9202526..2011272d756 100644 --- a/dll/win32/shell32/lang/sq-AL.rc +++ b/dll/win32/shell32/lang/sq-AL.rc @@ -201,7 +201,7 @@ BEGIN ICON "", 14000, 10, 3, 32, 32, WS_VISIBLE EDITTEXT 14001, 70, 9, 158, 14, ES_LEFT LTEXT "Tipi i dokumentit:", 14004, 8, 40, 55, 10 - CONTROL "Dosje", 14005, "modifiko", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL, 68, 40, 160, 10 + CONTROL "Dosje", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL, 68, 40, 160, 10 LTEXT "", -1, 8, 31, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Vendndodhje:", 14008, 8, 56, 55, 10 EDITTEXT 14009, 68, 56, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL | NOT WS_TABSTOP @@ -231,7 +231,7 @@ BEGIN EDITTEXT 14001, 70, 9, 158, 14, ES_LEFT | WS_TABSTOP LTEXT "", -1, 8, 29, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Tipi i dokumentit:", 14004, 8, 35, 50, 10 - CONTROL "Dokumenti", 14005, "modifiko", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP, 68, 35, 160, 10 + CONTROL "Dokumenti", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP, 68, 35, 160, 10 LTEXT "Hap me:", 14006, 8, 53, 50, 10 ICON "", 14025, 68, 52, 11, 10, NOT WS_VISIBLE PUSHBUTTON "&Ndrysho...", 14024, 168, 50, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP diff --git a/dll/win32/shlwapi/lang/shlwapi_Ru.rc b/dll/win32/shlwapi/lang/shlwapi_Ru.rc index f1d1bfc1434..14ab9c39dad 100644 --- a/dll/win32/shlwapi/lang/shlwapi_Ru.rc +++ b/dll/win32/shlwapi/lang/shlwapi_Ru.rc @@ -40,7 +40,7 @@ FONT 8, "MS Shell Dlg" LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8 CHECKBOX "Больше не &показывать это сообщение", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP PUSHBUTTON "&OK", IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "О&тменить", IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "О&тмена", IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "&Да", IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "&Нет", IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } diff --git a/dll/win32/syssetup/lang/ru-RU.rc b/dll/win32/syssetup/lang/ru-RU.rc index bd4ef3566b9..fb971d1584d 100644 --- a/dll/win32/syssetup/lang/ru-RU.rc +++ b/dll/win32/syssetup/lang/ru-RU.rc @@ -103,7 +103,7 @@ BEGIN LTEXT "Завершение мастера установки ReactOS", IDC_FINISHTITLE, 115, 8, 195, 24 LTEXT "Вы успешно закончили установку ReactOS.\n\nНажмите ""Готово"" для перезагрузки вашего компьютера.", IDC_STATIC, 115, 40, 195, 100 CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 - LTEXT "Если в CD находится в приводе, нужно извлечь его. Для перезагрузки компьютера нажмите ""Готово"".", IDC_STATIC, 115, 169, 195, 17 + LTEXT "Если CD находится в приводе, нужно извлечь его. Для перезагрузки компьютера нажмите ""Готово"".", IDC_STATIC, 115, 169, 195, 17 END IDD_GPL DIALOGEX 0, 0, 333, 230 diff --git a/dll/win32/wininet/lang/wininet_Ru.rc b/dll/win32/wininet/lang/wininet_Ru.rc index ebaaeaa921b..fbe03f6bbd1 100644 --- a/dll/win32/wininet/lang/wininet_Ru.rc +++ b/dll/win32/wininet/lang/wininet_Ru.rc @@ -25,11 +25,11 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_LANCONNECTION "LAN Connection" - IDS_CERT_CA_INVALID "The certificate is issued by an unknown or untrusted publisher." - IDS_CERT_DATE_INVALID "The date on the certificate is invalid." - IDS_CERT_CN_INVALID "The name on the certificate does not match the site." - IDS_CERT_ERRORS "There is at least one unspecified security problem with this certificate." + IDS_LANCONNECTION "Подключение LAN" + IDS_CERT_CA_INVALID "Данный сертификат выдан неизвестным учреждением безопасности." + IDS_CERT_DATE_INVALID "Данный сертификат недействителен. Проверьте правильность установленного на компьютере времени." + IDS_CERT_CN_INVALID "Просматриваемый сертификат не соответствует названию сайта." + IDS_CERT_ERRORS "Данный сертификат поврежден, и проверить его подлинность невозможно." } IDD_PROXYDLG DIALOG 36, 24, 220, 146 @@ -74,12 +74,12 @@ FONT 8, "MS Shell Dlg" IDD_INVCERTDLG DIALOG 3, 24, 250, 86 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Security Warning" +CAPTION "Предупреждение системы безопасности" FONT 8, "MS Shell Dlg" { - LTEXT "There is a problem with the certificate for this site.", -1, 40, 6, 200, 20 + LTEXT "Вы собираетесь просмотреть веб-сайт, который использует просроченный или еще не действительный сертификат.", -1, 40, 6, 200, 20 LTEXT "", IDC_CERT_ERROR, 40, 26, 200, 20 - LTEXT "Do you want to continue anyway?", -1, 40, 46, 200, 20 - PUSHBUTTON "Yes", IDOK, 40, 66, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON - PUSHBUTTON "No", IDCANCEL, 100, 66, 56, 14, WS_GROUP | WS_TABSTOP + LTEXT "Вы хотите продолжить?", -1, 40, 46, 200, 20 + PUSHBUTTON "Да", IDOK, 40, 66, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON + PUSHBUTTON "Нет", IDCANCEL, 100, 66, 56, 14, WS_GROUP | WS_TABSTOP } diff --git a/dll/win32/winmm/lang/winmm_Ru.rc b/dll/win32/winmm/lang/winmm_Ru.rc index f9029852354..f92c27376f1 100644 --- a/dll/win32/winmm/lang/winmm_Ru.rc +++ b/dll/win32/winmm/lang/winmm_Ru.rc @@ -15,115 +15,116 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +/* UTF-8 */ +#pragma code_page(65001) STRINGTABLE LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT BEGIN -/* Russian strings in CP1251 */ /* MMSYS errors */ -MMSYSERR_NOERROR, " ." -MMSYSERR_ERROR, " ." -MMSYSERR_BADDEVICEID, " , ." -MMSYSERR_NOTENABLED, " ." -MMSYSERR_ALLOCATED, " . , , ." -MMSYSERR_INVALHANDLE, " ." -MMSYSERR_NODRIVER, " .\n" -MMSYSERR_NOMEM, " . ." -MMSYSERR_NOTSUPPORTED, " . Capabilities." -MMSYSERR_BADERRNUM, " ." -MMSYSERR_INVALFLAG, " ." -MMSYSERR_INVALPARAM, " ." +MMSYSERR_NOERROR, "Нет ошибки." +MMSYSERR_ERROR, "Неизвестная ошибка." +MMSYSERR_BADDEVICEID, "Указан код устройства, не используемого в системе." +MMSYSERR_NOTENABLED, "Драйвер не подключен." +MMSYSERR_ALLOCATED, "Указанное устройство уже используется. Подождите, пока оно освободится, и повторите попытку." +MMSYSERR_INVALHANDLE, "Указан неверный дескриптор устройства." +MMSYSERR_NODRIVER, "В системе нет установленного драйвера.\n" +MMSYSERR_NOMEM, "Недостаточно памяти для выполнения задания. Закройте одно или несколько приложений и попробуйте заново." +MMSYSERR_NOTSUPPORTED, "Данная функция не поддерживается. Список поддерживаемых драйвером функций и сообщений можно получить с помощью функции Capabilities." +MMSYSERR_BADERRNUM, "Ошибка с указанным номером в системе не определена." +MMSYSERR_INVALFLAG, "Системной функции передан неверный флажок." +MMSYSERR_INVALPARAM, "Системной функции передан неправильный параметр." /* WAVE errors */ -WAVERR_BADFORMAT, " . Capabilities." -WAVERR_STILLPLAYING, " . ." -WAVERR_UNPREPARED, " . Prepare ." -WAVERR_SYNC, " WAVE_ALLOWSYNC. ." +WAVERR_BADFORMAT, "Указанный формат не поддерживается или его нельзя преобразовать. Список допустимых форматов можно получить с помощью функции Capabilities." +WAVERR_STILLPLAYING, "Во время воспроизведения данных с носителя выполнить эту операцию нельзя. Остановите воспроизведение данных или дождитесь его окончания." +WAVERR_UNPREPARED, "Заголовок звукозаписи не подготовлен. Подготовьте его с помощью функции Prepare и повторите попытку." +WAVERR_SYNC, "Открытие устройства невозможно без флажка WAVE_ALLOWSYNC. Установите этот флажок и повторите попытку." /* MIDI errors */ -MIDIERR_UNPREPARED, " MIDI . Prepare ." -MIDIERR_STILLPLAYING, " . ." -MIDIERR_NOMAP, " MIDI. , , MIDIMAP.CFG ." -MIDIERR_NOTREADY, " . ." -MIDIERR_NODEVICE, " MIDI- . MIDI Mapper." -MIDIERR_INVALIDSETUP, " MIDI . MIDIMAP.CFG ReactOS SYSTEM, ." +MIDIERR_UNPREPARED, "Заголовок MIDI не был подготовлен. Подготовьте его с помощью функции Prepare и повторите попытку." +MIDIERR_STILLPLAYING, "Во время воспроизведения данных с носителя выполнить эту операцию нельзя. Остановите воспроизведение данных или дождитесь его окончания." +MIDIERR_NOMAP, "Не найдена таблица устройств MIDI. Возможно, это ошибка драйвера, или файл MIDIMAP.CFG отсутствует или поврежден." +MIDIERR_NOTREADY, "Порт занят передачей данных на устройство. Подождите окончания передачи данных и повторите попытку." +MIDIERR_NODEVICE, "Текущая настройка соответствия MIDI-устройств ссылается на не установленное устройство. Отредактируйте настройки с помощью MIDI Mapper." +MIDIERR_INVALIDSETUP, "Текущие установки MIDI повреждены. Скопируйте исходный файл MIDIMAP.CFG в директорию ReactOS SYSTEM, а затем повторите снова." /* MCI errors */ -MCIERR_INVALID_DEVICE_ID, " MCI. , MCI." -MCIERR_UNRECOGNIZED_KEYWORD, " ." -MCIERR_UNRECOGNIZED_COMMAND, " ." -MCIERR_HARDWARE, " . , ." -MCIERR_INVALID_DEVICE_NAME, " MCI." -MCIERR_OUT_OF_MEMORY, " . \n , ." -MCIERR_DEVICE_OPEN, " . ." -MCIERR_CANNOT_LOAD_DRIVER, " ." -MCIERR_MISSING_COMMAND_STRING, " ." -MCIERR_PARAM_OVERFLOW, " , . ." -MCIERR_MISSING_STRING_ARGUMENT, " ." -MCIERR_BAD_INTEGER, " ." -MCIERR_PARSER_INTERNAL, " . ." -MCIERR_DRIVER_INTERNAL, " . ." -MCIERR_MISSING_PARAMETER, " ." -MCIERR_UNSUPPORTED_FUNCTION, " MCI ." -MCIERR_FILE_NOT_FOUND, " . ." -MCIERR_DEVICE_NOT_READY, " ." -MCIERR_INTERNAL, " MCI. ReactOS." -MCIERR_DRIVER, " . , ." -MCIERR_CANNOT_USE_ALL, " 'all' ." -MCIERR_MULTIPLE, " . , , ." -MCIERR_EXTENSION_NOT_FOUND, " ." -MCIERR_OUTOFRANGE, " ." -MCIERR_FLAGS_NOT_COMPATIBLE, " ." -MCIERR_FILE_NOT_SAVED, " . , , ." -MCIERR_DEVICE_TYPE_REQUIRED, " . , , ." -MCIERR_DEVICE_LOCKED, " . ." -MCIERR_DUPLICATE_ALIAS, " . ." -MCIERR_BAD_CONSTANT, " ." -MCIERR_MUST_USE_SHAREABLE, " . 'shareable' 'open'." -MCIERR_MISSING_DEVICE_NAME, " , , , . ." -MCIERR_BAD_TIME_FORMAT, " . MCI ." -MCIERR_NO_CLOSING_QUOTE, " . ;-)" -MCIERR_DUPLICATE_FLAGS, " . ." -MCIERR_INVALID_FILE, " MCI. ." -MCIERR_NULL_PARAMETER_BLOCK, "MCI ." -MCIERR_UNNAMED_RESOURCE, " . ." -MCIERR_NEW_REQUIRES_ALIAS, " 'new'." -MCIERR_NOTIFY_ON_AUTO_OPEN, " 'notify' , ." -MCIERR_NO_ELEMENT_ALLOWED, " ." -MCIERR_NONAPPLICABLE_FUNCTION, " . ." -MCIERR_ILLEGAL_FOR_AUTO_OPEN, " , . ." -MCIERR_FILENAME_REQUIRED, " . , 8 , ." -MCIERR_EXTRA_CHARACTERS, " , ." -MCIERR_DEVICE_NOT_INSTALLED, " . ." -MCIERR_GET_CD, " CI. ;-)" -MCIERR_SET_CD, " MCI, ." -MCIERR_SET_DRIVE, " MCI, ." -MCIERR_DEVICE_LENGTH, " 79 ." -MCIERR_DEVICE_ORD_LENGTH, " 69 ." -MCIERR_NO_INTEGER, " ." -MCIERR_WAVE_OUTPUTSINUSE, " wave-, , . wave-, ." -MCIERR_WAVE_SETOUTPUTINUSE, " , .. . , , ." -MCIERR_WAVE_INPUTSINUSE, " , .. . , , ." -MCIERR_WAVE_SETINPUTINUSE, " , .. . , , ." -MCIERR_WAVE_OUTPUTUNSPECIFIED, " ." -MCIERR_WAVE_INPUTUNSPECIFIED, " ." -MCIERR_WAVE_OUTPUTSUNSUITABLE, " . ." -MCIERR_WAVE_SETOUTPUTUNSUITABLE,", , ." -MCIERR_WAVE_INPUTSUNSUITABLE, " . ." -MCIERR_WAVE_SETINPUTUNSUITABLE, ", , ." -MCIERR_NO_WINDOW, " ." -MCIERR_CREATEWINDOW, " ." -MCIERR_FILE_READ, " . , , . " -MCIERR_FILE_WRITE, " . , , ." -MCIERR_SEQ_DIV_INCOMPATIBLE, " ""song pointer"" SMPTE . ." -MCIERR_SEQ_NOMIDIPRESENT, " MIDI. , MIDI." -MCIERR_SEQ_PORT_INUSE, " MIDI . , , ." -MCIERR_SEQ_PORT_MAPNODEVICE, " MIDI Mapper MIDI. MIDI Mapper , ." -MCIERR_SEQ_PORT_MISCERROR, " ." -MCIERR_SEQ_PORT_NONEXISTENT, " MIDI. , MIDI." -MCIERR_SEQ_PORTUNSPECIFIED, " MIDI." -MCIERR_SEQ_TIMER, " . ." +MCIERR_INVALID_DEVICE_ID, "Недопустимый код устройства MCI. Используйте код, возвращенный при открытии устройства MCI." +MCIERR_UNRECOGNIZED_KEYWORD, "Драйвер не может определить указанный параметр команды." +MCIERR_UNRECOGNIZED_COMMAND, "Драйвер не может определить указанную команду." +MCIERR_HARDWARE, "Ошибка мультимедиа устройства. Убедитесь, что устройство работает нормально или свяжитесь с изготовителем устройства." +MCIERR_INVALID_DEVICE_NAME, "Указанное устройство не открыто или не опознано MCI." +MCIERR_OUT_OF_MEMORY, "Не хватает памяти для задачи. \nЗакройте одно или несколько приложений, чтобы освободить память и попробуйте заново." +MCIERR_DEVICE_OPEN, "Название устройства уже используется приложением как псевдоним. Используйте уникальное имя." +MCIERR_CANNOT_LOAD_DRIVER, "Неопределенная ошибка при загрузке указанного драйвера." +MCIERR_MISSING_COMMAND_STRING, "Команда не указана." +MCIERR_PARAM_OVERFLOW, "Возвращаемая строка слишком велика, чтобы поместиться в буфере. Увеличьте размер буфера." +MCIERR_MISSING_STRING_ARGUMENT, "Указанная команда требует строковый параметр." +MCIERR_BAD_INTEGER, "Указанное целое недопустимо для этой команды." +MCIERR_PARSER_INTERNAL, "Драйвер устройства возвратил недопустимый при возвращении тип. Свяжитесь с изготовителем драйвера для получения новой версии драйвера." +MCIERR_DRIVER_INTERNAL, "Ошибка драйвера устройства. Свяжитесь с изготовителем драйвера для получения новой версии драйвера." +MCIERR_MISSING_PARAMETER, "Указанная команда требует параметр." +MCIERR_UNSUPPORTED_FUNCTION, "Используемое вами устройство MCI не поддерживает указанную команду." +MCIERR_FILE_NOT_FOUND, "Невозможно найти указанный файл. Убедитесь в правильности пути и имени файла." +MCIERR_DEVICE_NOT_READY, "Драйвер устройства не готов." +MCIERR_INTERNAL, "Ошибка при инициализации MCI. Попробуйте перезапустить ReactOS." +MCIERR_DRIVER, "Ошибка в драйвере устройства. Драйвер закрыт, сообщение об ошибке недоступно." +MCIERR_CANNOT_USE_ALL, "Невозможно использовать 'all' в качестве имени устройства в указанной команде." +MCIERR_MULTIPLE, "Ошибки в нескольких устройствах. Укажите отдельно каждую команду и устройство, чтобы определить, какие устройства вызывали ошибки." +MCIERR_EXTENSION_NOT_FOUND, "Невозможно определить тип устройства по данному расширению файла." +MCIERR_OUTOFRANGE, "Указанный параметр выходит за допустимые пределы для указанной команды." +MCIERR_FLAGS_NOT_COMPATIBLE, "Указанные параметры нельзя использовать вместе." +MCIERR_FILE_NOT_SAVED, "Невозможно сохранить указанный файл. Убедитесь, что на диске достаточно места, или проверьте сетевое подключение." +MCIERR_DEVICE_TYPE_REQUIRED, "Невозможно найти указанное устройство. Убедитесь, что оно установлено, и что устройство указано правильно." +MCIERR_DEVICE_LOCKED, "Указанное устройство сейчас закрывается. Подождите несколько секунд и попробуйте заново." +MCIERR_DUPLICATE_ALIAS, "Название устройства уже используется приложением как псевдоним. Используйте уникальное имя." +MCIERR_BAD_CONSTANT, "Указанный параметр недопустим для этой команды." +MCIERR_MUST_USE_SHAREABLE, "Драйвер устройства уже используется. Для совместного доступа используйте параметр 'shareable' в каждой команде 'open'." +MCIERR_MISSING_DEVICE_NAME, "Указанная команда требует псевдоним, файл, драйвер, или имя устройства. Укажите его." +MCIERR_BAD_TIME_FORMAT, "Указанное значение в формате времени неверно. Обратитесь к документации MCI для выяснения допустимых форматов." +MCIERR_NO_CLOSING_QUOTE, "Закрывающая кавычка отсутствует в значении параметра. Поставьте ее ;-)" +MCIERR_DUPLICATE_FLAGS, "Параметр или значение указано дважды. Требуется указывать только один раз." +MCIERR_INVALID_FILE, "Указанный файл не может быть проигран на выбранном устройстве MCI. Файл может быть поврежден или имеет некорректный формат." +MCIERR_NULL_PARAMETER_BLOCK, "MCI был передан пустой блок параметров." +MCIERR_UNNAMED_RESOURCE, "Невозможно сохранить неназванный файл. Назовите его." +MCIERR_NEW_REQUIRES_ALIAS, "Вы должны указать псевдоним при использовании параметра 'new'." +MCIERR_NOTIFY_ON_AUTO_OPEN, "Невозможно использовать флаг 'notify' с устройствами, открытыми автоматически." +MCIERR_NO_ELEMENT_ALLOWED, "Невозможно использовать имя файла с указанным устройством." +MCIERR_NONAPPLICABLE_FUNCTION, "Невозможно исполнить команды в указанном порядке. Исправьте последовательность команд и попробуйте заново." +MCIERR_ILLEGAL_FOR_AUTO_OPEN, "Невозможно исполнить команду для устройства, открытого автоматически. Подождите пока устройство не будет закрыто и попробуйте заново." +MCIERR_FILENAME_REQUIRED, "Недопустимое имя файла. Убедитесь, что имя файла не длиннее 8 символов, за ним следует точка и расширение." +MCIERR_EXTRA_CHARACTERS, "Нельзя указывать символы после строки, заключенной в кавычки." +MCIERR_DEVICE_NOT_INSTALLED, "Указанное устройство не установлено в системе. Используйте Панель управления для установки драйвера." +MCIERR_GET_CD, "Нет доступа к указанному файлу или устройству МCI. Попробуйте перезапустить компьютер ;-)" +MCIERR_SET_CD, "Нет доступа к указанному файлу или устройству MCI, потому что приложение не может менять директории." +MCIERR_SET_DRIVE, "Нет доступа к указанному файлу или устройству MCI, потому что приложение не может менять диски." +MCIERR_DEVICE_LENGTH, "Имя драйвера или устройства должно быть короче 79 символов." +MCIERR_DEVICE_ORD_LENGTH, "Имя драйвера или устройства должно быть короче 69 символов." +MCIERR_NO_INTEGER, "Указанная команда требует параметр целого типа." +MCIERR_WAVE_OUTPUTSINUSE, "Все wave-устройства, которые могут воспроизводить файлы в текущем формате, заняты. Подождите пока освободится wave-устройство, и попробуйте заново." +MCIERR_WAVE_SETOUTPUTINUSE, "Невозможно использовать текущее устройство для воспроизведения, т.к. оно занято. Подождите, пока устройство освободится, и попробуйте заново." +MCIERR_WAVE_INPUTSINUSE, "Невозможно использовать текущее устройство для записи, т.к. оно занято. Подождите, пока устройство освободится, и попробуйте заново." +MCIERR_WAVE_SETINPUTINUSE, "Невозможно использовать текущее устройство для воспроизведения, т.к. оно занято. Подождите, пока устройство освободится, и попробуйте заново." +MCIERR_WAVE_OUTPUTUNSPECIFIED, "Может быть использовано любое устройство для проигрывания звука." +MCIERR_WAVE_INPUTUNSPECIFIED, "Может быть использовано любое устройство для записи звука." +MCIERR_WAVE_OUTPUTSUNSUITABLE, "Нет устройства для воспроизведения файлов в текущем формате. Используйте опцию Драйвера для установки звукового устройства." +MCIERR_WAVE_SETOUTPUTUNSUITABLE,"Устройство, на которое вы проигрываете, не поддерживает формат текущего файла." +MCIERR_WAVE_INPUTSUNSUITABLE, "Нет устройства для записи файлов в текущем формате. Используйте опцию Драйвера для установки звукового устройства." +MCIERR_WAVE_SETINPUTUNSUITABLE, "Устройство, с которого вы записываете, не может распознать текущий формат файла." +MCIERR_NO_WINDOW, "Нет окна для отображения." +MCIERR_CREATEWINDOW, "Невозможно создать или использовать окно." +MCIERR_FILE_READ, "Невозможно прочитать указанный файл. Убедитесь, что файл существует, или проверьте диск или сетевое подключение. " +MCIERR_FILE_WRITE, "Невозможно записать в указанный файл. Убедитесь, что на диске достаточно места, или проверьте сетевое подключение." +MCIERR_SEQ_DIV_INCOMPATIBLE, "Форматы времени ""song pointer"" и SMPTE взаимно исключаемые. Нельзя использовать их вместе." +MCIERR_SEQ_NOMIDIPRESENT, "В системе не установлены устройства MIDI. Используйте Драйвера в Панели управления, чтобы установить драйвер MIDI." +MCIERR_SEQ_PORT_INUSE, "Указанный порт MIDI уже используется. Подождите, пока он освободится, и попробуйте заново." +MCIERR_SEQ_PORT_MAPNODEVICE, "Текущие установки MIDI Mapper ссылаются на не установленное в системе устройство MIDI. Используйте MIDI Mapper в Панели управления, чтобы отредактировать установки." +MCIERR_SEQ_PORT_MISCERROR, "Ошибка указанного порта." +MCIERR_SEQ_PORT_NONEXISTENT, "В системе не установлены устройства MIDI. Используйте Драйвера в Панели управления, чтобы установить драйвер MIDI." +MCIERR_SEQ_PORTUNSPECIFIED, "В системе не указан текущий порт MIDI." +MCIERR_SEQ_TIMER, "Все таймеры мультимедиа используются другими приложениями. Закройте одно из этих приложений и попробуйте заново." END diff --git a/dll/win32/wldap32/lang/wldap32_Ru.rc b/dll/win32/wldap32/lang/wldap32_Ru.rc index 2ddace3949b..a4d74da3f94 100644 --- a/dll/win32/wldap32/lang/wldap32_Ru.rc +++ b/dll/win32/wldap32/lang/wldap32_Ru.rc @@ -43,7 +43,7 @@ STRINGTABLE 15 "" 16 "Нет такого атрибута" 17 "Тип не определен" - 18 "Неподходящее соответствие" + 18 "Недопустимое соответствие" 19 "Нарушение ограничения" 20 "Атрибут или значение существует" 21 "Синтаксическая ошибка" @@ -59,9 +59,9 @@ STRINGTABLE 31 "" 32 "Нет такого объекта" 33 "Проблема с псевдонимом" - 34 "Неверный DN синтаксис" - 35 "Это лист дерева" - 36 "Проблема обращения по псевдониму" + 34 "Недопустимый синтаксис DN" + 35 "Является оконечным листом дерева" + 36 "Ошибка отмены псевдонима" 37 "" 38 "" 39 "" @@ -78,7 +78,7 @@ STRINGTABLE 50 "Недостаточно прав" 51 "Занято" 52 "Недоступно" - 53 "Не желает выполнить" + 53 "Несклонный к выполнению" 54 "Обнаружено зацикливание" 55 "" 56 "" diff --git a/dll/win32/wshom.ocx/CMakeLists.txt b/dll/win32/wshom.ocx/CMakeLists.txt new file mode 100644 index 00000000000..4d9dd080c40 --- /dev/null +++ b/dll/win32/wshom.ocx/CMakeLists.txt @@ -0,0 +1,30 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +spec2def(wshom.ocx wshom.ocx.spec) +add_idl_headers(wshom_idlheader wshom.idl) +add_typelib(wshom.idl) + +list(APPEND SOURCE + shell.c + wshom_main.c + wshom_private.h) + +add_library(wshom SHARED + ${SOURCE} + guid.c + wshom.rc + ${CMAKE_CURRENT_BINARY_DIR}/wshom.def) + +list(APPEND wshom_rc_deps + ${CMAKE_CURRENT_SOURCE_DIR}/wshom.rgs + ${CMAKE_CURRENT_SOURCE_DIR}/wshom.tlb.rgs + ${CMAKE_CURRENT_BINARY_DIR}/wshom.tlb) + +set_source_files_properties(wshom.rc PROPERTIES OBJECT_DEPENDS "${wshom_rc_deps}") +set_module_type(wshom win32ocx) +target_link_libraries(wshom uuid wine) +add_importlibs(wshom oleaut32 ole32 shell32 msvcrt kernel32 ntdll) +add_dependencies(wshom stdole2 wshom_idlheader) +add_pch(wshom wshom_private.h SOURCE) +add_cd_file(TARGET wshom DESTINATION reactos/system32 FOR all) diff --git a/dll/win32/wshom.ocx/guid.c b/dll/win32/wshom.ocx/guid.c new file mode 100644 index 00000000000..83dd5f32e21 --- /dev/null +++ b/dll/win32/wshom.ocx/guid.c @@ -0,0 +1,15 @@ +/* DO NOT USE THE PRECOMPILED HEADER FOR THIS FILE! */ + +#include + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#include +#include +#include +#include +#include + +/* NO CODE HERE, THIS IS JUST REQUIRED FOR THE GUID DEFINITIONS */ diff --git a/dll/win32/wshom.ocx/shell.c b/dll/win32/wshom.ocx/shell.c new file mode 100644 index 00000000000..da575aa938b --- /dev/null +++ b/dll/win32/wshom.ocx/shell.c @@ -0,0 +1,1069 @@ +/* + * Copyright 2011 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "wshom_private.h" + +#include +#include +#include + +#include + +static IWshShell3 WshShell3; + +typedef struct +{ + IWshCollection IWshCollection_iface; + LONG ref; +} WshCollection; + +typedef struct +{ + IWshShortcut IWshShortcut_iface; + LONG ref; + + IShellLinkW *link; + BSTR path_link; +} WshShortcut; + +typedef struct +{ + IWshEnvironment IWshEnvironment_iface; + LONG ref; +} WshEnvironment; + +static inline WshCollection *impl_from_IWshCollection( IWshCollection *iface ) +{ + return CONTAINING_RECORD(iface, WshCollection, IWshCollection_iface); +} + +static inline WshShortcut *impl_from_IWshShortcut( IWshShortcut *iface ) +{ + return CONTAINING_RECORD(iface, WshShortcut, IWshShortcut_iface); +} + +static inline WshEnvironment *impl_from_IWshEnvironment( IWshEnvironment *iface ) +{ + return CONTAINING_RECORD(iface, WshEnvironment, IWshEnvironment_iface); +} + +static HRESULT WINAPI WshEnvironment_QueryInterface(IWshEnvironment *iface, REFIID riid, void **obj) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + + TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), obj); + + if (IsEqualGUID(riid, &IID_IUnknown) || + IsEqualGUID(riid, &IID_IDispatch) || + IsEqualGUID(riid, &IID_IWshEnvironment)) + { + *obj = iface; + }else { + FIXME("Unknown iface %s\n", debugstr_guid(riid)); + *obj = NULL; + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*obj); + return S_OK; +} + +static ULONG WINAPI WshEnvironment_AddRef(IWshEnvironment *iface) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + LONG ref = InterlockedIncrement(&This->ref); + TRACE("(%p) ref = %d\n", This, ref); + return ref; +} + +static ULONG WINAPI WshEnvironment_Release(IWshEnvironment *iface) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + LONG ref = InterlockedDecrement(&This->ref); + TRACE("(%p) ref = %d\n", This, ref); + + if (!ref) + HeapFree(GetProcessHeap(), 0, This); + + return ref; +} + +static HRESULT WINAPI WshEnvironment_GetTypeInfoCount(IWshEnvironment *iface, UINT *pctinfo) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + TRACE("(%p)->(%p)\n", This, pctinfo); + *pctinfo = 1; + return S_OK; +} + +static HRESULT WINAPI WshEnvironment_GetTypeInfo(IWshEnvironment *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); + return get_typeinfo(IWshEnvironment_tid, ppTInfo); +} + +static HRESULT WINAPI WshEnvironment_GetIDsOfNames(IWshEnvironment *iface, REFIID riid, LPOLESTR *rgszNames, + UINT cNames, LCID lcid, DISPID *rgDispId) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId); + + hr = get_typeinfo(IWshEnvironment_tid, &typeinfo); + if(SUCCEEDED(hr)) + { + hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } + + return hr; +} + +static HRESULT WINAPI WshEnvironment_Invoke(IWshEnvironment *iface, DISPID dispIdMember, REFIID riid, LCID lcid, + WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + + hr = get_typeinfo(IWshEnvironment_tid, &typeinfo); + if(SUCCEEDED(hr)) + { + hr = ITypeInfo_Invoke(typeinfo, &This->IWshEnvironment_iface, dispIdMember, wFlags, + pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } + + return hr; +} + +static HRESULT WINAPI WshEnvironment_get_Item(IWshEnvironment *iface, BSTR name, BSTR *value) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + DWORD len; + + TRACE("(%p)->(%s %p)\n", This, debugstr_w(name), value); + + if (!value) + return E_POINTER; + + len = GetEnvironmentVariableW(name, NULL, 0); + *value = SysAllocStringLen(NULL, len); + if (!*value) + return E_OUTOFMEMORY; + + if (len) + GetEnvironmentVariableW(name, *value, len+1); + + return S_OK; +} + +static HRESULT WINAPI WshEnvironment_put_Item(IWshEnvironment *iface, BSTR name, BSTR value) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + FIXME("(%p)->(%s %s): stub\n", This, debugstr_w(name), debugstr_w(value)); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshEnvironment_Count(IWshEnvironment *iface, LONG *count) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + FIXME("(%p)->(%p): stub\n", This, count); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshEnvironment_get_length(IWshEnvironment *iface, LONG *len) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + FIXME("(%p)->(%p): stub\n", This, len); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshEnvironment__NewEnum(IWshEnvironment *iface, IUnknown **penum) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + FIXME("(%p)->(%p): stub\n", This, penum); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshEnvironment_Remove(IWshEnvironment *iface, BSTR name) +{ + WshEnvironment *This = impl_from_IWshEnvironment(iface); + FIXME("(%p)->(%s): stub\n", This, debugstr_w(name)); + return E_NOTIMPL; +} + +static const IWshEnvironmentVtbl WshEnvironmentVtbl = { + WshEnvironment_QueryInterface, + WshEnvironment_AddRef, + WshEnvironment_Release, + WshEnvironment_GetTypeInfoCount, + WshEnvironment_GetTypeInfo, + WshEnvironment_GetIDsOfNames, + WshEnvironment_Invoke, + WshEnvironment_get_Item, + WshEnvironment_put_Item, + WshEnvironment_Count, + WshEnvironment_get_length, + WshEnvironment__NewEnum, + WshEnvironment_Remove +}; + +static HRESULT WshEnvironment_Create(IWshEnvironment **env) +{ + WshEnvironment *This; + + This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); + if (!This) return E_OUTOFMEMORY; + + This->IWshEnvironment_iface.lpVtbl = &WshEnvironmentVtbl; + This->ref = 1; + + *env = &This->IWshEnvironment_iface; + + return S_OK; +} + +static HRESULT WINAPI WshCollection_QueryInterface(IWshCollection *iface, REFIID riid, void **ppv) +{ + WshCollection *This = impl_from_IWshCollection(iface); + + TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppv); + + if (IsEqualGUID(riid, &IID_IUnknown) || + IsEqualGUID(riid, &IID_IDispatch) || + IsEqualGUID(riid, &IID_IWshCollection)) + { + *ppv = iface; + }else { + FIXME("Unknown iface %s\n", debugstr_guid(riid)); + *ppv = NULL; + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; +} + +static ULONG WINAPI WshCollection_AddRef(IWshCollection *iface) +{ + WshCollection *This = impl_from_IWshCollection(iface); + LONG ref = InterlockedIncrement(&This->ref); + TRACE("(%p) ref = %d\n", This, ref); + return ref; +} + +static ULONG WINAPI WshCollection_Release(IWshCollection *iface) +{ + WshCollection *This = impl_from_IWshCollection(iface); + LONG ref = InterlockedDecrement(&This->ref); + TRACE("(%p) ref = %d\n", This, ref); + + if (!ref) + HeapFree(GetProcessHeap(), 0, This); + + return ref; +} + +static HRESULT WINAPI WshCollection_GetTypeInfoCount(IWshCollection *iface, UINT *pctinfo) +{ + WshCollection *This = impl_from_IWshCollection(iface); + TRACE("(%p)->(%p)\n", This, pctinfo); + *pctinfo = 1; + return S_OK; +} + +static HRESULT WINAPI WshCollection_GetTypeInfo(IWshCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) +{ + WshCollection *This = impl_from_IWshCollection(iface); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); + return get_typeinfo(IWshCollection_tid, ppTInfo); +} + +static HRESULT WINAPI WshCollection_GetIDsOfNames(IWshCollection *iface, REFIID riid, LPOLESTR *rgszNames, + UINT cNames, LCID lcid, DISPID *rgDispId) +{ + WshCollection *This = impl_from_IWshCollection(iface); + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId); + + hr = get_typeinfo(IWshCollection_tid, &typeinfo); + if(SUCCEEDED(hr)) + { + hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } + + return hr; +} + +static HRESULT WINAPI WshCollection_Invoke(IWshCollection *iface, DISPID dispIdMember, REFIID riid, LCID lcid, + WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + WshCollection *This = impl_from_IWshCollection(iface); + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + + hr = get_typeinfo(IWshCollection_tid, &typeinfo); + if(SUCCEEDED(hr)) + { + hr = ITypeInfo_Invoke(typeinfo, &This->IWshCollection_iface, dispIdMember, wFlags, + pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } + + return hr; +} + +static HRESULT WINAPI WshCollection_Item(IWshCollection *iface, VARIANT *index, VARIANT *value) +{ + WshCollection *This = impl_from_IWshCollection(iface); + static const WCHAR allusersdesktopW[] = {'A','l','l','U','s','e','r','s','D','e','s','k','t','o','p',0}; + static const WCHAR allusersprogramsW[] = {'A','l','l','U','s','e','r','s','P','r','o','g','r','a','m','s',0}; + static const WCHAR desktopW[] = {'D','e','s','k','t','o','p',0}; + PIDLIST_ABSOLUTE pidl; + WCHAR pathW[MAX_PATH]; + int kind = 0; + BSTR folder; + HRESULT hr; + + TRACE("(%p)->(%s %p)\n", This, debugstr_variant(index), value); + + if (V_VT(index) != VT_BSTR) + { + FIXME("only BSTR index supported, got %d\n", V_VT(index)); + return E_NOTIMPL; + } + + folder = V_BSTR(index); + if (!strcmpiW(folder, desktopW)) + kind = CSIDL_DESKTOP; + else if (!strcmpiW(folder, allusersdesktopW)) + kind = CSIDL_COMMON_DESKTOPDIRECTORY; + else if (!strcmpiW(folder, allusersprogramsW)) + kind = CSIDL_COMMON_PROGRAMS; + else + { + FIXME("folder kind %s not supported\n", debugstr_w(folder)); + return E_NOTIMPL; + } + + hr = SHGetSpecialFolderLocation(NULL, kind, &pidl); + if (hr != S_OK) return hr; + + if (SHGetPathFromIDListW(pidl, pathW)) + { + V_VT(value) = VT_BSTR; + V_BSTR(value) = SysAllocString(pathW); + hr = V_BSTR(value) ? S_OK : E_OUTOFMEMORY; + } + else + hr = E_FAIL; + + CoTaskMemFree(pidl); + + return hr; +} + +static HRESULT WINAPI WshCollection_Count(IWshCollection *iface, LONG *count) +{ + WshCollection *This = impl_from_IWshCollection(iface); + FIXME("(%p)->(%p): stub\n", This, count); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshCollection_get_length(IWshCollection *iface, LONG *count) +{ + WshCollection *This = impl_from_IWshCollection(iface); + FIXME("(%p)->(%p): stub\n", This, count); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshCollection__NewEnum(IWshCollection *iface, IUnknown *Enum) +{ + WshCollection *This = impl_from_IWshCollection(iface); + FIXME("(%p)->(%p): stub\n", This, Enum); + return E_NOTIMPL; +} + +static const IWshCollectionVtbl WshCollectionVtbl = { + WshCollection_QueryInterface, + WshCollection_AddRef, + WshCollection_Release, + WshCollection_GetTypeInfoCount, + WshCollection_GetTypeInfo, + WshCollection_GetIDsOfNames, + WshCollection_Invoke, + WshCollection_Item, + WshCollection_Count, + WshCollection_get_length, + WshCollection__NewEnum +}; + +static HRESULT WshCollection_Create(IWshCollection **collection) +{ + WshCollection *This; + + This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); + if (!This) return E_OUTOFMEMORY; + + This->IWshCollection_iface.lpVtbl = &WshCollectionVtbl; + This->ref = 1; + + *collection = &This->IWshCollection_iface; + + return S_OK; +} + +/* IWshShortcut */ +static HRESULT WINAPI WshShortcut_QueryInterface(IWshShortcut *iface, REFIID riid, void **ppv) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + + TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppv); + + if (IsEqualGUID(riid, &IID_IUnknown) || + IsEqualGUID(riid, &IID_IDispatch) || + IsEqualGUID(riid, &IID_IWshShortcut)) + { + *ppv = iface; + }else { + FIXME("Unknown iface %s\n", debugstr_guid(riid)); + *ppv = NULL; + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; +} + +static ULONG WINAPI WshShortcut_AddRef(IWshShortcut *iface) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + LONG ref = InterlockedIncrement(&This->ref); + TRACE("(%p) ref = %d\n", This, ref); + return ref; +} + +static ULONG WINAPI WshShortcut_Release(IWshShortcut *iface) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + LONG ref = InterlockedDecrement(&This->ref); + TRACE("(%p) ref = %d\n", This, ref); + + if (!ref) + { + SysFreeString(This->path_link); + IShellLinkW_Release(This->link); + HeapFree(GetProcessHeap(), 0, This); + } + + return ref; +} + +static HRESULT WINAPI WshShortcut_GetTypeInfoCount(IWshShortcut *iface, UINT *pctinfo) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + TRACE("(%p)->(%p)\n", This, pctinfo); + *pctinfo = 1; + return S_OK; +} + +static HRESULT WINAPI WshShortcut_GetTypeInfo(IWshShortcut *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); + return get_typeinfo(IWshShortcut_tid, ppTInfo); +} + +static HRESULT WINAPI WshShortcut_GetIDsOfNames(IWshShortcut *iface, REFIID riid, LPOLESTR *rgszNames, + UINT cNames, LCID lcid, DISPID *rgDispId) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId); + + hr = get_typeinfo(IWshShortcut_tid, &typeinfo); + if(SUCCEEDED(hr)) + { + hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } + + return hr; +} + +static HRESULT WINAPI WshShortcut_Invoke(IWshShortcut *iface, DISPID dispIdMember, REFIID riid, LCID lcid, + WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + + hr = get_typeinfo(IWshShortcut_tid, &typeinfo); + if(SUCCEEDED(hr)) + { + hr = ITypeInfo_Invoke(typeinfo, &This->IWshShortcut_iface, dispIdMember, wFlags, + pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } + + return hr; +} + +static HRESULT WINAPI WshShortcut_get_FullName(IWshShortcut *iface, BSTR *name) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + FIXME("(%p)->(%p): stub\n", This, name); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShortcut_get_Arguments(IWshShortcut *iface, BSTR *Arguments) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + WCHAR buffW[INFOTIPSIZE]; + HRESULT hr; + + TRACE("(%p)->(%p)\n", This, Arguments); + + if (!Arguments) + return E_POINTER; + + *Arguments = NULL; + + hr = IShellLinkW_GetArguments(This->link, buffW, sizeof(buffW)/sizeof(WCHAR)); + if (FAILED(hr)) + return hr; + + *Arguments = SysAllocString(buffW); + return *Arguments ? S_OK : E_OUTOFMEMORY; +} + +static HRESULT WINAPI WshShortcut_put_Arguments(IWshShortcut *iface, BSTR Arguments) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + + TRACE("(%p)->(%s)\n", This, debugstr_w(Arguments)); + + return IShellLinkW_SetArguments(This->link, Arguments); +} + +static HRESULT WINAPI WshShortcut_get_Description(IWshShortcut *iface, BSTR *Description) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + FIXME("(%p)->(%p): stub\n", This, Description); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShortcut_put_Description(IWshShortcut *iface, BSTR Description) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + TRACE("(%p)->(%s)\n", This, debugstr_w(Description)); + return IShellLinkW_SetDescription(This->link, Description); +} + +static HRESULT WINAPI WshShortcut_get_Hotkey(IWshShortcut *iface, BSTR *Hotkey) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + FIXME("(%p)->(%p): stub\n", This, Hotkey); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShortcut_put_Hotkey(IWshShortcut *iface, BSTR Hotkey) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + FIXME("(%p)->(%s): stub\n", This, debugstr_w(Hotkey)); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShortcut_get_IconLocation(IWshShortcut *iface, BSTR *IconPath) +{ + static const WCHAR fmtW[] = {'%','s',',',' ','%','d',0}; + WshShortcut *This = impl_from_IWshShortcut(iface); + WCHAR buffW[MAX_PATH], pathW[MAX_PATH]; + INT icon = 0; + HRESULT hr; + + TRACE("(%p)->(%p)\n", This, IconPath); + + if (!IconPath) + return E_POINTER; + + hr = IShellLinkW_GetIconLocation(This->link, buffW, sizeof(buffW)/sizeof(WCHAR), &icon); + if (FAILED(hr)) return hr; + + sprintfW(pathW, fmtW, buffW, icon); + *IconPath = SysAllocString(pathW); + if (!*IconPath) return E_OUTOFMEMORY; + + return S_OK; +} + +static HRESULT WINAPI WshShortcut_put_IconLocation(IWshShortcut *iface, BSTR IconPath) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + HRESULT hr; + WCHAR *ptr; + BSTR path; + INT icon; + + TRACE("(%p)->(%s)\n", This, debugstr_w(IconPath)); + + /* scan for icon id */ + ptr = strrchrW(IconPath, ','); + if (!ptr) + { + WARN("icon index not found\n"); + return E_FAIL; + } + + path = SysAllocStringLen(IconPath, ptr-IconPath); + + /* skip spaces if any */ + while (isspaceW(*++ptr)) + ; + + icon = atoiW(ptr); + + hr = IShellLinkW_SetIconLocation(This->link, path, icon); + SysFreeString(path); + + return hr; +} + +static HRESULT WINAPI WshShortcut_put_RelativePath(IWshShortcut *iface, BSTR rhs) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + FIXME("(%p)->(%s): stub\n", This, debugstr_w(rhs)); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShortcut_get_TargetPath(IWshShortcut *iface, BSTR *Path) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + FIXME("(%p)->(%p): stub\n", This, Path); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShortcut_put_TargetPath(IWshShortcut *iface, BSTR Path) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + TRACE("(%p)->(%s)\n", This, debugstr_w(Path)); + return IShellLinkW_SetPath(This->link, Path); +} + +static HRESULT WINAPI WshShortcut_get_WindowStyle(IWshShortcut *iface, int *ShowCmd) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + TRACE("(%p)->(%p)\n", This, ShowCmd); + return IShellLinkW_GetShowCmd(This->link, ShowCmd); +} + +static HRESULT WINAPI WshShortcut_put_WindowStyle(IWshShortcut *iface, int ShowCmd) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + TRACE("(%p)->(%d)\n", This, ShowCmd); + return IShellLinkW_SetShowCmd(This->link, ShowCmd); +} + +static HRESULT WINAPI WshShortcut_get_WorkingDirectory(IWshShortcut *iface, BSTR *WorkingDirectory) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + WCHAR buffW[MAX_PATH]; + HRESULT hr; + + TRACE("(%p)->(%p)\n", This, WorkingDirectory); + + if (!WorkingDirectory) + return E_POINTER; + + *WorkingDirectory = NULL; + hr = IShellLinkW_GetWorkingDirectory(This->link, buffW, sizeof(buffW)/sizeof(WCHAR)); + if (FAILED(hr)) return hr; + + *WorkingDirectory = SysAllocString(buffW); + return *WorkingDirectory ? S_OK : E_OUTOFMEMORY; +} + +static HRESULT WINAPI WshShortcut_put_WorkingDirectory(IWshShortcut *iface, BSTR WorkingDirectory) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + TRACE("(%p)->(%s)\n", This, debugstr_w(WorkingDirectory)); + return IShellLinkW_SetWorkingDirectory(This->link, WorkingDirectory); +} + +static HRESULT WINAPI WshShortcut_Load(IWshShortcut *iface, BSTR PathLink) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + FIXME("(%p)->(%s): stub\n", This, debugstr_w(PathLink)); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShortcut_Save(IWshShortcut *iface) +{ + WshShortcut *This = impl_from_IWshShortcut(iface); + IPersistFile *file; + HRESULT hr; + + TRACE("(%p)\n", This); + + IShellLinkW_QueryInterface(This->link, &IID_IPersistFile, (void**)&file); + hr = IPersistFile_Save(file, This->path_link, TRUE); + IPersistFile_Release(file); + + return hr; +} + +static const IWshShortcutVtbl WshShortcutVtbl = { + WshShortcut_QueryInterface, + WshShortcut_AddRef, + WshShortcut_Release, + WshShortcut_GetTypeInfoCount, + WshShortcut_GetTypeInfo, + WshShortcut_GetIDsOfNames, + WshShortcut_Invoke, + WshShortcut_get_FullName, + WshShortcut_get_Arguments, + WshShortcut_put_Arguments, + WshShortcut_get_Description, + WshShortcut_put_Description, + WshShortcut_get_Hotkey, + WshShortcut_put_Hotkey, + WshShortcut_get_IconLocation, + WshShortcut_put_IconLocation, + WshShortcut_put_RelativePath, + WshShortcut_get_TargetPath, + WshShortcut_put_TargetPath, + WshShortcut_get_WindowStyle, + WshShortcut_put_WindowStyle, + WshShortcut_get_WorkingDirectory, + WshShortcut_put_WorkingDirectory, + WshShortcut_Load, + WshShortcut_Save +}; + +static HRESULT WshShortcut_Create(const WCHAR *path, IDispatch **shortcut) +{ + WshShortcut *This; + HRESULT hr; + + *shortcut = NULL; + + This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); + if (!This) return E_OUTOFMEMORY; + + This->IWshShortcut_iface.lpVtbl = &WshShortcutVtbl; + This->ref = 1; + + hr = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, + &IID_IShellLinkW, (void**)&This->link); + if (FAILED(hr)) + { + HeapFree(GetProcessHeap(), 0, This); + return hr; + } + + This->path_link = SysAllocString(path); + if (!This->path_link) + { + IShellLinkW_Release(This->link); + HeapFree(GetProcessHeap(), 0, This); + return E_OUTOFMEMORY; + } + + *shortcut = (IDispatch*)&This->IWshShortcut_iface; + + return S_OK; +} + +static HRESULT WINAPI WshShell3_QueryInterface(IWshShell3 *iface, REFIID riid, void **ppv) +{ + TRACE("(%s, %p)\n", debugstr_guid(riid), ppv); + + *ppv = NULL; + + if(IsEqualGUID(riid, &IID_IUnknown) || + IsEqualGUID(riid, &IID_IDispatch) || + IsEqualGUID(riid, &IID_IWshShell3)) + { + *ppv = iface; + } + else if (IsEqualGUID(riid, &IID_IDispatchEx)) + { + return E_NOINTERFACE; + } + else + { + FIXME("Unknown iface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; + } + + IWshShell3_AddRef(iface); + return S_OK; +} + +static ULONG WINAPI WshShell3_AddRef(IWshShell3 *iface) +{ + TRACE("()\n"); + return 2; +} + +static ULONG WINAPI WshShell3_Release(IWshShell3 *iface) +{ + TRACE("()\n"); + return 2; +} + +static HRESULT WINAPI WshShell3_GetTypeInfoCount(IWshShell3 *iface, UINT *pctinfo) +{ + TRACE("(%p)\n", pctinfo); + *pctinfo = 1; + return S_OK; +} + +static HRESULT WINAPI WshShell3_GetTypeInfo(IWshShell3 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) +{ + TRACE("(%u %u %p)\n", iTInfo, lcid, ppTInfo); + return get_typeinfo(IWshShell3_tid, ppTInfo); +} + +static HRESULT WINAPI WshShell3_GetIDsOfNames(IWshShell3 *iface, REFIID riid, LPOLESTR *rgszNames, + UINT cNames, LCID lcid, DISPID *rgDispId) +{ + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE("(%s %p %u %u %p)\n", debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId); + + hr = get_typeinfo(IWshShell3_tid, &typeinfo); + if(SUCCEEDED(hr)) + { + hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } + + return hr; +} + +static HRESULT WINAPI WshShell3_Invoke(IWshShell3 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, + WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE("(%d %s %d %d %p %p %p %p)\n", dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + + hr = get_typeinfo(IWshShell3_tid, &typeinfo); + if(SUCCEEDED(hr)) + { + hr = ITypeInfo_Invoke(typeinfo, &WshShell3, dispIdMember, wFlags, + pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } + + return hr; +} + +static HRESULT WINAPI WshShell3_get_SpecialFolders(IWshShell3 *iface, IWshCollection **folders) +{ + TRACE("(%p)\n", folders); + return WshCollection_Create(folders); +} + +static HRESULT WINAPI WshShell3_get_Environment(IWshShell3 *iface, VARIANT *type, IWshEnvironment **env) +{ + FIXME("(%s %p): semi-stub\n", debugstr_variant(type), env); + return WshEnvironment_Create(env); +} + +static HRESULT WINAPI WshShell3_Run(IWshShell3 *iface, BSTR cmd, VARIANT *style, VARIANT *WaitOnReturn, int *exit_code) +{ + SHELLEXECUTEINFOW info; + int waitforprocess; + VARIANT s, w; + HRESULT hr; + + TRACE("(%s %s %s %p)\n", debugstr_w(cmd), debugstr_variant(style), debugstr_variant(WaitOnReturn), exit_code); + + VariantInit(&s); + hr = VariantChangeType(&s, style, 0, VT_I4); + if (FAILED(hr)) + { + ERR("failed to convert style argument, 0x%08x\n", hr); + return hr; + } + + VariantInit(&w); + hr = VariantChangeType(&w, WaitOnReturn, 0, VT_I4); + if (FAILED(hr)) + { + ERR("failed to convert wait argument, 0x%08x\n", hr); + return hr; + } + + memset(&info, 0, sizeof(info)); + info.cbSize = sizeof(info); + + waitforprocess = V_I4(&w); + + info.fMask = waitforprocess ? SEE_MASK_NOASYNC | SEE_MASK_NOCLOSEPROCESS : SEE_MASK_DEFAULT; + info.lpFile = cmd; + info.nShow = V_I4(&s); + + if (!ShellExecuteExW(&info)) + { + TRACE("ShellExecute failed, %d\n", GetLastError()); + return HRESULT_FROM_WIN32(GetLastError()); + } + else + { + if (waitforprocess) + { + if (exit_code) + { + DWORD code; + GetExitCodeProcess(info.hProcess, &code); + *exit_code = code; + } + CloseHandle(info.hProcess); + } + else + if (exit_code) *exit_code = 0; + + return S_OK; + } +} + +static HRESULT WINAPI WshShell3_Popup(IWshShell3 *iface, BSTR Text, VARIANT* SecondsToWait, VARIANT *Title, VARIANT *Type, int *button) +{ + FIXME("(%s %s %s %s %p): stub\n", debugstr_w(Text), debugstr_variant(SecondsToWait), + debugstr_variant(Title), debugstr_variant(Type), button); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShell3_CreateShortcut(IWshShell3 *iface, BSTR PathLink, IDispatch** Shortcut) +{ + TRACE("(%s %p)\n", debugstr_w(PathLink), Shortcut); + return WshShortcut_Create(PathLink, Shortcut); +} + +static HRESULT WINAPI WshShell3_ExpandEnvironmentStrings(IWshShell3 *iface, BSTR Src, BSTR* Dst) +{ + DWORD ret; + + TRACE("(%s %p)\n", debugstr_w(Src), Dst); + + if (!Src || !Dst) return E_POINTER; + + ret = ExpandEnvironmentStringsW(Src, NULL, 0); + *Dst = SysAllocStringLen(NULL, ret); + if (!*Dst) return E_OUTOFMEMORY; + + if (ExpandEnvironmentStringsW(Src, *Dst, ret)) + return S_OK; + else + { + SysFreeString(*Dst); + *Dst = NULL; + return HRESULT_FROM_WIN32(GetLastError()); + } +} + +static HRESULT WINAPI WshShell3_RegRead(IWshShell3 *iface, BSTR Name, VARIANT* out_Value) +{ + FIXME("(%s %p): stub\n", debugstr_w(Name), out_Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShell3_RegWrite(IWshShell3 *iface, BSTR Name, VARIANT *Value, VARIANT *Type) +{ + FIXME("(%s %s %s): stub\n", debugstr_w(Name), debugstr_variant(Value), debugstr_variant(Type)); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShell3_RegDelete(IWshShell3 *iface, BSTR Name) +{ + FIXME("(%s): stub\n", debugstr_w(Name)); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShell3_LogEvent(IWshShell3 *iface, VARIANT *Type, BSTR Message, BSTR Target, VARIANT_BOOL *out_Success) +{ + FIXME("(%s %s %s %p): stub\n", debugstr_variant(Type), debugstr_w(Message), debugstr_w(Target), out_Success); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShell3_AppActivate(IWshShell3 *iface, VARIANT *App, VARIANT *Wait, VARIANT_BOOL *out_Success) +{ + FIXME("(%s %s %p): stub\n", debugstr_variant(App), debugstr_variant(Wait), out_Success); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshShell3_SendKeys(IWshShell3 *iface, BSTR Keys, VARIANT *Wait) +{ + FIXME("(%s %p): stub\n", debugstr_w(Keys), Wait); + return E_NOTIMPL; +} + +static const IWshShell3Vtbl WshShell3Vtbl = { + WshShell3_QueryInterface, + WshShell3_AddRef, + WshShell3_Release, + WshShell3_GetTypeInfoCount, + WshShell3_GetTypeInfo, + WshShell3_GetIDsOfNames, + WshShell3_Invoke, + WshShell3_get_SpecialFolders, + WshShell3_get_Environment, + WshShell3_Run, + WshShell3_Popup, + WshShell3_CreateShortcut, + WshShell3_ExpandEnvironmentStrings, + WshShell3_RegRead, + WshShell3_RegWrite, + WshShell3_RegDelete, + WshShell3_LogEvent, + WshShell3_AppActivate, + WshShell3_SendKeys +}; + +static IWshShell3 WshShell3 = { &WshShell3Vtbl }; + +HRESULT WINAPI WshShellFactory_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv) +{ + TRACE("(%p %s %p)\n", outer, debugstr_guid(riid), ppv); + + return IWshShell3_QueryInterface(&WshShell3, riid, ppv); +} diff --git a/dll/win32/wshom.ocx/wshom.idl b/dll/win32/wshom.ocx/wshom.idl new file mode 100644 index 00000000000..02224a3d208 --- /dev/null +++ b/dll/win32/wshom.ocx/wshom.idl @@ -0,0 +1,666 @@ +/* + * Copyright 2011 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#pragma makedep regtypelib + +import "oaidl.idl"; +cpp_quote("#undef ExpandEnvironmentStrings") + +[ + helpstring("Windows Script Host Object Model"), + uuid(f935dc20-1cf0-11d0-adb9-00c04fd58a0b), + version(1.0) +] +library IWshRuntimeLibrary +{ + importlib("stdole2.tlb"); + + typedef enum { + WshRunning = 0, + WshFinished, + WshFailed + } WshExecStatus; + + typedef enum { + UnknownType = 0, + Removable, + Fixed, + Remote, + CDRom, + RamDisk + } DriveTypeConst; + + typedef enum { + Normal = 0x000, + ReadOnly = 0x001, + Hidden = 0x002, + System = 0x004, + Volume = 0x008, + Directory = 0x010, + Archive = 0x020, + Alias = 0x400, + Compressed = 0x800 + } FileAttribute; + + typedef enum { + ForReading = 0x1, + ForWriting = 0x2, + ForAppending = 0x8 + } IOMode; + + typedef enum { + TristateTrue = -1, + TristateFalse = 0, + TristateUseDefault = -2, + TristateMixed = -2 + } Tristate; + + interface IFolder; + interface IFolderCollection; + + [ + uuid(53bad8c1-e718-11cf-893d-00a0c9054228), + odl, + hidden, + dual, + nonextensible, + oleautomation + ] + interface ITextStream : IDispatch { + [id(0x2710), propget] + HRESULT Line([out, retval] long* Line); + + [id(0xfffffdef), propget] + HRESULT Column([out, retval] long* Column); + + [id(0x2712), propget] + HRESULT AtEndOfStream([out, retval] VARIANT_BOOL* EOS); + + [id(0x2713), propget] + HRESULT AtEndOfLine([out, retval] VARIANT_BOOL* EOL); + + [id(0x2714)] + HRESULT Read([in] long Characters, [out, retval] BSTR* Text); + + [id(0x2715)] + HRESULT ReadLine([out, retval] BSTR* Text); + + [id(0x2716)] + HRESULT ReadAll([out, retval] BSTR* Text); + + [id(0x2717)] + HRESULT Write([in] BSTR Text); + + [id(0x2718)] + HRESULT WriteLine([in, defaultvalue("")] BSTR Text); + + [id(0x2719)] + HRESULT WriteBlankLines([in] long Lines); + + [id(0x271a)] + HRESULT Skip([in] long Characters); + + [id(0x271b)] + HRESULT SkipLine(); + + [id(0x271c)] + HRESULT Close(); + }; + + [ + uuid(c7c3f5a0-88a3-11d0-abcb-00a0c90fffc0), + odl, + hidden, + dual, + nonextensible, + oleautomation + ] + interface IDrive : IDispatch { + [id(DISPID_VALUE), propget] + HRESULT Path([out, retval] BSTR* path); + + [id(0x2710), propget] + HRESULT DriveLetter([out, retval] BSTR* letter); + + [id(0x2711), propget] + HRESULT ShareName([out, retval] BSTR* ShareName); + + [id(0x2712), propget] + HRESULT DriveType([out, retval] DriveTypeConst* type); + + [id(0x2713), propget] + HRESULT RootFolder([out, retval] IFolder** folder); + + [id(0x2715), propget] + HRESULT AvailableSpace([out, retval] VARIANT* Avail); + + [id(0x2714), propget] + HRESULT FreeSpace([out, retval] VARIANT* pFree); + + [id(0x2716), propget] + HRESULT TotalSize([out, retval] VARIANT* Total); + + [id(0x2717), propget] + HRESULT VolumeName([out, retval] BSTR* Name); + + [id(0x2717), propput] + HRESULT VolumeName([in] BSTR Name); + + [id(0x2718), propget] + HRESULT FileSystem([out, retval] BSTR* pFileSystem); + + [id(0x2719), propget] + HRESULT SerialNumber([out, retval] long* SerialNumber); + + [id(0x271a), propget] + HRESULT IsReady([out, retval] VARIANT_BOOL* pfReady); + }; + + [ + uuid(c7c3f5a4-88a3-11d0-abcb-00a0c90fffc0), + odl, + hidden, + dual, + nonextensible, + oleautomation + ] + interface IFile : IDispatch { + [id(DISPID_VALUE), propget] + HRESULT Path([out, retval] BSTR* path); + + [id(0x03e8), propget] + HRESULT Name([out, retval] BSTR* Name); + + [id(0x03e8), propput] + HRESULT Name([in] BSTR Name); + + [id(0x03ea), propget] + HRESULT ShortPath([out, retval] BSTR* path); + + [id(0x03e9), propget] + HRESULT ShortName([out, retval] BSTR* Name); + + [id(0x03ec), propget] + HRESULT Drive([out, retval] IDrive** drive); + + [id(0x03ed), propget] + HRESULT ParentFolder([out, retval] IFolder** folder); + + [id(0x03eb), propget] + HRESULT Attributes([out, retval] FileAttribute* attr); + + [id(0x03eb), propput] + HRESULT Attributes([in] FileAttribute attr); + + [id(0x03ee), propget] + HRESULT DateCreated([out, retval] DATE* date); + + [id(0x03ef), propget] + HRESULT DateLastModified([out, retval] DATE* date); + + [id(0x03f0), propget] + HRESULT DateLastAccessed([out, retval] DATE* date); + + [id(0x03f1), propget] + HRESULT Size([out, retval] VARIANT* Size); + + [id(0x03f2), propget] + HRESULT Type([out, retval] BSTR* Type); + + [id(0x04b0)] + HRESULT Delete([in, defaultvalue(0)] VARIANT_BOOL Force); + + [id(0x04b2)] + HRESULT Copy( + [in] BSTR Destination, + [in, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles); + + [id(0x04b4)] + HRESULT Move([in] BSTR Destination); + + [id(0x044c)] + HRESULT OpenAsTextStream( + [in, defaultvalue(1)] IOMode IOMode, + [in, defaultvalue(0)] Tristate Format, + [out, retval] ITextStream** ppts); + }; + + [ + uuid(c7c3f5a5-88a3-11d0-abcb-00a0c90fffc0), + odl, + hidden, + dual, + nonextensible, + oleautomation + ] + interface IFileCollection : IDispatch { + [id(DISPID_VALUE), propget] + HRESULT Item( + [in] VARIANT Key, + [out, retval] IFile** ppfile); + [id(DISPID_NEWENUM), propget, restricted, hidden] + HRESULT _NewEnum([out, retval] IUnknown** ppenum); + [id(1), propget] + HRESULT Count([out, retval] long* count); + }; + + [ + uuid(c7c3f5a2-88a3-11d0-abcb-00a0c90fffc0), + odl, + hidden, + dual, + nonextensible, + oleautomation + ] + interface IFolder : IDispatch { + [id(DISPID_VALUE), propget] + HRESULT Path([out, retval] BSTR* path); + + [id(0x03e8), propget] + HRESULT Name([out, retval] BSTR* name); + + [id(0x03e8), propput] + HRESULT Name([in] BSTR name); + + [id(0x03ea), propget] + HRESULT ShortPath([out, retval] BSTR* path); + + [id(0x03e9), propget] + HRESULT ShortName([out, retval] BSTR* name); + + [id(0x03ec), propget] + HRESULT Drive([out, retval] IDrive** drive); + + [id(0x03ed), propget] + HRESULT ParentFolder([out, retval] IFolder** folder); + + [id(0x03eb), propget] + HRESULT Attributes([out, retval] FileAttribute* attr); + + [id(0x03eb), propput] + HRESULT Attributes([in] FileAttribute attr); + + [id(0x03ee), propget] + HRESULT DateCreated([out, retval] DATE* date); + + [id(0x03ef), propget] + HRESULT DateLastModified([out, retval] DATE* date); + + [id(0x03f0), propget] + HRESULT DateLastAccessed([out, retval] DATE* date); + + [id(0x03f2), propget] + HRESULT Type([out, retval] BSTR* type); + + [id(0x04b1)] + HRESULT Delete([in, defaultvalue(0)] VARIANT_BOOL force); + + [id(0x04b3)] + HRESULT Copy( + [in] BSTR Destination, + [in, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles); + + [id(0x04b5)] + HRESULT Move([in] BSTR Destination); + + [id(0x2710), propget] + HRESULT IsRootFolder([out, retval] VARIANT_BOOL* root); + + [id(0x03f1), propget] + HRESULT Size([out, retval] VARIANT* size); + + [id(0x2711), propget] + HRESULT SubFolders([out, retval] IFolderCollection** folders); + + [id(0x2712), propget] + HRESULT Files([out, retval] IFileCollection** files); + + [id(0x044d)] + HRESULT CreateTextFile( + [in] BSTR FileName, + [in, defaultvalue(-1)] VARIANT_BOOL Overwrite, + [in, defaultvalue(0)] VARIANT_BOOL Unicode, + [out, retval] ITextStream** ppts); + }; + + [ + uuid(c7c3f5a3-88a3-11d0-abcb-00a0c90fffc0), + odl, + hidden, + dual, + nonextensible, + oleautomation + ] + interface IFolderCollection : IDispatch { + [id(2)] + HRESULT Add( + [in] BSTR Name, + [out, retval] IFolder** folder); + + [id(DISPID_VALUE), propget] + HRESULT Item( + [in] VARIANT Key, + [out, retval] IFolder** folder); + + [id(DISPID_NEWENUM), propget, restricted, hidden] + HRESULT _NewEnum([out, retval] IUnknown** ppenum); + + [id(1), propget] + HRESULT Count([out, retval] long* count); + }; + + [ + uuid(f935dc27-1cf0-11d0-adb9-00c04fd58a0b), + odl, + dual, + oleautomation + ] + interface IWshCollection : IDispatch { + [id(DISPID_VALUE)] + HRESULT Item( + [in] VARIANT *Index, + [out, retval] VARIANT *out_Value); + + [id(1)] + HRESULT Count([out, retval] long *out_Count); + + [id(2), propget] + HRESULT length([out, retval] long *out_Count); + + [id(DISPID_NEWENUM)] + HRESULT _NewEnum([out, retval] IUnknown *out_Enum); + } + + [ + uuid(f935dc29-1cf0-11d0-adb9-00c04fd58a0b), + odl, + dual, + oleautomation + ] + interface IWshEnvironment : IDispatch { + [id(DISPID_VALUE), propget] + HRESULT Item( + [in] BSTR Name, + [out, retval] BSTR *out_Value); + + [id(DISPID_VALUE), propput] + HRESULT Item( + [in] BSTR Name, + [in] BSTR Value); + + [id(1)] + HRESULT Count([out, retval] long *out_Count); + + [id(2), propget] + HRESULT length([out, retval] long *out_Count); + + [id(DISPID_NEWENUM)] + HRESULT _NewEnum([out, retval] IUnknown **out_Enum); + + [id(0x03e9)] + HRESULT Remove([in] BSTR Name); + } + + [ + uuid(08fed190-be19-11d3-a28b-00104bd35090), + odl, + dual, + oleautomation + ] + interface IWshExec : IDispatch { + [id(0x0001), propget] + HRESULT Status([out, retval] WshExecStatus* Status); + + [id(0x0003), propget] + HRESULT StdIn([out, retval] ITextStream** stream); + + [id(0x0004), propget] + HRESULT StdOut([out, retval] ITextStream** stream); + + [id(0x0005), propget] + HRESULT StdErr([out, retval] ITextStream** stream); + + [id(0x0006), propget] + HRESULT ProcessID([out, retval] long* pid); + + [id(0x0007), propget] + HRESULT ExitCode([out, retval] long* ExitCode); + + [id(0x0008)] + HRESULT Terminate(); + }; + + [ + uuid(f935dc23-1cf0-11d0-adb9-00c04fd58a0b), + odl, + dual, + oleautomation + ] + interface IWshShortcut : IDispatch { + [id(DISPID_VALUE), propget] + HRESULT FullName([out, retval] BSTR* name); + + [id(0x03e8), propget] + HRESULT Arguments([out, retval] BSTR* Arguments); + + [id(0x03e8), propput] + HRESULT Arguments([in] BSTR Arguments); + + [id(0x03e9), propget] + HRESULT Description([out, retval] BSTR* Description); + + [id(0x03e9), propput] + HRESULT Description([in] BSTR Description); + + [id(0x03ea), propget] + HRESULT Hotkey([out, retval] BSTR* HotKey); + + [id(0x03ea), propput] + HRESULT Hotkey([in] BSTR HotKey); + + [id(0x03eb), propget] + HRESULT IconLocation([out, retval] BSTR* IconPath); + + [id(0x03eb), propput] + HRESULT IconLocation([in] BSTR IconPath); + + [id(0x03ec), propput] + HRESULT RelativePath([in] BSTR rhs); + + [id(0x03ed), propget] + HRESULT TargetPath([out, retval] BSTR* Path); + + [id(0x03ed), propput] + HRESULT TargetPath([in] BSTR Path); + + [id(0x03ee), propget] + HRESULT WindowStyle([out, retval] int* ShowCmd); + + [id(0x03ee), propput] + HRESULT WindowStyle([in] int ShowCmd); + + [id(0x03ef), propget] + HRESULT WorkingDirectory([out, retval] BSTR* WorkingDirectory); + + [id(0x03ef), propput] + HRESULT WorkingDirectory([in] BSTR WorkingDirectory); + + [id(0x07d0), hidden] + HRESULT Load([in] BSTR PathLink); + + [id(0x07d1)] + HRESULT Save(); + }; + + [ + uuid(f935dc21-1cf0-11d0-adb9-00c04fd58a0b), + odl, + dual, + oleautomation, + hidden + ] + interface IWshShell : IDispatch { + [id(0x0064), propget] + HRESULT SpecialFolders([out, retval] IWshCollection** out_Folders); + + [id(0x00c8), propget] + HRESULT Environment( + [in, optional] VARIANT* Type, + [out, retval] IWshEnvironment** out_Env); + + [id(0x03e8)] + HRESULT Run( + [in] BSTR Command, + [in, optional] VARIANT* WindowStyle, + [in, optional] VARIANT* WaitOnReturn, + [out, retval] int* out_ExitCode); + + [id(0x03e9)] + HRESULT Popup( + [in] BSTR Text, + [in, optional] VARIANT* SecondsToWait, + [in, optional] VARIANT* Title, + [in, optional] VARIANT* Type, + [out, retval] int* out_Button); + + [id(0x03ea)] + HRESULT CreateShortcut( + [in] BSTR PathLink, + [out, retval] IDispatch** out_Shortcut); + + [id(0x03ee)] + HRESULT ExpandEnvironmentStrings( + [in] BSTR Src, + [out, retval] BSTR* out_Dst); + + [id(0x07d0)] + HRESULT RegRead( + [in] BSTR Name, + [out, retval] VARIANT* out_Value); + + [id(0x07d1)] + HRESULT RegWrite( + [in] BSTR Name, + [in] VARIANT* Value, + [in, optional] VARIANT* Type); + + [id(0x07d2)] + HRESULT RegDelete([in] BSTR Name); + }; + + [ + uuid(24be5a30-edfe-11d2-b933-00104b365c9f), + odl, + dual, + oleautomation, + hidden + ] + interface IWshShell2 : IWshShell { + [id(0x0bb8)] + HRESULT LogEvent( + [in] VARIANT* Type, + [in] BSTR Message, + [in, defaultvalue("")] BSTR Target, + [out, retval] VARIANT_BOOL* out_Success); + + [id(0x0bc2)] + HRESULT AppActivate( + [in] VARIANT* App, + [in, optional] VARIANT* Wait, + [out, retval] VARIANT_BOOL* out_Success); + + [id(0x0bc3)] + HRESULT SendKeys( + [in] BSTR Keys, + [in, optional] VARIANT* Wait); + }; + + [ + uuid(41904400-be18-11d3-a28b-00104bd35090), + odl, + dual, + oleautomation + ] + interface IWshShell3 : IWshShell2 { + [id(0x0bc4)] + HRESULT Exec( + [in] BSTR Command, + [out, retval] IWshExec** out_Exec); + + [id(0x0bc5), propget] + HRESULT CurrentDirectory([out, retval] BSTR* out_Directory); + + [id(0x0bc5), propput] + HRESULT CurrentDirectory([in] BSTR out_Directory); + }; + + [ + uuid(24be5a31-edfe-11d2-b933-00104b365c9f), + odl, + dual, + oleautomation + ] + interface IWshNetwork2 : IDispatch { + [id(0x60020000), propget] + HRESULT UserDomain([out, retval] BSTR *out_UserDomain); + } + + [ + helpstring("Windows Script Host Shell Object"), + uuid(f935dc22-1cf0-11d0-adb9-00c04fd58a0b), + threading(apartment), + progid("WScript.Shell.1"), + vi_progid("WScript.Shell") + ] + coclass IWshShell_Class { + [default] interface IWshShell3; + } + + [ + helpstring("Windows Script Host Shell Object"), + uuid(72c24dd5-d70a-438b-8a42-98424b88afb8), + threading(apartment), + progid("WScript.Shell.1"), + vi_progid("WScript.Shell") + ] + coclass WshShell { + [default] interface IWshShell3; + } + + [ + helpstring("Windows Script Host Network Object"), + uuid(f935dc26-1cf0-11d0-adb9-00c04fd58a0b), + threading(apartment), + progid("WScript.Network.1"), + vi_progid("WScript.Network") + ] + coclass IWshNetwork_Class { + [default] interface IWshNetwork2; + } + + [ + helpstring("Windows Script Host Network Object"), + uuid(093ff999-1ea0-4079-9525-9614c3504b74), + threading(apartment), + progid("WScript.Network.1"), + vi_progid("WScript.Network") + ] + coclass WshNetwork { + [default] interface IWshNetwork2; + } +} diff --git a/dll/win32/wshom.ocx/wshom.ocx.spec b/dll/win32/wshom.ocx/wshom.ocx.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dll/win32/wshom.ocx/wshom.ocx.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dll/win32/wshom.ocx/wshom.rc b/dll/win32/wshom.ocx/wshom.rc new file mode 100644 index 00000000000..806e788de57 --- /dev/null +++ b/dll/win32/wshom.ocx/wshom.rc @@ -0,0 +1,27 @@ +/* + * Copyright 2011 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +/* @makedep: wshom.rgs */ +1 WINE_REGISTRY wshom.rgs + +2 WINE_REGISTRY wshom.tlb.rgs +1 TYPELIB wshom.tlb diff --git a/dll/win32/wshom.ocx/wshom.rgs b/dll/win32/wshom.ocx/wshom.rgs new file mode 100644 index 00000000000..ce0ec772187 --- /dev/null +++ b/dll/win32/wshom.ocx/wshom.rgs @@ -0,0 +1,34 @@ +HKCR +{ + NoRemove CLSID + { + '{f935dc22-1cf0-11d0-adb9-00c04fd58a0b}' + { + 'Implemented Categories' + { + '{40fc6ed5-2438-11cf-a3db-080036f12502}' + } + } + '{72c24dd5-d70a-438b-8a42-98424b88afb8}' + { + 'Implemented Categories' + { + '{40fc6ed5-2438-11cf-a3db-080036f12502}' + } + } + '{f935dc26-1cf0-11d0-adb9-00c04fd58a0b}' + { + 'Implemented Categories' + { + '{40fc6ed5-2438-11cf-a3db-080036f12502}' + } + } + '{093ff999-1ea0-4079-9525-9614c3504b74}' + { + 'Implemented Categories' + { + '{40fc6ed5-2438-11cf-a3db-080036f12502}' + } + } + } +} diff --git a/dll/win32/wshom.ocx/wshom.tlb.rgs b/dll/win32/wshom.ocx/wshom.tlb.rgs new file mode 100644 index 00000000000..f6a4ed0650c --- /dev/null +++ b/dll/win32/wshom.ocx/wshom.tlb.rgs @@ -0,0 +1,172 @@ +HKCR +{ + NoRemove Typelib + { + NoRemove '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' + { + '1.0' = s 'Windows Script Host Object Model' + { + '0' { win32 = s '%MODULE%' } + FLAGS = s '0' + } + } + } + NoRemove Interface + { + '{53BAD8C1-E718-11CF-893D-00A0C9054228}' = s 'ITextStream' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{C7C3F5A0-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IDrive' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{C7C3F5A4-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IFile' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{C7C3F5A5-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IFileCollection' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{C7C3F5A2-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IFolder' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{C7C3F5A3-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IFolderCollection' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{F935DC27-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'IWshCollection' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{F935DC29-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'IWshEnvironment' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{08FED190-BE19-11D3-A28B-00104BD35090}' = s 'IWshExec' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{F935DC23-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'IWshShortcut' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{F935DC21-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'IWshShell' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{24BE5A30-EDFE-11D2-B933-00104B365C9F}' = s 'IWshShell2' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{41904400-BE18-11D3-A28B-00104BD35090}' = s 'IWshShell3' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + '{24BE5A31-EDFE-11D2-B933-00104B365C9F}' = s 'IWshNetwork2' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' } + } + } + NoRemove CLSID + { + '{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'Windows Script Host Shell Object' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + ProgId = s 'WScript.Shell.1' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' + Version = s '1.0' + VersionIndependentProgId = s 'WScript.Shell' + } + '{72C24DD5-D70A-438B-8A42-98424B88AFB8}' = s 'Windows Script Host Shell Object' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + ProgId = s 'WScript.Shell.1' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' + Version = s '1.0' + VersionIndependentProgId = s 'WScript.Shell' + } + '{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'Windows Script Host Network Object' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + ProgId = s 'WScript.Network.1' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' + Version = s '1.0' + VersionIndependentProgId = s 'WScript.Network' + } + '{093FF999-1EA0-4079-9525-9614C3504B74}' = s 'Windows Script Host Network Object' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + ProgId = s 'WScript.Network.1' + TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' + Version = s '1.0' + VersionIndependentProgId = s 'WScript.Network' + } + } + 'WScript.Shell.1' = s 'Windows Script Host Shell Object' + { + CLSID = s '{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}' + } + 'WScript.Shell' = s 'Windows Script Host Shell Object' + { + CLSID = s '{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}' + CurVer = s 'WScript.Shell.1' + } + 'WScript.Shell.1' = s 'Windows Script Host Shell Object' + { + CLSID = s '{72C24DD5-D70A-438B-8A42-98424B88AFB8}' + } + 'WScript.Shell' = s 'Windows Script Host Shell Object' + { + CLSID = s '{72C24DD5-D70A-438B-8A42-98424B88AFB8}' + CurVer = s 'WScript.Shell.1' + } + 'WScript.Network.1' = s 'Windows Script Host Network Object' + { + CLSID = s '{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}' + } + 'WScript.Network' = s 'Windows Script Host Network Object' + { + CLSID = s '{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}' + CurVer = s 'WScript.Network.1' + } + 'WScript.Network.1' = s 'Windows Script Host Network Object' + { + CLSID = s '{093FF999-1EA0-4079-9525-9614C3504B74}' + } + 'WScript.Network' = s 'Windows Script Host Network Object' + { + CLSID = s '{093FF999-1EA0-4079-9525-9614C3504B74}' + CurVer = s 'WScript.Network.1' + } +} diff --git a/dll/win32/wshom.ocx/wshom_main.c b/dll/win32/wshom.ocx/wshom_main.c new file mode 100644 index 00000000000..2e086ce337f --- /dev/null +++ b/dll/win32/wshom.ocx/wshom_main.c @@ -0,0 +1,205 @@ +/* + * Copyright 2011 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "wshom_private.h" + +#include + +static HINSTANCE wshom_instance; + +static ITypeLib *typelib; +static ITypeInfo *typeinfos[LAST_tid]; + +static REFIID tid_ids[] = { + &IID_NULL, + &IID_IWshCollection, + &IID_IWshEnvironment, + &IID_IWshShell3, + &IID_IWshShortcut +}; + +static HRESULT load_typelib(void) +{ + HRESULT hres; + ITypeLib *tl; + + hres = LoadRegTypeLib(&LIBID_IWshRuntimeLibrary, 1, 0, LOCALE_SYSTEM_DEFAULT, &tl); + if(FAILED(hres)) { + ERR("LoadRegTypeLib failed: %08x\n", hres); + return hres; + } + + if(InterlockedCompareExchangePointer((void**)&typelib, tl, NULL)) + ITypeLib_Release(tl); + return hres; +} + +HRESULT get_typeinfo(tid_t tid, ITypeInfo **typeinfo) +{ + HRESULT hres; + + if (!typelib) + hres = load_typelib(); + if (!typelib) + return hres; + + if(!typeinfos[tid]) { + ITypeInfo *ti; + + hres = ITypeLib_GetTypeInfoOfGuid(typelib, tid_ids[tid], &ti); + if(FAILED(hres)) { + ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_guid(tid_ids[tid]), hres); + return hres; + } + + if(InterlockedCompareExchangePointer((void**)(typeinfos+tid), ti, NULL)) + ITypeInfo_Release(ti); + } + + *typeinfo = typeinfos[tid]; + ITypeInfo_AddRef(*typeinfo); + return S_OK; +} + +static +void release_typelib(void) +{ + unsigned i; + + if(!typelib) + return; + + for(i=0; i < sizeof(typeinfos)/sizeof(*typeinfos); i++) + if(typeinfos[i]) + ITypeInfo_Release(typeinfos[i]); + + ITypeLib_Release(typelib); +} + +static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv) +{ + *ppv = NULL; + + if(IsEqualGUID(&IID_IUnknown, riid)) { + TRACE("(%p)->(IID_IUnknown %p)\n", iface, ppv); + *ppv = iface; + }else if(IsEqualGUID(&IID_IClassFactory, riid)) { + TRACE("(%p)->(IID_IClassFactory %p)\n", iface, ppv); + *ppv = iface; + } + + if(*ppv) { + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + FIXME("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppv); + return E_NOINTERFACE; +} + +static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface) +{ + TRACE("(%p)\n", iface); + return 2; +} + +static ULONG WINAPI ClassFactory_Release(IClassFactory *iface) +{ + TRACE("(%p)\n", iface); + return 1; +} + +static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock) +{ + TRACE("(%p)->(%x)\n", iface, fLock); + return S_OK; +} + +static const IClassFactoryVtbl WshShellFactoryVtbl = { + ClassFactory_QueryInterface, + ClassFactory_AddRef, + ClassFactory_Release, + WshShellFactory_CreateInstance, + ClassFactory_LockServer +}; + +static IClassFactory WshShellFactory = { &WshShellFactoryVtbl }; + +/****************************************************************** + * DllMain (wshom.ocx.@) + */ +BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) +{ + TRACE("(%p %d %p)\n", hInstDLL, fdwReason, lpv); + + switch(fdwReason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + case DLL_PROCESS_ATTACH: + wshom_instance = hInstDLL; + DisableThreadLibraryCalls(wshom_instance); + break; + case DLL_PROCESS_DETACH: + if (lpv) break; + release_typelib(); + break; + } + + return TRUE; +} + +/*********************************************************************** + * DllGetClassObject (wshom.ocx.@) + */ +HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) +{ + if(IsEqualGUID(&CLSID_WshShell, rclsid)) { + TRACE("(CLSID_WshShell %s %p)\n", debugstr_guid(riid), ppv); + return IClassFactory_QueryInterface(&WshShellFactory, riid, ppv); + } + + FIXME("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv); + return CLASS_E_CLASSNOTAVAILABLE; +} + +/*********************************************************************** + * DllCanUnloadNow (wshom.ocx.@) + */ +HRESULT WINAPI DllCanUnloadNow(void) +{ + return S_FALSE; +} + +/*********************************************************************** + * DllRegisterServer (wshom.ocx.@) + */ +HRESULT WINAPI DllRegisterServer(void) +{ + TRACE("()\n"); + return __wine_register_resources(wshom_instance); +} + +/*********************************************************************** + * DllUnregisterServer (wshom.ocx.@) + */ +HRESULT WINAPI DllUnregisterServer(void) +{ + TRACE("()\n"); + return __wine_unregister_resources(wshom_instance); +} diff --git a/dll/win32/wshom.ocx/wshom_private.h b/dll/win32/wshom.ocx/wshom_private.h new file mode 100644 index 00000000000..be1ef22259c --- /dev/null +++ b/dll/win32/wshom.ocx/wshom_private.h @@ -0,0 +1,47 @@ +/* + * Copyright 2011 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _WSHOM_PRIVATE_H_ +#define _WSHOM_PRIVATE_H_ + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COBJMACROS + +#include +#include +#include + +#include +WINE_DEFAULT_DEBUG_CHANNEL(wshom); + +/* typelibs */ +typedef enum tid_t { + NULL_tid, + IWshCollection_tid, + IWshEnvironment_tid, + IWshShell3_tid, + IWshShortcut_tid, + LAST_tid +} tid_t; + +HRESULT get_typeinfo(tid_t tid, ITypeInfo **typeinfo) DECLSPEC_HIDDEN; + +HRESULT WINAPI WshShellFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**) DECLSPEC_HIDDEN; + +#endif /* _WSHOM_PRIVATE_H_ */ diff --git a/drivers/base/beep/beep.c b/drivers/base/beep/beep.c index 9ba86705527..7eb64c2390b 100644 --- a/drivers/base/beep/beep.c +++ b/drivers/base/beep/beep.c @@ -339,7 +339,7 @@ BeepStartIo(IN PDEVICE_OBJECT DeviceObject, { /* Beep successful, queue a DPC to stop it */ Status = STATUS_SUCCESS; - DueTime.QuadPart = Int32x32To64(BeepParam->Duration, -10000); + DueTime.QuadPart = BeepParam->Duration * -10000LL; InterlockedIncrement(&DeviceExtension->TimerActive); KeSetTimer(&DeviceExtension->Timer, DueTime, &DeviceObject->Dpc); } diff --git a/drivers/filesystems/fastfat/fsctl.c b/drivers/filesystems/fastfat/fsctl.c index ab9d3afae2f..bc722f8a644 100644 --- a/drivers/filesystems/fastfat/fsctl.c +++ b/drivers/filesystems/fastfat/fsctl.c @@ -865,14 +865,16 @@ VfatLockOrUnlockVolume( { PFILE_OBJECT FileObject; PDEVICE_EXTENSION DeviceExt; + PVFATFCB Fcb; DPRINT("VfatLockOrUnlockVolume(%p, %d)\n", IrpContext, Lock); DeviceExt = IrpContext->DeviceExt; FileObject = IrpContext->FileObject; + Fcb = FileObject->FsContext; /* Only allow locking with the volume open */ - if (FileObject->FsContext != DeviceExt->VolumeFcb) + if (!(Fcb->Flags & FCB_IS_VOLUME)) { return STATUS_ACCESS_DENIED; } @@ -911,10 +913,12 @@ VfatDismountVolume( PDEVICE_EXTENSION DeviceExt; PLIST_ENTRY NextEntry; PVFATFCB Fcb; + PFILE_OBJECT FileObject; DPRINT("VfatDismountVolume(%p)\n", IrpContext); DeviceExt = IrpContext->DeviceExt; + FileObject = IrpContext->FileObject; /* We HAVE to be locked. Windows also allows dismount with no lock * but we're here mainly for 1st stage, so KISS @@ -935,30 +939,8 @@ VfatDismountVolume( ExAcquireResourceExclusiveLite(&DeviceExt->FatResource, TRUE); - /* Browse all the available FCBs first, and force data writing to disk */ - for (NextEntry = DeviceExt->FcbListHead.Flink; - NextEntry != &DeviceExt->FcbListHead; - NextEntry = NextEntry->Flink) - { - Fcb = CONTAINING_RECORD(NextEntry, VFATFCB, FcbListEntry); - - ExAcquireResourceExclusiveLite(&Fcb->MainResource, TRUE); - ExAcquireResourceExclusiveLite(&Fcb->PagingIoResource, TRUE); - - if (Fcb->FileObject) - { - if (Fcb->Flags & FCB_IS_DIRTY) - { - VfatUpdateEntry(Fcb); - } - - CcPurgeCacheSection(Fcb->FileObject->SectionObjectPointer, NULL, 0, FALSE); - CcUninitializeCacheMap(Fcb->FileObject, &Fcb->RFCB.FileSize, NULL); - } - - ExReleaseResourceLite(&Fcb->PagingIoResource); - ExReleaseResourceLite(&Fcb->MainResource); - } + /* Flush volume & files */ + VfatFlushVolume(DeviceExt, (PVFATFCB)FileObject->FsContext); /* Rebrowse the FCB in order to free them now */ while (!IsListEmpty(&DeviceExt->FcbListHead)) diff --git a/drivers/filesystems/ntfs/mft.c b/drivers/filesystems/ntfs/mft.c index f91e67b719c..3e83fe8efaa 100644 --- a/drivers/filesystems/ntfs/mft.c +++ b/drivers/filesystems/ntfs/mft.c @@ -492,7 +492,6 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ULONGLONG *OutMFTIndex) { PFILE_RECORD_HEADER MftRecord; - //ULONG Magic; PNTFS_ATTR_CONTEXT IndexRootCtx; PNTFS_ATTR_CONTEXT IndexBitmapCtx; PNTFS_ATTR_CONTEXT IndexAllocationCtx; @@ -520,7 +519,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, if (NT_SUCCESS(ReadFileRecord(Vcb, MFTIndex, MftRecord))) { - //Magic = MftRecord->Magic; + ASSERT(MftRecord->Ntfs.Type == NRH_FILE_TYPE); Status = FindAttribute(Vcb, MftRecord, AttributeIndexRoot, L"$I30", 4, &IndexRootCtx); if (!NT_SUCCESS(Status)) @@ -630,7 +629,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, } IndexBuffer = (PINDEX_BUFFER)IndexRecord; - ASSERT(IndexBuffer->Ntfs.Type == 'XDNI'); + ASSERT(IndexBuffer->Ntfs.Type == NRH_INDX_TYPE); ASSERT(IndexBuffer->Header.AllocatedSize + 0x18 == IndexBlockSize); IndexEntry = (PINDEX_ENTRY_ATTRIBUTE)((ULONG_PTR)&IndexBuffer->Header + IndexBuffer->Header.FirstEntryOffset); IndexEntryEnd = (PINDEX_ENTRY_ATTRIBUTE)((ULONG_PTR)&IndexBuffer->Header + IndexBuffer->Header.TotalSizeOfEntries); diff --git a/drivers/filesystems/ntfs/ntfs.h b/drivers/filesystems/ntfs/ntfs.h index 573b6ca186f..39db578fe63 100644 --- a/drivers/filesystems/ntfs/ntfs.h +++ b/drivers/filesystems/ntfs/ntfs.h @@ -208,6 +208,7 @@ typedef struct /* NTFS_RECORD_HEADER.Type */ #define NRH_FILE_TYPE 0x454C4946 /* 'FILE' */ +#define NRH_INDX_TYPE 0x58444E49 /* 'INDX' */ typedef struct _FILE_RECORD_HEADER diff --git a/drivers/usb/usbhub/pdo.c b/drivers/usb/usbhub/pdo.c index fdd5b8feb9a..9a1f50de850 100644 --- a/drivers/usb/usbhub/pdo.c +++ b/drivers/usb/usbhub/pdo.c @@ -18,6 +18,9 @@ #define IO_METHOD_FROM_CTL_CODE(ctlCode) (ctlCode&0x00000003) +DEFINE_GUID(GUID_DEVINTERFACE_USB_DEVICE, + 0xA5DCBF10L, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED); + NTSTATUS NTAPI UrbCompletion( @@ -408,8 +411,10 @@ USBHUB_PdoStartDevice( ASSERT(ChildDeviceExtension->Common.IsFDO == FALSE); // - // FIXME: Fow now assume success + // register device interface // + IoRegisterDeviceInterface(DeviceObject, &GUID_DEVINTERFACE_USB_DEVICE, NULL, &ChildDeviceExtension->SymbolicLinkName); + IoSetDeviceInterfaceState(&ChildDeviceExtension->SymbolicLinkName, TRUE); UNIMPLEMENTED return STATUS_SUCCESS; diff --git a/hal/halx86/generic/bios.c b/hal/halx86/generic/bios.c index 32157e0b601..7f32e430766 100644 --- a/hal/halx86/generic/bios.c +++ b/hal/halx86/generic/bios.c @@ -60,9 +60,14 @@ BOOLEAN FASTCALL HalpOpcodeInvalid(IN PHAL_BIOS_FRAME BiosFrame) { + PUCHAR Inst = (PUCHAR)(BiosFrame->CsBase + BiosFrame->Eip); + /* Print error message */ - DPRINT1("HAL: An invalid V86 opcode was encountered at address %x:%x\n", - BiosFrame->SegCs, BiosFrame->Eip); + DPRINT1("HAL: An invalid V86 opcode was encountered at address %X:%X\n", + "Opcode: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X", + BiosFrame->SegCs, BiosFrame->Eip, + Inst[0], Inst[1], Inst[2], Inst[3], Inst[4], + Inst[5], Inst[6], Inst[7], Inst[8], Inst[9]); /* Break */ DbgBreakPoint(); diff --git a/include/ndk/cmtypes.h b/include/ndk/cmtypes.h index 44133ade125..6f4322fb48f 100644 --- a/include/ndk/cmtypes.h +++ b/include/ndk/cmtypes.h @@ -418,6 +418,16 @@ typedef struct _PLUGPLAY_EVENT_BLOCK // Plug and Play Control Classes // +//Class 0x09 +typedef struct _PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA +{ + UNICODE_STRING DeviceInstance; + LPGUID FilterGuid; + ULONG Flags; + PVOID Buffer; + ULONG BufferSize; +} PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA, *PPLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA; + //Class 0x0A typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA { diff --git a/lib/fast486/common.c b/lib/fast486/common.c index a16b5914e41..147a5c01fc0 100644 --- a/lib/fast486/common.c +++ b/lib/fast486/common.c @@ -290,11 +290,8 @@ Fast486InterruptInternal(PFAST486_STATE State, if (GateSize != (State->SegmentRegs[FAST486_REG_CS].Size)) { - /* - * The gate size doesn't match the current operand size, so toggle - * the OPSIZE flag. - */ - State->PrefixFlags ^= FAST486_PREFIX_OPSIZE; + /* The gate size doesn't match the current operand size, so set the OPSIZE flag. */ + State->PrefixFlags |= FAST486_PREFIX_OPSIZE; } /* Check if the interrupt handler is more privileged */ @@ -310,8 +307,11 @@ Fast486InterruptInternal(PFAST486_STATE State, goto Cleanup; } + /* Switch to the new privilege level */ + State->Cpl = GET_SEGMENT_RPL(SegmentSelector); + /* Check the new (higher) privilege level */ - switch (GET_SEGMENT_RPL(SegmentSelector)) + switch (State->Cpl) { case 0: { @@ -466,6 +466,9 @@ Fast486ExceptionWithErrorCode(PFAST486_STATE State, return; } + /* Clear the prefix flags */ + State->PrefixFlags = 0; + /* Restore the IP to the saved IP */ State->InstPtr = State->SavedInstPtr; @@ -563,7 +566,8 @@ Fast486TaskSwitch(PFAST486_STATE State, FAST486_TASK_SWITCH_TYPE Type, USHORT Se if (NewTssLimit < sizeof(FAST486_TSS)) { /* TSS limit too small */ - Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_TS, Selector); + Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_TS, Selector); + return FALSE; } /* diff --git a/lib/fast486/common.inl b/lib/fast486/common.inl index 73bb537a7ae..381ed032cdc 100644 --- a/lib/fast486/common.inl +++ b/lib/fast486/common.inl @@ -112,13 +112,12 @@ Fast486GetPageTableEntry(PFAST486_STATE State, /* Make sure it is present */ if (!TableEntry.Present) return 0; - if (MarkAsDirty) TableEntry.Dirty = TRUE; - - /* Was the table entry accessed before? */ - if (!TableEntry.Accessed) + /* Do we need to change any flags? */ + if (!TableEntry.Accessed || (MarkAsDirty && !TableEntry.Dirty)) { - /* Well, it is now */ + /* Mark it as accessed and optionally dirty too */ TableEntry.Accessed = TRUE; + if (MarkAsDirty) TableEntry.Dirty = TRUE; /* Write back the table entry */ State->MemWriteCallback(State, @@ -170,15 +169,6 @@ Fast486ReadLinearMemory(PFAST486_STATE State, /* Get the table entry */ TableEntry.Value = Fast486GetPageTableEntry(State, Page, FALSE); - if (!TableEntry.Present || (!TableEntry.Usermode && (Cpl > 0))) - { - /* Exception */ - Fast486ExceptionWithErrorCode(State, - FAST486_EXCEPTION_PF, - TableEntry.Present | (State->Cpl ? 0x04 : 0)); - return FALSE; - } - /* Check if this is the first page */ if (Page == PAGE_ALIGN(LinearAddress)) { @@ -187,6 +177,17 @@ Fast486ReadLinearMemory(PFAST486_STATE State, PageLength -= PageOffset; } + if (!TableEntry.Present || (!TableEntry.Usermode && (Cpl > 0))) + { + State->ControlRegisters[FAST486_REG_CR2] = Page + PageOffset; + + /* Exception */ + Fast486ExceptionWithErrorCode(State, + FAST486_EXCEPTION_PF, + TableEntry.Present | (State->Cpl ? 0x04 : 0)); + return FALSE; + } + /* Check if this is the last page */ if (Page == PAGE_ALIGN(LinearAddress + Size - 1)) { @@ -237,17 +238,6 @@ Fast486WriteLinearMemory(PFAST486_STATE State, /* Get the table entry */ TableEntry.Value = Fast486GetPageTableEntry(State, Page, TRUE); - if ((!TableEntry.Present || (!TableEntry.Usermode && (Cpl > 0))) - || ((State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_WP) - && !TableEntry.Writeable)) - { - /* Exception */ - Fast486ExceptionWithErrorCode(State, - FAST486_EXCEPTION_PF, - TableEntry.Present | 0x02 | (State->Cpl ? 0x04 : 0)); - return FALSE; - } - /* Check if this is the first page */ if (Page == PAGE_ALIGN(LinearAddress)) { @@ -256,6 +246,19 @@ Fast486WriteLinearMemory(PFAST486_STATE State, PageLength -= PageOffset; } + if ((!TableEntry.Present || (!TableEntry.Usermode && (Cpl > 0))) + || ((State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_WP) + && !TableEntry.Writeable)) + { + State->ControlRegisters[FAST486_REG_CR2] = Page + PageOffset; + + /* Exception */ + Fast486ExceptionWithErrorCode(State, + FAST486_EXCEPTION_PF, + TableEntry.Present | 0x02 | (State->Cpl ? 0x04 : 0)); + return FALSE; + } + /* Check if this is the last page */ if (Page == PAGE_ALIGN(LinearAddress + Size - 1)) { @@ -508,6 +511,7 @@ Fast486LoadSegmentInternal(PFAST486_STATE State, { /* Invalid selector */ Fast486ExceptionWithErrorCode(State, Exception, Selector); + return FALSE; } if (Segment == FAST486_REG_SS) @@ -565,6 +569,7 @@ Fast486LoadSegmentInternal(PFAST486_STATE State, { /* Must be a segment descriptor */ Fast486ExceptionWithErrorCode(State, Exception, Selector); + return FALSE; } if (!GdtEntry.Present) diff --git a/lib/fast486/extraops.c b/lib/fast486/extraops.c index 1f2fc727697..48e25f4ada9 100644 --- a/lib/fast486/extraops.c +++ b/lib/fast486/extraops.c @@ -752,7 +752,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBitTest) * For memory operands, add the bit offset divided by * the data size to the address */ - ModRegRm.MemoryAddress += BitNumber / DataSize; + ModRegRm.MemoryAddress += (BitNumber / DataSize) * (DataSize / 8); } /* Normalize the bit number */ @@ -936,7 +936,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBts) * For memory operands, add the bit offset divided by * the data size to the address */ - ModRegRm.MemoryAddress += BitNumber / DataSize; + ModRegRm.MemoryAddress += (BitNumber / DataSize) * (DataSize / 8); } /* Normalize the bit number */ @@ -1378,7 +1378,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtr) * For memory operands, add the bit offset divided by * the data size to the address */ - ModRegRm.MemoryAddress += BitNumber / DataSize; + ModRegRm.MemoryAddress += (BitNumber / DataSize) * (DataSize / 8); } /* Normalize the bit number */ @@ -1592,7 +1592,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtc) * For memory operands, add the bit offset divided by * the data size to the address */ - ModRegRm.MemoryAddress += BitNumber / DataSize; + ModRegRm.MemoryAddress += (BitNumber / DataSize) * (DataSize / 8); } /* Normalize the bit number */ diff --git a/lib/fast486/fpu.h b/lib/fast486/fpu.h index b23c795d32b..056ef8335d2 100644 --- a/lib/fast486/fpu.h +++ b/lib/fast486/fpu.h @@ -28,7 +28,7 @@ /* DEFINES ********************************************************************/ -#define FPU_CHECK() if (State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_EM) \ +#define FPU_CHECK() if (State->ControlRegisters[FAST486_REG_CR0] & (FAST486_CR0_EM | FAST486_CR0_TS)) \ { \ Fast486Exception(State, FAST486_EXCEPTION_NM); \ return; \ diff --git a/media/doc/README.WINE b/media/doc/README.WINE index d8915e789a3..a0cf79011f5 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -221,6 +221,7 @@ reactos/dll/win32/winscard # Synced to Wine-1.7.27 reactos/dll/win32/wintrust # Synced to Wine-1.7.27 reactos/dll/win32/wldap32 # Synced to Wine-1.7.27 reactos/dll/win32/wmi # Synced to Wine-1.7.27 +reactos/dll/win32/wshom.ocx # Synced to Wine-1.7.27 reactos/dll/win32/wtsapi32 # Synced to Wine-1.7.27 reactos/dll/win32/wuapi # Synced to Wine-1.7.27 reactos/dll/win32/xinput1_1 # Synced to Wine-1.7.27 @@ -233,9 +234,11 @@ reactos/dll/cpl/inetcpl # Synced to Wine-1.7.27 ReactOS shares the following programs with Winehq. +reactos/base/applications/cmdutils/cscript # Synced to Wine-1.7.27 reactos/base/applications/cmdutils/reg # Synced to Wine-1.7.27 reactos/base/applications/cmdutils/taskkill # Synced to Wine-1.7.27 reactos/base/applications/cmdutils/wmic # Synced to Wine-1.7.27 +reactos/base/applications/cmdutils/wscript # Synced to Wine-1.7.27 reactos/base/applications/cmdutils/xcopy # Synced to Wine-1.7.27 reactos/base/applications/games/winmine # Forked at Wine-1_3_5 reactos/base/applications/extrac32 # Synced to Wine-1.7.27 diff --git a/media/inf/syssetup.inf b/media/inf/syssetup.inf index 6bdfa972eb2..85349fc299d 100644 --- a/media/inf/syssetup.inf +++ b/media/inf/syssetup.inf @@ -102,6 +102,7 @@ AddReg=Classes 11,,winhttp.dll,1 11,,wininet.dll,2 11,,wintrust.dll,1 +11,,wshom.ocx,1 11,,wuapi.dll,1 11,wbem,wbemdisp.dll,1 11,wbem,wbemprox.dll,1 diff --git a/ntoskrnl/io/iomgr/deviface.c b/ntoskrnl/io/iomgr/deviface.c index 73b87ea9ffb..cfb37ef511c 100644 --- a/ntoskrnl/io/iomgr/deviface.c +++ b/ntoskrnl/io/iomgr/deviface.c @@ -462,6 +462,8 @@ IoGetDeviceInterfaces(IN CONST GUID *InterfaceClassGuid, PKEY_BASIC_INFORMATION ReferenceBi = NULL; PKEY_VALUE_PARTIAL_INFORMATION bip = NULL; PKEY_VALUE_PARTIAL_INFORMATION PartialInfo; + PEXTENDED_DEVOBJ_EXTENSION DeviceObjectExtension; + PUNICODE_STRING InstanceDevicePath = NULL; UNICODE_STRING KeyName; OBJECT_ATTRIBUTES ObjectAttributes; BOOLEAN FoundRightPDO = FALSE; @@ -471,6 +473,29 @@ IoGetDeviceInterfaces(IN CONST GUID *InterfaceClassGuid, PAGED_CODE(); + if (PhysicalDeviceObject != NULL) + { + /* Parameters must pass three border of checks */ + DeviceObjectExtension = (PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension; + + /* 1st level: Presence of a Device Node */ + if (DeviceObjectExtension->DeviceNode == NULL) + { + DPRINT("PhysicalDeviceObject 0x%p doesn't have a DeviceNode\n", PhysicalDeviceObject); + return STATUS_INVALID_DEVICE_REQUEST; + } + + /* 2nd level: Presence of an non-zero length InstancePath */ + if (DeviceObjectExtension->DeviceNode->InstancePath.Length == 0) + { + DPRINT("PhysicalDeviceObject 0x%p's DOE has zero-length InstancePath\n", PhysicalDeviceObject); + return STATUS_INVALID_DEVICE_REQUEST; + } + + InstanceDevicePath = &DeviceObjectExtension->DeviceNode->InstancePath; + } + + Status = IopOpenInterfaceKey(InterfaceClassGuid, KEY_ENUMERATE_SUB_KEYS, &InterfaceKey); if (!NT_SUCCESS(Status)) { @@ -542,10 +567,46 @@ IoGetDeviceInterfaces(IN CONST GUID *InterfaceClassGuid, /* Check if we are on the right physical device object, * by reading the DeviceInstance string */ - DPRINT1("PhysicalDeviceObject != NULL. Case not implemented.\n"); - //FoundRightPDO = TRUE; - Status = STATUS_NOT_IMPLEMENTED; - goto cleanup; + RtlInitUnicodeString(&KeyName, L"DeviceInstance"); + Status = ZwQueryValueKey(DeviceKey, &KeyName, KeyValuePartialInformation, NULL, 0, &NeededLength); + if (Status == STATUS_BUFFER_TOO_SMALL) + { + ActualLength = NeededLength; + PartialInfo = ExAllocatePool(NonPagedPool, ActualLength); + if (!PartialInfo) + { + Status = STATUS_INSUFFICIENT_RESOURCES; + goto cleanup; + } + + Status = ZwQueryValueKey(DeviceKey, &KeyName, KeyValuePartialInformation, PartialInfo, ActualLength, &NeededLength); + if (!NT_SUCCESS(Status)) + { + DPRINT1("ZwQueryValueKey #2 failed (%x)\n", Status); + ExFreePool(PartialInfo); + goto cleanup; + } + if (PartialInfo->DataLength == InstanceDevicePath->Length) + { + if (RtlCompareMemory(PartialInfo->Data, InstanceDevicePath->Buffer, InstanceDevicePath->Length) == InstanceDevicePath->Length) + { + /* found right pdo */ + FoundRightPDO = TRUE; + } + } + ExFreePool(PartialInfo); + PartialInfo = NULL; + if (!FoundRightPDO) + { + /* not yet found */ + continue; + } + } + else + { + /* error */ + break; + } } /* Enumerate subkeys (ie the different reference strings) */ diff --git a/ntoskrnl/io/iomgr/file.c b/ntoskrnl/io/iomgr/file.c index 6b454d9b858..febc5e517b9 100644 --- a/ntoskrnl/io/iomgr/file.c +++ b/ntoskrnl/io/iomgr/file.c @@ -404,6 +404,27 @@ IopParseDevice(IN PVOID ParseObject, /* Check if we can simply use a dummy file */ UseDummyFile = ((OpenPacket->QueryOnly) || (OpenPacket->DeleteOnly)); + /* FIXME: Small hack still exists, have to check why... + * This is triggered multiple times by usetup and then once per boot. + */ + if (ExpInTextModeSetup && + !(DirectOpen) && + !(RemainingName->Length) && + !(OpenPacket->RelatedFileObject) && + ((wcsstr(CompleteName->Buffer, L"Harddisk")) || + (wcsstr(CompleteName->Buffer, L"Floppy"))) && + !(UseDummyFile)) + { + DPRINT1("Using IopParseDevice() hack. Requested invalid attributes: %lx\n", + DesiredAccess & ~(SYNCHRONIZE | + FILE_READ_ATTRIBUTES | + READ_CONTROL | + ACCESS_SYSTEM_SECURITY | + WRITE_OWNER | + WRITE_DAC)); + DirectOpen = TRUE; + } + /* Check if this is a direct open */ if (!(RemainingName->Length) && !(OpenPacket->RelatedFileObject) && diff --git a/ntoskrnl/io/pnpmgr/plugplay.c b/ntoskrnl/io/pnpmgr/plugplay.c index 8b088f5a055..b607a74f42f 100644 --- a/ntoskrnl/io/pnpmgr/plugplay.c +++ b/ntoskrnl/io/pnpmgr/plugplay.c @@ -199,8 +199,7 @@ IopCaptureUnicodeString(PUNICODE_STRING DstName, PUNICODE_STRING SrcName) } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - if (Name.Buffer) - ExFreePool(Name.Buffer); + if (Name.Buffer) ExFreePool(Name.Buffer); Status = _SEH2_GetExceptionCode(); } _SEH2_END; @@ -208,6 +207,69 @@ IopCaptureUnicodeString(PUNICODE_STRING DstName, PUNICODE_STRING SrcName) return Status; } +static NTSTATUS +IopGetInterfaceDeviceList(PPLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA DeviceList) +{ + NTSTATUS Status; + UNICODE_STRING DeviceInstance; + PDEVICE_OBJECT DeviceObject = NULL; + ULONG BufferSize = 0; + GUID FilterGuid; + PZZWSTR SymbolicLinkList = NULL, LinkList; + ULONG TotalLength = 0; + + _SEH2_TRY + { + ProbeForRead(DeviceList->FilterGuid, sizeof(GUID), sizeof(UCHAR)); + RtlCopyMemory(&FilterGuid, DeviceList->FilterGuid, sizeof(GUID)); + + if (DeviceList->Buffer != NULL && DeviceList->BufferSize != 0) + { + BufferSize = DeviceList->BufferSize; + ProbeForWrite(DeviceList->Buffer, BufferSize, sizeof(UCHAR)); + } + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + _SEH2_YIELD(return _SEH2_GetExceptionCode()); + } + _SEH2_END; + + + Status = IopCaptureUnicodeString(&DeviceInstance, &DeviceList->DeviceInstance); + if (NT_SUCCESS(Status)) + { + /* Get the device object */ + DeviceObject = IopGetDeviceObjectFromDeviceInstance(&DeviceInstance); + ExFreePool(DeviceInstance.Buffer); + } + + Status = IoGetDeviceInterfaces(&FilterGuid, DeviceObject, DeviceList->Flags, &SymbolicLinkList); + ObDereferenceObject(DeviceObject); + + if (!NT_SUCCESS(Status)) + { + /* failed */ + return Status; + } + + LinkList = SymbolicLinkList; + while (*SymbolicLinkList != UNICODE_NULL) + { + TotalLength += (wcslen(SymbolicLinkList) + 1) * sizeof(WCHAR); + SymbolicLinkList += wcslen(SymbolicLinkList) + (sizeof(UNICODE_NULL) / sizeof(WCHAR)); + } + TotalLength += sizeof(UNICODE_NULL); + + if (BufferSize >= TotalLength) + { + RtlCopyMemory(DeviceList->Buffer, SymbolicLinkList, TotalLength * sizeof(WCHAR)); + } + DeviceList->BufferSize = TotalLength; + ExFreePool(LinkList); + return STATUS_SUCCESS; +} + static NTSTATUS IopGetDeviceProperty(PPLUGPLAY_CONTROL_PROPERTY_DATA PropertyData) { @@ -469,7 +531,9 @@ IopDeviceStatus(PPLUGPLAY_CONTROL_STATUS_DATA StatusData) Status = IopCaptureUnicodeString(&DeviceInstance, &StatusData->DeviceInstance); if (!NT_SUCCESS(Status)) + { return Status; + } DPRINT("Device name: '%wZ'\n", &DeviceInstance); _SEH2_TRY @@ -483,7 +547,7 @@ IopDeviceStatus(PPLUGPLAY_CONTROL_STATUS_DATA StatusData) } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - if (DeviceInstance.Buffer) ExFreePool(DeviceInstance.Buffer); + ExFreePool(DeviceInstance.Buffer); _SEH2_YIELD(return _SEH2_GetExceptionCode()); } _SEH2_END; @@ -492,7 +556,9 @@ IopDeviceStatus(PPLUGPLAY_CONTROL_STATUS_DATA StatusData) DeviceObject = IopGetDeviceObjectFromDeviceInstance(&DeviceInstance); ExFreePool(DeviceInstance.Buffer); if (DeviceObject == NULL) + { return STATUS_NO_SUCH_DEVICE; + } DeviceNode = IopGetDeviceNode(DeviceObject); @@ -554,7 +620,9 @@ IopGetDeviceDepth(PPLUGPLAY_CONTROL_DEPTH_DATA DepthData) DeviceObject = IopGetDeviceObjectFromDeviceInstance(&DeviceInstance); ExFreePool(DeviceInstance.Buffer); if (DeviceObject == NULL) + { return STATUS_NO_SUCH_DEVICE; + } DeviceNode = IopGetDeviceNode(DeviceObject); @@ -584,15 +652,18 @@ IopResetDevice(PPLUGPLAY_CONTROL_RESET_DEVICE_DATA ResetDeviceData) Status = IopCaptureUnicodeString(&DeviceInstance, &ResetDeviceData->DeviceInstance); if (!NT_SUCCESS(Status)) + { return Status; - + } DPRINT("IopResetDevice(%wZ)\n", &DeviceInstance); /* Get the device object */ DeviceObject = IopGetDeviceObjectFromDeviceInstance(&DeviceInstance); ExFreePool(DeviceInstance.Buffer); if (DeviceObject == NULL) + { return STATUS_NO_SUCH_DEVICE; + } /* Get the device node */ DeviceNode = IopGetDeviceNode(DeviceObject); @@ -865,6 +936,11 @@ NtPlugPlayControl(IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass, return STATUS_INVALID_PARAMETER; return IopRemovePlugPlayEvent(); + case PlugPlayControlGetInterfaceDeviceList: + if (!Buffer || BufferLength < sizeof(PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA)) + return STATUS_INVALID_PARAMETER; + return IopGetInterfaceDeviceList((PPLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA)Buffer); + case PlugPlayControlProperty: if (!Buffer || BufferLength < sizeof(PLUGPLAY_CONTROL_PROPERTY_DATA)) return STATUS_INVALID_PARAMETER; diff --git a/subsystems/ntvdm/bios/bios32/bios32.c b/subsystems/ntvdm/bios/bios32/bios32.c index 19725a028f0..069aded0309 100644 --- a/subsystems/ntvdm/bios/bios32/bios32.c +++ b/subsystems/ntvdm/bios/bios32/bios32.c @@ -31,6 +31,9 @@ #include "hardware/pic.h" #include "hardware/timer.h" +/* Extra PSDK/NDK Headers */ +#include + /* PRIVATE VARIABLES **********************************************************/ CALLBACK16 BiosContext; @@ -166,9 +169,11 @@ static VOID WINAPI BiosMiscService(LPWORD Stack) * See Ralf Brown: http://www.ctyme.com/intr/rb-1525.htm * for more information. */ + LARGE_INTEGER TimeOut; + TimeOut.QuadPart = MAKELONG(getDX(), getCX()) * -10LL; - // HACK: For now, use the Win32 API (that takes time in milliseconds). - Sleep(MAKELONG(getDX(), getCX()) / 1000); + // HACK: For now, use the NT API (time in hundreds of nanoseconds). + NtDelayExecution(FALSE, &TimeOut); /* Clear CF */ Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; @@ -293,7 +298,7 @@ static VOID WINAPI BiosBootstrapLoader(LPWORD Stack) * just call the DOS 32-bit initialization code. */ - DPRINT1("BiosBootstrapLoader -->\n"); + DPRINT("BiosBootstrapLoader -->\n"); /* Load DOS */ DosBootsectorInitialize(); @@ -310,7 +315,7 @@ static VOID WINAPI BiosBootstrapLoader(LPWORD Stack) Stack[STACK_CS] = 0x0000; Stack[STACK_IP] = 0x7C00; - DPRINT1("<-- BiosBootstrapLoader\n"); + DPRINT("<-- BiosBootstrapLoader\n"); } static VOID WINAPI BiosTimeService(LPWORD Stack) diff --git a/subsystems/ntvdm/dos/dem.c b/subsystems/ntvdm/dos/dem.c index 84443dec46b..da2cb349e0d 100644 --- a/subsystems/ntvdm/dos/dem.c +++ b/subsystems/ntvdm/dos/dem.c @@ -246,7 +246,7 @@ Command: } /* Start the process from the command line */ - DPRINT1("Starting '%s' ('%s')...\n", AppName, CmdLine); + DPRINT("Starting '%s' ('%s')...\n", AppName, CmdLine); Result = DosStartProcess(AppName, CmdLine, Env); if (Result != ERROR_SUCCESS) { @@ -294,7 +294,7 @@ VOID DosBootsectorInitialize(VOID) ULONG_PTR Address = (ULONG_PTR)SEG_OFF_TO_PTR(0x0000, 0x7C00); CHAR DosKernelFileName[] = ""; // No DOS file name, therefore we'll load DOS32 - DPRINT1("DosBootsectorInitialize\n"); + DPRINT("DosBootsectorInitialize\n"); /* Write the "bootsector" */ RtlCopyMemory((PVOID)Address, Bootsector1, sizeof(Bootsector1)); @@ -330,7 +330,7 @@ static VOID WINAPI DosInitialize(LPWORD Stack) LPCSTR DosKernelFileName = (LPCSTR)SEG_OFF_TO_PTR(getCS(), getIP()); setIP(getIP() + strlen(DosKernelFileName) + 1); // Skip it - DPRINT1("DosInitialize('%s')\n", DosKernelFileName); + DPRINT("DosInitialize('%s')\n", DosKernelFileName); /* Register the DOS BOPs */ RegisterBop(BOP_DOS, DosSystemBop ); @@ -414,7 +414,7 @@ static VOID WINAPI DosStart(LPWORD Stack) CHAR CommandLine[DOS_CMDLINE_LENGTH]; #endif - DPRINT1("DosStart\n"); + DPRINT("DosStart\n"); /* * We succeeded, deregister the DOS Starting BOP @@ -462,7 +462,7 @@ static VOID WINAPI DosStart(LPWORD Stack) DPRINT1("Starting '%s' ('%s')...\n", ApplicationName, CommandLine); Result = DosStartProcess(ApplicationName, CommandLine, - GetEnvironmentStrings()); + SEG_OFF_TO_PTR(SYSTEM_ENV_BLOCK, 0)); if (Result != ERROR_SUCCESS) { DisplayMessage(L"Could not start '%S'. Error: %u", ApplicationName, Result); diff --git a/subsystems/ntvdm/dos/dos32krnl/bios.c b/subsystems/ntvdm/dos/dos32krnl/bios.c index 5c0fbcc7d34..7c448737673 100644 --- a/subsystems/ntvdm/dos/dos32krnl/bios.c +++ b/subsystems/ntvdm/dos/dos32krnl/bios.c @@ -14,9 +14,19 @@ #include "int32.h" #include "dos.h" - #include "bios/bios.h" +// This is needed because on UNICODE this symbol is redirected to +// GetEnvironmentStringsW whereas on ANSI it corresponds to the real +// "ANSI" function (and GetEnvironmentStringsA is aliased to it). +#undef GetEnvironmentStrings + +// Symmetrize the dumbness of the previous symbol: on UNICODE +// FreeEnvironmentStrings aliases to FreeEnvironmentStringsW but +// on "ANSI" FreeEnvironmentStrings aliases to FreeEnvironmentStringsA +#undef FreeEnvironmentStrings +#define FreeEnvironmentStrings FreeEnvironmentStringsA + /* PRIVATE VARIABLES **********************************************************/ // static BYTE CurrentDrive; @@ -81,9 +91,7 @@ BOOLEAN DosBIOSInitialize(VOID) { PDOS_MCB Mcb = SEGMENT_TO_MCB(FIRST_MCB_SEGMENT); - LPWSTR SourcePtr, Environment; - LPSTR AsciiString; - DWORD AsciiSize; + LPSTR SourcePtr, Environment; LPSTR DestPtr = (LPSTR)SEG_OFF_TO_PTR(SYSTEM_ENV_BLOCK, 0); #if 0 @@ -114,55 +122,46 @@ BOOLEAN DosBIOSInitialize(VOID) Mcb->OwnerPsp = 0; /* Get the environment strings */ - SourcePtr = Environment = GetEnvironmentStringsW(); + SourcePtr = Environment = GetEnvironmentStrings(); if (Environment == NULL) return FALSE; /* Fill the DOS system environment block */ while (*SourcePtr) { - /* Get the size of the ASCII string */ - AsciiSize = WideCharToMultiByte(CP_ACP, - 0, - SourcePtr, - -1, - NULL, - 0, - NULL, - NULL); - - /* Allocate memory for the ASCII string */ - AsciiString = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, AsciiSize); - if (AsciiString == NULL) + /* + * - Ignore environment strings starting with a '=', + * they describe current directories. + * - Ignore also the WINDIR environment variable since + * DOS apps should ignore that we started from ReactOS. + * - Upper-case the environment names, not their values. + */ + if (*SourcePtr != '=' && _strnicmp(SourcePtr, "WINDIR", 6) != 0) { - FreeEnvironmentStringsW(Environment); - return FALSE; + PCHAR Delim = NULL; + + /* Copy the environment string */ + strcpy(DestPtr, SourcePtr); + + /* Upper-case the environment name */ + Delim = strchr(DestPtr, '='); // Find the '=' delimiter + if (Delim) *Delim = '\0'; // Temporarily replace it by NULL + _strupr(DestPtr); // Upper-case + if (Delim) *Delim = '='; // Restore the delimiter + + DestPtr += strlen(SourcePtr); + + /* NULL-terminate the environment string */ + *(DestPtr++) = '\0'; } - /* Convert to ASCII */ - WideCharToMultiByte(CP_ACP, - 0, - SourcePtr, - -1, - AsciiString, - AsciiSize, - NULL, - NULL); - - /* Copy the string into DOS memory */ - strcpy(DestPtr, AsciiString); - /* Move to the next string */ - SourcePtr += wcslen(SourcePtr) + 1; - DestPtr += strlen(AsciiString); - *(DestPtr++) = 0; - - /* Free the memory */ - HeapFree(GetProcessHeap(), 0, AsciiString); + SourcePtr += strlen(SourcePtr) + 1; } - *DestPtr = 0; + /* NULL-terminate the environment block */ + *DestPtr = '\0'; /* Free the memory allocated for environment strings */ - FreeEnvironmentStringsW(Environment); + FreeEnvironmentStrings(Environment); #if 0 diff --git a/subsystems/ntvdm/dos/dos32krnl/dos.c b/subsystems/ntvdm/dos/dos32krnl/dos.c index 582e43c558a..2a48c6f2b00 100644 --- a/subsystems/ntvdm/dos/dos32krnl/dos.c +++ b/subsystems/ntvdm/dos/dos32krnl/dos.c @@ -403,7 +403,7 @@ static VOID DosChangeMemoryOwner(WORD Segment, WORD NewOwner) Mcb->OwnerPsp = NewOwner; } -static WORD DosCopyEnvironmentBlock(LPCVOID Environment, LPCSTR ProgramName) +static WORD DosCopyEnvironmentBlock(LPCSTR Environment, LPCSTR ProgramName) { PCHAR Ptr, DestBuffer = NULL; ULONG TotalSize = 0; @@ -412,12 +412,8 @@ static WORD DosCopyEnvironmentBlock(LPCVOID Environment, LPCSTR ProgramName) Ptr = (PCHAR)Environment; /* Calculate the size of the environment block */ - while (*Ptr) - { - TotalSize += strlen(Ptr) + 1; - Ptr += strlen(Ptr) + 1; - } - TotalSize++; + while (*Ptr) Ptr += strlen(Ptr) + 1; + TotalSize = (ULONG_PTR)Ptr - (ULONG_PTR)Environment + 1; // Add final NULL-terminator /* Add the string buffer size */ TotalSize += strlen(ProgramName) + 1; @@ -434,19 +430,16 @@ static WORD DosCopyEnvironmentBlock(LPCVOID Environment, LPCSTR ProgramName) DestBuffer = (PCHAR)SEG_OFF_TO_PTR(DestSegment, 0); while (*Ptr) { - /* Copy the string */ + /* Copy the string and NULL-terminate it */ strcpy(DestBuffer, Ptr); - - /* Advance to the next string */ DestBuffer += strlen(Ptr); + *(DestBuffer++) = '\0'; + + /* Move to the next string */ Ptr += strlen(Ptr) + 1; - - /* Put a zero after the string */ - *(DestBuffer++) = 0; } - - /* Set the final zero */ - *(DestBuffer++) = 0; + /* NULL-terminate the environment block */ + *(DestBuffer++) = '\0'; /* Store the special program name tag */ *(DestBuffer++) = LOBYTE(DOS_PROGRAM_NAME_TAG); @@ -907,7 +900,7 @@ VOID DosInitializePsp(WORD PspSegment, LPCSTR CommandLine, WORD ProgramSize, WOR DWORD DosLoadExecutable(IN DOS_EXEC_TYPE LoadType, IN LPCSTR ExecutablePath, IN LPCSTR CommandLine, - IN PVOID Environment, + IN LPCSTR Environment, OUT PDWORD StackLocation OPTIONAL, OUT PDWORD EntryPoint OPTIONAL) { @@ -923,7 +916,7 @@ DWORD DosLoadExecutable(IN DOS_EXEC_TYPE LoadType, PWORD RelocWord; LPSTR CmdLinePtr = (LPSTR)CommandLine; - DPRINT1("DosLoadExecutable(%d, %s, %s, %s, 0x%08X, 0x%08X)\n", + DPRINT("DosLoadExecutable(%d, %s, %s, %s, 0x%08X, 0x%08X)\n", LoadType, ExecutablePath, CommandLine, @@ -1151,7 +1144,7 @@ Cleanup: DWORD DosStartProcess(IN LPCSTR ExecutablePath, IN LPCSTR CommandLine, - IN PVOID Environment) + IN LPCSTR Environment) { DWORD Result; diff --git a/subsystems/ntvdm/dos/dos32krnl/dos.h b/subsystems/ntvdm/dos/dos32krnl/dos.h index 0a0181760d5..3da70b63242 100644 --- a/subsystems/ntvdm/dos/dos32krnl/dos.h +++ b/subsystems/ntvdm/dos/dos32krnl/dos.h @@ -224,7 +224,7 @@ DWORD DosLoadExecutable( IN DOS_EXEC_TYPE LoadType, IN LPCSTR ExecutablePath, IN LPCSTR CommandLine, - IN PVOID Environment, + IN LPCSTR Environment, OUT PDWORD StackLocation OPTIONAL, OUT PDWORD EntryPoint OPTIONAL ); @@ -233,17 +233,14 @@ WORD DosCreateProcess( LPCSTR ProgramName, PDOS_EXEC_PARAM_BLOCK Parameters ); -DWORD DosStartProcess(IN LPCSTR ExecutablePath, - IN LPCSTR CommandLine, - IN PVOID Environment); +DWORD DosStartProcess( + IN LPCSTR ExecutablePath, + IN LPCSTR CommandLine, + IN LPCSTR Environment +); VOID DosTerminateProcess(WORD Psp, BYTE ReturnCode); BOOLEAN DosHandleIoctl(BYTE ControlCode, WORD FileHandle); -VOID WINAPI DosInt20h(LPWORD Stack); -VOID WINAPI DosInt21h(LPWORD Stack); -VOID WINAPI DosBreakInterrupt(LPWORD Stack); -VOID WINAPI DosInt2Fh(LPWORD Stack); - BOOLEAN DosKRNLInitialize(VOID); #endif // _DOS_H_ diff --git a/subsystems/ntvdm/emulator.c b/subsystems/ntvdm/emulator.c index d2e95e27e15..696a5406046 100644 --- a/subsystems/ntvdm/emulator.c +++ b/subsystems/ntvdm/emulator.c @@ -293,8 +293,8 @@ static VOID WINAPI Port61hWrite(USHORT Port, BYTE Data) DPRINT("Speaker %s\n", Port61hState & 0x02 ? "on" : "off"); // SpeakerStateChange = TRUE; } - // if (SpeakerStateChange) SpeakerChange(); - SpeakerChange(); + // if (SpeakerStateChange) SpeakerChange(Port61hState); + SpeakerChange(Port61hState); } static VOID WINAPI PitChan0Out(LPVOID Param, BOOLEAN State) @@ -347,7 +347,7 @@ static VOID WINAPI PitChan2Out(LPVOID Param, BOOLEAN State) if ((OldPort61hState ^ Port61hState) & 0x20) { DPRINT("PitChan2Out -- Port61hState changed\n"); - SpeakerChange(); + SpeakerChange(Port61hState); } } diff --git a/subsystems/ntvdm/hardware/speaker.c b/subsystems/ntvdm/hardware/speaker.c index 5fc5fb45bc7..2f6d017f8d5 100644 --- a/subsystems/ntvdm/hardware/speaker.c +++ b/subsystems/ntvdm/hardware/speaker.c @@ -12,7 +12,6 @@ #include "emulator.h" #include "speaker.h" -#include "io.h" #include "timer.h" /* Extra PSDK/NDK Headers */ @@ -20,6 +19,9 @@ #include #include +/* Extra PSDK/NDK Headers */ +#include + /* DDK Driver Headers */ #include @@ -27,26 +29,56 @@ static HANDLE hBeep = NULL; +static LARGE_INTEGER FreqCount, CountStart; +static ULONG PulseTickCount = 0, FreqPulses = 0; + +#define SPEAKER_RESPONSE 200 // in milliseconds + +#define MIN_AUDIBLE_FREQ 20 // BEEP_FREQUENCY_MINIMUM +#define MAX_AUDIBLE_FREQ 20000 // BEEP_FREQUENCY_MAXIMUM +#define CLICK_FREQ 100 + + /* PRIVATE FUNCTIONS **********************************************************/ -static DWORD OldReloadValue = 0; -static PIT_MODE OldMode = 0; - -/* PUBLIC FUNCTIONS ***********************************************************/ - -VOID PlaySound(DWORD Frequency, - DWORD Duration) +static +VOID +MakeBeep(ULONG Frequency, + ULONG Duration) { - /* Adapted from kernel32:Beep() */ + static ULONG LastFrequency = 0, LastDuration = 0; IO_STATUS_BLOCK IoStatusBlock; BEEP_SET_PARAMETERS BeepSetParameters; - /* Set beep data */ + /* + * Do nothing if we are replaying exactly the same sound + * (this avoids hiccups due to redoing the same beeps). + */ + if (Frequency == LastFrequency && Duration == LastDuration) return; + + /* A null frequency means we stop beeping */ + if (Frequency == 0) Duration = 0; + + /* + * For small durations we automatically reset the beep so + * that we can replay short beeps like clicks immediately. + */ + if (Duration < 10) + { + LastFrequency = 0; + LastDuration = 0; + } + else + { + LastFrequency = Frequency; + LastDuration = Duration; + } + + /* Set the data and do the beep */ BeepSetParameters.Frequency = Frequency; BeepSetParameters.Duration = Duration; - /* Send the beep */ NtDeviceIoControlFile(hBeep, NULL, NULL, @@ -59,44 +91,173 @@ VOID PlaySound(DWORD Frequency, 0); } -VOID SpeakerChange(VOID) +static +VOID PulseSample(VOID) { - BYTE Port61hState = IOReadB(CONTROL_SYSTEM_PORT61H); - BOOLEAN IsConnectedToPITChannel2 = !!(Port61hState & 0x01); - BOOLEAN SpeakerDataOn = !!(Port61hState & 0x02); + static ULONG Pulses = 0, CountStartTick = 0, LastPulsesFreq = 0; + ULONG LastPulseTickCount, CurrPulsesFreq; + LARGE_INTEGER Counter; + LONGLONG Elapsed; - if (PitChannel2 && IsConnectedToPITChannel2 && SpeakerDataOn) + /* + * Check how far away was the previous pulse and + * if it was >= 200ms away then restart counting. + */ + LastPulseTickCount = PulseTickCount; + PulseTickCount = GetTickCount(); + if (PulseTickCount - LastPulseTickCount >= SPEAKER_RESPONSE) { - /* Start beeping */ + CountStart.QuadPart = 0; + Pulses = 0; + FreqPulses = 0; + return; + } - DWORD Frequency, Duration; + /* We have closely spaced pulses. Start counting. */ + if (CountStart.QuadPart == 0) + { + NtQueryPerformanceCounter(&CountStart, NULL); + CountStartTick = PulseTickCount; + Pulses = 0; + FreqPulses = 0; + return; + } - DWORD PitChannel2ReloadValue = PitChannel2->ReloadValue; - if (PitChannel2ReloadValue == 0) PitChannel2ReloadValue = 65536; + /* A pulse is ongoing */ + ++Pulses; - DPRINT("(1) PitChannel2(Mode = %d ; ReloadValue = %d)\n", PitChannel2->Mode, PitChannel2ReloadValue); + /* We require some pulses to have some statistics */ + if (PulseTickCount - CountStartTick <= (SPEAKER_RESPONSE >> 1)) return; - if (OldMode == PitChannel2->Mode && OldReloadValue == PitChannel2ReloadValue) - return; + /* Get count time */ + NtQueryPerformanceCounter(&Counter, NULL); - OldMode = PitChannel2->Mode; - OldReloadValue = PitChannel2ReloadValue; + /* + * Get the number of speaker hundreds of microseconds that have passed + * since we started counting. + */ + Elapsed = (Counter.QuadPart - CountStart.QuadPart) * 10000 / FreqCount.QuadPart; + if (Elapsed == 0) ++Elapsed; - DPRINT("(2) PitChannel2(Mode = %d ; ReloadValue = %d)\n", PitChannel2->Mode, PitChannel2ReloadValue); + /* Update counting for next pulses */ + CountStart = Counter; + CountStartTick = PulseTickCount; - Frequency = (PIT_BASE_FREQUENCY / PitChannel2ReloadValue); - Duration = INFINITE; + // HACKHACK!! I need to check why we need to double the number + // of pulses in order to have the correct frequency... + Pulses <<= 1; - PlaySound(Frequency, Duration); + /* Get the current pulses frequency */ + CurrPulsesFreq = 10000 * Pulses / Elapsed; + + /* Round the current pulses frequency up and align */ + if ((CurrPulsesFreq & 0x0F) > 7) CurrPulsesFreq += 0x10; + CurrPulsesFreq &= ~0x0F; + + /* Reinitialize frequency counters if necessary */ + if (LastPulsesFreq == 0) LastPulsesFreq = CurrPulsesFreq; + if (FreqPulses == 0) FreqPulses = LastPulsesFreq; + + /* Fix up the current pulses frequency if needed */ + if (LastPulsesFreq != 0 && CurrPulsesFreq == 0) + CurrPulsesFreq = LastPulsesFreq; + + /* + * Magic begins there... + */ +#ifndef ABS +#define ABS(x) ((x) < 0 ? -(x) : (x)) +#endif + if (ABS(CurrPulsesFreq - LastPulsesFreq) > 7) + { + /* + * This can be a "large" fluctuation so ignore it for now, but take + * it into account if it happens to be a real frequency change. + */ + CurrPulsesFreq = (CurrPulsesFreq + LastPulsesFreq) >> 1; } else { - /* Stop beeping */ + // FreqPulses = ((FreqPulses << 2) + LastPulsesFreq + CurrPulsesFreq) / 6; + FreqPulses = ((FreqPulses << 1) + LastPulsesFreq + CurrPulsesFreq) >> 2; + } - OldMode = 0; - OldReloadValue = 0; + /* Round the pulses frequency up and align */ + if ((FreqPulses & 0x0F) > 7) FreqPulses += 0x10; + FreqPulses &= ~0x0F; - PlaySound(0x00, 0x00); + DPRINT("FreqPulses = %d, LastPulsesFreq = %d, CurrPulsesFreq = %d, Pulses = %d, Elapsed = %d\n", + FreqPulses, LastPulsesFreq, CurrPulsesFreq, Pulses, Elapsed); + + LastPulsesFreq = CurrPulsesFreq; + Pulses = 0; +} + + +/* PUBLIC FUNCTIONS ***********************************************************/ + +// SpeakerPulse +VOID SpeakerChange(UCHAR Port61hValue) +{ + static BOOLEAN OldSpeakerOff = TRUE; + + BOOLEAN Timer2Gate = !!(Port61hValue & 0x01); + BOOLEAN SpeakerOn = !!(Port61hValue & 0x02); + + DPRINT("SpeakerChange -- Timer2Gate == %s ; SpeakerOn == %s\n", + Timer2Gate ? "true" : "false", SpeakerOn ? "true" : "false"); + + if (Timer2Gate) + { + if (SpeakerOn) + { + /* Start beeping */ + ULONG Frequency = (PIT_BASE_FREQUENCY / PitGetReloadValue(2)); + if (Frequency < MIN_AUDIBLE_FREQ || MAX_AUDIBLE_FREQ < Frequency) + Frequency = 0; + + MakeBeep(Frequency, INFINITE); + } + else + { + /* Stop beeping */ + MakeBeep(0, 0); + } + } + else + { + if (SpeakerOn) + { + if (OldSpeakerOff) + { + OldSpeakerOff = FALSE; + PulseSample(); + } + + if (FreqPulses >= MIN_AUDIBLE_FREQ) + MakeBeep(FreqPulses, INFINITE); + else if (CountStart.QuadPart != 0) + MakeBeep(CLICK_FREQ, 1); /* Click */ + else + MakeBeep(0, 0); /* Stop beeping */ + } + else + { + OldSpeakerOff = TRUE; + + /* + * Check how far away was the previous pulse and if + * it was >= (200 + eps) ms away then stop beeping. + */ + if (GetTickCount() - PulseTickCount >= SPEAKER_RESPONSE + (SPEAKER_RESPONSE >> 3)) + { + CountStart.QuadPart = 0; + FreqPulses = 0; + + /* Stop beeping */ + MakeBeep(0, 0); + } + } } } @@ -107,9 +268,14 @@ VOID SpeakerInitialize(VOID) OBJECT_ATTRIBUTES ObjectAttributes; IO_STATUS_BLOCK IoStatusBlock; - /* Adapted from kernel32:Beep() */ + /* Retrieve the performance frequency and initialize the timer ticks */ + NtQueryPerformanceCounter(&CountStart, &FreqCount); + if (FreqCount.QuadPart == 0) + { + wprintf(L"FATAL: Performance counter not available\n"); + } - /* Open the device */ + /* Open the BEEP device */ RtlInitUnicodeString(&BeepDevice, L"\\Device\\Beep"); InitializeObjectAttributes(&ObjectAttributes, &BeepDevice, 0, NULL, NULL); Status = NtCreateFile(&hBeep, @@ -125,7 +291,8 @@ VOID SpeakerInitialize(VOID) 0); if (!NT_SUCCESS(Status)) { - DPRINT1("Failed to open Beep driver, Status 0x%08lx\n", Status); + DPRINT1("Failed to open the Beep driver, Status 0x%08lx\n", Status); + // hBeep = INVALID_HANDLE_VALUE; } } diff --git a/subsystems/ntvdm/hardware/speaker.h b/subsystems/ntvdm/hardware/speaker.h index 94c9fc07db5..95c21d2fe01 100644 --- a/subsystems/ntvdm/hardware/speaker.h +++ b/subsystems/ntvdm/hardware/speaker.h @@ -17,7 +17,7 @@ /* FUNCTIONS ******************************************************************/ -VOID SpeakerChange(VOID); +VOID SpeakerChange(UCHAR Port61hValue); VOID SpeakerInitialize(VOID); VOID SpeakerCleanup(VOID); diff --git a/subsystems/ntvdm/hardware/timer.c b/subsystems/ntvdm/hardware/timer.c index 44c07943880..839ea3cf00a 100644 --- a/subsystems/ntvdm/hardware/timer.c +++ b/subsystems/ntvdm/hardware/timer.c @@ -20,7 +20,6 @@ /* PRIVATE VARIABLES **********************************************************/ static PIT_CHANNEL PitChannels[PIT_CHANNELS]; -PPIT_CHANNEL PitChannel2 = &PitChannels[2]; /* PRIVATE FUNCTIONS **********************************************************/ @@ -471,22 +470,19 @@ VOID PitSetGate(BYTE Channel, BOOLEAN State) PitChannels[Channel].Gate = State; } -VOID PitClock(DWORD Count) +WORD PitGetReloadValue(BYTE Channel) { - UINT i; + if (Channel >= PIT_CHANNELS) return 0xFFFF; - if (Count == 0) return; - - for (i = 0; i < PIT_CHANNELS; i++) - { - // if (!PitChannels[i].Counting) continue; - PitDecrementCount(&PitChannels[i], Count); - } + if (PitChannels[Channel].ReloadValue == 0) + return 0xFFFF; + else + return PitChannels[Channel].ReloadValue; } DWORD PitGetResolution(VOID) { - INT i; + UCHAR i; DWORD MinReloadValue = 65536; for (i = 0; i < PIT_CHANNELS; i++) @@ -503,6 +499,19 @@ DWORD PitGetResolution(VOID) return PIT_BASE_FREQUENCY / MinReloadValue; } +VOID PitClock(DWORD Count) +{ + UCHAR i; + + if (Count == 0) return; + + for (i = 0; i < PIT_CHANNELS; i++) + { + // if (!PitChannels[i].Counting) continue; + PitDecrementCount(&PitChannels[i], Count); + } +} + VOID PitInitialize(VOID) { /* Set up the timers to their default value */ diff --git a/subsystems/ntvdm/hardware/timer.h b/subsystems/ntvdm/hardware/timer.h index 21f7f8ee379..b25f5cf26db 100644 --- a/subsystems/ntvdm/hardware/timer.h +++ b/subsystems/ntvdm/hardware/timer.h @@ -73,15 +73,14 @@ typedef struct _PIT_CHANNEL } PIT_CHANNEL, *PPIT_CHANNEL; -extern PPIT_CHANNEL PitChannel2; // Needed for PC Speaker - /* FUNCTIONS ******************************************************************/ VOID PitSetOutFunction(BYTE Channel, LPVOID Param, PIT_OUT_FUNCTION OutFunction); VOID PitSetGate(BYTE Channel, BOOLEAN State); +WORD PitGetReloadValue(BYTE Channel); -VOID PitClock(DWORD Count); DWORD PitGetResolution(VOID); +VOID PitClock(DWORD Count); VOID PitInitialize(VOID); diff --git a/subsystems/ntvdm/hardware/vga.c b/subsystems/ntvdm/hardware/vga.c index 5eaa863d3b8..cb96ee00300 100644 --- a/subsystems/ntvdm/hardware/vga.c +++ b/subsystems/ntvdm/hardware/vga.c @@ -1452,7 +1452,7 @@ static VOID VgaUpdateTextCursor(VOID) Position.X = (SHORT)(Location % ScanlineSize); Position.Y = (SHORT)(Location / ScanlineSize); - DPRINT1("VgaUpdateTextCursor: X = %d ; Y = %d\n", Position.X, Position.Y); + DPRINT("VgaUpdateTextCursor: X = %d ; Y = %d\n", Position.X, Position.Y); /* Update the physical cursor */ SetConsoleCursorInfo(TextConsoleBuffer, &CursorInfo); diff --git a/subsystems/ntvdm/lang/ru-RU.rc b/subsystems/ntvdm/lang/ru-RU.rc index 813d972cdc1..707b3d10dec 100644 --- a/subsystems/ntvdm/lang/ru-RU.rc +++ b/subsystems/ntvdm/lang/ru-RU.rc @@ -9,7 +9,7 @@ END STRINGTABLE BEGIN - IDS_VDM_DUMPMEM_TXT, "Dump Memory (&Text)" - IDS_VDM_DUMPMEM_BIN, "Dump Memory (&Binary)" + IDS_VDM_DUMPMEM_TXT, "Дамп памяти (&Текстовый)" + IDS_VDM_DUMPMEM_BIN, "Дамп памяти (&Бинарный)" IDS_VDM_QUIT , "&Выйти из ReactOS VDM" END diff --git a/subsystems/ntvdm/ntvdm.c b/subsystems/ntvdm/ntvdm.c index 8a194e16ce3..fb81ec1153e 100644 --- a/subsystems/ntvdm/ntvdm.c +++ b/subsystems/ntvdm/ntvdm.c @@ -185,13 +185,48 @@ static VOID ShowHideMousePointer(HANDLE ConOutHandle, BOOLEAN ShowPtr) VOID DisplayMessage(LPCWSTR Format, ...) { - WCHAR Buffer[256]; +#ifndef WIN2K_COMPLIANT + WCHAR StaticBuffer[256]; + LPWSTR Buffer = StaticBuffer; // Use the static buffer by default. +#else + WCHAR Buffer[2048]; // Large enough. If not, increase it by hand. +#endif + size_t MsgLen; va_list Parameters; va_start(Parameters, Format); - _vsnwprintf(Buffer, 256, Format, Parameters); + +#ifndef WIN2K_COMPLIANT + /* + * Retrieve the message length and if it is too long, allocate + * an auxiliary buffer; otherwise use the static buffer. + */ + MsgLen = _vscwprintf(Format, Parameters) + 1; // NULL-terminated + if (MsgLen > sizeof(StaticBuffer)/sizeof(StaticBuffer[0])) + { + Buffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MsgLen * sizeof(WCHAR)); + if (Buffer == NULL) + { + /* Allocation failed, use the static buffer and display a suitable error message */ + Buffer = StaticBuffer; + Format = L"DisplayMessage()\nOriginal message is too long and allocating an auxiliary buffer failed."; + MsgLen = wcslen(Format); + } + } +#else + MsgLen = sizeof(Buffer)/sizeof(Buffer[0]); +#endif + + /* Display the message */ + _vsnwprintf(Buffer, MsgLen, Format, Parameters); DPRINT1("\n\nNTVDM Subsystem\n%S\n\n", Buffer); MessageBoxW(NULL, Buffer, L"NTVDM Subsystem", MB_OK); + +#ifndef WIN2K_COMPLIANT + /* Free the buffer if needed */ + if (Buffer != StaticBuffer) HeapFree(GetProcessHeap(), 0, Buffer); +#endif + va_end(Parameters); } @@ -205,8 +240,8 @@ ConsoleCtrlHandler(DWORD ControlType) case CTRL_BREAK_EVENT: { /* HACK: Stop the VDM */ + DPRINT1("Ctrl-C/Break: Stop the VDM\n"); EmulatorTerminate(); - break; } case CTRL_LAST_CLOSE_EVENT: diff --git a/win32ss/gdi/gdi32/objects/text.c b/win32ss/gdi/gdi32/objects/text.c index e7b7b85de7e..effd022c93f 100644 --- a/win32ss/gdi/gdi32/objects/text.c +++ b/win32ss/gdi/gdi32/objects/text.c @@ -9,27 +9,30 @@ BOOL WINAPI TextOutA( - HDC hdc, - int nXStart, - int nYStart, - LPCSTR lpString, - int cchString) + _In_ HDC hdc, + _In_ INT nXStart, + _In_ INT nYStart, + _In_reads_(cchString) LPCSTR lpString, + _In_ INT cchString) { ANSI_STRING StringA; UNICODE_STRING StringU; - BOOL ret; + BOOL bResult; - if (NULL != lpString) + if (lpString != NULL) { RtlInitAnsiString(&StringA, (LPSTR)lpString); RtlAnsiStringToUnicodeString(&StringU, &StringA, TRUE); } else + { StringU.Buffer = NULL; + } + + bResult = TextOutW(hdc, nXStart, nYStart, StringU.Buffer, cchString); - ret = TextOutW(hdc, nXStart, nYStart, StringU.Buffer, cchString); RtlFreeUnicodeString(&StringU); - return ret; + return bResult; } @@ -39,13 +42,20 @@ TextOutA( BOOL WINAPI TextOutW( - HDC hdc, - int nXStart, - int nYStart, - LPCWSTR lpString, - int cchString) + _In_ HDC hdc, + _In_ INT nXStart, + _In_ INT nYStart, + _In_reads_(cchString) LPCWSTR lpString, + _In_ INT cchString) { - return NtGdiExtTextOutW(hdc, nXStart, nYStart, 0, NULL, (LPWSTR)lpString, cchString, NULL, 0); + return NtGdiExtTextOutW(hdc, + nXStart, + nYStart, + 0, NULL, + (LPWSTR)lpString, + cchString, + NULL, + 0); } @@ -54,11 +64,26 @@ TextOutW( */ BOOL WINAPI -PolyTextOutA( HDC hdc, const POLYTEXTA *pptxt, INT cStrings ) +PolyTextOutA( + _In_ HDC hdc, + _In_reads_(cStrings) const POLYTEXTA *pptxt, + _In_ INT cStrings) { for (; cStrings>0; cStrings--, pptxt++) - if (!ExtTextOutA( hdc, pptxt->x, pptxt->y, pptxt->uiFlags, &pptxt->rcl, pptxt->lpstr, pptxt->n, pptxt->pdx )) + { + if (!ExtTextOutA(hdc, + pptxt->x, + pptxt->y, + pptxt->uiFlags, + &pptxt->rcl, + pptxt->lpstr, + pptxt->n, + pptxt->pdx)) + { return FALSE; + } + } + return TRUE; } @@ -68,11 +93,26 @@ PolyTextOutA( HDC hdc, const POLYTEXTA *pptxt, INT cStrings ) */ BOOL WINAPI -PolyTextOutW( HDC hdc, const POLYTEXTW *pptxt, INT cStrings ) +PolyTextOutW( + _In_ HDC hdc, + _In_reads_(cStrings) const POLYTEXTW *pptxt, + _In_ INT cStrings) { for (; cStrings>0; cStrings--, pptxt++) - if (!ExtTextOutW( hdc, pptxt->x, pptxt->y, pptxt->uiFlags, &pptxt->rcl, pptxt->lpstr, pptxt->n, pptxt->pdx )) + { + if (!ExtTextOutW(hdc, + pptxt->x, + pptxt->y, + pptxt->uiFlags, + &pptxt->rcl, + pptxt->lpstr, + pptxt->n, + pptxt->pdx)) + { return FALSE; + } + } + return TRUE; } @@ -82,58 +122,73 @@ PolyTextOutW( HDC hdc, const POLYTEXTW *pptxt, INT cStrings ) */ DWORD WINAPI -GdiGetCodePage(HDC hdc) +GdiGetCodePage( + _In_ HDC hdc) { - PDC_ATTR Dc_Attr; - if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0; - if (Dc_Attr->ulDirty_ & DIRTY_CHARSET) return LOWORD(NtGdiGetCharSet(hdc)); - return LOWORD(Dc_Attr->iCS_CP); + PDC_ATTR pdcattr; + + /* Get the DC attribute */ + pdcattr = GdiGetDcAttr(hdc); + if (pdcattr == NULL) + { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } + + if (pdcattr->ulDirty_ & DIRTY_CHARSET) + return LOWORD(NtGdiGetCharSet(hdc)); + + return LOWORD(pdcattr->iCS_CP); } /* * @unimplemented */ -int +INT WINAPI GetTextCharacterExtra( - HDC hDc -) + _In_ HDC hdc) { - PDC_ATTR Dc_Attr; + PDC_ATTR pdcattr; - if (!GdiGetHandleUserData((HGDIOBJ) hDc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0; - return Dc_Attr->lTextExtra; -// return GetDCDWord( hDc, GdiGetTextCharExtra, 0); + /* Get the DC attribute */ + pdcattr = GdiGetDcAttr(hdc); + if (pdcattr == NULL) + { + /* Do not set LastError here! */ + return 0x8000000; + } + + return pdcattr->lTextExtra; } /* * @implemented */ -int +INT WINAPI -GetTextCharset(HDC hdc) +GetTextCharset( + _In_ HDC hdc) { /* MSDN docs say this is equivalent */ return NtGdiGetTextCharsetInfo(hdc,NULL,0); } - /* * @implemented */ BOOL WINAPI GetTextMetricsA( - HDC hdc, - LPTEXTMETRICA lptm -) + _In_ HDC hdc, + _Out_ LPTEXTMETRICA lptm) { TMW_INTERNAL tmwi; - if (! NtGdiGetTextMetricsW(hdc, &tmwi, sizeof(TMW_INTERNAL))) + if (!NtGdiGetTextMetricsW(hdc, &tmwi, sizeof(TMW_INTERNAL))) { return FALSE; } @@ -149,13 +204,12 @@ GetTextMetricsA( BOOL WINAPI GetTextMetricsW( - HDC hdc, - LPTEXTMETRICW lptm -) + _In_ HDC hdc, + _Out_ LPTEXTMETRICW lptm) { TMW_INTERNAL tmwi; - if (! NtGdiGetTextMetricsW(hdc, &tmwi, sizeof(TMW_INTERNAL))) + if (!NtGdiGetTextMetricsW(hdc, &tmwi, sizeof(TMW_INTERNAL))) { return FALSE; } @@ -171,11 +225,10 @@ GetTextMetricsW( BOOL APIENTRY GetTextExtentPointA( - HDC hdc, - LPCSTR lpString, - int cchString, - LPSIZE lpSize -) + _In_ HDC hdc, + _In_reads_(cchString) LPCSTR lpString, + _In_ INT cchString, + _Out_ LPSIZE lpsz) { ANSI_STRING StringA; UNICODE_STRING StringU; @@ -184,7 +237,7 @@ GetTextExtentPointA( RtlInitAnsiString(&StringA, (LPSTR)lpString); RtlAnsiStringToUnicodeString(&StringU, &StringA, TRUE); - ret = GetTextExtentPointW(hdc, StringU.Buffer, cchString, lpSize); + ret = GetTextExtentPointW(hdc, StringU.Buffer, cchString, lpsz); RtlFreeUnicodeString(&StringU); @@ -198,38 +251,12 @@ GetTextExtentPointA( BOOL APIENTRY GetTextExtentPointW( - HDC hdc, - LPCWSTR lpString, - int cchString, - LPSIZE lpSize -) + _In_ HDC hdc, + _In_reads_(cchString) LPCWSTR lpString, + _In_ INT cchString, + _Out_ LPSIZE lpsz) { - return NtGdiGetTextExtent(hdc, (LPWSTR)lpString, cchString, lpSize, 0); -} - - -/* - * @implemented - */ -BOOL -APIENTRY -GetTextExtentExPointW( - HDC hdc, - LPCWSTR lpszStr, - int cchString, - int nMaxExtent, - LPINT lpnFit, - LPINT alpDx, - LPSIZE lpSize -) -{ - - /* Windows doesn't check nMaxExtent validity in unicode version */ - if(nMaxExtent < -1) - DPRINT("nMaxExtent is invalid: %d\n", nMaxExtent); - - return NtGdiGetTextExtentExW ( - hdc, (LPWSTR)lpszStr, cchString, nMaxExtent, (PULONG)lpnFit, (PULONG)alpDx, lpSize, 0 ); + return NtGdiGetTextExtent(hdc, (LPWSTR)lpString, cchString, lpsz, 0); } @@ -238,54 +265,87 @@ GetTextExtentExPointW( */ BOOL WINAPI -GetTextExtentExPointWPri(HDC hdc, - LPWSTR lpwsz, - ULONG cwc, - ULONG dxMax, - ULONG *pcCh, - PULONG pdxOut, - LPSIZE psize) +GetTextExtentExPointW( + _In_ HDC hdc, + _In_reads_(cchString) LPCWSTR lpszString, + _In_ INT cchString, + _In_ INT nMaxExtent, + _Out_opt_ LPINT lpnFit, + _Out_writes_to_opt_(cchString, *lpnFit) LPINT lpnDx, + _Out_ LPSIZE lpSize) { - return NtGdiGetTextExtentExW(hdc,lpwsz,cwc,dxMax,pcCh,pdxOut,psize,0); + + /* Windows doesn't check nMaxExtent validity in unicode version */ + if (nMaxExtent < -1) + { + DPRINT("nMaxExtent is invalid: %d\n", nMaxExtent); + } + + return NtGdiGetTextExtentExW ( + hdc, (LPWSTR)lpszString, cchString, nMaxExtent, (PULONG)lpnFit, (PULONG)lpnDx, lpSize, 0 ); +} + + +/* + * @implemented + */ +BOOL +WINAPI +GetTextExtentExPointWPri( + _In_ HDC hdc, + _In_reads_(cwc) LPWSTR lpwsz, + _In_ ULONG cwc, + _In_ ULONG dxMax, + _Out_opt_ ULONG *pcCh, + _Out_writes_to_opt_(cwc, *pcCh) PULONG pdxOut, + _In_ LPSIZE psize) +{ + return NtGdiGetTextExtentExW(hdc, lpwsz, cwc, dxMax, pcCh, pdxOut, psize, 0); } /* * @implemented */ BOOL -APIENTRY +WINAPI GetTextExtentExPointA( - HDC hdc, - LPCSTR lpszStr, - int cchString, - int nMaxExtent, - LPINT lpnFit, - LPINT alpDx, - LPSIZE lpSize -) + _In_ HDC hdc, + _In_reads_(cchString) LPCSTR lpszStr, + _In_ INT cchString, + _In_ INT nMaxExtent, + _Out_opt_ LPINT lpnFit, + _Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx, + _Out_ LPSIZE lpSize) { NTSTATUS Status; LPWSTR lpszStrW; - BOOL rc = 0; + BOOL bResult = FALSE; - if(nMaxExtent < -1) + if (nMaxExtent < -1) { SetLastError(ERROR_INVALID_PARAMETER); return FALSE; } - Status = HEAP_strdupA2W ( &lpszStrW, lpszStr ); + Status = HEAP_strdupA2W(&lpszStrW, lpszStr); if (!NT_SUCCESS (Status)) - SetLastError (RtlNtStatusToDosError(Status)); - else { - rc = NtGdiGetTextExtentExW ( - hdc, lpszStrW, cchString, nMaxExtent, (PULONG)lpnFit, (PULONG)alpDx, lpSize, 0 ); - - HEAP_free ( lpszStrW ); + SetLastError(RtlNtStatusToDosError(Status)); + return FALSE; } - return rc; + bResult = NtGdiGetTextExtentExW(hdc, + lpszStrW, + cchString, + nMaxExtent, + (PULONG)lpnFit, + (PULONG)lpnDx, + lpSize, + 0); + + HEAP_free(lpszStrW); + + return bResult; } @@ -293,13 +353,12 @@ GetTextExtentExPointA( * @implemented */ BOOL -APIENTRY +WINAPI GetTextExtentPoint32A( - HDC hdc, - LPCSTR lpString, - int cchString, - LPSIZE lpSize -) + _In_ HDC hdc, + _In_reads_(cchString) LPCSTR lpString, + _In_ INT cchString, + _Out_ LPSIZE lpSize) { ANSI_STRING StringA; UNICODE_STRING StringU; @@ -321,13 +380,12 @@ GetTextExtentPoint32A( * @implemented */ BOOL -APIENTRY +WINAPI GetTextExtentPoint32W( - HDC hdc, - LPCWSTR lpString, - int cchString, - LPSIZE lpSize -) + _In_ HDC hdc, + _In_reads_(cchString) LPCWSTR lpString, + _In_ int cchString, + _Out_ LPSIZE lpSize) { return NtGdiGetTextExtent(hdc, (LPWSTR)lpString, cchString, lpSize, 0); } @@ -337,15 +395,23 @@ GetTextExtentPoint32W( */ BOOL WINAPI -GetTextExtentExPointI(HDC hdc, - LPWORD pgiIn, - int cgi, - int nMaxExtent, - LPINT lpnFit, - LPINT alpDx, - LPSIZE lpSize) +GetTextExtentExPointI( + _In_ HDC hdc, + _In_reads_(cgi) LPWORD pgiIn, + _In_ INT cgi, + _In_ INT nMaxExtent, + _Out_opt_ LPINT lpnFit, + _Out_writes_to_opt_(cwchString, *lpnFit) LPINT lpnDx, + _Out_ LPSIZE lpSize) { - return NtGdiGetTextExtentExW(hdc,pgiIn,cgi,nMaxExtent,(ULONG *)lpnFit, (PULONG) alpDx,lpSize,GTEF_INDICES); + return NtGdiGetTextExtentExW(hdc, + pgiIn, + cgi, + nMaxExtent, + (PULONG)lpnFit, + (PULONG)lpnDx, + lpSize, + GTEF_INDICES); } /* @@ -353,12 +419,13 @@ GetTextExtentExPointI(HDC hdc, */ BOOL WINAPI -GetTextExtentPointI(HDC hdc, - LPWORD pgiIn, - int cgi, - LPSIZE lpSize) +GetTextExtentPointI( + _In_ HDC hdc, + _In_reads_(cgi) LPWORD pgiIn, + _In_ int cgi, + _Out_ LPSIZE lpSize) { - return NtGdiGetTextExtent(hdc,pgiIn,cgi,lpSize,GTEF_INDICES); + return NtGdiGetTextExtent(hdc, pgiIn, cgi, lpSize, GTEF_INDICES); } /* @@ -367,15 +434,14 @@ GetTextExtentPointI(HDC hdc, BOOL WINAPI ExtTextOutA( - HDC hdc, - int X, - int Y, - UINT fuOptions, - CONST RECT *lprc, - LPCSTR lpString, - UINT cchString, - CONST INT *lpDx -) + _In_ HDC hdc, + _In_ INT x, + _In_ INT y, + _In_ UINT fuOptions, + _In_opt_ const RECT *lprc, + _In_reads_opt_(cch) LPCSTR lpString, + _In_ UINT cch, + _In_reads_opt_(cch) const INT *lpDx) { ANSI_STRING StringA; UNICODE_STRING StringU; @@ -384,7 +450,7 @@ ExtTextOutA( RtlInitAnsiString(&StringA, (LPSTR)lpString); RtlAnsiStringToUnicodeString(&StringU, &StringA, TRUE); - ret = ExtTextOutW(hdc, X, Y, fuOptions, lprc, StringU.Buffer, cchString, lpDx); + ret = ExtTextOutW(hdc, x, y, fuOptions, lprc, StringU.Buffer, cch, lpDx); RtlFreeUnicodeString(&StringU); @@ -398,17 +464,24 @@ ExtTextOutA( BOOL WINAPI ExtTextOutW( - HDC hdc, - int X, - int Y, - UINT fuOptions, - CONST RECT *lprc, - LPCWSTR lpString, - UINT cchString, - CONST INT *lpDx -) + _In_ HDC hdc, + _In_ INT x, + _In_ INT y, + _In_ UINT fuOptions, + _In_opt_ const RECT *lprc, + _In_reads_opt_(cwc) LPCWSTR lpString, + _In_ UINT cwc, + _In_reads_opt_(cwc) const INT *lpDx) { - return NtGdiExtTextOutW(hdc, X, Y, fuOptions, (LPRECT)lprc, (LPWSTR)lpString, cchString, (LPINT)lpDx, 0); + return NtGdiExtTextOutW(hdc, + x, + y, + fuOptions, + (LPRECT)lprc, + (LPWSTR)lpString, + cwc, + (LPINT)lpDx, + 0); } @@ -417,12 +490,13 @@ ExtTextOutW( */ INT WINAPI -GetTextFaceW(HDC hDC, - INT nCount, - PWSTR pFaceName) +GetTextFaceW( + _In_ HDC hdc, + _In_ INT cwcMax, + _Out_writes_to_opt_(cwcMax, return) LPWSTR pFaceName) { /* Validate parameters */ - if (pFaceName && nCount <= 0) + if (pFaceName && cwcMax <= 0) { /* Set last error and return failure */ GdiSetLastError(ERROR_INVALID_PARAMETER); @@ -430,22 +504,25 @@ GetTextFaceW(HDC hDC, } /* Forward to kernel */ - return NtGdiGetTextFaceW(hDC, nCount, pFaceName, FALSE); + return NtGdiGetTextFaceW(hdc, cwcMax, pFaceName, FALSE); } /* * @implemented */ -int +INT WINAPI -GetTextFaceA( HDC hdc, INT count, LPSTR name ) +GetTextFaceA( + _In_ HDC hdc, + _In_ INT cchMax, + _Out_writes_to_opt_(cchMax, return) LPSTR lpName) { INT res; LPWSTR nameW; /* Validate parameters */ - if (name && count <= 0) + if (lpName && cchMax <= 0) { /* Set last error and return failure */ GdiSetLastError(ERROR_INVALID_PARAMETER); @@ -458,16 +535,20 @@ GetTextFaceA( HDC hdc, INT count, LPSTR name ) { return 0; } + GetTextFaceW( hdc, res, nameW ); - if (name) + if (lpName) { - if (count && !WideCharToMultiByte( CP_ACP, 0, nameW, -1, name, count, NULL, NULL)) - name[count-1] = 0; - res = strlen(name); + if (cchMax && !WideCharToMultiByte( CP_ACP, 0, nameW, -1, lpName, cchMax, NULL, NULL)) + lpName[cchMax-1] = 0; + res = strlen(lpName); } else + { res = WideCharToMultiByte( CP_ACP, 0, nameW, -1, NULL, 0, NULL, NULL); + } + HeapFree( GetProcessHeap(), 0, nameW ); return res; } @@ -478,27 +559,28 @@ GetTextFaceA( HDC hdc, INT count, LPSTR name ) */ INT WINAPI -GetTextFaceAliasW(HDC hdc, - int cChar, - LPWSTR pszOut) +GetTextFaceAliasW( + _In_ HDC hdc, + _In_ INT cwcMax, + _Out_writes_to_opt_(cwcMax, return) LPWSTR pszOut) { - if ( pszOut && !cChar ) + if (pszOut && !cwcMax) { GdiSetLastError(ERROR_INVALID_PARAMETER); return 0; } - return NtGdiGetTextFaceW(hdc,cChar,pszOut,TRUE); + + return NtGdiGetTextFaceW(hdc, cwcMax, pszOut, TRUE); } BOOL WINAPI GetFontResourceInfoW( - LPCWSTR lpFileName, - DWORD *pdwBufSize, - void* lpBuffer, - DWORD dwType -) + _In_z_ LPCWSTR lpFileName, + _Inout_ DWORD *pdwBufSize, + _Out_writes_to_(*pdwBufSize, *pdwBufSize) PVOID lpBuffer, + _In_ DWORD dwType) { BOOL bRet; UNICODE_STRING NtFileName; @@ -529,53 +611,55 @@ GetFontResourceInfoW( RtlFreeHeap(RtlGetProcessHeap(), 0, NtFileName.Buffer); - if (!bRet) - { - return FALSE; - } - - return TRUE; + return bRet; } /* * @unimplemented */ -int +INT WINAPI SetTextCharacterExtra( - HDC hDC, - int CharExtra -) + _In_ HDC hdc, + _In_ INT nCharExtra) { - INT cExtra = 0x80000000; - PDC_ATTR Dc_Attr; + PDC_ATTR pdcattr; + INT nOldCharExtra; - if (CharExtra == cExtra) + if (nCharExtra == 0x80000000) { SetLastError(ERROR_INVALID_PARAMETER); - return cExtra; + return 0x80000000; } + #if 0 - if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC) + if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC) { - return MFDRV_SetTextCharacterExtra( hDC, CharExtra ); // Wine port. + return MFDRV_SetTextCharacterExtra( hdc, nCharExtra ); // Wine port. } #endif - if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return cExtra; - if (NtCurrentTeb()->GdiTebBatch.HDC == hDC) + /* Get the DC attribute */ + pdcattr = GdiGetDcAttr(hdc); + if (pdcattr == NULL) { - if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY) + SetLastError(ERROR_INVALID_PARAMETER); + return 0x8000000; + } + + if (NtCurrentTeb()->GdiTebBatch.HDC == hdc) + { + if (pdcattr->ulDirty_ & DC_FONTTEXT_DIRTY) { - NtGdiFlush(); // Sync up Dc_Attr from Kernel space. - Dc_Attr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY); + NtGdiFlush(); // Sync up pdcattr from Kernel space. + pdcattr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY); } } - cExtra = Dc_Attr->lTextExtra; - Dc_Attr->lTextExtra = CharExtra; - return cExtra; -// return GetAndSetDCDWord( hDC, GdiGetSetTextCharExtra, CharExtra, 0, 0, 0 ); + + nOldCharExtra = pdcattr->lTextExtra; + pdcattr->lTextExtra = nCharExtra; + return nOldCharExtra; } /* @@ -584,11 +668,20 @@ SetTextCharacterExtra( */ UINT WINAPI -GetTextAlign(HDC hdc) +GetTextAlign( + _In_ HDC hdc) { - PDC_ATTR Dc_Attr; - if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0; - return Dc_Attr->lTextAlign; + PDC_ATTR pdcattr; + + /* Get the DC attribute */ + pdcattr = GdiGetDcAttr(hdc); + if (pdcattr == NULL) + { + /* Do not set LastError here! */ + return GDI_ERROR; + } + + return pdcattr->lTextAlign; } @@ -598,13 +691,21 @@ GetTextAlign(HDC hdc) */ COLORREF WINAPI -GetTextColor(HDC hdc) +GetTextColor( + _In_ HDC hdc) { - PDC_ATTR Dc_Attr; - if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0; - return Dc_Attr->ulForegroundClr; -} + PDC_ATTR pdcattr; + /* Get the DC attribute */ + pdcattr = GdiGetDcAttr(hdc); + if (pdcattr == NULL) + { + /* Do not set LastError here! */ + return CLR_INVALID; + } + + return pdcattr->ulForegroundClr; +} /* @@ -612,11 +713,21 @@ GetTextColor(HDC hdc) */ UINT WINAPI -SetTextAlign(HDC hdc, - UINT fMode) +SetTextAlign( + _In_ HDC hdc, + _In_ UINT fMode) { - PDC_ATTR Dc_Attr; - INT OldMode; + PDC_ATTR pdcattr; + INT fOldMode; + + /* Get the DC attribute */ + pdcattr = GdiGetDcAttr(hdc); + if (pdcattr == NULL) + { + SetLastError(ERROR_INVALID_PARAMETER); + return GDI_ERROR; + } + #if 0 if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC) { @@ -624,7 +735,7 @@ SetTextAlign(HDC hdc, return MFDRV_SetTextAlign( hdc, fMode ) else { - PLDC pLDC = Dc_Attr->pvLDC; + PLDC pLDC = pdcattr->pvLDC; if ( !pLDC ) { SetLastError(ERROR_INVALID_HANDLE); @@ -637,16 +748,16 @@ SetTextAlign(HDC hdc, } } #endif - if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return GDI_ERROR; - OldMode = Dc_Attr->lTextAlign; - Dc_Attr->lTextAlign = fMode; // Raw - if (Dc_Attr->dwLayout & LAYOUT_RTL) + fOldMode = pdcattr->lTextAlign; + pdcattr->lTextAlign = fMode; // Raw + if (pdcattr->dwLayout & LAYOUT_RTL) { if ((fMode & TA_CENTER) != TA_CENTER) fMode ^= TA_RIGHT; } - Dc_Attr->flTextAlign = fMode & TA_MASK; - return OldMode; + + pdcattr->flTextAlign = fMode & TA_MASK; + return fOldMode; } @@ -656,12 +767,20 @@ SetTextAlign(HDC hdc, COLORREF WINAPI SetTextColor( - HDC hdc, - COLORREF crColor -) + _In_ HDC hdc, + _In_ COLORREF crColor) { - PDC_ATTR Dc_Attr; - COLORREF OldColor = CLR_INVALID; + PDC_ATTR pdcattr; + COLORREF crOldColor = CLR_INVALID; + + /* Get the DC attribute */ + pdcattr = GdiGetDcAttr(hdc); + if (pdcattr == NULL) + { + SetLastError(ERROR_INVALID_PARAMETER); + return GDI_ERROR; + } + #if 0 if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC) { @@ -669,7 +788,7 @@ SetTextColor( return MFDRV_SetTextColor( hDC, crColor ); else { - PLDC pLDC = Dc_Attr->pvLDC; + PLDC pLDC = pdcattr->pvLDC; if ( !pLDC ) { SetLastError(ERROR_INVALID_HANDLE); @@ -682,17 +801,17 @@ SetTextColor( } } #endif - if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldColor; - OldColor = (COLORREF) Dc_Attr->ulForegroundClr; - Dc_Attr->ulForegroundClr = (ULONG) crColor; + crOldColor = (COLORREF) pdcattr->ulForegroundClr; + pdcattr->ulForegroundClr = (ULONG)crColor; - if ( Dc_Attr->crForegroundClr != crColor ) + if (pdcattr->crForegroundClr != crColor) { - Dc_Attr->ulDirty_ |= (DIRTY_TEXT|DIRTY_LINE|DIRTY_FILL); - Dc_Attr->crForegroundClr = crColor; + pdcattr->ulDirty_ |= (DIRTY_TEXT|DIRTY_LINE|DIRTY_FILL); + pdcattr->crForegroundClr = crColor; } - return OldColor; + + return crOldColor; } /* @@ -701,69 +820,80 @@ SetTextColor( BOOL WINAPI SetTextJustification( - HDC hdc, - int extra, - int breaks -) + _In_ HDC hdc, + _In_ INT nBreakExtra, + _In_ INT nBreakCount) { - PDC_ATTR Dc_Attr; + PDC_ATTR pdcattr; + + /* Get the DC attribute */ + pdcattr = GdiGetDcAttr(hdc); + if (pdcattr == NULL) + { + /* Do not set LastError here! */ + return GDI_ERROR; + } + #if 0 if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC) { if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC) - return MFDRV_SetTextJustification( hdc, extra, breaks ) + return MFDRV_SetTextJustification( hdc, nBreakExtra, nBreakCount ) else { SetLastError(ERROR_INVALID_HANDLE); return FALSE; } #endif - if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE; - if (NtCurrentTeb()->GdiTebBatch.HDC == hdc) + if (NtCurrentTeb()->GdiTebBatch.HDC == hdc) + { + if (pdcattr->ulDirty_ & DC_FONTTEXT_DIRTY) { - if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY) - { - NtGdiFlush(); // Sync up Dc_Attr from Kernel space. - Dc_Attr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY); - } + NtGdiFlush(); // Sync up pdcattr from Kernel space. + pdcattr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY); } - Dc_Attr->cBreak = breaks; - Dc_Attr->lBreakExtra = extra; - return TRUE; } + pdcattr->cBreak = nBreakCount; + pdcattr->lBreakExtra = nBreakExtra; + return TRUE; +} + /* * @implemented */ UINT WINAPI -GetStringBitmapA(HDC hdc, - LPSTR psz, - BOOL DoCall, - UINT cj, - BYTE *lpSB) +GetStringBitmapA( + _In_ HDC hdc, + _In_ LPSTR psz, + _In_ BOOL bDoCall, + _In_ UINT cj, + _Out_writes_(cj) BYTE *lpSB) { NTSTATUS Status; PWSTR pwsz; - UINT retValue = 0; + UINT uResult = 0; - if (DoCall) + if (!bDoCall) { - Status = HEAP_strdupA2W ( &pwsz, psz ); - if ( !NT_SUCCESS (Status) ) - { - SetLastError (RtlNtStatusToDosError(Status)); - } - else - { - retValue = NtGdiGetStringBitmapW(hdc, pwsz, 1, lpSB, cj); - HEAP_free ( pwsz ); - } + return 0; } - return retValue; + Status = HEAP_strdupA2W(&pwsz, psz); + if (!NT_SUCCESS(Status)) + { + SetLastError (RtlNtStatusToDosError(Status)); + } + else + { + uResult = NtGdiGetStringBitmapW(hdc, pwsz, 1, lpSB, cj); + HEAP_free(pwsz); + } + + return uResult; } @@ -772,20 +902,19 @@ GetStringBitmapA(HDC hdc, */ UINT WINAPI -GetStringBitmapW(HDC hdc, - LPWSTR pwsz, - BOOL doCall, - UINT cj, - BYTE *lpSB) +GetStringBitmapW( + _In_ HDC hdc, + _In_ LPWSTR pwsz, + _In_ BOOL bDoCall, + _In_ UINT cj, + _Out_writes_(cj) BYTE *lpSB) { - UINT retValue = 0; - - if (doCall) + if (!bDoCall) { - retValue = NtGdiGetStringBitmapW(hdc, pwsz, 1, lpSB, cj); + return 0; } - return retValue; + return NtGdiGetStringBitmapW(hdc, pwsz, 1, lpSB, cj); } @@ -794,13 +923,18 @@ GetStringBitmapW(HDC hdc, */ BOOL WINAPI -GetETM(HDC hdc, - EXTTEXTMETRIC *petm) +GetETM( + _In_ HDC hdc, + _Out_ EXTTEXTMETRIC *petm) { - BOOL Ret = NtGdiGetETM(hdc, petm); + BOOL bResult; - if (Ret && petm) + bResult = NtGdiGetETM(hdc, petm); + + if (bResult && petm) + { petm->emKernPairs = (WORD)GetKerningPairsA(hdc, 0, 0); + } - return Ret; + return bResult; } diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c index 8afca5396ab..9d8e0dfa707 100644 --- a/win32ss/gdi/ntgdi/freetype.c +++ b/win32ss/gdi/ntgdi/freetype.c @@ -2175,7 +2175,7 @@ ftGdiGetGlyphOutline( break; if (needed > cjBuf) return GDI_ERROR; - + get_bezier_glyph_outline(outline, cjBuf, pvBuf); break; } @@ -3367,7 +3367,7 @@ GreExtTextOutW( psurf = dc->dclevel.pSurface; - if(!psurf) + if(!psurf) psurf = psurfDefaultBitmap; if ((fuOptions & ETO_OPAQUE) && lprc) @@ -3719,7 +3719,7 @@ GreExtTextOutW( DestRect.bottom = lprc->bottom + dc->ptlDCOrig.y; } MouseSafetyOnDrawStart(dc->ppdev, DestRect.left, DestRect.top, DestRect.right, DestRect.bottom); - IntEngMaskBlt( + if (!IntEngMaskBlt( SurfObj, SourceGlyphSurf, &dc->co.ClipObj, @@ -3728,7 +3728,11 @@ GreExtTextOutW( &DestRect, (PPOINTL)&MaskRect, &dc->eboText.BrushObject, - &BrushOrigin); + &BrushOrigin)) + { + DPRINT1("Failed to MaskBlt a glyph!\n"); + } + MouseSafetyOnDrawEnd(dc->ppdev) ; EngUnlockSurface(SourceGlyphSurf); @@ -3750,7 +3754,7 @@ GreExtTextOutW( Scale = pdcattr->mxWorldToDevice.efM11; if (_FLOATOBJ_Equal0(&Scale)) FLOATOBJ_Set1(&Scale); - + FLOATOBJ_MulLong(&Scale, Dx[i<e_magic != IMAGE_DOS_SIGNATURE) { - if (mz_header->e_cblp == 1) /* .ICO file ? */ + if (mz_header->e_cblp == 1 || mz_header->e_cblp == 2) /* .ICO or .CUR file ? */ { *retptr = (LPBYTE)-1; /* ICONHEADER.idType, must be 1 */ - return 1; + return mz_header->e_cblp; } else return 0; /* failed */ @@ -361,36 +371,58 @@ static UINT ICO_ExtractIconExW( } } #else - if (sig == 1) /* .ICO file */ + if (sig == 1 || sig == 2) /* .ICO or .CUR file */ { TRACE("-- icon Signature (0x%08x)\n", sig); if (pData == (BYTE*)-1) { - INT dataOffset; - LPICONIMAGE entry; - CURSORICONDIR *lpcid = (CURSORICONDIR*)peimage; INT cx[2] = {cx1, cx2}, cy[2] = {cy1, cy2}; INT index; - if (lpcid->idType != 1) - return 0; - for(index = 0; index < 2; index++) { - dataOffset = LookupIconIdFromDirectoryEx(peimage, TRUE, cx[index], cy[index], flags); + DWORD dataOffset; + LPBYTE imageData; + POINT hotSpot; + LPICONIMAGE entry; + + dataOffset = get_best_icon_file_offset(peimage, fsizel, cx[index], cy[index], sig == 1, flags, sig == 1 ? NULL : &hotSpot); if (dataOffset) { HICON icon; - entry = (LPICONIMAGE)(peimage + dataOffset); - icon = CreateIconFromResourceEx(peimage + dataOffset, entry->icHeader.biSizeImage, TRUE, 0x00030000, cx[index], cy[index], flags); + WORD *cursorData = NULL; + + imageData = peimage + dataOffset; + entry = (LPICONIMAGE)(imageData); + + if(sig == 2) + { + /* we need to prepend the bitmap data with hot spots for CreateIconFromResourceEx */ + cursorData = HeapAlloc(GetProcessHeap(), 0, entry->icHeader.biSizeImage + 2 * sizeof(WORD)); + + if(!cursorData) + continue; + + cursorData[0] = hotSpot.x; + cursorData[1] = hotSpot.y; + + memcpy(cursorData + 2, imageData, entry->icHeader.biSizeImage); + + imageData = (LPBYTE)cursorData; + } + + icon = CreateIconFromResourceEx(imageData, entry->icHeader.biSizeImage, sig == 1, 0x00030000, cx[index], cy[index], flags); if (icon) { RetPtr[index] = icon; iconCount = 1; } + + if(cursorData != NULL) + HeapFree(GetProcessHeap(), 0, cursorData); } } diff --git a/win32ss/user/user32/windows/cursoricon_new.c b/win32ss/user/user32/windows/cursoricon_new.c index a20d2d78111..747cf12389f 100644 --- a/win32ss/user/user32/windows/cursoricon_new.c +++ b/win32ss/user/user32/windows/cursoricon_new.c @@ -436,7 +436,6 @@ typedef struct #include "poppack.h" -static const CURSORICONFILEDIRENTRY* get_best_icon_file_entry( _In_ const CURSORICONFILEDIR* dir, @@ -522,6 +521,33 @@ get_best_icon_file_entry( /* We found it */ return &dir->idEntries[i-1]; } + +DWORD +get_best_icon_file_offset( + _In_ const LPBYTE dir, + _In_ DWORD dwFileSize, + _In_ int cxDesired, + _In_ int cyDesired, + _In_ BOOL bIcon, + _In_ DWORD fuLoad, + _Out_ POINT *ptHotSpot +) +{ + const CURSORICONFILEDIRENTRY *entry; + + entry = get_best_icon_file_entry((CURSORICONFILEDIR *) dir, dwFileSize, cxDesired, cyDesired, bIcon, fuLoad); + + if(ptHotSpot) + { + ptHotSpot->x = entry->xHotspot; + ptHotSpot->y = entry->yHotspot; + } + + if(entry) + return entry->dwDIBOffset; + + return 0; +} diff --git a/win32ss/user/winsrv/consrv/alias.c b/win32ss/user/winsrv/consrv/alias.c index a3a39cae48c..9a0957ba3ac 100644 --- a/win32ss/user/winsrv/consrv/alias.c +++ b/win32ss/user/winsrv/consrv/alias.c @@ -454,7 +454,7 @@ CSR_API(SrvAddConsoleAlias) PALIAS_ENTRY Entry; PVOID lpTarget; - DPRINT1("SrvAddConsoleAlias entered ApiMessage %p\n", ApiMessage); + DPRINT("SrvAddConsoleAlias entered ApiMessage %p\n", ApiMessage); if ( !CsrValidateMessageBuffer(ApiMessage, (PVOID*)&ConsoleAliasRequest->Source, @@ -545,7 +545,7 @@ CSR_API(SrvGetConsoleAlias) UINT Length; PVOID lpTarget; - DPRINT1("SrvGetConsoleAlias entered ApiMessage %p\n", ApiMessage); + DPRINT("SrvGetConsoleAlias entered ApiMessage %p\n", ApiMessage); if ( !CsrValidateMessageBuffer(ApiMessage, (PVOID*)&ConsoleAliasRequest->Source, @@ -635,7 +635,7 @@ CSR_API(SrvGetConsoleAliases) ULONG BytesWritten = 0; PALIAS_HEADER Header; - DPRINT1("SrvGetConsoleAliases entered ApiMessage %p\n", ApiMessage); + DPRINT("SrvGetConsoleAliases entered ApiMessage %p\n", ApiMessage); if ( !CsrValidateMessageBuffer(ApiMessage, (PVOID)&GetAllAliasesRequest->ExeName, @@ -740,7 +740,7 @@ CSR_API(SrvGetConsoleAliasesLength) PCONSRV_CONSOLE Console; PALIAS_HEADER Header; - DPRINT1("SrvGetConsoleAliasesLength entered ApiMessage %p\n", ApiMessage); + DPRINT("SrvGetConsoleAliasesLength entered ApiMessage %p\n", ApiMessage); if (!CsrValidateMessageBuffer(ApiMessage, (PVOID)&GetAllAliasesLengthRequest->ExeName, @@ -781,7 +781,7 @@ CSR_API(SrvGetConsoleAliasExes) PCONSRV_CONSOLE Console; UINT BytesWritten = 0; - DPRINT1("SrvGetConsoleAliasExes entered\n"); + DPRINT("SrvGetConsoleAliasExes entered\n"); if (!CsrValidateMessageBuffer(ApiMessage, (PVOID*)&GetAliasesExesRequest->ExeNames, @@ -867,7 +867,7 @@ CSR_API(SrvGetConsoleAliasExesLength) PCONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAliasesExesLengthRequest; PCONSRV_CONSOLE Console; - DPRINT1("SrvGetConsoleAliasExesLength entered ApiMessage %p\n", ApiMessage); + DPRINT("SrvGetConsoleAliasExesLength entered ApiMessage %p\n", ApiMessage); Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); diff --git a/win32ss/user/winsrv/consrv/condrv/console.c b/win32ss/user/winsrv/consrv/condrv/console.c index 4075e76f3a2..38c7122e955 100644 --- a/win32ss/user/winsrv/consrv/condrv/console.c +++ b/win32ss/user/winsrv/consrv/condrv/console.c @@ -44,7 +44,7 @@ InsertConsole(IN PCONSOLE Console) /* All went right, so add the console to the list */ ConDrvLockConsoleListExclusive(); - DPRINT1("Insert in the list\n"); + DPRINT("Insert in the list\n"); InsertTailList(&ConsoleList, &Console->ListEntry); // FIXME: Move this code to the caller function!! diff --git a/win32ss/user/winsrv/consrv/condrv/text.c b/win32ss/user/winsrv/consrv/condrv/text.c index 72e62c121af..b07c530ca13 100644 --- a/win32ss/user/winsrv/consrv/condrv/text.c +++ b/win32ss/user/winsrv/consrv/condrv/text.c @@ -294,7 +294,7 @@ ConioResizeBuffer(PCONSOLE Console, Buffer = ConsoleAllocHeap(HEAP_ZERO_MEMORY, Size.X * Size.Y * sizeof(CHAR_INFO)); if (!Buffer) return STATUS_NO_MEMORY; - DPRINT1("Resizing (%d,%d) to (%d,%d)\n", ScreenBuffer->ScreenBufferSize.X, ScreenBuffer->ScreenBufferSize.Y, Size.X, Size.Y); + DPRINT("Resizing (%d,%d) to (%d,%d)\n", ScreenBuffer->ScreenBufferSize.X, ScreenBuffer->ScreenBufferSize.Y, Size.X, Size.Y); OldBuffer = ScreenBuffer->Buffer; for (CurrentY = 0; CurrentY < ScreenBuffer->ScreenBufferSize.Y && CurrentY < Size.Y; CurrentY++) diff --git a/win32ss/user/winsrv/consrv/coninput.c b/win32ss/user/winsrv/consrv/coninput.c index 9faaf52f471..c2c5d2cc956 100644 --- a/win32ss/user/winsrv/consrv/coninput.c +++ b/win32ss/user/winsrv/consrv/coninput.c @@ -363,7 +363,7 @@ ReadChars(IN PGET_INPUT_INFO InputInfo, Buffer = ReadConsoleRequest->Buffer; } - DPRINT1("Calling ConDrvReadConsole(%wZ)\n", &ExeName); + DPRINT("Calling ConDrvReadConsole(%wZ)\n", &ExeName); Status = ConDrvReadConsole(InputBuffer->Header.Console, InputBuffer, &ExeName, @@ -372,7 +372,7 @@ ReadChars(IN PGET_INPUT_INFO InputInfo, &ReadControl, ReadConsoleRequest->NumBytes / CharSize, // NrCharactersToRead &NrCharactersRead); - DPRINT1("ConDrvReadConsole returned (%d ; Status = 0x%08x)\n", + DPRINT("ConDrvReadConsole returned (%d ; Status = 0x%08x)\n", NrCharactersRead, Status); // ReadConsoleRequest->ControlKeyState = ReadControl.dwControlKeyState; diff --git a/win32ss/user/winsrv/consrv/console.c b/win32ss/user/winsrv/consrv/console.c index fc0c8cdedf3..475ab027394 100644 --- a/win32ss/user/winsrv/consrv/console.c +++ b/win32ss/user/winsrv/consrv/console.c @@ -61,7 +61,7 @@ InsertConsole(OUT PHANDLE Handle, /* All went right, so add the console to the list */ ConSrvLockConsoleListExclusive(); - DPRINT1("Insert in the list\n"); + DPRINT("Insert in the list\n"); if (ConsoleList) { @@ -73,7 +73,7 @@ InsertConsole(OUT PHANDLE Handle, if (i >= ConsoleListSize) { - DPRINT1("Creation of a new handles table\n"); + DPRINT("Creation of a new handles table\n"); /* Allocate a new handles table */ Block = ConsoleAllocHeap(HEAP_ZERO_MEMORY, (ConsoleListSize + @@ -393,7 +393,7 @@ LoadShellLinkConsoleInfo(IN OUT PCONSOLE_INFO ConsoleInfo, /* Get a pointer to the IShellLink interface */ IShellLinkW* pshl = NULL; hRes = CoCreateInstance(&CLSID_ShellLink, - NULL, + NULL, CLSCTX_INPROC_SERVER, &IID_IShellLinkW, (LPVOID*)&pshl); @@ -476,8 +476,8 @@ Finish: // ConsoleInitInfo->ConsoleStartInfo->IconIndex = 0; } - DPRINT1("IconPath = '%S' ; IconIndex = %lu\n", - IconPath, ConsoleInitInfo->ConsoleStartInfo->IconIndex); + DPRINT("IconPath = '%S' ; IconIndex = %lu\n", + IconPath, ConsoleInitInfo->ConsoleStartInfo->IconIndex); if (IconPath && *IconPath) { HICON hIcon = NULL, hIconSm = NULL; @@ -486,7 +486,7 @@ Finish: &hIcon, &hIconSm, 1); - DPRINT1("hIcon = 0x%p ; hIconSm = 0x%p\n", hIcon, hIconSm); + DPRINT("hIcon = 0x%p ; hIconSm = 0x%p\n", hIcon, hIconSm); if (hIcon != NULL) ConsoleInitInfo->ConsoleStartInfo->hIcon = hIcon; if (hIconSm != NULL) ConsoleInitInfo->ConsoleStartInfo->hIconSm = hIconSm; } diff --git a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c index 05d0fe00dd9..0eae0301fb3 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c +++ b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c @@ -286,7 +286,7 @@ SendMenuEvent(PCONSRV_CONSOLE Console, UINT CmdId) { INPUT_RECORD er; - DPRINT1("Menu item ID: %d\n", CmdId); + DPRINT("Menu item ID: %d\n", CmdId); if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return; diff --git a/win32ss/user/winsrv/consrv/frontends/gui/fullscreen.c b/win32ss/user/winsrv/consrv/frontends/gui/fullscreen.c index 1bb4283f6fa..137c6fbb9e4 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/fullscreen.c +++ b/win32ss/user/winsrv/consrv/frontends/gui/fullscreen.c @@ -181,7 +181,7 @@ GuiConsoleSwitchFullScreen(PGUI_CONSOLE_DATA GuiData) /* Switch to full-screen or to windowed mode */ FullScreen = !GuiData->GuiInfo.FullScreen; - DPRINT1("GuiConsoleSwitchFullScreen - Switch to %s ...\n", + DPRINT("GuiConsoleSwitchFullScreen - Switch to %s ...\n", (FullScreen ? "full-screen" : "windowed mode")); SwitchFullScreen(GuiData, FullScreen); diff --git a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c index 9a9b4b8bcd5..beedd94f19a 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c +++ b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c @@ -675,7 +675,7 @@ GuiSetActiveScreenBuffer(IN OUT PFRONTEND This) hPalette = ActiveBuffer->PaletteHandle; } - DPRINT1("GuiSetActiveScreenBuffer using palette 0x%p\n", hPalette); + DPRINT("GuiSetActiveScreenBuffer using palette 0x%p\n", hPalette); /* Set the new palette for the framebuffer */ SelectPalette(GuiData->hMemDC, hPalette, FALSE); diff --git a/win32ss/user/winsrv/consrv/history.c b/win32ss/user/winsrv/consrv/history.c index a885d20ab3e..2b82d832b2c 100644 --- a/win32ss/user/winsrv/consrv/history.c +++ b/win32ss/user/winsrv/consrv/history.c @@ -587,7 +587,7 @@ CSR_API(SrvSetConsoleCommandHistoryMode) PCONSOLE_SETHISTORYMODE SetHistoryModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetHistoryModeRequest; PCONSRV_CONSOLE Console; - DPRINT1("SrvSetConsoleCommandHistoryMode(Mode = %d) is not yet implemented\n", + DPRINT("SrvSetConsoleCommandHistoryMode(Mode = %d) is not yet implemented\n", SetHistoryModeRequest->Mode); Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process),