From 471dcf131d73567f49eb36b27de5ccdf1620b955 Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Mon, 22 Sep 2025 10:39:48 +0200 Subject: [PATCH] add id and proxy address for third part connection --- Linphone/core/login/LoginPage.cpp | 22 +- Linphone/core/login/LoginPage.hpp | 7 +- Linphone/data/languages/de.ts | 709 +++++++++--------- Linphone/data/languages/en.ts | 690 ++++++++--------- Linphone/data/languages/fr_FR.ts | 694 ++++++++--------- Linphone/model/account/AccountManager.cpp | 62 +- Linphone/model/account/AccountManager.hpp | 7 +- .../view/Page/Form/Login/SIPLoginPage.qml | 443 ++++++----- Linphone/view/Style/Typography.qml | 7 + 9 files changed, 1388 insertions(+), 1253 deletions(-) diff --git a/Linphone/core/login/LoginPage.cpp b/Linphone/core/login/LoginPage.cpp index 74f8bec38..3c3860414 100644 --- a/Linphone/core/login/LoginPage.cpp +++ b/Linphone/core/login/LoginPage.cpp @@ -64,22 +64,26 @@ void LoginPage::login(const QString &username, const QString &password, QString displayName, QString domain, - LinphoneEnums::TransportType transportType) { + LinphoneEnums::TransportType transportType, + QString serverAddress, + QString connectionId) { setErrorMessage(""); App::postModelAsync([=]() { // Create on Model thread. AccountManager *accountManager = new AccountManager(); connect(accountManager, &AccountManager::registrationStateChanged, this, - [accountManager, this](linphone::RegistrationState state, QString message) mutable { + [accountManager, this](linphone::RegistrationState state, linphone::Reason reason, + QString message) mutable { // View thread setRegistrationState(state); + mBadIds = reason == linphone::Reason::Forbidden; + emit reasonChanged(); switch (state) { case linphone::RegistrationState::Failed: { - if (message.isEmpty()) - //: Erreur durant la connexion - setErrorMessage(tr("default_account_connection_state_error_toast")); - else - setErrorMessage(message); + if (message.isEmpty()) + //: Erreur durant la connexion, veuillez vérifier vos paramètres + setErrorMessage(tr("default_account_connection_state_error_toast")); + else setErrorMessage(message); if (accountManager) { accountManager->deleteLater(); accountManager = nullptr; @@ -110,9 +114,9 @@ void LoginPage::login(const QString &username, QString error; if (!accountManager->login(username, password, displayName, domain, LinphoneEnums::toLinphone(transportType), - &error)) { + &error, serverAddress, connectionId)) { setErrorMessage(error); - emit accountManager->registrationStateChanged(linphone::RegistrationState::None); + emit accountManager->registrationStateChanged(linphone::RegistrationState::None, linphone::Reason::None); } }); } diff --git a/Linphone/core/login/LoginPage.hpp b/Linphone/core/login/LoginPage.hpp index 7a3bf356a..4dc9f9468 100644 --- a/Linphone/core/login/LoginPage.hpp +++ b/Linphone/core/login/LoginPage.hpp @@ -35,12 +35,15 @@ public: Q_PROPERTY(linphone::RegistrationState registrationState READ getRegistrationState NOTIFY registrationStateChanged) Q_PROPERTY(QString errorMessage READ getErrorMessage NOTIFY errorMessageChanged) + Q_PROPERTY(bool badIds MEMBER mBadIds NOTIFY reasonChanged) Q_INVOKABLE void login(const QString &username, const QString &password, QString displayName = QString(), QString domain = QString(), - LinphoneEnums::TransportType transportType = LinphoneEnums::TransportType::Tls); + LinphoneEnums::TransportType transportType = LinphoneEnums::TransportType::Tls, + QString serverAddress = QString(), + QString connectionId = QString()); linphone::RegistrationState getRegistrationState() const; void setRegistrationState(linphone::RegistrationState status); @@ -51,10 +54,12 @@ public: signals: void registrationStateChanged(); void errorMessageChanged(QString error); + void reasonChanged(); private: linphone::RegistrationState mRegistrationState = linphone::RegistrationState::None; QString mErrorMessage; + bool mBadIds = false; DECLARE_ABSTRACT_OBJECT }; diff --git a/Linphone/data/languages/de.ts b/Linphone/data/languages/de.ts index 832d1bb86..0431731ac 100644 --- a/Linphone/data/languages/de.ts +++ b/Linphone/data/languages/de.ts @@ -83,45 +83,45 @@ AccountManager - + assistant_account_login_already_connected_error - "Le compte est déjà connecté" + "The account is already connected" Das Konto ist bereits verbunden - + assistant_account_login_proxy_address_error - "Impossible de créer l'adresse proxy. Merci de vérifier le nom de domaine." + "Unable to create proxy address. Please check the domain name." Proxy-Adresse konnte nicht erstellt werden. Bitte überprüfen Sie den Domänenname. - + assistant_account_login_address_configuration_error - "Impossible de configurer l'adresse : `%1`." + "Unable to configure address: `%1`." Folgende Adresse konnte nicht konfiguriert werden: `%1`. - + assistant_account_login_params_configuration_error - "Impossible de configurer les paramètres du compte." + "Unable to configure account settings." Kontoeinstellungen konnten nicht konfiguriert werden. - + assistant_account_login_forbidden_error - "Le couple identifiant mot de passe ne correspond pas" + "Username and password do not match" Benutzername und Passwort stimmen nicht überein - + assistant_account_login_error - "Erreur durant la connexion" + "Error during connection, please verify your parameters" Fehler bei der Verbindung - + assistant_account_add_error - "Impossible d'ajouter le compte." + "Unable to add account." Konto konnte nicht hinzugefügt werden. @@ -480,19 +480,25 @@ settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls Erstelle Ende-zu-Ende verschlüsselte Konferenzen und Gruppenrufe + + + settings_advanced_hide_fps_title + + AllContactListView - + car_favorites_contacts_title "Favoris" Favoriten - + generic_address_picker_contacts_list_title 'Contacts' Kontakte @@ -507,94 +513,94 @@ App - + remote_provisioning_dialog Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? Möchten Sie die Remote-Konfiguration von dieser Adresse herunterladen und anwenden? - - + + info_popup_error_title Error - - + + info_popup_configuration_failed_message Remote provisioning failed : %1 - + configuration_error_detail not reachable - + application_description "A free and open source SIP video-phone." Ein kostenloses Open-Source SIP Video-Telefon. - + command_line_arg_order "Send an order to the application towards a command line" Kommandozeilen-Befehl an die Anwendung schicken - + command_line_option_show_help Zeige Hilfe - + command_line_option_show_app_version App-Version anzeigen - + command_line_option_config_to_fetch "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." Abzurufende Linphone-Konfigurationsdatei angeben. Sie wird mit der aktuellen Konfiguration zusammengeführt. - + command_line_option_config_to_fetch_arg "URL, path or file" URL, Pfad oder Datei - + command_line_option_minimized - + command_line_option_log_to_stdout Debug-Informationen auf der Standardausgabe ausgeben - + command_line_option_print_app_logs_only "Print only logs from the application" Nur Anwendungs-Logs ausgeben - + hide_action "Cacher" "Afficher" Ausblenden - + show_action Zeigen - + quit_action "Quitter" Beenden @@ -620,19 +626,19 @@ Passwort - + cancel "Annuler Abbrechen - + assistant_account_login Connexion Anmelden - + assistant_account_login_missing_password Veuillez saisir un mot de passe Bitte Passwort eingeben @@ -700,8 +706,21 @@ media_encryption_none + None Keine + + + media_encryption_srtp + SRTP + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + Post-quantum ZRTP + CallHistoryLayout @@ -1785,53 +1804,53 @@ ContactListItem - + contact_details_remove_from_favourites "Enlever des favoris" Aus Favoriten entfernen - + contact_details_add_to_favourites "Ajouter aux favoris" Zu Favoriten hinzufügen - + Partager Teilen - + information_popup_error_title Fehler - + information_popup_vcard_creation_error La création du fichier vcard a échoué VCard-Erstellung fehlgeschlagen - + information_popup_vcard_creation_title VCard créée VCard erstellt - + information_popup_vcard_creation_success "VCard du contact enregistrée dans %1" VCard in %1 gespeichert - + contact_sharing_email_title Partage de contact Kontakt teilen - + contact_details_delete "Supprimer" Löschen @@ -1969,169 +1988,169 @@ Zurzeit keine Kontakte - - + + contact_details_edit "Éditer" Bearbeiten - + contact_call_action "Appel" Anrufen - + contact_message_action "Message" Nachricht - + contact_video_call_action "Appel vidéo" Videoanruf - + contact_presence_status_online "En ligne" Online - + contact_presence_status_busy "Occupé" Beschäftigt - + contact_presence_status_do_not_disturb "Ne pas déranger" Nicht stören - + contact_presence_status_offline "Hors ligne" Offline - + contact_details_numbers_and_addresses_title "Coordonnées" Kontaktinformationen - + contact_details_company_name "Société :" Unternehmen : - + contact_details_job_title "Poste :" Beruf : - + contact_details_medias_title "Medias" Medien - + contact_details_medias_subtitle "Afficher les medias partagés" Geteilte Medien anzeigen - + contact_details_trust_title "Confiance" Vertrauen - + contact_dialog_devices_trust_title "Niveau de confiance - Appareils vérifiés" Vertrauenslevel - Verifizierte Geräte - + contact_details_no_device_found "Aucun appareil" Kein Gerät - + contact_device_without_name "Appareil inconnu" Unbekanntes Gerät - + contact_make_call_check_device_trust "Vérifier" Überprüfen - + contact_details_actions_title "Autres actions" Weitere Aktionen - + contact_details_remove_from_favourites "Retirer des favoris" Aus Favoriten entfernen - + contact_details_add_to_favourites "Ajouter aux favoris" Zu Favoriten hinzufügen - + contact_details_share "Partager" Teilen - + information_popup_error_title Fehler - + contact_details_share_error_mesage "La création du fichier vcard a échoué" VCard-Erstellung fehlgeschlagen - + contact_details_share_success_title "VCard créée" VCard erstellt - + contact_details_share_success_mesage "VCard du contact enregistrée dans %1" VCard wurde in %1 gespeichert - + contact_details_share_email_title "Partage de contact" Kontakt teilen - + contact_details_delete "Supprimer ce contact" Kontakt löschen @@ -2390,7 +2409,7 @@ - + sip_address "Adresse SIP" SIP-Adresse @@ -2747,7 +2766,7 @@ Link zur Remote-Konfiguration - + default_account_connection_state_error_toast Fehler bei der Verbindung @@ -2755,7 +2774,7 @@ MagicSearchList - + device_id Telefon @@ -2763,73 +2782,73 @@ MainLayout - + bottom_navigation_calls_label "Appels" Anrufe - + bottom_navigation_contacts_label "Contacts" Kontakte - + bottom_navigation_conversations_label "Conversations" Konversationen - + bottom_navigation_meetings_label "Réunions" Besprechungen - + searchbar_placeholder_text "Rechercher un contact, appeler %1" Kontakt suchen, %1 anrufen - + searchbar_placeholder_text_chat_feature_enabled "ou envoyer un message …" oder eine Nachricht senden … - - + + contact_presence_status_disable_do_not_disturb "Désactiver ne pas déranger" Nicht stören deaktivieren - + information_popup_error_title Fehler - + no_voicemail_uri_error_message "L'URI de messagerie vocale n'est pas définie." Die Voicemail-URI ist nicht definiert. - + drawer_menu_manage_account Mon compte Mein Konto - + contact_presence_status_enable_do_not_disturb "Activer ne pas déranger" Nicht stören aktivieren - + settings_title Einstellungen @@ -3679,67 +3698,85 @@ Pour les activer dans un projet commercial, merci de nous contacter. Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte. - + assistant_third_party_sip_account_create_linphone_account "Créer un compte linphone" Linphone-Konto erstellen - + assistant_third_party_sip_account_warning_ok "Je comprends" Verstanden - + username "Nom d'utilisateur" Benutzername - + password Passwort - + sip_address_domain "Domaine" Domäne - + sip_address_display_name Nom d'affichage Anzeigename - + transport "Transport" Transport - + assistant_account_login Anmelden - + assistant_account_login_missing_username Bitte Benutzernamen eingeben - + assistant_account_login_missing_password Bitte Passwort eingeben - + assistant_account_login_missing_domain "Veuillez saisir un nom de domaine Bitte Domäne eingeben + + + login_advanced_parameters_label + Advanced parameters + + + + + login_proxy_server_url + "Proxy server URL" + + + + + login_id + "Connexion ID (if different)" + + ScreencastSettings @@ -3962,24 +3999,24 @@ Pour les activer dans un projet commercial, merci de nous contacter. Utils - + information_popup_call_not_created_message "L'appel n'a pas pu être créé" Anruf konnte nicht erstellt werden - - + + information_popup_error_title - + information_popup_group_call_not_created_message - + number_of_years %n an(s) @@ -3988,7 +4025,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + number_of_month "%n mois" @@ -3997,7 +4034,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + number_of_weeks %n semaine(s) @@ -4006,7 +4043,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + number_of_days %n jour(s) @@ -4015,19 +4052,19 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + today "Aujourd'hui" Heute - + yesterday "Hier Gestern - + call_zrtp_token_verification_possible_characters "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 @@ -4195,1117 +4232,1117 @@ Pour les activer dans un projet commercial, merci de nous contacter. country - + Afghanistan Afghanistan - + Albania Albanien - + Algeria Algerien - + AmericanSamoa Amerikanisch-Samoa - + Andorra Andorra - + Angola Angola - + Anguilla Anguilla - + AntiguaAndBarbuda Antigua und Barbuda - + Argentina Argentinien - + Armenia Armenien - + Aruba Aruba - + Australia Australien - + Austria Österreich - + Azerbaijan Aserbaidschan - + Bahamas Bahamas - + Bahrain Bahrain - + Bangladesh Bangladesch - + Barbados Barbados - + Belarus Belarus - + Belgium Belgien - + Belize Belize - + Benin Benin - + Bermuda Bermuda - + Bhutan Bhutan - + Bolivia Bolivien - + BosniaAndHerzegowina Bosnien und Herzegowina - + Botswana Botswana - + Brazil Brasilien - + Brunei Brunei - + Bulgaria Bulgarien - + BurkinaFaso Burkina Faso - + Burundi Burundi - + Cambodia Kambodscha - + Cameroon Kamerun - + Canada Kanada - + CapeVerde Kap Verde - + CaymanIslands Caymaninseln - + CentralAfricanRepublic Zentralafrikanische Republik - + Chad Tschad - + Chile Chile - + China China - + Colombia Kolumbien - + Comoros Komoren - + PeoplesRepublicOfCongo Volksrepublik Kongo - + CookIslands Cookinseln - + CostaRica Kosta Rica - + IvoryCoast Elfenbeinküste - + Croatia Kroatien - + Cuba Kuba - + Cyprus Zypern - + CzechRepublic Tschechische Republik - + Denmark Dänemark - + Djibouti Dschibuti - + Dominica Dominica - + DominicanRepublic Dominikanische Republik - + Ecuador Ecuador - + Egypt Ägypten - + ElSalvador El Salvador - + EquatorialGuinea Äquatorialguinea - + Eritrea Eritrea - + Estonia Estland - + Ethiopia Äthiopien - + FalklandIslands Falklandinseln - + FaroeIslands Färöer-Inseln - + Fiji Fidschi - + Finland Finnland - + France Frankreich - + FrenchGuiana Französisch-Guayana - + FrenchPolynesia Französisch-Polynesien - + Gabon Gabon - + Gambia Gambia - + Georgia Georgien - + Germany Deutschland - + Ghana Ghana - + Gibraltar Gibraltar - + Greece Griechenland - + Greenland Grönland - + Grenada Grenada - + Guadeloupe Guadeloupe - + Guam Guam - + Guatemala Guatemala - + Guinea Guinea - + GuineaBissau Guinea-Bissau - + Guyana Guyana - + Haiti Haiti - + Honduras Honduras - + DemocraticRepublicOfCongo Demokratische Republik Kongo - + HongKong Hongkong - + Hungary Ungarn - + Iceland Island - + India Indien - + Indonesia Indonesien - + Iran Iran - + Iraq Irak - + Ireland Irland - + Israel Israel - + Italy Italien - + Jamaica Jamaika - + Japan Japan - + Jordan Jordanien - + Kazakhstan Kasachstan - + Kenya Kenia - + Kiribati Kiribati - + DemocraticRepublicOfKorea Demokratische Volksrepublik Korea - + RepublicOfKorea Republik Korea - + Kuwait Kuwait - + Kyrgyzstan Kirgisistan - + Laos Laos - + Latvia Lettland - + Lebanon Libanon - + Lesotho Lesotho - + Liberia Liberien - + Libya Libyen - + Liechtenstein Liechtenstein - + Lithuania Litauen - + Luxembourg Luxemburg - + Macau Macau - + Macedonia Mazedonien - + Madagascar Madagaskar - + Malawi Malawi - + Malaysia Malaysien - + Maldives Malediven - + Mali Mali - + Malta Malta - + MarshallIslands Marshallinseln - + Martinique Martinique - + Mauritania Mauretanien - + Mauritius Mauritius - + Mayotte Mayotte - + Mexico Mexiko - + Micronesia Föderierte Staaten von Mikronesien - + Moldova Moldawien - + Monaco Monaco - + Mongolia Mongolei - + Montenegro Montenegro - + Montserrat Montserrat - + Morocco Marokko - + Mozambique Mosambik - + Myanmar Myanmar - + Namibia Namibia - + NauruCountry Nauru - + Nepal Nepal - + Netherlands Niederlande - + NewCaledonia Neukaledonien - + NewZealand Neuseeland - + Nicaragua Nicaragua - + Niger Niger - + Nigeria Nigeria - + Niue Niue - + NorfolkIsland Norfolkinsel - + NorthernMarianaIslands Nördliche Marianeninseln - + Norway Norwegen - + Oman Oman - + Pakistan Pakistan - + Palau Palau - + PalestinianTerritories Palästinensische Gebiete - + Panama Panama - + PapuaNewGuinea Papua-Neuguinea - + Paraguay Paraguay - + Peru Peru - + Philippines Philippinen - + Poland Polen - + Portugal Portugal - + PuertoRico Puerto Rico - + Qatar Katar - + Reunion Réunion - + Romania Rumänien - + RussianFederation Russische Föderation - + Rwanda Ruanda - + SaintHelena Sankt Helena - + SaintKittsAndNevis Sankt Kitts und Nevis - + SaintLucia Sankt Lucia - + SaintPierreAndMiquelon Sankt Pierre und Miquelon - + SaintVincentAndTheGrenadines Sankt Vincent und die Grenadinen - + Samoa Samoa - + SanMarino San Marino - + SaoTomeAndPrincipe São Tomé und Príncipe - + SaudiArabia Saudi-Arabien - + Senegal Senegal - + Serbia Serbien - + Seychelles Seychellen - + SierraLeone Sierra Leone - + Singapore Singapur - + Slovakia Slowakei - + Slovenia Slowenien - + SolomonIslands Salomonen - + Somalia Somalia - + SouthAfrica Südafrika - + Spain Spanien - + SriLanka Sri Lanka - + Sudan Sudan - + Suriname Suriname - + Swaziland Eswatini - + Sweden Schweden - + Switzerland Schweiz - + Syria Syrien - + Taiwan Taiwan - + Tajikistan Tadschikistan - + Tanzania Tansania - + Thailand Thailand - + Togo Togo - + Tokelau Tokelau - + Tonga Tonga - + TrinidadAndTobago Trinidad und Tobago - + Tunisia Tunesien - + Turkey Türkei - + Turkmenistan Turkmenistan - + TurksAndCaicosIslands Turks- und Caicosinseln - + Tuvalu Tuvalu - + Uganda Uganda - + Ukraine Ukraine - + UnitedArabEmirates Vereinigte Arabische Emirate - + UnitedKingdom Vereinigtes Königreich - + UnitedStates Vereinigte Staaten - + Uruguay Uruguay - + Uzbekistan Usbekistan - + Vanuatu Vanuatu - + Venezuela Venezuela - + Vietnam Vietnam - + WallisAndFutunaIslands Wallis und Futuna Inseln - + Yemen Jemen - + Zambia Sambia - + Zimbabwe Simbabwe diff --git a/Linphone/data/languages/en.ts b/Linphone/data/languages/en.ts index 36e5ddaa9..4d7fab56c 100644 --- a/Linphone/data/languages/en.ts +++ b/Linphone/data/languages/en.ts @@ -83,45 +83,45 @@ AccountManager - + assistant_account_login_already_connected_error - "Le compte est déjà connecté" + "The account is already connected" The account is already connected - + assistant_account_login_proxy_address_error - "Impossible de créer l'adresse proxy. Merci de vérifier le nom de domaine." + "Unable to create proxy address. Please check the domain name." Unable to create proxy address. Please check the domain name. - + assistant_account_login_address_configuration_error - "Impossible de configurer l'adresse : `%1`." + "Unable to configure address: `%1`." Unable to configure address: `%1`. - + assistant_account_login_params_configuration_error - "Impossible de configurer les paramètres du compte." + "Unable to configure account settings." Unable to configure account settings. - + assistant_account_login_forbidden_error - "Le couple identifiant mot de passe ne correspond pas" + "Username and password do not match" Username and password do not match - + assistant_account_login_error - "Erreur durant la connexion" + "Error during connection, please verify your parameters" Error during connection - + assistant_account_add_error - "Impossible d'ajouter le compte." + "Unable to add account." Unable to add account. @@ -492,13 +492,13 @@ AllContactListView - + car_favorites_contacts_title "Favoris" Favorites - + generic_address_picker_contacts_list_title 'Contacts' Contacts @@ -513,94 +513,94 @@ App - + remote_provisioning_dialog Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? Do you want to download and apply remote provisioning from this address ? - - + + info_popup_error_title Error Error - - + + info_popup_configuration_failed_message Remote provisioning failed : %1 Remote provisioning failed : %1 - + configuration_error_detail not reachable not reachable - + application_description "A free and open source SIP video-phone." A free and open source SIP video-phone. - + command_line_arg_order "Send an order to the application towards a command line" Send an order to the application towards a command line - + command_line_option_show_help Show this help - + command_line_option_show_app_version Show app version - + command_line_option_config_to_fetch "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." Specify the linphone configuration file to be fetched. It will be merged with the current configuration. - + command_line_option_config_to_fetch_arg "URL, path or file" URL, path or file - + command_line_option_minimized Minimize - + command_line_option_log_to_stdout Log to stdout some debug information while running - + command_line_option_print_app_logs_only "Print only logs from the application" Print only logs from the application - + hide_action "Cacher" "Afficher" Hide - + show_action Show - + quit_action "Quitter" Quit @@ -626,19 +626,19 @@ Password - + cancel "Annuler Cancel - + assistant_account_login Connexion Connection - + assistant_account_login_missing_password Veuillez saisir un mot de passe Please enter a password @@ -1804,53 +1804,53 @@ ContactListItem - + contact_details_remove_from_favourites "Enlever des favoris" Remove from favorites - + contact_details_add_to_favourites "Ajouter aux favoris" Add to favorites - + Partager Share - + information_popup_error_title Error - + information_popup_vcard_creation_error La création du fichier vcard a échoué VCard creation failed - + information_popup_vcard_creation_title VCard créée VCard created - + information_popup_vcard_creation_success "VCard du contact enregistrée dans %1" VCard has been saved in %1 - + contact_sharing_email_title Partage de contact Share contact - + contact_details_delete "Supprimer" Delete @@ -1988,169 +1988,169 @@ No contact at the moment - - + + contact_details_edit "Éditer" Edit - + contact_call_action "Appel" Call - + contact_message_action "Message" Message - + contact_video_call_action "Appel vidéo" Video call - + contact_presence_status_online "En ligne" Online - + contact_presence_status_busy "Occupé" Busy - + contact_presence_status_do_not_disturb "Ne pas déranger" Do not disturb - + contact_presence_status_offline "Hors ligne" Offline - + contact_details_numbers_and_addresses_title "Coordonnées" Contact details - + contact_details_company_name "Société :" Company : - + contact_details_job_title "Poste :" Job : - + contact_details_medias_title "Medias" Medias - + contact_details_medias_subtitle "Afficher les medias partagés" Show shared media - + contact_details_trust_title "Confiance" Trust - + contact_dialog_devices_trust_title "Niveau de confiance - Appareils vérifiés" Trust Level - Verified Devices - + contact_details_no_device_found "Aucun appareil" No device - + contact_device_without_name "Appareil inconnu" Unknown device - + contact_make_call_check_device_trust "Vérifier" Verify - + contact_details_actions_title "Autres actions" Other actions - + contact_details_remove_from_favourites "Retirer des favoris" Remove from favorites - + contact_details_add_to_favourites "Ajouter aux favoris" Add to favorites - + contact_details_share "Partager" Share - + information_popup_error_title Error - + contact_details_share_error_mesage "La création du fichier vcard a échoué" VCard creation failed - + contact_details_share_success_title "VCard créée" VCard created - + contact_details_share_success_mesage "VCard du contact enregistrée dans %1" VCard has been saved in %1 - + contact_details_share_email_title "Partage de contact" Share contact - + contact_details_delete "Supprimer ce contact" Delete contact @@ -2409,7 +2409,7 @@ - + sip_address "Adresse SIP" SIP address @@ -2766,7 +2766,7 @@ Remote provisioning link - + default_account_connection_state_error_toast Error during connection @@ -2774,7 +2774,7 @@ MagicSearchList - + device_id Phone @@ -2782,73 +2782,73 @@ MainLayout - + bottom_navigation_calls_label "Appels" Calls - + bottom_navigation_contacts_label "Contacts" Contacts - + bottom_navigation_conversations_label "Conversations" Conversations - + bottom_navigation_meetings_label "Réunions" Meetings - + searchbar_placeholder_text "Rechercher un contact, appeler %1" Find contact, call %1 - + searchbar_placeholder_text_chat_feature_enabled "ou envoyer un message …" or send message … - - + + contact_presence_status_disable_do_not_disturb "Désactiver ne pas déranger" Disable do not disturb - + information_popup_error_title Error - + no_voicemail_uri_error_message "L'URI de messagerie vocale n'est pas définie." The voicemail URI is not defined. - + drawer_menu_manage_account Mon compte My account - + contact_presence_status_enable_do_not_disturb "Activer ne pas déranger" Enable do not disturb - + settings_title Settings @@ -3698,67 +3698,85 @@ These features will be hidden if you use a third-party SIP account. To enable them in a commercial project, please contact us. - + assistant_third_party_sip_account_create_linphone_account "Créer un compte linphone" Create a linphone account - + assistant_third_party_sip_account_warning_ok "Je comprends" I understand - + username "Nom d'utilisateur" Username - + password Password - + sip_address_domain "Domaine" Domain - + sip_address_display_name Nom d'affichage Display name - + transport "Transport" Transport - + assistant_account_login Connection - + assistant_account_login_missing_username Please enter a username - + assistant_account_login_missing_password Please enter a password - + assistant_account_login_missing_domain "Veuillez saisir un nom de domaine Please enter a domain + + + login_advanced_parameters_label + Advanced parameters + Advanced parameters + + + + login_proxy_server_url + "Proxy server URL" + Proxy server URL + + + + login_id + "Connexion ID (if different)" + Connexion ID (if different) + ScreencastSettings @@ -3981,24 +3999,24 @@ To enable them in a commercial project, please contact us. Utils - + information_popup_call_not_created_message "L'appel n'a pas pu être créé" Call could not be created - - + + information_popup_error_title Error - + information_popup_group_call_not_created_message Group call couldn't be created - + number_of_years %n an(s) @@ -4007,7 +4025,7 @@ To enable them in a commercial project, please contact us. - + number_of_month "%n mois" @@ -4016,7 +4034,7 @@ To enable them in a commercial project, please contact us. - + number_of_weeks %n semaine(s) @@ -4025,7 +4043,7 @@ To enable them in a commercial project, please contact us. - + number_of_days %n jour(s) @@ -4034,19 +4052,19 @@ To enable them in a commercial project, please contact us. - + today "Aujourd'hui" Today - + yesterday "Hier Yesterday - + call_zrtp_token_verification_possible_characters "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 @@ -4214,1117 +4232,1117 @@ To enable them in a commercial project, please contact us. country - + Afghanistan Afghanistan - + Albania Albania - + Algeria Algeria - + AmericanSamoa American Samoa - + Andorra Andorra - + Angola Angola - + Anguilla Anguilla - + AntiguaAndBarbuda Antigua-et-Barbuda - + Argentina Argentina - + Armenia Armenia - + Aruba Aruba - + Australia Australia - + Austria Austria - + Azerbaijan Azerbaijan - + Bahamas Bahamas - + Bahrain Bahrain - + Bangladesh Bangladesh - + Barbados Barbados - + Belarus Belarus - + Belgium Belgium - + Belize Belize - + Benin Benin - + Bermuda Bermuda - + Bhutan Bhutan - + Bolivia Bolivia - + BosniaAndHerzegowina Bosnia And Herzegowina - + Botswana Botswana - + Brazil Brazil - + Brunei Brunei - + Bulgaria Bulgaria - + BurkinaFaso Burkina Faso - + Burundi Burundi - + Cambodia Cambodia - + Cameroon Cameroon - + Canada Canada - + CapeVerde Cape Verde - + CaymanIslands Cayman Islands - + CentralAfricanRepublic Central African Republic - + Chad Chad - + Chile Chile - + China China - + Colombia Colombia - + Comoros Comoros - + PeoplesRepublicOfCongo Peoples Republic Of Congo - + CookIslands Cook Islands - + CostaRica Costa Rica - + IvoryCoast Ivory Coast - + Croatia Croatia - + Cuba Cuba - + Cyprus Cyprus - + CzechRepublic Czech Republic - + Denmark Denmark - + Djibouti Djibouti - + Dominica Dominica - + DominicanRepublic Dominican Republic - + Ecuador Ecuador - + Egypt Egypt - + ElSalvador El Salvador - + EquatorialGuinea Equatorial Guinea - + Eritrea Eritrea - + Estonia Estonia - + Ethiopia Ethiopia - + FalklandIslands Falkland Islands - + FaroeIslands Faroe Islands - + Fiji Fiji - + Finland Finland - + France France - + FrenchGuiana French Guiana - + FrenchPolynesia French Polynesia - + Gabon Gabon - + Gambia Gambia - + Georgia Georgia - + Germany Germany - + Ghana Ghana - + Gibraltar Gibraltar - + Greece Greece - + Greenland Greenland - + Grenada Grenada - + Guadeloupe Guadeloupe - + Guam Guam - + Guatemala Guatemala - + Guinea Guinea - + GuineaBissau Guinea-Bissau - + Guyana Guyana - + Haiti Haiti - + Honduras Honduras - + DemocraticRepublicOfCongo Democratic Republic Of Congo - + HongKong Hong Kong - + Hungary Hungary - + Iceland Iceland - + India India - + Indonesia Indonesia - + Iran Iran - + Iraq Iraq - + Ireland Ireland - + Israel Israel - + Italy Italie - + Jamaica Jamaica - + Japan Japan - + Jordan Jordan - + Kazakhstan Kazakhstan - + Kenya Kenya - + Kiribati Kiribati - + DemocraticRepublicOfKorea Democratic Republic Of Korea - + RepublicOfKorea Republic Of Korea - + Kuwait Kuwait - + Kyrgyzstan Kyrgyzstan - + Laos Laos - + Latvia Latvia - + Lebanon Lebanon - + Lesotho Lesotho - + Liberia Liberia - + Libya Libya - + Liechtenstein Liechtenstein - + Lithuania Lithuania - + Luxembourg Luxembourg - + Macau Macau - + Macedonia Macedonia - + Madagascar Madagascar - + Malawi Malawi - + Malaysia Malaysia - + Maldives Maldives - + Mali Mali - + Malta Malta - + MarshallIslands Marshall Islands - + Martinique Martinique - + Mauritania Mauritania - + Mauritius Mauritius - + Mayotte Mayotte - + Mexico Mexico - + Micronesia Micronesia - + Moldova Moldova - + Monaco Monaco - + Mongolia Mongolia - + Montenegro Montenegro - + Montserrat Montserrat - + Morocco Morocco - + Mozambique Mozambique - + Myanmar Myanmar - + Namibia Namibia - + NauruCountry Nauru Country - + Nepal Nepal - + Netherlands Netherlands - + NewCaledonia New-Caledonia - + NewZealand New-Zealand - + Nicaragua Nicaragua - + Niger Niger - + Nigeria Nigeria - + Niue Niue - + NorfolkIsland Norfolk Island - + NorthernMarianaIslands Northern Mariana Islands - + Norway Norway - + Oman Oman - + Pakistan Pakistan - + Palau Palau - + PalestinianTerritories Palestinian Territories - + Panama Panama - + PapuaNewGuinea Papua-New-Guinea - + Paraguay Paraguay - + Peru Peru - + Philippines Philippines - + Poland Poland - + Portugal Portugal - + PuertoRico Puerto Rico - + Qatar Qatar - + Reunion Reunion - + Romania Romania - + RussianFederation Russian Federation - + Rwanda Rwanda - + SaintHelena Saint-Helena - + SaintKittsAndNevis Saint-Kitts-And-Nevis - + SaintLucia Saint-Lucia - + SaintPierreAndMiquelon Saint-Pierre-And-Miquelon - + SaintVincentAndTheGrenadines Saint-Vincent And The Grenadines - + Samoa Samoa - + SanMarino San-Marino - + SaoTomeAndPrincipe Sao Tome-And-Principe - + SaudiArabia Saudi Arabia - + Senegal Senegal - + Serbia Serbia - + Seychelles Seychelles - + SierraLeone Sierra Leone - + Singapore Singapore - + Slovakia Slovakia - + Slovenia Slovenia - + SolomonIslands Solomon Islands - + Somalia Somalia - + SouthAfrica South Africa - + Spain Spain - + SriLanka Sri Lanka - + Sudan Sudan - + Suriname Suriname - + Swaziland Swaziland - + Sweden Sweden - + Switzerland Switzerland - + Syria Syria - + Taiwan Taiwan - + Tajikistan Tajikistan - + Tanzania Tanzania - + Thailand Thailand - + Togo Togo - + Tokelau Tokelau - + Tonga Tonga - + TrinidadAndTobago Trinidad-And-Tobago - + Tunisia Tunisia - + Turkey Turkey - + Turkmenistan Turkmenistan - + TurksAndCaicosIslands Turks And Caicos Islands - + Tuvalu Tuvalu - + Uganda Uganda - + Ukraine Ukraine - + UnitedArabEmirates United Arab Emirates - + UnitedKingdom United-Kingdom - + UnitedStates United-States - + Uruguay Uruguay - + Uzbekistan Uzbekistan - + Vanuatu Vanuatu - + Venezuela Venezuela - + Vietnam Vietnam - + WallisAndFutunaIslands Wallis And Futuna Islands - + Yemen Yemen - + Zambia Zambia - + Zimbabwe Zimbabwe diff --git a/Linphone/data/languages/fr_FR.ts b/Linphone/data/languages/fr_FR.ts index bc57eedb9..286c2ff7c 100644 --- a/Linphone/data/languages/fr_FR.ts +++ b/Linphone/data/languages/fr_FR.ts @@ -83,45 +83,45 @@ AccountManager - + assistant_account_login_already_connected_error - "Le compte est déjà connecté" + "The account is already connected" Le compte est déjà connecté - + assistant_account_login_proxy_address_error - "Impossible de créer l'adresse proxy. Merci de vérifier le nom de domaine." + "Unable to create proxy address. Please check the domain name." Impossible de créer l'adresse proxy. Merci de vérifier le nom de domaine. - + assistant_account_login_address_configuration_error - "Impossible de configurer l'adresse : `%1`." + "Unable to configure address: `%1`." Impossible de configurer l'adresse : `%1`. - + assistant_account_login_params_configuration_error - "Impossible de configurer les paramètres du compte." + "Unable to configure account settings." Impossible de configurer les paramètres du compte. - + assistant_account_login_forbidden_error - "Le couple identifiant mot de passe ne correspond pas" + "Username and password do not match" Le couple identifiant mot de passe ne correspond pas - + assistant_account_login_error - "Erreur durant la connexion" - Erreur durant la connexion + "Error during connection, please verify your parameters" + Erreur durant la connexion, veuillez vérifier vos paramètres - + assistant_account_add_error - "Impossible d'ajouter le compte." + "Unable to add account." Impossible d'ajouter le compte. @@ -492,13 +492,13 @@ AllContactListView - + car_favorites_contacts_title "Favoris" Favoris - + generic_address_picker_contacts_list_title 'Contacts' Contacts @@ -513,94 +513,94 @@ App - + remote_provisioning_dialog Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? - - + + info_popup_error_title Error Erreur - - + + info_popup_configuration_failed_message Remote provisioning failed : %1 Le service de configuration distante a échoué: %1 - + configuration_error_detail not reachable indisponible - + application_description "A free and open source SIP video-phone." A free and open source SIP video-phone. - + command_line_arg_order "Send an order to the application towards a command line" Send an order to the application towards a command line - + command_line_option_show_help Show this help - + command_line_option_show_app_version Afficher la version de l'application - + command_line_option_config_to_fetch "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." Specify the linphone configuration file to be fetched. It will be merged with the current configuration. - + command_line_option_config_to_fetch_arg "URL, path or file" URL, path or file - + command_line_option_minimized Minimiser - + command_line_option_log_to_stdout Log to stdout some debug information while running - + command_line_option_print_app_logs_only "Print only logs from the application" Print only logs from the application - + hide_action "Cacher" "Afficher" Cacher - + show_action Afficher - + quit_action "Quitter" Quitter @@ -626,19 +626,19 @@ Mot de passe - + cancel "Annuler Annuler - + assistant_account_login Connexion Connexion - + assistant_account_login_missing_password Veuillez saisir un mot de passe Veuillez saisir un mot de passe @@ -1019,7 +1019,7 @@ menu_see_existing_contact - "Voir le contact" + "Show contact" Afficher le contact @@ -1804,53 +1804,53 @@ ContactListItem - + contact_details_remove_from_favourites "Enlever des favoris" Enlever des favoris - + contact_details_add_to_favourites "Ajouter aux favoris" Ajouter aux favoris - + Partager Partager - + information_popup_error_title Erreur - + information_popup_vcard_creation_error La création du fichier vcard a échoué La création du fichier vcard a échoué - + information_popup_vcard_creation_title VCard créée VCard créée - + information_popup_vcard_creation_success "VCard du contact enregistrée dans %1" VCard du contact enregistrée dans %1 - + contact_sharing_email_title Partage de contact Partage de contact - + contact_details_delete "Supprimer" Supprimer @@ -1988,169 +1988,169 @@ Aucun contact pour le moment - - + + contact_details_edit "Éditer" Éditer - + contact_call_action "Appel" Appel - + contact_message_action "Message" Message - + contact_video_call_action "Appel vidéo" Appel vidéo - + contact_presence_status_online "En ligne" En ligne - + contact_presence_status_busy "Occupé" Occupé - + contact_presence_status_do_not_disturb "Ne pas déranger" Ne pas déranger - + contact_presence_status_offline "Hors ligne" Hors ligne - + contact_details_numbers_and_addresses_title "Coordonnées" Coordonnées - + contact_details_company_name "Société :" Société : - + contact_details_job_title "Poste :" Poste : - + contact_details_medias_title "Medias" Medias - + contact_details_medias_subtitle "Afficher les medias partagés" Afficher les medias partagés - + contact_details_trust_title "Confiance" Confiance - + contact_dialog_devices_trust_title "Niveau de confiance - Appareils vérifiés" Niveau de confiance - Appareils vérifiés - + contact_details_no_device_found "Aucun appareil" Aucun appareil - + contact_device_without_name "Appareil inconnu" Appareil inconnu - + contact_make_call_check_device_trust "Vérifier" Vérifier - + contact_details_actions_title "Autres actions" Autres actions - + contact_details_remove_from_favourites "Retirer des favoris" Retirer des favoris - + contact_details_add_to_favourites "Ajouter aux favoris" Ajouter aux favoris - + contact_details_share "Partager" Partager - + information_popup_error_title Erreur - + contact_details_share_error_mesage "La création du fichier vcard a échoué" La création du fichier vcard a échoué - + contact_details_share_success_title "VCard créée" VCard créée - + contact_details_share_success_mesage "VCard du contact enregistrée dans %1" VCard du contact enregistrée dans %1 - + contact_details_share_email_title "Partage de contact" Partage de contact - + contact_details_delete "Supprimer ce contact" Supprimer ce contact @@ -2409,7 +2409,7 @@ - + sip_address "Adresse SIP" Adresse SIP @@ -2766,7 +2766,7 @@ Lien de configuration distante - + default_account_connection_state_error_toast Erreur durant la connexion @@ -2774,7 +2774,7 @@ MagicSearchList - + device_id Téléphone @@ -2782,73 +2782,73 @@ MainLayout - + bottom_navigation_calls_label "Appels" Appels - + bottom_navigation_contacts_label "Contacts" Contacts - + bottom_navigation_conversations_label "Conversations" Conversations - + bottom_navigation_meetings_label "Réunions" Réunions - + searchbar_placeholder_text "Rechercher un contact, appeler %1" Rechercher un contact, appeler %1 - + searchbar_placeholder_text_chat_feature_enabled "ou envoyer un message …" ou envoyer un message … - - + + contact_presence_status_disable_do_not_disturb "Désactiver ne pas déranger" Désactiver ne pas déranger - + information_popup_error_title Erreur - + no_voicemail_uri_error_message "L'URI de messagerie vocale n'est pas définie." L'URI de messagerie vocale n'est pas définie. - + drawer_menu_manage_account Mon compte Mon compte - + contact_presence_status_enable_do_not_disturb "Activer ne pas déranger" Activer ne pas déranger - + settings_title Paramètres @@ -3698,67 +3698,85 @@ Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. Pour les activer dans un projet commercial, merci de nous contacter. - + assistant_third_party_sip_account_create_linphone_account "Créer un compte linphone" Créer un compte linphone - + assistant_third_party_sip_account_warning_ok "Je comprends" Je comprends - + username "Nom d'utilisateur" Nom d'utilisateur - + password Mot de passe - + sip_address_domain "Domaine" Domaine - + sip_address_display_name Nom d'affichage Nom d'affichage - + transport "Transport" Transport - + assistant_account_login Connexion - + assistant_account_login_missing_username Veuillez saisir un nom d'utilisateur - + assistant_account_login_missing_password Veuillez saisir un mot de passe - + assistant_account_login_missing_domain "Veuillez saisir un nom de domaine Veuillez saisir un nom de domaine + + + login_advanced_parameters_label + Advanced parameters + Paramètres avancés + + + + login_proxy_server_url + "Proxy server URL" + URI du proxy SIP sortant + + + + login_id + "Connexion ID (if different)" + Identifiant de connexion (si différent) + ScreencastSettings @@ -3981,24 +3999,24 @@ Pour les activer dans un projet commercial, merci de nous contacter. Utils - + information_popup_call_not_created_message "L'appel n'a pas pu être créé" L'appel n'a pas pu être créé - - + + information_popup_error_title Erreur - + information_popup_group_call_not_created_message L'appel de groupe n'a pas pu être créé - + number_of_years %n an(s) @@ -4007,7 +4025,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + number_of_month "%n mois" @@ -4016,7 +4034,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + number_of_weeks %n semaine(s) @@ -4025,7 +4043,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + number_of_days %n jour(s) @@ -4034,19 +4052,19 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + today "Aujourd'hui" Aujourd'hui - + yesterday "Hier Hier - + call_zrtp_token_verification_possible_characters "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 @@ -4214,1117 +4232,1117 @@ Pour les activer dans un projet commercial, merci de nous contacter. country - + Afghanistan Afghanistan - + Albania Albanie - + Algeria Algérie - + AmericanSamoa Samoa américaines - + Andorra Andorre - + Angola Angola - + Anguilla Anguilla - + AntiguaAndBarbuda Antigua-et-Barbuda - + Argentina Argentine - + Armenia Arménie - + Aruba Aruba - + Australia Australie - + Austria Autriche - + Azerbaijan Azerbaïdjan - + Bahamas Bahamas - + Bahrain Bahreïn - + Bangladesh Bangladesh - + Barbados Barbade - + Belarus Biélorussie - + Belgium Belgique - + Belize Belize - + Benin Bénin - + Bermuda Bermudes - + Bhutan Bhoutan - + Bolivia Bolivie - + BosniaAndHerzegowina Bosnie-Herzégovine - + Botswana Botswana - + Brazil Brésil - + Brunei Brunéi - + Bulgaria Bulgarie - + BurkinaFaso Burkina Faso - + Burundi Burundi - + Cambodia Cambodge - + Cameroon Cameroun - + Canada Canada - + CapeVerde Cap-Vert - + CaymanIslands Îles Caïmans - + CentralAfricanRepublic République centrafricaine - + Chad Tchad - + Chile Chili - + China Chine - + Colombia Colombie - + Comoros Comores - + PeoplesRepublicOfCongo République populaire du Congo - + CookIslands Îles Cook - + CostaRica Costa Rica - + IvoryCoast Côte d'Ivoire - + Croatia Croatie - + Cuba Cuba - + Cyprus Chypre - + CzechRepublic République Tchèque - + Denmark Danemark - + Djibouti Djibouti - + Dominica Dominique - + DominicanRepublic République dominicaine - + Ecuador Équateur - + Egypt Égypte - + ElSalvador El Salvador - + EquatorialGuinea Guinée équatoriale - + Eritrea Érythrée - + Estonia Estonie - + Ethiopia Éthiopie - + FalklandIslands Îles Falkland - + FaroeIslands Îles Féroé - + Fiji Fidji - + Finland Finlande - + France France - + FrenchGuiana Guyane française - + FrenchPolynesia Polynésie française - + Gabon Gabon - + Gambia Gambie - + Georgia Géorgie - + Germany Allemagne - + Ghana Ghana - + Gibraltar Gibraltar - + Greece Grèce - + Greenland Groenland - + Grenada Grenade - + Guadeloupe Guadeloupe - + Guam Guam - + Guatemala Guatemala - + Guinea Guinée - + GuineaBissau Guinée-Bissau - + Guyana Guyana - + Haiti Haïti - + Honduras Honduras - + DemocraticRepublicOfCongo République démocratique du Congo - + HongKong Hong Kong - + Hungary Hongrie - + Iceland Islande - + India Inde - + Indonesia Indonésie - + Iran Iran - + Iraq Irak - + Ireland Irlande - + Israel Israël - + Italy Italie - + Jamaica Jamaïque - + Japan Japon - + Jordan Jordanie - + Kazakhstan Kazakhstan - + Kenya Kenya - + Kiribati Kiribati - + DemocraticRepublicOfKorea Corée du Nord - + RepublicOfKorea Corée du Sud - + Kuwait Koweït - + Kyrgyzstan Kirghizistan - + Laos Laos - + Latvia Lettonie - + Lebanon Liban - + Lesotho Lesotho - + Liberia Libéria - + Libya Libye - + Liechtenstein Liechtenstein - + Lithuania Lituanie - + Luxembourg Luxembourg - + Macau Macao - + Macedonia Macédoine - + Madagascar Madagascar - + Malawi Malawi - + Malaysia Malaisie - + Maldives Maldives - + Mali Mali - + Malta Malte - + MarshallIslands Îles Marshall - + Martinique Martinique - + Mauritania Mauritanie - + Mauritius Maurice - + Mayotte Mayotte - + Mexico Mexique - + Micronesia Micronésie - + Moldova Moldavie - + Monaco Monaco - + Mongolia Mongolie - + Montenegro Montenegro - + Montserrat Montserrat - + Morocco Maroc - + Mozambique Mozambique - + Myanmar Myanmar - + Namibia Namibie - + NauruCountry Nauru - + Nepal Népal - + Netherlands Pays-Bas - + NewCaledonia Nouvelle-Calédonie - + NewZealand Nouvelle-Zélande - + Nicaragua Nicaragua - + Niger Niger - + Nigeria Nigeria - + Niue Niué - + NorfolkIsland Île Norfolk - + NorthernMarianaIslands Îles Mariannes du Nord - + Norway Norvège - + Oman Oman - + Pakistan Pakistan - + Palau Palaos - + PalestinianTerritories Palestine - + Panama Panama - + PapuaNewGuinea Papouasie-Nouvelle-Guinée - + Paraguay Paraguay - + Peru Pérou - + Philippines Philippines - + Poland Pologne - + Portugal Portugal - + PuertoRico Porto Rico - + Qatar Qatar - + Reunion La Réunion - + Romania Roumanie - + RussianFederation Russie - + Rwanda Rwanda - + SaintHelena Sainte-Hélène - + SaintKittsAndNevis Saint-Christophe-et-Niévès - + SaintLucia Sainte-Lucie - + SaintPierreAndMiquelon Saint-Pierre-et-Miquelon - + SaintVincentAndTheGrenadines Saint-Vincent et les Grenadines - + Samoa Samoa - + SanMarino Saint-Marin - + SaoTomeAndPrincipe Sao Tomé-et-Principe - + SaudiArabia Arabie saoudite - + Senegal Sénégal - + Serbia Serbie - + Seychelles Seychelles - + SierraLeone Sierra Leone - + Singapore Singapour - + Slovakia Slovaquie - + Slovenia Slovénie - + SolomonIslands Îles Salomon - + Somalia Somalie - + SouthAfrica Afrique du Sud - + Spain Espagne - + SriLanka Sri Lanka - + Sudan Soudan - + Suriname Suriname - + Swaziland Eswatini - + Sweden Suède - + Switzerland Suisse - + Syria Syrie - + Taiwan Taïwan - + Tajikistan Tadjikistan - + Tanzania Tanzanie - + Thailand Thaïlande - + Togo Togo - + Tokelau Tokelau - + Tonga Tonga - + TrinidadAndTobago Trinité-et-Tobago - + Tunisia Tunisie - + Turkey Turquie - + Turkmenistan Turkménistan - + TurksAndCaicosIslands Îles Turks et Caïques - + Tuvalu Tuvalu - + Uganda Ouganda - + Ukraine Ukraine - + UnitedArabEmirates Émirats arabes unis - + UnitedKingdom Royaume-Uni - + UnitedStates États-Unis - + Uruguay Uruguay - + Uzbekistan Ouzbékistan - + Vanuatu Vanuatu - + Venezuela Venezuela - + Vietnam Vietnam - + WallisAndFutunaIslands Wallis et Futuna - + Yemen Yémen - + Zambia Zambie - + Zimbabwe Zimbabwe diff --git a/Linphone/model/account/AccountManager.cpp b/Linphone/model/account/AccountManager.cpp index 34630e260..6e5e761d4 100644 --- a/Linphone/model/account/AccountManager.cpp +++ b/Linphone/model/account/AccountManager.cpp @@ -59,7 +59,9 @@ bool AccountManager::login(QString username, QString displayName, QString domain, linphone::TransportType transportType, - QString *errorMessage) { + QString *errorMessage, + QString serverAddress, + QString connectionId) { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); auto core = CoreModel::getInstance()->getCore(); auto factory = linphone::Factory::get(); @@ -80,26 +82,30 @@ bool AccountManager::login(QString username, auto otherParams = otherAccount->getParams(); if (otherParams->getIdentityAddress()->getUsername() == Utils::appStringToCoreString(username) && otherParams->getDomain() == Utils::appStringToCoreString(domain)) { - //: "Le compte est déjà connecté" + //: "The account is already connected" *errorMessage = tr("assistant_account_login_already_connected_error"); return false; } } if (!displayName.isEmpty()) identity->setDisplayName(Utils::appStringToCoreString(displayName)); + if (!serverAddress.isEmpty()) { + auto linServerAddress = ToolModel::interpretUrl(serverAddress); + params->setServerAddress(linServerAddress); + } if (!domain.isEmpty()) { identity->setDomain(Utils::appStringToCoreString(domain)); if (QString::compare(domain, "sip.linphone.org")) { params->setLimeServerUrl(""); - auto serverAddress = + auto computedServerAddress = factory->createAddress(Utils::appStringToCoreString(QStringLiteral("sip:%1").arg(domain))); - if (!serverAddress) { - //: "Impossible de créer l'adresse proxy. Merci de vérifier le nom de domaine." + if (!computedServerAddress) { + //: "Unable to create proxy address. Please check the domain name." *errorMessage = tr("assistant_account_login_proxy_address_error"); return false; } - serverAddress->setTransport(transportType); - params->setServerAddress(serverAddress); + computedServerAddress->setTransport(transportType); + params->setServerAddress(computedServerAddress); } } if (params->setIdentityAddress(identity)) { @@ -107,53 +113,53 @@ bool AccountManager::login(QString username, .arg(QStringLiteral("Unable to set identity address: `%1`.")) .arg(Utils::coreStringToAppString(identity->asStringUriOnly())); - - //: "Impossible de configurer l'adresse : `%1`." - *errorMessage = - tr("assistant_account_login_address_configuration_error").arg(Utils::coreStringToAppString(identity->asStringUriOnly())); + //: "Unable to configure address: `%1`." + *errorMessage = tr("assistant_account_login_address_configuration_error") + .arg(Utils::coreStringToAppString(identity->asStringUriOnly())); return false; } if (account->setParams(params)) { - //: "Impossible de configurer les paramètres du compte." + //: "Unable to configure account settings." *errorMessage = tr("assistant_account_login_params_configuration_error"); return false; } - auto authInfo = factory->createAuthInfo(Utils::appStringToCoreString(username), // Username. - "", // User ID. - Utils::appStringToCoreString(password), // Password. - "", // HA1. - "", // Realm. - identity->getDomain() // Domain. + auto authInfo = factory->createAuthInfo(Utils::appStringToCoreString(username), // Username. + Utils::appStringToCoreString(connectionId), // User ID. + Utils::appStringToCoreString(password), // Password. + "", // HA1. + "", // Realm. + identity->getDomain() // Domain. ); core->addAuthInfo(authInfo); mAccountModel = Utils::makeQObject_ptr(account); mAccountModel->setSelf(mAccountModel); connect(mAccountModel.get(), &AccountModel::registrationStateChanged, this, [this, authInfo, core](const std::shared_ptr &account, linphone::RegistrationState state, - const std::string &message) { - QString errorMessage = QString::fromStdString(message); + const std::string &message) { + QString errorMessage = QString::fromStdString(message); if (mAccountModel && account == mAccountModel->getAccount()) { if (state == linphone::RegistrationState::Failed) { connect( mAccountModel.get(), &AccountModel::removed, this, [this]() { mAccountModel = nullptr; }, Qt::SingleShotConnection); - //: "Le couple identifiant mot de passe ne correspond pas" - if (account->getError() == linphone::Reason::Forbidden) errorMessage = tr("assistant_account_login_forbidden_error"); - //: "Erreur durant la connexion" - else errorMessage = tr("assistant_account_login_error"); - mAccountModel->removeAccount(); + //: "Username and password do not match" + if (account->getError() == linphone::Reason::Forbidden) + errorMessage = tr("assistant_account_login_forbidden_error"); + //: "Error during connection, please verify your parameters" + else errorMessage = tr("assistant_account_login_error"); + mAccountModel->removeAccount(); } else if (state == linphone::RegistrationState::Ok) { core->setDefaultAccount(account); emit mAccountModel->removeListener(); mAccountModel = nullptr; } - } - emit registrationStateChanged(state, errorMessage); + } + emit registrationStateChanged(state, account->getError(), errorMessage); }); auto status = core->addAccount(account); if (status == -1) { - //: "Impossible d'ajouter le compte." + //: "Unable to add account." *errorMessage = tr("assistant_account_add_error"); core->removeAuthInfo(authInfo); return false; diff --git a/Linphone/model/account/AccountManager.hpp b/Linphone/model/account/AccountManager.hpp index 1fdaa13fd..090ee68dc 100644 --- a/Linphone/model/account/AccountManager.hpp +++ b/Linphone/model/account/AccountManager.hpp @@ -41,7 +41,9 @@ public: QString displayName = QString(), QString domain = QString(), linphone::TransportType transportType = linphone::TransportType::Tls, - QString *errorMessage = nullptr); + QString *errorMessage = nullptr, + QString serverAddress = QString(), + QString connectionId = QString()); std::shared_ptr createAccount(const QString &assistantFile); @@ -55,7 +57,8 @@ public: void linkNewAccountUsingCode(const QString &code, RegisterType registerType, const QString &sipAddress); signals: - void registrationStateChanged(linphone::RegistrationState state, QString message = QString()); + void + registrationStateChanged(linphone::RegistrationState state, linphone::Reason reason, QString message = QString()); void newAccountCreationSucceed(QString sipAddress, RegisterType registerType, const QString ®isterAddress); void registerNewAccountFailed(const QString &error); void tokenConversionSucceed(QString convertedToken); diff --git a/Linphone/view/Page/Form/Login/SIPLoginPage.qml b/Linphone/view/Page/Form/Login/SIPLoginPage.qml index 0869607a6..86f72a793 100644 --- a/Linphone/view/Page/Form/Login/SIPLoginPage.qml +++ b/Linphone/view/Page/Form/Login/SIPLoginPage.qml @@ -79,7 +79,7 @@ LoginLayout { Component { id: firstItem Flickable { - width: parent.width + width: Math.round(361 * DefaultStyle.dp) contentWidth: content.implicitWidth contentHeight: content.implicitHeight clip: true @@ -107,28 +107,6 @@ LoginLayout { } text: qsTr("Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1.\n\nCes fonctionnalités seront masquées si vous utilisez un compte SIP tiers.\n\nPour les activer dans un projet commercial, merci de nous contacter.").arg(applicationName) } -// Text { -// Layout.fillWidth: true -// Layout.preferredWidth: rootStackView.width -// wrapMode: Text.WordWrap -// color: DefaultStyle.main2_900 -// font { -// pixelSize: Typography.p1.pixelSize -// weight: Typography.p1.weight -// } -// text:"Ces fonctionnalités sont cachées lorsque vous vous enregistrez avec un compte SIP tiers." -// } -// Text { -// Layout.fillWidth: true -// Layout.preferredWidth: rootStackView.width -// wrapMode: Text.WordWrap -// color: DefaultStyle.main2_900 -// font { -// pixelSize: Typography.p1.pixelSize -// weight: Typography.p1.weight -// } -// text: "Pour les activer dans un projet commercial, veuillez nous contacter. " -// } } SmallButton { id: openLinkButton @@ -180,7 +158,7 @@ LoginLayout { id: secondItem Flickable { id: formFlickable - width: parent.width + width: Math.round(770 * DefaultStyle.dp) contentWidth: content.implicitWidth contentHeight: content.implicitHeight clip: true @@ -188,211 +166,270 @@ LoginLayout { Control.ScrollBar.vertical: scrollbar - ColumnLayout { + RowLayout { id: content - spacing: Math.round(2 * DefaultStyle.dp) - width: formFlickable.width - scrollbar.width*2 - + width: formFlickable.width - scrollbar.width*2 + spacing: Math.round(50 * DefaultStyle.dp) ColumnLayout { - spacing: Math.round(8 * DefaultStyle.dp) - FormItemLayout { - id: username - //: "Nom d'utilisateur" - label: qsTr("username") - mandatory: true - enableErrorText: true - Layout.fillWidth: true - contentItem: TextField { - id: usernameEdit - isError: username.errorTextVisible || errorText.isVisible - Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) - KeyNavigation.down: passwordEdit + spacing: Math.round(2 * DefaultStyle.dp) + Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) + Layout.fillHeight: true + ColumnLayout { + spacing: Math.round(22 * DefaultStyle.dp) + // alignment item + Item { + Layout.preferredHeight: advancedParametersTitle.implicitHeight } - } - FormItemLayout { - id: password - label: qsTr("password") - mandatory: true - enableErrorText: true - Layout.fillWidth: true - contentItem: TextField { - id: passwordEdit - isError: password.errorTextVisible || errorText.isVisible - hidden: true - Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) - KeyNavigation.up: usernameEdit - KeyNavigation.down: domainEdit - } - } - FormItemLayout { - id: domain - //: "Domaine" - label: qsTr("sip_address_domain") - mandatory: true - enableErrorText: true - Layout.fillWidth: true - contentItem: TextField { - id: domainEdit - isError: domain.errorTextVisible - initialText: SettingsCpp.assistantThirdPartySipAccountDomain - Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) - KeyNavigation.up: passwordEdit - KeyNavigation.down: displayName - } - Connections { - target: SettingsCpp - function onAssistantThirdPartySipAccountDomainChanged() { - domainEdit.resetText() + ColumnLayout { + spacing: Math.round(10 * DefaultStyle.dp) + FormItemLayout { + id: username + //: "Nom d'utilisateur" + label: qsTr("username") + mandatory: true + enableErrorText: true + Layout.fillWidth: true + contentItem: TextField { + id: usernameEdit + isError: username.errorTextVisible || (LoginPageCpp.badIds && errorText.isVisible) + Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) + KeyNavigation.down: passwordEdit + } + } + FormItemLayout { + id: password + label: qsTr("password") + mandatory: true + enableErrorText: true + Layout.fillWidth: true + contentItem: TextField { + id: passwordEdit + isError: password.errorTextVisible || (LoginPageCpp.badIds && errorText.isVisible) + hidden: true + Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) + KeyNavigation.up: usernameEdit + KeyNavigation.down: domainEdit + } + } + FormItemLayout { + id: domain + //: "Domaine" + label: qsTr("sip_address_domain") + mandatory: true + enableErrorText: true + Layout.fillWidth: true + contentItem: TextField { + id: domainEdit + isError: domain.errorTextVisible + initialText: SettingsCpp.assistantThirdPartySipAccountDomain + Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) + KeyNavigation.up: passwordEdit + KeyNavigation.down: displayName + } + Connections { + target: SettingsCpp + function onAssistantThirdPartySipAccountDomainChanged() { + domainEdit.resetText() + } + } + } + FormItemLayout { + //: Nom d'affichage + label: qsTr("sip_address_display_name") + Layout.fillWidth: true + contentItem: TextField { + id: displayName + Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) + KeyNavigation.up: domainEdit + KeyNavigation.down: transportCbox + } + } + FormItemLayout { + //: "Transport" + label: qsTr("transport") + Layout.fillWidth: true + contentItem: ComboBox { + id: transportCbox + height: Math.round(49 * DefaultStyle.dp) + width: Math.round(360 * DefaultStyle.dp) + textRole: "text" + valueRole: "value" + model: [ + {text: "TCP", value: LinphoneEnums.TransportType.Tcp}, + {text: "UDP", value: LinphoneEnums.TransportType.Udp}, + {text: "TLS", value: LinphoneEnums.TransportType.Tls}, + {text: "DTLS", value: LinphoneEnums.TransportType.Dtls} + ] + currentIndex: Utils.findIndex(model, function (entry) { + return entry.text === SettingsCpp.assistantThirdPartySipAccountTransport.toUpperCase() + }) + } } } } - FormItemLayout { - //: Nom d'affichage - label: qsTr("sip_address_display_name") + + TemporaryText { + id: errorText Layout.fillWidth: true - contentItem: TextField { - id: displayName - Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) - KeyNavigation.up: domainEdit - KeyNavigation.down: transportCbox - } - } - FormItemLayout { - //: "Transport" - label: qsTr("transport") - Layout.fillWidth: true - contentItem: ComboBox { - id: transportCbox - height: Math.round(49 * DefaultStyle.dp) - width: Math.round(360 * DefaultStyle.dp) - textRole: "text" - valueRole: "value" - model: [ - {text: "TCP", value: LinphoneEnums.TransportType.Tcp}, - {text: "UDP", value: LinphoneEnums.TransportType.Udp}, - {text: "TLS", value: LinphoneEnums.TransportType.Tls}, - {text: "DTLS", value: LinphoneEnums.TransportType.Dtls} - ] - currentIndex: Utils.findIndex(model, function (entry) { - return entry.text === SettingsCpp.assistantThirdPartySipAccountTransport.toUpperCase() - }) - } - } - } - - TemporaryText { - id: errorText - Layout.fillWidth: true - Connections { - target: LoginPageCpp - function onErrorMessageChanged(error) { - errorText.setText(error) - } - } - } - - BigButton { - id: connectionButton - Layout.topMargin: Math.round(15 * DefaultStyle.dp) - style: ButtonStyle.main - contentItem: StackLayout { - id: connectionButtonContent - currentIndex: 0 - Text { - text: qsTr("assistant_account_login") - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - - font { - pixelSize: Typography.b1.pixelSize - weight: Typography.b1.weight - } - color: DefaultStyle.grey_0 - } - BusyIndicator { - implicitWidth: parent.height - implicitHeight: parent.height - Layout.alignment: Qt.AlignCenter - indicatorColor: DefaultStyle.grey_0 - } Connections { target: LoginPageCpp - function onRegistrationStateChanged() { - if (LoginPageCpp.registrationState != LinphoneEnums.RegistrationState.Progress) { - connectionButton.enabled = true - connectionButtonContent.currentIndex = 0 - } - } function onErrorMessageChanged(error) { - if (error.length != 0) { - connectionButton.enabled = true - connectionButtonContent.currentIndex = 0 + errorText.setText(error) + } + } + } + + BigButton { + id: connectionButton + Layout.topMargin: Math.round(15 * DefaultStyle.dp) + style: ButtonStyle.main + contentItem: StackLayout { + id: connectionButtonContent + currentIndex: 0 + Text { + text: qsTr("assistant_account_login") + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + + font { + pixelSize: Typography.b1.pixelSize + weight: Typography.b1.weight + } + color: DefaultStyle.grey_0 + } + BusyIndicator { + implicitWidth: parent.height + implicitHeight: parent.height + Layout.alignment: Qt.AlignCenter + indicatorColor: DefaultStyle.grey_0 + } + Connections { + target: LoginPageCpp + function onRegistrationStateChanged() { + if (LoginPageCpp.registrationState != LinphoneEnums.RegistrationState.Progress) { + connectionButton.enabled = true + connectionButtonContent.currentIndex = 0 + } + } + function onErrorMessageChanged(error) { + if (error.length != 0) { + connectionButton.enabled = true + connectionButtonContent.currentIndex = 0 + } } } } - } - function trigger() { - username.errorMessage = "" - password.errorMessage = "" - domain.errorMessage = "" - errorText.clear() + function trigger() { + username.errorMessage = "" + password.errorMessage = "" + domain.errorMessage = "" + errorText.clear() - loginDelay.restart() - } - onPressed: trigger() - KeyNavigation.up: transportCbox - Timer{ - id: loginDelay - interval: 200 - onTriggered: { - if (usernameEdit.text.length == 0 || passwordEdit.text.length == 0 || domainEdit.text.length == 0) { - if (usernameEdit.text.length == 0) - username.errorMessage = qsTr("assistant_account_login_missing_username") - if (passwordEdit.text.length == 0) - password.errorMessage = qsTr("assistant_account_login_missing_password") - if (domainEdit.text.length == 0) - //: "Veuillez saisir un nom de domaine - domain.errorMessage = qsTr("assistant_account_login_missing_domain") - return + loginDelay.restart() + } + onPressed: trigger() + KeyNavigation.up: transportCbox + Timer{ + id: loginDelay + interval: 200 + onTriggered: { + if (usernameEdit.text.length == 0 || passwordEdit.text.length == 0 || domainEdit.text.length == 0) { + if (usernameEdit.text.length == 0) + username.errorMessage = qsTr("assistant_account_login_missing_username") + if (passwordEdit.text.length == 0) + password.errorMessage = qsTr("assistant_account_login_missing_password") + if (domainEdit.text.length == 0) + //: "Veuillez saisir un nom de domaine + domain.errorMessage = qsTr("assistant_account_login_missing_domain") + return + } + console.debug("[SIPLoginPage] User: Log in") + LoginPageCpp.login(usernameEdit.text, passwordEdit.text, displayName.text, domainEdit.text, + transportCbox.currentValue, serverAddressEdit.text, connectionIdEdit.text); + connectionButton.enabled = false + connectionButtonContent.currentIndex = 1 } - console.debug("[SIPLoginPage] User: Log in") - LoginPageCpp.login(usernameEdit.text, passwordEdit.text, displayName.text, domainEdit.text, transportCbox.currentValue); - connectionButton.enabled = false - connectionButtonContent.currentIndex = 1 } } + Item { + Layout.fillHeight: true + } } - Item { + ColumnLayout { + Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) Layout.fillHeight: true + spacing: Math.round(22 * DefaultStyle.dp) + Text { + id: advancedParametersTitle + //: Advanced parameters + text: qsTr("login_advanced_parameters_label") + font: Typography.h3m + } + ColumnLayout { + spacing: Math.round(10 * DefaultStyle.dp) + FormItemLayout { + id: serverAddress + //: "Proxy server URL" + label: qsTr("login_proxy_server_url") + Layout.fillWidth: true + contentItem: TextField { + id: serverAddressEdit + Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) + KeyNavigation.down: connectionIdEdit + } + } + FormItemLayout { + id: connectionId + //: "Connexion ID (if different)" + label: qsTr("login_id") + Layout.fillWidth: true + contentItem: TextField { + id: connectionIdEdit + Layout.preferredWidth: Math.round(360 * DefaultStyle.dp) + KeyNavigation.up: serverAddressEdit + } + } + } + Item{Layout.fillHeight: true} } + Item{Layout.fillHeight: true} } } } + centerContent: [ - Item { - anchors.fill: parent - Control.StackView { - id: rootStackView - initialItem: SettingsCpp.assistantGoDirectlyToThirdPartySipAccountLogin ? secondItem : firstItem - anchors.top: parent.top - anchors.left: parent.left - anchors.bottom: parent.bottom - anchors.leftMargin: Math.round(127 * DefaultStyle.dp) - width: Math.round(361 * DefaultStyle.dp) - } - ScrollBar { - id: scrollbar - z: 1 - active: true - interactive: true - parent: rootStackView.currentItem - visible: parent.contentHeight > parent.height - policy: Control.ScrollBar.AsNeeded - anchors.rightMargin: -8 * DefaultStyle.dp - } - }, + ScrollBar { + id: scrollbar + z: 1 + active: true + interactive: true + parent: rootStackView.currentItem + visible: parent.contentHeight > parent.height + policy: Control.ScrollBar.AsNeeded + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.right: parent.right + // Layout.leftMargin: Math.round(119 * DefaultStyle.dp) + // anchors.leftMargin: Math.round(119 * DefaultStyle.dp) + // anchors.rightMargin: -8 * DefaultStyle.dp + }, + Control.StackView { + id: rootStackView + initialItem: SettingsCpp.assistantGoDirectlyToThirdPartySipAccountLogin ? secondItem : firstItem + anchors.left: parent.left + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.leftMargin: Math.round(127 * DefaultStyle.dp) + width: currentItem ? currentItem.width : 0 + }, + // Item { + // id: sipItem + // // spacing: Math.round(8 * Defaultstyle.dp) + // anchors.fill: parent + // anchors.rightMargin: Math.round(50 * DefaultStyle.dp) + image.width + // }, Image { z: -1 anchors.top: parent.top diff --git a/Linphone/view/Style/Typography.qml b/Linphone/view/Style/Typography.qml index bd8375733..a6bd17506 100644 --- a/Linphone/view/Style/Typography.qml +++ b/Linphone/view/Style/Typography.qml @@ -9,6 +9,13 @@ QtObject { pixelSize: Math.round(16 * DefaultStyle.dp), weight: Math.min(Math.round(800 * DefaultStyle.dp), 1000) }) + + // Title/H3m - Bloc title + property font h3m: Qt.font( { + family: DefaultStyle.defaultFont, + pixelSize: Math.round(16 * DefaultStyle.dp), + weight: Math.min(Math.round(700 * DefaultStyle.dp), 1000) + }) // Title/H3 - Bloc title property font h3: Qt.font( {