Sort translation keys alphabetically

The goal of this is to make the order more stable and reduce the risk of regressions when merge conflicts are resolved.

Change-Id: I4c51e3ee61f20e64c8291bc08ffb86c8be1ca281
diff --git a/client/i18next-parser.config.js b/client/i18next-parser.config.js
index bcd014c..6729dc7 100644
--- a/client/i18next-parser.config.js
+++ b/client/i18next-parser.config.js
@@ -20,4 +20,5 @@
   locales: ['fr', 'en'],
   output: 'src/locale/$LOCALE/$NAMESPACE.json',
   input: ['src/**/*.{ts,tsx,js,jsx}'],
+  sort: true,
 };
diff --git a/client/src/components/Input.tsx b/client/src/components/Input.tsx
index c35bbab..d6529b4 100644
--- a/client/src/components/Input.tsx
+++ b/client/src/components/Input.tsx
@@ -288,23 +288,23 @@
     () => [
       {
         Icon: GppMaybe,
-        value: t('password_rule_one'),
+        value: t('password_rule_1'),
       },
       {
         Icon: GppMaybe,
-        value: t('password_rule_two'),
+        value: t('password_rule_2'),
       },
       {
         Icon: GppMaybe,
-        value: t('password_rule_three'),
+        value: t('password_rule_3'),
       },
       {
         Icon: GppMaybe,
-        value: t('password_rule_four'),
+        value: t('password_rule_4'),
       },
       {
         Icon: GppMaybe,
-        value: t('password_rule_five'),
+        value: t('password_rule_5'),
       },
     ],
     [t]
@@ -318,19 +318,19 @@
     () => [
       {
         Icon: Warning,
-        value: t('username_rule_one'),
+        value: t('username_rule_1'),
       },
       {
         Icon: Warning,
-        value: t('username_rule_two'),
+        value: t('username_rule_2'),
       },
       {
         Icon: Warning,
-        value: t('username_rule_three'),
+        value: t('username_rule_3'),
       },
       {
         Icon: Warning,
-        value: t('username_rule_four'),
+        value: t('username_rule_4'),
       },
     ],
     [t]
diff --git a/client/src/components/SendMessageForm.tsx b/client/src/components/SendMessageForm.tsx
index a94ab56..0859d17 100644
--- a/client/src/components/SendMessageForm.tsx
+++ b/client/src/components/SendMessageForm.tsx
@@ -102,11 +102,11 @@
       translaters: [
         () =>
           // The user is chatting with themself
-          t('message_input_placeholder_one', { member0: account?.getDisplayName() }),
-        (interpolations) => t('message_input_placeholder_one', interpolations),
-        (interpolations) => t('message_input_placeholder_two', interpolations),
-        (interpolations) => t('message_input_placeholder_three', interpolations),
-        (interpolations) => t('message_input_placeholder_four', interpolations),
+          t('message_input_placeholder_1', { member0: account?.getDisplayName() }),
+        (interpolations) => t('message_input_placeholder_1', interpolations),
+        (interpolations) => t('message_input_placeholder_2', interpolations),
+        (interpolations) => t('message_input_placeholder_3', interpolations),
+        (interpolations) => t('message_input_placeholder_4', interpolations),
         (interpolations) => t('message_input_placeholder_more', interpolations),
       ],
     };
diff --git a/client/src/hooks/useConversationDisplayName.ts b/client/src/hooks/useConversationDisplayName.ts
index c668493..3949c45 100644
--- a/client/src/hooks/useConversationDisplayName.ts
+++ b/client/src/hooks/useConversationDisplayName.ts
@@ -43,11 +43,11 @@
       translaters: [
         () =>
           // The user is chatting with themself
-          t('conversation_title_one', { member0: account?.getDisplayName() }),
-        (interpolations) => t('conversation_title_one', interpolations),
-        (interpolations) => t('conversation_title_two', interpolations),
-        (interpolations) => t('conversation_title_three', interpolations),
-        (interpolations) => t('conversation_title_four', interpolations),
+          t('conversation_title_1', { member0: account?.getDisplayName() }),
+        (interpolations) => t('conversation_title_1', interpolations),
+        (interpolations) => t('conversation_title_2', interpolations),
+        (interpolations) => t('conversation_title_3', interpolations),
+        (interpolations) => t('conversation_title_4', interpolations),
         (interpolations) => t('conversation_title_more', interpolations),
       ],
     };
