--- setup-FR/AntiVirus.cc.orig 2015-01-05 11:00:41.000000000 +0100 +++ setup-FR/AntiVirus.cc 2015-02-16 17:50:31.037151500 +0100 @@ -31,7 +31,11 @@ /* XXX: Split this into observer and model classes */ /* Default is to leave well enough alone */ +#ifdef LANG_FR +static BoolOption DisableVirusOption (false, 'A', "disable-buggy-antivirus", "Inhibe les anti-virus à l'exécution."); +#else static BoolOption DisableVirusOption (false, 'A', "disable-buggy-antivirus", "Disable known or suspected buggy anti virus software packages during execution."); +#endif static bool KnownAVIsPresent = false; static bool AVRunning = true; --- setup-FR/ChangeLog.orig 2015-02-16 17:50:31.085156300 +0100 +++ setup-FR/ChangeLog 2015-02-16 17:52:19.121958900 +0100 @@ -11171,4 +11171,4 @@ * zlib/Makefile.in: Regenerate from Makefile.am %%% $Id: ChangeLog,v 2.869 2015/02/07 21:18:05 gratz Exp $ -$Revision: 2.869 $ +$Revision: 2.869-FR $ --- setup-FR/choose.cc.orig 2015-02-05 11:45:50.000000000 +0100 +++ setup-FR/choose.cc 2015-02-16 17:50:31.186166400 +0100 @@ -62,9 +62,15 @@ #include "UserSettings.h" #include "getopt++/BoolOption.h" +#ifdef LANG_FR +static BoolOption UpgradeAlsoOption (false, 'g', "upgrade-also", "Mettre à jour les paquets installés"); +static BoolOption CleanOrphansOption (false, 'o', "delete-orphans", "Effacer les paquets orphelins"); +static BoolOption MirrorOption (false, 'm', "mirror-mode", "Ne pas faire les contrôles de disponibilité lors de l'installation depuis un dossier local (il faut que ce dossier soit un vrai mirroir !"); +#else static BoolOption UpgradeAlsoOption (false, 'g', "upgrade-also", "also upgrade installed packages"); static BoolOption CleanOrphansOption (false, 'o', "delete-orphans", "remove orphaned packages"); static BoolOption MirrorOption (false, 'm', "mirror-mode", "Skip availability check when installing from local directory (requires local directory to be clean mirror!)"); +#endif using namespace std; @@ -274,9 +280,17 @@ ClearBusy (); if (source == IDC_SOURCE_DOWNLOAD) +#ifndef LANG_FR setPrompt("Select packages to download "); +#else + setPrompt("Sélectionnez les paquets à télécharger."); +#endif else +#ifndef LANG_FR setPrompt("Select packages to install "); +#else + setPrompt("Sélectionnez les paquets à installer."); +#endif createListview (); AddTooltip (IDC_CHOOSE_KEEP, IDS_TRUSTKEEP_TOOLTIP); --- setup-FR/configure.ac.orig 2013-07-25 01:23:54.000000000 +0200 +++ setup-FR/configure.ac 2015-02-16 17:50:31.230170800 +0100 @@ -17,7 +17,7 @@ dnl dnl Process this file with autoconf to produce a configure script. -AC_INIT([setup], [0], [cygwin-apps@cygwin.com]) +AC_INIT([setup],[2.844-FR] , [cygwin-apps@cygwin.com]) AC_PREREQ(2.60) AC_CONFIG_AUX_DIR([cfgaux]) AM_INIT_AUTOMAKE([1.12 subdir-objects foreign no-define -Wall -Wno-portability]) --- setup-FR/crypto.cc.orig 2012-02-23 15:34:07.000000000 +0100 +++ setup-FR/crypto.cc 2015-02-16 17:50:31.272175000 +0100 @@ -35,6 +35,7 @@ #include "geturl.h" #define CRYPTODEBUGGING (0) +#define SECONDKEY (1) #if CRYPTODEBUGGING #define ERRKIND __asm__ __volatile__ (".byte 0xcc"); note @@ -45,6 +46,18 @@ #endif /* CRYPTODEBUGGING */ /* Command-line options for specifying and controlling extra keys. */ +#ifdef LANG_FR +static StringArrayOption ExtraKeyOption ('K', "pubkey", + "URL d'une clé publique supplémentaire (format gpg)"); + +static StringArrayOption SexprExtraKeyOption ('S', "sexpr-pubkey", + "Clé publique supplémentaire au format s-expr"); + +static BoolOption UntrustedKeysOption (false, 'u', "untrusted-keys", + "Utiliser les clés non-fiables du fichier last-extrakeys"); +static BoolOption KeepUntrustedKeysOption (false, 'U', "keep-untrusted-keys", + "Utiliser les clés non-fiables et les garder"); +#else static StringArrayOption ExtraKeyOption ('K', "pubkey", "URL of extra public key file (gpg format)"); @@ -55,12 +68,20 @@ "Use untrusted keys from last-extrakeys"); static BoolOption KeepUntrustedKeysOption (false, 'U', "keep-untrusted-keys", "Use untrusted keys and retain all"); +#endif /* Embedded public half of Cygwin DSA signing key. */ static const char *cygwin_pubkey_sexpr = #include "cyg-pubkey.h" ; +#if SECONDKEY +/* Embedded public half of second DSA signing key. */ +static const char *second_pubkey_sexpr = +#include "sec-pubkey.h" +; +#endif + /* S-expr template for DSA pubkey. */ static const char *dsa_pubkey_templ = "(public-key (dsa (p %m) (q %m) (g %m) (y %m)))"; @@ -437,6 +458,9 @@ { /* DSA public key in s-expr format. */ gcry_sexp_t dsa_key; +#if SECONDKEY + gcry_sexp_t dsa_key_second; +#endif /* Data returned from packet walker. */ struct sig_data sigdat; @@ -467,9 +491,23 @@ #if CRYPTODEBUGGING char sexprbuf[GPG_KEY_SEXPR_BUF_SIZE]; n = gcry_sexp_sprint (dsa_key, GCRYSEXP_FMT_ADVANCED, sexprbuf, GPG_KEY_SEXPR_BUF_SIZE); - msg ("key:%d\n'%s'", n, sexprbuf); + msg ("key0:%d\n'%s'", n, sexprbuf); #endif /* CRYPTODEBUGGING */ +#if SECONDKEY + /* Next build the second built-in key. */ + rv = gcry_sexp_new (&dsa_key_second, second_pubkey_sexpr, strlen (second_pubkey_sexpr), 1); + if (rv != GPG_ERR_NO_ERROR) + { + ERRKIND (owner, IDS_CRYPTO_ERROR, rv, "while creating second pubkey s-expr."); + } + + #if CRYPTODEBUGGING + n = gcry_sexp_sprint (dsa_key_second, GCRYSEXP_FMT_ADVANCED, sexprbuf, GPG_KEY_SEXPR_BUF_SIZE); + msg ("key1:%d\n'%s'", n, sexprbuf); + #endif /* CRYPTODEBUGGING */ +#endif + /* Next we should extract the keys from the last-extrakeys file, and flush it; we'll only return them to it if they get used. OTOH, should we do this at all? The extrakeys @@ -632,6 +670,14 @@ // Well, we're actually there! Try it against the main key. rv = gcry_pk_verify (dsa_sig, dsa_hash, dsa_key); +#if SECONDKEY + // And now try it against the second key. + if (rv != GPG_ERR_NO_ERROR) + { + MESSAGE ("Testing second pubkey\n"); + rv = gcry_pk_verify (dsa_sig, dsa_hash, dsa_key_second); + } +#endif // If not that, try any supplied on the commandline. if (rv != GPG_ERR_NO_ERROR) { @@ -680,6 +726,9 @@ } // Discard the temp data then. +#if SECONDKEY + gcry_sexp_release (dsa_key_second); +#endif gcry_sexp_release (dsa_key); if (sigdat.dsa_mpi_r) gcry_mpi_release (sigdat.dsa_mpi_r); --- setup-FR/cygpackage.cc.orig 2015-01-05 11:00:49.000000000 +0100 +++ setup-FR/cygpackage.cc 2015-02-16 17:50:31.329180700 +0100 @@ -77,6 +77,11 @@ temp->status = newstatus; temp->type = newtype; temp->setCanonicalVersion (version); +#ifdef LANG_FR +#if 0 + fprintf(stdout,"name='%s' filename='%s' ",pkgname.cstr_oneuse(), filename.cstr_oneuse()); +#endif +#endif return packageversion(temp); } @@ -108,6 +113,11 @@ packagev = "0"; vendor = version; } +#ifdef LANG_FR +#if 0 + fprintf(stdout," Version='%s' pVersion='%s' Vendor='%s'\n",version.cstr_oneuse(),packagev.cstr_oneuse(), vendor.cstr_oneuse()); +#endif +#endif } cygpackage::~cygpackage () --- setup-FR/desktop.cc.orig 2015-02-05 11:45:50.000000000 +0100 +++ setup-FR/desktop.cc 2015-02-16 17:50:31.522200000 +0100 @@ -48,9 +48,15 @@ #include "PackageSpecification.h" #include "LogFile.h" +#ifdef LANG_FR +static BoolOption NoShortcutsOption (false, 'n', "no-shortcuts", "Pas de création de raccourcis de bureau et de menu"); +static BoolOption NoStartMenuOption (false, 'N', "no-startmenu", "Pas de création de raccourci de menu"); +static BoolOption NoDesktopOption (false, 'd', "no-desktop", "Pas de création de raccourci de bureau"); +#else static BoolOption NoShortcutsOption (false, 'n', "no-shortcuts", "Disable creation of desktop and start menu shortcuts"); static BoolOption NoStartMenuOption (false, 'N', "no-startmenu", "Disable creation of start menu shortcut"); static BoolOption NoDesktopOption (false, 'd', "no-desktop", "Disable creation of desktop shortcut"); +#endif /* Lines starting with '@' are conditionals - include 'N' for NT, '5' for Win95, '8' for Win98, '*' for all, like this: @@ -172,7 +178,11 @@ HRSRC rsrc = FindResource (NULL, resource_name, "FILE"); if (rsrc == NULL) { +#ifndef LANG_FR fatal ("FindResource failed"); +#else + fatal ("Echec de FindResource"); +#endif } HGLOBAL res = LoadResource (NULL, rsrc); char *data = (char *) LockResource (res); @@ -258,8 +268,13 @@ header_string = eget (h, IDC_STATIC_HEADER_TITLE, header_string); if (message_string == NULL) message_string = eget (h, IDC_STATIC_HEADER, message_string); +#ifdef LANG_FR + eset (h, IDC_STATIC_HEADER_TITLE, "Installation terminée"); + eset (h, IDC_STATIC_HEADER, "Montre l'état de l'installation en mode téléchargement seulement."); +#else eset (h, IDC_STATIC_HEADER_TITLE, "Installation complete"); eset (h, IDC_STATIC_HEADER, "Shows installation status in download-only mode."); +#endif } else { --- setup-FR/geturl.cc.orig 2015-01-05 11:00:49.000000000 +0100 +++ setup-FR/geturl.cc 2015-02-16 17:50:31.555203300 +0100 @@ -69,10 +69,17 @@ string::size_type divide = url.find_last_of('/'); max_bytes = length; +#ifdef LANG_FR + Progress.SetText1("Télécharge..."); + Progress.SetText2((url.substr(divide + 1) + " depuis " + + url.substr(0, divide)).c_str()); + Progress.SetText3("Connexion..."); +#else Progress.SetText1("Downloading..."); Progress.SetText2((url.substr(divide + 1) + " from " + url.substr(0, divide)).c_str()); Progress.SetText3("Connecting..."); +#endif Progress.SetBar1(0); start_tics = GetTickCount (); } @@ -98,14 +105,23 @@ { int perc = (int)(100.0 * ((double)bytes) / (double)max_bytes); Progress.SetBar1(bytes, max_bytes); +#ifdef LANG_FR + sprintf (buf, "%d %% (%dk/%dk) %03.1f ko/s", + perc, bytes / 1000, max_bytes / 1000, kbps); +#else sprintf (buf, "%d %% (%dk/%dk) %03.1f kB/s", perc, bytes / 1000, max_bytes / 1000, kbps); +#endif if (total_download_bytes > 0) Progress.SetBar2(total_download_bytes_sofar + bytes, total_download_bytes); } else +#ifdef LANG_FR + sprintf (buf, "%d %2.1f ko/s", bytes, kbps); +#else sprintf (buf, "%d %2.1f kB/s", bytes, kbps); +#endif Progress.SetText3(buf); } @@ -231,7 +247,11 @@ { const char *err = strerror (errno); if (!err) +#ifdef LANG_FR + err = "(erreur inconnue)"; +#else err = "(unknown error)"; +#endif fatal (owner, IDS_ERR_OPEN_WRITE, _filename.c_str(), err); } --- setup-FR/ini.cc.orig 2015-02-05 11:45:50.000000000 +0100 +++ setup-FR/ini.cc 2015-02-16 17:50:31.589206700 +0100 @@ -60,7 +60,11 @@ std::string ini_setup_version; std::string current_ini_sig_name; +#ifdef LANG_FR +static BoolOption NoVerifyOption (false, 'X', "no-verify", "Ne pas vérifier les signatures de setup.ini"); +#else static BoolOption NoVerifyOption (false, 'X', "no-verify", "Don't verify setup.ini signatures"); +#endif extern int yyparse (); /*extern int yydebug;*/ @@ -72,7 +76,11 @@ { Progress.SetText2 (""); Progress.SetText3 (""); +#ifndef LANG_FR Progress.SetText4 ("Progress:"); +#else + Progress.SetText4 ("Avancement :"); +#endif } virtual void progress(unsigned long const pos, unsigned long const max) { @@ -96,7 +104,11 @@ } virtual void iniName (const std::string& name) { +#ifdef LANG_FR + Progress.SetText1 ("Analyse..."); +#else Progress.SetText1 ("Parsing..."); +#endif Progress.SetText2 (name.c_str()); Progress.SetText3 (""); } @@ -106,15 +118,27 @@ } virtual void warning (const std::string& message)const { +#ifdef LANG_FR + mbox (0, message.c_str(), "Attention", 0); +#else mbox (0, message.c_str(), "Warning", 0); +#endif } virtual void error(const std::string& message)const { +#ifdef LANG_FR + mbox (0, message.c_str(), "Erreurs d'analyse", 0); +#else mbox (0, message.c_str(), "Parse Errors", 0); +#endif } virtual ~ GuiParseFeedback () { +#ifdef LANG_FR + Progress.SetText4("Paquet :"); +#else Progress.SetText4("Package:"); +#endif } private: unsigned int lastpct; @@ -333,8 +357,13 @@ } } +#ifdef LANG_FR + msg ("la version de l'assistant pour le .ini est %s, notre version est %s", ini_setup_version.size() ? + ini_setup_version.c_str() : "(vide)", +#else msg (".ini setup_version is %s, our setup_version is %s", ini_setup_version.size() ? ini_setup_version.c_str () : "(null)", +#endif setup_version); if (ini_setup_version.size ()) { --- setup-FR/IniDBBuilderPackage.cc.orig 2015-02-16 17:29:49.000000000 +0100 +++ setup-FR/IniDBBuilderPackage.cc 2015-02-16 17:50:31.626210400 +0100 @@ -57,9 +57,15 @@ { char old_vers[256]; snprintf (old_vers, sizeof old_vers, +#ifdef LANG_FR + "Ce fichier ini correspond à une version plus récente de setup-FR-%s.exe. " + "Si vous avezs des problèmes lors de l'installation, téléchargez " + "la dernière version depuis http://lassauge.free.fr/cygwin/setup-FR-%s.exe", +#else "The current ini file is from a newer version of setup-%s.exe. " "If you have any trouble installing, please download a fresh " "version from http://www.cygwin.com/setup-%s.exe", +#endif is_64bit ? "x86_64" : "x86", is_64bit ? "x86_64" : "x86"); _feedback.warning(old_vers); --- setup-FR/install.cc.orig 2015-02-16 17:29:51.000000000 +0100 +++ setup-FR/install.cc 2015-02-16 17:54:37.924993100 +0100 @@ -73,9 +73,15 @@ static long long int total_bytes_sofar = 0; static int package_bytes = 0; +#ifdef LANG_FR +static BoolOption NoReplaceOnReboot (false, 'r', "no-replaceonreboot", + "Inhibe le remplacement des fichiers " + "au prochain redémarrage."); +#else static BoolOption NoReplaceOnReboot (false, 'r', "no-replaceonreboot", "Disable replacing in-use files on next " "reboot."); +#endif struct std_dirs_t { const char *name; @@ -156,7 +162,11 @@ void Installer::preremoveOne (packagemeta & pkg) { +#ifdef LANG_FR + Progress.SetText1 ("Lancement du script de pré-désinstallation..."); +#else Progress.SetText1 ("Running preremove script..."); +#endif Progress.SetText2 (pkg.name.c_str()); Log (LOG_PLAIN) << "Running preremove script for " << pkg.name << endLog; const unsigned numexts = 4; @@ -168,7 +178,11 @@ void Installer::uninstallOne (packagemeta & pkg) { +#ifdef LANG_FR + Progress.SetText1 ("Désinstalle..."); +#else Progress.SetText1 ("Uninstalling..."); +#endif Progress.SetText2 (pkg.name.c_str()); Log (LOG_PLAIN) << "Uninstalling " << pkg.name << endLog; pkg.uninstall (); @@ -208,7 +222,11 @@ case HCBT_ACTIVATE: hWnd = (HWND)wParam; if (GetDlgItem(hWnd, IDCANCEL) != NULL) +#ifdef LANG_FR + SetDlgItemText(hWnd, IDCANCEL, "Continuer"); +#else SetDlgItemText(hWnd, IDCANCEL, "Continue"); +#endif UnhookWindowsHookEx(hMsgBoxHook); } return CallNextHookEx(hMsgBoxHook, nCode, wParam, lParam); @@ -372,15 +390,24 @@ { if (!source.Canonical()) return; +#ifdef LANG_FR + Progress.SetText1 ("Installation"); + Progress.SetText2 (source.Base () ? source.Base () : "(inconnu)"); +#else Progress.SetText1 ("Installing"); Progress.SetText2 (source.Base () ? source.Base () : "(unknown)"); +#endif io_stream *pkgfile = NULL; if (!source.Cached() || !io_stream::exists (source.Cached ()) || !(pkgfile = io_stream::open (source.Cached (), "rb", 0))) { +#ifdef LANG_FR + note (NULL, IDS_ERR_OPEN_READ, source.Cached (), "Fichier inexistant"); +#else note (NULL, IDS_ERR_OPEN_READ, source.Cached (), "No such file"); +#endif ++errors; return; } @@ -424,7 +451,11 @@ else { note (NULL, IDS_ERR_OPEN_READ, source.Cached (), +#ifdef LANG_FR + "Format tar invalide on non supporté"); +#else "Invalid or unsupported tar format"); +#endif ++errors; } delete try_decompress; @@ -436,7 +467,11 @@ /* Not a compressed tarball, not a plain tarball, give up. */ delete pkgfile; note (NULL, IDS_ERR_OPEN_READ, source.Cached (), +#ifdef LANG_FR + "Format de fichier non reconnu"); +#else "Unrecognisable file format"); +#endif ++errors; return; } @@ -528,7 +563,11 @@ // listed processes, or just ignore the problem and schedule the file to be // replaced after a reboot FileInuseDlgData dlg_data; +#ifdef LANG_FR + dlg_data.msg = ("Impossible d'extraire /" + fn).c_str (); +#else dlg_data.msg = ("Unable to extract /" + fn).c_str (); +#endif dlg_data.processlist = plm.c_str (); dlg_data.iteration = iteration; @@ -542,6 +581,15 @@ // All we can offer the user is a generic "retry or ignore" choice and a chance // to fix the problem themselves char msg[fn.size() + 300]; +#ifdef LANG_FR + sprintf (msg, + "Incapable d'extraire /%s\r\n" + "Le fichier est utilisé ou une autre erreur est survenue.\r\n" + "Arrêtez tous les processus Cygwin et sélectionnez «Recommencer», ou\r\n" + "«Continuer» pour poursuivre (il faudra redémarrer).\r\n", + fn.c_str()); + rc = MessageBox (owner, msg, "Erreur à l'écriture du fichier", +#else sprintf (msg, "Unable to extract /%s\r\n" "The file is in use or some other error occurred.\r\n" @@ -550,6 +598,7 @@ fn.c_str()); rc = MessageBox (owner, msg, "Error writing file", +#endif MB_RETRYCONTINUE | MB_ICONWARNING | MB_TASKMODAL); } } @@ -609,7 +658,11 @@ { char msg[fn.size() + 300]; sprintf (msg, +#ifdef LANG_FR + "Impossible d'extraire /%s -- paquet corrompu ?\r\n", +#else "Unable to extract /%s -- corrupt package?\r\n", +#endif fn.c_str()); // XXX: We should offer the option to retry, @@ -620,7 +673,11 @@ // and ignore all errors is mis-implemented at present // to only apply to errors arising from a single archive, // so we degenerate to the continue option. +#ifdef LANG_FR + MessageBox (owner, msg, "Erreur extraction fichier", +#else MessageBox (owner, msg, "File extraction error", +#endif MB_OK | MB_ICONWARNING | MB_TASKMODAL); } @@ -666,21 +723,38 @@ char msg[sizeof (buf) + 132]; sprintf (msg, +#ifdef LANG_FR + "Une ancienne version de cygwin1.dll a été trouvée ici :\r\n%s\r\nEffacer ?", +#else "An old version of cygwin1.dll was found here:\r\n%s\r\nDelete?", +#endif buf); switch (MessageBox +#ifdef LANG_FR + (owner, msg, "Qu'est-ce que ça fait là ?", +#else (owner, msg, "What's that doing there?", +#endif MB_YESNO | MB_ICONQUESTION | MB_TASKMODAL)) { case IDYES: if (!DeleteFile (buf)) { +#ifdef LANG_FR + sprintf (msg, "Impossible de supprimer le fichier %s.\r\n" + "La DLL est peut être utilisée par une autre application ?\r\n" + "Vous devriez effacer la vieille version de cygwin1.dll\r\n" + "dès que possible.", buf); + MessageBox (owner, buf, "Impossible d'effacer le fichier", + MB_OK | MB_ICONEXCLAMATION | MB_TASKMODAL); +#else sprintf (msg, "Couldn't delete file %s.\r\n" "Is the DLL in use by another application?\r\n" "You should delete the old version of cygwin1.dll\r\n" "at your earliest convenience.", buf); MessageBox (owner, buf, "Couldn't delete file", MB_OK | MB_ICONEXCLAMATION | MB_TASKMODAL); +#endif } break; default: @@ -731,7 +805,12 @@ packagedb db; /* Calculate the amount of data to md5sum */ +#ifdef LANG_FR + Progress.SetText1("Calcul..."); +#else Progress.SetText1("Calculating..."); +#endif + long long int md5sum_total_bytes = 0; for (packagedb::packagecollection::iterator i = db.packages.begin (); i != db.packages.end (); ++i) @@ -854,8 +933,13 @@ { const char *err = strerror (temperr); if (!err) +#ifdef LANG_FR + err = "(erreur inconnue)"; + fatal (owner, IDS_ERR_OPEN_WRITE, "Base de données des paquets", +#else err = "(unknown error)"; fatal (owner, IDS_ERR_OPEN_WRITE, "Package Database", +#endif err); } @@ -994,9 +1078,15 @@ Log (LOG_BABBLE) << "Checking MD5 for " << fullname << endLog; +#ifdef LANG_FR + Progress.SetText1 ((std::string ("Vérification MD5 pour ") + + pkgsource.Base ()).c_str ()); + Progress.SetText4 ("Avancement :"); +#else Progress.SetText1 ((std::string ("Checking MD5 for ") + pkgsource.Base ()).c_str ()); Progress.SetText4 ("Progress:"); +#endif Progress.SetBar1 (0); unsigned char buffer[16384]; --- setup-FR/localdir.cc.orig 2015-02-05 11:45:50.000000000 +0100 +++ setup-FR/localdir.cc 2015-02-16 17:50:31.734221200 +0100 @@ -46,7 +46,11 @@ #include "threebar.h" extern ThreeBarProgressPage Progress; +#ifdef LANG_FR +static StringOption LocalDirOption ("", 'l', "local-package-dir", "Dossier local pour les paquets", false); +#else static StringOption LocalDirOption ("", 'l', "local-package-dir", "Local package directory", false); +#endif static ControlAdjuster::ControlInfo LocaldirControlsInfo[] = { { IDC_LOCALDIR_GRP, CP_STRETCH, CP_TOP }, --- setup-FR/main.cc.orig 2015-02-05 11:45:51.000000000 +0100 +++ setup-FR/main.cc 2015-02-16 17:50:31.771224900 +0100 @@ -91,12 +91,21 @@ HINSTANCE hinstance; +#ifdef LANG_FR +static StringOption Arch ("", 'a', "arch", "Architecture à installer (x86_64 ou x86)", false); +static BoolOption UnattendedOption (false, 'q', "quiet-mode", "Assistant sans messages"); +static BoolOption PackageManagerOption (false, 'M', "package-manager", "Mode assistant sélection seulement"); +static BoolOption NoAdminOption (false, 'B', "no-admin", "Ne pas vérifier et forcer à installer en tant qu'administrateur"); +static BoolOption WaitOption (false, 'W', "wait", "Attendre le process fils en mode élévation"); +static BoolOption HelpOption (false, 'h', "help", "Affiche l'aide"); +#else static StringOption Arch ("", 'a', "arch", "architecture to install (x86_64 or x86)", false); static BoolOption UnattendedOption (false, 'q', "quiet-mode", "Unattended setup mode"); static BoolOption PackageManagerOption (false, 'M', "package-manager", "Semi-attended chooser-only mode"); static BoolOption NoAdminOption (false, 'B', "no-admin", "Do not check for and enforce running as Administrator"); static BoolOption WaitOption (false, 'W', "wait", "When elevating, wait for elevated child process"); static BoolOption HelpOption (false, 'h', "help", "print help"); +#endif static void inline set_cout () @@ -215,6 +224,10 @@ snprintf(locale, sizeof locale, ".%u", GetACP()); setlocale(LC_ALL, locale); +#ifdef LANG_FR /* A Bit ugly but to be debugged wrt to above 2 lines */ + SetThreadLocale(MAKELCID(MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH),SORT_DEFAULT)); +#endif + char **_argv; int argc; for (argc = 0, _argv = __argv; *_argv; _argv++) @@ -249,10 +262,17 @@ else { char buff[80 + ((string) Arch).size ()]; +#ifdef LANG_FR + sprintf (buff, "Option invalide pour --arch : « %s »", + ((string) Arch).c_str ()); + fprintf (stderr, "*** %s\n", buff); + MessageBox (NULL, buff, "Option invalide", MB_ICONEXCLAMATION | MB_OK); +#else sprintf (buff, "Invalid option for --arch: \"%s\"", ((string) Arch).c_str ()); fprintf (stderr, "*** %s\n", buff); MessageBox (NULL, buff, "Invalid option", MB_ICONEXCLAMATION | MB_OK); +#endif exit (1); } --- setup-FR/Makefile.am.orig 2015-02-16 17:29:50.000000000 +0100 +++ setup-FR/Makefile.am 2015-02-16 17:50:31.806228400 +0100 @@ -130,6 +130,7 @@ crypto.cc \ crypto.h \ cyg-pubkey.h \ + sec-pubkey.h \ cygpackage.cc \ cygpackage.h \ desktop.cc \ @@ -289,7 +290,7 @@ res.o: @SETUP@.exe.manifest .rc.o: - $(AM_V_GEN)$(WINDRES) --include-dir $(srcdir) -o $@ $< + $(AM_V_GEN)$(WINDRES) -DLANG_FR --include-dir $(srcdir) -o $@ $< # static const char version_store[] = VERSION_PREFIX " 2.686"; setup-src: --- setup-FR/msg.cc.orig 2015-02-05 11:45:51.000000000 +0100 +++ setup-FR/msg.cc 2015-02-16 17:50:31.835231300 +0100 @@ -70,7 +70,11 @@ return 0; } } +#ifdef LANG_FR + return MessageBox (owner, buf, "Assistant Cygwin", type); +#else return MessageBox (owner, buf, "Cygwin Setup", type); +#endif } static int --- setup-FR/net.cc.orig 2015-01-05 11:00:54.000000000 +0100 +++ setup-FR/net.cc 2015-02-16 17:50:31.889236700 +0100 @@ -40,7 +40,11 @@ #include "ConnectionSetting.h" extern ThreeBarProgressPage Progress; +#ifdef LANG_FR +static StringOption ProxyOption ("", 'p', "proxy", "Proxy HTTP/FTP (serveur:port)", false); +#else static StringOption ProxyOption ("", 'p', "proxy", "HTTP/FTP proxy (host:port)", false); +#endif static int rb[] = { IDC_NET_IE5, IDC_NET_DIRECT, IDC_NET_PROXY, 0 }; static bool doing_loading = false; --- setup-FR/nio-file.cc.orig 2013-11-18 12:16:15.000000000 +0100 +++ setup-FR/nio-file.cc 2015-02-16 17:50:31.933241100 +0100 @@ -44,7 +44,11 @@ { const char *err = strerror (errno); if (!err) +#ifdef LANG_FR + err = "(erreur inconnue)"; +#else err = "(unknown error)"; +#endif note (NULL, IDS_ERR_OPEN_READ, path, err); } } --- setup-FR/nio-ie5.cc.orig 2002-06-15 14:13:29.000000000 +0200 +++ setup-FR/nio-ie5.cc 2015-02-16 17:50:31.969244700 +0100 @@ -91,7 +91,11 @@ char buf[2000]; DWORD e, l = sizeof (buf); InternetGetLastResponseInfo (&e, buf, &l); +#ifndef LANG_FR MessageBox (0, buf, "Internet Error", 0); +#else + MessageBox (0, buf, "Erreur Internet", 0); +#endif } } --- setup-FR/package_message.h.orig 2012-09-04 15:55:17.000000000 +0200 +++ setup-FR/package_message.h 2015-02-16 17:50:32.006248400 +0100 @@ -33,7 +33,12 @@ { if (unattended_mode || !id.length () || UserSettings::instance().get (id.c_str ())) /* No message or already seen */; + +#ifdef LANG_FR + else if (MessageBox (NULL, message.c_str (), "Alerte Assistant Cygwin", +#else else if (MessageBox (NULL, message.c_str (), "Setup Alert", +#endif MB_OKCANCEL | MB_ICONSTOP | MB_SETFOREGROUND | MB_TOPMOST) != IDCANCEL) UserSettings::instance().set (id.c_str (), "1"); --- setup-FR/package_meta.cc.orig 2015-02-05 11:45:51.000000000 +0100 +++ setup-FR/package_meta.cc 2015-02-16 17:50:32.040251800 +0100 @@ -51,10 +51,17 @@ using namespace std; +#ifdef LANG_FR +static StringArrayOption DeletePackageOption ('x', "remove-packages", "Spécifie les paquests à désinstaller"); +static StringArrayOption DeleteCategoryOption ('c', "remove-categories", "Spécifie les catégories à désinstaller"); +static StringArrayOption PackageOption ('P', "packages", "Spécifie les paquets à installer"); +static StringArrayOption CategoryOption ('C', "categories", "Spécifie les categories à installer"); +#else static StringArrayOption DeletePackageOption ('x', "remove-packages", "Specify packages to uninstall"); static StringArrayOption DeleteCategoryOption ('c', "remove-categories", "Specify categories to uninstall"); static StringArrayOption PackageOption ('P', "packages", "Specify packages to install"); static StringArrayOption CategoryOption ('C', "categories", "Specify entire categories to install"); +#endif bool hasManualSelections = 0; /*****************/ @@ -78,13 +85,29 @@ switch (_value) { case 0: +#ifndef LANG_FR return "Default"; +#else + return "Défaut"; +#endif case 1: +#ifndef LANG_FR return "Install"; +#else + return "Installe"; +#endif case 2: +#ifndef LANG_FR return "Reinstall"; +#else + return "Réinstalle"; +#endif case 3: +#ifndef LANG_FR return "Uninstall"; +#else + return "Désinstalle"; +#endif } // Pacify GCC: (all case options are checked above) return 0; @@ -388,16 +411,32 @@ packagemeta::action_caption () const { if (!desired && installed) +#ifdef LANG_FR + return "Désinstalle"; +#else return "Uninstall"; +#endif else if (!desired) +#ifdef LANG_FR + return "Passe"; +#else return "Skip"; +#endif else if (desired == installed && desired.picked()) +#ifdef LANG_FR + return packagedb::task == PackageDB_Install ? "Réinstalle" : "Récupère"; +#else return packagedb::task == PackageDB_Install ? "Reinstall" : "Retrieve"; +#endif else if (desired == installed && desired.sourcePackage() && desired.sourcePackage().picked()) /* FIXME: Redo source should come up if the tarball is already present locally */ return "Source"; else if (desired == installed) /* and neither src nor bin */ +#ifdef LANG_FR + return "Garde"; +#else return "Keep"; +#endif else return desired.Canonical_version (); } --- setup-FR/PickView.cc.orig 2015-01-05 11:00:41.000000000 +0100 +++ setup-FR/PickView.cc 2015-02-16 17:50:32.075255300 +0100 @@ -30,6 +30,30 @@ using namespace std; +#ifdef LANG_FR +static PickView::Header pkg_headers[] = { + {"Actuel", 0, 0, true}, + {"Nouveau", 0, 0, true}, + {"Bin?", 0, 0, false}, + {"Src?", 0, 0, false}, + {"Catégories", 0, 0, true}, + {"Taille", 0, 0, true}, + {"Paquet", 0, 0, true}, + {0, 0, 0, false} +}; + +static PickView::Header cat_headers[] = { + {"Catégorie", 0, 0, true}, + {"Actuel", 0, 0, true}, + {"Nouveau", 0, 0, true}, + {"Bin?", 0, 0, false}, + {"Src?", 0, 0, false}, + {"Taille", 0, 0, true}, + {"Paquet", 0, 0, true}, + {0, 0, 0, false} +}; + +#else static PickView::Header pkg_headers[] = { {"Current", 0, 0, true}, {"New", 0, 0, true}, @@ -51,6 +75,7 @@ {"Package", 0, 0, true}, {0, 0, 0, false} }; +#endif // PickView:: views const PickView::views PickView::views::Unknown (0); @@ -237,6 +262,18 @@ { switch (_value) { +#ifdef LANG_FR + case 1: + return "Tout"; + case 2: + return "En attente"; + case 3: + return "À jour"; + case 4: + return "Non installé"; + case 5: + return "Catégorie"; +#else case 1: return "Full"; case 2: @@ -247,6 +284,7 @@ return "Not Installed"; case 5: return "Category"; +#endif default: return ""; } @@ -445,8 +483,13 @@ // FIXME: What's up with the "0"? It's probably a mistake, and should be // "". It used to be written as 0, and was subject to a bizarre implicit // conversion by the unwise String(int) constructor. +#ifdef LANG_FR + note_width (headers, dc, "0", HMARGIN + 18, bintick_col); + note_width (headers, dc, "0", HMARGIN + 18, srctick_col); +#else note_width (headers, dc, "0", HMARGIN + 11, bintick_col); note_width (headers, dc, "0", HMARGIN + 11, srctick_col); +#endif // accomodate the width of each category name packagedb db; @@ -510,8 +553,13 @@ } // ensure that the new_col is wide enough for all the labels +#ifdef LANG_FR + const char *captions[] = { "Désinstalle", "Saute", "Réinstalle", "Récupère", + "Source", "Garde", NULL }; +#else const char *captions[] = { "Uninstall", "Skip", "Reinstall", "Retrieve", "Source", "Keep", NULL }; +#endif for (int i = 0; captions[i]; i++) note_width (headers, dc, captions[i], HMARGIN + SPIN_WIDTH, new_col); @@ -911,9 +959,17 @@ if (contents.itemcount () == 0) { +#ifdef LANG_FR + static const char *msg = "Rien à Installer/Mettre à jour"; +#else static const char *msg = "Nothing to Install/Update"; +#endif if (source == IDC_SOURCE_DOWNLOAD) +#ifdef LANG_FR + msg = "Rien à télécharger"; +#else msg = "Nothing to Download"; +#endif TextOut (hdc, x + HMARGIN, y, msg, strlen (msg)); } --- setup-FR/postinstall.cc.orig 2015-01-05 11:00:55.000000000 +0100 +++ setup-FR/postinstall.cc 2015-02-16 17:50:32.108258600 +0100 @@ -152,7 +152,11 @@ static std::string do_postinstall_thread (HINSTANCE h, HWND owner) { +#ifndef LANG_FR Progress.SetText1 ("Running..."); +#else + Progress.SetText1 ("Exécution ..."); +#endif Progress.SetText2 (""); Progress.SetText3 (""); Progress.SetBar1 (0, 1); --- setup-FR/prereq.cc.orig 2015-02-05 11:45:51.000000000 +0100 +++ setup-FR/prereq.cc 2015-02-16 17:50:32.150262800 +0100 @@ -98,11 +98,19 @@ { // breakage imminent! danger, danger int res = MessageBox (h, +#ifdef LANG_FR + "Les paquets suivants sont requis en dépendance des paquets à installer. " + "Nous vous recommandons de laisser l'assistant les installer" + "\r\n\r\n" + "Voulez vous continuer ? ", + "ATTENTION - Paquets nécessaires non sélectionnés", +#else "The listed packages are required for packages depending on them to " "work. We strongly recommend that you allow Setup to select them." "\r\n\r\n" "Are you sure you want to proceed without these packages?", "WARNING - Required Packages Not Selected", +#endif MB_YESNO | MB_ICONEXCLAMATION | MB_DEFBUTTON2); if (res == IDNO) return -1; @@ -173,7 +181,11 @@ { packagedb db; +#ifdef LANG_FR + Progress.SetText1 ("Vérification des dépendances..."); +#else Progress.SetText1 ("Checking prerequisites..."); +#endif Progress.SetText2 (""); Progress.SetText3 (""); @@ -251,7 +263,11 @@ s = s + i->first->name + "\t(" + i->first->trustp (false, theTrust).Canonical_version () + ")\r\n\t" + i->first->SDesc () +#ifdef LANG_FR + + "\r\n\tRequis par : "; +#else + "\r\n\tRequired by: "; +#endif for (unsigned int j = 0; j < i->second.size(); j++) { s += i->second[j]->name; --- setup-FR/propsheet.cc.orig 2012-09-04 15:55:17.000000000 +0200 +++ setup-FR/propsheet.cc 2015-02-16 17:50:32.193267100 +0100 @@ -178,8 +178,13 @@ break; areyousure: if (MessageBox(hwnd, +#ifdef LANG_FR + "Voulez-vous vraiment quitter l'assistant ? Les téléchargements ou installations en cours seront annulés.", + "Quitter l'assistant Cygwin ?", MB_YESNO) == IDNO) +#else "Are you sure you want to exit setup? Any current download or installation will be aborted.", "Exit Cygwin Setup?", MB_YESNO) == IDNO) +#endif return 0; break; case WM_SIZE: --- setup-FR/res.rc.orig 2015-02-05 11:45:51.000000000 +0100 +++ setup-FR/res.rc 2015-02-16 17:50:32.241271900 +0100 @@ -11,6 +11,12 @@ #define SETUP_HEADICON_X (SETUP_STANDARD_DIALOG_W - 27) +#ifndef LANG_FR +///////////////////////////////////////////////////////////////////////////// +// +// English (en_US) resources +// + LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US ///////////////////////////////////////////////////////////////////////////// @@ -450,17 +456,6 @@ ///////////////////////////////////////////////////////////////////////////// // -// Manifest -// - -#ifdef __x86_64__ -CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "setup64.exe.manifest" -#else -CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "setup.exe.manifest" -#endif - -///////////////////////////////////////////////////////////////////////////// -// // Icon // @@ -564,3 +559,551 @@ "will be nothing to install.\n\nPress OK if that's what you wanted\nor Cancel to choose a different directory." IDS_ELEVATED "Hand installation over to elevated child process." END + +#else + +///////////////////////////////////////////////////////////////////////////// +// +// French (fr_FR) resources +// + +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_SOURCE DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_CENTER | WS_CHILD | WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin - Choisissez le type d'installation" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "&Installer depuis Internet\n(les fichiers téléchargés seront gardés pour une réutilisation ultérieure)", + IDC_SOURCE_NETINST, "Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP | BS_MULTILINE + | BS_TOP, + 71, 60, 200, 30 + CONTROL "&Télécharger sans installer", + IDC_SOURCE_DOWNLOAD, "Button", + BS_AUTORADIOBUTTON | WS_TABSTOP, + 71, 90, 200, 10 + CONTROL "Installer depuis un dossier &local",IDC_SOURCE_LOCALDIR,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP, + 71,120,200,10 + ICON IDI_CYGWIN, IDC_HEADICON, SETUP_HEADICON_X, 0, 21, 20 + CONTROL "", IDC_HEADSEPARATOR, "Static", SS_BLACKFRAME | SS_SUNKEN, + 0, 28, SETUP_STANDARD_DIALOG_W, 1 + LTEXT "Choisissez la source du téléchargement",IDC_STATIC_HEADER_TITLE, + 7, 0, 258, 8, NOT WS_GROUP + LTEXT "Choisissez si vous installez ou téléchargez depuis Internet, ou installez des fichiers depuis un dossier local.", + IDC_SOURCE_SUBTEXT, + 21, 9, 239, 16, NOT WS_GROUP +END + +IDD_VIRUS DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_CENTER | WS_CHILD | WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin - Inhiber l'Anti-Virus ?" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "&Inhiber l'anti-virus",IDC_DISABLE_AV,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,101,69,115,10 + CONTROL "&Laisser l'anti-virus tranquille",IDC_LEAVE_AV,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,101,84,115,10 + ICON IDI_CYGWIN,IDC_HEADICON,SETUP_HEADICON_X,0,21,20 + CONTROL "",IDC_HEADSEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN,0,28, + SETUP_STANDARD_DIALOG_W,1 + LTEXT "Choisissez si vous inhibez votre anti-virus pendant l'installation.",IDC_STATIC_HEADER_TITLE,7,0, + 258,8,NOT WS_GROUP + LTEXT "Certains anti-virus, notamment McAfee, génèrent un écran bleu sur Windows XP lors de l'installation de Cygwin.", + IDC_STATIC,21,9,239,16,NOT WS_GROUP + LTEXT "Un anti-virus problématique a été détecté. L'assistant Cygwin peut l'inhiber pendant le processus d'installation, et le revalider à la fin de l'installation.", + IDC_STATIC,21,32,239,24,NOT WS_GROUP +END + +IDD_LOCAL_DIR DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_CENTER | WS_CHILD | WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin - Sélection du dossier local des paquets" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Sélection du dossier local des paquets",IDC_STATIC_HEADER_TITLE, + 7,0,258,8,NOT WS_GROUP + LTEXT "",IDC_LOCAL_DIR_DESC,21,9,248,16,NOT WS_GROUP + ICON IDI_CYGWIN,IDC_HEADICON,SETUP_HEADICON_X,0,21,20 + CONTROL "",IDC_HEADSEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN,0,28, + SETUP_STANDARD_DIALOG_W,1 + GROUPBOX "Dossier local des paquets",IDC_LOCALDIR_GRP,5,35,330,35 + EDITTEXT IDC_LOCAL_DIR,13,47,270,14,ES_AUTOHSCROLL | WS_TABSTOP + PUSHBUTTON "Par&courir...",IDC_LOCAL_DIR_BROWSE,285,47,44,14,WS_TABSTOP +END + +IDD_ROOT DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_CENTER | WS_CHILD | WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin - Choix du dossier d'installation" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Sélection du dossier racine", IDC_STATIC_HEADER_TITLE, + 7,0,258,8,NOT WS_GROUP + LTEXT "Sélectionnez le dossier où installer Cygwin. " + "Choisissez également des paramètres d'installation.", + IDC_ROOTDIR_SUBTEXT,21,9,239,16,NOT WS_GROUP + ICON IDI_CYGWIN,IDC_HEADICON,SETUP_HEADICON_X,0,21,20 + CONTROL "",IDC_HEADSEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN,0,28, + SETUP_STANDARD_DIALOG_W,1 + + GROUPBOX "Dossier racine", IDC_ROOTDIR_GRP,5,35,305,35 + EDITTEXT IDC_ROOT_DIR,15,47,245,14,ES_AUTOHSCROLL | WS_TABSTOP + PUSHBUTTON "Pa&rcourir...",IDC_ROOT_BROWSE,262,48,44,14,WS_TABSTOP + + GROUPBOX "Installer pour",IDC_INSTALLFOR_GRP,5,76,330,101 + CONTROL "&Tout le monde (RECOMMANDÉ)",IDC_ROOT_SYSTEM,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP | WS_GROUP,13,89,130,8 + CONTROL "Juste &Moi",IDC_ROOT_USER,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,13,130,130,8 + LTEXT "Cygwin sera disponible pour tous les utilisateurs", + IDC_ALLUSERS_TEXT,25,101,300,28 + LTEXT "Cygwin sera disponible pour tous les utilisateurs " + "mais les icones et les menus uniquement pour l'utilisateur " + "en cours. Ne sélectionner que si vous n'avez pas les droits " + "administrateur ou en cas de besoin spécifique.", + IDC_JUSTME_TEXT,25,140,300,32 +END + +IDD_SITE DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_CHILD | WS_VISIBLE | + WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_CONTROLPARENT +CAPTION "Assistant Cygwin - Choix site(s) de téléchargement" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_CYGWIN,IDC_HEADICON,SETUP_HEADICON_X,0,21,20 + LISTBOX IDC_URL_LIST,66,45,185,110,LBS_NOINTEGRALHEIGHT | + LBS_EXTENDEDSEL | WS_VSCROLL | WS_HSCROLL | WS_GROUP | + WS_TABSTOP + LTEXT "Sites disponibles :",IDC_STATIC,66,34,183,8,NOT + WS_GROUP + CONTROL "",IDC_HEADSEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN,0,28, + SETUP_STANDARD_DIALOG_W,1 + LTEXT "Choisissez un site dans cette liste, ou ajoutez vos propres sites à la liste.", + IDC_STATIC,21,9,239,16,NOT WS_GROUP + LTEXT "Choisissez un site de téléchargement",IDC_STATIC_HEADER_TITLE,7,0,258, + 8,NOT WS_GROUP + EDITTEXT IDC_EDIT_USER_URL,65,160,185,14,ES_AUTOHSCROLL | WS_GROUP + LTEXT "URL perso :",IDC_SITE_USERURL,15,162,45,8,NOT WS_GROUP + PUSHBUTTON "Ajouter",IDC_BUTTON_ADD_URL,255,160,50,14 +END + +IDD_NET DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_CENTER | WS_CHILD | WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin - Sélection du type de connexion" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Connexion &directe",IDC_NET_DIRECT,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,60,55,73,10 + CONTROL "Utiliser les paramètres &IE",IDC_NET_IE5,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,60,70,106,10 + CONTROL "Utiliser le &proxy HTTP/FTP :",IDC_NET_PROXY,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,60,85,112,10 + EDITTEXT IDC_PROXY_HOST,120,105,120,12,ES_AUTOHSCROLL | + WS_DISABLED | WS_GROUP + EDITTEXT IDC_PROXY_PORT,120,125,30,12,ES_AUTOHSCROLL | + WS_DISABLED + GROUPBOX "",IDC_STATIC,60,95,185,50 + RTEXT "&Serveur proxy",IDC_STATIC,65,105,50,12,SS_CENTERIMAGE | + NOT WS_GROUP + RTEXT "Por&t",IDC_STATIC,85,125,30,12,SS_CENTERIMAGE | NOT + WS_GROUP + ICON IDI_CYGWIN,IDC_HEADICON,SETUP_HEADICON_X,0,21,20 + CONTROL "",IDC_HEADSEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN,0,28, + SETUP_STANDARD_DIALOG_W,1 + LTEXT "L'assistant a besoin de savoir comment vous désirez le connecter à Internet. Choisissez un paramètre approprié ci-dessous.", + IDC_STATIC,21,9,239,16,NOT WS_GROUP + LTEXT "Sélectionnez votre connexion Internet", + IDC_STATIC_HEADER_TITLE,7,0,258,8,NOT WS_GROUP +END + +IDD_INSTATUS DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_CENTER | WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Installation...",IDC_INS_ACTION,45,55,205,8,SS_ENDELLIPSIS + LTEXT "(PAQUET)",IDC_INS_PKG,45,70,205,8,SS_ENDELLIPSIS + LTEXT "(FICHIER)",IDC_INS_FILE,45,85,205,10,SS_ENDELLIPSIS + CONTROL "Progress1",IDC_INS_DISKFULL,"msctls_progress32", + PBS_SMOOTH | WS_BORDER,95,130,155,10 + CONTROL "Progress1",IDC_INS_IPROGRESS,"msctls_progress32", + PBS_SMOOTH | WS_BORDER,95,115,155,10 + CONTROL "Progress1",IDC_INS_PPROGRESS,"msctls_progress32", + PBS_SMOOTH | WS_BORDER,95,100,155,10 + LTEXT "Paquet :",IDC_INS_BL_PACKAGE,45,100,50,8,NOT WS_GROUP + LTEXT "Total  :",IDC_INS_BL_TOTAL,45,115,50,8,NOT WS_GROUP + LTEXT "Disque :",IDC_INS_BL_DISK,45,130,50,8,NOT WS_GROUP + ICON IDI_CYGWIN,IDC_HEADICON,SETUP_HEADICON_X,0,21,20 + CONTROL "",IDC_HEADSEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN,0,28, + SETUP_STANDARD_DIALOG_W,1 + LTEXT "Cette page affiche l'avancement du téléchargement ou de l'installation.", + IDC_STATIC,21,9,239,16,NOT WS_GROUP + LTEXT "Avancement",IDC_STATIC_HEADER_TITLE,7,0,258,8,NOT WS_GROUP +END + +IDD_PROXY_AUTH DIALOG DISCARDABLE 0, 0, 215, 95 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Authentification proxy requise" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_CYGWIN,IDC_HEADICON,5,5,21,20 + LTEXT "ID &Utilisateur",IDC_STATIC,5,28,55,15,SS_CENTERIMAGE, + WS_EX_RIGHT + EDITTEXT IDC_NET_USER,65,28,145,12,ES_AUTOHSCROLL + LTEXT "&Mot de passe",IDC_STATIC,10,43,50,15,SS_CENTERIMAGE, + WS_EX_RIGHT + EDITTEXT IDC_NET_PASSWD,65,43,145,12,ES_PASSWORD | ES_AUTOHSCROLL + LTEXT "Authentification proxy requise",IDC_STATIC,65,10,145,10 + DEFPUSHBUTTON "&OK",IDOK,100,75,45,15,WS_DISABLED + PUSHBUTTON "Annule",IDCANCEL,165,75,45,15 +END + +IDD_NET_AUTH DIALOG DISCARDABLE 0, 0, 215, 95 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Authentification serveur requise" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_CYGWIN,IDC_HEADICON,5,5,21,20 + LTEXT "&Identifiant",IDC_STATIC,5,28,55,15,SS_CENTERIMAGE, + WS_EX_RIGHT + EDITTEXT IDC_NET_USER,65,28,145,12,ES_AUTOHSCROLL + LTEXT "&Mot de passe",IDC_STATIC,10,43,50,15,SS_CENTERIMAGE, + WS_EX_RIGHT + EDITTEXT IDC_NET_PASSWD,65,43,145,12,ES_PASSWORD | ES_AUTOHSCROLL + LTEXT "Authentification serveur requise",IDC_STATIC,65,10,145,10 + DEFPUSHBUTTON "&OK",IDOK,100,75,45,15,WS_DISABLED + PUSHBUTTON "Annule",IDCANCEL,165,75,45,15 +END + +IDD_SPLASH DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_CHILD | WS_VISIBLE | + WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin" +FONT 8, "MS Shell Dlg" +BEGIN +// CONTROL "",IDC_STATIC,"Static",SS_WHITERECT,0,0,95,178 + LTEXT "Programme Assistant Cygwin-FR", + IDC_STATIC_WELCOME_TITLE,115,1,195,24 + LTEXT "Cet assistant est utilisé pour l'installation initiale " + "de l'environnement Cygwin ainsi que pour ses mises à jour." + " Pensez à vous rappeler où vous l'avez enregistré.\r\n\r\n" + "Les pages suivantes vont vous guider durant l'installation. " + "Notez que Cygwin inclus un grand nombre de paquets " + "destinés à de multiples usages. Nous ne pourrons installer " + "par défaut qu'un jeu de paquets de base. Vous pourrez toujours " + "redémarrer ce programme ultérieurement pour ajouter, enlever ou " + "mettre à jour des paquets.",IDC_SPLASH_TEXT,115,25,195,85 + ICON IDI_CYGWIN,IDC_SPLASH_ICON,4,6,0,0,SS_ICON | SS_REALSIZEIMAGE + LTEXT "Version (inconnue)",IDC_VERSION,115,117,195,10 + LTEXT "Copyright 2000-2015",IDC_SPLASH_COPYR,115,130,195,8 + LTEXT "http://www.cygwin.com/",IDC_SPLASH_URL,115,142,90,8 + LTEXT "Version française ®2004-2015 E. Lassauge ",IDC_SPLASH_FR_COPYR,115,154,195,8 + LTEXT "http://lassauge.free.fr/cygwin/",IDC_SPLASH_FR_URL,115,166,195,8 +END + +IDD_DESKTOP DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_CHILD | WS_VISIBLE | + WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin - État de l'installation et création des icônes" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Créer une icône sur le &bureau",IDC_ROOT_DESKTOP,"Button", + BS_AUTOCHECKBOX,108,78,110,8 + CONTROL "Ajouter une icône au menu &Démarrer",IDC_ROOT_MENU,"Button", + BS_AUTOCHECKBOX,108,93,140,8 + ICON IDI_CYGWIN,IDC_HEADICON,SETUP_HEADICON_X,0,21,20 + CONTROL "",IDC_HEADSEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN,0,28, + SETUP_STANDARD_DIALOG_W,1 + LTEXT "Indiquez à l'assistant si vous voulez créer des icônes pour un accès aisé à Cygwin.", + IDC_STATIC,21,9,239,16,NOT WS_GROUP + LTEXT "Création des icônes",IDC_STATIC_HEADER_TITLE,7,0,258,8,NOT + WS_GROUP + CONTROL "",IDC_DESKTOP_SEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN, + 0,155,SETUP_STANDARD_DIALOG_W,1 + LTEXT "État de l'installation",IDC_STATUS_HEADER,7,160,258,8,NOT WS_GROUP + LTEXT "Installation de Cygwin terminée avec succès.",IDC_STATUS, + 21,169,239,16,NOT WS_GROUP +END + +IDD_FTP_AUTH DIALOG DISCARDABLE 0, 0, 215, 95 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Authentification FTP requise" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_CYGWIN,IDC_HEADICON,5,5,21,20 + LTEXT "ID &Utilisateur",IDC_STATIC,5,28,55,15,SS_CENTERIMAGE, + WS_EX_RIGHT + EDITTEXT IDC_NET_USER,65,28,145,12,ES_AUTOHSCROLL + LTEXT "&Mot de passe",IDC_STATIC,10,43,50,15,SS_CENTERIMAGE, + WS_EX_RIGHT + EDITTEXT IDC_NET_PASSWD,65,43,145,12,ES_PASSWORD | ES_AUTOHSCROLL + LTEXT "Authentification FTP requise",IDC_STATIC,65,10,145,10 + DEFPUSHBUTTON "&OK",IDOK,100,75,45,15,WS_DISABLED + PUSHBUTTON "Annule",IDCANCEL,165,75,45,15 +END + +// Width for Keep/Prev/Curr/Exp buttons. +#define SETUP_KPCE_W (30) + +// Right-aligned controls. +#define SETUP_VIEWCAP_W (40) +#define SETUP_VIEWCAP_X (SETUP_STANDARD_DIALOG_W - SETUP_VIEWCAP_W - 7) +#define SETUP_VIEW_W (26) +#define SETUP_VIEW_X (SETUP_VIEWCAP_X - SETUP_VIEW_W - 5) +#define SETUP_EXP_X (SETUP_VIEW_X - SETUP_KPCE_W - 5) +#define SETUP_CURR_X (SETUP_EXP_X - SETUP_KPCE_W - 5) +#define SETUP_KEEP_X (SETUP_CURR_X - SETUP_KPCE_W - 5) + +// Left-aligned controls. +#define SETUP_SEARCH_X (0) +#define SETUP_SEARCH_W (32) +#define SETUP_SEARCHTEXT_X (SETUP_SEARCH_X + SETUP_SEARCH_W + 2) +#define SETUP_SEARCHTEXT_W (60) +#define SETUP_CLEAR_X (SETUP_SEARCHTEXT_X + SETUP_SEARCHTEXT_W + 2) +#define SETUP_CLEAR_W (32) + +IDD_CHOOSE DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_3DLOOK | WS_CHILD | WS_VISIBLE | WS_CAPTION | + WS_SYSMENU +CAPTION "Assistant Cygwin - Sélection des paquets" +FONT 8, "MS Shell Dlg" +BEGIN + RTEXT "&Chercher", IDC_STATIC, SETUP_SEARCH_X, 30, SETUP_SEARCH_W, + 12, SS_CENTERIMAGE, WS_EX_RIGHT + EDITTEXT IDC_CHOOSE_SEARCH_EDIT, SETUP_SEARCHTEXT_X, 30, + SETUP_SEARCHTEXT_W, 12 + PUSHBUTTON "&Efface", IDC_CHOOSE_CLEAR_SEARCH, SETUP_CLEAR_X, 30, + SETUP_CLEAR_W, 12 + CONTROL "&Garde",IDC_CHOOSE_KEEP,"Button",BS_AUTORADIOBUTTON | + WS_GROUP | WS_TABSTOP, SETUP_KEEP_X, 30, SETUP_KPCE_W, 14 + CONTROL "&Actu.", IDC_CHOOSE_CURR, "Button", BS_AUTORADIOBUTTON, + SETUP_CURR_X, 30, SETUP_KPCE_W, 14 + CONTROL "E&xp.", IDC_CHOOSE_EXP, "Button", BS_AUTORADIOBUTTON, + SETUP_EXP_X, 30, SETUP_KPCE_W, 14 + PUSHBUTTON "&Voir", IDC_CHOOSE_VIEW, SETUP_VIEW_X, 30, SETUP_VIEW_W, + 14, WS_GROUP + CONTROL "", IDC_HEADSEPARATOR, "Static", SS_BLACKFRAME | SS_SUNKEN, + 0, 28, SETUP_STANDARD_DIALOG_W, 1 + CONTROL "", IDC_LISTVIEW_POS, "Static", SS_BLACKFRAME | NOT + WS_VISIBLE, 7, 45, SETUP_STANDARD_DIALOG_W - 14, 122 + CONTROL "&Cache les paquets obsolètes", IDC_CHOOSE_HIDE, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 167, 160, 14 + ICON IDI_CYGWIN, IDC_HEADICON, SETUP_HEADICON_X, 0, 21, 20 + LTEXT "Sélectionnez les paquets que vous voulez installer.", + IDC_CHOOSE_INST_TEXT, 21, 9, 239, 16, NOT WS_GROUP + LTEXT "Sélection des paquets",IDC_STATIC_HEADER_TITLE,7,0,258,8, + NOT WS_GROUP + LTEXT "", IDC_CHOOSE_VIEWCAPTION, SETUP_VIEWCAP_X, 33, SETUP_VIEWCAP_W, 10 +END + +IDD_PREREQ DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_3DLOOK | WS_CHILD | WS_VISIBLE | WS_CAPTION | + WS_SYSMENU +CAPTION "Assistant Cygwin - Résolution des dépendances" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "",IDC_HEADSEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN, + 0,28,SETUP_STANDARD_DIALOG_W,1 + ICON IDI_CYGWIN,IDC_HEADICON,SETUP_HEADICON_X,0,21,20 + LTEXT "Dépendances non résolues",IDC_STATIC_HEADER_TITLE + ,7,0,258,8,NOT WS_GROUP + LTEXT "Les paquets suivants sont requis mais non sélectionnés" + ,IDC_STATIC,21,9,239,16,NOT WS_GROUP + CONTROL "&Installer ces paquets pour résoudre les dépendances (RECOMMANDÉ)" + ,IDC_PREREQ_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 7,187,227,14 + EDITTEXT IDC_PREREQ_EDIT,7,45,304,143,WS_VSCROLL | WS_HSCROLL | + ES_LEFT | ES_MULTILINE | ES_READONLY | ES_AUTOHSCROLL | + ES_AUTOVSCROLL + +END + +IDD_DROPPED DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_W, 142 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin - Utiliser les sites miroirs éliminés ?" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Attention :",IDC_STATIC,7,8,40,8 + LTEXT "Un ou plusieurs miroirs sélectionnés ne sont plus " + "dans la liste officielle des miroirs Cygwin. " + "Certains paquets peuvent manquer ou ne pas être à jour.\n" + "Ceci concerne le(s) miroir(s) suivant(s) :", + IDC_STATIC,47,8,263,32 + EDITTEXT IDC_DROP_MIRRORS,7,40,303,40,WS_VSCROLL | WS_HSCROLL | + ES_LEFT | ES_MULTILINE | ES_READONLY | ES_AUTOHSCROLL | + ES_AUTOVSCROLL + LTEXT "Si vous avez des problèmes à l'installation pensez à " + "n'utiliser que les miroirs officiels.\n\n" + "Voulez-vous continuer avec ce(s) miroir(s) ?", + IDC_STATIC,7,88,303,24 + CONTROL "&Ne plus me prévenir pour ce(s) miroir(s)", + IDC_DROP_NOWARN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 7,120,213,15 + PUSHBUTTON "&Oui",IDYES,220,120,45,15 + DEFPUSHBUTTON "&Non",IDNO,265,120,45,15 + +END + +IDD_POSTINSTALL DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_W, 142 +STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_CHILD | WS_VISIBLE | + WS_CAPTION | WS_SYSMENU +CAPTION "Assistant Cygwin - Lancement des scripts post-installation" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "",IDC_HEADSEPARATOR,"Static",SS_BLACKFRAME | SS_SUNKEN, + 0,28,SETUP_STANDARD_DIALOG_W,1 + ICON IDI_CYGWIN,IDC_HEADICON,SETUP_HEADICON_X,0,21,20 + LTEXT "Erreurs dans les scripts",IDC_STATIC_HEADER_TITLE + ,7,0,258,8,NOT WS_GROUP + LTEXT "Ceci n'indique pas forcément que les paquets concernés" + "ne fonctionneront pas, mais consultez " + "/var/log/setup.log.full avant de reporter un problème.", + IDC_STATIC,21,9,239,16,NOT WS_GROUP + EDITTEXT IDC_POSTINSTALL_EDIT,7,41,303,112,WS_VSCROLL | WS_HSCROLL | + ES_LEFT | ES_MULTILINE | ES_READONLY | ES_AUTOHSCROLL | + ES_AUTOVSCROLL +END + +IDD_FILE_INUSE DIALOG DISCARDABLE 0, 0, SETUP_STANDARD_DIALOG_DIMS +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "Détection d'un fichier en cours d'utilisation" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_WARNING,IDC_HEADICON,5,5 + LTEXT "Impossible d'extraire %s", + IDC_FILE_INUSE_MSG,27,5,203,8,SS_PATHELLIPSIS + LTEXT "Ce fichier est en cours d'utilisation par : ", + IDC_STATIC,27,14,203,8 + EDITTEXT IDC_FILE_INUSE_EDIT,27,23,203,28,WS_VSCROLL | + ES_LEFT | ES_MULTILINE | ES_READONLY | + ES_AUTOVSCROLL | NOT WS_TABSTOP + LTEXT "Choisir 'Stop' pour arrêter les process et recommencer, " + "Choisir 'Continuer' pour procéder (un reboot sera nécessaire).", + IDC_FILE_INUSE_HELP,27,52,203,16,NOT WS_GROUP + DEFPUSHBUTTON "&Stop",IDRETRY,47,75,55,15 + PUSHBUTTON "&Continuer",IDCONTINUE,133,75,55,15 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_CYGWIN_SETUP ICON DISCARDABLE "cygwin-setup_fr.ico" +IDI_CYGWIN ICON DISCARDABLE "cygwin_fr.ico" +IDI_CYGWIN_TERMINAL ICON DISCARDABLE "cygwin-terminal_fr.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// FILE +// + +CYGWIN-SETUP.ICON FILE DISCARDABLE "cygwin-setup_fr.ico" +CYGWIN.ICON FILE DISCARDABLE "cygwin_fr.ico" +CYGWIN-TERMINAL.ICON FILE DISCARDABLE "cygwin-terminal_fr.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_SPIN BITMAP DISCARDABLE "choose-spin.bmp" +IDB_CHECK_YES BITMAP DISCARDABLE "check-yes.bmp" +IDB_CHECK_NO BITMAP DISCARDABLE "check-no.bmp" +IDB_CHECK_NA BITMAP DISCARDABLE "check-nd.bmp" +IDB_TREE_PLUS BITMAP DISCARDABLE "tree-plus.bmp" +IDB_TREE_MINUS BITMAP DISCARDABLE "tree-minus.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ROOT_SLASH "Attention : nous recommandons de ne PAS utiliser la racine du disque dur comme racine de Cygwin. Continuer quand même ?" + IDS_ROOT_SPACE "Vous ne devriez pas utiliser un chemin racine qui inclus des espaces dans les noms de dossiers. Continuer quand même ?" + IDS_MIRROR_LST "http://cygwin.com/mirrors.lst" + IDS_ERR_OPEN_WRITE "Impossible d'ouvrir %s en écriture : %s" + IDS_SETUPINI_MISSING "Impossible de récupérer %s depuis « %s »" + IDS_OLD_SETUPINI "Ce fichier setup.ini est plus ancien que celui utilisé lors de la dernière installation de Cygwin. Continuer quand même ?" + IDS_NOTHING_INSTALLED "Rien à installer" + IDS_INSTALL_COMPLETE "Installation terminée" + IDS_REBOOT_REQUIRED "Les fichiers en cours d'utilisation ont été remplacés. Vous devriez redémarrer dès que possible pour activer ces versions. Cygwin pourrait fonctionner de façon incorrecte jusqu'au redémarrage." + IDS_ERR_OPEN_READ "Impossible d'ouvrir %s en lecture : %s" + IDS_ROOT_ABSOLUTE "Le dossier d'installation doit être absolu, avec à la fois un identificateur de lecteur et une barre oblique au début : C:\\Cygwin" + IDS_DOWNLOAD_COMPLETE "Téléchargement terminé" + IDS_NOLOGFILE "Impossible d'ouvrir le fichier de trace %s en écriture" + IDS_UNINSTALL_COMPLETE "Désinstallation terminée" + IDS_WININET "Impossible de trouver ou de charger les DLLs de Internet Explorer 5" + IDS_ERR_CHDIR "Impossible de changer le dossier vers %s : %s [%.8x]" + IDS_OLD_SETUP_VERSION "Cet assistant est en version %s, mais setup.ini indique que la version %s est disponible.\nVous devriez le mettre à jour pour avoir les dernière fonctionnalitées et corrections de bogues." + IDS_DOWNLOAD_INCOMPLETE "Téléchargement incomplet. Recommencer ?" + IDS_INSTALL_ERROR "Erreur d'installation (%s), Continuer avec les autres paquets ?" + IDS_INSTALL_INCOMPLETE "Installation incomplète. Vérifiez %s pour les détails" + IDS_CORRUPT_PACKAGE "Le fichier du paquet %s a une copie locale altérée, supprimez la et recommencez." + IDS_SKIP_PACKAGE "%s\nVoulez-vous passer ce paquet ?" + IDS_WINDOW_INIT_BADMSG "Erreur Fatale : message windows %u inopiné reçu trop tôt lors de l'initialisation de la fenêtre." + IDS_UNCAUGHT_EXCEPTION "Erreur Fatale  : Exception non traitée\nThread: %s\nType: %s\nMessage: %s" + IDS_UNCAUGHT_EXCEPTION_WITH_ERRNO "Erreur Fatale  : Exception non traitée\nThread: %s\nType: %s\nMessage: %s\nAppErrNo: %d" + IDS_TRUSTKEEP_TOOLTIP "Garde tous les paquets à la version installée. " + "Ceci est équivalent à demander à l'assistant de ne faire aucun changement " + "aux paquets." + IDS_TRUSTCURR_TOOLTIP "Sélectionne globalement la version qui est actuellement " + "considérée comme la plus stable (RECOMMANDÉ)." + IDS_TRUSTEXP_TOOLTIP "Sélectionne globalement la version qui est considérée " + "comme expérimentale ou pour test par le mainteneur du paquet." + IDS_VIEWBUTTON_TOOLTIP "Itérer les différentes vues des paquets. Ceci détermine" + " quels paquets seront montrés dans la vue de sélection ci-dessous.\r\n" + "\r\n" + "Catégorie : regroupe par catégorie de paquets. Cliquez sur '+' pour étendre.\r\n" + "\r\n" + "Tout : montre tous les paquets.\r\n" + "\r\n" + "En attente : montre uniquement les paquets à ajouter, enlever ou mettre à jour. " + "Ceci montre ce que l'assistant est sur le point de modifier " + "lors de l'appui sur 'Suivant'.\r\n" + "\r\n" + "À jour : montre les paquets installés qui ne nécessitent pas d'action.\r\n" + "\r\n" + "Non installé : montre les paquets non installés ou qui ne sont pas " + "sélectionnés pour installation." + IDS_HIDEOBS_TOOLTIP "L'assistant cachera les paquets des catégories dont " + "le nom commence par '_'. Ces paquets sont vides et sont des emplacements " + "pour des paquets éliminés ou renommés, ou encore des paquets " + "d'infrastructure gérés automatiquement." + IDS_SIG_INVALID "Erreur pour le miroir : la signature de Setup.ini %s de %s est impossible à vérifier.\nLe miroir est peut-être corrompu ? Setup.ini rejeté." + IDS_CRYPTO_ERROR "Erreur interne : librairie gcrypt erreur %d %s" + IDS_SEARCH_TOOLTIP "Chercher cette valeur dans les noms des paquets." + IDS_LOCAL_DIR_DOWNLOAD "Choisir un dossier pour enregistrer les fichiers " + "téléchargés. Ce dossier sera créé s'il n'existe pas." + IDS_LOCAL_DIR_INSTALL "Choisir un dossier où l'assistant ira chercher les " + "fichiers téléchargés." + IDS_MAYBE_MKDIR "Dossier %s absent, voulez-cous le créer ?" + IDS_CANT_MKDIR "Impossible de créer le dossier %s, désolé. (Disque plein ou uniquement en lecture ?)" + IDS_NO_LOCALDIR "Dossier local des paquets %s absent.\nVoulez-vous que setup-FR-%s.exe efface les paquets\n" + "Mais il n'y aura rien à installer\n\nChoisir OK si c'est ce que vous voulez\nou Annuler pour choisir un autre dossier." + IDS_ELEVATED "Passer l'nstallation au process Administrateur." +END + +#endif // French (fr_FR) resources + +///////////////////////////////////////////////////////////////////////////// +// +// Manifest +// + +#ifdef __x86_64__ +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "setup64.exe.manifest" +#else +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "setup.exe.manifest" +#endif --- setup-FR/resource.h.orig 2013-11-15 13:15:23.000000000 +0100 +++ setup-FR/resource.h 2015-02-16 17:50:32.273275100 +0100 @@ -174,3 +174,8 @@ #define IDC_FILE_INUSE_EDIT 590 #define IDC_FILE_INUSE_MSG 591 #define IDC_FILE_INUSE_HELP 592 + +#ifdef LANG_FR + #define IDC_SPLASH_FR_URL 600 + #define IDC_SPLASH_FR_COPYR 601 +#endif --- setup-FR/root.cc.orig 2015-01-05 11:00:56.000000000 +0100 +++ setup-FR/root.cc 2015-02-16 17:50:32.301277900 +0100 @@ -44,7 +44,11 @@ using namespace std; +#ifdef LANG_FR +StringOption RootOption ("", 'R', "root", "Dossier racine de l'installation", false); +#else StringOption RootOption ("", 'R', "root", "Root installation directory", false); +#endif static ControlAdjuster::ControlInfo RootControlsInfo[] = { { IDC_ROOTDIR_GRP, CP_STRETCH, CP_TOP }, @@ -109,7 +113,11 @@ memset (&bi, 0, sizeof (bi)); bi.hwndOwner = h; bi.pszDisplayName = name; +#ifdef LANG_FR + bi.lpszTitle = "Choisissez le dossier racine de l'installation"; +#else bi.lpszTitle = "Select an installation root directory"; +#endif bi.ulFlags = BIF_RETURNONLYFSDIRS; bi.lpfn = browse_cb; pidl = SHBrowseForFolder (&bi); @@ -210,6 +218,19 @@ /* Forestall mixing. */ const char *setup_ver = is_64bit ? "64" : "32"; const char *inst_ver = is_64bit ? "32" : "64"; +#ifdef LANG_FR + snprintf (text, sizeof text, + "Vous essayez d'installer une version %s bits de Cygwin dans un dossier\n" + "qui contient une version %s bits de Cygwin. Si vous insistez, vous aller\n" + "casser l'installation existante.\n\n" + "Lancez soit http://lassauge.free.fr/cygwin/setup-FR-%s.exe pour mettre à jour \n" + "votre installation %s bits de Cygwin, ou choisissez un autre dossier\n" + "pour votre installation %s bits.", + setup_ver, inst_ver, + is_64bit ? "x86" : "x86_64", + inst_ver, setup_ver); + MessageBox (h, text, "Erreur CPU cible", MB_OK); +#else snprintf (text, sizeof text, "You're trying to install a %s bit version of Cygwin into a directory\n" "containing a %s bit version of Cygwin. Continuing to do so would\n" @@ -221,6 +242,7 @@ is_64bit ? "x86" : "x86_64", inst_ver, setup_ver); MessageBox (h, text, "Target CPU mismatch", MB_OK); +#endif return 1; } --- setup-FR/sec-pubkey.h.orig 2015-02-16 17:50:32.341281900 +0100 +++ setup-FR/sec-pubkey.h 2015-02-16 17:50:32.337281500 +0100 @@ -0,0 +1,14 @@ + +/* Autogenerated from: lassauge.pub + * by: ./gpg-key-to-s-expr.sh + * at: Fri Oct 24 13:58:21 2008 */ + +"(public-key " + "(dsa " + "(p #00b6007883a3a60cae36b7ba6577607ecc44e37a07592185cf33e2c2b3336cdf5f6bb8825d29f03de775c0c1b8776667f23a7817220b883ca88f02a308f9b285d558f56606cef41b1775578f2fd740987fe4e171e2575aebecbd3f6d2ff7cf1d6f1f2c456d5a4c09a16c22a4c0abdc1bd34bd0e14f85a06636f29f36db168d46d7#) " + "(q #00b3ae2ff5143522fe501b8a68f30dfde44a91644d#) " + "(g #08bfa4c476695c78d7398b7526fe21df0b64f2a7472c838d21aca009cd11e7d1ddb41af9823c54693c778fa1863eaadddf7daf030e928865f2474873514aad335839c68c7835fa3c1ad0d3e2a7728ac440e58371177f2c438b1ff577004260eb7e7d3055018eee85c6c163890c461c3e2d71a45d4df32850bcaa44903aba17a4#) " + "(y #2252acc47600644271b4bcf93d9b98161b95008c91a906af65011ee771a706c211604aec354df4486aa942cc5366e2a71c83eca84de86fd8345e1b16e3386d923ad9c26534046c442ccae2c56ba7bc595b6ad69a8dd07b8fb037e637c9fb1ec8196dfa510233b7d0b617a93352f0dc1b13a9edeb43b935fa80d27ce800612d9d#)" + ")" +")" + --- setup-FR/site.cc.orig 2015-01-05 11:00:57.000000000 +0100 +++ setup-FR/site.cc 2015-02-16 17:50:32.364284200 +0100 @@ -99,9 +99,17 @@ /* Stale selected sites to warn about and add to cache */ SiteList dropped_site_list; +#ifdef LANG_FR +StringArrayOption SiteOption('s', "site", "Site de téléchargement"); +#else StringArrayOption SiteOption('s', "site", "Download site"); +#endif +#ifdef LANG_FR +BoolOption OnlySiteOption(false, 'O', "only-site", "Ignorer tous les sites sauf pour -s"); +#else BoolOption OnlySiteOption(false, 'O', "only-site", "Ignore all sites except for -s"); +#endif SiteSetting::SiteSetting (): saved (false) { @@ -411,10 +419,16 @@ { // Error: Couldn't download the site info. // Go back to the Net setup page. +#ifndef LANG_FR MessageBox (h, TEXT ("Can't get list of download sites.\n") TEXT("Make sure your network settings are correct and try again."), NULL, MB_OK); +#else + MessageBox (h, TEXT ("Impossible d'avoir la liste des sites.\n") + TEXT("Vérifiez que vos paramètres réseau sont corrects et réessayez."), + TEXT("Erreur"), MB_OK); +#endif // Tell the progress page that we're done downloading Progress.PostMessageNow (WM_APP_SITE_INFO_DOWNLOAD_COMPLETE, 0, IDD_NET); } --- setup-FR/source.cc.orig 2015-01-05 11:00:57.000000000 +0100 +++ setup-FR/source.cc 2015-02-16 17:50:32.398287600 +0100 @@ -38,8 +38,13 @@ #include "getopt++/BoolOption.h" +#ifdef LANG_FR +static BoolOption DownloadOption (false, 'D', "download", "Télécharger depuis internet"); +static BoolOption LocalOption (false, 'L', "local-install", "Installer depuis un répertoire local"); +#else static BoolOption DownloadOption (false, 'D', "download", "Download from internet"); static BoolOption LocalOption (false, 'L', "local-install", "Install from local directory"); +#endif static int rb[] = { IDC_SOURCE_NETINST, IDC_SOURCE_DOWNLOAD, IDC_SOURCE_LOCALDIR, 0 }; --- setup-FR/splash.cc.orig 2013-06-22 22:02:01.000000000 +0200 +++ setup-FR/splash.cc 2015-02-16 17:50:32.429290700 +0100 @@ -25,8 +25,13 @@ { IDC_SPLASH_TEXT, CP_STRETCH, CP_STRETCH }, { IDC_SPLASH_ICON, CP_LEFT, CP_BOTTOM }, { IDC_VERSION, CP_LEFT, CP_BOTTOM }, +#ifndef LANG_FR { IDC_SPLASH_COPYR, CP_LEFT, CP_BOTTOM }, { IDC_SPLASH_URL, CP_LEFT, CP_BOTTOM }, +#else + { IDC_SPLASH_FR_COPYR, CP_LEFT, CP_BOTTOM }, + { IDC_SPLASH_FR_URL, CP_LEFT, CP_BOTTOM }, +#endif {0, CP_LEFT, CP_TOP} }; @@ -45,9 +50,17 @@ SplashPage::OnInit () { std::string ver = "Setup.exe version "; +#ifdef LANG_FR + ver += (setup_version[0] ? setup_version : "[inconnue]"); + ver += is_64bit ? " (64 bits)" : " (32 bits)"; +#else ver += (setup_version[0] ? setup_version : "[unknown]"); ver += is_64bit ? " (64 bit)" : " (32 bit)"; +#endif SetDlgItemFont(IDC_VERSION, "Arial", 10, FW_BOLD); ::SetWindowText (GetDlgItem (IDC_VERSION), ver.c_str()); makeClickable (IDC_SPLASH_URL, "http://www.cygwin.com"); +#ifdef LANG_FR + makeClickable (IDC_SPLASH_FR_URL, "http://lassauge.free.fr/cygwin/x86/release"); +#endif } --- setup-FR/threebar.cc.orig 2015-02-05 11:45:51.000000000 +0100 +++ setup-FR/threebar.cc 2015-02-16 17:50:32.461293900 +0100 @@ -111,8 +111,15 @@ { int percent = (int) (100.0 * ((double) progress) / (double) max); SendMessage (ins_iprogress, PBM_SETPOS, (WPARAM) percent, 0); +#ifdef LANG_FR + std::string sp = stringify(percent); + std::string s="Assistant Cygwin - "; + s += sp; + s += "%"; +#else std::string s = stringify(percent); s += "% - Cygwin Setup"; +#endif GetOwner ()->SetWindowText (s.c_str()); } @@ -197,7 +204,11 @@ } else { +#ifdef LANG_FR + fatal("Sortie non attendue du thread de téléchargement", NO_ERROR); +#else fatal("Unexpected fallthrough from the download thread", NO_ERROR); +#endif } break; }