Przeglądaj źródła

- Cleanup of the dictionary usage.
- Improvements to the French translation.

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@1199 a333f486-631f-4898-b8df-5754b55c2be0

dflaven 14 lat temu
rodzic
commit
a3f2393b6b

+ 480 - 380
dictionaries/fr.dictionary.itop.core.php

@@ -15,190 +15,443 @@
 //   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 /**
- * Localized data
- *
  * @author      Erwan Taloc <erwan.taloc@combodo.com>
  * @author      Romain Quetiez <romain.quetiez@combodo.com>
  * @author      Denis Flaven <denis.flaven@combodo.com>
  * @license     http://www.opensource.org/licenses/gpl-3.0.html LGPL
  */
 
-
-Dict::Add('FR FR', 'English', 'English', array(
+Dict::Add('FR FR', 'French', 'Français', array(
+	'Class:ActionEmail' => 'email notification',
+	'Class:ActionEmail+' => 'Action: Email notification',
+	'Class:ActionEmail/Attribute:test_recipient' => 'Destinataire de test',
+	'Class:ActionEmail/Attribute:test_recipient+' => '',
+	'Class:ActionEmail/Attribute:from' => 'De',
+	'Class:ActionEmail/Attribute:from+' => '',
+	'Class:ActionEmail/Attribute:reply_to' => 'Répondre à',
+	'Class:ActionEmail/Attribute:reply_to+' => '',
+	'Class:ActionEmail/Attribute:to' => 'A',
+	'Class:ActionEmail/Attribute:to+' => '',
+	'Class:ActionEmail/Attribute:cc' => 'Copie',
+	'Class:ActionEmail/Attribute:cc+' => '',
+	'Class:ActionEmail/Attribute:bcc' => 'Copie Cachée',
+	'Class:ActionEmail/Attribute:bcc+' => '',
+	'Class:ActionEmail/Attribute:subject' => 'Sujet',
+	'Class:ActionEmail/Attribute:subject+' => '',
+	'Class:ActionEmail/Attribute:body' => 'Message',
+	'Class:ActionEmail/Attribute:body+' => '',
+	'Class:ActionEmail/Attribute:importance' => 'Importance',
+	'Class:ActionEmail/Attribute:importance+' => '',
+	'Class:ActionEmail/Attribute:importance/Value:high' => 'Haute',
+	'Class:ActionEmail/Attribute:importance/Value:high+' => '',
+	'Class:ActionEmail/Attribute:importance/Value:low' => 'Basse',
+	'Class:ActionEmail/Attribute:importance/Value:low+' => '',
+	'Class:ActionEmail/Attribute:importance/Value:normal' => 'Normale',
+	'Class:ActionEmail/Attribute:importance/Value:normal+' => '',
+	'Class:TriggerOnStateEnter' => 'Déclencheur sur un objet entrant dans un état',
+	'Class:TriggerOnStateEnter+' => '',
+	'Class:TriggerOnStateLeave' => 'Déclencheur sur un objet quitant un état',
+	'Class:TriggerOnStateLeave+' => '',
+	'Class:TriggerOnObjectCreate' => 'Déclencheur sur la création d\'un objet',
+	'Class:TriggerOnObjectCreate+' => '',
+	'Class:lnkTriggerAction' => 'Actions-Déclencheur',
+	'Class:lnkTriggerAction+' => '',
+	'Class:lnkTriggerAction/Attribute:action_id' => 'Action',
+	'Class:lnkTriggerAction/Attribute:action_id+' => '',
+	'Class:lnkTriggerAction/Attribute:action_name' => 'Nom de l\'action',
+	'Class:lnkTriggerAction/Attribute:action_name+' => '',
+	'Class:lnkTriggerAction/Attribute:trigger_id' => 'Déclencheur',
+	'Class:lnkTriggerAction/Attribute:trigger_id+' => '',
+	'Class:lnkTriggerAction/Attribute:trigger_name' => 'Nom du déclencheur',
+	'Class:lnkTriggerAction/Attribute:trigger_name+' => '',
+	'Class:lnkTriggerAction/Attribute:order' => 'Ordre',
+	'Class:lnkTriggerAction/Attribute:order+' => '',
+	'Class:AsyncSendEmail' => 'Envoi d\'Email Asynchrone',
+	'Class:AsyncSendEmail+' => '',
+	'Class:AsyncSendEmail/Attribute:to' => 'A',
+	'Class:AsyncSendEmail/Attribute:to+' => '',
+	'Class:AsyncSendEmail/Attribute:subject' => 'Sujet',
+	'Class:AsyncSendEmail/Attribute:subject+' => '',
+	'Class:AsyncSendEmail/Attribute:body' => 'Message',
+	'Class:AsyncSendEmail/Attribute:body+' => '',
+	'Class:AsyncSendEmail/Attribute:header' => 'En-tête',
+	'Class:AsyncSendEmail/Attribute:header+' => '',
+	'Class:CMDBChange' => 'Modification',
+	'Class:CMDBChange+' => '',
+	'Class:CMDBChange/Attribute:date' => 'Date',
+	'Class:CMDBChange/Attribute:date+' => '',
+	'Class:CMDBChange/Attribute:userinfo' => 'Autres informations',
+	'Class:CMDBChange/Attribute:userinfo+' => '',
+	'Class:CMDBChangeOp' => 'Operation de changement',
+	'Class:CMDBChangeOp+' => '',
+	'Class:CMDBChangeOp/Attribute:change' => 'Modification',
+	'Class:CMDBChangeOp/Attribute:change+' => '',
+	'Class:CMDBChangeOp/Attribute:date' => 'Date',
+	'Class:CMDBChangeOp/Attribute:date+' => '',
+	'Class:CMDBChangeOp/Attribute:userinfo' => 'Utilisateur',
+	'Class:CMDBChangeOp/Attribute:userinfo+' => '',
+	'Class:CMDBChangeOp/Attribute:objclass' => 'Type d\'objet',
+	'Class:CMDBChangeOp/Attribute:objclass+' => '',
+	'Class:CMDBChangeOp/Attribute:objkey' => 'Clé',
+	'Class:CMDBChangeOp/Attribute:objkey+' => '',
+	'Class:CMDBChangeOp/Attribute:finalclass' => 'Type',
+	'Class:CMDBChangeOp/Attribute:finalclass+' => '',
+	'Class:CMDBChangeOpCreate' => 'Création de l\'objet',
+	'Class:CMDBChangeOpCreate+' => '',
+	'Class:CMDBChangeOpDelete' => 'Effacement de l\'objet',
+	'Class:CMDBChangeOpDelete+' => '',
+	'Class:CMDBChangeOpSetAttribute' => 'Modification de l\'objet',
+	'Class:CMDBChangeOpSetAttribute+' => '',
+	'Class:CMDBChangeOpSetAttribute/Attribute:attcode' => 'Champ',
+	'Class:CMDBChangeOpSetAttribute/Attribute:attcode+' => '',
+	'Class:CMDBChangeOpSetAttributeScalar' => 'Modification de valeur',
+	'Class:CMDBChangeOpSetAttributeScalar+' => '',
+	'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue' => 'Ancienne valeur',
+	'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue+' => '',
+	'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue' => 'Nouvelle valeur',
+	'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue+' => '',
+	'Class:CMDBChangeOpSetAttributeBlob' => 'Modification de données',
+	'Class:CMDBChangeOpSetAttributeBlob+' => '',
+	'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata' => 'Ancienne valeur',
+	'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata+' => '',
+	'Class:CMDBChangeOpSetAttributeOneWayPassword' => 'Mot de passe chiffré',
+	'Class:CMDBChangeOpSetAttributeOneWayPassword+' => '',
+	'Class:CMDBChangeOpSetAttributeOneWayPassword/Attribute:prev_pwd' => 'Ancien mot de passe',
+	'Class:CMDBChangeOpSetAttributeOneWayPassword/Attribute:prev_pwd+' => '',
+	'Class:CMDBChangeOpSetAttributeEncrypted' => 'Champ chiffré',
+	'Class:CMDBChangeOpSetAttributeEncrypted+' => '',
+	'Class:CMDBChangeOpSetAttributeEncrypted/Attribute:prevstring' => 'Ancienne valeur',
+	'Class:CMDBChangeOpSetAttributeEncrypted/Attribute:prevstring+' => '',
+	'Class:CMDBChangeOpSetAttributeText' => 'Modification de texte',
+	'Class:CMDBChangeOpSetAttributeText+' => '',
+	'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata' => 'Ancienne valeur',
+	'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata+' => '',
+	'Class:CMDBChangeOpSetAttributeCaseLog' => 'Archive de journal',
+	'Class:CMDBChangeOpSetAttributeCaseLog+' => '',
+	'Class:CMDBChangeOpSetAttributeCaseLog/Attribute:lastentry' => 'Dernière entrée',
+	'Class:CMDBChangeOpSetAttributeCaseLog/Attribute:lastentry+' => '',
+	'Class:Event' => 'Evenement',
+	'Class:Event+' => '',
+	'Class:Event/Attribute:message' => 'Message',
+	'Class:Event/Attribute:message+' => '',
+	'Class:Event/Attribute:date' => 'Date',
+	'Class:Event/Attribute:date+' => '',
+	'Class:Event/Attribute:userinfo' => 'Utilisateur',
+	'Class:Event/Attribute:userinfo+' => '',
+	'Class:Event/Attribute:finalclass' => 'Type',
+	'Class:Event/Attribute:finalclass+' => '',
+	'Class:EventNotification' => 'Notification',
+	'Class:EventNotification+' => '',
+	'Class:EventNotification/Attribute:trigger_id' => 'Déclencheur',
+	'Class:EventNotification/Attribute:trigger_id+' => '',
+	'Class:EventNotification/Attribute:action_id' => 'Action',
+	'Class:EventNotification/Attribute:action_id+' => '',
+	'Class:EventNotification/Attribute:object_id' => 'Objet',
+	'Class:EventNotification/Attribute:object_id+' => '',
+	'Class:EventNotificationEmail' => 'Envoi d\'Email',
+	'Class:EventNotificationEmail+' => '',
+	'Class:EventNotificationEmail/Attribute:to' => 'A',
+	'Class:EventNotificationEmail/Attribute:to+' => '',
+	'Class:EventNotificationEmail/Attribute:cc' => 'CC',
+	'Class:EventNotificationEmail/Attribute:cc+' => '',
+	'Class:EventNotificationEmail/Attribute:bcc' => 'BCC',
+	'Class:EventNotificationEmail/Attribute:bcc+' => '',
+	'Class:EventNotificationEmail/Attribute:from' => 'De',
+	'Class:EventNotificationEmail/Attribute:from+' => '',
+	'Class:EventNotificationEmail/Attribute:subject' => 'Sujet',
+	'Class:EventNotificationEmail/Attribute:subject+' => '',
+	'Class:EventNotificationEmail/Attribute:body' => 'Message',
+	'Class:EventNotificationEmail/Attribute:body+' => '',
+	'Class:EventIssue' => 'Erreur',
+	'Class:EventIssue+' => '',
+	'Class:EventIssue/Attribute:issue' => 'Erreur',
+	'Class:EventIssue/Attribute:issue+' => '',
+	'Class:EventIssue/Attribute:impact' => 'Impact',
+	'Class:EventIssue/Attribute:impact+' => '',
+	'Class:EventIssue/Attribute:page' => 'Page Web',
+	'Class:EventIssue/Attribute:page+' => '',
+	'Class:EventIssue/Attribute:arguments_post' => 'Arguments (POST)',
+	'Class:EventIssue/Attribute:arguments_post+' => '',
+	'Class:EventIssue/Attribute:arguments_get' => 'Arguments (GET)',
+	'Class:EventIssue/Attribute:arguments_get+' => '',
+	'Class:EventIssue/Attribute:callstack' => 'Pile d\'appel',
+	'Class:EventIssue/Attribute:callstack+' => '',
+	'Class:EventIssue/Attribute:data' => 'Données',
+	'Class:EventIssue/Attribute:data+' => '',
+	'Class:EventWebService' => 'Appel de webservice',
+	'Class:EventWebService+' => '',
+	'Class:EventWebService/Attribute:verb' => 'Verbe',
+	'Class:EventWebService/Attribute:verb+' => '',
+	'Class:EventWebService/Attribute:result' => 'Résultat',
+	'Class:EventWebService/Attribute:result+' => '',
+	'Class:EventWebService/Attribute:log_info' => 'Informations',
+	'Class:EventWebService/Attribute:log_info+' => '',
+	'Class:EventWebService/Attribute:log_warning' => 'Avertissement',
+	'Class:EventWebService/Attribute:log_warning+' => '',
+	'Class:EventWebService/Attribute:log_error' => 'Erreurs',
+	'Class:EventWebService/Attribute:log_error+' => '',
+	'Class:EventWebService/Attribute:data' => 'Données',
+	'Class:EventWebService/Attribute:data+' => '',
+	'Class:EventLoginUsage' => 'Utilisation de l\'application',
+	'Class:EventLoginUsage+' => '',
+	'Class:EventLoginUsage/Attribute:user_id' => 'Login',
+	'Class:EventLoginUsage/Attribute:user_id+' => '',
+	'Class:EventLoginUsage/Attribute:contact_name' => 'Nom de l\'utilisateur',
+	'Class:EventLoginUsage/Attribute:contact_name+' => '',
+	'Class:EventLoginUsage/Attribute:contact_email' => 'Email',
+	'Class:EventLoginUsage/Attribute:contact_email+' => '',
+	'Class:SynchroDataSource' => 'Source de données',
+	'Class:SynchroDataSource+' => '',
+	'Class:SynchroDataSource/Attribute:name' => 'Nom',
+	'Class:SynchroDataSource/Attribute:name+' => '',
+	'Class:SynchroDataSource/Attribute:description' => 'Description',
+	'Class:SynchroDataSource/Attribute:description+' => '',
+	'Class:SynchroDataSource/Attribute:status' => 'Etat',
+	'Class:SynchroDataSource/Attribute:status+' => '',
+	'Class:SynchroDataSource/Attribute:status/Value:implementation' => 'Implémentation',
+	'Class:SynchroDataSource/Attribute:status/Value:implementation+' => '',
+	'Class:SynchroDataSource/Attribute:status/Value:obsolete' => 'Obsolete',
+	'Class:SynchroDataSource/Attribute:status/Value:obsolete+' => '',
+	'Class:SynchroDataSource/Attribute:status/Value:production' => 'Production',
+	'Class:SynchroDataSource/Attribute:status/Value:production+' => '',
+	'Class:SynchroDataSource/Attribute:user_id' => 'Utilisateur',
+	'Class:SynchroDataSource/Attribute:user_id+' => 'Seul cet utilisateur (et les administrateurs) peuvent exécuter cette synchronisation',
+	'Class:SynchroDataSource/Attribute:scope_class' => 'Type cible',
+	'Class:SynchroDataSource/Attribute:scope_class+' => 'Type d\'objets à synchroniser',
+	'Class:SynchroDataSource/Attribute:scope_restriction' => 'Restriction',
+	'Class:SynchroDataSource/Attribute:scope_restriction+' => '',
+	'Class:SynchroDataSource/Attribute:full_load_periodicity' => 'Obsolescence après',
+	'Class:SynchroDataSource/Attribute:full_load_periodicity+' => 'Un objet est considéré comme obsolète s\'il n\'apparaît pas dans les données au delà de cette durée',
+	'Class:SynchroDataSource/Attribute:reconciliation_policy' => 'Politique de recherche',
+	'Class:SynchroDataSource/Attribute:reconciliation_policy+' => '',
+	'Class:SynchroDataSource/Attribute:reconciliation_policy/Value:use_attributes' => 'Utiliser les champs',
+	'Class:SynchroDataSource/Attribute:reconciliation_policy/Value:use_attributes+' => '',
+	'Class:SynchroDataSource/Attribute:reconciliation_policy/Value:use_primary_key' => 'Utiliser la clé primaire',
+	'Class:SynchroDataSource/Attribute:reconciliation_policy/Value:use_primary_key+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_zero' => 'Action si zéro',
+	'Class:SynchroDataSource/Attribute:action_on_zero+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_zero/Value:create' => 'Créer',
+	'Class:SynchroDataSource/Attribute:action_on_zero/Value:create+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_zero/Value:error' => 'Erreur',
+	'Class:SynchroDataSource/Attribute:action_on_zero/Value:error+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_one' => 'Action si un',
+	'Class:SynchroDataSource/Attribute:action_on_one+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_one/Value:error' => 'Erreur',
+	'Class:SynchroDataSource/Attribute:action_on_one/Value:error+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_one/Value:update' => 'Mettre à jour',
+	'Class:SynchroDataSource/Attribute:action_on_one/Value:update+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_multiple' => 'Action si plusieurs',
+	'Class:SynchroDataSource/Attribute:action_on_multiple+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_multiple/Value:create' => 'Créer',
+	'Class:SynchroDataSource/Attribute:action_on_multiple/Value:create+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_multiple/Value:error' => 'Erreur',
+	'Class:SynchroDataSource/Attribute:action_on_multiple/Value:error+' => '',
+	'Class:SynchroDataSource/Attribute:action_on_multiple/Value:take_first' => 'Prendre le premier',
+	'Class:SynchroDataSource/Attribute:action_on_multiple/Value:take_first+' => '',
+	'Class:SynchroDataSource/Attribute:delete_policy' => 'Politique d\'effacement',
+	'Class:SynchroDataSource/Attribute:delete_policy+' => 'Façon dont sont traités les objets obsolètes',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:delete' => 'Effacer',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:delete+' => '',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:ignore' => 'Ignorer',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:ignore+' => '',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:update' => 'Mettre à jour',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:update+' => '',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:update_then_delete' => 'Mettre à jour puis effacer',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:update_then_delete+' => '',
+	'Class:SynchroDataSource/Attribute:delete_policy_update' => 'Mise à jour',
+	'Class:SynchroDataSource/Attribute:delete_policy_update+' => 'Format: nom_de_champ:valeur; ...',
+	'Class:SynchroDataSource/Attribute:delete_policy_retention' => 'Durée de rétention',
+	'Class:SynchroDataSource/Attribute:delete_policy_retention+' => 'Si la politique est \'Mettre à jour puis effacer\', les objets obsolètes sont encore conservés pendant cette durée avant d\'être effacés',
+	'Class:SynchroDataSource/Attribute:attribute_list' => 'Liste des champs',
+	'Class:SynchroDataSource/Attribute:attribute_list+' => '',
+	'Class:SynchroDataSource/Attribute:user_delete_policy' => 'Utilisateurs autorisés',
+	'Class:SynchroDataSource/Attribute:user_delete_policy+' => 'Quels utilisateurs sont autorisés à effacer des objets synchronisés',
+	'Class:SynchroDataSource/Attribute:user_delete_policy/Value:administrators' => 'Seulement les administrateurs',
+	'Class:SynchroDataSource/Attribute:user_delete_policy/Value:administrators+' => '',
+	'Class:SynchroDataSource/Attribute:user_delete_policy/Value:everybody' => 'Tous les utilisateurs autorisés',
+	'Class:SynchroDataSource/Attribute:user_delete_policy/Value:everybody+' => '',
+	'Class:SynchroDataSource/Attribute:user_delete_policy/Value:nobody' => 'Personne',
+	'Class:SynchroDataSource/Attribute:user_delete_policy/Value:nobody+' => '',
+	'Class:SynchroDataSource/Attribute:url_icon' => 'Icône (hyperlien)',
+	'Class:SynchroDataSource/Attribute:url_icon+' => 'Hyperlien vers une icône représentant l\'application source des données',
+	'Class:SynchroDataSource/Attribute:url_application' => 'Application (hyperlien)',
+	'Class:SynchroDataSource/Attribute:url_application+' => 'Un hyperlien vers l\'application source des données. Paramètres possibles: $this->nom_de_champ$ et $replica->primary_key$',
+	'Class:SynchroAttribute' => 'Champs de synchronisation',
+	'Class:SynchroAttribute+' => '',
+	'Class:SynchroAttribute/Attribute:sync_source_id' => 'Source de données',
+	'Class:SynchroAttribute/Attribute:sync_source_id+' => '',
+	'Class:SynchroAttribute/Attribute:attcode' => 'Champ',
+	'Class:SynchroAttribute/Attribute:attcode+' => '',
+	'Class:SynchroAttribute/Attribute:update' => 'Mise à jour',
+	'Class:SynchroAttribute/Attribute:update+' => '',
+	'Class:SynchroAttribute/Attribute:reconcile' => 'Recherche',
+	'Class:SynchroAttribute/Attribute:reconcile+' => '',
+	'Class:SynchroAttribute/Attribute:update_policy' => 'Politique de mise à jour',
+	'Class:SynchroAttribute/Attribute:update_policy+' => '',
+	'Class:SynchroAttribute/Attribute:update_policy/Value:master_locked' => 'Maître (verrouillé)',
+	'Class:SynchroAttribute/Attribute:update_policy/Value:master_locked+' => '',
+	'Class:SynchroAttribute/Attribute:update_policy/Value:master_unlocked' => 'Maître (non-verrouillé)',
+	'Class:SynchroAttribute/Attribute:update_policy/Value:master_unlocked+' => '',
+	'Class:SynchroAttribute/Attribute:update_policy/Value:write_if_empty' => 'Ecrire si le champ est vide',
+	'Class:SynchroAttribute/Attribute:update_policy/Value:write_if_empty+' => '',
+	'Class:SynchroAttribute/Attribute:finalclass' => 'Type',
+	'Class:SynchroAttribute/Attribute:finalclass+' => '',
+	'Class:SynchroAttExtKey' => 'Synchro Clé Externe',
+	'Class:SynchroAttExtKey+' => '',
+	'Class:SynchroAttExtKey/Attribute:reconciliation_attcode' => 'Champ',
+	'Class:SynchroAttExtKey/Attribute:reconciliation_attcode+' => '',
+	'Class:SynchroAttLinkSet' => 'Synchro Linkset',
+	'Class:SynchroAttLinkSet+' => '',
+	'Class:SynchroAttLinkSet/Attribute:row_separator' => 'Séparateur de colonnes',
+	'Class:SynchroAttLinkSet/Attribute:row_separator+' => '',
+	'Class:SynchroAttLinkSet/Attribute:attribute_separator' => 'Séparateur de champs',
+	'Class:SynchroAttLinkSet/Attribute:attribute_separator+' => '',
+	'Class:SynchroLog' => 'Journal de Synchro',
+	'Class:SynchroLog+' => '',
+	'Class:SynchroLog/Attribute:sync_source_id' => 'Source de données',
+	'Class:SynchroLog/Attribute:sync_source_id+' => '',
+	'Class:SynchroLog/Attribute:start_date' => 'Date/heure de début',
+	'Class:SynchroLog/Attribute:start_date+' => '',
+	'Class:SynchroLog/Attribute:end_date' => 'Date/heure de fin',
+	'Class:SynchroLog/Attribute:end_date+' => '',
+	'Class:SynchroLog/Attribute:status' => 'Etat',
+	'Class:SynchroLog/Attribute:status+' => '',
+	'Class:SynchroLog/Attribute:status/Value:completed' => 'Terminé Ok',
+	'Class:SynchroLog/Attribute:status/Value:completed+' => '',
+	'Class:SynchroLog/Attribute:status/Value:error' => 'Erreur',
+	'Class:SynchroLog/Attribute:status/Value:error+' => '',
+	'Class:SynchroLog/Attribute:status/Value:running' => 'En cours',
+	'Class:SynchroLog/Attribute:status/Value:running+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_replica_seen' => 'Nb de réplicas vus',
+	'Class:SynchroLog/Attribute:stats_nb_replica_seen+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_replica_total' => 'Nb total de réplicas',
+	'Class:SynchroLog/Attribute:stats_nb_replica_total+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_deleted' => 'Nb d\'objets effacés',
+	'Class:SynchroLog/Attribute:stats_nb_obj_deleted+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_deleted_errors' => 'Nb d\'erreurs lors de l\'effacement',
+	'Class:SynchroLog/Attribute:stats_nb_obj_deleted_errors+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted' => 'Nb d\'objets obsolètés',
+	'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted_errors' => 'Nb d\'erreurs lors de l\'obsolescence',
+	'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted_errors+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_created' => 'Nb d\'objets créés',
+	'Class:SynchroLog/Attribute:stats_nb_obj_created+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_created_errors' => 'Nb d\'erreurs lors de la création',
+	'Class:SynchroLog/Attribute:stats_nb_obj_created_errors+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_updated' => 'Nb d\'objets mis à jour',
+	'Class:SynchroLog/Attribute:stats_nb_obj_updated+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_updated_errors' => 'Nb d\\erreurs lors de la mise à jour',
+	'Class:SynchroLog/Attribute:stats_nb_obj_updated_errors+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_replica_reconciled_errors' => 'Nb d\'erreurs lors de la réconciliation',
+	'Class:SynchroLog/Attribute:stats_nb_replica_reconciled_errors+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_replica_disappeared_no_action' => 'Nb d\'objets disparus',
+	'Class:SynchroLog/Attribute:stats_nb_replica_disappeared_no_action+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_new_updated' => 'Nb d\'objets (nouveaux) mis à jour',
+	'Class:SynchroLog/Attribute:stats_nb_obj_new_updated+' => '',
+	'Class:SynchroLog/Attribute:stats_nb_obj_new_unchanged' => 'Nb d\'objets (nouveaux) inchangés',
+	'Class:SynchroLog/Attribute:stats_nb_obj_new_unchanged+' => '',
+	'Class:SynchroLog/Attribute:last_error' => 'Dernière erreur',
+	'Class:SynchroLog/Attribute:last_error+' => '',
+	'Class:SynchroLog/Attribute:traces' => 'Traces',
+	'Class:SynchroLog/Attribute:traces+' => '',
+	'Class:SynchroReplica' => 'Réplica de Synchronisation',
+	'Class:SynchroReplica+' => '',
+	'Class:SynchroReplica/Attribute:sync_source_id' => 'Source de données',
+	'Class:SynchroReplica/Attribute:sync_source_id+' => '',
+	'Class:SynchroReplica/Attribute:base_class' => 'Type de base',
+	'Class:SynchroReplica/Attribute:base_class+' => '',
+	'Class:SynchroReplica/Attribute:dest_id' => 'Objet destination',
+	'Class:SynchroReplica/Attribute:dest_id+' => '',
+	'Class:SynchroReplica/Attribute:dest_class' => 'Type de l\'objet',
+	'Class:SynchroReplica/Attribute:dest_class+' => '',
+	'Class:SynchroReplica/Attribute:status_last_seen' => 'Dernière détection',
+	'Class:SynchroReplica/Attribute:status_last_seen+' => '',
+	'Class:SynchroReplica/Attribute:status' => 'Etat',
+	'Class:SynchroReplica/Attribute:status+' => '',
+	'Class:SynchroReplica/Attribute:status/Value:modified' => 'Modifié',
+	'Class:SynchroReplica/Attribute:status/Value:modified+' => '',
+	'Class:SynchroReplica/Attribute:status/Value:new' => 'Nouveau',
+	'Class:SynchroReplica/Attribute:status/Value:new+' => '',
+	'Class:SynchroReplica/Attribute:status/Value:obsolete' => 'Obsolete',
+	'Class:SynchroReplica/Attribute:status/Value:obsolete+' => '',
+	'Class:SynchroReplica/Attribute:status/Value:orphan' => 'Orphelin',
+	'Class:SynchroReplica/Attribute:status/Value:orphan+' => '',
+	'Class:SynchroReplica/Attribute:status/Value:synchronized' => 'Synchronisé',
+	'Class:SynchroReplica/Attribute:status/Value:synchronized+' => '',
+	'Class:SynchroReplica/Attribute:status_dest_creator' => 'Créé par la source ?',
+	'Class:SynchroReplica/Attribute:status_dest_creator+' => '',
+	'Class:SynchroReplica/Attribute:status_last_error' => 'Dernière erreur',
+	'Class:SynchroReplica/Attribute:status_last_error+' => '',
+	'Class:SynchroReplica/Attribute:info_creation_date' => 'Date de création',
+	'Class:SynchroReplica/Attribute:info_creation_date+' => '',
+	'Class:SynchroReplica/Attribute:info_last_modified' => 'Date de dernière modification',
+	'Class:SynchroReplica/Attribute:info_last_modified+' => '',
+	'Class:appUserPreferences' => 'Préférences utilisateur',
+	'Class:appUserPreferences+' => '',
+	'Class:appUserPreferences/Attribute:userid' => 'Utilisateur',
+	'Class:appUserPreferences/Attribute:userid+' => '',
+	'Class:appUserPreferences/Attribute:preferences' => 'Préférences',
+	'Class:appUserPreferences/Attribute:preferences+' => '',
 	'Core:AttributeLinkedSet' => 'Objets liés (1-n)',
 	'Core:AttributeLinkedSet+' => 'Liste d\'objets d\'une classe donnée et pointant sur l\'objet courant',
-
 	'Core:AttributeLinkedSetIndirect' => 'Objets liés (1-n)',
 	'Core:AttributeLinkedSetIndirect+' => 'Liste d\'objets d\'une classe donnée et liés à l\'objet courant via une classe intermédiaire',
-
 	'Core:AttributeInteger' => 'Nombre entier',
 	'Core:AttributeInteger+' => 'Valeur numérique entière',
-
 	'Core:AttributeDecimal' => 'Nombre décimal',
 	'Core:AttributeDecimal+' => 'Valeur numérique décimale',
-
 	'Core:AttributeBoolean' => 'Booléen',
 	'Core:AttributeBoolean+' => 'Booléen',
-
 	'Core:AttributeString' => 'Chaîne de caractères',
 	'Core:AttributeString+' => 'Chaîne de caractères (limitée à une ligne)',
-
 	'Core:AttributeClass' => 'Classe',
 	'Core:AttributeClass+' => 'Classe d\'objets',
-
 	'Core:AttributeApplicationLanguage' => 'Langue',
 	'Core:AttributeApplicationLanguage+' => 'Codes langue et pays (EN US)',
-
 	'Core:AttributeFinalClass' => 'Classe',
 	'Core:AttributeFinalClass+' => 'Classe réelle de l\'objet (attribut créé automatiquement)',
-
 	'Core:AttributePassword' => 'Mot de passe',
 	'Core:AttributePassword+' => 'Mot de passe qui peut être lu en clair',
-
- 	'Core:AttributeEncryptedString' => 'Chaîne encryptée',
+	'Core:AttributeEncryptedString' => 'Chaîne encryptée',
 	'Core:AttributeEncryptedString+' => 'Chaîne encryptée avec une clé locale',
-
 	'Core:AttributeText' => 'Texte',
 	'Core:AttributeText+' => 'Chaîne de caractères de plusieurs lignes',
-
 	'Core:AttributeHTML' => 'HTML',
 	'Core:AttributeHTML+' => 'Texte formatté en HTML',
-
 	'Core:AttributeEmailAddress' => 'Adresse électronique',
 	'Core:AttributeEmailAddress+' => 'Adresse électronique (xxxx@yyy.zzz)',
-
 	'Core:AttributeIPAddress' => 'Adresse IP',
 	'Core:AttributeIPAddress+' => 'Adresse IP',
-
 	'Core:AttributeOQL' => 'Expression OQL',
-	'Core:AttributeOQL+' => 'Expression formattée en "Object Query Language"',
-
+	'Core:AttributeOQL+' => 'Expression formattée en \\\\\"Object Query Language\\\\\"',
 	'Core:AttributeEnum' => 'Enumération',
 	'Core:AttributeEnum+' => 'Valeur choisie parmi un liste de chaîne de caractères',
-
 	'Core:AttributeTemplateString' => 'Modèle de chaîne de caractères',
 	'Core:AttributeTemplateString+' => 'Chaîne de caractères d\'une ligne, contenant des espaces réservés pour des données iTop',
-
 	'Core:AttributeTemplateText' => 'Modèle de texte',
 	'Core:AttributeTemplateText+' => 'Texte contenant des espaces réservés pour des données iTop',
-
 	'Core:AttributeTemplateHTML' => 'Modèle HTML',
 	'Core:AttributeTemplateHTML+' => 'HTML contenant des espaces réservés pour des données iTop',
-
 	'Core:AttributeDateTime' => 'Date/heure',
 	'Core:AttributeDateTime+' => 'Date et heure (année-mois-jour hh:mm:ss)',
-
 	'Core:AttributeDate' => 'Date',
 	'Core:AttributeDate+' => 'Date (année-mois-jour)',
-
 	'Core:AttributeDeadline' => 'Délai',
 	'Core:AttributeDeadline+' => 'Date/heure exprimée relativement à l\'heure courante',
-
 	'Core:AttributeExternalKey' => 'Clé externe',
 	'Core:AttributeExternalKey+' => 'Clé externe',
-
 	'Core:AttributeExternalField' => 'Attribut externe',
 	'Core:AttributeExternalField+' => 'Copie de la valeur d\'un attribut de l\'objet lié par une clé externe',
-
 	'Core:AttributeURL' => 'URL',
 	'Core:AttributeURL+' => 'URL absolue ou relative',
-
 	'Core:AttributeBlob' => 'Blob',
 	'Core:AttributeBlob+' => 'Contenu binaire (document)',
-
-	'Core:AttributeOneWayPassword' => 'Mot de passe "one way"',
+	'Core:AttributeOneWayPassword' => 'Mot de passe \\\\\"one way\\\\\"',
 	'Core:AttributeOneWayPassword+' => 'Mot de passe qui peut être vérifié mais jamais lu en clair',
-
 	'Core:AttributeTable' => 'Table',
 	'Core:AttributeTable+' => 'Tableau à deux dimensions',
-
 	'Core:AttributePropertySet' => 'Propriétés',
 	'Core:AttributePropertySet+' => 'Liste de propriétés (nom et valeur) non typées',
-));
-
-
-//////////////////////////////////////////////////////////////////////
-// Classes in 'core/cmdb'
-//////////////////////////////////////////////////////////////////////
-//
-
-//
-// Class: CMDBChange
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:CMDBChange' => 'change',
-	'Class:CMDBChange+' => 'Changes tracking',
-	'Class:CMDBChange/Attribute:date' => 'date',
-	'Class:CMDBChange/Attribute:date+' => 'date and time at which the changes have been recorded',
-	'Class:CMDBChange/Attribute:userinfo' => 'misc. info',
-	'Class:CMDBChange/Attribute:userinfo+' => 'caller\'s defined information',
-));
-
-//
-// Class: CMDBChangeOp
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:CMDBChangeOp' => 'change operation',
-	'Class:CMDBChangeOp+' => 'Change operations tracking',
-	'Class:CMDBChangeOp/Attribute:change' => 'change',
-	'Class:CMDBChangeOp/Attribute:change+' => 'change',
-	'Class:CMDBChangeOp/Attribute:date' => 'date',
-	'Class:CMDBChangeOp/Attribute:date+' => 'date and time of the change',
-	'Class:CMDBChangeOp/Attribute:userinfo' => 'user',
-	'Class:CMDBChangeOp/Attribute:userinfo+' => 'who made this change',
-	'Class:CMDBChangeOp/Attribute:objclass' => 'object class',
-	'Class:CMDBChangeOp/Attribute:objclass+' => 'object class',
-	'Class:CMDBChangeOp/Attribute:objkey' => 'object id',
-	'Class:CMDBChangeOp/Attribute:objkey+' => 'object id',
-	'Class:CMDBChangeOp/Attribute:finalclass' => 'type',
-	'Class:CMDBChangeOp/Attribute:finalclass+' => '',
-));
-
-//
-// Class: CMDBChangeOpCreate
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:CMDBChangeOpCreate' => 'object creation',
-	'Class:CMDBChangeOpCreate+' => 'Object creation tracking',
-));
-
-//
-// Class: CMDBChangeOpDelete
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:CMDBChangeOpDelete' => 'object deletion',
-	'Class:CMDBChangeOpDelete+' => 'Object deletion tracking',
-));
-
-//
-// Class: CMDBChangeOpSetAttribute
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:CMDBChangeOpSetAttribute' => 'object change',
-	'Class:CMDBChangeOpSetAttribute+' => 'Object properties change tracking',
-	'Class:CMDBChangeOpSetAttribute/Attribute:attcode' => 'Attribute',
-	'Class:CMDBChangeOpSetAttribute/Attribute:attcode+' => 'code of the modified property',
-));
-
-//
-// Class: CMDBChangeOpSetAttributeScalar
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:CMDBChangeOpSetAttributeScalar' => 'property change',
-	'Class:CMDBChangeOpSetAttributeScalar+' => 'Object scalar properties change tracking',
-	'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue' => 'Previous value',
-	'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue+' => 'previous value of the attribute',
-	'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue' => 'New value',
-	'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue+' => 'new value of the attribute',
-));
-// Used by CMDBChangeOp... & derived classes
-Dict::Add('FR FR', 'French', 'Français', array(
 	'Change:ObjectCreated' => 'Elément créé',
 	'Change:ObjectDeleted' => 'Elément effacé',
 	'Change:ObjectModified' => 'Elément modifié',
@@ -207,276 +460,123 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Change:Text_AppendedTo_AttName' => '%1$s ajouté à %2$s',
 	'Change:AttName_Changed_PreviousValue_OldValue' => '%1$s modifié, ancienne valeur: %2$s',
 	'Change:AttName_Changed' => '%1$s modifié',
-));
-
-//
-// Class: CMDBChangeOpSetAttributeBlob
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:CMDBChangeOpSetAttributeBlob' => 'data change',
-	'Class:CMDBChangeOpSetAttributeBlob+' => 'data change tracking',
-	'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata' => 'Previous data',
-	'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata+' => 'previous contents of the attribute',
-));
-
-//
-// Class: CMDBChangeOpSetAttributeText
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:CMDBChangeOpSetAttributeText' => 'text change',
-	'Class:CMDBChangeOpSetAttributeText+' => 'text change tracking',
-	'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata' => 'Previous data',
-	'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata+' => 'previous contents of the attribute',
-));
-
-//
-// Class: Event
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:Event' => 'Log Event',
-	'Class:Event+' => 'An application internal event',
-	'Class:Event/Attribute:message' => 'message',
-	'Class:Event/Attribute:message+' => 'short description of the event',
-	'Class:Event/Attribute:date' => 'date',
-	'Class:Event/Attribute:date+' => 'date and time at which the changes have been recorded',
-	'Class:Event/Attribute:userinfo' => 'user info',
-	'Class:Event/Attribute:userinfo+' => 'identification of the user that was doing the action that triggered this event',
-	'Class:Event/Attribute:finalclass' => 'type',
-	'Class:Event/Attribute:finalclass+' => '',
-));
-
-//
-// Class: EventNotification
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:EventNotification' => 'Notification event',
-	'Class:EventNotification+' => 'Trace of a notification that has been sent',
-	'Class:EventNotification/Attribute:trigger_id' => 'Trigger',
-	'Class:EventNotification/Attribute:trigger_id+' => 'user account',
-	'Class:EventNotification/Attribute:action_id' => 'user',
-	'Class:EventNotification/Attribute:action_id+' => 'user account',
-	'Class:EventNotification/Attribute:object_id' => 'Object id',
-	'Class:EventNotification/Attribute:object_id+' => 'object id (class defined by the trigger ?)',
-));
-
-//
-// Class: EventNotificationEmail
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:EventNotificationEmail' => 'Email emission event',
-	'Class:EventNotificationEmail+' => 'Trace of an email that has been sent',
-	'Class:EventNotificationEmail/Attribute:to' => 'TO',
-	'Class:EventNotificationEmail/Attribute:to+' => 'TO',
-	'Class:EventNotificationEmail/Attribute:cc' => 'CC',
-	'Class:EventNotificationEmail/Attribute:cc+' => 'CC',
-	'Class:EventNotificationEmail/Attribute:bcc' => 'BCC',
-	'Class:EventNotificationEmail/Attribute:bcc+' => 'BCC',
-	'Class:EventNotificationEmail/Attribute:from' => 'From',
-	'Class:EventNotificationEmail/Attribute:from+' => 'Sender of the message',
-	'Class:EventNotificationEmail/Attribute:subject' => 'Subject',
-	'Class:EventNotificationEmail/Attribute:subject+' => 'Subject',
-	'Class:EventNotificationEmail/Attribute:body' => 'Body',
-	'Class:EventNotificationEmail/Attribute:body+' => 'Body',
-));
-
-//
-// Class: EventIssue
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:EventIssue' => 'Issue event',
-	'Class:EventIssue+' => 'Trace of an issue (warning, error, etc.)',
-	'Class:EventIssue/Attribute:issue' => 'Issue',
-	'Class:EventIssue/Attribute:issue+' => 'What happened',
-	'Class:EventIssue/Attribute:impact' => 'Impact',
-	'Class:EventIssue/Attribute:impact+' => 'What are the consequences',
-	'Class:EventIssue/Attribute:page' => 'Page',
-	'Class:EventIssue/Attribute:page+' => 'HTTP entry point',
-	'Class:EventIssue/Attribute:arguments_post' => 'Posted arguments',
-	'Class:EventIssue/Attribute:arguments_post+' => 'HTTP POST arguments',
-	'Class:EventIssue/Attribute:arguments_get' => 'URL arguments',
-	'Class:EventIssue/Attribute:arguments_get+' => 'HTTP GET arguments',
-	'Class:EventIssue/Attribute:callstack' => 'Callstack',
-	'Class:EventIssue/Attribute:callstack+' => 'Call stack',
-	'Class:EventIssue/Attribute:data' => 'Data',
-	'Class:EventIssue/Attribute:data+' => 'More information',
-));
-
-//
-// Class: EventWebService
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:EventWebService' => 'Web service event',
-	'Class:EventWebService+' => 'Trace of an web service call',
-	'Class:EventWebService/Attribute:verb' => 'Verb',
-	'Class:EventWebService/Attribute:verb+' => 'Name of the operation',
-	'Class:EventWebService/Attribute:result' => 'Result',
-	'Class:EventWebService/Attribute:result+' => 'Overall success/failure',
-	'Class:EventWebService/Attribute:log_info' => 'Info log',
-	'Class:EventWebService/Attribute:log_info+' => 'Result info log',
-	'Class:EventWebService/Attribute:log_warning' => 'Warning log',
-	'Class:EventWebService/Attribute:log_warning+' => 'Result warning log',
-	'Class:EventWebService/Attribute:log_error' => 'Error log',
-	'Class:EventWebService/Attribute:log_error+' => 'Result error log',
-	'Class:EventWebService/Attribute:data' => 'Data',
-	'Class:EventWebService/Attribute:data+' => 'Result data',
-));
-
-//
-// Class: Action
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:Action' => 'action',
-	'Class:Action+' => 'Custom action',
-	'Class:Action/Attribute:name' => 'Name',
-	'Class:Action/Attribute:name+' => 'label',
+	'Change:AttName_EntryAdded' => '%1$s champ modifié, une nouvelle entrée a été ajoutée',
+	'Class:Action' => 'Action',
+	'Class:Action+' => 'Action spécifique',
+	'Class:Action/Attribute:name' => 'Nom',
+	'Class:Action/Attribute:name+' => 'Label',
 	'Class:Action/Attribute:description' => 'Description',
