--- setup-FR/AntiVirus.cc.orig 2014-05-05 11:32:03.127807900 +0200
+++ setup-FR/AntiVirus.cc 2014-05-05 11:34:25.810074700 +0200
@@ -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 2014-05-05 11:35:35.577050700 +0200
+++ setup-FR/ChangeLog 2014-10-27 11:45:10.571409100 +0100
@@ -10926,4 +10926,4 @@
* zlib/Makefile.in: Regenerate from Makefile.am
%%% $Id: ChangeLog,v 2.852 2014/10/26 08:04:53 corinna Exp $
-$Revision: 2.852 $
+$Revision: 2.852-FR $
--- setup-FR/choose.cc.orig 2014-05-05 11:32:03.324827600 +0200
+++ setup-FR/choose.cc 2014-05-05 11:34:25.864080100 +0200
@@ -62,8 +62,13 @@
#include "UserSettings.h"
#include "getopt++/BoolOption.h"
+#ifdef LANG_FR
+static BoolOption UpgradeAlsoOption (false, 'g', "upgrade-also", "Mettre à jour les paquets");
+static BoolOption CleanOrphansOption (false, 'o', "delete-orphans", "Effacer les paquets orphelins");
+#else
static BoolOption UpgradeAlsoOption (false, 'g', "upgrade-also", "also upgrade installed packages");
static BoolOption CleanOrphansOption (false, 'o', "delete-orphans", "remove orphaned packages");
+#endif
using namespace std;
@@ -270,9 +275,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 2014-05-05 11:32:03.451840300 +0200
+++ setup-FR/configure.ac 2014-05-05 11:34:25.911084800 +0200
@@ -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 2014-05-05 11:32:03.523847500 +0200
+++ setup-FR/crypto.cc 2014-05-05 11:34:25.930086700 +0200
@@ -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 2014-05-05 11:32:03.634858600 +0200
+++ setup-FR/cygpackage.cc 2014-05-05 11:34:25.959089600 +0200
@@ -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 2014-05-05 11:32:03.702865400 +0200
+++ setup-FR/desktop.cc 2014-05-05 11:34:25.997093400 +0200
@@ -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);
@@ -259,8 +269,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 2014-05-05 11:32:03.944889600 +0200
+++ setup-FR/geturl.cc 2014-05-05 11:34:26.022095900 +0200
@@ -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 2014-05-05 11:32:04.035898700 +0200
+++ setup-FR/ini.cc 2014-05-05 11:37:30.808572700 +0200
@@ -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 2014-05-05 11:32:04.066901800 +0200
+++ setup-FR/IniDBBuilderPackage.cc 2014-05-05 11:34:26.100103700 +0200
@@ -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 2014-05-05 11:32:04.182913400 +0200
+++ setup-FR/install.cc 2014-05-05 11:34:26.128106500 +0200
@@ -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;
@@ -152,7 +158,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;
try_run_script ("/etc/preremove/", pkg.name, ".sh");
@@ -162,7 +172,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 ();
@@ -202,7 +216,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);
@@ -366,15 +384,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;
}
@@ -418,7 +445,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;
@@ -430,7 +461,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;
}
@@ -522,7 +557,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;
@@ -536,6 +575,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"
@@ -544,6 +592,7 @@
fn.c_str());
rc = MessageBox (owner, msg, "Error writing file",
+#endif
MB_RETRYCONTINUE | MB_ICONWARNING | MB_TASKMODAL);
}
}
@@ -603,7 +652,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,
@@ -614,7 +667,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);
}
@@ -660,21 +717,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:
@@ -728,7 +802,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)
@@ -851,8 +930,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);
}
@@ -924,9 +1008,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 2014-05-05 11:32:04.342929400 +0200
+++ setup-FR/localdir.cc 2014-05-05 11:34:26.153109000 +0200
@@ -47,7 +47,11 @@
extern ThreeBarProgressPage Progress;
extern LogFile * theLog;
+#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 2014-05-05 11:32:04.435938700 +0200
+++ setup-FR/main.cc 2014-05-05 11:39:26.719162600 +0200
@@ -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 ()
@@ -220,6 +229,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++)
@@ -250,9 +263,15 @@
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);
}
@@ -291,7 +310,11 @@
if (HelpOption)
GetOption::GetInstance ().ParameterUsage (log (LOG_PLAIN)
+#ifdef LANG_FR
+ << "\nOptions de ligne de commande :\n");
+#else
<< "\nCommand Line Options:\n");
+#endif
else
{
if (elevate)
--- setup-FR/Makefile.am.orig 2014-05-05 11:32:04.456940800 +0200
+++ setup-FR/Makefile.am 2014-05-05 11:34:26.222115900 +0200
@@ -129,6 +129,7 @@
crypto.cc \
crypto.h \
cyg-pubkey.h \
+ sec-pubkey.h \
cygpackage.cc \
cygpackage.h \
desktop.cc \
@@ -286,7 +287,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 2014-05-05 11:32:04.541949300 +0200
+++ setup-FR/msg.cc 2014-05-05 11:34:43.979891500 +0200
@@ -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 2014-05-05 11:32:04.565951700 +0200
+++ setup-FR/net.cc 2014-05-05 11:34:44.003893900 +0200
@@ -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 2014-05-05 11:32:04.613956500 +0200
+++ setup-FR/nio-file.cc 2014-05-05 11:34:44.028896400 +0200
@@ -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 2014-05-05 11:32:04.702965400 +0200
+++ setup-FR/nio-ie5.cc 2014-05-05 11:34:44.076901200 +0200
@@ -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 2014-05-05 11:32:04.766971800 +0200
+++ setup-FR/package_message.h 2014-05-05 11:34:44.099903500 +0200
@@ -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 2014-05-05 11:32:04.777972900 +0200
+++ setup-FR/package_meta.cc 2014-05-05 11:34:44.117905300 +0200
@@ -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 2014-05-05 11:32:04.950990200 +0200
+++ setup-FR/PickView.cc 2014-05-05 11:34:44.142907800 +0200
@@ -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 2014-05-05 11:32:04.975992700 +0200
+++ setup-FR/postinstall.cc 2014-05-05 11:34:44.166910200 +0200
@@ -126,7 +126,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 2014-05-05 11:32:05.034998600 +0200
+++ setup-FR/prereq.cc 2014-05-05 11:34:44.190912600 +0200
@@ -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 (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 2014-05-05 11:32:05.114006500 +0200
+++ setup-FR/propsheet.cc 2014-05-05 11:34:44.217915300 +0200
@@ -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/resource.h.orig 2014-05-05 11:32:05.270022100 +0200
+++ setup-FR/resource.h 2014-05-05 11:34:44.271920700 +0200
@@ -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 2014-05-05 11:32:05.278022900 +0200
+++ setup-FR/root.cc 2014-05-05 11:34:44.289922500 +0200
@@ -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 2014-05-05 11:34:04.449938900 +0200
+++ setup-FR/sec-pubkey.h 2014-05-05 11:34:44.318925400 +0200
@@ -12,3 +12,17 @@
")"
")"
+
+/* 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/setup.exe.manifest.orig 2014-05-05 11:32:05.354030500 +0200
+++ setup-FR/setup.exe.manifest 2014-10-27 11:44:23.278680300 +0100
@@ -36,6 +36,8 @@
+
+
--- setup-FR/setup64.exe.manifest.orig 2014-05-05 11:32:05.371032200 +0200
+++ setup-FR/setup64.exe.manifest 2014-10-27 11:44:23.323684800 +0100
@@ -36,6 +36,8 @@
+
+
--- setup-FR/site.cc.orig 2014-05-05 11:32:05.402035300 +0200
+++ setup-FR/site.cc 2014-05-05 11:34:44.337927300 +0200
@@ -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 2014-05-05 11:32:05.425037600 +0200
+++ setup-FR/source.cc 2014-05-05 11:34:44.362929800 +0200
@@ -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 2014-05-05 11:32:05.475042600 +0200
+++ setup-FR/splash.cc 2014-05-05 11:34:44.386932200 +0200
@@ -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/release");
+#endif
}
--- setup-FR/threebar.cc.orig 2014-05-05 11:32:05.618056900 +0200
+++ setup-FR/threebar.cc 2014-05-05 11:34:44.410934600 +0200
@@ -110,8 +110,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());
}
@@ -196,7 +203,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;
}