https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f99f48045d8bc44bcadf0…
commit f99f48045d8bc44bcadf01523a751ccecfa89f73
Author: Pierre Schweitzer <pierre(a)reactos.org>
AuthorDate: Sun May 20 11:35:21 2018 +0200
Commit: Pierre Schweitzer <pierre(a)reactos.org>
CommitDate: Sun May 20 11:36:00 2018 +0200
[EVENTMSG] Add French translation.
---
sdk/include/reactos/mc/neteventmsg.mc | 211 +++++++++++++++++++++++++++++++++-
1 file changed, 210 insertions(+), 1 deletion(-)
diff --git a/sdk/include/reactos/mc/neteventmsg.mc b/sdk/include/reactos/mc/neteventmsg.mc
index 7a3cbb7f79..c182aee196 100644
--- a/sdk/include/reactos/mc/neteventmsg.mc
+++ b/sdk/include/reactos/mc/neteventmsg.mc
@@ -14,7 +14,8 @@ FacilityNames=(System=0x0:FACILITY_SYSTEM
)
LanguageNames=(English=0x409:MSG00409
- Russian=0x419:MSG00419)
+ Russian=0x419:MSG00419
+ French=0x040c:MSG0040c)
;
@@ -37,6 +38,9 @@ The %1 log file is full.
Language=Russian
Файл журнала "%1" заполнен.
.
+Language=French
+Le fichier de journalisation %1 est plein.
+.
MessageId=6001
Severity=Warning
@@ -48,6 +52,9 @@ The %1 log file cannot be opened.
Language=Russian
Файл журнала "%1" не может быть открыт.
.
+Language=French
+Le fichier de journalisation %1 ne peut pas être ouvert.
+.
MessageId=6002
Severity=Warning
@@ -59,6 +66,9 @@ The %1 log file is corrupted and will be cleared.
Language=Russian
Файл журана "%1" поврежден и будет очищен.
.
+Language=French
+Le fichier de journalisation %1 est corrompu et doit être vidé.
+.
MessageId=6003
Severity=Warning
@@ -70,6 +80,9 @@ The Application log file could not be opened. %1 will be used as the default lo
Language=Russian
Файл журнала "Приложения" не может быть открыт. "%1" будет использоваться в качестве файла журана по умолчанию.
.
+Language=French
+Le fichier de journalisation des application ne peut pas être ouvert. %1 sera utilisé comme fichier de journalisation par défaut.
+.
MessageId=6004
Severity=Warning
@@ -81,6 +94,9 @@ A driver packet received from the I/O subsystem was invalid. The data is the pa
Language=Russian
Пакет драйвера, полученный от подсистемы ввода-вывода недопустим. Данные являются пакетом.
.
+Language=French
+Un paquet de pilote reçu par le sous-système IO était invalide. La donnée est le paquet.
+.
MessageId=6005
Severity=Warning
@@ -92,6 +108,9 @@ The Event log service was started.
Language=Russian
Служба журана событий была запущена.
.
+Language=French
+Le service de journalisation des évènements a été démarré.
+.
MessageId=6006
Severity=Warning
@@ -103,6 +122,9 @@ The Event log service was stopped.
Language=Russian
Служба журнала событий была остановлена.
.
+Language=French
+Le service de journalisation des évènements a été arrêté.
+.
MessageId=6007
Severity=Warning
@@ -114,6 +136,9 @@ Eventlog Service %0
Language=Russian
Служба журнала событий %0
.
+Language=French
+Service de journalisation des évènements %0
+.
MessageId=6008
Severity=Warning
@@ -125,6 +150,9 @@ The previous system shutdown at %1 on %2 was unexpected.
Language=Russian
Предыдущее завершение работы системы в %1 %2 было неожиданным.
.
+Language=French
+L'arrêt précédent du système à %1 le %2 n'était pas prévu.
+.
MessageId=6009
Severity=Warning
@@ -133,6 +161,9 @@ SymbolicName=EVENT_EventLogProductInfo
Language=English
ReactOS %1 %2 %3 %4.
.
+Language=French
+ReactOS %1 %2 %3 %4.
+.
MessageId=6010
Severity=Error
@@ -144,6 +175,9 @@ The %1 service was unable to set up an event source.
Language=Russian
Служба "%1" не смогла установить источник события.
.
+Language=French
+Le service %1 n'a pas réussi à installer une source d'évènement.
+.
MessageId=6011
Severity=Error
@@ -155,6 +189,9 @@ The NetBIOS name and DNS host name of this machine have been changed from %1 to
Language=Russian
NetBIOS и DNS имена этого компьютера были изменены с "%1" на "%2".
.
+Language=French
+Le nom NetBIOS et le nom d'hôte DNS de cette machine ont été changés de %1 à %2.
+.
MessageId=6012
Severity=Error
@@ -166,6 +203,9 @@ The DNS domain assigned to this computer has been changed from %1 to %2.
Language=Russian
DNS-домен присвоенный этому компьютеру был изменен с "%1" на "%2".
.
+Language=French
+Le domaine DNS assigné à cet ordinateur a été changé de %1 à %2.
+.
;
@@ -182,6 +222,9 @@ A uniprocessor-specific driver was loaded on a multiprocessor system. The drive
Language=Russian
Однопроцессорный драйвер был загружен на многопроцессорной системе. Драйвер не может быть загружен.
.
+Language=French
+Un pilote spécifique monoprocesseur a été chargé sur un système multiprocesseurs. Le pilote n'a pas pu être chargé.
+.
;
@@ -198,6 +241,9 @@ The %1 service failed to start due to the following error: %n%2
Language=Russian
Службе "%1" не удалось запуститься из-за следующей ошибки: %n%2
.
+Language=French
+Le service %1 n'a pas pu démarrer en raison de l'erreur suivante : %n%2
+.
MessageId=7001
Severity=Error
@@ -209,6 +255,9 @@ The %1 service depends on the %2 service which failed to start because of the fo
Language=Russian
Служба "%1" зависит от службы "%2", которой не удалось запуститься из-за следующей ошибки: %n%3
.
+Language=French
+Le serveur %1 dépend du service %2 qui n'a pas pu démarrer en raison de l'erreur suivante : %n%3
+.
MessageId=7002
Severity=Error
@@ -220,6 +269,9 @@ The %1 service depends on the %2 group and no member of this group started.
Language=Russian
Служба "%1" зависит от группы "%2" и ни один элемент этой группы не запущен.
.
+Language=French
+Le service %1 dépend du groupe %2 et aucun membre de ce groupe n'a démarré.
+.
MessageId=7003
Severity=Error
@@ -231,6 +283,9 @@ The %1 service depends on the following nonexistent service: %2
Language=Russian
Служба "%1" зависит от следующей несуществующей службы: "%2"
.
+Language=French
+Le service %1 dépend du service non existant suivant : %2
+.
MessageId=7005
Severity=Error
@@ -242,6 +297,9 @@ The %1 call failed with the following error: %n%2
Language=Russian
Вызов "%1" завершился ошибкой: %n%2
.
+Language=French
+L'appel %1 a échoué avec l'erreur suivante : %n%2
+.
MessageId=7006
Severity=Error
@@ -250,6 +308,9 @@ SymbolicName=EVENT_CALL_TO_FUNCTION_FAILED_II
Language=English
The %1 call failed for %2 with the following error: %n%3
.
+Language=French
+L'appel %1 a échoué pour %2 avec l'erreur suivante : %n%3
+.
MessageId=7007
Severity=Error
@@ -258,6 +319,9 @@ SymbolicName=EVENT_REVERTED_TO_LASTKNOWNGOOD
Language=English
The system reverted to its last known good configuration. The system is restarting....
.
+Language=French
+Le système a restauré sa dernière bonne configuration connue. Le système redémarre...
+.
MessageId=7008
Severity=Error
@@ -266,6 +330,9 @@ SymbolicName=EVENT_BAD_ACCOUNT_NAME
Language=English
No backslash is in the account name.
.
+Language=French
+Aucun backslash n'est présent dans le nom de compte.
+.
MessageId=7009
Severity=Error
@@ -274,6 +341,9 @@ SymbolicName=EVENT_CONNECTION_TIMEOUT
Language=English
Timeout (%1 milliseconds) waiting for the %2 service to connect.
.
+Language=French
+Expiration du délai (%1 millisecondes) lors de l'attente du service %2 pour se connecter.
+.
MessageId=7010
Severity=Error
@@ -282,6 +352,9 @@ SymbolicName=EVENT_READFILE_TIMEOUT
Language=English
Timeout (%1 milliseconds) waiting for ReadFile.
.
+Language=French
+Expiration du délai (%1 millisecondes) lors de l'attente de ReadFile.
+.
MessageId=7011
Severity=Error
@@ -290,6 +363,9 @@ SymbolicName=EVENT_TRANSACT_TIMEOUT
Language=English
Timeout (%1 milliseconds) waiting for a transaction response from the %2 service.
.
+Language=French
+Expiration du délai (%1 millisecondes) lors de l'attente pour une transaction réponse du service %2.
+.
MessageId=7012
Severity=Error
@@ -298,6 +374,9 @@ SymbolicName=EVENT_TRANSACT_INVALID
Language=English
Message returned in transaction has incorrect size.
.
+Language=French
+Le message retourné dans la transaction a une taille incorrecte.
+.
MessageId=7013
Severity=Error
@@ -306,6 +385,9 @@ SymbolicName=EVENT_FIRST_LOGON_FAILED
Language=English
Logon attempt with current password failed with the following error: %n%1
.
+Language=French
+La tentative de connexion avec le mot de passe actuel a échoué avec l'erreur suivante : %n%1
+.
MessageId=7014
Severity=Error
@@ -314,6 +396,9 @@ SymbolicName=EVENT_SECOND_LOGON_FAILED
Language=English
Second logon attempt with old password also failed with the following error: %n%1
.
+Language=French
+La seconde tentative de connexion avec l'ancien mot de passe a également échoué avec l'erreur suivante : %n%1
+.
MessageId=7015
Severity=Error
@@ -322,6 +407,9 @@ SymbolicName=EVENT_INVALID_DRIVER_DEPENDENCY
Language=English
Boot-start or system-start driver (%1) must not depend on a service.
.
+Language=French
+Un pilote au démarrage ou système (%1) ne doit pas dépendre d'un service.
+.
MessageId=7016
Severity=Error
@@ -330,6 +418,9 @@ SymbolicName=EVENT_BAD_SERVICE_STATE
Language=English
The %1 service has reported an invalid current state %2.
.
+Language=French
+Le service %1 a reporté un état courant invalide %2.
+.
MessageId=7017
Severity=Error
@@ -338,6 +429,9 @@ SymbolicName=EVENT_CIRCULAR_DEPENDENCY_DEMAND
Language=English
Detected circular dependencies demand starting %1.
.
+Language=French
+Dépendances circulaires détectées lors du démarrage de %1.
+.
MessageId=7018
Severity=Error
@@ -346,6 +440,9 @@ SymbolicName=EVENT_CIRCULAR_DEPENDENCY_AUTO
Language=English
Detected circular dependencies auto-starting services.
.
+Language=French
+Dépendances circulaires détectées lors du démarrage automatique des services.
+.
MessageId=7019
Severity=Error
@@ -354,6 +451,9 @@ SymbolicName=EVENT_DEPEND_ON_LATER_SERVICE
Language=English
Circular dependency: The %1 service depends on a service in a group which starts later.
.
+Language=French
+Dépendance circulaire : le service %1 dépend d'un service dans un groupe qui démarre plus tard.
+.
MessageId=7020
Severity=Error
@@ -362,6 +462,9 @@ SymbolicName=EVENT_DEPEND_ON_LATER_GROUP
Language=English
Circular dependency: The %1 service depends on a group which starts later.
.
+Language=French
+Dépendance circulaire : le service %1 dépend d'un groupe qui démarre plus tard.
+.
MessageId=7021
Severity=Error
@@ -370,6 +473,9 @@ SymbolicName=EVENT_SEVERE_SERVICE_FAILED
Language=English
About to revert to the last known good configuration because the %1 service failed to start.
.
+Language=French
+Sur le point de revenir à la dernière bonne configuration connue car le service %1 n'a pas réussi à démarrer.
+.
MessageId=7022
Severity=Error
@@ -381,6 +487,9 @@ The %1 service hung on starting.
Language=Russian
Служба "%1" зависла при запуске.
.
+Language=French
+Le serveur %1 service s'est gelé au démarrage.
+.
MessageId=7023
Severity=Error
@@ -389,6 +498,9 @@ SymbolicName=EVENT_SERVICE_EXIT_FAILED
Language=English
The %1 service terminated with the following error: %n%2
.
+Language=French
+Le service %1 s'est terminé avec l'erreur suivante : %n%2
+.
MessageId=7024
Severity=Error
@@ -397,6 +509,9 @@ SymbolicName=EVENT_SERVICE_EXIT_FAILED_SPECIFIC
Language=English
The %1 service terminated with service-specific error %2.
.
+Language=French
+Le service %1 s'est terminé avec une erreur spécifique au service %2.
+.
MessageId=7025
Severity=Error
@@ -405,6 +520,9 @@ SymbolicName=EVENT_SERVICE_START_AT_BOOT_FAILED
Language=English
At least one service or driver failed during system startup. Use Event Viewer to examine the event log for details.
.
+Language=French
+Au moins un service ou pilote a échoué durant le démarrage du système. Utilisez la visionneuse d'évènements pour examiner les journaux d'évènements pour plus de détails.
+.
MessageId=7026
Severity=Error
@@ -413,6 +531,9 @@ SymbolicName=EVENT_BOOT_SYSTEM_DRIVERS_FAILED
Language=English
The following boot-start or system-start driver(s) failed to load: %1
.
+Language=French
+Le pilote au démarrage ou système suivant n'a pas pu être chargé : %1
+.
MessageId=7027
Severity=Error
@@ -421,6 +542,9 @@ SymbolicName=EVENT_RUNNING_LASTKNOWNGOOD
Language=English
ReactOS could not be started as configured. A previous working configuration was used instead.
.
+Language=French
+ReactOS n'a pas pu démarrer tel que configuré. Une précédente configuration fonctionnelle a été utilisé à la place.
+.
MessageId=7028
Severity=Error
@@ -429,6 +553,9 @@ SymbolicName=EVENT_TAKE_OWNERSHIP
Language=English
The %1 Registry key denied access to SYSTEM account programs so the Service Control Manager took ownership of the Registry key.
.
+Language=French
+La clé de registre %1 a refusé l'accès aux programmes du compte SYSTEM. Le gestionnaire de contrôle des services s'est approprié la clé de registre.
+.
MessageId=7029
Severity=Error
@@ -437,6 +564,9 @@ SymbolicName=TITLE_SC_MESSAGE_BOX
Language=English
Service Control Manager %0
.
+Language=French
+Gestionnaire de contrôle des services %0
+.
MessageId=7030
Severity=Error
@@ -445,6 +575,9 @@ SymbolicName=EVENT_SERVICE_NOT_INTERACTIVE
Language=English
The %1 service is marked as an interactive service. However, the system is configured to not allow interactive services. This service may not function properly.
.
+Language=French
+Le service %1 est marqué comme service interactif. Cependant, le système est configuré pour ne pas autoriser les services interactifs. Ce service pourrait ne pas fonctionner correctement.
+.
MessageId=7031
Severity=Error
@@ -453,6 +586,9 @@ SymbolicName=EVENT_SERVICE_CRASH
Language=English
The %1 service terminated unexpectedly. It has done this %2 time(s). The following corrective action will be taken in %3 milliseconds: %5.
.
+Language=French
+Le service %1 s'est terminée de façon non prévue. Il l'a fait %2 fois. L'action corrective suivante va être prise dans %3 millisecondes : %5.
+.
MessageId=7032
Severity=Error
@@ -461,6 +597,9 @@ SymbolicName=EVENT_SERVICE_RECOVERY_FAILED
Language=English
The Service Control Manager tried to take a corrective action (%2) after the unexpected termination of the %3 service, but this action failed with the following error: %n%4
.
+Language=French
+Le gestionnaire de contrôle des services a tenté de prendre une action corrective (%2) après la fin inattendue du service %3, mais cette action a échoué avec l'erreur suivante : %n%4
+.
MessageId=7033
Severity=Error
@@ -471,6 +610,11 @@ The Service Control Manager did not initialize successfully. The security
configuration server (scesrv.dll) failed to initialize with error %1. The
system is restarting...
.
+Language=French
+Le gestionnaire de contrôle des services ne s'est pas initialisé correctement.
+Le serveur de configuration de sécurité (scesrv.dll) n'a pas réussi à s'initialiser
+avec l'erreur %1. Le système redémarre...
+.
MessageId=7034
Severity=Error
@@ -482,6 +626,9 @@ The %1 service terminated unexpectedly. It has done this %2 time(s).
Language=Russian
Служба "%1" неожиданно завершилась. Это произошло %2 раз(а).
.
+Language=French
+Le service %1 s'est terminée de façon non prévue. Il l'a fait %2 fois.
+.
MessageId=7035
Severity=Informational
@@ -493,6 +640,9 @@ The %1 service was successfully sent a %2 control.
Language=Russian
Служба "%1" успешно отправила "%2".
.
+Language=French
+Le contrôle %2 a été envoyé avec succès au service %1.
+.
MessageId=7036
Severity=Informational
@@ -504,6 +654,9 @@ The %1 service entered the %2 state.
Language=Russian
Служба "%1" перешла в состояние "%2".
.
+Language=French
+Le service %1 est entré dans l'état %2.
+.
MessageId=7037
Severity=Error
@@ -517,6 +670,16 @@ If you do not correct this configuration, you may not be able to restart the %1
service or may encounter other errors. To ensure that the service is configured
properly, use the Services snap-in in Microsoft Management Console (MMC).
.
+Language=French
+Le gestionnaire de contrôle des services a rencontré une erreur lors de l'annulation
+d'un changement de configuration sur le service %1. Le %2 du service est actuellement
+dans un état imprévisible.
+
+Si vous ne corrigez pas cette configuration, vous pourriez ne plus être capable de
+redémarrer le service %1 ou pourriez rencontrer d'autres erreurs. Pour vous assurer
+que le service est configuré correctement, utilisez la console de gestion des services
+dans la console de gestion Microsoft (MMC).
+.
MessageId=7038
Severity=Error
@@ -528,6 +691,12 @@ password due to the following error: %n%3%n%nTo ensure that the service is
configured properly, use the Services snap-in in Microsoft Management
Console (MMC).
.
+Language=French
+Le service %1 n'a pas réussi à s'identifier en tant que %2 avec le mot de passe
+actuellement configuré en raison de l'erreur suivante : %n%3%n%nPour vous assurer
+que le service est correctement, utilisez la console de gestion des services
+dans la console de gestion Microsoft (MMC).
+.
MessageId=7039
Severity=Warning
@@ -540,6 +709,13 @@ process %2 and process %3 connected instead.%n%n
Note that if this service is configured to start under a debugger, this behavior is expected.
.
+Language=French
+Un processus du service, autre que celui lancé par le gestionnaire de contrôle des services
+s'est connecté lors du démarrage du service %1. Le gestionnaire de contrôle des services a
+lancé le processus %2 et le processus %3 s'est connecté à la place.%n%n
+
+Veuillez noter que si ce service est configurer pour démarrer dans un débogueur, ce comportement est attendu.
+.
MessageId=7040
Severity=Informational
@@ -551,6 +727,9 @@ The start type of the %1 service was changed from %2 to %3.
Language=Russian
Тип запуска службы "%1" изменен с "%2" на "%3".
.
+Language=French
+Le type de démarrage du service %1 a été changé de %2 à %3.
+.
MessageId=7041
Severity=Error
@@ -572,6 +751,22 @@ user right appears to be removed, a Group Policy object associated with this
node might be removing the right. Check with your domain administrator to find
out if this is happening.
.
+Language=French
+Le service %1 n'a pas réussi à s'identifier en tant que %2 avec le mot de passe
+actuellement configuré en raison de l'erreur suivante : %n
+Echec de connexion : l'utilisateur n'a pas reçu l'autorisation de réaliser ce type de connexions sur cet ordinateur.%n%n
+Service : %1%n
+Domaine et compte : %2%n%n
+Ce compte de service n'a pas les droits utilisateurs nécessaires "Se connecter en tant que service".%n%n
+Action utilisateur%n%n
+Assignez le droit "Se connecter en tant que service" au compte de service sur cet ordinateur.
+Vous pouvez utiliser les paramètres locaux de sécurité (secpol.msc) pour le faire. Si cet ordinateur
+est un nœud dans une grappe, vérifiez que ce droit d'utilisateur est assigné au compte de service
+sur tous les nœuds du cluster.%n%n
+Si vous avez déjà assigné ce droit d'utilisateur au compte de service, et que ce droit semble avoir été supprimé,
+un objet de stratégie de groupe (GPO) associé avec ce nœud peut avoir supprimé le droit.
+Contactez votre administrateur de domaine pour vérifier si c'est ce qui se produit.
+.
MessageId=7042
Severity=Informational
@@ -582,6 +777,11 @@ The %1 service was successfully sent a %2 control.%n%n
The reason specified was: %3 [%4]%n%n
Comment: %5
.
+Language=French
+Le contrôle %2 a été envoyé avec succès au service %1.%n%n
+La raison spécifiée était : %3 [%4]%n%n
+Commentaire : %5
+.
MessageId=7043
Severity=Error
@@ -590,6 +790,9 @@ SymbolicName=EVENT_SERVICE_SHUTDOWN_FAILED
Language=English
The %1 service did not shut down properly after receiving a preshutdown control.
.
+Language=French
+Le service %1 ne s'est pas arrêté proprement après avoir reçu un contrôle de pré-arrêt.
+.
;
@@ -603,6 +806,9 @@ SymbolicName=EVENT_TRANSPORT_REGISTER_FAILED
Language=English
%2 failed to register itself with the NDIS wrapper.
.
+Language=French
+%2 n'a pas réussi à s'enregistrer avec le wrapper NDIS.
+.
MessageId=9006
Severity=Error
@@ -614,3 +820,6 @@ Language=English
Language=Russian
"%2" не смогла найти адаптер "%3".
.
+Language=French
+%2 n'a pas pu trouver l'adaptateur %3.
+.
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=de87a936ceb6e715a01fc…
commit de87a936ceb6e715a01fc33ce302630b64505ff6
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sat May 19 22:04:20 2018 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sat May 19 22:07:06 2018 +0200
[NTOS] Demote an ASSERT to a mere DPRINT since we only support registry hives with cluster size == 1 in any case so far (other sizes are UNIMPLEMENTED!)
---
ntoskrnl/config/cmsysini.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/ntoskrnl/config/cmsysini.c b/ntoskrnl/config/cmsysini.c
index 80bc55bbc1..ca198833a4 100644
--- a/ntoskrnl/config/cmsysini.c
+++ b/ntoskrnl/config/cmsysini.c
@@ -1369,15 +1369,19 @@ CmpLoadHiveThread(IN PVOID StartContext)
Length = CmHive->Hive.Storage[Stable].Length + HBLOCK_SIZE;
/* Check if the cluster size doesn't match */
- if (CmHive->Hive.Cluster != ClusterSize) ASSERT(FALSE);
+ if (CmHive->Hive.Cluster != ClusterSize)
+ {
+ DPRINT1("FIXME: Support for CmHive->Hive.Cluster (%lu) != ClusterSize (%lu) is unimplemented!\n",
+ CmHive->Hive.Cluster, ClusterSize);
+ }
/* Set the file size */
- DPRINT("FIXME: Should set file size: %lx\n", Length);
+ DPRINT("FIXME: Should set file size: %lu\n", Length);
//if (!CmpFileSetSize((PHHIVE)CmHive, HFILE_TYPE_PRIMARY, Length, Length))
- {
+ //{
/* This shouldn't fail */
//ASSERT(FALSE);
- }
+ //}
/* Another thing we don't support is NTLDR-recovery */
if (CmHive->Hive.BaseBlock->BootRecover) ASSERT(FALSE);
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=82a5983504b955d5639a5…
commit 82a5983504b955d5639a58d64022ec5cd9ece8b3
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Sat May 19 23:12:11 2018 +0900
Commit: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito(a)reactos.org>
CommitDate: Sat May 19 16:12:11 2018 +0200
[SHELL32] Allow deleting a file type/extension (#553)
CORE-12906
---
dll/win32/shell32/dialogs/folder_options.cpp | 62 ++++++++++++++++++++++++++++
dll/win32/shell32/lang/bg-BG.rc | 2 +
dll/win32/shell32/lang/ca-ES.rc | 2 +
dll/win32/shell32/lang/cs-CZ.rc | 2 +
dll/win32/shell32/lang/da-DK.rc | 2 +
dll/win32/shell32/lang/de-DE.rc | 2 +
dll/win32/shell32/lang/el-GR.rc | 2 +
dll/win32/shell32/lang/en-GB.rc | 2 +
dll/win32/shell32/lang/en-US.rc | 2 +
dll/win32/shell32/lang/es-ES.rc | 2 +
dll/win32/shell32/lang/et-EE.rc | 2 +
dll/win32/shell32/lang/fi-FI.rc | 2 +
dll/win32/shell32/lang/fr-FR.rc | 2 +
dll/win32/shell32/lang/he-IL.rc | 2 +
dll/win32/shell32/lang/hu-HU.rc | 2 +
dll/win32/shell32/lang/it-IT.rc | 2 +
dll/win32/shell32/lang/ja-JP.rc | 2 +
dll/win32/shell32/lang/ko-KR.rc | 2 +
dll/win32/shell32/lang/nl-NL.rc | 2 +
dll/win32/shell32/lang/no-NO.rc | 2 +
dll/win32/shell32/lang/pl-PL.rc | 2 +
dll/win32/shell32/lang/pt-BR.rc | 2 +
dll/win32/shell32/lang/pt-PT.rc | 2 +
dll/win32/shell32/lang/ro-RO.rc | 2 +
dll/win32/shell32/lang/ru-RU.rc | 2 +
dll/win32/shell32/lang/sk-SK.rc | 2 +
dll/win32/shell32/lang/sl-SI.rc | 2 +
dll/win32/shell32/lang/sq-AL.rc | 2 +
dll/win32/shell32/lang/sv-SE.rc | 2 +
dll/win32/shell32/lang/tr-TR.rc | 2 +
dll/win32/shell32/lang/uk-UA.rc | 2 +
dll/win32/shell32/lang/zh-CN.rc | 2 +
dll/win32/shell32/lang/zh-TW.rc | 2 +
dll/win32/shell32/shresdef.h | 2 +
34 files changed, 128 insertions(+)
diff --git a/dll/win32/shell32/dialogs/folder_options.cpp b/dll/win32/shell32/dialogs/folder_options.cpp
index b53dd8ce0d..cffee8bee1 100644
--- a/dll/win32/shell32/dialogs/folder_options.cpp
+++ b/dll/win32/shell32/dialogs/folder_options.cpp
@@ -1349,6 +1349,30 @@ FindItem(HWND hDlgCtrl, WCHAR * ItemName)
return ListView_FindItem(hDlgCtrl, 0, &findInfo);
}
+static BOOL
+DeleteExt(HWND hwndDlg, LPCWSTR pszExt)
+{
+ if (*pszExt != L'.')
+ return FALSE;
+
+ HKEY hKey;
+ LONG nResult = RegOpenKeyExW(HKEY_CLASSES_ROOT, pszExt, 0, KEY_READ, &hKey);
+ if (nResult != ERROR_SUCCESS)
+ return FALSE;
+
+ WCHAR szValue[64];
+ DWORD cbValue = sizeof(szValue);
+ nResult = RegQueryValueExW(hKey, NULL, NULL, NULL, LPBYTE(szValue), &cbValue);
+ RegCloseKey(hKey);
+ if (nResult != ERROR_SUCCESS)
+ return FALSE;
+
+ if (szValue[0])
+ SHDeleteKeyW(HKEY_CLASSES_ROOT, szValue);
+
+ return SHDeleteKeyW(HKEY_CLASSES_ROOT, pszExt) == ERROR_SUCCESS;
+}
+
static
VOID
InsertFileType(HWND hDlgCtrl, WCHAR * szName, PINT iItem, WCHAR * szFile)
@@ -1749,6 +1773,12 @@ NewExtDlg_OnOK(HWND hwndDlg, NEWEXT_DIALOG *pNewExt)
return FALSE;
}
+ // Delete the extension
+ CStringW strExt(L".");
+ strExt += find.psz;
+ strExt.MakeLower();
+ DeleteExt(hwndDlg, strExt);
+
// Delete the item
ListView_DeleteItem(pNewExt->hwndLV, iItem);
}
@@ -1873,6 +1903,28 @@ FileTypesDlg_AddExt(HWND hwndDlg, LPCWSTR pszExt, LPCWSTR pszFileType)
return TRUE;
}
+static BOOL
+FileTypesDlg_RemoveExt(HWND hwndDlg)
+{
+ HWND hListView = GetDlgItem(hwndDlg, IDC_FILETYPES_LISTVIEW);
+
+ INT iItem = ListView_GetNextItem(hListView, -1, LVNI_SELECTED);
+ if (iItem == -1)
+ return FALSE;
+
+ WCHAR szExt[20];
+ szExt[0] = L'.';
+ ListView_GetItemText(hListView, iItem, 0, &szExt[1], _countof(szExt) - 1);
+ CharLowerW(szExt);
+
+ if (DeleteExt(hwndDlg, szExt))
+ {
+ ListView_DeleteItem(hListView, iItem);
+ return TRUE;
+ }
+ return FALSE;
+}
+
// IDD_FOLDER_OPTIONS_FILETYPES dialog
INT_PTR
CALLBACK
@@ -1911,6 +1963,16 @@ FolderOptionsFileTypesDlg(
FileTypesDlg_AddExt(hwndDlg, newext.szExt, newext.szFileType);
}
break;
+ case IDC_FILETYPES_DELETE:
+ {
+ CStringW strRemoveExt(MAKEINTRESOURCEW(IDS_REMOVE_EXT));
+ CStringW strTitle(MAKEINTRESOURCEW(IDS_FILE_TYPES));
+ if (MessageBoxW(hwndDlg, strRemoveExt, strTitle, MB_ICONQUESTION | MB_YESNO) == IDYES)
+ {
+ FileTypesDlg_RemoveExt(hwndDlg);
+ }
+ }
+ break;
case IDC_FILETYPES_CHANGE:
pItem = FindSelectedItem(GetDlgItem(hwndDlg, IDC_FILETYPES_LISTVIEW));
if (pItem)
diff --git a/dll/win32/shell32/lang/bg-BG.rc b/dll/win32/shell32/lang/bg-BG.rc
index e1434cc693..94daa0323b 100644
--- a/dll/win32/shell32/lang/bg-BG.rc
+++ b/dll/win32/shell32/lang/bg-BG.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/ca-ES.rc b/dll/win32/shell32/lang/ca-ES.rc
index 5e132b5a23..53c5ebacfb 100644
--- a/dll/win32/shell32/lang/ca-ES.rc
+++ b/dll/win32/shell32/lang/ca-ES.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/cs-CZ.rc b/dll/win32/shell32/lang/cs-CZ.rc
index 88341dee0f..c7494ebf33 100644
--- a/dll/win32/shell32/lang/cs-CZ.rc
+++ b/dll/win32/shell32/lang/cs-CZ.rc
@@ -885,4 +885,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/da-DK.rc b/dll/win32/shell32/lang/da-DK.rc
index 499a764aaf..501648452c 100644
--- a/dll/win32/shell32/lang/da-DK.rc
+++ b/dll/win32/shell32/lang/da-DK.rc
@@ -905,4 +905,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/de-DE.rc b/dll/win32/shell32/lang/de-DE.rc
index 7413b005ac..5bf042e98f 100644
--- a/dll/win32/shell32/lang/de-DE.rc
+++ b/dll/win32/shell32/lang/de-DE.rc
@@ -900,4 +900,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/el-GR.rc b/dll/win32/shell32/lang/el-GR.rc
index b52405c547..635fce0c1f 100644
--- a/dll/win32/shell32/lang/el-GR.rc
+++ b/dll/win32/shell32/lang/el-GR.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/en-GB.rc b/dll/win32/shell32/lang/en-GB.rc
index 75807f8a95..4cd9e85dcc 100644
--- a/dll/win32/shell32/lang/en-GB.rc
+++ b/dll/win32/shell32/lang/en-GB.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/en-US.rc b/dll/win32/shell32/lang/en-US.rc
index 36620174d5..5d327f02f3 100644
--- a/dll/win32/shell32/lang/en-US.rc
+++ b/dll/win32/shell32/lang/en-US.rc
@@ -900,4 +900,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/es-ES.rc b/dll/win32/shell32/lang/es-ES.rc
index 560c3bc11d..4d86e8c865 100644
--- a/dll/win32/shell32/lang/es-ES.rc
+++ b/dll/win32/shell32/lang/es-ES.rc
@@ -901,4 +901,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/et-EE.rc b/dll/win32/shell32/lang/et-EE.rc
index d7e7f5f7da..7fe739bcf2 100644
--- a/dll/win32/shell32/lang/et-EE.rc
+++ b/dll/win32/shell32/lang/et-EE.rc
@@ -907,4 +907,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/fi-FI.rc b/dll/win32/shell32/lang/fi-FI.rc
index 9c047596fb..df2a16de1b 100644
--- a/dll/win32/shell32/lang/fi-FI.rc
+++ b/dll/win32/shell32/lang/fi-FI.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/fr-FR.rc b/dll/win32/shell32/lang/fr-FR.rc
index 94934f332a..a1d20cbba3 100644
--- a/dll/win32/shell32/lang/fr-FR.rc
+++ b/dll/win32/shell32/lang/fr-FR.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/he-IL.rc b/dll/win32/shell32/lang/he-IL.rc
index 21adbdaca7..85a108337b 100644
--- a/dll/win32/shell32/lang/he-IL.rc
+++ b/dll/win32/shell32/lang/he-IL.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/hu-HU.rc b/dll/win32/shell32/lang/hu-HU.rc
index 8cfc2a4fda..38521334e2 100644
--- a/dll/win32/shell32/lang/hu-HU.rc
+++ b/dll/win32/shell32/lang/hu-HU.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/it-IT.rc b/dll/win32/shell32/lang/it-IT.rc
index a676af71b6..82feea8e7a 100644
--- a/dll/win32/shell32/lang/it-IT.rc
+++ b/dll/win32/shell32/lang/it-IT.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/ja-JP.rc b/dll/win32/shell32/lang/ja-JP.rc
index afc51ab142..e21a079cc7 100644
--- a/dll/win32/shell32/lang/ja-JP.rc
+++ b/dll/win32/shell32/lang/ja-JP.rc
@@ -896,4 +896,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/ko-KR.rc b/dll/win32/shell32/lang/ko-KR.rc
index 19a06e0183..fa1c1b97d2 100644
--- a/dll/win32/shell32/lang/ko-KR.rc
+++ b/dll/win32/shell32/lang/ko-KR.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/nl-NL.rc b/dll/win32/shell32/lang/nl-NL.rc
index ba0280cd18..1e46a4c924 100644
--- a/dll/win32/shell32/lang/nl-NL.rc
+++ b/dll/win32/shell32/lang/nl-NL.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/no-NO.rc b/dll/win32/shell32/lang/no-NO.rc
index 9a06724890..223977332a 100644
--- a/dll/win32/shell32/lang/no-NO.rc
+++ b/dll/win32/shell32/lang/no-NO.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc
index 4040c421fe..e3a06f2487 100644
--- a/dll/win32/shell32/lang/pl-PL.rc
+++ b/dll/win32/shell32/lang/pl-PL.rc
@@ -904,4 +904,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "Musisz podać rozszerzenie."
IDS_NEWEXT_ALREADY_ASSOC "Rozszerzenie %s jest już związane z typem plików %s. Czy chcesz usunąć powiązanie %s z %s i utworzyć dla niego nowy typ plików?"
IDS_NEWEXT_EXT_IN_USE "Rozszerzenie jest w użyciu"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/pt-BR.rc b/dll/win32/shell32/lang/pt-BR.rc
index e7da10ffee..19c7f068ba 100644
--- a/dll/win32/shell32/lang/pt-BR.rc
+++ b/dll/win32/shell32/lang/pt-BR.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/pt-PT.rc b/dll/win32/shell32/lang/pt-PT.rc
index f0df0caf9d..d15c6912ce 100644
--- a/dll/win32/shell32/lang/pt-PT.rc
+++ b/dll/win32/shell32/lang/pt-PT.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/ro-RO.rc b/dll/win32/shell32/lang/ro-RO.rc
index 213d1c654e..54b0ebf0b8 100644
--- a/dll/win32/shell32/lang/ro-RO.rc
+++ b/dll/win32/shell32/lang/ro-RO.rc
@@ -901,4 +901,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc
index 9999c34582..e924f7b572 100644
--- a/dll/win32/shell32/lang/ru-RU.rc
+++ b/dll/win32/shell32/lang/ru-RU.rc
@@ -901,4 +901,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/sk-SK.rc b/dll/win32/shell32/lang/sk-SK.rc
index e43686755c..acc1f32579 100644
--- a/dll/win32/shell32/lang/sk-SK.rc
+++ b/dll/win32/shell32/lang/sk-SK.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/sl-SI.rc b/dll/win32/shell32/lang/sl-SI.rc
index b31654d02e..8beba1374d 100644
--- a/dll/win32/shell32/lang/sl-SI.rc
+++ b/dll/win32/shell32/lang/sl-SI.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/sq-AL.rc b/dll/win32/shell32/lang/sq-AL.rc
index 0b24962ea8..93e14c424f 100644
--- a/dll/win32/shell32/lang/sq-AL.rc
+++ b/dll/win32/shell32/lang/sq-AL.rc
@@ -903,4 +903,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/sv-SE.rc b/dll/win32/shell32/lang/sv-SE.rc
index 1ffa90923f..fd0f1234c4 100644
--- a/dll/win32/shell32/lang/sv-SE.rc
+++ b/dll/win32/shell32/lang/sv-SE.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc
index 8bfc5be38f..d54c399302 100644
--- a/dll/win32/shell32/lang/tr-TR.rc
+++ b/dll/win32/shell32/lang/tr-TR.rc
@@ -901,4 +901,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/uk-UA.rc b/dll/win32/shell32/lang/uk-UA.rc
index e821dde925..1ff6fba8c8 100644
--- a/dll/win32/shell32/lang/uk-UA.rc
+++ b/dll/win32/shell32/lang/uk-UA.rc
@@ -899,4 +899,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/zh-CN.rc b/dll/win32/shell32/lang/zh-CN.rc
index e51e1b01e2..c32e28828c 100644
--- a/dll/win32/shell32/lang/zh-CN.rc
+++ b/dll/win32/shell32/lang/zh-CN.rc
@@ -909,4 +909,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/lang/zh-TW.rc b/dll/win32/shell32/lang/zh-TW.rc
index e0bb30c924..60aa2e7eb8 100644
--- a/dll/win32/shell32/lang/zh-TW.rc
+++ b/dll/win32/shell32/lang/zh-TW.rc
@@ -907,4 +907,6 @@ BEGIN
IDS_NEWEXT_SPECIFY_EXT "You must specify an extension."
IDS_NEWEXT_ALREADY_ASSOC "Extension %s is already associated with File Type %s. Do you want to un-associate %s with %s and create a new File Type for it?"
IDS_NEWEXT_EXT_IN_USE "Extension is in use"
+
+ IDS_REMOVE_EXT "If you remove a registered file name extension, you will not be able to open files with this extension by double-clicking their icons.\n\nAre you sure you want to remove this extension?"
END
diff --git a/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h
index decbc120fc..0014ec2bfa 100644
--- a/dll/win32/shell32/shresdef.h
+++ b/dll/win32/shell32/shresdef.h
@@ -266,6 +266,8 @@
#define IDS_NEWEXT_ALREADY_ASSOC 30520
#define IDS_NEWEXT_EXT_IN_USE 30521
+#define IDS_REMOVE_EXT 30522
+
/* Dialogs */
/* Run dialog */