-	'Class:Action/Attribute:description+' => 'one line description',
-	'Class:Action/Attribute:status' => 'Status',
-	'Class:Action/Attribute:status+' => 'In production or ?',
-	'Class:Action/Attribute:status/Value:test' => 'Being tested',
-	'Class:Action/Attribute:status/Value:test+' => 'Being tested',
-	'Class:Action/Attribute:status/Value:enabled' => 'In production',
-	'Class:Action/Attribute:status/Value:enabled+' => 'In production',
+	'Class:Action/Attribute:description+' => '',
+	'Class:Action/Attribute:status' => 'Etat',
+	'Class:Action/Attribute:status+' => '',
+	'Class:Action/Attribute:status/Value:test' => 'En test',
+	'Class:Action/Attribute:status/Value:test+' => '',
+	'Class:Action/Attribute:status/Value:enabled' => 'En production',
+	'Class:Action/Attribute:status/Value:enabled+' => '',
 	'Class:Action/Attribute:status/Value:disabled' => 'Inactive',
-	'Class:Action/Attribute:status/Value:disabled+' => 'Inactive',
-	'Class:Action/Attribute:trigger_list' => 'Related Triggers',
-	'Class:Action/Attribute:trigger_list+' => 'Triggers linked to this action',
+	'Class:Action/Attribute:status/Value:disabled+' => '',
+	'Class:Action/Attribute:trigger_list' => 'Déclencheurs liés',
+	'Class:Action/Attribute:trigger_list+' => '',
 	'Class:Action/Attribute:finalclass' => 'Type',
 	'Class:Action/Attribute:finalclass+' => '',