diff --git a/client/src/locale/en/translation.json b/client/src/locale/en/translation.json
index 36d276f..78b607f 100644
--- a/client/src/locale/en/translation.json
+++ b/client/src/locale/en/translation.json
@@ -1,131 +1,131 @@
 {
-  "severity": "",
+  "accept_call_audio": "Accept in audio",
+  "accept_call_video": "Accept in video",
+  "admin_creation_submit_button": "Create admin account",
+  "calling": "Calling {{member0}}",
   "change_picture": "Change the picture",
-  "message_swarm_created": "Swarm created",
-  "message_call_outgoing_missed": "Missed outgoing call",
-  "message_call_incoming_missed": "Missed incoming call",
-  "message_call_outgoing": "Outgoing call - {{duration}}",
-  "message_call_incoming": "Incoming call - {{duration}}",
-  "message_member_joined": "{{user}} joined",
-  "ongoing_call_unmuted": "Ongoing call",
-  "ongoing_call_muted": "Ongoing call (muted)",
+  "connecting": "Connecting...",
   "connecting_call": "Connecting...",
-  "outgoing_call": "Outgoing call",
-  "incoming_call": "Incoming call",
+  "conversation_add_contact": "Add contact",
+  "conversation_add_contact_form": "Add a contact",
+  "conversation_ask_confirm_block": "Would you really like to block this conversation?",
+  "conversation_ask_confirm_remove": "Would you really like to remove this conversation?",
+  "conversation_block": "Block conversation",
+  "conversation_close": "Close this conversation",
+  "conversation_confirm_block": "Block",
+  "conversation_confirm_remove": "Remove",
+  "conversation_delete": "Remove conversation",
+  "conversation_details": "Conversation details",
+  "conversation_details_identifier": "Identifier",
+  "conversation_details_informations": "Informations",
+  "conversation_details_is_swarm": "Is swarm",
+  "conversation_details_is_swarm_false": "False",
+  "conversation_details_is_swarm_true": "True",
+  "conversation_details_name": "Title",
+  "conversation_details_qr_code": "QR code",
   "conversation_message": "Message",
   "conversation_start_audiocall": "Start audio call",
   "conversation_start_videocall": "Start video call",
-  "conversation_close": "Close this conversation",
-  "conversation_details": "Conversation details",
-  "conversation_delete": "Remove conversation",
-  "conversation_details_name": "Title",
-  "conversation_details_identifier": "Identifier",
-  "conversation_details_qr_code": "QR code",
-  "conversation_details_is_swarm": "Is swarm",
-  "conversation_details_is_swarm_true": "True",
-  "conversation_details_is_swarm_false": "False",
-  "conversation_details_informations": "Informations",
-  "dialog_confirm_title_default": "Confirm action",
-  "conversation_ask_confirm_remove": "Would you really like to remove this conversation?",
-  "conversation_confirm_remove": "Remove",
-  "select_placeholder": "Select an option",
-  "dialog_close": "Close",
-  "dialog_cancel": "Cancel",
-  "Menu": "Menu",
-  "settings_account": "Account settings",
-  "settings_general": "General settings",
-  "logout": "Log out",
-  "username_input_helper_text_success": "Username available",
-  "username_input_helper_text_taken": "Username already taken",
-  "username_input_helper_text_invalid": "Username doesn't follow required pattern",
-  "username_input_helper_text_registration_failed": "Username not correct!",
-  "username_input_helper_text": "",
-  "username_rules_dialog_title": "Username rules",
-  "username_input_label": "Choose an identifier",
-  "password_input_helper_text_too_weak": "Too weak",
-  "password_input_helper_text_weak": "Weak",
-  "password_input_helper_text_medium": "Medium",
-  "password_input_helper_text_strong": "Strong",
-  "password_input_helper_text_registration_failed": "Choose another password!",
-  "password_input_helper_text": "",
-  "password_rules_dialog_title": "Password rules",
-  "password_input_label": "Password",
-  "password_rule_one": "The password must contain at least 1 lowercase alphabetical character.",
-  "password_rule_two": "The password must contain at least 1 uppercase alphabetical character.",
-  "password_rule_three": "The password must contain at least 1 numeric character.",
-  "password_rule_four": "The password must contain at least 1 special character.",
-  "password_rule_five": "The password must be 10 characters or longer to be considered strong.",
-  "username_rule_one": "The username must be 3 to 32 characters long.",
-  "username_rule_two": "The username may contain lowercase and uppercase alphabetical characters.",
-  "username_rule_three": "The username may contain hyphens (-).",
-  "username_rule_four": "The username may contain underscores (_).",
-  "welcome_text": "Welcome to Jami!",
-  "message_member_invited": "{{user}} was invited to join",
-  "message_member_left": "{{user}} left",
-  "message_member_banned": "{{user}} was kicked",
-  "message_member_unbanned": "{{user}} was re-added",
-  "messages_scroll_to_end": "Scroll to end of conversation",
-  "conversation_add_contact_form": "Add a contact",
-  "message_input_placeholder_one": "Write to {{member0}}",
-  "message_input_placeholder_two": "Write to {{member0}} and {{member1}}",
-  "message_input_placeholder_three": "Write to {{member0}}, {{member1}} and {{member2}}",
-  "message_input_placeholder_four": "Write to {{member0}}, {{member1}}, {{member2}}, +1 other member",
-  "message_input_placeholder_more": "Write to {{member0}}, {{member1}}, {{member2}}, +{{excess}} other members",
-  "missed_incoming_call": "Missed incoming call from conversation {{conversationId}}",
-  "conversation_title_one": "{{member0}}",
-  "conversation_title_two": "{{member0}} and {{member1}}",
-  "conversation_title_three": "{{member0}}, {{member1}} and {{member2}}",
-  "conversation_title_four": "{{member0}}, {{member1}}, {{member2}}, +1 other member",
+  "conversation_title_1": "{{member0}}",
+  "conversation_title_2": "{{member0}} and {{member1}}",
+  "conversation_title_3": "{{member0}}, {{member1}} and {{member2}}",
+  "conversation_title_4": "{{member0}}, {{member1}}, {{member2}}, +1 other member",
   "conversation_title_more": "{{member0}}, {{member1}}, {{member2}}, +{{excess}} other members",
-  "conversation_add_contact": "Add contact",
-  "loading": "Loading...",
-  "calling": "Calling {{member0}}",
-  "connecting": "Connecting...",
+  "dialog_cancel": "Cancel",
+  "dialog_close": "Close",
+  "dialog_confirm_title_default": "Confirm action",
   "end_call": "End call",
-  "refuse_call": "Refuse",
-  "accept_call_audio": "Accept in audio",
-  "accept_call_video": "Accept in video",
-  "permission_denied_title": "You denied Jami access to the camera and microphone",
-  "permission_denied_details": "You need to give Jami permission to use the camera and microphone in order to make a call",
-  "settings_title_general": "General",
-  "settings_title_system": "System",
-  "setting_dark_theme": "Dark theme",
-  "setting_language": "Language",
-  "login_username_not_found": "Username not found",
-  "login_invalid_password": "Incorrect password",
-  "login_form_title": "Login",
-  "login_form_username_tooltip": "The username you registered with",
-  "login_form_password_tooltip": "The password you registered with",
-  "jami": "Jami",
-  "jams": "JAMS",
-  "login_form_submit_button": "Log in",
-  "login_form_to_registration_text": "Need an account?",
-  "login_form_to_registration_link": "Register",
-  "registration_success": "You've successfully registered! — Logging you in...",
-  "login_invalid_credentials": "Invalid credentials",
-  "registration_form_title": "Registration",
-  "registration_form_username_tooltip": "Username may be from 3 to 32 chraracters long and contain a-z, A-Z, -, _\n\nClick for more details",
-  "registration_form_password_tooltip": "Choose a password hard to guess for others but easy to remember for you, it must be at least 10 characters. Your account won't be recovered if you forget it!\n\nClick for more details",
-  "registration_form_submit_button": "Register",
-  "registration_form_to_login_text": "Already have an account?",
-  "registration_form_to_login_link": "Log in",
-  "setup_login_title": "Jami web node setup",
-  "setup_login_welcome": "Welcome to the Jami web node setup.",
-  "setup_login_admin_creation": "Let's start by creating a new administrator account to control access to the server configuration.",
-  "password_placeholder": "Password",
-  "setup_login_password_placeholder_creation": "New password",
-  "setup_login_password_placeholder_repeat": "Repeat password",
-  "admin_creation_submit_button": "Create admin account",
-  "conversation_block": "Block conversation",
-  "conversation_ask_confirm_block": "Would you really like to block this conversation?",
-  "conversation_confirm_block": "Block",
-  "share_screen": "Share your screen",
-  "share_window": "Share window",
-  "share_screen_area": "Share an area of your screen",
-  "share_file": "Share a file",
+  "incoming_call": "Incoming call",
   "incoming_call_audio": "Incoming audio call from {{member0}}",
   "incoming_call_video": "Incoming video call from {{member0}}",
+  "jami": "Jami",
+  "jams": "JAMS",
+  "loading": "Loading...",
+  "login_form_password_tooltip": "The password you registered with",
+  "login_form_submit_button": "Log in",
+  "login_form_title": "Login",
+  "login_form_to_registration_link": "Register",
+  "login_form_to_registration_text": "Need an account?",
+  "login_form_username_tooltip": "The username you registered with",
+  "login_invalid_credentials": "Invalid credentials",
+  "login_invalid_password": "Incorrect password",
+  "login_username_not_found": "Username not found",
+  "logout": "Log out",
+  "Menu": "Menu",
+  "message_call_incoming": "Incoming call - {{duration}}",
+  "message_call_incoming_missed": "Missed incoming call",
+  "message_call_outgoing": "Outgoing call - {{duration}}",
+  "message_call_outgoing_missed": "Missed outgoing call",
+  "message_input_placeholder_1": "Write to {{member0}}",
+  "message_input_placeholder_2": "Write to {{member0}} and {{member1}}",
+  "message_input_placeholder_3": "Write to {{member0}}, {{member1}} and {{member2}}",
+  "message_input_placeholder_4": "Write to {{member0}}, {{member1}}, {{member2}}, +1 other member",
+  "message_input_placeholder_more": "Write to {{member0}}, {{member1}}, {{member2}}, +{{excess}} other members",
+  "message_member_banned": "{{user}} was kicked",
+  "message_member_invited": "{{user}} was invited to join",
+  "message_member_joined": "{{user}} joined",
+  "message_member_left": "{{user}} left",
+  "message_member_unbanned": "{{user}} was re-added",
+  "message_swarm_created": "Swarm created",
+  "messages_scroll_to_end": "Scroll to end of conversation",
+  "missed_incoming_call": "Missed incoming call from conversation {{conversationId}}",
+  "ongoing_call_muted": "Ongoing call (muted)",
+  "ongoing_call_unmuted": "Ongoing call",
+  "outgoing_call": "Outgoing call",
+  "password_input_helper_text": "",
+  "password_input_helper_text_medium": "Medium",
+  "password_input_helper_text_registration_failed": "Choose another password!",
+  "password_input_helper_text_strong": "Strong",
+  "password_input_helper_text_too_weak": "Too weak",
+  "password_input_helper_text_weak": "Weak",
+  "password_input_label": "Password",
+  "password_placeholder": "Password",
+  "password_rule_1": "The password must contain at least 1 lowercase alphabetical character.",
+  "password_rule_2": "The password must contain at least 1 uppercase alphabetical character.",
+  "password_rule_3": "The password must contain at least 1 numeric character.",
+  "password_rule_4": "The password must contain at least 1 special character.",
+  "password_rule_5": "The password must be 10 characters or longer to be considered strong.",
+  "password_rules_dialog_title": "Password rules",
+  "permission_denied_details": "You need to give Jami permission to use the camera and microphone in order to make a call",
+  "permission_denied_title": "You denied Jami access to the camera and microphone",
+  "refuse_call": "Refuse",
+  "registration_form_password_tooltip": "Choose a password hard to guess for others but easy to remember for you, it must be at least 10 characters. Your account won't be recovered if you forget it!\n\nClick for more details",
+  "registration_form_submit_button": "Register",
+  "registration_form_title": "Registration",
+  "registration_form_to_login_link": "Log in",
+  "registration_form_to_login_text": "Already have an account?",
+  "registration_form_username_tooltip": "Username may be from 3 to 32 chraracters long and contain a-z, A-Z, -, _\n\nClick for more details",
+  "registration_success": "You've successfully registered! — Logging you in...",
+  "select_placeholder": "Select an option",
+  "setting_dark_theme": "Dark theme",
+  "setting_language": "Language",
+  "settings_account": "Account settings",
+  "settings_general": "General settings",
+  "settings_title_general": "General",
+  "settings_title_system": "System",
+  "setup_login_admin_creation": "Let's start by creating a new administrator account to control access to the server configuration.",
+  "setup_login_password_placeholder_creation": "New password",
+  "setup_login_password_placeholder_repeat": "Repeat password",
+  "setup_login_title": "Jami web node setup",
+  "setup_login_welcome": "Welcome to the Jami web node setup.",
+  "severity": "",
   "severity_error": "Error",
+  "severity_info": "Info",
   "severity_success": "Success",
-  "severity_info": "Info"
+  "share_file": "Share a file",
+  "share_screen": "Share your screen",
+  "share_screen_area": "Share an area of your screen",
+  "share_window": "Share window",
+  "username_input_helper_text": "",
+  "username_input_helper_text_invalid": "Username doesn't follow required pattern",
+  "username_input_helper_text_registration_failed": "Username not correct!",
+  "username_input_helper_text_success": "Username available",
+  "username_input_helper_text_taken": "Username already taken",
+  "username_input_label": "Choose an identifier",
+  "username_rule_1": "The username must be 3 to 32 characters long.",
+  "username_rule_2": "The username may contain lowercase and uppercase alphabetical characters.",
+  "username_rule_3": "The username may contain hyphens (-).",
+  "username_rule_4": "The username may contain underscores (_).",
+  "username_rules_dialog_title": "Username rules",
+  "welcome_text": "Welcome to Jami!"
 }
