Browse Source

Merge branch 'master' into dev

# Conflicts:
#	source/WinSCP.cbproj

Source commit: 15b9c282f975206c4c3d458e3d3bfb4dbe9305ca
Martin Prikryl 5 years ago
parent
commit
a86bc06b7f

+ 16 - 0
source/core/Configuration.cpp

@@ -1245,9 +1245,25 @@ UnicodeString __fastcall TConfiguration::GetAutomaticIniFileStorageName(bool Rea
   }
 }
 //---------------------------------------------------------------------------
+UnicodeString __fastcall TConfiguration::GetIniFileParamValue()
+{
+  UnicodeString Result;
+  if (Storage == stNul)
+  {
+    Result = INI_NUL;
+  }
+  // See the comment in GetIniFileStorageName
+  else if ((Storage == stIniFile) && !FIniFileStorageName.IsEmpty())
+  {
+    Result = FIniFileStorageName;
+  }
+  return Result;
+}
+//---------------------------------------------------------------------------
 UnicodeString __fastcall TConfiguration::GetIniFileStorageName(bool ReadingOnly)
 {
   UnicodeString Result;
+  // This does not work correctly with MoveStorage
   if (!FIniFileStorageName.IsEmpty())
   {
     Result = FIniFileStorageName;

+ 1 - 0
source/core/Configuration.h

@@ -220,6 +220,7 @@ public:
   void __fastcall SetDefaultStorage();
   UnicodeString __fastcall GetAutomaticIniFileStorageName(bool ReadingOnly);
   UnicodeString __fastcall GetDefaultIniFileExportPath();
+  UnicodeString __fastcall GetIniFileParamValue();
   void __fastcall Export(const UnicodeString & FileName);
   void __fastcall Import(const UnicodeString & FileName);
   void __fastcall CleanupConfiguration();

+ 1 - 2
source/forms/Preferences.cpp

@@ -1547,8 +1547,7 @@ void __fastcall TPreferencesDialog::IconButtonClick(TObject *Sender)
 
   TInstantOperationVisualizer Visualizer;
 
-  CreateDesktopShortCut(IconName,
-    Application->ExeName, Params, L"", SpecialFolder);
+  CreateAppDesktopShortCut(IconName, Params, L"", SpecialFolder);
 }
 //---------------------------------------------------------------------------
 void __fastcall TPreferencesDialog::CustomCommandsViewData(TObject * /*Sender*/,

+ 1 - 1
source/windows/GUITools.cpp

@@ -2048,7 +2048,7 @@ void __fastcall TNewRichEdit::CreateParams(TCreateParams & Params)
   SetErrorMode(OldError);
 
   // No fallback, MSFTEDIT.DLL is available since Windows XP
-  // https://blogs.msdn.microsoft.com/murrays/2006/10/13/richedit-versions/
+  // https://docs.microsoft.com/en-us/archive/blogs/murrays/richedit-versions
   if (FLibrary == 0)
   {
     throw Exception(FORMAT(L"Cannot load %s", (RichEditModuleName)));

+ 18 - 1
source/windows/Tools.cpp

@@ -599,6 +599,23 @@ IShellLink * __fastcall CreateDesktopShortCut(const UnicodeString & Name,
   return pLink;
 }
 //---------------------------------------------------------------------------
+IShellLink * __fastcall CreateAppDesktopShortCut(
+  const UnicodeString & Name, const UnicodeString & AParams, const UnicodeString & Description,
+  int SpecialFolder, int IconIndex, bool Return)
+{
+  UnicodeString ParamValue = Configuration->GetIniFileParamValue();
+
+  UnicodeString Params;
+  if (!ParamValue.IsEmpty())
+  {
+    Params = TProgramParams::FormatSwitch(INI_SWITCH) + L"=" + AddQuotes(ParamValue);
+  }
+
+  AddToList(Params, AParams, L" ");
+
+  return CreateDesktopShortCut(Name, Application->ExeName, Params, Description, SpecialFolder, IconIndex, Return);
+}
+//---------------------------------------------------------------------------
 IShellLink * __fastcall CreateDesktopSessionShortCut(
   const UnicodeString & SessionName, UnicodeString Name,
   const UnicodeString & AdditionalParams, int SpecialFolder, int IconIndex,
@@ -638,7 +655,7 @@ IShellLink * __fastcall CreateDesktopSessionShortCut(
   }
 
   return
-    CreateDesktopShortCut(ValidLocalFileName(Name), Application->ExeName,
+    CreateAppDesktopShortCut(ValidLocalFileName(Name),
       FORMAT(L"\"%s\"%s%s", (EncodeUrlString(SessionName), (AdditionalParams.IsEmpty() ? L"" : L" "), AdditionalParams)),
       InfoTip, SpecialFolder, IconIndex, Return);
 }

+ 2 - 2
source/windows/Tools.h

@@ -18,8 +18,8 @@ bool __fastcall IsKeyPressed(int VirtualKey);
 bool __fastcall UseAlternativeFunction();
 bool __fastcall OpenInNewWindow();
 void __fastcall ExecuteNewInstance(const UnicodeString & Param, const UnicodeString & AdditionalParams = UnicodeString());
-IShellLink * __fastcall CreateDesktopShortCut(const UnicodeString &Name,
-  const UnicodeString &File, const UnicodeString & Params, const UnicodeString & Description,
+IShellLink * __fastcall CreateAppDesktopShortCut(
+  const UnicodeString & Name, const UnicodeString & Params, const UnicodeString & Description,
   int SpecialFolder = -1, int IconIndex = 0, bool Return = false);
 IShellLink * __fastcall CreateDesktopSessionShortCut(
   const UnicodeString & SessionName, UnicodeString Name,

+ 10 - 11
translations/FR.ini

@@ -2056,7 +2056,7 @@ NEON_INIT_FAILED2="Echec de l'initialisation de la bibliothèque HTTP Neon, impo
 SCRIPT_AMBIGUOUS_SLASH_IN_PATH="La sélection de fichier utilisant un chemin d'accès finnissant par un slash est ambigue. Effacer le slash pour sélectionner le dossier. Ajouter le mask * pour sélectionner tous les fichiers du dossier."
 CERT_IP_CANNOT_VERIFY="Lors d'une connexion utilisant l'adresse IP, il n'est pas possible de vérifier si le certificat est délivré pour le serveur. Utiliser un nom d'hôte au lieu de l'adresse IP."
 HOSTKEY_NOT_CONFIGURED="La clé hôte attendue n'est pas configurée, utiliser le sélecteur '-hostkey'."
-UNENCRYPTED_REDIRECT="Redirigé vers une URL non encryptée."
+UNENCRYPTED_REDIRECT="Redirigé vers une URL non chiffrée."
 HTTP_ERROR2="Réponse reçue %d \"%s\" de %s."
 FILEZILLA_SITE_MANAGER_NOT_FOUND="Fichier de gestionnaire de sites FileZilla non trouvé (%s)"
 FILEZILLA_NO_SITES="Aucun site trouvé dans le fichier de gestionnaire de sites FileZilla (%s)."
@@ -2073,7 +2073,7 @@ S3_ERROR_EXTRA_DETAILS="Détails supplémentaires: "
 S3_STATUS_ACCESS_DENIED="Accès refusé."
 DUPLICATE_FOLDER_NOT_SUPPORTED="La duplication directe des dossiers n'est pas prise en charge. Utilisez une duplication via une copie temporaire locale."
 MISSING_TARGET_BUCKET="Spécifiez le compartiment cible."
-UNKNOWN_FILE_ENCRYPTION="Le fichier n'est pas crypté à l'aide d'un cryptage connu."
+UNKNOWN_FILE_ENCRYPTION="Le fichier n'est pas chiffré à l'aide d'un chiffrement connu."
 INVALID_ENCRYPT_KEY="**Clé de chiffrement non valide.**\n\nLa clé de chiffrement pour le chiffrement %s doit comporter %d octets. Il doit être entré en représentation hexadécimale (c-à-d %d caractères)."
 UNREQUESTED_FILE="Le serveur a envoyé un fichier qui n'a pas été demandé."
 CONFIRM_PROLONG_TIMEOUT3="L'hôte n'a pas répondu pendant %d secondes.\n\nAttendre encore %0:d secondes ?"
@@ -2227,14 +2227,14 @@ SCRIPT_SYNCHRONIZE_COLLECTING="Comparaison..."
 SCRIPT_SYNCHRONIZE_SYNCHRONIZING="Synchronisation..."
 SCRIPT_SYNCHRONIZE_NODIFFERENCE="Aucun fichier à synchroniser."
 SPEED_UNLIMITED="Illimité"
-FTPS_IMPLICIT="Cryptage SSL/TLS implicite"
-FTPS_EXPLICIT="Cryptage TLS/SSL explicite"
+FTPS_IMPLICIT="Chiffrement SSL/TLS implicite"
+FTPS_EXPLICIT="Chiffrement TLS/SSL explicite"
 SCRIPT_ECHO_DESC="Affiche ses arguments comme un message"
 SCRIPT_STAT_DESC="Récupère les propriétés du fichier distant"
 HOSTKEY="L'empreinte 'digitale' de la clé du serveur %s."
 SCRIPT_FILEMASK_INCLUDE_EXCLUDE="L'option -filemask l'emporte sur les options obsolètes include/exclude."
 COPY_PARAM_NEWER_ONLY="Fichiers nouv&eaux et mis-à-jour seulement"
-FTP_SUGGESTION="Le serveur a rejeté la connexion SFTP, mais accepte les connexions FTP.\n\nVoulez-vous utiliser le protocole FTP plutôt que le protocole SFTP ? Privilégiez l'utilisation de cryptage."
+FTP_SUGGESTION="Le serveur a rejeté la connexion SFTP, mais accepte les connexions FTP.\n\nVoulez-vous utiliser le protocole FTP plutôt que le protocole SFTP ? Privilégiez l'utilisation de chiffrement."
 SCRIPT_CMDLINE_SESSION="Ouvrir une session en utilisant un paramètre de la ligne de commande est déprécié. Utilisez la commande 'open' à la place."
 ANY_HOSTKEY="ATTENTION ! La configuration implique un abandon de la sécurité et une acceptation de n'importe quelle clé !"
 ANY_CERTIFICATE="ATTENTION ! La configuration implique un abandon de la sécurité et une acceptation de n'importe quel certificat !"
@@ -2371,7 +2371,7 @@ COPY_PARAM_DUPLICATE="Une prédéfinition de transfert nommée '%s' existe déj
 CUSTOM_COMMAND_IMPOSSIBLE="La commande personnalisée '%s' ne peut pas être exécutée maintenant. Sélectionnez d'abord un ou des fichiers pour cette commande."
 CUSTOM_COMMAND_AD_HOC_NAME="Ad Hoc"
 EDIT_SESSION_CLOSED_RELOAD="Impossible de recharger le fichier '%s', la session '%s' a déjà été fermée."
-DECRYPT_PASSWORD_ERROR="Le mot de passe ne peut être décrypté."
+DECRYPT_PASSWORD_ERROR="Le mot de passe ne peut être déchiffré."
 MASTER_PASSWORD_INCORRECT="Le mot de passe principal entré est incorrect."
 MASTER_PASSWORD_DIFFERENT="Le nouveau de passe et sa vérification ne sont pas identiques."
 CONSOLE_MASTER_PASSWORD_PROMPT="Mot de passe principal :"
@@ -2553,7 +2553,7 @@ DD_TRANSFER_CONFIRM_OFF2="**Confirmation de transfert désactivée**\n\nVous ave
 COPY_PARAM_PRESET_HEADER="Présélections"
 QUEUE_DONE="Effectué"
 EDITOR_AUTO_CONFIG2="**Voulez-vous utiliser '%s' au lieu de l'éditeur interne par défaut ?**\n\nWinSCP a détecté que vous utilisez l'éditeur particulier '%s' pour ouvrir les fichiers texte."
-MASTER_PASSWORD_RECRYPT_ERRORS="%s\n\nDes erreurs sont survenues lors de l'encryptage des mots de passe en utilisant le mot de passe principal ou lors du décryptage des mots de passe."
+MASTER_PASSWORD_RECRYPT_ERRORS="%s\n\nDes erreurs sont survenues lors du chiffrement des mots de passe en utilisant le mot de passe principal ou lors du déchiffrement des mots de passe."
 REGISTERED_APP_DESC3="WinSCP est un client SFTP et FTP gratuit et populaire pour Windows, un puissant gestionnaire de fichiers qui améliorera votre productivité. Il prend également en charge les protocoles Amazon S3, FTPS, SCP et WebDAV. Les utilisateurs expérimentés peuvent automatiser WinSCP à l'aide d'un assemblage .NET."
 MESSAGE_LOADING="Chargement..."
 NEW_VERSION_CLICK="%s\n\nCliquez ici pour afficher les nouveautés."
@@ -2598,12 +2598,12 @@ USAGE_LOGSIZE="Permet la rotation des journaux et, éventuellement, la suppressi
 PASSWORD_CHANGED="Môt de passe modifié"
 OPEN_TARGET_FOLDER="Ouvrir le dossier cible"
 OPEN_DOWNLOADED_FILE="Ouvrir fichier téléchargé"
-ENCRYPT_KEY_GENERATED="**La clé de cryptage a été générée.**\n\nVous devez sauvegarder en toute sécurité la clé de cryptage générée. Si vous le perdez, vous ne pourrez pas lire vos fichiers cryptés."
+ENCRYPT_KEY_GENERATED="**La clé de chiffrement a été générée.**\n\nVous devez sauvegarder en toute sécurité la clé de chiffrement générée. Si vous le perdez, vous ne pourrez pas lire vos fichiers chiffrés."
 LOCATION_PROFILE_HINT="Ouvrir le profil d'emplacement \"%s\".|Répertoire local :\n  %s|Répertoire distant :\n  %s"
 USAGE_INFO="Imprime la liste des algorithmes et chiffrements supportés."
 USAGE_RAWTRANSFERSETTINGS="Configure tous les paramètres de transfert en utilisant un format RAW comme dans un fichier INI."
 CUSTOM_COMMAND_PATTERNS_HINT6="!E s'étend aux données de connexion sérialisées de la session en cours"
-USAGE_PASSPHRASE="Une phrase secrète pour une clé privée cryptée ou un certificat client"
+USAGE_PASSPHRASE="Une phrase secrète pour une clé privée chiffrée ou un certificat client"
 AUTO_WORKSPACE_ENABLE="Appuyez sur 'Non' pour activer l'enregistrement automatique de l'espace de travail."
 USAGE_BROWSE="Sélectionne le fichier spécifié dans le(s) panneau(x) de fichiers."
 PUTTY_SETTINGS_INSTRUCTIONS="**Modifiez les paramètres du terminal dans PuTTY.**\n\nPuTTY sera lancé. Modifiez les paramètres de terminal d'un site temporaire %s. WinSCP se souviendra de ces paramètres après la fermeture de PuTTY."
@@ -2960,7 +2960,7 @@ NEW_5_10_AUTOMATION="Nombreuses améliorations aux commandes/extensions personna
 NEW_5_12_S3="Prise en charge du protocole Amazon S3"
 NEW_5_12_SHA256_HOSTKEY="Prise en charge de l'algorithme d'empreinte digitale de clé hôte SHA-256"
 NEW_5_12_AUTOMATION="Nombreuses améliorations à l'assemblage .NET, y compris le support de la gestion des paquets PackageReference dans le paquet NuGet"
-NEW_5_14_ENCRYPTION="Les fichiers peuvent éventuellement être cryptés lors de leur stockage sur un serveur SFTP"
+NEW_5_14_ENCRYPTION="Les fichiers peuvent éventuellement être chiffrés lors de leur stockage sur un serveur SFTP"
 NEW_5_14_UNC="Les chemins UNC locaux peuvent être parcourus"
 NEW_5_14_CLIPBOARD="Les fichiers peuvent être copiés dans le presse-papier"
 NEW_5_14_SYNCHRONIZATION="De nombreuses améliorations à la synchronisation de répertoires"
@@ -3382,7 +3382,6 @@ BatchRename.LoggingGroup.Caption="Rapports"
 ArchiveDownload.Name="&Archiver et télécharger ..."
 ArchiveDownload.Description="Regroupe les fichiers sélectionnés dans une archive, la télécharge et extrait éventuellement l’archive dans le répertoire local en cours."
 ArchiveDownload.ArchiveNameTextbox.Caption="Nom de l'archive :"
-ArchiveDownload.ArchiveNameTextbox.1="archive"
 ArchiveDownload.ArchiveTypeCombobox.Caption="Type d'archive"
 ArchiveDownload.PackingGroup.Caption="Emballage"
 ArchiveDownload.ArchiveCommandTextbox.Caption="Commande d'archive personnalisée :"

+ 2 - 2
translations/version.ini

@@ -3,7 +3,7 @@ CS=248
 DE=129
 ES=80
 FI=97
-FR=100
+FR=101
 HE=22
 HU=95
 IN=39
@@ -59,7 +59,7 @@ CS=2003,2020,Martin Přikryl
 DE=2003,2019,Marko Meister,Mick Weiss
 ES=2003,2019,David Martin,Fredy Rojas,Pablo Grande,Juan Razeto
 FI=2003,2019,Sami Kuusisto,Tero Pelander,Jarmo Järvenpää
-FR=2003,2019,Eric Winter,Julien Terral,Raphael Raimbault
+FR=2003,2020,Eric Winter,Julien Terral,Raphael Raimbault
 HE=2003,2019,Refael Ackermann
 HU=2003,2019,Dániel Kiss-Kálmán,Csaba Tóth,Kácsor István,Csizmadia Gábor
 IN=2003,2019,Radhitya Wawan Yunarko,Iwan Setya Putra,Budi Rahardjo