-));
-
-//
-// Class: ActionNotification
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:ActionNotification' => 'notification',
-	'Class:ActionNotification+' => 'Notification (abstract)',
-));
-
-//
-// Class: ActionEmail
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:ActionEmail' => 'email notification',
-	'Class:ActionEmail+' => 'Action: Email notification',
-	'Class:ActionEmail/Attribute:test_recipient' => 'Test recipient',
-	'Class:ActionEmail/Attribute:test_recipient+' => 'Detination in case status is set to "Test"',
-	'Class:ActionEmail/Attribute:from' => 'From',
-	'Class:ActionEmail/Attribute:from+' => 'Will be sent into the email header',
-	'Class:ActionEmail/Attribute:reply_to' => 'Reply to',
-	'Class:ActionEmail/Attribute:reply_to+' => 'Will be sent into the email header',
-	'Class:ActionEmail/Attribute:to' => 'To',
-	'Class:ActionEmail/Attribute:to+' => 'Destination of the email',
-	'Class:ActionEmail/Attribute:cc' => 'Cc',
-	'Class:ActionEmail/Attribute:cc+' => 'Carbon Copy',
-	'Class:ActionEmail/Attribute:bcc' => 'bcc',
-	'Class:ActionEmail/Attribute:bcc+' => 'Blind Carbon Copy',
-	'Class:ActionEmail/Attribute:subject' => 'subject',
-	'Class:ActionEmail/Attribute:subject+' => 'Title of the email',
-	'Class:ActionEmail/Attribute:body' => 'body',
-	'Class:ActionEmail/Attribute:body+' => 'Contents of the email',
-	'Class:ActionEmail/Attribute:importance' => 'importance',
-	'Class:ActionEmail/Attribute:importance+' => 'Importance flag',
-	'Class:ActionEmail/Attribute:importance/Value:low' => 'low',
-	'Class:ActionEmail/Attribute:importance/Value:low+' => 'low',
-	'Class:ActionEmail/Attribute:importance/Value:normal' => 'normal',
-	'Class:ActionEmail/Attribute:importance/Value:normal+' => 'normal',
-	'Class:ActionEmail/Attribute:importance/Value:high' => 'high',
-	'Class:ActionEmail/Attribute:importance/Value:high+' => 'high',
-));
-
-//
-// Class: Trigger
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
+	'Class:ActionNotification+' => '',
 	'Class:Trigger' => 'trigger',
