Index: base/applications/network/ping/CMakeLists.txt =================================================================== --- base/applications/network/ping/CMakeLists.txt (revision 72764) +++ base/applications/network/ping/CMakeLists.txt (working copy) @@ -1,11 +1,6 @@ -add_definitions(-D__USE_W32_SOCKETS) -add_executable(ping ping.c ping.rc) -set_module_type(ping win32cui UNICODE) -add_importlibs(ping user32 ws2_32 msvcrt kernel32) +add_executable(ping_new ping.c ping.rc) +set_module_type(ping_new win32cui UNICODE) +add_importlibs(ping_new ws2_32 iphlpapi user32 msvcrt kernel32 ntdll) -if(MSVC) - add_importlibs(ping ntdll) -endif() - -add_cd_file(TARGET ping DESTINATION reactos/system32 FOR all) +add_cd_file(TARGET ping_new DESTINATION reactos/system32 FOR all) Index: base/applications/network/ping/lang/bg-BG.rc =================================================================== --- base/applications/network/ping/lang/bg-BG.rc (revision 72764) +++ base/applications/network/ping/lang/bg-BG.rc (working copy) @@ -1,7 +1,7 @@ /* - * Превод на Български/ Bulgarian translation - * http://www.reactos.org/wiki/Bulgarian_translation - * LOCATION: base/applications/network/ping/lang + * FILE: base/applications/network/ping/lang/bg-BG.rc + * PURPOSE: Bulgarian translations for ReactOS Ping Command + * TRANSLATORS: */ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT @@ -8,35 +8,57 @@ STRINGTABLE BEGIN - IDS_USAGE "\nУпотреба: ping [-t] [-n пъти] [-l размер] [-w просрочване] целеви_приемник\n\n\ -Възможности:\n\ - -t Прави пинг към указания приемник до прекъсване.\n\ - За прекъсване- натиснете Контрол+C.\n\ - -n пъти Колко пъти да бъдат подадени заявките.\n\ - -l размер Размер на изпращания буфер.\n\ - -w просрочване Просрочване на чакането [милисекунди].\n\n\0" + IDS_USAGE "\n\ +Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]\n\ + [-w timeout] [-4] [-6] target\n\ +\n\ +Options:\n\ + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n count Number of echo requests to send.\n\ + -l size Send buffer size.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w timeout Timeout in milliseconds to wait for each reply.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nПрави пинг %1 [%2] с %3!d! байта данни:\n\n\0" - IDS_PING_STATISTICS "\nСтатистика за пинга за %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Пакети: пратени= %1!d!, получени= %2!d!, изгубени = %3!d! (%4!d!%% загуби),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Приблизителна времетраене на приемо-предаването:\n\0" - IDS_MIN_MAX_AVERAGE " Най-малко= %1, Най-голямо= %2, Средно= %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Няма достатъчно свободни средства.\n\0" - IDS_UNKNOWN_HOST "Неизвестен приемник %1.\n\0" - IDS_SETSOCKOPT_FAILED "Грешка при setsockopt (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Грешка при създаване на гнездо (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Грешка при подкаравнето на библиотеката (dll) за winsock.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Трябва да укажете името или IP адреса на целевият приемник.\n\0" - IDS_BAD_PARAMETER "Неправилен параметър %1.\n\0" - IDS_BAD_OPTION_FORMAT "Неправилно записване на възможността %1.\n\0" - IDS_BAD_OPTION "Неправилна стойност %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Неправилна стойност за -l, допустимите са от 0 до %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Неправилна стойност за -n, допустимите са от 1 до %1!u!.\n\0" - IDS_REPLY_FROM "Отговор от %1: байта=%2!d! време%3%4 ВЖ(TTL)=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Целевия приемник е недостижим.\n\0" - IDS_COULD_NOT_TRANSMIT "Грешка при предаване на данните (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Грешка при получаване на данните (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Заявката е просрочена.\n\0" - IDS_MS "мс\0" - IDS_1MS "1 мс\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Not enough resources available.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Bad option %1.\n" + IDS_BAD_PARAMETER "Bad parameter %1.\n" + IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPinging %1 %0" + IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "with %1!d! bytes of data:\n\n" + IDS_REPLY_FROM "Reply from %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "time=%1!d!ms %0" + IDS_REPLY_TIME_0MS "time<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Request timed out.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Ping statistics for %1!s!:\n\ + Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n" + + IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n" END Index: base/applications/network/ping/lang/cs-CZ.rc =================================================================== --- base/applications/network/ping/lang/cs-CZ.rc (revision 72764) +++ base/applications/network/ping/lang/cs-CZ.rc (working copy) @@ -1,6 +1,7 @@ -/* FILE: base/applications/network/ping/lang/cs-CZ.rc - * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) - * UPDATED: 2011-03-31 +/* + * FILE: base/applications/network/ping/lang/cs-CZ.rc + * PURPOSE: Czech translations for ReactOS Ping Command + * TRANSLATORS: Radek Liska (Black_Fox) */ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT @@ -7,35 +8,57 @@ STRINGTABLE BEGIN - IDS_USAGE "\nPoužití: ping [-t] [-n počet] [-l velikost] [-w timeout] cíl\n\n\ + IDS_USAGE "\n\ +Použití: ping [-t] [-a] [-n počet] [-l velikost] [-f] [-i TTL] [-v TOS]\n\ + [-w timeout] [-4] [-6] target\n\ +\n\ Options:\n\ - -t Opakovaně zasílá požadavky o ozvěnu zadanému cíli až do zastavení.\n\ - Ukončení stisknutím Ctrl+C.\n\ - -n počet Počet požadavků o ozvěnu, které budou zaslány.\n\ - -l velikost Velikost vyrovnávací paměti.\n\ - -w timeout Doba v milisekundách, po kterou se bude čekat na odpověď.\n\n\0" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n počet Počet požadavků o ozvěnu, které budou zaslány.\n\ + -l velikost Velikost vyrovnávací paměti.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w timeout Doba v milisekundách, po kterou se bude čekat na odpověď.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nPing na %1 [%2] s %3!d! bajty dat:\n\n\0" - IDS_PING_STATISTICS "\nStatistika pro %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Pakety: Odesláno = %1!d!, Přijato = %2!d!, Ztraceno = %3!d! (%4!d!%% ztráta),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Přibližná doba do přijetí odezvy v milisekundách:\n\0" - IDS_MIN_MAX_AVERAGE " Minimum = %1, Maximum = %2, Průměr = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Není k dispozici dostatek volných zdrojů.\n\0" - IDS_UNKNOWN_HOST "Neznámý hostitel %1.\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt selhalo (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Nebylo možné vytvořit socket (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Nebylo možné inicializovat knihovnu winsock.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Je nutno zadat název nebo IP adresu cíle.\n\0" - IDS_BAD_PARAMETER "Nesprávný parametr %1.\n\0" - IDS_BAD_OPTION_FORMAT "Nesprávný formát volby %1.\n\0" - IDS_BAD_OPTION "Nesprávná volba %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Nesprávná hodnota volby -l, platný rozsah je od 0 do %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Nesprávná hodnota volby -n, platný rozsah je od 1 do %1!u!.\n\0" - IDS_REPLY_FROM "Odpověď od %1: bajtů=%2!d! čas%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Cíl je nedostupný.\n\0" - IDS_COULD_NOT_TRANSMIT "Nebylo možné přenést data (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Nebylo možné přijmout data (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Časový limit žádosti vypršel.\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Není k dispozici dostatek volných zdrojů.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Nesprávná volba %1.\n" + IDS_BAD_PARAMETER "Nesprávný parametr %1.\n" + IDS_BAD_VALUE "Nesprávná hodnota volby %1, platný rozsah je od %2!d! do %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPinging %1 %0" + IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "with %1!d! bytes of data:\n\n" + IDS_REPLY_FROM "Odpověď od %1: %0" + IDS_REPLY_BYTES "bajtů=%1!d! %0" + IDS_REPLY_TIME_MS "čas=%1!d!ms %0" + IDS_REPLY_TIME_0MS "čas<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Časový limit žádosti vypršel.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Statistika pro %1!s!:\n\ + Pakety: Odesláno = %2!d!, Přijato = %3!d!, Ztraceno %4!d! (%5!u!%% ztráta),\n" + + IDS_APPROXIMATE_RTT "Přibližná doba do přijetí odezvy v milisekundách:\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Průměr = %3!u!ms\n" END Index: base/applications/network/ping/lang/de-DE.rc =================================================================== --- base/applications/network/ping/lang/de-DE.rc (revision 72764) +++ base/applications/network/ping/lang/de-DE.rc (working copy) @@ -1,36 +1,64 @@ +/* + * FILE: base/applications/network/ping/lang/de-DE.rc + * PURPOSE: German translations for ReactOS Ping Command + * TRANSLATORS: + */ + LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_USAGE "\nSyntax: ping [-t] [-n Anzahl] [-l Größe] [-w Zeitlimit] Zielhost\n\n\ + IDS_USAGE "\n\ +Syntax: ping [-t] [-a] [-n Anzahl] [-l Größe] [-f] [-i TTL] [-v TOS]\n\ + [-w Zeitlimit] [-4] [-6] Zielhost\n\ +\n\ Optionen:\n\ - -t Sendet fortlaufend Ping-Signale an den angegebenen Host.\n\ - Drücken Sie STRG-C, um den Vorgang abzubrechen.\n\ - -n Anzahl Anzahl der Echoanforderungen, die gesendet werden.\n\ - -l Größe Größe des Sendepuffers.\n\ - -w Zeitlimit Zeitlimit in Millisekunden für eine Antwort.\n\n\0" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n Anzahl Anzahl der Echoanforderungen, die gesendet werden.\n\ + -l Größe Größe des Sendepuffers.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w Zeitlimit Zeitlimit in Millisekunden für eine Antwort.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nPing wird ausgeführt für %1 [%2] mit %3!d! Bytes Daten:\n\n\0" - IDS_PING_STATISTICS "\nPing Statistik für %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Pakete: Gesendet = %1!d!, Empfangen = %2!d!, Verloren = %3!d! (%4!d!%% Verlust),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Durchschnittliche Antwortzeit in Millisekunden:\n\0" - IDS_MIN_MAX_AVERAGE " Minimum = %1, Maximum = %2, Durchschnitt = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Nicht genügend freie Resourcen verfügbar.\n\0" - IDS_UNKNOWN_HOST "Unbekannter Host %1.\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt ist fehlgeschlagen (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Konnte keinen Socket erzeugen (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Die Winsock DLL konnte nicht initialisiert werden.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Name oder IP-Adresse des Zielhosts muss angegeben werden.\n\0" - IDS_BAD_PARAMETER "Ungültiger Parameter %1.\n\0" - IDS_BAD_OPTION_FORMAT "Ungültiges Format %1.\n\0" - IDS_BAD_OPTION "Ungültige Option %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Ungültiger Wert für Option -l, Erlaubter Bereich ist von 0 bis %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Ungültiger Wert für Option -n, Erlaubter Bereich ist von 1 bis %1!u!.\n\0" - IDS_REPLY_FROM "Antwort von %1: bytes=%2!d! time%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Zielhost nicht erreichbar.\n\0" - IDS_COULD_NOT_TRANSMIT "Es konnten keine Daten gesendet werden (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Es konnten keine Daten empfangen werden (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Zeitüberschreitung der Anforderung.\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Nicht genügend freie Resourcen verfügbar.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Bad option %1.\n" + IDS_BAD_PARAMETER "Bad parameter %1.\n" + IDS_BAD_VALUE "Ungültiger Wert für Option %1, Erlaubter Bereich ist von %2!d! bis %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPing wird ausgeführt für %1 %0" + IDS_PINGING_HOSTNAME "\nPing wird ausgeführt für %1 [%2] %0" + IDS_SOURCE_ADDRESS "von %1!s! %0" + IDS_PING_SIZE "mit %1!d! Bytes Daten:\n\n" + IDS_REPLY_FROM "Antwort von %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "time=%1!d!ms %0" + IDS_REPLY_TIME_0MS "time<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Request timed out.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Ping Statistik für %1!s!:\n\ + Pakete: Gesendet = %2!d!, Empfangen = %3!d!, Verloren %4!d! (%5!u!%% Verlust),\n" + + IDS_APPROXIMATE_RTT "Durchschnittliche Antwortzeit in Millisekunden:\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Durchschnitt = %3!u!ms\n" END Index: base/applications/network/ping/lang/en-US.rc =================================================================== --- base/applications/network/ping/lang/en-US.rc (revision 72764) +++ base/applications/network/ping/lang/en-US.rc (working copy) @@ -1,36 +1,64 @@ +/* + * FILE: base/applications/network/ping/lang/es-US.rc + * PURPOSE: English translations for ReactOS Ping Command + * TRANSLATORS: + */ + LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US STRINGTABLE BEGIN - IDS_USAGE "\nUsage: ping [-t] [-n count] [-l size] [-w timeout] destination-host\n\n\ + IDS_USAGE "\n\ +Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]\n\ + [-w timeout] [-4] [-6] target\n\ +\n\ Options:\n\ - -t Ping the specified host until stopped.\n\ - To stop - type Control-C.\n\ - -n count Number of echo requests to send.\n\ - -l size Send buffer size.\n\ - -w timeout Timeout in milliseconds to wait for each reply.\n\n\0" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n count Number of echo requests to send.\n\ + -l size Send buffer size.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w timeout Timeout in milliseconds to wait for each reply.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nPinging %1 [%2] with %3!d! bytes of data:\n\n\0" - IDS_PING_STATISTICS "\nPing statistics for %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Packets: Sent = %1!d!, Received = %2!d!, Lost = %3!d! (%4!d!%% loss),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Approximate round trip times in milli-seconds:\n\0" - IDS_MIN_MAX_AVERAGE " Minimum = %1, Maximum = %2, Average = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Not enough free resources available.\n\0" - IDS_UNKNOWN_HOST "Unknown host %1.\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt failed (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Could not create socket (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Could not initialize winsock dll.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Name or IP address of destination host must be specified.\n\0" - IDS_BAD_PARAMETER "Bad parameter %1.\n\0" - IDS_BAD_OPTION_FORMAT "Bad option format %1.\n\0" - IDS_BAD_OPTION "Bad option %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Bad value for option -l, valid range is from 0 to %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Bad value for option -n, valid range is from 1 to %1!u!.\n\0" - IDS_REPLY_FROM "Reply from %1: bytes=%2!d! time%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Destination host unreachable.\n\0" - IDS_COULD_NOT_TRANSMIT "Could not transmit data (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Could not receive data (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Request timed out.\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Not enough resources available.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Bad option %1.\n" + IDS_BAD_PARAMETER "Bad parameter %1.\n" + IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPinging %1 %0" + IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "with %1!d! bytes of data:\n\n" + IDS_REPLY_FROM "Reply from %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "time=%1!d!ms %0" + IDS_REPLY_TIME_0MS "time<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Request timed out.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Ping statistics for %1!s!:\n\ + Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n" + + IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n" END Index: base/applications/network/ping/lang/es-ES.rc =================================================================== --- base/applications/network/ping/lang/es-ES.rc (revision 72764) +++ base/applications/network/ping/lang/es-ES.rc (working copy) @@ -1,39 +1,64 @@ -/* Spanish Language resource file. - * Translated by: Ismael Ferreras Morezuelas <2014-11-07> */ +/* + * FILE: base/applications/network/ping/lang/es-ES.rc + * PURPOSE: Spanish translations for ReactOS Ping Command + * TRANSLATORS: Ismael Ferreras Morezuelas + */ 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\ + IDS_USAGE "\n\ +Uso: ping [-t] [-a] [-n cuenta] [-l tamaño] [-f] [-i TTL] [-v TOS]\n\ + [-w tiempo_de_espera] [-4] [-6] 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" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n cuenta Número de solicitudes de eco a enviar.\n\ + -l tamaño Tamaño de búfer a enviar.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w t_espera Tiempo de espera en milisegundos para cada respuesta.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - 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_BAD_VALUE_OPTION_N "El valor para la opción -n no es válido, debe de estar entre 1 y %1!u!.\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" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "No hay suficientes recursos libres disponibles.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "La opción %1 no es válida.\n" + IDS_BAD_PARAMETER "El parámetro %1 no es válido.\n" + IDS_BAD_VALUE "El valor para la opción %1 no es válido, debe de estar entre %2!d! y %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nHaciendo ping a %1 %0" + IDS_PINGING_HOSTNAME "\nHaciendo ping a %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "con %1!d! bytes de datos:\n\n" + IDS_REPLY_FROM "Respuesta desde %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "tiempo=%1!d!ms %0" + IDS_REPLY_TIME_0MS "tiempo<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "La petición ha caducado.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Estadísticas de ping para %1!s!:\n\ + Paquetes: enviados = %2!d!, recibidos = %3!d!, perdidos %4!d! (%5!u!%% perdidos),\n" + + IDS_APPROXIMATE_RTT "Tiempos aproximados de ida y vuelta en milisegundos:\n\ + Mínimo = %1!u!ms, Máximo = %2!u!ms, Media = %3!u!ms\n" END Index: base/applications/network/ping/lang/fr-FR.rc =================================================================== --- base/applications/network/ping/lang/fr-FR.rc (revision 72764) +++ base/applications/network/ping/lang/fr-FR.rc (working copy) @@ -1,36 +1,64 @@ +/* + * FILE: base/applications/network/ping/lang/fr-FR.rc + * PURPOSE: French translations for ReactOS Ping Command + * TRANSLATORS: + */ + LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_USAGE "\nUtilisation : ping [-t] [-n nombre] [-l taille] [-w délai] hôte-destination\n\n\ + IDS_USAGE "\n\ +Utilisation : ping [-t] [-a] [-n nombre] [-l taille] [-f] [-i TTL] [-v TOS]\n\ + [-w délai] [-4] [-6] hôte-destination\n\ +\n\ Options :\n\ - -t Ping l'hôte spécifié jusqu'à l'arrêt.\n\ - Pour l'arrêter, tapez Ctrl+c.\n\ - -n nombre Nombre de requêtes echo à envoyer.\n\ - -l taille Taille du tampon d'envoi.\n\ - -w délai Délai d'attente en millisecondes pour chaque réponse.\n\n\0" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n nombre Nombre de requêtes echo à envoyer.\n\ + -l taille Taille du tampon d'envoi.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w délai Délai d'attente en millisecondes pour chaque réponse.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nPing de %1 [%2] avec %3!d! octets de données :\n\n\0" - IDS_PING_STATISTICS "\nStatistiques du ping de %1 :\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Paquets : Envoyés = %1!d!, Reçus = %2!d!, Perdus = %3!d! (%4!d!%% de perte),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Délai approximatif de réponse en millisecondes :\n\0" - IDS_MIN_MAX_AVERAGE " Minimum = %1, Maximum = %2, Moyenne = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Ressources libres disponibles insuffisantes.\n\0" - IDS_UNKNOWN_HOST "Hôte inconnu %1.\n\0" - IDS_SETSOCKOPT_FAILED "Échec de setsockopt (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Impossible de créer la socket (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Impossible d'initialiser winsock dll.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Le nom ou l'adresse IP de l'hôte de destination doit être spécifié.\n\0" - IDS_BAD_PARAMETER "Paramètre incorrect %1.\n\0" - IDS_BAD_OPTION_FORMAT "Format d'option incorrect %1.\n\0" - IDS_BAD_OPTION "Option incorrecte %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Valeur incorrecte pour l'option -l, elle doit être entre 0 et %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Valeur incorrecte pour l'option -n, elle doit être entre 1 et %1!u!.\n\0" - IDS_REPLY_FROM "Réponse de %1 : octets=%2!d! durée%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Hôte de destination injoignable.\n\0" - IDS_COULD_NOT_TRANSMIT "Échec lors de la transmission (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Échec lors de la récéption (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Expiration du délai d'attente.\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Ressources libres disponibles insuffisantes.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Option incorrecte %1.\n" + IDS_BAD_PARAMETER "Paramètre incorrect %1.\n" + IDS_BAD_VALUE "Valeur incorrecte pour l'option %1, elle doit être entre %2!d! et %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPing de %1 %0" + IDS_PINGING_HOSTNAME "\nPing de %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "avec %1!d! octets de données :\n\n" + IDS_REPLY_FROM "Réponse de %1 : %0" + IDS_REPLY_BYTES "octets=%1!d! %0" + IDS_REPLY_TIME_MS "durée=%1!d!ms %0" + IDS_REPLY_TIME_0MS "durée<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Expiration du délai d'attente.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Statistiques du ping de %1!s! :\n\ + Paquets : Envoyés = %2!d!, Reçus = %3!d!, Perdus %4!d! (%5!u!%% de perte),\n" + + IDS_APPROXIMATE_RTT "Délai approximatif de réponse en millisecondes :\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Moyenne = %3!u!ms\n" END Index: base/applications/network/ping/lang/it-IT.rc =================================================================== --- base/applications/network/ping/lang/it-IT.rc (revision 72764) +++ base/applications/network/ping/lang/it-IT.rc (working copy) @@ -1,36 +1,64 @@ +/* + * FILE: base/applications/network/ping/lang/it-IT.rc + * PURPOSE: Italian translations for ReactOS Ping Command + * TRANSLATORS: + */ + LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_USAGE "\nUso: ping [-t] [-n conteggio] [-l dimensione] [-w timeout] host-destinazione\n\n\ + IDS_USAGE "\n\ +Uso: ping [-t] [-a] [-n conteggio] [-l dimensione] [-f] [-i TTL] [-v TOS]\n\ + [-w timeout] [-4] [-6] host-destinazione\n\ +\n\ Opzioni:\n\ - -t Esegue il ping dell'host specificato finchè non termina.\n\ - Per fermare - digitare Control-C.\n\ - -n conteggio Numero di richieste echo da inviare.\n\ - -l dimensione Dimensione del buffer di invio.\n\ - -w timeout Timeout in millisecondi per l'attesa di ogni risposta.\n\n\0" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n conteggio Numero di richieste echo da inviare.\n\ + -l dimensione Dimensione del buffer di invio.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w timeout Timeout in millisecondi per l'attesa di ogni risposta.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nPing in corso %1 [%2] con %3!d! bytes di dati:\n\n\0" - IDS_PING_STATISTICS "\nStatistiche di Ping per %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Pacchetti: Inviati = %1!d!, Ricevuti = %2!d!, Persi = %3!d! (%4!d!%% perdita),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Tempo approssimato di andata e ritorno in milli-secondi:\n\0" - IDS_MIN_MAX_AVERAGE " Minimo = %1, Massimo = %2, Media = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Risorse disponibili insufficienti.\n\0" - IDS_UNKNOWN_HOST "Host sconosciuto %1.\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt fallito (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Impossibile creare il socket (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Impossibile inizializzare winsock dll.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Il nome o l'IP dell'host deve essere specificato.\n\0" - IDS_BAD_PARAMETER "Parametro errato %1.\n\0" - IDS_BAD_OPTION_FORMAT "Formato opzione errato %1.\n\0" - IDS_BAD_OPTION "Opzione errata %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Valore errato per il parametro -l, è valido un valore tra 0 to %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Valore errato per il parametro -n, è valido un valore tra 1 to %1!u!.\n\0" - IDS_REPLY_FROM "Risposta da %1: bytes=%2!d! time%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Host destinazione irraggiungibile.\n\0" - IDS_COULD_NOT_TRANSMIT "Impossibile trasmettere dati (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Impossibile ricevere dati (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Richiesta scaduta.\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Risorse disponibili insufficienti.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Opzione errata %1.\n" + IDS_BAD_PARAMETER "Parametro errato %1.\n" + IDS_BAD_VALUE "Valore errato per il parametro %1, è valido un valore tra %2!d! to %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPing in corso %1 %0" + IDS_PINGING_HOSTNAME "\nPing in corso %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "con %1!d! bytes di dati:\n\n" + IDS_REPLY_FROM "Risposta da %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "time=%1!d!ms %0" + IDS_REPLY_TIME_0MS "time<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Richiesta scaduta.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Statistiche di Ping per %1!s!:\n\ + Pacchetti: Inviati = %2!d!, Ricevuti = %3!d!, Persi %4!d! (%5!u!%% perdita),\n" + + IDS_APPROXIMATE_RTT "Tempo approssimato di andata e ritorno in milli-secondi:\n\ + Minimo = %1!u!ms, Massimo = %2!u!ms, Media = %3!u!ms\n" END Index: base/applications/network/ping/lang/pl-PL.rc =================================================================== --- base/applications/network/ping/lang/pl-PL.rc (revision 72764) +++ base/applications/network/ping/lang/pl-PL.rc (working copy) @@ -1,9 +1,7 @@ /* - * Translated by Caemyr - Olaf Siejka (Jan, 2011) - * Use ReactOS forum PM or IRC to contact me - * http://www.reactos.org - * IRC: irc.freenode.net #reactos-pl - * UTF-8 conversion by Caemyr (May, 2011) + * FILE: base/applications/network/ping/lang/pl-PL.rc + * PURPOSE: Polish translations for ReactOS Ping Command + * TRANSLATORS: Olaf Siejka (Caemyr) */ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT @@ -10,35 +8,57 @@ STRINGTABLE BEGIN - IDS_USAGE "\nSposób użycia: ping [-t] [-n ilość] [-l bajtów] [-w czas] host-docelowy\n\n\ -Opcje:\n\ - -t Pinguj wskazanego hosta w sposób ciągły.\n\ - Aby przerwać - wciśnij Control C.\n\ - -n ilość Ilość prób pingowania.\n\ - -l bajtów Rozmiar pakietu echo w bajtach .\n\ - -w czas Opóźnienie oczekiwanej odpowiedzi, w milisekundach.\n\n\0" + IDS_USAGE "\n\ +Sposób użycia: ping [-t] [-a] [-n ilość] [-l bajtów] [-f] [-i TTL] [-v TOS]\n\ + [-w czas] [-4] [-6] host-docelowy\n\ +\n\ +Options:\n\ + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n ilość Ilość prób pingowania.\n\ + -l bajtów Rozmiar pakietu echo w bajtach.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w czas Opóźnienie oczekiwanej odpowiedzi, w milisekundach.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nPingowanie %1 [%2] przy użyciu %3!d! bajtów danych:\n\n\0" - IDS_PING_STATISTICS "\nStatystyka rezultatu badania hosta %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Pakiety: Wysłane = %1!d!, Odebrane = %2!d!, Utracone = %3!d! (%4!d!%% strat),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Całkowity, przybliżony czas podróży pakietu w millisekundach:\n\0" - IDS_MIN_MAX_AVERAGE " Minimum = %1, Maksimum = %2, Uśredniony = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Brak dostępnych zasobów.\n\0" - IDS_UNKNOWN_HOST "Nieznany host %1.\n\0" - IDS_SETSOCKOPT_FAILED "Błąd w setsockopt (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Błąd podczas tworzenia gniazda (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Błąd podczas inicjalizacji winsock dll.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Brak nazwy hosta bądź adresu IP.\n\0" - IDS_BAD_PARAMETER "Nieprawidłowy parametr %1.\n\0" - IDS_BAD_OPTION_FORMAT "Nieprawidłowy format opcji %1.\n\0" - IDS_BAD_OPTION "Nieprawidłowa opcja %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Nieprawidłowa wartość dla opcji -l, wymagana liczba naturalna od 0 do %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Nieprawidłowa wartość dla opcji -n, wymagana liczba naturalna od 1 do %1!u!.\n\0" - IDS_REPLY_FROM "Odpowiedź z %1: bajtów=%2!d! czas%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Host docelowy nieosiągalny.\n\0" - IDS_COULD_NOT_TRANSMIT "Błąd podczas transmisji danych (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Błąd podczas odbioru danych (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Brak odpowiedzi.\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Brak dostępnych zasobów.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Nieprawidłowa opcja %1.\n" + IDS_BAD_PARAMETER "Nieprawidłowy parametr %1.\n" + IDS_BAD_VALUE "Nieprawidłowa wartość dla opcji %1, wymagana liczba naturalna od %2!d! do %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPingowanie %1 %0" + IDS_PINGING_HOSTNAME "\nPingowanie %1 [%2] %0" + IDS_SOURCE_ADDRESS "z %1!s! %0" + IDS_PING_SIZE "przy użyciu %1!d! bajtów danych:\n\n" + IDS_REPLY_FROM "Odpowiedź z %1: %0" + IDS_REPLY_BYTES "bajtów=%1!d! %0" + IDS_REPLY_TIME_MS "czas=%1!d!ms %0" + IDS_REPLY_TIME_0MS "czas<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Brak odpowiedzi.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Statystyka rezultatu badania hosta %1!s!:\n\ + Pakiety: Wysłane = %2!d!, Odebrane = %3!d!, Utracone %4!d! (%5!u!%% strat),\n" + + IDS_APPROXIMATE_RTT "Całkowity, przybliżony czas podróży pakietu w millisekundach:\n\ + Minimum = %1!u!ms, Maksimum = %2!u!ms, Uśredniony = %3!u!ms\n" END Index: base/applications/network/ping/lang/ro-RO.rc =================================================================== --- base/applications/network/ping/lang/ro-RO.rc (revision 72764) +++ base/applications/network/ping/lang/ro-RO.rc (working copy) @@ -1,9 +1,7 @@ -/* - * FILE: base/applications/network/ping/lang/ro-RO.rc - * ReactOS Project (http://www.reactos.org) - * TRANSLATOR: Fulea Ștefan (PM on ReactOS Forum at fulea.stefan) - * CHANGE LOG: 2011-08-21 initial translation - * 2011-10-26 diacritics correction, other minor changes +/* + * FILE: base/applications/network/ping/lang/ro-RO.rc + * PURPOSE: Romanian translations for ReactOS Ping Command + * TRANSLATORS: Fulea Ștefan */ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL @@ -10,36 +8,57 @@ STRINGTABLE BEGIN - IDS_USAGE "\nUtilizare: ping [-t] [-n număr] [-l dimensiune] [-w expirare] gazdă-destinație\n\n\ + IDS_USAGE "\n\ +Utilizare: ping [-t] [-a] [-n număr] [-l dimensiune] [-f] [-i TTL] [-v TOS]\n\ + [-w expirare] [-4] [-6] gazdă-destinație\n\ +\n\ Opțiuni:\n\ - -t Transmite necontenit pachete către gazda specificată.\n\ - Pentru a opri transmisia - tastați Control-C.\n\ - -n număr Numărul de ecouri cerute ca răspuns.\n\ - -l dimensiune Transmite dimensiunea memoriei tampon.\n\ - -w expirare Limita temporală de așteptare a unui răspuns,\n\ - exprimată în milisecunde.\n\n\0" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n număr Numărul de ecouri cerute ca răspuns.\n\ + -l dimensiune Transmite dimensiunea memoriei tampon.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w expirare Limita temporală de așteptare a unui răspuns, exprimată în milisecunde.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nTransmitere către %1 [%2] cu %3!d! octeți de date:\n\n\0" - IDS_PING_STATISTICS "\nstatistici de transmisie pentru %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " pachete: transmise = %1!d!, recepționate = %2!d!, pierdute = %3!d! (%4!d!%% pierderi),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "timpul aproximativ de tur-retur, in milisecunde:\n\0" - IDS_MIN_MAX_AVERAGE " minim = %1, maxim = %2, mediu = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Nu există suficiente resurse disponibile.\n\0" - IDS_UNKNOWN_HOST "%1 este o gazdă necunoscută.\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt a eșuat (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Nu se poate crea socket (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Nu se poate iniția winsock dll.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Este necesară specificarea numelui sau a adresei IP a gazdei destinație.\n\0" - IDS_BAD_PARAMETER "Parametru eronat: %1.\n\0" - IDS_BAD_OPTION_FORMAT "Opțiune cu format eronat: %1.\n\0" - IDS_BAD_OPTION "%1 este o opțiune eronată.\n\0" - IDS_BAD_VALUE_OPTION_L "Valoare eronată pentru opțiunea -l, domeniul valid este 0 - %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Valoare eronată pentru opțiunea -n, domeniul valid este 1 - %1!u!.\n\0" - IDS_REPLY_FROM "Răspuns de la %1: octeți=%2!d! timp%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Gazda destinație este inaccesibilă.\n\0" - IDS_COULD_NOT_TRANSMIT "Nu s-a reușit transmiterea datelor (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Nu s-a reușit recepția datelor (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Cererea a expirat.\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Nu există suficiente resurse disponibile.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "%1 este o opțiune eronată.\n" + IDS_BAD_PARAMETER "Parametru eronat: %1.\n" + IDS_BAD_VALUE "Valoare eronată pentru opțiunea %1, domeniul valid este %2!d! - %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nTransmitere către %1 %0" + IDS_PINGING_HOSTNAME "\nTransmitere către %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "cu %1!d! octeți de date:\n\n" + IDS_REPLY_FROM "Răspuns de %1: %0" + IDS_REPLY_BYTES "octeți=%1!d! %0" + IDS_REPLY_TIME_MS "timp=%1!d!ms %0" + IDS_REPLY_TIME_0MS "timp<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Cererea a expirat.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +statistici de transmisie pentru %1!s!:\n\ + pachete: transmise = %2!d!, recepționate = %3!d!, pierdute %4!d! (%5!u!%% pierderi),\n" + + IDS_APPROXIMATE_RTT "timpul aproximativ de tur-retur, in milisecunde:\n\ + minim = %1!u!ms, maxim = %2!u!ms, mediu = %3!u!ms\n" END Index: base/applications/network/ping/lang/ru-RU.rc =================================================================== --- base/applications/network/ping/lang/ru-RU.rc (revision 72764) +++ base/applications/network/ping/lang/ru-RU.rc (working copy) @@ -1,36 +1,64 @@ +/* + * FILE: base/applications/network/ping/lang/ru-RU.rc + * PURPOSE: Russian translations for ReactOS Ping Command + * TRANSLATORS: + */ + LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE BEGIN - IDS_USAGE "\nИспользование:\n ping [-t] [-n <число>] [-l <размер>] [-w <тайм-аут>] конечный_узел\n\n\ + IDS_USAGE "\n\ +Использование: ping [-t] [-a] [-n <число>] [-l <размер>] [-f] [-i TTL] [-v TOS]\n\ + [-w <тайм-аут>] [-4] [-6] конечный_узел\n\ +\n\ Параметры:\n\ - -t Проверка связи с указанным узлом до прекращения.\n\ - Для прекращения нажмите CTRL+C.\n\ - -n <число> Число отправляемых запросов эхо-запросов.\n\ - -l <размер> Размер буфера отправки.\n\ - -w <тайм-аут> Тайм-аут для каждого ответа (в миллисекундах)\n\n\0" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n <число> Число отправляемых запросов эхо-запросов.\n\ + -l <размер> Размер буфера отправки.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w <тайм-аут> Тайм-аут для каждого ответа (в миллисекундах).\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nОбмен пакетами с %1 [%2] по %3!d! байта данных:\n\n\0" - IDS_PING_STATISTICS "\nСтатистика Ping для %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Пакетов: отправлено = %1!d!, получено = %2!d!, потеряно = %3!d! (%4!d!%% потерь),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Приблизительное время приема-передачи в мс:\n\0" - IDS_MIN_MAX_AVERAGE " Минимальное = %1, Максимальное = %2, Среднее = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Невозможно выделить требуемую память.\n\0" - IDS_UNKNOWN_HOST "Неизвестный узел %1.\n\0" - IDS_SETSOCKOPT_FAILED "Ошибка setsockopt (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Не удалось создать сокет (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Не удается инициализировать интерфейс ReactOS Sockets.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Необходимо указать адрес IP.\n\0" - IDS_BAD_PARAMETER "Неверный параметр %1.\n\0" - IDS_BAD_OPTION_FORMAT "Неверный формат опции %1.\n\0" - IDS_BAD_OPTION "Неверная опция %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Недопустимое значение параметра -l, допустимый диапазон с 0 по %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Недопустимое значение параметра -n, допустимый диапазон с 1 по %1!u!.\n\0" - IDS_REPLY_FROM "Ответ от %1: число байт=%2!d! время%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Заданный узел недоступен.\n\0" - IDS_COULD_NOT_TRANSMIT "Невозможно передать данные (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Невозможно получить данные (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Превышен интервал ожидания для запроса.\n\0" - IDS_MS "мсек\0" - IDS_1MS "1мсек\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Невозможно выделить требуемую память.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Неверная опция %1.\n" + IDS_BAD_PARAMETER "Неверный параметр %1.\n" + IDS_BAD_VALUE "Недопустимое значение параметра %1, допустимый диапазон с %2!d! по %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nОбмен пакетами с %1 %0" + IDS_PINGING_HOSTNAME "\nОбмен пакетами с %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "по %1!d! байта данных:\n\n" + IDS_REPLY_FROM "Ответ от %1: %0" + IDS_REPLY_BYTES "число байт=%1!d! %0" + IDS_REPLY_TIME_MS "время=%1!d!ms %0" + IDS_REPLY_TIME_0MS "время<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Превышен интервал ожидания для запроса.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Статистика Ping для %1!s!:\n\ + Пакетов: отправлено = %2!d!, получено = %3!d!, потеряно %4!d! (%5!u!%% потерь),\n" + + IDS_APPROXIMATE_RTT "Приблизительное время приема-передачи в мс:\n\ + Минимальное = %1!u!ms, Максимальное = %2!u!ms, Среднее = %3!u!ms\n" END Index: base/applications/network/ping/lang/sq-AL.rc =================================================================== --- base/applications/network/ping/lang/sq-AL.rc (revision 72764) +++ base/applications/network/ping/lang/sq-AL.rc (working copy) @@ -1,40 +1,64 @@ -/* TRANSLATOR : Ardit Dani (Ard1t) (ardit.dani@gmail.com) - * DATE OF TR: 29-11-2013 -*/ +/* + * FILE: base/applications/network/ping/lang/sq-AL.rc + * PURPOSE: Albabian translations for ReactOS Ping Command + * TRANSLATORS: Ardit Dani + */ LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_USAGE "\nPërdorimi: ping [-t] [-n count] [-l size] [-w timeout] destination-host\n\n\ + IDS_USAGE "\n\ +Përdorimi: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]\n\ + [-w timeout] [-4] [-6] destination-host\n\ +\n\ Options:\n\ - -t Pingo hostin specifik deri ne ndalim.\n\ - Për ndalim - shkruaj Control-C.\n\ - -n count Numri i kerkesa echo per tu derguar.\n\ - -l size Dergo masen buffer.\n\ - -w timeout Timeout në milisekonda per te pritur secilen pergjigje.\n\n\0" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n count Numri i kerkesa echo per tu derguar.\n\ + -l size Dergo masen buffer.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w timeout Timeout në milisekonda per te pritur secilen pergjigje.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nPing ne vazhdim %1 [%2] me %3!d! bytes data:\n\n\0" - IDS_PING_STATISTICS "\nStatistikat e Ping për %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Packeta: Dërguar = %1!d!, Marr = %2!d!, Humbur = %3!d! (%4!d!%% loss),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Afersisht koha e matjes në mili-sekonda:\n\0" - IDS_MIN_MAX_AVERAGE " Minimum = %1, Maximum = %2, Mesatar = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Nuk mjaftojne burimet ne dispozicion.\n\0" - IDS_UNKNOWN_HOST "Host i panjohur %1.\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt deshtoj (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Nuk krijoj dot socket (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Nuk inicializoj dor winsock dll.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Emri ose adresa IP'se dhe destinacioni duhet specifikuar.\n\0" - IDS_BAD_PARAMETER "Parametra i keq %1.\n\0" - IDS_BAD_OPTION_FORMAT "Opsion formati i keq %1.\n\0" - IDS_BAD_OPTION "Opsion i keq %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Vlere e keqe per opsion -l, varh i vlefshem nga 0 në %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Vlere e keqe per opsion -n, varh i vlefshem nga 1 në %1!u!.\n\0" - IDS_REPLY_FROM "Pergjigju nga %1: bytes=%2!d! time%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Destinacioni i hostit i pakapshem.\n\0" - IDS_COULD_NOT_TRANSMIT "Nuk transmetoj dot data (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Nuk merr dot data (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Kerkese kohe mbaroj.\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Nuk mjaftojne burimet ne dispozicion.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Opsion i keq %1.\n" + IDS_BAD_PARAMETER "Parametra i keq %1.\n" + IDS_BAD_VALUE "Vlere e keqe per opsion %1, varh i vlefshem nga %2!d! në %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPing ne vazhdim %1 %0" + IDS_PINGING_HOSTNAME "\nPing ne vazhdim %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "me %1!d! bytes data:\n\n" + IDS_REPLY_FROM "Reply from %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "time=%1!d!ms %0" + IDS_REPLY_TIME_0MS "time<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Kerkese kohe mbaroj.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Statistikat e Ping për %1!s!:\n\ + Packeta: Dërguar = %2!d!, Marr = %3!d!, Humbur %4!d! (%5!u!%% loss),\n" + + IDS_APPROXIMATE_RTT "Afersisht koha e matjes në mili-sekonda:\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Mesatar = %3!u!ms\n" END Index: base/applications/network/ping/lang/sv-SE.rc =================================================================== --- base/applications/network/ping/lang/sv-SE.rc (revision 72764) +++ base/applications/network/ping/lang/sv-SE.rc (working copy) @@ -1,8 +1,7 @@ /* - * PROJECT: ReactOS PING - * FILE: base/applications/network/ping/lang/sv-SE.rc - * PURPOSE: Swedish resource file - * TRANSLATOR: Jaix Bly + * FILE: base/applications/network/ping/lang/sv-SE.rc + * PURPOSE: Swedish translations for ReactOS Ping Command + * TRANSLATORS: Jaix Bly */ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL @@ -9,35 +8,57 @@ STRINGTABLE BEGIN - IDS_USAGE "\nSYNTAX: ping [-t] [-n antal] [-l storlek] [-w timeout] värddator\n\n\ + IDS_USAGE "\n\ +SYNTAX: ping [-t] [-a] [-n antal] [-l storlek] [-f] [-i TTL] [-v TOS]\n\ + [-w timeout] [-4] [-6] värddator\n\ +\n\ Alternativ:\n\ - -t Pinga den angivna datorn tills kommandor stoppas.\n\ - För att stoppa - tryck Ctrl-C.\n\ - -n antal Antal ekobegäranden som ska skickas.\n\ - -l storlek Sändniningsbuffertens storlek.\n\ - -w timeout Timeout i millisekunder att vänta på varje svar.\n\n\0" + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n antal Antal ekobegäranden som ska skickas.\n\ + -l storlek Sändniningsbuffertens storlek.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w timeout Timeout i millisekunder att vänta på varje svar.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nPingar %1 [%2] med %3!d! bytes data:\n\n\0" - IDS_PING_STATISTICS "\nPing statistk för %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Packet: Sända = %1!d!, Mottagna = %2!d!, Förlorade = %3!d! (%4!d!%% förlust),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Ungefärliga slingtider i millisekunder:\n\0" - IDS_MIN_MAX_AVERAGE " Minimum = %1, Maximum = %2, Genomsnittlig = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Inte tillräckliga resurser tillgänliga.\n\0" - IDS_UNKNOWN_HOST "Okänd Värd %1.\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt misslyckades (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Kunde inte skapa socket (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Kunde inte initialisera winsock dll.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Namn eller IP adress till värd måste anges.\n\0" - IDS_BAD_PARAMETER "Ogiltig parameter %1.\n\0" - IDS_BAD_OPTION_FORMAT "Ogiltigt format på alternativ %1.\n\0" - IDS_BAD_OPTION "Ogiltigt alternativ %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Ogiltigt värde för alternativ -l, giltig intervall är från 0 till %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Ogiltigt värde för alternativ -n, giltig intervall är från 1 till %1!u!.\n\0" - IDS_REPLY_FROM "Svar från %1: bytes=%2!d! tid%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Värddatorn går inte att nå.\n\0" - IDS_COULD_NOT_TRANSMIT "Kunde inte sända data (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Kunde inte ta emot data (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Förfrågan gjorde timeout.\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Inte tillräckliga resurser tillgänliga.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Ogiltigt alternativ %1.\n" + IDS_BAD_PARAMETER "Ogiltig parameter %1.\n" + IDS_BAD_VALUE "Ogiltigt värde för alternativ %1, giltig intervall är från %2!d! till %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPingar %1 %0" + IDS_PINGING_HOSTNAME "\nPingar %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "med %1!d! bytes data:\n\n" + IDS_REPLY_FROM "Svar från %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "tid=%1!d!ms %0" + IDS_REPLY_TIME_0MS "tid<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Förfrågan gjorde timeout.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Ping statistk för %1!s!:\n\ + Packet: Sända = %2!d!, Mottagna = %3!d!, Förlorade %4!d! (%5!u!%% förlust),\n" + + IDS_APPROXIMATE_RTT "Ungefärliga slingtider i millisekunder:\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Genomsnittlig = %3!u!ms\n" END Index: base/applications/network/ping/lang/tr-TR.rc =================================================================== --- base/applications/network/ping/lang/tr-TR.rc (revision 72764) +++ base/applications/network/ping/lang/tr-TR.rc (working copy) @@ -1,38 +1,64 @@ -/* TRANSLATOR: 2015 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* + * FILE: base/applications/network/ping/lang/tr-TR.rc + * PURPOSE: Turkish translations for ReactOS Ping Command + * TRANSLATORS: Erdem Ersoy + */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT STRINGTABLE BEGIN - IDS_USAGE "\nKullanım: ping [-t] [-n sayı] [-l boyut] [-w süre aşımı] varış anabilgisayarı\n\n\ -Seçenekler:\n\ - -t Belirtilen anabilgisayara durana kadar ping atar.\n\ - Durdurmak için Denetim ve C'ye basınız.\n\ + IDS_USAGE "\n\ +Kullanım: ping [-t] [-a] [-n sayı] [-l boyut] [-f] [-i TTL] [-v TOS]\n\ + [-w süre aşımı] [-4] [-6] varış anabilgisayarı\n\ +\n\ +Options:\n\ + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ -n sayı Gönderilecek yankı istekleri sayısı.\n\ -l boyut Arabellek boyutunu gönder.\n\ - -w süre aşımı Tüm yanutlar için beklemeye mili sâniye olarak süre aşımı.\n\n\0" + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w süre aşımı Tüm yanutlar için beklemeye mili sâniye olarak süre aşımı.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\n%3!d! veri çoklusuyla %1 [%2] varışına ping atılıyor:\n\n\0" - IDS_PING_STATISTICS "\n%1 için ping atma sayımlamaları:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Paketler: Gönderilen = %1!d!, Alınan = %2!d!, Yitirilen = %3!d! (%%%4!d! yitik),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Mili sâniye olarak yaklaşık gidiş geliş süreleri:\n\0" - IDS_MIN_MAX_AVERAGE " En Az = %1, En Çok = %2, Ortalama = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Kullanılabilir yeterli boş kaynak yok.\n\0" - IDS_UNKNOWN_HOST "Bilinmeyen anabilgisayar: %1.\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt başarısız oldu (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Soket oluşturulamadı (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "winsock DLL'si başlatılamadı.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Varış anabilgisayarının adı ya da IP adresi belirtilmiş olmalıdır.\n\0" - IDS_BAD_PARAMETER "Geçersiz değişken: %1.\n\0" - IDS_BAD_OPTION_FORMAT "Geçersiz seçenek biçimi: %1.\n\0" - IDS_BAD_OPTION "Geçersiz seçenek: %1.\n\0" - IDS_BAD_VALUE_OPTION_L "-l seçeneği için değer geçersiz, geçerli aralık 0'dan %1!d! sayısına dektir.\n\0" - IDS_BAD_VALUE_OPTION_N "-n seçeneği için değer geçersiz, geçerli aralık 1'den %1!u! sayısına dektir.\n\0" - IDS_REPLY_FROM "%1 varışından yanıt: çoklu=%2!d! süre=%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Varış anabilgisayarı erişilemez.\n\0" - IDS_COULD_NOT_TRANSMIT "Veri gönderilemedi (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Veri alınamadı (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "İstek süre aşımına uğradı.\n\0" - IDS_MS "ms\0" - IDS_1MS "1 ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Kullanılabilir yeterli boş kaynak yok.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Geçersiz seçenek: %1.\n" + IDS_BAD_PARAMETER "Geçersiz değişken: %1.\n" + IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPinging %1 %0" + IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "with %1!d! bytes of data:\n\n" + IDS_REPLY_FROM "%1 varışından yanıt: %0" + IDS_REPLY_BYTES "çoklu=%1!d! %0" + IDS_REPLY_TIME_MS "süre=%1!d!ms %0" + IDS_REPLY_TIME_0MS "süre<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "İstek süre aşımına uğradı.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +%1!s! için ping atma sayımlamaları:\n\ + Paketler: Gönderilen = %2!d!, Alınan = %3!d!, Yitirilen %4!d! (%%%5!u! yitik),\n" + + IDS_APPROXIMATE_RTT "Mili sâniye olarak yaklaşık gidiş geliş süreleri:\n\ + En Az = %1!u!ms, En Çok = %2!u!ms, Ortalama = %3!u!ms\n" END Index: base/applications/network/ping/lang/uk-UA.rc =================================================================== --- base/applications/network/ping/lang/uk-UA.rc (revision 72764) +++ base/applications/network/ping/lang/uk-UA.rc (working copy) @@ -1,9 +1,7 @@ /* - * PROJECT: Ping for ReactOS - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/applications/network/ping/lang/uk-UA.rc - * PURPOSE: Ukraianian Language File for Ping - * TRANSLATOR: Sakara Eugene (vzov@yandex.ua) + * FILE: base/applications/network/ping/lang/uk-UA.rc + * PURPOSE: Ukranian translations for ReactOS Ping Command + * TRANSLATORS: */ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT @@ -10,35 +8,57 @@ STRINGTABLE BEGIN - IDS_USAGE "\nВикористання: ping [-t] [-n count] [-l size] [-w timeout] хост\n\n\ -Опції:\n\ - -t Пінг вказаного вузла поки не буде здійснена ручна зупинка.\n\ - Для зупинки натисніть Control-C.\n\ - -n count Кількість запитів, які будуть підправлені.\n\ - -l size Розмір буфера відправки.\n\ - -w timeout Час очікування кожної відповіді в мілісекундах.\n\n\0" + IDS_USAGE "\n\ +Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]\n\ + [-w timeout] [-4] [-6] target\n\ +\n\ +Options:\n\ + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n count Number of echo requests to send.\n\ + -l size Send buffer size.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w timeout Timeout in milliseconds to wait for each reply.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\nОбмін пакетами з %1 [%2] по %3!d! байта:\n\n\0" - IDS_PING_STATISTICS "\nСтатистика Ping для %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Пакетів: відправлено = %1!d!, отримано = %2!d!, втрачено = %3!d! (%4!d!%% втрат),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "Приблизний час прийому-передачі:\n\0" - IDS_MIN_MAX_AVERAGE " Мінімальний = %1, Максимальний = %2, Середній = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "Недостатньо вільних ресурсів.\n\0" - IDS_UNKNOWN_HOST "Невідомий хост %1.\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt невдалий (%1!d!).\n\0" - IDS_COULD_NOT_CREATE_SOCKET "Не вдалося створити сокет (#%1!d!).\n\0" - IDS_COULD_NOT_INIT_WINSOCK "Не вдалося ініціалізувати winsock dll.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Ім'я або IP-адреса хосту повинні бути вказані.\n\0" - IDS_BAD_PARAMETER "Поганий параметр %1.\n\0" - IDS_BAD_OPTION_FORMAT "Невірний формат опції %1.\n\0" - IDS_BAD_OPTION "Погана опція %1.\n\0" - IDS_BAD_VALUE_OPTION_L "Неправильне значення для опції -l, допустимий діапазон від 0 до %1!d!.\n\0" - IDS_BAD_VALUE_OPTION_N "Неправильне значення для опції -n, допустимий діапазон від 1 до %1!u!.\n\0" - IDS_REPLY_FROM "Відповідь від %1: байтів=%2!d! час%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "Хост недоступний.\n\0" - IDS_COULD_NOT_TRANSMIT "Не вдалося передати дані (%1!d!).\n\0" - IDS_COULD_NOT_RECV "Не вдалося отримати дані (%1!d!).\n\0" - IDS_REQUEST_TIMEOUT "Очікування запиту.\n\0" - IDS_MS "мс\0" - IDS_1MS "1мс\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Not enough resources available.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Bad option %1.\n" + IDS_BAD_PARAMETER "Bad parameter %1.\n" + IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPinging %1 %0" + IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "with %1!d! bytes of data:\n\n" + IDS_REPLY_FROM "Reply from %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "time=%1!d!ms %0" + IDS_REPLY_TIME_0MS "time<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Request timed out.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Ping statistics for %1!s!:\n\ + Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n" + + IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n" END Index: base/applications/network/ping/lang/zh-CN.rc =================================================================== --- base/applications/network/ping/lang/zh-CN.rc (revision 72764) +++ base/applications/network/ping/lang/zh-CN.rc (working copy) @@ -1,38 +1,64 @@ -/* Translated by Song Fuchang (0xfc) */ +/* + * FILE: base/applications/network/ping/lang/zh-CN.rc + * PURPOSE: Chinese (Simplified) translations for ReactOS Ping Command + * TRANSLATORS: + */ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED STRINGTABLE BEGIN - IDS_USAGE "用法:ping [-t] [-n 次数] [-l 大小] [-w 超时] 目标主机\n\n\ -选项:\n\ - -t 不停呼叫指定的主机直到被终止。\n\ - 要停止 - 按下 Ctrl-C。\n\ - -n 次数 发送回响包的次数。\n\ - -l 大小 发送包的大小。\n\ - -w 超时 等待每个回复的时间(毫秒)。\n\n\0" + IDS_USAGE "\n\ +Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]\n\ + [-w timeout] [-4] [-6] target\n\ +\n\ +Options:\n\ + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n count Number of echo requests to send.\n\ + -l size Send buffer size.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w timeout Timeout in milliseconds to wait for each reply.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\n正在呼叫 %1 [%2] ,数据包大小 %3!d! 字节:\n\n\0" - IDS_PING_STATISTICS "\n%1 的呼叫统计:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " 数据包:发送个数 = %1!d!,接收个数 = %2!d!,丢失个数 = %3!d! (丢失率 %4!d!%%),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "近似来回所需时间(毫秒):\n\0" - IDS_MIN_MAX_AVERAGE " 最小值 = %1, 最大值 = %2, 平均值 = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "空闲资源不足。\n\0" - IDS_UNKNOWN_HOST "未知主机 %1。\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt 失败 (%1!d!)。\n\0" - IDS_COULD_NOT_CREATE_SOCKET "不能创建套接字 (#%1!d!)。\n\0" - IDS_COULD_NOT_INIT_WINSOCK "不能初始化 winsock dll。\n\0" - IDS_DEST_MUST_BE_SPECIFIED "目标主机的名称或 IP 地址必须被指定。\n\0" - IDS_BAD_PARAMETER "错误参数 %1。\n\0" - IDS_BAD_OPTION_FORMAT "错误选项格式 %1。\n\0" - IDS_BAD_OPTION "错误选项 %1。\n\0" - IDS_BAD_VALUE_OPTION_L "-l 选项的值无效,有效的范围是从 0 到 %1!d!。\n\0" - IDS_BAD_VALUE_OPTION_N "-n 选项的值无效,有效的范围是从 1 到 %1!u!。\n\0" - IDS_REPLY_FROM "来自 %1 的回复:字节数=%2!d! 时间%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "目标主机不可到达。\n\0" - IDS_COULD_NOT_TRANSMIT "无法发送数据 (%1!d!)。\n\0" - IDS_COULD_NOT_RECV "无法接收数据 (%1!d!)。\n\0" - IDS_REQUEST_TIMEOUT "请求超时。\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Not enough resources available.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Bad option %1.\n" + IDS_BAD_PARAMETER "Bad parameter %1.\n" + IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPinging %1 %0" + IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "with %1!d! bytes of data:\n\n" + IDS_REPLY_FROM "Reply from %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "time=%1!d!ms %0" + IDS_REPLY_TIME_0MS "time<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Request timed out.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Ping statistics for %1!s!:\n\ + Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n" + + IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n" END Index: base/applications/network/ping/lang/zh-TW.rc =================================================================== --- base/applications/network/ping/lang/zh-TW.rc (revision 72764) +++ base/applications/network/ping/lang/zh-TW.rc (working copy) @@ -1,38 +1,64 @@ -/* Traditional Chinese translation by Henry Tang Ih 2016 (henrytang2@hotmail.com) */ +/* + * FILE: base/applications/network/ping/lang/zh-TW.rc + * PURPOSE: Chinese (Traditional) translations for ReactOS Ping Command + * TRANSLATORS: + */ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL STRINGTABLE BEGIN - IDS_USAGE "用法:ping [-t] [-n 次數] [-l 大小] [-w 超時] 目標主機\n\n\ -選項:\n\ - -t 不停呼叫指定的主機直到被終止。\n\ - 要停止 - 按下 Ctrl-C。\n\ - -n 次數 發送迴響包的次數。\n\ - -l 大小 發送包的大小。\n\ - -w 超時 等待每個回覆的時間(毫秒)。\n\n\0" + IDS_USAGE "\n\ +Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]\n\ + [-w timeout] [-4] [-6] target\n\ +\n\ +Options:\n\ + -t Ping the specified host until stopped.\n\ + To see statistics and continue - type Control-Break;\n\ + To stop - type Control-C.\n\ + -a Resolve addresses to hostnames.\n\ + -n count Number of echo requests to send.\n\ + -l size Send buffer size.\n\ + -f Set Don't Fragment flag in packet (IPv4-only).\n\ + -i TTL Time To Live.\n\ + -v TOS Type Of Service (IPv4-only. This setting has been deprecated\n\ + and has no effect on the type of service field in the IP\n\ + Header).\n\ + -w timeout Timeout in milliseconds to wait for each reply.\n\ + -4 Force using IPv4.\n\ + -6 Force using IPv6.\n\ +\n" - IDS_PING_WITH_BYTES "\n正在呼叫 %1 [%2] ,資料包大小 %3!d! 位元組:\n\n\0" - IDS_PING_STATISTICS "\n%1 的呼叫統計:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " 資料包:發送個數 = %1!d!,接收個數 = %2!d!,丟失個數 = %3!d! (丟失率 %4!d!%%),\n\0" - IDS_APPROXIMATE_ROUND_TRIP "近似來回所需時間(毫秒):\n\0" - IDS_MIN_MAX_AVERAGE " 最小值 = %1, 最大值 = %2, 平均值 = %3\n\0" - IDS_NOT_ENOUGH_RESOURCES "空閒資源不足。\n\0" - IDS_UNKNOWN_HOST "未知主機 %1。\n\0" - IDS_SETSOCKOPT_FAILED "setsockopt 失敗 (%1!d!)。\n\0" - IDS_COULD_NOT_CREATE_SOCKET "不能創建套接字 (#%1!d!)。\n\0" - IDS_COULD_NOT_INIT_WINSOCK "不能初始化 winsock dll。\n\0" - IDS_DEST_MUST_BE_SPECIFIED "目標主機的名稱或 IP 地址必須被指定。\n\0" - IDS_BAD_PARAMETER "錯誤參數 %1。\n\0" - IDS_BAD_OPTION_FORMAT "錯誤選項格式 %1。\n\0" - IDS_BAD_OPTION "錯誤選項 %1。\n\0" - IDS_BAD_VALUE_OPTION_L "-l 選項的值無效,有效的範圍是從 0 到 %1!d!。\n\0" - IDS_BAD_VALUE_OPTION_N "-n 選項的值無效,有效的範圍是從 1 到 %1!u!。\n\0" - IDS_REPLY_FROM "來自 %1 的回覆:位元組數=%2!d! 時間%3%4 TTL=%5!d!\n\0" - IDS_DEST_UNREACHABLE "目標主機不可到達。\n\0" - IDS_COULD_NOT_TRANSMIT "無法發送資料 (%1!d!)。\n\0" - IDS_COULD_NOT_RECV "無法接收資料 (%1!d!)。\n\0" - IDS_REQUEST_TIMEOUT "請求超時。\n\0" - IDS_MS "ms\0" - IDS_1MS "1ms\0" + IDS_CTRL_BREAK "Control-Break\n" + IDS_CTRL_C "Control-C\n" + IDS_NO_RESOURCES "Not enough resources available.\n" + IDS_MISSING_ADDRESS "IP address must be specified.\n" + IDS_MISSING_VALUE "Value must be supplied for option %1.\n" + IDS_BAD_OPTION "Bad option %1.\n" + IDS_BAD_PARAMETER "Bad parameter %1.\n" + IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n" + IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n" + IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n" + IDS_PINGING_ADDRESS "\nPinging %1 %0" + IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0" + IDS_SOURCE_ADDRESS "from %1!s! %0" + IDS_PING_SIZE "with %1!d! bytes of data:\n\n" + IDS_REPLY_FROM "Reply from %1: %0" + IDS_REPLY_BYTES "bytes=%1!d! %0" + IDS_REPLY_TIME_MS "time=%1!d!ms %0" + IDS_REPLY_TIME_0MS "time<1ms %0" + IDS_REPLY_TTL "TTL=%1!d!\n" + IDS_REPLY_STATUS "Echo reply returned %1.\n" + IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n" + IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n" + IDS_REQUEST_TIMED_OUT "Request timed out.\n" + IDS_TTL_EXPIRED "TTL expired in transit.\n" + IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n" + + IDS_STATISTICS "\n\ +Ping statistics for %1!s!:\n\ + Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n" + + IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\ + Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n" END Index: base/applications/network/ping/ping.c =================================================================== --- base/applications/network/ping/ping.c (revision 72764) +++ base/applications/network/ping/ping.c (working copy) @@ -1,241 +1,229 @@ /* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS ping utility - * FILE: base/applications/network/ping/ping.c - * PURPOSE: Network test utility - * PROGRAMMERS: + * Copyright (c) 2015 Tim Crawford + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. */ -#define WIN32_NO_STATUS -#include -#include -#include -#include -#include -#include -#define _INC_WINDOWS -#include +/* + * PROJECT: ReactOS Ping Command + * LICENSE: MIT + * FILE: base/applications/network/ping/ping.c + * PURPOSE: Network test utility + * PROGRAMMERS: Tim Crawford + */ + +#define WIN32_LEAN_AND_MEAN + #include #include +#include +#include +#include +#include #include "resource.h" #define NDEBUG +#include -/* General ICMP constants */ -#define ICMP_MINSIZE 8 /* Minimum ICMP packet size */ -#define ICMP_MAXSIZE 65535 /* Maximum ICMP packet size */ +#define SIZEOF_ICMP_ERROR 8 +#define SIZEOF_IO_STATUS_BLOCK 8 +#define DEFAULT_TIMEOUT 1000 +#define MAX_SEND_SIZE 65500 -/* ICMP message types */ -#define ICMPMSG_ECHOREQUEST 8 /* ICMP ECHO request message */ -#define ICMPMSG_ECHOREPLY 0 /* ICMP ECHO reply message */ +static BOOL ParseCmdLine(int argc, PWSTR argv[]); +static BOOL ResolveTarget(PCWSTR target); +static void Usage(void); +static void Ping(void); +static void PrintStats(void); +static BOOL WINAPI ConsoleCtrlHandler(DWORD ControlType); +static void PrintString(UINT id, ...); -#pragma pack(4) +static HANDLE hIcmpFile = INVALID_HANDLE_VALUE; +static ULONG Timeout = 4000; +static int Family = AF_UNSPEC; +static ULONG RequestSize = 32; +static ULONG PingCount = 4; +static BOOL PingForever = FALSE; +static PADDRINFOW Target = NULL; +static PCWSTR TargetName = NULL; +static WCHAR Address[46]; +static WCHAR CanonName[NI_MAXHOST]; +static BOOL ResolveAddress = FALSE; -/* IPv4 header structure */ -typedef struct _IPv4_HEADER -{ - unsigned char IHL:4; - unsigned char Version:4; - unsigned char TOS; - unsigned short Length; - unsigned short Id; - unsigned short FragFlags; - unsigned char TTL; - unsigned char Protocol; - unsigned short Checksum; - unsigned int SrcAddress; - unsigned int DstAddress; -} IPv4_HEADER, *PIPv4_HEADER; +static ULONG RTTMax = 0; +static ULONG RTTMin = 0; +static ULONG RTTTotal = 0; +static ULONG EchosSent = 0; +static ULONG EchosReceived = 0; +static ULONG EchosSuccessful = 0; -/* ICMP echo request/reply header structure */ -typedef struct _ICMP_HEADER -{ - unsigned char Type; - unsigned char Code; - unsigned short Checksum; - unsigned short Id; - unsigned short SeqNum; -} ICMP_HEADER, *PICMP_HEADER; +static IP_OPTION_INFORMATION IpOptions; -typedef struct _ICMP_ECHO_PACKET +int +wmain(int argc, WCHAR *argv[]) { - ICMP_HEADER Icmp; -} ICMP_ECHO_PACKET, *PICMP_ECHO_PACKET; + WSADATA wsaData; + ULONG i; + DWORD StrLen = 46; -#pragma pack(1) + IpOptions.Ttl = 128; -BOOL NeverStop; -BOOL ResolveAddresses; -UINT PingCount; -UINT DataSize; /* ICMP echo request data size */ -BOOL DontFragment; -ULONG TTLValue; -ULONG TOSValue; -ULONG Timeout; -WCHAR TargetName[256]; -SOCKET IcmpSock; -SOCKADDR_IN Target; -WCHAR TargetIP[16]; -FD_SET Fds; -TIMEVAL Timeval; -UINT CurrentSeqNum; -UINT SentCount; -UINT LostCount; -BOOL MinRTTSet; -LARGE_INTEGER MinRTT; /* Minimum round trip time in microseconds */ -LARGE_INTEGER MaxRTT; -LARGE_INTEGER SumRTT; -LARGE_INTEGER AvgRTT; -LARGE_INTEGER TicksPerMs; /* Ticks per millisecond */ -LARGE_INTEGER TicksPerUs; /* Ticks per microsecond */ -LARGE_INTEGER SentTime; -BOOL UsePerformanceCounter; -HANDLE hStdOutput; + if (!ParseCmdLine(argc, argv)) + { + return 1; + } -#ifndef NDEBUG -/* Display the contents of a buffer */ -static VOID DisplayBuffer( - PVOID Buffer, - DWORD Size) -{ - UINT i; - PCHAR p; + if (!SetConsoleCtrlHandler(ConsoleCtrlHandler, TRUE)) + { + DPRINT1("Failed to set control handler: %lu\n", GetLastError()); - printf("Buffer (0x%p) Size (0x%lX).\n", Buffer, Size); + return 1; + } - p = (PCHAR)Buffer; - for (i = 0; i < Size; i++) + if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { - if (i % 16 == 0) - printf("\n"); - printf("%02X ", (p[i]) & 0xFF); + DPRINT1("WSAStartup failed\n"); + + return 1; } -} -#endif /* !NDEBUG */ -void FormatOutput(UINT uID, ...) -{ - va_list valist; + if (!ResolveTarget(TargetName)) + { + WSACleanup(); - WCHAR Buf[1024]; - CHAR AnsiBuf[1024]; - LPWSTR pBuf = Buf; - PCHAR pAnsiBuf = AnsiBuf; - WCHAR Format[1024]; - DWORD written; - UINT DataLength; - int AnsiLength; + return 1; + } - if (!LoadString(GetModuleHandle(NULL), uID, - Format, sizeof(Format) / sizeof(WCHAR))) + if (WSAAddressToStringW(Target->ai_addr, (DWORD)Target->ai_addrlen, NULL, Address, &StrLen) != 0) { - return; + DPRINT1("WSAAddressToStringW failed: %d\n", WSAGetLastError()); + FreeAddrInfoW(Target); + WSACleanup(); + + return 1; } - va_start(valist, uID); + if (Family == AF_INET6) + { + hIcmpFile = Icmp6CreateFile(); + } + else + { + hIcmpFile = IcmpCreateFile(); + } - DataLength = FormatMessage(FORMAT_MESSAGE_FROM_STRING, Format, 0, 0, Buf,\ - sizeof(Buf) / sizeof(WCHAR), &valist); - if(!DataLength) + if (hIcmpFile == INVALID_HANDLE_VALUE) { - if(GetLastError() != ERROR_INSUFFICIENT_BUFFER) - { - va_end(valist); - return; - } + DPRINT1("IcmpCreateFile failed: %lu\n", GetLastError()); + FreeAddrInfoW(Target); + WSACleanup(); - DataLength = FormatMessage(FORMAT_MESSAGE_FROM_STRING |\ - FORMAT_MESSAGE_ALLOCATE_BUFFER,\ - Format, 0, 0, (LPWSTR)&pBuf, 0, &valist); + return 1; } - if(!DataLength) + if (*CanonName) { - va_end(valist); - return; + PrintString(IDS_PINGING_HOSTNAME, CanonName, Address); } - - if(GetFileType(hStdOutput) == FILE_TYPE_CHAR) + else { - /* Is a console or a printer */ - WriteConsole(hStdOutput, pBuf, DataLength, &written, NULL); + PrintString(IDS_PINGING_ADDRESS, Address); } - else - { - /* Is a pipe, socket, file or other */ - AnsiLength = WideCharToMultiByte(CP_ACP, 0, pBuf, DataLength,\ - NULL, 0, NULL, NULL); - if(AnsiLength >= sizeof(AnsiBuf)) - pAnsiBuf = (PCHAR)HeapAlloc(GetProcessHeap(), 0, AnsiLength); + PrintString(IDS_PING_SIZE, RequestSize); - AnsiLength = WideCharToMultiByte(CP_OEMCP, 0, pBuf, DataLength,\ - pAnsiBuf, AnsiLength, " ", NULL); + Ping(); + i = 1; - WriteFile(hStdOutput, pAnsiBuf, AnsiLength, &written, NULL); + while (i < PingCount) + { + Sleep(1000); + Ping(); - if(pAnsiBuf != AnsiBuf) - HeapFree(NULL, 0, pAnsiBuf); + if (!PingForever) + i++; } - if(pBuf != Buf) - LocalFree(pBuf); -} + PrintStats(); -/* Display usage information on screen */ -static VOID Usage(VOID) -{ - FormatOutput(IDS_USAGE); + IcmpCloseHandle(hIcmpFile); + FreeAddrInfoW(Target); + WSACleanup(); + + return 0; } -/* Reset configuration to default values */ -static VOID Reset(VOID) +static +void +PrintString(UINT id, ...) { - LARGE_INTEGER PerformanceCounterFrequency; + WCHAR Format[1024]; + WCHAR Msg[1024]; + DWORD Len; + va_list args; - NeverStop = FALSE; - ResolveAddresses = FALSE; - PingCount = 4; - DataSize = 32; - DontFragment = FALSE; - TTLValue = 128; - TOSValue = 0; - Timeout = 1000; - UsePerformanceCounter = QueryPerformanceFrequency(&PerformanceCounterFrequency); - - if (UsePerformanceCounter) + if (!LoadStringW(GetModuleHandleW(NULL), id, Format, _countof(Format))) { - /* Performance counters may return incorrect results on some multiprocessor - platforms so we restrict execution on the first processor. This may fail - on Windows NT so we fall back to GetCurrentTick() for timing */ - if (SetThreadAffinityMask (GetCurrentThread(), 1) == 0) - UsePerformanceCounter = FALSE; + DPRINT1("LoadStringW failed: %lu\n", GetLastError()); - /* Convert frequency to ticks per millisecond */ - TicksPerMs.QuadPart = PerformanceCounterFrequency.QuadPart / 1000; - /* And to ticks per microsecond */ - TicksPerUs.QuadPart = PerformanceCounterFrequency.QuadPart / 1000000; + return; } - if (!UsePerformanceCounter) + + va_start(args, id); + + Len = FormatMessageW( + FORMAT_MESSAGE_FROM_STRING, + Format, 0, 0, + Msg, 1024, &args); + + if (Len == 0) { - /* 1 tick per millisecond for GetCurrentTick() */ - TicksPerMs.QuadPart = 1; - /* GetCurrentTick() cannot handle microseconds */ - TicksPerUs.QuadPart = 1; + DPRINT1("FormatMessageW failed: %lu\n", GetLastError()); + + va_end(args); + return; } + + wprintf(L"%s", Msg); + + va_end(args); } -/* Parse command line parameters */ -static BOOL ParseCmdline(int argc, LPWSTR argv[]) +static +void +Usage(void) { - INT i; - BOOL FoundTarget = FALSE, InvalidOption = FALSE; + PrintString(IDS_USAGE); +} +static +BOOL +ParseCmdLine(int argc, PWSTR argv[]) +{ + int i; + if (argc < 2) { Usage(); + return FALSE; } @@ -245,525 +233,480 @@ { switch (argv[i][1]) { - case L't': NeverStop = TRUE; break; - case L'a': ResolveAddresses = TRUE; break; - case L'n': - if (i + 1 < argc) + case L't': + PingForever = TRUE; + break; + + case L'a': + ResolveAddress = TRUE; + break; + + case L'n': + if (i + 1 < argc) + { + PingForever = FALSE; + PingCount = wcstoul(argv[++i], NULL, 0); + + if (PingCount == 0) { - PingCount = wcstoul(argv[++i], NULL, 0); + PrintString(IDS_BAD_VALUE, argv[i - 1], 1, UINT_MAX); - if (PingCount == 0) - { - FormatOutput(IDS_BAD_VALUE_OPTION_N, UINT_MAX); - return FALSE; - } + return FALSE; } - else - InvalidOption = TRUE; - break; - case L'l': - if (i + 1 < argc) + } + else + { + PrintString(IDS_MISSING_VALUE, argv[i]); + + return FALSE; + } + + break; + + case L'l': + if (i + 1 < argc) + { + RequestSize = wcstoul(argv[++i], NULL, 0); + + if (RequestSize > MAX_SEND_SIZE) { - DataSize = wcstoul(argv[++i], NULL, 0); + PrintString(IDS_BAD_VALUE, argv[i - 1], 0, MAX_SEND_SIZE); - if (DataSize > ICMP_MAXSIZE - sizeof(ICMP_ECHO_PACKET) - sizeof(IPv4_HEADER)) - { - FormatOutput(IDS_BAD_VALUE_OPTION_L, ICMP_MAXSIZE - \ - (int)sizeof(ICMP_ECHO_PACKET) - \ - (int)sizeof(IPv4_HEADER)); - return FALSE; - } - } else - InvalidOption = TRUE; - break; - case L'f': DontFragment = TRUE; break; - case L'i': - if (i + 1 < argc) - TTLValue = wcstoul(argv[++i], NULL, 0); - else - InvalidOption = TRUE; - break; - case L'v': - if (i + 1 < argc) - TOSValue = wcstoul(argv[++i], NULL, 0); - else - InvalidOption = TRUE; - break; - case L'w': - if (i + 1 < argc) - Timeout = wcstoul(argv[++i], NULL, 0); - else - InvalidOption = TRUE; - break; - case '?': - Usage(); + return FALSE; + } + } + else + { + PrintString(IDS_MISSING_VALUE, argv[i]); + return FALSE; - default: - FormatOutput(IDS_BAD_OPTION, argv[i]); + } + + break; + + case L'f': + if (Family == AF_INET6) + { + PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv4"); + return FALSE; - } - if (InvalidOption) - { - FormatOutput(IDS_BAD_OPTION_FORMAT, argv[i]); - return FALSE; - } - } - else - { - if (FoundTarget) - { - FormatOutput(IDS_BAD_PARAMETER, argv[i]); - return FALSE; - } - else - { - wcscpy(TargetName, argv[i]); - FoundTarget = TRUE; - } - } - } + } - if (!FoundTarget) - { - FormatOutput(IDS_DEST_MUST_BE_SPECIFIED); - return FALSE; - } + Family = AF_INET; + IpOptions.Flags |= IP_FLAG_DF; + break; - return TRUE; -} + case L'i': + if (i + 1 < argc) + { + ULONG Ttl = wcstoul(argv[++i], NULL, 0); -/* Calculate checksum of data */ -static WORD Checksum(PUSHORT data, UINT size) -{ - ULONG sum = 0; + if ((Ttl == 0) || (Ttl > UCHAR_MAX)) + { + PrintString(IDS_BAD_VALUE, argv[i - 1], 1, UCHAR_MAX); - while (size > 1) - { - sum += *data++; - size -= sizeof(USHORT); - } + return FALSE; + } - if (size) - sum += *(UCHAR*)data; + IpOptions.Ttl = (UCHAR)Ttl; + } + else + { + PrintString(IDS_MISSING_VALUE, argv[i]); - sum = (sum >> 16) + (sum & 0xFFFF); - sum += (sum >> 16); + return FALSE; + } - return (USHORT)(~sum); -} + break; -static BOOL WINAPI StopLoop(DWORD dwCtrlType) -{ - NeverStop = FALSE; - PingCount = 0; + case L'v': + if (Family == AF_INET6) + { + PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv4"); - return TRUE; -} + return FALSE; + } -/* Prepare to ping target */ -static BOOL Setup(VOID) -{ - WORD wVersionRequested; - WSADATA WsaData; - INT Status; - ULONG Addr; - PHOSTENT phe; - CHAR aTargetName[256]; + Family = AF_INET; - wVersionRequested = MAKEWORD(2, 2); + if (i + 1 < argc) + { + /* This option has been deprecated. Don't do anything. */ + i++; + } + else + { + PrintString(IDS_MISSING_VALUE, argv[i]); - Status = WSAStartup(wVersionRequested, &WsaData); - if (Status != 0) - { - FormatOutput(IDS_COULD_NOT_INIT_WINSOCK); - return FALSE; - } + return FALSE; + } - IcmpSock = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0, 0); - if (IcmpSock == INVALID_SOCKET) - { - FormatOutput(IDS_COULD_NOT_CREATE_SOCKET, WSAGetLastError()); - return FALSE; - } + break; - if (setsockopt(IcmpSock, - IPPROTO_IP, - IP_DONTFRAGMENT, - (const char *)&DontFragment, - sizeof(DontFragment)) == SOCKET_ERROR) - { - FormatOutput(IDS_SETSOCKOPT_FAILED, WSAGetLastError()); - return FALSE; - } + case L'w': + if (i + 1 < argc) + { + Timeout = wcstoul(argv[++i], NULL, 0); - if (setsockopt(IcmpSock, - IPPROTO_IP, - IP_TTL, - (const char *)&TTLValue, - sizeof(TTLValue)) == SOCKET_ERROR) - { - FormatOutput(IDS_SETSOCKOPT_FAILED, WSAGetLastError()); - return FALSE; - } + if (Timeout < DEFAULT_TIMEOUT) + { + Timeout = DEFAULT_TIMEOUT; + } + } + else + { + PrintString(IDS_MISSING_VALUE, argv[i]); + return FALSE; + } - if(!WideCharToMultiByte(CP_ACP, 0, TargetName, -1, aTargetName,\ - sizeof(aTargetName), NULL, NULL)) - { - FormatOutput(IDS_UNKNOWN_HOST, TargetName); - return FALSE; - } + break; - ZeroMemory(&Target, sizeof(Target)); - phe = NULL; - Addr = inet_addr(aTargetName); - if (Addr == INADDR_NONE) - { - phe = gethostbyname(aTargetName); - if (phe == NULL) + case L'R': + if (Family == AF_INET) + { + PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv6"); + + return FALSE; + } + + Family = AF_INET6; + + /* This option has been deprecated. Don't do anything. */ + break; + + case L'4': + if (Family == AF_INET6) + { + PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv4"); + + return FALSE; + } + + Family = AF_INET; + break; + + case L'6': + if (Family == AF_INET) + { + PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv6"); + + return FALSE; + } + + Family = AF_INET6; + break; + + case L'?': + Usage(); + + return FALSE; + + default: + PrintString(IDS_BAD_OPTION, argv[i]); + Usage(); + + return FALSE; + } + } + else { - FormatOutput(IDS_UNKNOWN_HOST, TargetName); - return FALSE; + if (TargetName != NULL) + { + PrintString(IDS_BAD_PARAMETER, argv[i]); + + return FALSE; + } + + TargetName = argv[i]; } + } - CopyMemory(&Target.sin_addr, phe->h_addr, phe->h_length); - Target.sin_family = phe->h_addrtype; - } - else + if (TargetName == NULL) { - Target.sin_addr.s_addr = Addr; - Target.sin_family = AF_INET; + PrintString(IDS_MISSING_ADDRESS); + + return FALSE; } - - swprintf(TargetIP, L"%d.%d.%d.%d", Target.sin_addr.S_un.S_un_b.s_b1,\ - Target.sin_addr.S_un.S_un_b.s_b2,\ - Target.sin_addr.S_un.S_un_b.s_b3,\ - Target.sin_addr.S_un.S_un_b.s_b4); - CurrentSeqNum = 1; - SentCount = 0; - LostCount = 0; - MinRTT.QuadPart = 0; - MaxRTT.QuadPart = 0; - SumRTT.QuadPart = 0; - MinRTTSet = FALSE; - - SetConsoleCtrlHandler(StopLoop, TRUE); - return TRUE; } -/* Close socket */ -static VOID Cleanup(VOID) +static +BOOL +ResolveTarget(PCWSTR target) { - if (IcmpSock != INVALID_SOCKET) - closesocket(IcmpSock); + ADDRINFOW hints; + int Status; - WSACleanup(); -} + ZeroMemory(&hints, sizeof(hints)); + hints.ai_family = Family; + hints.ai_flags = AI_NUMERICHOST; -static VOID QueryTime(PLARGE_INTEGER Time) -{ - if (UsePerformanceCounter) + Status = GetAddrInfoW(target, NULL, &hints, &Target); + if (Status != 0) { - if (QueryPerformanceCounter(Time) == 0) + hints.ai_flags = AI_CANONNAME; + + Status = GetAddrInfoW(target, NULL, &hints, &Target); + if (Status != 0) { - /* This should not happen, but we fall - back to GetCurrentTick() if it does */ - Time->u.LowPart = (ULONG)GetTickCount(); - Time->u.HighPart = 0; + PrintString(IDS_UNKNOWN_HOST, target); - /* 1 tick per millisecond for GetCurrentTick() */ - TicksPerMs.QuadPart = 1; - /* GetCurrentTick() cannot handle microseconds */ - TicksPerUs.QuadPart = 1; + return FALSE; + } - UsePerformanceCounter = FALSE; - } + wcsncpy(CanonName, Target->ai_canonname, wcslen(Target->ai_canonname)); } - else + else if (ResolveAddress) { - Time->u.LowPart = (ULONG)GetTickCount(); - Time->u.HighPart = 0; + Status = GetNameInfoW( + Target->ai_addr, Target->ai_addrlen, + CanonName, _countof(CanonName), + NULL, 0, + NI_NAMEREQD); + + if (Status != 0) + { + DPRINT1("GetNameInfoW failed: %d\n", Status); + + return FALSE; + } } -} -static VOID TimeToMsString(LPWSTR String, ULONG Length, LARGE_INTEGER Time) -{ - WCHAR Convstr[40]; - LARGE_INTEGER LargeTime; - LPWSTR ms; + Family = Target->ai_family; - LargeTime.QuadPart = Time.QuadPart / TicksPerMs.QuadPart; - - _i64tow(LargeTime.QuadPart, Convstr, 10); - wcscpy(String, Convstr); - ms = String + wcslen(String); - LoadString(GetModuleHandle(NULL), IDS_MS, ms, Length - (ms - String)); + return TRUE; } -/* Locate the ICMP data and print it. Returns TRUE if the packet was good, - FALSE if not */ -static BOOL DecodeResponse(PCHAR buffer, UINT size, PSOCKADDR_IN from) +static +void +Ping(void) { - PIPv4_HEADER IpHeader; - PICMP_ECHO_PACKET Icmp; - UINT IphLength; - WCHAR Time[100]; - LARGE_INTEGER RelativeTime; - LARGE_INTEGER LargeTime; - WCHAR Sign[2]; - WCHAR wfromIP[16]; + PVOID ReplyBuffer = NULL; + PVOID SendBuffer = NULL; + DWORD ReplySize = 0; + DWORD Status; - IpHeader = (PIPv4_HEADER)buffer; + SendBuffer = malloc(RequestSize); + if (SendBuffer == NULL) + { + PrintString(IDS_NO_RESOURCES); - IphLength = IpHeader->IHL * 4; - - if (size < IphLength + ICMP_MINSIZE) - { -#ifndef NDEBUG - printf("Bad size (0x%X < 0x%X)\n", size, IphLength + ICMP_MINSIZE); -#endif /* !NDEBUG */ - return FALSE; + exit(1); } - Icmp = (PICMP_ECHO_PACKET)(buffer + IphLength); + ZeroMemory(SendBuffer, RequestSize); - if (Icmp->Icmp.Type != ICMPMSG_ECHOREPLY) + if (Family == AF_INET6) { -#ifndef NDEBUG - printf("Bad ICMP type (0x%X should be 0x%X)\n", Icmp->Icmp.Type, ICMPMSG_ECHOREPLY); -#endif /* !NDEBUG */ - return FALSE; + ReplySize += sizeof(ICMPV6_ECHO_REPLY); } - - if (Icmp->Icmp.Id != (USHORT)GetCurrentProcessId()) + else { -#ifndef NDEBUG - printf("Bad ICMP id (0x%X should be 0x%X)\n", Icmp->Icmp.Id, (USHORT)GetCurrentProcessId()); -#endif /* !NDEBUG */ - return FALSE; + ReplySize += sizeof(ICMP_ECHO_REPLY); } - if (from->sin_addr.s_addr != Target.sin_addr.s_addr) + ReplySize += RequestSize + SIZEOF_ICMP_ERROR + SIZEOF_IO_STATUS_BLOCK; + + ReplyBuffer = malloc(ReplySize); + if (ReplyBuffer == NULL) { -#ifndef NDEBUG - printf("Bad source address (%s should be %s)\n", inet_ntoa(from->sin_addr), inet_ntoa(Target.sin_addr)); -#endif /* !NDEBUG */ - return FALSE; + PrintString(IDS_NO_RESOURCES); + free(SendBuffer); + + exit(1); } - QueryTime(&LargeTime); + ZeroMemory(ReplyBuffer, ReplySize); - RelativeTime.QuadPart = (LargeTime.QuadPart - SentTime.QuadPart); + EchosSent++; - if ((RelativeTime.QuadPart / TicksPerMs.QuadPart) < 1) + if (Family == AF_INET6) { - wcscpy(Sign, L"<"); - LoadString(GetModuleHandle(NULL), IDS_1MS, Time, sizeof(Time) / sizeof(WCHAR)); + struct sockaddr_in6 Source; + + ZeroMemory(&Source, sizeof(Source)); + Source.sin6_family = AF_INET6; + + Status = Icmp6SendEcho2( + hIcmpFile, NULL, NULL, NULL, + &Source, + (struct sockaddr_in6 *)Target->ai_addr, + SendBuffer, (USHORT)RequestSize, &IpOptions, + ReplyBuffer, ReplySize, Timeout); } else { - wcscpy(Sign, L"="); - TimeToMsString(Time, sizeof(Time) / sizeof(WCHAR), RelativeTime); + Status = IcmpSendEcho2( + hIcmpFile, NULL, NULL, NULL, + ((PSOCKADDR_IN)Target->ai_addr)->sin_addr.s_addr, + SendBuffer, (USHORT)RequestSize, &IpOptions, + ReplyBuffer, ReplySize, Timeout); } + free(SendBuffer); - swprintf(wfromIP, L"%d.%d.%d.%d", from->sin_addr.S_un.S_un_b.s_b1,\ - from->sin_addr.S_un.S_un_b.s_b2,\ - from->sin_addr.S_un.S_un_b.s_b3,\ - from->sin_addr.S_un.S_un_b.s_b4); - FormatOutput(IDS_REPLY_FROM, wfromIP,\ - size - IphLength - (int)sizeof(ICMP_ECHO_PACKET),\ - Sign, Time, IpHeader->TTL); - - if (RelativeTime.QuadPart < MinRTT.QuadPart || !MinRTTSet) + if (Status == 0) { - MinRTT.QuadPart = RelativeTime.QuadPart; - MinRTTSet = TRUE; - } - if (RelativeTime.QuadPart > MaxRTT.QuadPart) - MaxRTT.QuadPart = RelativeTime.QuadPart; + Status = GetLastError(); + switch (Status) + { + case IP_DEST_HOST_UNREACHABLE: + PrintString(IDS_DEST_HOST_UNREACHABLE); + break; - SumRTT.QuadPart += RelativeTime.QuadPart; + case IP_DEST_NET_UNREACHABLE: + PrintString(IDS_DEST_NET_UNREACHABLE); + break; - return TRUE; -} + case IP_REQ_TIMED_OUT: + PrintString(IDS_REQUEST_TIMED_OUT); + break; -/* Send and receive one ping */ -static BOOL Ping(VOID) -{ - INT Status; - SOCKADDR From; - INT Length; - PVOID Buffer; - UINT Size; - PICMP_ECHO_PACKET Packet; - - /* Account for extra space for IP header when packet is received */ - Size = DataSize + 128; - Buffer = GlobalAlloc(0, Size); - if (!Buffer) + default: + PrintString(IDS_TRANSMIT_FAILED, Status); + break; + } + } + else { - FormatOutput(IDS_NOT_ENOUGH_RESOURCES); - return FALSE; - } + EchosReceived++; - ZeroMemory(Buffer, Size); - Packet = (PICMP_ECHO_PACKET)Buffer; + PrintString(IDS_REPLY_FROM, Address); - /* Assemble ICMP echo request packet */ - Packet->Icmp.Type = ICMPMSG_ECHOREQUEST; - Packet->Icmp.Code = 0; - Packet->Icmp.Id = (USHORT)GetCurrentProcessId(); - Packet->Icmp.SeqNum = htons((USHORT)CurrentSeqNum); - Packet->Icmp.Checksum = 0; + if (Family == AF_INET6) + { + PICMPV6_ECHO_REPLY pEchoReply; - /* Calculate checksum for ICMP header and data area */ - Packet->Icmp.Checksum = Checksum((PUSHORT)&Packet->Icmp, sizeof(ICMP_ECHO_PACKET) + DataSize); + pEchoReply = (PICMPV6_ECHO_REPLY)ReplyBuffer; - CurrentSeqNum++; + switch (pEchoReply->Status) + { + case IP_SUCCESS: + EchosSuccessful++; - /* Send ICMP echo request */ + if (pEchoReply->RoundTripTime == 0) + { + PrintString(IDS_REPLY_TIME_0MS); + } + else + { + PrintString(IDS_REPLY_TIME_MS, pEchoReply->RoundTripTime); + } - FD_ZERO(&Fds); - FD_SET(IcmpSock, &Fds); - Timeval.tv_sec = Timeout / 1000; - Timeval.tv_usec = Timeout % 1000; - Status = select(0, NULL, &Fds, NULL, &Timeval); - if ((Status != SOCKET_ERROR) && (Status != 0)) - { + if (pEchoReply->RoundTripTime < RTTMin || RTTMin == 0) + { + RTTMin = pEchoReply->RoundTripTime; + } -#ifndef NDEBUG - printf("Sending packet\n"); - DisplayBuffer(Buffer, sizeof(ICMP_ECHO_PACKET) + DataSize); - printf("\n"); -#endif /* !NDEBUG */ + if (pEchoReply->RoundTripTime > RTTMax || RTTMax == 0) + { + RTTMax = pEchoReply->RoundTripTime; + } - Status = sendto(IcmpSock, Buffer, sizeof(ICMP_ECHO_PACKET) + DataSize, - 0, (SOCKADDR*)&Target, sizeof(Target)); - QueryTime(&SentTime); - SentCount++; - } - if (Status == SOCKET_ERROR) - { - if (WSAGetLastError() == WSAEHOSTUNREACH) - FormatOutput(IDS_DEST_UNREACHABLE); - else - FormatOutput(IDS_COULD_NOT_TRANSMIT, WSAGetLastError()); - GlobalFree(Buffer); - LostCount++; - return FALSE; - } + RTTTotal += pEchoReply->RoundTripTime; + break; - /* Expect to receive ICMP echo reply */ - FD_ZERO(&Fds); - FD_SET(IcmpSock, &Fds); - Timeval.tv_sec = Timeout / 1000; - Timeval.tv_usec = Timeout % 1000; + case IP_TTL_EXPIRED_TRANSIT: + PrintString(IDS_TTL_EXPIRED); + break; - do { - Status = select(0, &Fds, NULL, NULL, &Timeval); - if ((Status != SOCKET_ERROR) && (Status != 0)) - { - Length = sizeof(From); - Status = recvfrom(IcmpSock, Buffer, Size, 0, &From, &Length); - -#ifndef NDEBUG - printf("Received packet\n"); - DisplayBuffer(Buffer, Status); - printf("\n"); -#endif /* !NDEBUG */ + default: + PrintString(IDS_REPLY_STATUS, pEchoReply->Status); + break; + } } else - LostCount++; - if (Status == SOCKET_ERROR) { - if (WSAGetLastError() != WSAETIMEDOUT) + PICMP_ECHO_REPLY pEchoReply; + + pEchoReply = (PICMP_ECHO_REPLY)ReplyBuffer; + + switch (pEchoReply->Status) { - FormatOutput(IDS_COULD_NOT_RECV, WSAGetLastError()); - GlobalFree(Buffer); - return FALSE; - } - Status = 0; - } + case IP_SUCCESS: + EchosSuccessful++; - if (Status == 0) - { - FormatOutput(IDS_REQUEST_TIMEOUT); - GlobalFree(Buffer); - return TRUE; - } + PrintString(IDS_REPLY_BYTES, pEchoReply->DataSize); - } while (!DecodeResponse(Buffer, Status, (PSOCKADDR_IN)&From)); + if (pEchoReply->RoundTripTime == 0) + { + PrintString(IDS_REPLY_TIME_0MS); + } + else + { + PrintString(IDS_REPLY_TIME_MS, pEchoReply->RoundTripTime); + } - GlobalFree(Buffer); - return TRUE; -} + PrintString(IDS_REPLY_TTL, pEchoReply->Options.Ttl); + if (pEchoReply->RoundTripTime < RTTMin || RTTMin == 0) + { + RTTMin = pEchoReply->RoundTripTime; + } -/* Program entry point */ -int wmain(int argc, LPWSTR argv[]) -{ - UINT Count; - WCHAR MinTime[20]; - WCHAR MaxTime[20]; - WCHAR AvgTime[20]; + if (pEchoReply->RoundTripTime > RTTMax || RTTMax == 0) + { + RTTMax = pEchoReply->RoundTripTime; + } - hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE); + RTTTotal += pEchoReply->RoundTripTime; + break; - Reset(); + case IP_TTL_EXPIRED_TRANSIT: + PrintString(IDS_TTL_EXPIRED); + break; - if ((ParseCmdline(argc, argv)) && (Setup())) - { + default: + PrintString(IDS_REPLY_STATUS, pEchoReply->Status); + break; + } + } + } - FormatOutput(IDS_PING_WITH_BYTES, TargetName, TargetIP, DataSize); + free(ReplyBuffer); +} - Count = 0; - while ((NeverStop) || (Count < PingCount)) - { - Ping(); - Count++; - if((NeverStop) || (Count < PingCount)) - Sleep(Timeout); - }; +static +void +PrintStats(void) +{ + ULONG EchosLost = EchosSent - EchosReceived; + ULONG PercentLost = (ULONG)((EchosLost / (double)EchosSent) * 100.0); - Cleanup(); + PrintString(IDS_STATISTICS, Address, EchosSent, EchosReceived, EchosLost, PercentLost); - /* Calculate avarage round trip time */ - if ((SentCount - LostCount) > 0) - AvgRTT.QuadPart = SumRTT.QuadPart / (SentCount - LostCount); - else - AvgRTT.QuadPart = 0; + if (EchosSuccessful > 0) + { + ULONG RTTAverage = RTTTotal / EchosSuccessful; - /* Calculate loss percent */ - Count = SentCount ? (LostCount * 100) / SentCount : 0; + PrintString(IDS_APPROXIMATE_RTT, RTTMin, RTTMax, RTTAverage); + } +} - if (!MinRTTSet) - MinRTT = MaxRTT; +static +BOOL +WINAPI +ConsoleCtrlHandler(DWORD ControlType) +{ + switch (ControlType) + { + case CTRL_C_EVENT: + PrintStats(); + PrintString(IDS_CTRL_C); + return FALSE; - TimeToMsString(MinTime, sizeof(MinTime) / sizeof(WCHAR), MinRTT); - TimeToMsString(MaxTime, sizeof(MaxTime) / sizeof(WCHAR), MaxRTT); - TimeToMsString(AvgTime, sizeof(AvgTime) / sizeof(WCHAR), AvgRTT); + case CTRL_BREAK_EVENT: + PrintStats(); + PrintString(IDS_CTRL_BREAK); + return TRUE; - /* Print statistics */ - FormatOutput(IDS_PING_STATISTICS, TargetIP); - FormatOutput(IDS_PACKETS_SENT_RECEIVED_LOST,\ - SentCount, SentCount - LostCount, LostCount, Count); + case CTRL_CLOSE_EVENT: + PrintStats(); + return FALSE; - - /* Print approximate times or NO approximate times if 100% loss */ - if ((SentCount - LostCount) > 0) - { - FormatOutput(IDS_APPROXIMATE_ROUND_TRIP); - FormatOutput(IDS_MIN_MAX_AVERAGE, MinTime, MaxTime, AvgTime); - } + default: + return FALSE; } - else - { - return 1; - } - return 0; } - -/* EOF */ Index: base/applications/network/ping/ping.rc =================================================================== --- base/applications/network/ping/ping.rc (revision 72764) +++ base/applications/network/ping/ping.rc (working copy) @@ -2,10 +2,9 @@ #include "resource.h" -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS TCP/IPv4 Win32 Ping" -#define REACTOS_STR_INTERNAL_NAME "ping" -#define REACTOS_STR_ORIGINAL_FILENAME "ping.exe" -#define REACTOS_STR_ORIGINAL_COPYRIGHT "Casper S. Hornstrup (chorns@users.sourceforge.net)" +#define REACTOS_STR_FILE_DESCRIPTION "TCP/IP Ping Command" +#define REACTOS_STR_INTERNAL_NAME "ping.exe" +#define REACTOS_STR_ORIGINAL_FILENAME "ping.exe" #include /* UTF-8 */ @@ -58,4 +57,4 @@ #endif #ifdef LANGUAGE_ZH_TW #include "lang/zh-TW.rc" -#endif \ No newline at end of file +#endif Index: base/applications/network/ping/resource.h =================================================================== --- base/applications/network/ping/resource.h (revision 72764) +++ base/applications/network/ping/resource.h (working copy) @@ -1,26 +1,30 @@ #pragma once -#define IDS_USAGE 0 -#define IDS_PING_WITH_BYTES 1 -#define IDS_PING_STATISTICS 2 -#define IDS_PACKETS_SENT_RECEIVED_LOST 3 -#define IDS_APPROXIMATE_ROUND_TRIP 4 -#define IDS_MIN_MAX_AVERAGE 5 -#define IDS_NOT_ENOUGH_RESOURCES 6 -#define IDS_UNKNOWN_HOST 7 -#define IDS_SETSOCKOPT_FAILED 8 -#define IDS_COULD_NOT_CREATE_SOCKET 9 -#define IDS_COULD_NOT_INIT_WINSOCK 10 -#define IDS_DEST_MUST_BE_SPECIFIED 11 -#define IDS_BAD_PARAMETER 12 -#define IDS_BAD_OPTION_FORMAT 13 -#define IDS_BAD_OPTION 14 -#define IDS_BAD_VALUE_OPTION_L 15 -#define IDS_REPLY_FROM 16 -#define IDS_DEST_UNREACHABLE 17 -#define IDS_COULD_NOT_TRANSMIT 18 -#define IDS_COULD_NOT_RECV 19 -#define IDS_REQUEST_TIMEOUT 20 -#define IDS_MS 21 -#define IDS_1MS 22 -#define IDS_BAD_VALUE_OPTION_N 23 +#define IDS_USAGE 100 +#define IDS_CTRL_BREAK 101 +#define IDS_CTRL_C 102 +#define IDS_NO_RESOURCES 103 +#define IDS_MISSING_ADDRESS 104 +#define IDS_MISSING_VALUE 105 +#define IDS_BAD_OPTION 106 +#define IDS_BAD_PARAMETER 107 +#define IDS_BAD_VALUE 108 +#define IDS_WRONG_FAMILY 109 +#define IDS_UNKNOWN_HOST 110 +#define IDS_PINGING_ADDRESS 111 +#define IDS_PINGING_HOSTNAME 112 +#define IDS_SOURCE_ADDRESS 113 +#define IDS_PING_SIZE 114 +#define IDS_REPLY_FROM 115 +#define IDS_REPLY_BYTES 116 +#define IDS_REPLY_TIME_MS 117 +#define IDS_REPLY_TIME_0MS 118 +#define IDS_REPLY_TTL 119 +#define IDS_REPLY_STATUS 120 +#define IDS_DEST_HOST_UNREACHABLE 121 +#define IDS_DEST_NET_UNREACHABLE 122 +#define IDS_REQUEST_TIMED_OUT 123 +#define IDS_TTL_EXPIRED 124 +#define IDS_TRANSMIT_FAILED 125 +#define IDS_STATISTICS 126 +#define IDS_APPROXIMATE_RTT 127