diff --git a/client/src/locale/fr/translation.json b/client/src/locale/fr/translation.json
index 9b8ad6d..e030574 100644
--- a/client/src/locale/fr/translation.json
+++ b/client/src/locale/fr/translation.json
@@ -1,131 +1,131 @@
 {
-  "severity": "",
+  "accept_call_audio": "Accepter en audio",
+  "accept_call_video": "Accepter en vidéo",
+  "admin_creation_submit_button": "Créer un compte admin",
+  "calling": "Appel vers {{member0}}",
   "change_picture": "Modifier l'image",
-  "message_swarm_created": "Le Swarm a été créé",
-  "ongoing_call_unmuted": "Appel en cours",
-  "ongoing_call_muted": "Appel en cours (muet)",
+  "connecting": "Connexion en cours...",
   "connecting_call": "Connexion...",
-  "outgoing_call": "Appel sortant",
-  "incoming_call": "Appel entrant",
+  "conversation_add_contact": "Ajouter le contact",
+  "conversation_add_contact_form": "Ajouter un contact",
+  "conversation_ask_confirm_block": "Souhaitez-vous vraiment bloquer cette conversation ?",
+  "conversation_ask_confirm_remove": "Souhaitez-vous vraiment supprimer cette conversation ?",
+  "conversation_block": "Bloquer la conversation",
+  "conversation_close": "Fermer la conversation",
+  "conversation_confirm_block": "Bloquer",
+  "conversation_confirm_remove": "Supprimer",
+  "conversation_delete": "Supprimer la conversation",
+  "conversation_details": "Détails de la conversation",
+  "conversation_details_identifier": "Identifiant",
+  "conversation_details_informations": "Informations",
+  "conversation_details_is_swarm": "Est un swarm",
+  "conversation_details_is_swarm_false": "Non",
+  "conversation_details_is_swarm_true": "Oui",
+  "conversation_details_name": "Titre",
+  "conversation_details_qr_code": "Code QR",
   "conversation_message": "Envoyer un message",
   "conversation_start_audiocall": "Démarrer appel audio",
   "conversation_start_videocall": "Démarrer appel vidéo",
-  "conversation_close": "Fermer la conversation",
-  "conversation_details": "Détails de la conversation",
-  "conversation_delete": "Supprimer la conversation",
-  "conversation_details_name": "Titre",
-  "conversation_details_identifier": "Identifiant",
-  "conversation_details_qr_code": "Code QR",
-  "conversation_details_is_swarm": "Est un swarm",
-  "conversation_details_is_swarm_true": "Oui",
-  "conversation_details_is_swarm_false": "Non",
-  "conversation_details_informations": "Informations",
-  "dialog_confirm_title_default": "Merci de confirmer",
-  "conversation_ask_confirm_remove": "Souhaitez-vous vraiment supprimer cette conversation ?",
-  "conversation_confirm_remove": "Supprimer",
-  "select_placeholder": "Sélectionner une option",
-  "dialog_close": "Fermer",
-  "dialog_cancel": "Annuler",
-  "Menu": "Menu",
-  "settings_account": "Paramètres du compte",
-  "settings_general": "Paramètres généraux",
-  "logout": "Se déconnecter",
-  "username_input_helper_text_success": "Nom d'utilisateur disponible",
-  "username_input_helper_text_taken": "Nom d'utilisateur déjà pris",
-  "username_input_helper_text_invalid": "Le nom d'utilisateur ne suit pas le modèle",
-  "username_input_helper_text_registration_failed": "Nom d'utilisateur incorrect!",
-  "username_input_helper_text": "",
-  "username_rules_dialog_title": "Règles du nom d'utilisateur",
-  "username_input_label": "Choisir un identifiant",
-  "password_input_helper_text_too_weak": "Trop faible",
-  "password_input_helper_text_weak": "Faible",
-  "password_input_helper_text_medium": "Moyen",
-  "password_input_helper_text_strong": "Fort",
-  "password_input_helper_text_registration_failed": "Choisissez un autre mot de passe!",
-  "password_input_helper_text": "",
-  "password_rules_dialog_title": "Règles du mot de passe",
-  "password_input_label": "Mot de passe",
-  "password_rule_one": "Le mot de passe doit contenir au moins 1 caractère alphabétique minuscule.",
-  "password_rule_two": "Le mot de passe doit contenir au moins 1 caractère alphabétique majuscule.",
-  "password_rule_three": "Le mot de passe doit contenir au moins 1 caractère numérique.",
-  "password_rule_four": "Le mot de passe doit contenir au moins 1 caractère spécial.",
-  "password_rule_five": "Le mot de passe doit avoir au moins 10 caractères pour être considéré fort.",
-  "username_rule_one": "Le nom d'utilisateur doit avoir de 3 à 32 caractères.",
-  "username_rule_two": "Le nom d'utilisateur peut contenir des caractères alphabétiques minuscules et majuscules.",
-  "username_rule_three": "Le nom d'utilisateur peut contenir des tirets (-).",
-  "username_rule_four": "Le nom d'utilisateur peut contenir des tirets bas (_).",
-  "welcome_text": "Bienvenue sur Jami!",
-  "messages_scroll_to_end": "Faire défiler jusqu'à la fin de la conversation",
-  "conversation_add_contact_form": "Ajouter un contact",
-  "message_input_placeholder_one": "Écrire à {{member0}}",
-  "message_input_placeholder_two": "Écrire à {{member0}} et {{member1}}",
-  "message_input_placeholder_three": "Écrire à {{member0}}, {{member1}} et {{member2}}",
-  "message_input_placeholder_four": "Écrire à {{member0}}, {{member1}}, {{member2}}, +1 autre membre",
-  "message_input_placeholder_more": "Écrire à {{member0}}, {{member1}}, {{member2}}, +{{excess}} autres membres",
-  "missed_incoming_call": "Appel manqué de la conversation {{conversationId}}",
-  "conversation_title_one": "{{member0}}",
-  "conversation_title_two": "{{member0}} et {{member1}}",
-  "conversation_title_three": "{{member0}}, {{member1}} et {{member2}}",
-  "conversation_title_four": "{{member0}}, {{member1}}, {{member2}}, +1 autre membre",
+  "conversation_title_1": "{{member0}}",
+  "conversation_title_2": "{{member0}} et {{member1}}",
+  "conversation_title_3": "{{member0}}, {{member1}} et {{member2}}",
+  "conversation_title_4": "{{member0}}, {{member1}}, {{member2}}, +1 autre membre",
   "conversation_title_more": "{{member0}}, {{member1}}, {{member2}}, +{{excess}} autres membres",
-  "conversation_add_contact": "Ajouter le contact",
-  "loading": "Chargement...",
-  "calling": "Appel vers {{member0}}",
-  "connecting": "Connexion en cours...",
+  "dialog_cancel": "Annuler",
+  "dialog_close": "Fermer",
+  "dialog_confirm_title_default": "Merci de confirmer",
   "end_call": "Fin d'appel",
-  "refuse_call": "Refuser",
-  "accept_call_audio": "Accepter en audio",
-  "accept_call_video": "Accepter en vidéo",
-  "permission_denied_title": "Vous avez refusé à Jami les accès à votre caméra et microphone",
-  "permission_denied_details": "Vous devez donner à Jami le droit d'utiliser votre caméra et votre microphone afin de faire un appel",
-  "settings_title_general": "Général",
-  "settings_title_system": "Système",
-  "setting_dark_theme": "Thème sombre",
-  "setting_language": "Langue",
-  "login_username_not_found": "Nom d'utilisateur introuvable",
-  "login_invalid_password": "Mot de passe incorrect",
-  "login_form_title": "Connexion",
-  "login_form_username_tooltip": "Le nom d'utilisateur avec lequel vous vous êtes inscrit(e)",
-  "login_form_password_tooltip": "Le mot de passe avec lequel vous vous êtes inscrit(e)",
+  "incoming_call": "Appel entrant",
+  "incoming_call_audio": "Appel audio entrant de {{member0}}",
+  "incoming_call_video": "Appel vidéo entrant de {{member0}}",
   "jami": "Jami",
   "jams": "JAMS",
+  "loading": "Chargement...",
+  "login_form_password_tooltip": "Le mot de passe avec lequel vous vous êtes inscrit(e)",
   "login_form_submit_button": "Se connecter",
-  "login_form_to_registration_text": "Besoin d'un compte?",
+  "login_form_title": "Connexion",
   "login_form_to_registration_link": "S'inscrire",
-  "registration_success": "Inscription réussie! — Connexion en cours...",
+  "login_form_to_registration_text": "Besoin d'un compte?",
+  "login_form_username_tooltip": "Le nom d'utilisateur avec lequel vous vous êtes inscrit(e)",
   "login_invalid_credentials": "Identifiants incorrects",
-  "registration_form_title": "Inscription",
-  "registration_form_username_tooltip": "Le nom d'utilisateur doit avoir de 3 à 32 caractères et contenir a-z, A-Z, -, _\n\nCliquer pour plus de détails",
-  "registration_form_password_tooltip": "Choisissez un mot de passe difficile à deviner pour les autres, mais facile à retenir pour vous, il doit avoir au moins 10 caractères. Votre compte ne sera pas récupéré si vous l'oubliez!\n\nCliquer pour plus de détails",
-  "registration_form_submit_button": "S'inscrire",
-  "registration_form_to_login_text": "Déjà inscrit?",
-  "registration_form_to_login_link": "Se connecter",
-  "setup_login_title": "Configuration du noeud web Jami",
-  "setup_login_welcome": "Bienvenue à la configuration du noeud web Jami.",
-  "setup_login_admin_creation": "Commençons par créer un nouveau compte administrateur pour contrôler l'accès à la configuration du serveur.",
-  "password_placeholder": "Mot de passe",
-  "setup_login_password_placeholder_creation": "Nouveau mot de passe",
-  "setup_login_password_placeholder_repeat": "Répéter le mot de passe",
-  "admin_creation_submit_button": "Créer un compte admin",
-  "message_call_outgoing_missed": "Appel sortant manqué",
+  "login_invalid_password": "Mot de passe incorrect",
+  "login_username_not_found": "Nom d'utilisateur introuvable",
+  "logout": "Se déconnecter",
+  "Menu": "Menu",
+  "message_call_incoming": "Appel sortant - {{duration}}",
   "message_call_incoming_missed": "Appel entrant manqué",
   "message_call_outgoing": "Appel entrant - {{duration}}",
-  "message_call_incoming": "Appel sortant - {{duration}}",
+  "message_call_outgoing_missed": "Appel sortant manqué",
+  "message_input_placeholder_1": "Écrire à {{member0}}",
+  "message_input_placeholder_2": "Écrire à {{member0}} et {{member1}}",
+  "message_input_placeholder_3": "Écrire à {{member0}}, {{member1}} et {{member2}}",
+  "message_input_placeholder_4": "Écrire à {{member0}}, {{member1}}, {{member2}}, +1 autre membre",
+  "message_input_placeholder_more": "Écrire à {{member0}}, {{member1}}, {{member2}}, +{{excess}} autres membres",
+  "message_member_banned": "{{user}} a été exclu(e)",
   "message_member_invited": "{{user}} a été invité(e)",
   "message_member_joined": "{{user}} s'est joint(e)",
   "message_member_left": "{{user}} a quitté",
-  "message_member_banned": "{{user}} a été exclu(e)",
   "message_member_unbanned": "{{user}} a été de nouveau rajouté(e)",
-  "conversation_block": "Bloquer la conversation",
-  "conversation_ask_confirm_block": "Souhaitez-vous vraiment bloquer cette conversation ?",
-  "conversation_confirm_block": "Bloquer",
-  "share_screen": "Partager votre écran",
-  "share_window": "Partager la fenêtre",
-  "share_screen_area": "Partager une partie de l'écran",
-  "share_file": "Partager le fichier",
-  "incoming_call_audio": "Appel audio entrant de {{member0}}",
-  "incoming_call_video": "Appel vidéo entrant de {{member0}}",
+  "message_swarm_created": "Le Swarm a été créé",
+  "messages_scroll_to_end": "Faire défiler jusqu'à la fin de la conversation",
+  "missed_incoming_call": "Appel manqué de la conversation {{conversationId}}",
+  "ongoing_call_muted": "Appel en cours (muet)",
+  "ongoing_call_unmuted": "Appel en cours",
+  "outgoing_call": "Appel sortant",
+  "password_input_helper_text": "",
+  "password_input_helper_text_medium": "Moyen",
+  "password_input_helper_text_registration_failed": "Choisissez un autre mot de passe!",
+  "password_input_helper_text_strong": "Fort",
+  "password_input_helper_text_too_weak": "Trop faible",
+  "password_input_helper_text_weak": "Faible",
+  "password_input_label": "Mot de passe",
+  "password_placeholder": "Mot de passe",
+  "password_rule_1": "Le mot de passe doit contenir au moins 1 caractère alphabétique minuscule.",
+  "password_rule_2": "Le mot de passe doit contenir au moins 1 caractère alphabétique majuscule.",
+  "password_rule_3": "Le mot de passe doit contenir au moins 1 caractère numérique.",
+  "password_rule_4": "Le mot de passe doit contenir au moins 1 caractère spécial.",
+  "password_rule_5": "Le mot de passe doit avoir au moins 10 caractères pour être considéré fort.",
+  "password_rules_dialog_title": "Règles du mot de passe",
+  "permission_denied_details": "Vous devez donner à Jami le droit d'utiliser votre caméra et votre microphone afin de faire un appel",
+  "permission_denied_title": "Vous avez refusé à Jami les accès à votre caméra et microphone",
+  "refuse_call": "Refuser",
+  "registration_form_password_tooltip": "Choisissez un mot de passe difficile à deviner pour les autres, mais facile à retenir pour vous, il doit avoir au moins 10 caractères. Votre compte ne sera pas récupéré si vous l'oubliez!\n\nCliquer pour plus de détails",
+  "registration_form_submit_button": "S'inscrire",
+  "registration_form_title": "Inscription",
+  "registration_form_to_login_link": "Se connecter",
+  "registration_form_to_login_text": "Déjà inscrit?",
+  "registration_form_username_tooltip": "Le nom d'utilisateur doit avoir de 3 à 32 caractères et contenir a-z, A-Z, -, _\n\nCliquer pour plus de détails",
+  "registration_success": "Inscription réussie! — Connexion en cours...",
+  "select_placeholder": "Sélectionner une option",
+  "setting_dark_theme": "Thème sombre",
+  "setting_language": "Langue",
+  "settings_account": "Paramètres du compte",
+  "settings_general": "Paramètres généraux",
+  "settings_title_general": "Général",
+  "settings_title_system": "Système",
+  "setup_login_admin_creation": "Commençons par créer un nouveau compte administrateur pour contrôler l'accès à la configuration du serveur.",
+  "setup_login_password_placeholder_creation": "Nouveau mot de passe",
+  "setup_login_password_placeholder_repeat": "Répéter le mot de passe",
+  "setup_login_title": "Configuration du noeud web Jami",
+  "setup_login_welcome": "Bienvenue à la configuration du noeud web Jami.",
+  "severity": "",
   "severity_error": "Erreur",
+  "severity_info": "Info",
   "severity_success": "Succès",
-  "severity_info": "Info"
+  "share_file": "Partager le fichier",
+  "share_screen": "Partager votre écran",
+  "share_screen_area": "Partager une partie de l'écran",
+  "share_window": "Partager la fenêtre",
+  "username_input_helper_text": "",
+  "username_input_helper_text_invalid": "Le nom d'utilisateur ne suit pas le modèle",
+  "username_input_helper_text_registration_failed": "Nom d'utilisateur incorrect!",
+  "username_input_helper_text_success": "Nom d'utilisateur disponible",
+  "username_input_helper_text_taken": "Nom d'utilisateur déjà pris",
+  "username_input_label": "Choisir un identifiant",
+  "username_rule_1": "Le nom d'utilisateur doit avoir de 3 à 32 caractères.",
+  "username_rule_2": "Le nom d'utilisateur peut contenir des caractères alphabétiques minuscules et majuscules.",
+  "username_rule_3": "Le nom d'utilisateur peut contenir des tirets (-).",
+  "username_rule_4": "Le nom d'utilisateur peut contenir des tirets bas (_).",
+  "username_rules_dialog_title": "Règles du nom d'utilisateur",
+  "welcome_text": "Bienvenue sur Jami!"
 }