-	'Class:Trigger+' => 'Custom event handler',
+	'Class:Trigger+' => '',
 	'Class:Trigger/Attribute:description' => 'Description',
-	'Class:Trigger/Attribute:description+' => 'one line description',
-	'Class:Trigger/Attribute:action_list' => 'Triggered actions',
-	'Class:Trigger/Attribute:action_list+' => 'Actions performed when the trigger is activated',
+	'Class:Trigger/Attribute:description+' => '',
+	'Class:Trigger/Attribute:action_list' => 'Actions déclenchées',
+	'Class:Trigger/Attribute:action_list+' => '',
 	'Class:Trigger/Attribute:finalclass' => 'Type',
 	'Class:Trigger/Attribute:finalclass+' => '',
-));
-
-//
-// Class: TriggerOnObject
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:TriggerOnObject' => 'Trigger on a class of objects',
-	'Class:TriggerOnObject+' => 'Trigger on a given class of objects',
-	'Class:TriggerOnObject/Attribute:target_class' => 'Target class',
+	'Class:TriggerOnObject+' => '',
+	'Class:TriggerOnObject/Attribute:target_class' => 'Classe cible',
 	'Class:TriggerOnObject/Attribute:target_class+' => 'label',
-));
-
-//
-// Class: TriggerOnStateChange
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:TriggerOnStateChange' => 'Trigger on object state change',
-	'Class:TriggerOnStateChange+' => 'Trigger on object state change',
-	'Class:TriggerOnStateChange/Attribute:state' => 'State',
+	'Class:TriggerOnStateChange+' => '',
+	'Class:TriggerOnStateChange/Attribute:state' => 'Etat',
 	'Class:TriggerOnStateChange/Attribute:state+' => 'label',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:never' => 'Personne',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:depends' => 'Uniquement les administrateurs',
+	'Class:SynchroDataSource/Attribute:delete_policy/Value:always' => 'Tous les utilisateurs autorisés',
+	'SynchroDataSource:Description' => 'Description',
+	'SynchroDataSource:Reconciliation' => 'Recherche et réconciliation',
+	'SynchroDataSource:Deletion' => 'Règles d\'effacement',
+	'SynchroDataSource:Status' => 'Etat',
+	'SynchroDataSource:Information' => 'Information',
+	'SynchroDataSource:Definition' => 'Définition',
+	'Core:SynchroAttributes' => 'Champs',
+	'Core:SynchroStatus' => 'Etat',
+	'Core:Synchro:ErrorsLabel' => 'Erreurs',
+	'Core:Synchro:CreatedLabel' => 'Créations',
+	'Core:Synchro:ModifiedLabel' => 'Modifications',
+	'Core:Synchro:UnchangedLabel' => 'Sans changement',
+	'Core:Synchro:ReconciledErrorsLabel' => 'Erreurs',
+	'Core:Synchro:ReconciledLabel' => 'Trouvés',
+	'Core:Synchro:ReconciledNewLabel' => 'Créations',
+	'Core:SynchroReconcile:Yes' => 'Oui',
+	'Core:SynchroReconcile:No' => 'Non',
+	'Core:SynchroUpdate:Yes' => 'Oui',
+	'Core:SynchroUpdate:No' => 'Non',
+	'Core:Synchro:LastestStatus' => 'Dernier état',
+	'Core:Synchro:History' => 'Historique de synchronisation',
+	'Core:Synchro:NeverRun' => 'Aucun historique, la synchronisation n\'a pas encore fonctionné',
+	'Core:Synchro:SynchroEndedOn_Date' => 'La dernière synchronisation s\'est terminée à: %1$s.',
+	'Core:Synchro:SynchroRunningStartedOn_Date' => 'Synchronisation en cours (début à $1$s)',
+	'Menu:DataSources' => 'Synchronisation',
+	'Menu:DataSources+' => '',
+	'Core:Synchro:label_repl_ignored' => 'Ignorés (%1$s)',
+	'Core:Synchro:label_repl_disappeared' => 'Disparus (%1$s)',
+	'Core:Synchro:label_repl_existing' => 'Existants (%1$s)',
+	'Core:Synchro:label_repl_new' => 'Nouveau (%1$s)',
+	'Core:Synchro:label_obj_deleted' => 'Effacés (%1$s)',
+	'Core:Synchro:label_obj_obsoleted' => 'Obsoletés (%1$s)',
+	'Core:Synchro:label_obj_disappeared_errors' => 'Erreurs (%1$s)',
+	'Core:Synchro:label_obj_disappeared_no_action' => 'Aucune action (%1$s)',
+	'Core:Synchro:label_obj_unchanged' => 'Sans changement (%1$s)',
+	'Core:Synchro:label_obj_updated' => 'Mis à jour (%1$s)',
+	'Core:Synchro:label_obj_updated_errors' => 'Erreurs (%1$s)',
+	'Core:Synchro:label_obj_new_unchanged' => 'Sans changement (%1$s)',
+	'Core:Synchro:label_obj_new_updated' => 'Mis à jour (%1$s)',
+	'Core:Synchro:label_obj_created' => 'Créations (%1$s)',
+	'Core:Synchro:label_obj_new_errors' => 'Erreurs (%1$s)',
+	'Core:SynchroLogTitle' => '%1$s - %2$s',
+	'Core:Synchro:Nb_Replica' => 'Replica traités: %1$s',
+	'Core:Synchro:Nb_Class:Objects' => '%1$s: %2$s',
+	'Class:SynchroDataSource/Error:AtLeastOneReconciliationKeyMustBeSpecified' => 'Si la politique de réconciliation n\'est pas la clé primaire, au moins une clé de recherche doit être spécifiée',
+	'Class:SynchroDataSource/Error:DeleteRetentionDurationMustBeSpecified' => 'Pour que les objets soient effacés après avoir été obsoletés, il faut spécifier une durée de rétention',
+	'Class:SynchroDataSource/Error:DeletePolicyUpdateMustBeSpecified' => 'Les objets obsolètes doivent être mis à jour, mais aucune information de mise à jour n\'est spécifiée',
+	'Core:SynchroReplica:PublicData' => 'Données synchronisées',
+	'Core:SynchroReplica:PrivateDetails' => 'Informations internes',
+	'Core:SynchroReplica:BackToDataSource' => 'Retourner aux détails de la source de données: %1$s',
+	'Core:SynchroReplica:ListOfReplicas' => 'Liste des réplica',
+	'Core:SynchroAttExtKey:ReconciliationById' => 'id (clé primaire)',
+	'Core:SynchroAtt:attcode' => 'Champ',
+	'Core:SynchroAtt:attcode+' => '',
+	'Core:SynchroAtt:reconciliation' => 'Réconciliation ?',
+	'Core:SynchroAtt:reconciliation+' => '',
+	'Core:SynchroAtt:update' => 'Mise  jour ?',
+	'Core:SynchroAtt:update+' => '',
+	'Core:SynchroAtt:update_policy' => 'Politique de mise à jour',
+	'Core:SynchroAtt:update_policy+' => '',
+	'Core:SynchroAtt:reconciliation_attcode' => 'Clé de recherche',
+	'Core:SynchroAtt:reconciliation_attcode+' => '',
+	'Core:SyncDataExchangeComment' => '(Synhcronisation)',
+	'Core:Synchro:ListOfDataSources' => 'Sources de données:',
+	'Core:Synchro:LastSynchro' => 'Dernière synchronisation:',
+	'Core:Synchro:ThisObjectIsSynchronized' => 'Cet objet est synchronisé avec une source de données',
+	'Core:Synchro:TheObjectWasCreatedBy_Source' => 'Cet objet a été <b>créé</b> par la source de données %1$s',
+	'Core:Synchro:TheObjectCanBeDeletedBy_Source' => 'Cet objet <b>peut être effacé/b> par la source de données %1$s',
+	'Core:Synchro:TheObjectCannotBeDeletedByUser_Source' => 'Vous <b>ne pouvez pas effacer</b> cet objet car il est géré par le source de données %1$s',
+	'TitleSynchroExecution' => 'Exécution de la synchronisation',
+	'Class:SynchroDataSource:DataTable' => 'Table contenant les données: %1$s',
+	'Core:SyncDataSourceObsolete' => 'Cette source de données est obsolète. Opération annulée.',
+	'Core:SyncDataSourceAccessRestriction' => 'Seuls les administrateurs et l\'utilisateur spécifié dans la source de données peuvent exécuter cette synchronisation. Opération annulée.',
+	'Core:SyncTooManyMissingReplicas' => 'Tous les réplicas sont absents de l\'import. L\'import a-t-il réellement tourné. Opération annulée.',
+	'Core:Duration_Seconds' => '%1$ds',
+	'Core:Duration_Minutes_Seconds' => '%1$dmin %2$ds',
+	'Core:Duration_Hours_Minutes_Seconds' => '%1$dh %2$dmin %3$ds',
+	'Core:Duration_Days_Hours_Minutes_Seconds' => '%1$sj %2$dh %3$dmin %4$ds',
 ));
-
-//
-// Class: TriggerOnStateEnter
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:TriggerOnStateEnter' => 'Trigger on object entering a state',
-	'Class:TriggerOnStateEnter+' => 'Trigger on object state change - entering',
-));
-
-//
-// Class: TriggerOnStateLeave
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:TriggerOnStateLeave' => 'Trigger on object leaving a state',
-	'Class:TriggerOnStateLeave+' => 'Trigger on object state change - leaving',
-));
-
-//
-// Class: TriggerOnObjectCreate
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:TriggerOnObjectCreate' => 'Trigger on object creation',
-	'Class:TriggerOnObjectCreate+' => 'Trigger on object creation of [a child class of] the given class',
-));
-
-//
-// Class: lnkTriggerAction
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:lnkTriggerAction' => 'Actions-Trigger',
-	'Class:lnkTriggerAction+' => 'Link between a trigger and an action',
-	'Class:lnkTriggerAction/Attribute:action_id' => 'Action',
-	'Class:lnkTriggerAction/Attribute:action_id+' => 'The action to be executed',
-	'Class:lnkTriggerAction/Attribute:action_name' => 'Action Name',
-	'Class:lnkTriggerAction/Attribute:action_name+' => 'Name of the action',
-	'Class:lnkTriggerAction/Attribute:trigger_id' => 'Trigger',
-	'Class:lnkTriggerAction/Attribute:trigger_id+' => 'Trigger',
-	'Class:lnkTriggerAction/Attribute:trigger_name' => 'Trigger Name',
-	'Class:lnkTriggerAction/Attribute:trigger_name+' => 'Name of the trigger',
-	'Class:lnkTriggerAction/Attribute:order' => 'Order',
-	'Class:lnkTriggerAction/Attribute:order+' => 'Actions execution order',
-));
-
-
-?>
+?>

+ 169 - 298
dictionaries/fr.dictionary.itop.ui.php

@@ -15,46 +15,12 @@
 //   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 /**
- * Localized data
- *
  * @author      Erwan Taloc <erwan.taloc@combodo.com>
  * @author      Romain Quetiez <romain.quetiez@combodo.com>
  * @author      Denis Flaven <denis.flaven@combodo.com>
  * @license     http://www.opensource.org/licenses/gpl-3.0.html LGPL
  */
 
-
-//////////////////////////////////////////////////////////////////////
-// Classes in 'gui'
-//////////////////////////////////////////////////////////////////////
-//
-
-//////////////////////////////////////////////////////////////////////
-// Classes in 'application'
-//////////////////////////////////////////////////////////////////////
-//
-
-//
-// Class: AuditCategory
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:AuditCategory' => 'Catégorie d\'audit',
-	'Class:AuditCategory+' => 'A section inside the overall audit',
-	'Class:AuditCategory/Attribute:name' => 'Nom',
-	'Class:AuditCategory/Attribute:name+' => 'Nom raccourci',
-	'Class:AuditCategory/Attribute:description' => 'Description',
-	'Class:AuditCategory/Attribute:description+' => 'Description',
-	'Class:AuditCategory/Attribute:definition_set' => 'Ensemble de définition',
-	'Class:AuditCategory/Attribute:definition_set+' => 'Expression OQL qui défini le périmètre d\'application de l\'audit',
-	'Class:AuditCategory/Attribute:rules_list' => 'Règles d\'audit',
-	'Class:AuditCategory/Attribute:rules_list+' => 'Règles d\'audit pour cette catégorie',
-));
-
-//
-// Class: AuditRule
-//
-
 Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:AuditRule' => 'Règle d\'audit',
 	'Class:AuditRule+' => '',
@@ -66,60 +32,24 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:AuditRule/Attribute:query+' => 'Expression OQL de calcul des éléments incorrects',
 	'Class:AuditRule/Attribute:valid_flag' => 'Interprétation',
 	'Class:AuditRule/Attribute:valid_flag+' => 'La requête définit-elle les éléments valides ?',
-	'Class:AuditRule/Attribute:valid_flag/Value:true' => 'Objets valides',
-	'Class:AuditRule/Attribute:valid_flag/Value:true+' => '',
 	'Class:AuditRule/Attribute:valid_flag/Value:false' => 'Objets incorrects',
 	'Class:AuditRule/Attribute:valid_flag/Value:false+' => '',
+	'Class:AuditRule/Attribute:valid_flag/Value:true' => 'Objets valides',
+	'Class:AuditRule/Attribute:valid_flag/Value:true+' => '',
 	'Class:AuditRule/Attribute:category_id' => 'Catégorie',
 	'Class:AuditRule/Attribute:category_id+' => '',
 	'Class:AuditRule/Attribute:category_name' => 'Category',
 	'Class:AuditRule/Attribute:category_name+' => '',
-));
-
-//////////////////////////////////////////////////////////////////////
-// Classes in 'addon/userrights'
-//////////////////////////////////////////////////////////////////////
-//
-
-//
-// Class: User
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:User' => 'Utilisateur',
-	'Class:User+' => 'Compte utilisateur',
-	'Class:User/Attribute:finalclass' => 'Type de compte',
-	'Class:User/Attribute:finalclass+' => '',
-	'Class:User/Attribute:contactid' => 'Contact (personne)',
-	'Class:User/Attribute:contactid+' => '',
-	'Class:User/Attribute:last_name' => 'Nom',
-	'Class:User/Attribute:last_name+' => '',
-	'Class:User/Attribute:first_name' => 'Prénom',
-	'Class:User/Attribute:first_name+' => '',
-	'Class:User/Attribute:email' => 'Adresse email',
-	'Class:User/Attribute:email+' => '',
-	'Class:User/Attribute:login' => 'Login',
-	'Class:User/Attribute:login+' => '',
-	'Class:User/Attribute:language' => 'Langue',
-	'Class:User/Attribute:language+' => '',
-	'Class:User/Attribute:language/Value:EN US' => 'Anglais',
-	'Class:User/Attribute:language/Value:EN US+' => 'Anglais (Etats-unis)',
-	'Class:User/Attribute:language/Value:FR FR' => 'Français',
-	'Class:User/Attribute:language/Value:FR FR+' => 'Français (France)',
-	'Class:User/Attribute:profile_list' => 'Profils',
-	'Class:User/Attribute:profile_list+' => 'Rôles, ouvrants les droits d\'accès',
-	'Class:User/Attribute:allowed_org_list' => 'Organisations permises',
-	'Class:User/Attribute:allowed_org_list+' => 'L\'utilisateur a le droit de voir les données des organisations listées ici. Si aucune organisation n\'est spécifiée, alors aucune restriction ne s\'applique.',
-
-	'Class:User/Error:LoginMustBeUnique' => 'Le login doit être unique - "%1s" est déjà utilisé.',
-	'Class:User/Error:AtLeastOneProfileIsNeeded' => 'L\'utilisateur doit avoir au moins un profil.',
-));
-
-//
-// Class: URP_Profiles
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
+	'Class:AuditCategory' => 'Catégorie d\'audit',
+	'Class:AuditCategory+' => 'A section inside the overall audit',
+	'Class:AuditCategory/Attribute:name' => 'Nom',
+	'Class:AuditCategory/Attribute:name+' => 'Nom raccourci',
+	'Class:AuditCategory/Attribute:description' => 'Description',
+	'Class:AuditCategory/Attribute:description+' => 'Description',
+	'Class:AuditCategory/Attribute:definition_set' => 'Ensemble de définition',
+	'Class:AuditCategory/Attribute:definition_set+' => 'Expression OQL qui défini le périmètre d\'application de l\'audit',
+	'Class:AuditCategory/Attribute:rules_list' => 'Règles d\'audit',
+	'Class:AuditCategory/Attribute:rules_list+' => 'Règles d\'audit pour cette catégorie',
 	'Class:URP_Profiles' => 'Profil',
 	'Class:URP_Profiles+' => 'Profil utilisateur',
 	'Class:URP_Profiles/Attribute:name' => 'Nom',
@@ -128,28 +58,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_Profiles/Attribute:description+' => '',
 	'Class:URP_Profiles/Attribute:user_list' => 'Utilisateurs',
 	'Class:URP_Profiles/Attribute:user_list+' => 'Comptes utilisateur (logins) ayant ce profil',
-));
-
-//
-// Class: URP_Dimensions
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:URP_Dimensions' => 'Dimension',
-	'Class:URP_Dimensions+' => 'Dimension applicative (défini des silos)',
-	'Class:URP_Dimensions/Attribute:name' => 'Nom',
-	'Class:URP_Dimensions/Attribute:name+' => '',
-	'Class:URP_Dimensions/Attribute:description' => 'Description',
-	'Class:URP_Dimensions/Attribute:description+' => '',
-	'Class:URP_Dimensions/Attribute:type' => 'Type',
-	'Class:URP_Dimensions/Attribute:type+' => 'Nom de classe ou type de données (unité de projection)',
-));
-
-//
-// Class: URP_UserProfile
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_UserProfile' => 'Utilisateur/Profil',
 	'Class:URP_UserProfile+' => '',
 	'Class:URP_UserProfile/Attribute:userid' => 'Utilisateur',
@@ -162,13 +70,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_UserProfile/Attribute:profile+' => '',
 	'Class:URP_UserProfile/Attribute:reason' => 'Raison',
 	'Class:URP_UserProfile/Attribute:reason+' => 'Justifie le rôle affecté à cet utilisateur',
-));
-
-//
-// Class: URP_UserOrg
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_UserOrg' => 'Utilisateur/Organisation',
 	'Class:URP_UserOrg+' => 'Organizations permises pour l\'utilisateur',
 	'Class:URP_UserOrg/Attribute:userid' => 'Utilisateur',
@@ -181,53 +82,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_UserOrg/Attribute:allowed_org_name+' => '',
 	'Class:URP_UserOrg/Attribute:reason' => 'Raison',
 	'Class:URP_UserOrg/Attribute:reason+' => 'Justifie la permission de voir les données de cette organisation',
-));
-
-//
-// Class: URP_ProfileProjection
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:URP_ProfileProjection' => 'profile_projection',
-	'Class:URP_ProfileProjection+' => 'profile projections',
-	'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimension',
-	'Class:URP_ProfileProjection/Attribute:dimensionid+' => 'application dimension',
-	'Class:URP_ProfileProjection/Attribute:dimension' => 'Dimension',
-	'Class:URP_ProfileProjection/Attribute:dimension+' => 'application dimension',
-	'Class:URP_ProfileProjection/Attribute:profileid' => 'Profile',
-	'Class:URP_ProfileProjection/Attribute:profileid+' => 'usage profile',
-	'Class:URP_ProfileProjection/Attribute:profile' => 'Profile',
-	'Class:URP_ProfileProjection/Attribute:profile+' => 'Profile name',
-	'Class:URP_ProfileProjection/Attribute:value' => 'Value expression',
-	'Class:URP_ProfileProjection/Attribute:value+' => 'OQL expression (using $user) | constant |  | +attribute code',
-	'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribute',
-	'Class:URP_ProfileProjection/Attribute:attribute+' => 'Target attribute code (optional)',
-));
-
-//
-// Class: URP_ClassProjection
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
-	'Class:URP_ClassProjection' => 'class_projection',
-	'Class:URP_ClassProjection+' => 'class projections',
-	'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimension',
-	'Class:URP_ClassProjection/Attribute:dimensionid+' => 'application dimension',
-	'Class:URP_ClassProjection/Attribute:dimension' => 'Dimension',
-	'Class:URP_ClassProjection/Attribute:dimension+' => 'application dimension',
-	'Class:URP_ClassProjection/Attribute:class' => 'Class',
-	'Class:URP_ClassProjection/Attribute:class+' => 'Target class',
-	'Class:URP_ClassProjection/Attribute:value' => 'Value expression',
-	'Class:URP_ClassProjection/Attribute:value+' => 'OQL expression (using $this) | constant |  | +attribute code',
-	'Class:URP_ClassProjection/Attribute:attribute' => 'Attribute',
-	'Class:URP_ClassProjection/Attribute:attribute+' => 'Target attribute code (optional)',
-));
-
-//
-// Class: URP_ActionGrant
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_ActionGrant' => 'action_permission',
 	'Class:URP_ActionGrant+' => 'permissions on classes',
 	'Class:URP_ActionGrant/Attribute:profileid' => 'Profile',
@@ -238,19 +92,12 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_ActionGrant/Attribute:class+' => 'Target class',
 	'Class:URP_ActionGrant/Attribute:permission' => 'Permission',
 	'Class:URP_ActionGrant/Attribute:permission+' => 'allowed or not allowed?',
-	'Class:URP_ActionGrant/Attribute:permission/Value:yes' => 'yes',
-	'Class:URP_ActionGrant/Attribute:permission/Value:yes+' => 'yes',
 	'Class:URP_ActionGrant/Attribute:permission/Value:no' => 'no',
 	'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'no',
+	'Class:URP_ActionGrant/Attribute:permission/Value:yes' => 'yes',
+	'Class:URP_ActionGrant/Attribute:permission/Value:yes+' => 'yes',
 	'Class:URP_ActionGrant/Attribute:action' => 'Action',
 	'Class:URP_ActionGrant/Attribute:action+' => 'operations to perform on the given class',
-));
-
-//
-// Class: URP_StimulusGrant
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_StimulusGrant' => 'stimulus_permission',
 	'Class:URP_StimulusGrant+' => 'permissions on stimilus in the life cycle of the object',
 	'Class:URP_StimulusGrant/Attribute:profileid' => 'Profile',
@@ -261,38 +108,83 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_StimulusGrant/Attribute:class+' => 'Target class',
 	'Class:URP_StimulusGrant/Attribute:permission' => 'Permission',
 	'Class:URP_StimulusGrant/Attribute:permission+' => 'allowed or not allowed?',
-	'Class:URP_StimulusGrant/Attribute:permission/Value:yes' => 'yes',
-	'Class:URP_StimulusGrant/Attribute:permission/Value:yes+' => 'yes',
 	'Class:URP_StimulusGrant/Attribute:permission/Value:no' => 'no',
 	'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'no',
+	'Class:URP_StimulusGrant/Attribute:permission/Value:yes' => 'yes',
+	'Class:URP_StimulusGrant/Attribute:permission/Value:yes+' => 'yes',
 	'Class:URP_StimulusGrant/Attribute:stimulus' => 'Stimulus',
 	'Class:URP_StimulusGrant/Attribute:stimulus+' => 'stimulus code',
-));
-
-//
-// Class: URP_AttributeGrant
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:URP_AttributeGrant' => 'attribute_permission',
 	'Class:URP_AttributeGrant+' => 'permissions at the attributes level',
 	'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Action grant',
 	'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'action grant',
 	'Class:URP_AttributeGrant/Attribute:attcode' => 'Attribute',
 	'Class:URP_AttributeGrant/Attribute:attcode+' => 'attribute code',
-));
-
-//
-// String from the User Interface: menu, messages, buttons, etc...
-//
-
-Dict::Add('FR FR', 'French', 'Français', array(
+	'Class:User' => 'Utilisateur',
+	'Class:User+' => 'Compte utilisateur',
+	'Class:User/Attribute:finalclass' => 'Type de compte',
+	'Class:User/Attribute:finalclass+' => '',
+	'Class:User/Attribute:contactid' => 'Contact (personne)',
+	'Class:User/Attribute:contactid+' => '',
+	'Class:User/Attribute:last_name' => 'Nom',
+	'Class:User/Attribute:last_name+' => '',
+	'Class:User/Attribute:first_name' => 'Prénom',
+	'Class:User/Attribute:first_name+' => '',
+	'Class:User/Attribute:email' => 'Adresse email',
+	'Class:User/Attribute:email+' => '',
+	'Class:User/Attribute:login' => 'Login',
+	'Class:User/Attribute:login+' => '',
+	'Class:User/Attribute:language' => 'Langue',
+	'Class:User/Attribute:language+' => '',
+	'Class:User/Attribute:language/Value:EN US' => 'Anglais',
+	'Class:User/Attribute:language/Value:EN US+' => 'Anglais (Etats-unis)',
+	'Class:User/Attribute:language/Value:FR FR' => 'Français',
+	'Class:User/Attribute:language/Value:FR FR+' => 'Français (France)',
+	'Class:User/Attribute:profile_list' => 'Profils',
+	'Class:User/Attribute:profile_list+' => 'Rôles, ouvrants les droits d\'accès',
+	'Class:User/Attribute:allowed_org_list' => 'Organisations permises',
+	'Class:User/Attribute:allowed_org_list+' => 'L\'utilisateur a le droit de voir les données des organisations listées ici. Si aucune organisation n\'est spécifiée, alors aucune restriction ne s\'applique.',
+	'Class:User/Error:LoginMustBeUnique' => 'Le login doit être unique - \\\"%1s\\\" est déjà utilisé.',
+	'Class:User/Error:AtLeastOneProfileIsNeeded' => 'L\'utilisateur doit avoir au moins un profil.',
+	'Class:URP_Dimensions' => 'Dimension',
+	'Class:URP_Dimensions+' => 'Dimension applicative (défini des silos)',
+	'Class:URP_Dimensions/Attribute:name' => 'Nom',
+	'Class:URP_Dimensions/Attribute:name+' => '',
+	'Class:URP_Dimensions/Attribute:description' => 'Description',
+	'Class:URP_Dimensions/Attribute:description+' => '',
+	'Class:URP_Dimensions/Attribute:type' => 'Type',
+	'Class:URP_Dimensions/Attribute:type+' => 'Nom de classe ou type de données (unité de projection)',
+	'Class:URP_ProfileProjection' => 'profile_projection',
+	'Class:URP_ProfileProjection+' => 'profile projections',
+	'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimension',
+	'Class:URP_ProfileProjection/Attribute:dimensionid+' => 'application dimension',
+	'Class:URP_ProfileProjection/Attribute:dimension' => 'Dimension',
+	'Class:URP_ProfileProjection/Attribute:dimension+' => 'application dimension',
+	'Class:URP_ProfileProjection/Attribute:profileid' => 'Profile',
+	'Class:URP_ProfileProjection/Attribute:profileid+' => 'usage profile',
+	'Class:URP_ProfileProjection/Attribute:profile' => 'Profile',
+	'Class:URP_ProfileProjection/Attribute:profile+' => 'Profile name',
+	'Class:URP_ProfileProjection/Attribute:value' => 'Value expression',
+	'Class:URP_ProfileProjection/Attribute:value+' => 'OQL expression (using $user) | constant |  | +attribute code',
+	'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribute',
+	'Class:URP_ProfileProjection/Attribute:attribute+' => 'Target attribute code (optional)',
+	'Class:URP_ClassProjection' => 'class_projection',
+	'Class:URP_ClassProjection+' => 'class projections',
+	'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimension',
+	'Class:URP_ClassProjection/Attribute:dimensionid+' => 'application dimension',
+	'Class:URP_ClassProjection/Attribute:dimension' => 'Dimension',
+	'Class:URP_ClassProjection/Attribute:dimension+' => 'application dimension',
+	'Class:URP_ClassProjection/Attribute:class' => 'Class',
+	'Class:URP_ClassProjection/Attribute:class+' => 'Target class',
+	'Class:URP_ClassProjection/Attribute:value' => 'Value expression',
+	'Class:URP_ClassProjection/Attribute:value+' => 'OQL expression (using $this) | constant |  | +attribute code',
+	'Class:URP_ClassProjection/Attribute:attribute' => 'Attribute',
+	'Class:URP_ClassProjection/Attribute:attribute+' => 'Target attribute code (optional)',
 	'Menu:WelcomeMenu' => 'Bienvenue',
 	'Menu:WelcomeMenu+' => 'Bienvenue dans iTop',
 	'Menu:WelcomeMenuPage' => 'Bienvenue',
 	'Menu:WelcomeMenuPage+' => 'Bienvenue dans iTop',
 	'UI:WelcomeMenu:Title' => 'Bienvenue dans iTop',
-
 	'UI:WelcomeMenu:LeftBlock' => '<p>iTop est un portail opérationnel complet et libre pour gérer votre SI.</p>
 <ul>il contient:
 <li>Une base de gestion des configuration (CMDB - Configuration management database) pour documenter et gérer votre parc informatique.</li>
@@ -303,7 +195,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
 <li>Des tableaux de bord pour avoir rapidement une vue synthétique de votre SI.</li>
 </ul>
 <p>Tous ces modules peuvent être installés séparément, à votre rythme.</p>',
-
 	'UI:WelcomeMenu:RightBlock' => '<p>iTop a été conçu pour les fournisseurs de service, il permet à vos équipes IT de gérer facilement de multiples clients et organisations.
 <ul>iTop fournit un riche ensemble de processus métier&nbsp;pour:
 <li>Augmenter l\'efficacité de la gestion de votre SI</li> 
@@ -319,7 +210,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
 <li>Contrôllez l\'actif le plus important de votre SI&nbsp;: la documentation.</li>
 </ul>
 </p>',
-
 	'UI:WelcomeMenu:AllOpenRequests' => 'Requêtes en cours: %1$d',
 	'UI:WelcomeMenu:MyCalls' => 'Mes Appels Support',
 	'UI:WelcomeMenu:OpenIncidents' => 'Incidents en cours: %1$d',
@@ -332,7 +222,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:Button:Logoff' => 'Déconnexion',
 	'UI:Button:GlobalSearch' => 'Rechercher',
 	'UI:Button:Search' => 'Rechercher',
-
 	'UI:Button:Query' => ' Lancer la requête ',
 	'UI:Button:Ok' => 'Ok',
 	'UI:Button:Cancel' => 'Annuler',
@@ -356,26 +245,24 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:Button:Delete' => ' Supprimer ! ',
 	'UI:Button:ChangePassword' => ' Changer ! ',
 	'UI:Button:ResetPassword' => ' Ràz du mot de passe ',
-	
 	'UI:SearchToggle' => 'Recherche',
-
 	'UI:ClickToCreateNew' => 'Créer un nouvel objet de type %1$s',
+	'UI:SearchFor_Class' => 'Rechercher des objets de type %1$s',
 	'UI:NoObjectToDisplay' => 'Aucun objet à afficher.',
 	'UI:Error:MandatoryTemplateParameter_object_id' => 'Le paramètre object_id est obligatoire quand link_attr est spécifié. Vérifiez la définition du modèle.',
-	'UI:Error:MandatoryTemplateParameter_link_attr' => 'Le paramètre target_attr est obligatoire quand link_attr est spécifié. Vérifiez la définition du modèle.',
+	'UI:Error:MandatoryTemplateParameter_target_attr' => 'Le paramètre taarget_attr est obligatoire quand link_attr est spécifié. Vérifiez la définition du modèle.',
 	'UI:Error:MandatoryTemplateParameter_group_by' => 'Le paramètre group_by est obligatoire. Vérifiez la définition du modèle.',
-	'UI:Error:InvalidGroupByFields' => 'Liste des champs "group by" incorrecte: "%1$s".',
-	'UI:Error:UnsupportedStyleOfBlock' => 'Erreur: style de bloc("%1$s") inconnu.',
+	'UI:Error:InvalidGroupByFields' => 'Liste des champs \\\"group by\\\" incorrecte: \\\"%1$s\\\".',
+	'UI:Error:UnsupportedStyleOfBlock' => 'Erreur: style de bloc(\\\"%1$s\\\") inconnu.',
 	'UI:Error:IncorrectLinkDefinition_LinkedClass_Class' => 'la définition du lien est incorrecte: la classe d\'objets à gérer: %1$s n\'est référencée par aucune clef externe de la classe %2$s',
 	'UI:Error:Object_Class_Id_NotFound' => 'L\'objet: %1$s:%2$d est introuvable.',
 	'UI:Error:WizardCircularReferenceInDependencies' => 'Erreur: Référence circulaire entre les dépendences entre champs, vérifiez le modèle de données.',
 	'UI:Error:UploadedFileTooBig' => 'Le fichier téléchargé est trop gros. (La taille maximale autorisée est %1$s). Vérifiez la valeur des variables upload_max_filesize et post_max_size dans la configuration PHP.',
 	'UI:Error:UploadedFileTruncated.' => 'Le fichier téléchargé a été tronqué !',
 	'UI:Error:NoTmpDir' => 'Il n\'y a aucun répertoire temporaire de défini.',
-	'UI:Error:CannotWriteToTmp_Dir' => 'Impossible d\'écrire le fichier temporaire sur disque. upload_tmp_dir = "%1$s".',
-	'UI:Error:UploadStoppedByExtension_FileName' => 'Téléchargement arrêté à cause de l\'extension. (Nom du fichier original = "%1$s").',
-	'UI:Error:UploadFailedUnknownCause_Code' => 'Le téléchargement a échoué pour une raison inconnue. (Code d\'erreur = "%1$s").',
-	
+	'UI:Error:CannotWriteToTmp_Dir' => 'Impossible d\'écrire le fichier temporaire sur disque. upload_tmp_dir = \\\"%1$s\\\".',
+	'UI:Error:UploadStoppedByExtension_FileName' => 'Téléchargement arrêté à cause de l\'extension. (Nom du fichier original = \\\"%1$s\\\").',
+	'UI:Error:UploadFailedUnknownCause_Code' => 'Le téléchargement a échoué pour une raison inconnue. (Code d\'erreur = \\\"%1$s\\\").',
 	'UI:Error:1ParametersMissing' => 'Erreur: Pour effectuer cette opération il manque le paramètre suivant: %1$s.',
 	'UI:Error:2ParametersMissing' => 'Erreur: Pour effectuer cette opération il manque les paramètres suivants: %1$s and %2$s.',
 	'UI:Error:3ParametersMissing' => 'Erreur: Pour effectuer cette opération il manque les paramètres suivants: %1$s, %2$s and %3$s.',
@@ -390,8 +277,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:Error:BulkModifyNotAllowedOn_Class' => 'Vous n\'êtes pas autorisé à faire une modification massive sur les objets de type %1$s',
 	'UI:Error:ObjectAlreadyCloned' => 'Erreur: l\'objet a déjà été dupliqué !',
 	'UI:Error:ObjectAlreadyCreated' => 'Erreur: l\'objet a déjà été créé !',
-	'UI:Error:Invalid_Stimulus_On_Object_In_State' => 'Erreur: le stimulus "%1$s" n\'est pas valide pour l\'objet %2$s dans l\'état "%3$s".',
-	
+	'UI:Error:Invalid_Stimulus_On_Object_In_State' => 'Erreur: le stimulus \\\"%1$s\\\" n\'est pas valide pour l\'objet %2$s dans l\'état \\\"%3$s\\\".',
 	'UI:GroupBy:Count' => 'Nombre',
 	'UI:GroupBy:Count+' => 'Nombre d\'éléments',
 	'UI:CountOfObjects' => '%1$d objets correspondants aux critères.',
@@ -424,11 +310,10 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:Menu:CSVExport' => 'Exporter en CSV',
 	'UI:Menu:Modify' => 'Modifier...',
 	'UI:Menu:Delete' => 'Supprimer...',
-	'UI:Menu:Manage' => 'Gérer...',
 	'UI:Menu:BulkDelete' => 'Supprimer...',
 	'UI:UndefinedObject' => 'non défini',
 	'UI:Document:OpenInNewWindow:Download' => 'Ouvrir dans un nouvelle fenêtre: %1$s, Télécharger: %2$s',
-	'UI:SelectAllToggle+' => 'Tout Sélectionner / Tout Désélectionner',
+	'UI:SelectAllToggle+' => 'Tout sélectionner / Tout déselectionner',
 	'UI:TruncatedResults' => '%1$d objets affichés sur %2$d',
 	'UI:DisplayAll' => 'Tout afficher',
 	'UI:CollapseList' => 'Refermer',
@@ -457,6 +342,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:LogOff:ThankYou' => 'Merci d\'avoir utilisé iTop',
 	'UI:LogOff:ClickHereToLoginAgain' => 'Cliquez ici pour vous reconnecter...',
 	'UI:ChangePwdMenu' => 'Changer de mot de passe...',
+	'UI:Login:PasswordChanged' => 'Mot de passe mis à jour !',
 	'UI:AccessRO-All' => 'iTop est en lecture seule',
 	'UI:AccessRO-Users' => 'iTop est en lecture seule pour les utilisateurs finaux',
 	'UI:Login:RetypePwdDoesNotMatch' => 'Les deux saisies du nouveau mot de passe ne sont pas identiques !',
@@ -476,7 +362,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:Title:BulkImport+' => 'Assistant d\'import CSV',
 	'UI:Title:BulkSynchro_nbItem_ofClass_class' => 'Synchronisation de %1$d éléments de type %2$s',
 	'UI:CSVImport:ClassesSelectOne' => '-- choisir une valeur --',
-	'UI:CSVImport:ErrorExtendedAttCode' => 'Erreur interne: "%1$s" n\'est pas une code correct car "%2$s" n\'est pas une clef externe de la classe "%3$s"',
+	'UI:CSVImport:ErrorExtendedAttCode' => 'Erreur interne: \\\"%1$s\\\" n\'est pas une code correct car \\\"%2$s\\\" n\'est pas une clef externe de la classe \\\"%3$s\\\"',
 	'UI:CSVImport:ObjectsWillStayUnchanged' => '%1$d objets(s) resteront inchangés.',
 	'UI:CSVImport:ObjectsWillBeModified' => '%1$d objets(s) seront modifiés.',
 	'UI:CSVImport:ObjectsWillBeAdded' => '%1$d objets(s) seront créés.',
@@ -495,7 +381,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:CSVImport:SeparatorSemicolon+' => '; (point-virgule)',
 	'UI:CSVImport:SeparatorTab+' => 'tab',
 	'UI:CSVImport:SeparatorOther' => 'autre :',
-	'UI:CSVImport:QualifierDoubleQuote+' => '" (guillemet double)',
+	'UI:CSVImport:QualifierDoubleQuote+' => '\\\" (guillemet double)',
 	'UI:CSVImport:QualifierSimpleQuote+' => '\' (guillemet simple / apostrophe)',
 	'UI:CSVImport:QualifierOther' => 'autre :',
 	'UI:CSVImport:TreatFirstLineAsHeader' => 'La première ligne est l\'en-tête (noms des colonnes)',
@@ -507,35 +393,28 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:CSVImport:Tab:Templates' => 'Modèles',
 	'UI:CSVImport:PasteData' => 'Collez ici les données à importer:',
 	'UI:CSVImport:PickClassForTemplate' => 'Choisissez un modèle à télécharger: ',
-	'UI:CSVImport:SeparatorCharacter' => 'Caractère séparateur:',
-	'UI:CSVImport:TextQualifierCharacter' => 'Entourage des champs texte',
-	'UI:CSVImport:CommentsAndHeader' => 'En-tête et commentaires',
 	'UI:CSVImport:SeparatorCharacter' => 'Separator character:',
 	'UI:CSVImport:TextQualifierCharacter' => 'Text qualifier character',
 	'UI:CSVImport:CommentsAndHeader' => 'Comments and header',
 	'UI:CSVImport:SelectClass' => 'Sélectionner le type d\'objets à importer:',
 	'UI:CSVImport:AdvancedMode' => 'Mode expert',
-	'UI:CSVImport:AdvancedMode+' => 'En mode expert, l\'"id" (clef primaire) des objets peut être utilisé pour renommer des objets.' .
-									'Cependant la colonne "id" (si elle est présente) ne peut être utilisée que comme clef de recherche et ne peut pas être combinée avec une autre clef de recherche.',
+	'UI:CSVImport:AdvancedMode+' => 'En mode expert, l\'\\\"id\\\" (clef primaire) des objets peut être utilisé pour renommer des objets.Cependant la colonne \\\"id\\\" (si elle est présente) ne peut être utilisée que comme clef de recherche et ne peut pas être combinée avec une autre clef de recherche.',
 	'UI:CSVImport:SelectAClassFirst' => 'Pour configurer la correspondance, choississez d\'abord un type ci-dessus.',
 	'UI:CSVImport:HeaderFields' => 'Champs',
 	'UI:CSVImport:HeaderMappings' => 'Correspondance',
 	'UI:CSVImport:HeaderSearch' => 'Recherche ?',
 	'UI:CSVImport:AlertIncompleteMapping' => 'Veuillez choisir le correspondance de chacun des champs.',
 	'UI:CSVImport:AlertNoSearchCriteria' => 'Veuillez choisir au moins une clef de recherche.',
-	'UI:CSVImport:Encoding' => 'Encodage des caractères',	
-
+	'UI:CSVImport:Encoding' => 'Encodage des caractères',
 	'UI:UniversalSearchTitle' => 'iTop - Recherche Universelle',
 	'UI:UniversalSearch:Error' => 'Erreur : %1$s',
 	'UI:UniversalSearch:LabelSelectTheClass' => 'Sélectionnez le type d\'objets à rechercher : ',
-
 	'UI:Audit:Title' => 'iTop - Audit de la CMDB',
 	'UI:Audit:InteractiveAudit' => 'Audit Interactif',
 	'UI:Audit:HeaderAuditRule' => 'Règle d\'audit',
 	'UI:Audit:HeaderNbObjects' => 'Nb d\'Objets',
 	'UI:Audit:HeaderNbErrors' => 'Nb d\'Erreurs',
 	'UI:Audit:PercentageOk' => '% Ok',
-
 	'UI:RunQuery:Title' => 'iTop - Evaluation de requêtes OQL',
 	'UI:RunQuery:QueryExamples' => 'Exemples de requêtes',
 	'UI:RunQuery:HeaderPurpose' => 'Objectif',
@@ -547,7 +426,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:RunQuery:DevelopedQuery' => 'Requête OQL décompilée : ',
 	'UI:RunQuery:SerializedFilter' => 'Version sérialisée : ',
 	'UI:RunQuery:Error' => 'Une erreur s\'est produite durant l\'exécution de la requête : %1$s',
-
 	'UI:Schema:Title' => 'Modèle de données iTop',
 	'UI:Schema:CategoryMenuItem' => 'Catégorie <b>%1$s</b>',
 	'UI:Schema:Relationships' => 'Relations',
@@ -557,7 +435,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:Schema:AllClasses' => 'Toutes les classes',
 	'UI:Schema:ExternalKey_To' => 'Clef externe vers %1$s',
 	'UI:Schema:Columns_Description' => 'Colonnes : <em>%1$s</em>',
-	'UI:Schema:Default_Description' => 'Valeur par défaut: "%1$s"',
+	'UI:Schema:Default_Description' => 'Valeur par défaut: \\\"%1$s\\\"',
 	'UI:Schema:NullAllowed' => 'Null autorisé',
 	'UI:Schema:NullNotAllowed' => 'Null interdit',
 	'UI:Schema:Attributes' => 'Attributs',
@@ -606,29 +484,27 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:Schema:LifeCycleAttributeMustChange' => 'Doit changer',
 	'UI:Schema:LifeCycleAttributeMustPrompt' => 'L\'utilisateur se verra proposer de changer la valeur',
 	'UI:Schema:LifeCycleEmptyList' => 'liste vide',
-
 	'UI:LinksWidget:Autocomplete+' => 'Tapez les 3 premiers caractères...',
 	'UI:Combo:SelectValue' => '--- choisissez une valeur ---',
 	'UI:Label:SelectedObjects' => 'Objets sélectionnés: ',
 	'UI:Label:AvailableObjects' => 'Objets disponibles: ',
 	'UI:Link_Class_Attributes' => 'Attributs du type %1$s',
-	'UI:SelectAllToggle+' => 'Tout sélectionner / Tout déselectionner',
 	'UI:AddObjectsOf_Class_LinkedWith_Class_Instance' => 'Ajouter des objets de type %1$s liés à %3$s (%2$s)',
 	'UI:AddObjectsOf_Class_LinkedWith_Class' => 'Ajouter des objets de type %1$s à lier à cet objet de type %2$s',
 	'UI:ManageObjectsOf_Class_LinkedWith_Class_Instance' => 'Gérer les objets de type %1$s liés à %3$s (%2$s)',
 	'UI:AddLinkedObjectsOf_Class' => 'Ajouter des objets de type %1$s...',
 	'UI:RemoveLinkedObjectsOf_Class' => 'Enlever les objets sélectionnés',
-	'UI:Message:EmptyList:UseAdd' => 'La liste est vide, utilisez le bouton "Ajouter..." pour ajouter des objets.',
+	'UI:Message:EmptyList:UseAdd' => 'La liste est vide, utilisez le bouton \\\"Ajouter...\\\" pour ajouter des objets.',
 	'UI:Message:EmptyList:UseSearchForm' => 'Utilisez le formulaire de recherche ci-dessus pour trouver les objets à ajouter.',
-
 	'UI:Wizard:FinalStepTitle' => 'Dernière étape: confirmation',
 	'UI:Title:DeletionOf_Object' => 'Suppression de %1$s',
 	'UI:Title:BulkDeletionOf_Count_ObjectsOf_Class' => 'Suppression massive de %1$d objets de type %2$s',
 	'UI:Delete:NotAllowedToDelete' => 'Vous n\'êtes pas autorisé à supprimer cet objet',
 	'UI:Delete:NotAllowedToUpdate_Fields' => 'Vous n\'êtes pas autorisé à mettre à jour les champs suivants : %1$s',
-	'UI:Error:CannotDeleteBecause' => 'This object could not be deleted because: %1$s',
 	'UI:Error:NotEnoughRightsToDelete' => 'Cet objet ne peut pas être supprimé car l\'utilisateur courant n\'a pas les droits nécessaires.',
+	'UI:Error:CannotDeleteBecause' => 'This object could not be deleted because: %1$s',
 	'UI:Error:CannotDeleteBecauseOfDepencies' => 'Cet objet ne peut pas être supprimé, des opérations manuelles sont nécessaire avant sa suppression.',
+	'UI:Error:CannotDeleteBecauseManualOpNeeded' => 'Des opération manuelles sont nécessaires avant de pouvoir effacer cet objet',
 	'UI:Archive_User_OnBehalfOf_User' => '%1$s pour %2$s',
 	'UI:Delete:Deleted' => 'supprimé',
 	'UI:Delete:AutomaticallyDeleted' => 'supprimé automatiquement',
@@ -647,7 +523,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:Delete:CannotUpdateBecause_Issue' => 'Devrait être mis à jour automatiquement, mais: %1$s',
 	'UI:Delete:WillAutomaticallyUpdate_Fields' => 'Va être mis à jour automatiquement (champs impactés : %1$s)',
 	'UI:Delete:Count_Objects/LinksReferencing_Object' => '%1$d objets ou liens font référence à %2$s',
-	'UI:Delete:Count_Objects/LinksReferencingTheObjects' => '%1$d objets ou liens font référence à certain des objets à supprimer',	
+	'UI:Delete:Count_Objects/LinksReferencingTheObjects' => '%1$d objets ou liens font référence à certain des objets à supprimer',
 	'UI:Delete:ReferencesMustBeDeletedToEnsureIntegrity' => 'pour garantir l\'intégrité de la base de données, toutes les références doivent être supprimées.',
 	'UI:Delete:Consequence+' => 'Ce qui va être effectué',
 	'UI:Delete:SorryDeletionNotAllowed' => 'Désolé, vous n\'êtes pas autorisé à supprimer cette objet. Voir les explications détaillées ci-dessus.',
@@ -660,13 +536,13 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:ObjectDoesNotExist' => 'Désolé cet objet n\'existe pas (où vous n\'êtes pas autorisé à l\'afficher).',
 	'UI:SearchResultsPageTitle' => 'iTop - Résultats de la recherche',
 	'UI:Search:NoSearch' => 'Rien à rechercher',
-	'UI:FullTextSearchTitle_Text' => 'Résultats pour "%1$s" :',
+	'UI:FullTextSearchTitle_Text' => 'Résultats pour \\\"%1$s\\\" :',
 	'UI:Search:Count_ObjectsOf_Class_Found' => 'Trouvé %1$d objet(s) de type %2$s.',
 	'UI:Search:NoObjectFound' => 'Aucun objet trouvé.',
 	'UI:ModificationPageTitle_Object_Class' => 'iTop - %2$s - Modification de %1$s',
-	'UI:ModificationTitle_Class_Object' => '%1$s - Modification de <span class=\"hilite\">%2$s</span>',
+	'UI:ModificationTitle_Class_Object' => '%1$s - Modification de <span class=\\\\\"hilite\\\\\">%2$s</span>',
 	'UI:ClonePageTitle_Object_Class' => 'iTop - %2$s - Duplication de %1$s',
-	'UI:CloneTitle_Class_Object' => ' %1$s - Duplication de <span class=\"hilite\">%2$s</span>',
+	'UI:CloneTitle_Class_Object' => ' %1$s - Duplication de <span class=\\\\\"hilite\\\\\">%2$s</span>',
 	'UI:CreationPageTitle_Class' => 'iTop - Création d\'un objet de type %1$s ',
 	'UI:CreationTitle_Class' => 'Création d\'un objet de type %1$s',
 	'UI:SelectTheTypeOf_Class_ToCreate' => 'Sélectionnez le type de %1$s à créer :',
@@ -679,11 +555,10 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:Apply_Stimulus_On_Object_In_State_ToTarget_State' => '%1$s pour %2$s de l\'état %3$s vers l\'état %4$s.',
 	'UI:ObjectCouldNotBeWritten' => 'L\'objet ne peut pas être enregistré: %1$s',
 	'UI:PageTitle:FatalError' => 'iTop - Erreur Fatale',
-	'UI:FatalErrorMessage' => 'Erreur fatale, iTop ne peut pas continuer.',
 	'UI:SystemIntrusion' => 'Accès non autorisé. Vous êtes en train de d\'effectuer une opération qui ne vous est pas permise.',
+	'UI:FatalErrorMessage' => 'Erreur fatale, iTop ne peut pas continuer.',
 	'UI:Error_Details' => 'Erreur: %1$s.',
-
-	'UI:PageTitle:ClassProjections'	=> 'iTop gestion des utilisateurs - projections des classes',
+	'UI:PageTitle:ClassProjections' => 'iTop gestion des utilisateurs - projections des classes',
 	'UI:PageTitle:ProfileProjections' => 'iTop gestion des utilisateurs - projections des profils',
 	'UI:UserManagement:Class' => 'Type',
 	'UI:UserManagement:Class+' => 'Type des objets',
@@ -720,16 +595,11 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI:UserManagement:NoLifeCycleApplicable' => 'N/A',
 	'UI:UserManagement:NoLifeCycleApplicable+' => 'Aucun cycle de vie n\'est défini pour ce type d\'objets.',
 	'UI:UserManagement:GrantMatrix' => 'Matrice des droits',
-	'UI:USerManagement:LinkBetween_User_And_Profile' => 'Lien entre %1$s et %2$s',
-	'UI:USerManagement:LinkBetween_User_And_Org' => 'Lien entre %1$s et %2$s',
-
+	'UI:UserManagement:LinkBetween_User_And_Profile' => 'Lien entre %1$s et %2$s',
+	'UI:UserManagement:LinkBetween_User_And_Org' => 'Lien entre %1$s et %2$s',
 	'Menu:AdminTools' => 'Outils d\'admin',
 	'Menu:AdminTools+' => 'Outils d\'administration',
 	'Menu:AdminTools?' => 'Ces outils sont accessibles uniquement aux utilisateurs possédant le profil Administrateur.',
-
-	'UI:AuditMenu' => 'Audit',
-	'UI:AuditMenu+' => 'Audit',
-
 	'UI:ChangeManagementMenu' => 'Gestion du Changement',
 	'UI:ChangeManagementMenu+' => 'Gestion du Changement',
 	'UI:ChangeManagementMenu:Title' => 'Résumé des changements',
@@ -737,83 +607,64 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'UI-ChangeManagementMenu-ChangesByStatus' => 'Changements par état',
 	'UI-ChangeManagementMenu-ChangesByWorkgroup' => 'Changements par workgroup',
 	'UI-ChangeManagementMenu-ChangesNotYetAssigned' => 'Changements en attente d\'assignation',
-	
-	'UI:ConfigurationItemsMenu'=> 'Actifs (CIs)',
-	'UI:ConfigurationItemsMenu+'=> 'Tous les actifs',
+	'UI:ConfigurationItemsMenu' => 'Actifs (CIs)',
+	'UI:ConfigurationItemsMenu+' => 'Tous les actifs',
 	'UI:ConfigurationItemsMenu:Title' => 'Résumé des actifs (CIs)',
 	'UI-ConfigurationItemsMenu-ServersByCriticity' => 'Serveurs par criticité',
 	'UI-ConfigurationItemsMenu-PCsByCriticity' => 'PCs par criticité',
 	'UI-ConfigurationItemsMenu-NWDevicesByCriticity' => 'Equipements réseau par criticité',
 	'UI-ConfigurationItemsMenu-ApplicationsByCriticity' => 'Applications par criticité',
-	
 	'UI:ConfigurationManagementMenu' => 'Gestion de Configuration',
 	'UI:ConfigurationManagementMenu+' => 'Gestion de Configuration',
 	'UI:ConfigurationManagementMenu:Title' => 'Résumé de l\'Infrastructure',
 	'UI-ConfigurationManagementMenu-InfraByType' => 'Nombre d\'éléments par type',
 	'UI-ConfigurationManagementMenu-InfraByStatus' => 'Nombre d\'éléments par état',
-	
-'UI:ConfigMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion de Configuration',
-'UI-ConfigMgmtMenuOverview-FunctionalCIbyStatus' => 'Actifs par état',
-'UI-ConfigMgmtMenuOverview-FunctionalCIByType' => 'Actifs par type',
-
-'UI:RequestMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion des Demandes Utilisateurs',
-'UI-RequestManagementOverview-RequestByService' => 'Demandes par service',
-'UI-RequestManagementOverview-RequestByPriority' => 'Demandes par priorité',
-'UI-RequestManagementOverview-RequestUnassigned' => 'Demandes non affectées à un agent',
-
-'UI:IncidentMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion des Incidents',
-'UI-IncidentManagementOverview-IncidentByService' => 'Incidents par service',
-'UI-IncidentManagementOverview-IncidentByPriority' => 'Incidents par priorité',
-'UI-IncidentManagementOverview-IncidentUnassigned' => 'Incidents non affectés à un agent',
-
-'UI:ChangeMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion des Changements',
-'UI-ChangeManagementOverview-ChangeByType' => 'Changes par type',
-'UI-ChangeManagementOverview-ChangeUnassigned' => 'Changes non affectés à un agent',
-'UI-ChangeManagementOverview-ChangeWithOutage' => 'Interruptions de service liées à un changement',
-
-'UI:ServiceMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion des Services',
-'UI-ServiceManagementOverview-CustomerContractToRenew' => 'Contrats clients à renouveler dans les 30 jours',
-'UI-ServiceManagementOverview-ProviderContractToRenew' => 'Contrats fournisseurs à renouveler dans les 30 jours',
-
+	'UI:ConfigMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion de Configuration',
+	'UI-ConfigMgmtMenuOverview-FunctionalCIbyStatus' => 'Actifs par état',
+	'UI-ConfigMgmtMenuOverview-FunctionalCIByType' => 'Actifs par type',
+	'UI:RequestMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion des Demandes Utilisateurs',
+	'UI-RequestManagementOverview-RequestByService' => 'Demandes par service',
+	'UI-RequestManagementOverview-RequestByPriority' => 'Demandes par priorité',
+	'UI-RequestManagementOverview-RequestUnassigned' => 'Demandes non affectées à un agent',
+	'UI:IncidentMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion des Incidents',
+	'UI-IncidentManagementOverview-IncidentByService' => 'Incidents par service',
+	'UI-IncidentManagementOverview-IncidentByPriority' => 'Incidents par priorité',
+	'UI-IncidentManagementOverview-IncidentUnassigned' => 'Incidents non affectés à un agent',
+	'UI:ChangeMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion des Changements',
+	'UI-ChangeManagementOverview-ChangeByType' => 'Changes par type',
+	'UI-ChangeManagementOverview-ChangeUnassigned' => 'Changes non affectés à un agent',
+	'UI-ChangeManagementOverview-ChangeWithOutage' => 'Interruptions de service liées à un changement',
+	'UI:ServiceMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion des Services',
+	'UI-ServiceManagementOverview-CustomerContractToRenew' => 'Contrats clients à renouveler dans les 30 jours',
+	'UI-ServiceManagementOverview-ProviderContractToRenew' => 'Contrats fournisseurs à renouveler dans les 30 jours',
 	'UI:ContactsMenu' => 'Contacts',
 	'UI:ContactsMenu+' => 'Contacts',
 	'UI:ContactsMenu:Title' => 'Résumé des contacts',
 	'UI-ContactsMenu-ContactsByLocation' => 'Contacts par emplacement',
 	'UI-ContactsMenu-ContactsByType' => 'Contacts par type',
 	'UI-ContactsMenu-ContactsByStatus' => 'Contacts par état',
-
-
 	'Menu:CSVImportMenu' => 'Import CSV',
 	'Menu:CSVImportMenu+' => 'Import ou mise à jour en masse',
-	
 	'Menu:DataModelMenu' => 'Modèle de Données',
 	'Menu:DataModelMenu+' => 'Résumé du Modèle de Données',
-	
 	'Menu:ExportMenu' => 'Exportation',
 	'Menu:ExportMenu+' => 'Exportation des résultats d\'une requête en HTML, CSV ou XML',
-	
-	'UI:IncidentManagementMenu:Title' => 'Résumé des incidents',
-	'UI-IncidentManagementMenu-IncidentsByType' => 'Incidents par type',
-	'UI-IncidentManagementMenu-IncidentsByStatus' => 'Incidents par état',
-	'UI-IncidentManagementMenu-IncidentsByWorkgroup' => 'Incidents par workgroup',
-	'UI-IncidentManagementMenu-IncidentsNotYetAssigned' => 'Incidents en attente d\'assignation',
-		
 	'Menu:NotificationsMenu' => 'Notifications',
 	'Menu:NotificationsMenu+' => 'Configuration des Notifications',
-	'UI:NotificationsMenu:Title' => 'Configuration des <span class="hilite">Notifications</span>',
+	'UI:NotificationsMenu:Title' => 'Configuration des <span class=\\\"hilite\\\">Notifications</span>',
 	'UI:NotificationsMenu:Help' => 'Aide',
 	'UI:NotificationsMenu:HelpContent' => '<p>Dans iTop les notifications sont totalement configurables. Elles sont basées sur deux types d\'objets: <i>déclencheurs et actions</i>.</p>
 <p><i><b>Les déclencheurs</b></i> définissent quand une notification doit être exécutée. Il y a 3 types de déclencheurs pour couvrir les 3 différentes phases de la vie d\'un objet:
 <ol>
-	<li>un déclencheur "OnCreate" est exécuté quand un objet d\'une classe spécifique est créé.</li>
-	<li>un déclencheur "OnEnter" est exécuté avant que l\'objet n\'entre dans un état donné (en venant d\'un autre état du cycle de vie)</li>
-	<li>un déclencheur "OnLeave" est exécuté  quand l\'objet quitte un état spécifié</li>
+	<li>un déclencheur \\\"OnCreate\\\" est exécuté quand un objet d\'une classe spécifique est créé.</li>
+	<li>un déclencheur \\\"OnEnter\\\" est exécuté avant que l\'objet n\'entre dans un état donné (en venant d\'un autre état du cycle de vie)</li>
+	<li>un déclencheur \\\"OnLeave\\\" est exécuté  quand l\'objet quitte un état spécifié</li>
 </ol>
 </p>
 <p>
 <i><b>Les actions</b></i> définissent ce qui doit être exécuté. Pour le moment il existe un seul type d\'action: l\'envoi de mail.
 Les actions de type mail définissent le modèle du message ainsi que les autres paramètres (destinataires, importance, etc.)</p>
-<p>Une page spéciale: <a href="../setup/email.test.php" target="_blank">email.test.php</a> permet de tester votre configuration mail PHP.</p>
+<p>Une page spéciale: <a href=\\\"../setup/email.test.php\\\" target=\\\"_blank\\\">email.test.php</a> permet de tester votre configuration mail PHP.</p>
 <p>Les actions doivent être associées à des déclencheurs pour pouvoir être exécutées.
 Lors de l\'association à un déclencheur, on attribue à chaque action un numéro d\'ordre, qui définit la séquence des actions à exécuter.</p>',
 	'UI:NotificationsMenu:Triggers' => 'Déclencheurs',
@@ -823,43 +674,36 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
 	'UI:NotificationsMenu:OnStateLeave' => 'Quand un objet quitte un état donné',
 	'UI:NotificationsMenu:Actions' => 'Actions',
 	'UI:NotificationsMenu:AvailableActions' => 'Actions existantes',
-
 	'Menu:AuditCategories' => 'Catégories d\'audit',
 	'Menu:AuditCategories+' => 'Catégories d\'audit',
 	'Menu:Notifications:Title' => 'Catégories d\'audit',
-	
 	'Menu:RunQueriesMenu' => 'Requêtes OQL',
 	'Menu:RunQueriesMenu+' => 'Executer une requête OQL',
-	
 	'Menu:DataAdministration' => 'Administration des données',
 	'Menu:DataAdministration+' => 'Administration des données',
-	
 	'Menu:UniversalSearchMenu' => 'Recherche Universelle',
 	'Menu:UniversalSearchMenu+' => 'Rechercher n\'importe quel objet...',
-	
 	'Menu:ApplicationLogMenu' => 'Application Log',
 	'Menu:ApplicationLogMenu+' => 'Application Log',
 	'Menu:ApplicationLogMenu:Title' => 'Application Log',
-
 	'Menu:UserManagementMenu' => 'Gestion des Utilisateurs',
 	'Menu:UserManagementMenu+' => 'Gestion des Utilisateurs',
-
 	'Menu:ProfilesMenu' => 'Profils',
 	'Menu:ProfilesMenu+' => 'Profils',
 	'Menu:ProfilesMenu:Title' => 'Profils',
-
-	'Menu:UserAccountsMenu' => 'Comptes Utilisateur',
-	'Menu:UserAccountsMenu+' => 'Comptes Utilisateur',
-	'MenuUI:UserAccountsMenu:Title' => 'Comptes Utilisateur',	
-
+	'Menu:UserAccountsMenu' => 'Comptes Utilisateurs',
+	'Menu:UserAccountsMenu+' => 'Comptes Utilisateurs',
+	'Menu:UserAccountsMenu:Title' => 'Comptes Utilisateusr',
 	'UI:iTopVersion:Short' => 'iTop version %1$s',
 	'UI:iTopVersion:Long' => 'iTop version %1$s-%2$s du %3$s',
 	'UI:PropertiesTab' => 'Propriétés',
-
+	'UI:OpenDocumentInNewWindow_' => 'Ouvrir de document dans un autre fenêtre: %1$s',
+	'UI:DownloadDocument_' => 'Télécharger ce document: %1$s',
+	'UI:Document:NoPreview' => 'L\'aperçu n\'est pas disponible pour ce type de documents',
 	'UI:DeadlineMissedBy_duration' => 'Passé de %1$s',
-	'UI:Deadline_LessThan1Min' => '< 1 min',		
-	'UI:Deadline_Minutes' => '%1$d min',			
-	'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',			
+	'UI:Deadline_LessThan1Min' => '< 1 min',
+	'UI:Deadline_Minutes' => '%1$d min',
+	'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
 	'UI:Deadline_Days_Hours_Minutes' => '%1$dj %2$dh %3$dmin',
 	'UI:Help' => 'Aide',
 	'UI:PasswordConfirm' => '(Confirmer)',
@@ -868,7 +712,6 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
 	'UI:RelationshipGraph' => 'Vue graphique',
 	'UI:RelationshipList' => 'Liste',
 	'UI:OperationCancelled' => 'Opération Annulée',
-
 	'Portal:Title' => 'Portail utilisateur iTop',
 	'Portal:Refresh' => 'Rafraîchir',
 	'Portal:Back' => 'Retour',
@@ -876,11 +719,11 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
 	'Portal:ChangeMyPassword' => 'Changer mon mot de passe',
 	'Portal:Disconnect' => 'Déconnexion',
 	'Portal:OpenRequests' => 'Mes requêtes en cours',
-	'Portal:ResolvedRequests'  => 'Mes requêtes résolues',
+	'Portal:ResolvedRequests' => 'Mes requêtes résolues',
 	'Portal:SelectService' => 'Choisissez un service dans le catalogue:',
 	'Portal:PleaseSelectOneService' => 'Veuillez choisir un service',
 	'Portal:SelectSubcategoryFrom_Service' => 'Choisissez une sous-catégorie du service %1$s:',
-	'Portal:PleaseSelectAServiceSubCategory' => 'Veuillez choisir une sous-catégorie', 
+	'Portal:PleaseSelectAServiceSubCategory' => 'Veuillez choisir une sous-catégorie',
 	'Portal:DescriptionOfTheRequest' => 'Entrez la description de votre requête:',
 	'Portal:TitleRequestDetailsFor_Request' => 'Détails de votre requête %1$s:',
 	'Portal:NoOpenRequest' => 'Aucune requête.',
@@ -891,8 +734,36 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
 	'Portal:AddAttachment' => ' Ajouter une pièce jointe ',
 	'Portal:RemoveAttachment' => ' Enlever la pièce jointe ',
 	'Portal:Attachment_No_To_Ticket_Name' => 'Pièce jointe #%1$d à %2$s (%3$s)',
-
 	'Enum:Undefined' => 'Non défini',
+	'UI:DurationForm_Days_Hours_Minutes_Seconds' => '%1$s J %2$s H %3$s min %4$s s',
+	'UI:ModifyAllPageTitle' => 'Modification par lots',
+	'UI:Modify_N_ObjectsOf_Class' => 'Modification de %1$d objet(s) de type %2$s',
+	'UI:Modify_M_ObjectsOf_Class_OutOf_N' => 'Modification de %1$d (sur %3$d) objets de type %2$s',
+	'UI:Menu:ModifyAll' => 'Modifier...',
+	'UI:Button:ModifyAll' => 'Modifier',
+	'UI:Button:PreviewModifications' => 'Aperçu des modifications >>',
+	'UI:ModifiedObject' => 'Objet Modifié',
+	'UI:BulkModifyStatus' => 'Opération',
+	'UI:BulkModifyStatus+' => '',
+	'UI:BulkModifyErrors' => 'Erreur',
+	'UI:BulkModifyErrors+' => '',
+	'UI:BulkModifyStatusOk' => 'Ok',
+	'UI:BulkModifyStatusError' => 'Erreur',
+	'UI:BulkModifyStatusModified' => 'Modifié',
+	'UI:BulkModifyStatusSkipped' => 'Ignoré',
+	'UI:BulkModify_Count_DistinctValues' => '%1$d valeurs distinctes:',
+	'UI:BulkModify:Value_Exists_N_Times' => '%1$s, %2$d fois',
+	'UI:BulkModify:N_MoreValues' => '%1$d valeurs supplémentaires...',
+	'UI:AttemptingToSetAReadOnlyAttribute_Name' => 'Tentative de modification du champ en lecture seule: %1$s',
+	'UI:FailedToApplyStimuli' => 'L\'action a échoué',
+	'UI:StimulusModify_N_ObjectsOf_Class' => '%1$s: Modification de %2$d objet(s) de type %3$s',
+	'UI:CaseLogTypeYourTextHere' => 'Nouvelle entrée ci-dessous:',
+	'UI:CaseLog:DateFormat' => 'Y-m-d H:i:s',
+	'UI:CaseLog:Header_Date_UserName' => '%1$s - %2$s:',
+	'UI:CaseLog:InitialValue' => 'Valeur initiale:',
+	'UI:AttemptingToSetASlaveAttribute_Name' => 'Le champ %1$s ne peut pas être modifié car il est géré par une synchronisation avec une source de données. Valeur ignorée.',
+	'UI:ActionNotAllowed' => 'Vous n\'êtes pas autorisé à exécuter cette opération sur ces objets.',
+	'UI:BulkAction:NoObjectSelected' => 'Veuillez s\électionner au moins un objet pour cette opération.',
+	'UI:AttemptingToChangeASlaveAttribute_Name' => 'Le champ %1$s ne peut pas être modifié car il est géré par une synchronisation avec une source de données. Valeur inchangée.',
 ));
-
-?>
+?>

+ 10 - 5
modules/itop-change-mgmt-1.0.0/fr.dict.itop-change-mgmt.php

@@ -155,7 +155,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:Change/Stimulus:ev_approve+' => '',
 	'Class:Change/Stimulus:ev_replan' => 'Replannifier',
 	'Class:Change/Stimulus:ev_replan+' => '',
-	'Class:Change/Stimulus:ev_notapprove' => 'Désapprouver',
+	'Class:Change/Stimulus:ev_notapprove' => 'Ne pas approuver',
 	'Class:Change/Stimulus:ev_notapprove+' => '',
 	'Class:Change/Stimulus:ev_implement' => 'Marquer comme effectué',
 	'Class:Change/Stimulus:ev_implement+' => '',
@@ -165,7 +165,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:Change/Stimulus:ev_finish+' => '',
 ));
 
-
 //
 // Class: RoutineChange
 //
@@ -203,6 +202,12 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:RoutineChange/Stimulus:ev_monitor+' => '',
 	'Class:RoutineChange/Stimulus:ev_finish' => 'Fermer',
 	'Class:RoutineChange/Stimulus:ev_finish+' => '',
+	'Class:RoutineChange/Stimulus:ev_reject' => 'Refuser',
+	'Class:RoutineChange/Stimulus:ev_reject+' => '',
+	'Class:RoutineChange/Stimulus:ev_approve' => 'Approver',
+	'Class:RoutineChange/Stimulus:ev_approve+' => '',
+	'Class:RoutineChange/Stimulus:ev_notapprove' => 'Ne pas approver',
+	'Class:RoutineChange/Stimulus:ev_notapprove+' => '',
 ));
 
 //
@@ -230,7 +235,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:ApprovedChange/Stimulus:ev_approve+' => '',
 	'Class:ApprovedChange/Stimulus:ev_replan' => 'Replannifier',
 	'Class:ApprovedChange/Stimulus:ev_replan+' => '',
-	'Class:ApprovedChange/Stimulus:ev_notapprove' => 'Désapprouver',
+	'Class:ApprovedChange/Stimulus:ev_notapprove' => 'Ne pas approuver',
 	'Class:ApprovedChange/Stimulus:ev_notapprove+' => '',
 	'Class:ApprovedChange/Stimulus:ev_implement' => 'Marquer comme effectué',
 	'Class:ApprovedChange/Stimulus:ev_implement+' => '',
@@ -284,7 +289,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:NormalChange/Stimulus:ev_approve+' => '',
 	'Class:NormalChange/Stimulus:ev_replan' => 'Replannifier',
 	'Class:NormalChange/Stimulus:ev_replan+' => '',
-	'Class:NormalChange/Stimulus:ev_notapprove' => 'Désapprouver',
+	'Class:NormalChange/Stimulus:ev_notapprove' => 'Ne pas approuver',
 	'Class:NormalChange/Stimulus:ev_notapprove+' => '',
 	'Class:NormalChange/Stimulus:ev_implement' => 'Marquer comme effectué',
 	'Class:NormalChange/Stimulus:ev_implement+' => '',
@@ -335,7 +340,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:EmergencyChange/Stimulus:ev_approve+' => '',
 	'Class:EmergencyChange/Stimulus:ev_replan' => 'Replannifier',
 	'Class:EmergencyChange/Stimulus:ev_replan+' => '',
-	'Class:EmergencyChange/Stimulus:ev_notapprove' => 'Désapprouver',
+	'Class:EmergencyChange/Stimulus:ev_notapprove' => 'Ne pas approuver',
 	'Class:EmergencyChange/Stimulus:ev_notapprove+' => '',
 	'Class:EmergencyChange/Stimulus:ev_implement' => 'Marquer comme effectué',
 	'Class:EmergencyChange/Stimulus:ev_implement+' => '',

+ 32 - 0
modules/itop-config-mgmt-1.0.0/fr.dict.itop-config-mgmt.php

@@ -1029,5 +1029,37 @@ Dict::Add('FR FR', 'French', 'Français', array(
 'Menu:Group+' => 'Groupes de CIs',
 'Menu:ConfigManagement:Shortcuts' => 'Raccourcis',
 'Menu:ConfigManagement:AllContacts' => 'Tous les contacts: %1$d',
+'Class:Licence/Attribute:org_id' => 'Propiétaire',
+'Class:Licence/Attribute:org_id+' => '',
+'Class:Licence/Attribute:org_name' => 'Nom',
+'Class:Licence/Attribute:org_name+' => '',
+'Class:DBServerInstance/Attribute:software_id+' => '',
+'Class:DBServerInstance/Attribute:software_name+' => '',
+'Class:ApplicationInstance/Attribute:software_id' => 'Logiciel',
+'Class:ApplicationInstance/Attribute:software_id+' => '',
+'Class:ApplicationInstance/Attribute:software_name' => 'Nom',
+'Class:ApplicationInstance/Attribute:software_name+' => '',
+'Class:NetworkInterface/Attribute:duplex/Value:auto' => 'Auto',
+'Class:NetworkInterface/Attribute:duplex/Value:auto+' => '',
+'Class:NetworkInterface/Attribute:connected_if_device_id_name' => 'Equipement',
+'Class:NetworkInterface/Attribute:connected_if_device_id_name+' => '',
+'Menu:NewContact' => 'nouveau Contact',
+'Menu:NewContact+' => '',
+'Menu:SearchContacts' => 'Rechercher des contacts',
+'Menu:SearchContacts+' => '',
+'Menu:NewCI' => 'Nouveau CI',
+'Menu:NewCI+' => '',
+'Menu:SearchCIs' => 'Rechercher des CIs',
+'Menu:SearchCIs+' => '',
+'Class:lnkTeamToContact/Attribute:team_name' => 'Equipe',
+'Class:lnkTeamToContact/Attribute:team_name+' => '',
+'Class:lnkTeamToContact/Attribute:contact_name' => 'Contact',
+'Class:lnkTeamToContact/Attribute:contact_name+' => '',
+'Class:lnkTeamToContact/Attribute:contact_location_name' => 'Lieu',
+'Class:lnkTeamToContact/Attribute:contact_location_name+' => '',
+'Class:Subnet/Attribute:org_name' => 'Oranisation',
+'Class:Subnet/Attribute:org_name+' => '',
+'Class:DatabaseInstance/Attribute:db_server_instance_name' => 'Instance de serveur de DB',
+'Class:DatabaseInstance/Attribute:db_server_instance_name+' => '',
 ));
 ?>

+ 13 - 2
modules/itop-incident-mgmt-1.0.0/fr.dict.itop-incident-mgmt.php

@@ -62,7 +62,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:Incident+' => '',
 	'Class:Incident/Stimulus:ev_assign' => 'Assigner',
 	'Class:Incident/Stimulus:ev_assign+' => '',
-	'Class:Incident/Stimulus:ev_reassign' => 'Reassigner',
+	'Class:Incident/Stimulus:ev_reassign' => 'Réassigner',
 	'Class:Incident/Stimulus:ev_reassign+' => '',
 	'Class:Incident/Stimulus:ev_timeout' => 'ev_timeout',
 	'Class:Incident/Stimulus:ev_timeout+' => '',
@@ -70,6 +70,17 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:Incident/Stimulus:ev_resolve+' => '',
 	'Class:Incident/Stimulus:ev_close' => 'Fermer',
 	'Class:Incident/Stimulus:ev_close+' => '',
-));
+	'Class:lnkTicketToIncident' => 'Class:lnkTicketToIncident~~',
+	'Class:lnkTicketToIncident+' => '',
+	'Class:lnkTicketToIncident/Attribute:ticket_id' => 'Ticket',
+	'Class:lnkTicketToIncident/Attribute:ticket_id+' => '',
+	'Class:lnkTicketToIncident/Attribute:ticket_ref' => 'Réf. Ticket',
+	'Class:lnkTicketToIncident/Attribute:ticket_ref+' => '',
+	'Class:lnkTicketToIncident/Attribute:incident_id' => 'Incident',
+	'Class:lnkTicketToIncident/Attribute:incident_id+' => '',
+	'Class:lnkTicketToIncident/Attribute:incident_ref' => 'Réf. Ticket',
+	'Class:lnkTicketToIncident/Attribute:incident_ref+' => '',
+	'Class:lnkTicketToIncident/Attribute:reason' => 'Raison',
+	'Class:lnkTicketToIncident/Attribute:reason+' => '',));
 
 ?>

+ 1 - 1
pages/UI.php

@@ -1345,7 +1345,6 @@ EOF
 		break;
 		
 		case 'bulk_stimulus':
-		$oP->set_title(Dict::S('UI:ApplyStimulusMultiple'));
 		$sFilter = utils::ReadParam('filter', '');
 		$sStimulus = utils::ReadParam('stimulus', '');
 		$sState = utils::ReadParam('state', '');
@@ -1359,6 +1358,7 @@ EOF
 		if (count($aSelectObject) == 0)
 		{
 			// Nothing to do, no object was selected !
+			throw new ApplicationException(Dict::S('UI:BulkAction:NoObjectSelected'));
 		}
 		else
 		{

+ 0 - 12
synchro/synchro_import.php

@@ -322,18 +322,6 @@ try
 
 	//////////////////////////////////////////////////
 	//
-	// Security
-	//
-	// #@# todo - implement
-	/*
-	if (!$oDataSource->IsUserAllowed(UserRights::GetUserId())
-	{
-		throw new SecurityException(Dict::Format('UI:Error:DataExchangeNotAllowed', UserRights::GetUserFriendlyName()));
-	}
-	*/
-
-	//////////////////////////////////////////////////
-	//
 	// Parse first line, check attributes, analyse the request
 	//
 	if ($sCharSet == 'UTF-8')