forked from mirrors/linphone-iphone
Compare commits
4 commits
master
...
feature/tr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f680e83299 | ||
|
|
9d5e0765d4 | ||
|
|
da838a5472 | ||
|
|
a386be6094 |
11 changed files with 647 additions and 266 deletions
|
|
@ -294,8 +294,6 @@ final class CoreContext: ObservableObject {
|
|||
} else if state == .Cleared {
|
||||
self.loggingInProgress = false
|
||||
self.loggedIn = false
|
||||
ToastViewModel.shared.toastMessage = "Success_account_logged_out"
|
||||
ToastViewModel.shared.displayToast = true
|
||||
} else {
|
||||
self.loggingInProgress = false
|
||||
self.loggedIn = false
|
||||
|
|
|
|||
|
|
@ -3,36 +3,12 @@
|
|||
"strings" : {
|
||||
"" : {
|
||||
|
||||
},
|
||||
" et " : {
|
||||
|
||||
},
|
||||
" has reacted by " : {
|
||||
|
||||
},
|
||||
" or " : {
|
||||
|
||||
},
|
||||
" to: " : {
|
||||
|
||||
},
|
||||
": %@" : {
|
||||
|
||||
},
|
||||
"." : {
|
||||
|
||||
},
|
||||
"[Forgotten password?](https://subscribe.linphone.org/)" : {
|
||||
|
||||
},
|
||||
"[linphone.org/contact](https://linphone.org/contact)" : {
|
||||
|
||||
},
|
||||
"[nos conditions d’utilisation](https://linphone.org/general-terms)" : {
|
||||
|
||||
},
|
||||
"[notre politique de confidentialité](https://linphone.org/privacy-policy)" : {
|
||||
|
||||
},
|
||||
"*" : {
|
||||
|
||||
|
|
@ -64,9 +40,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"%lld appels" : {
|
||||
|
||||
},
|
||||
"%lld Book (Example)" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -189,9 +162,6 @@
|
|||
},
|
||||
"A subject and at least one participant is required to create a meeting" : {
|
||||
|
||||
},
|
||||
"Accept all" : {
|
||||
|
||||
},
|
||||
"Account successfully logged out" : {
|
||||
|
||||
|
|
@ -201,15 +171,9 @@
|
|||
},
|
||||
"Administrateur" : {
|
||||
|
||||
},
|
||||
"All calls will be removed from the history." : {
|
||||
|
||||
},
|
||||
"All contacts" : {
|
||||
|
||||
},
|
||||
"All modifications will be canceled." : {
|
||||
|
||||
},
|
||||
"assistant_account_create" : {
|
||||
"localizations" : {
|
||||
|
|
@ -389,6 +353,118 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"assistant_dialog_general_terms_and_privacy_policy_message" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "By continuing, you accept our %@ and %@."
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "needs_review",
|
||||
"value" : "En continuant, vous acceptez nos %@ et %@."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"assistant_dialog_general_terms_and_privacy_policy_title" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "General terms & privacy policy"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Conditions de service & politique de confidentialité"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"assistant_dialog_general_terms_label" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "general terms"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "conditions de service"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"assistant_dialog_privacy_policy_label" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "privacy policy"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "politique de confidentialité"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"assistant_forgotten_password" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Forgotten password?"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "needs_review",
|
||||
"value" : "Mot de passe oublié ?"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"assistant_login_third_party_sip_account" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Use a third party SIP account"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "J’ai un compte SIP tiers"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"assistant_no_account_yet" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "No account yet?"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Pas encore de compte ?"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"assistant_permissions_access_camera_title" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
|
|
@ -442,13 +518,13 @@
|
|||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "**Read contacts:** To display your contacts and find whom is using this app."
|
||||
"value" : "**Read contacts:** To display your contacts and find whom is using %@."
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "needs_review",
|
||||
"value" : "**Contacts :** Pour vous afficher vos contacts et retrouver qui utilise cette application."
|
||||
"state" : "translated",
|
||||
"value" : "**Contacts :** Pour vous afficher vos contacts et retrouver qui utilise %@."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -517,6 +593,22 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"assistant_scan_qr_code" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Scan QR code"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Scanner un QR code"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"assistant_web_platform_link" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
|
|
@ -532,9 +624,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Attended transfer" : {
|
||||
|
||||
},
|
||||
"Audio" : {
|
||||
|
||||
|
|
@ -629,6 +718,70 @@
|
|||
},
|
||||
"Call transfer failed!" : {
|
||||
|
||||
},
|
||||
"call_action_attended_transfer" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Attended transfer"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Transfert"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_action_blind_transfer" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Transfer"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Transfert"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_action_change_layout" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Layout"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Disposition"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_action_go_to_calls_list" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Calls list"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Liste des appels"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_action_hang_up" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -647,11 +800,113 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"call_audio_device_type_speaker" : {
|
||||
"call_action_pause_call" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Pause"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Mettre en pause"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_action_record_call" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Record"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Enregistrer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_action_resume_call" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Resume"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "needs_review",
|
||||
"value" : "Reprendre"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_action_show_dialer" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Dialer"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Pavé"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_action_show_messages" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Messages"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Messages"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_action_start_new_call" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "New call"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Nouvel appel"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_audio_device_type_speaker" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Speaker"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "needs_review",
|
||||
"value" : "Haut parleur"
|
||||
}
|
||||
}
|
||||
|
|
@ -861,6 +1116,38 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"call_state_paused" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Paused"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "En pause"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_state_paused_by_remote" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Paused by remote"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Mis en pause par le correspondant"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"call_waiting_for_encryption_info" : {
|
||||
"extractionState" : "manual",
|
||||
"localizations" : {
|
||||
|
|
@ -929,7 +1216,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Calls" : {
|
||||
"calls_count_label" : {
|
||||
|
||||
},
|
||||
"calls_list_dialog_merge_into_conference_label" : {
|
||||
|
|
@ -1003,8 +1290,53 @@
|
|||
"Close" : {
|
||||
|
||||
},
|
||||
"Conditions de service" : {
|
||||
|
||||
"conference_action_screen_sharing" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Screen share"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Partage d’écran"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"conference_action_show_participants" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Participants"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Participants"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"conference_call_empty" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Waiting for other participants…"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "En attente d’autres participants…"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"conference_failed_to_create_group_call_toast" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -1023,6 +1355,54 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"conference_participant_joining_text" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Joining…"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "En train de rejoindre…"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"conference_participant_paused_text" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Paused"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "En pause"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"conference_share_link_title" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Share invitation"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Partager le lien"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Configuration failed" : {
|
||||
|
||||
},
|
||||
|
|
@ -1173,6 +1553,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"contact_dialog_delete_message" : {
|
||||
|
||||
},
|
||||
"contact_dialog_delete_title" : {
|
||||
|
||||
},
|
||||
"contact_dialog_pick_phone_number_or_sip_address_title" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -1222,6 +1608,9 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"contact_editor_dialog_abort_confirmation_message" : {
|
||||
|
||||
},
|
||||
"contact_editor_first_name" : {
|
||||
"localizations" : {
|
||||
|
|
@ -1318,9 +1707,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Contacts" : {
|
||||
|
||||
},
|
||||
"contacts_list_all_contacts_title" : {
|
||||
"localizations" : {
|
||||
|
|
@ -1402,6 +1788,9 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"content_description_save_changes" : {
|
||||
|
||||
},
|
||||
"Continue" : {
|
||||
"localizations" : {
|
||||
|
|
@ -2353,21 +2742,25 @@
|
|||
},
|
||||
"Default mode" : {
|
||||
|
||||
},
|
||||
"Delete %@?" : {
|
||||
|
||||
},
|
||||
"Delete all history" : {
|
||||
|
||||
},
|
||||
"Deny all" : {
|
||||
|
||||
},
|
||||
"Description" : {
|
||||
|
||||
},
|
||||
"Dialer" : {
|
||||
|
||||
"dialog_accept" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Accept"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Accepter"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"dialog_call" : {
|
||||
"localizations" : {
|
||||
|
|
@ -2401,6 +2794,22 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"dialog_deny" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Deny"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Refuser"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"dialog_ok" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
|
|
@ -2419,18 +2828,9 @@
|
|||
},
|
||||
"Display Name" : {
|
||||
|
||||
},
|
||||
"Disposition" : {
|
||||
|
||||
},
|
||||
"Do you really want to delete all calls history?" : {
|
||||
|
||||
},
|
||||
"Domain" : {
|
||||
|
||||
},
|
||||
"Don’t save modifications?" : {
|
||||
|
||||
},
|
||||
"drawer_menu_account_connection_status_cleared" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -2555,21 +2955,9 @@
|
|||
},
|
||||
"Edit Contact" : {
|
||||
|
||||
},
|
||||
"En attente d'autres participants..." : {
|
||||
|
||||
},
|
||||
"En continuant, vous acceptez ces conditions, " : {
|
||||
|
||||
},
|
||||
"En pause" : {
|
||||
|
||||
},
|
||||
"Error" : {
|
||||
|
||||
},
|
||||
"Error Name" : {
|
||||
|
||||
},
|
||||
"Etes-vous sûr de vouloir supprimer %@ ?" : {
|
||||
|
||||
|
|
@ -2685,6 +3073,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"history_dialog_delete_all_call_logs_message" : {
|
||||
|
||||
},
|
||||
"history_dialog_delete_all_call_logs_title" : {
|
||||
|
||||
},
|
||||
"history_group_call_start_dialog_set_subject" : {
|
||||
"localizations" : {
|
||||
|
|
@ -2802,9 +3196,6 @@
|
|||
},
|
||||
"Invalide URI" : {
|
||||
|
||||
},
|
||||
"Joining..." : {
|
||||
|
||||
},
|
||||
"list_filter_no_result_found" : {
|
||||
"localizations" : {
|
||||
|
|
@ -2983,6 +3374,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"meeting_schedule_cancel_dialog_message" : {
|
||||
|
||||
},
|
||||
"meeting_schedule_cancel_dialog_title" : {
|
||||
|
||||
},
|
||||
"meeting_schedule_description_hint" : {
|
||||
"localizations" : {
|
||||
|
|
@ -3499,9 +3896,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Messages" : {
|
||||
|
||||
},
|
||||
"Mettre en sourdine" : {
|
||||
|
||||
|
|
@ -3517,9 +3911,6 @@
|
|||
},
|
||||
"Network is now reachable again" : {
|
||||
|
||||
},
|
||||
"New call" : {
|
||||
|
||||
},
|
||||
"new_conversation_create_group" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -3580,29 +3971,46 @@
|
|||
"Non" : {
|
||||
|
||||
},
|
||||
"Not account yet?" : {
|
||||
|
||||
},
|
||||
"Ok" : {
|
||||
|
||||
"notification_chat_message_reaction_received" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "%@ reacted by %@ to: %@"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "%@ a réagi par %@ à : %@"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Opération en cours..." : {
|
||||
|
||||
},
|
||||
"or" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "or"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "ou"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Oui" : {
|
||||
|
||||
},
|
||||
"Partage d'écran" : {
|
||||
|
||||
},
|
||||
"Partager le lien" : {
|
||||
|
||||
},
|
||||
"Participant actif" : {
|
||||
|
||||
},
|
||||
"Participants" : {
|
||||
|
||||
},
|
||||
"password" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -3616,19 +4024,13 @@
|
|||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Password en FR"
|
||||
"value" : "Mot de passe"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Pause" : {
|
||||
|
||||
},
|
||||
"Paused" : {
|
||||
|
||||
},
|
||||
"Paused by remote" : {
|
||||
|
||||
},
|
||||
"Personnalize your profil mode" : {
|
||||
|
||||
|
|
@ -3663,9 +4065,6 @@
|
|||
},
|
||||
"Réactiver les notifications" : {
|
||||
|
||||
},
|
||||
"Record" : {
|
||||
|
||||
},
|
||||
"recordings_title" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -3685,6 +4084,7 @@
|
|||
}
|
||||
},
|
||||
"Register" : {
|
||||
"extractionState" : "stale",
|
||||
"localizations" : {
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
|
|
@ -3693,15 +4093,9 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Resume" : {
|
||||
|
||||
},
|
||||
"Resuming" : {
|
||||
|
||||
},
|
||||
"Scan QR code" : {
|
||||
|
||||
},
|
||||
"Select %@ %@" : {
|
||||
"localizations" : {
|
||||
|
|
@ -3712,15 +4106,9 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Send cancellation notifications" : {
|
||||
|
||||
},
|
||||
"Send Logs" : {
|
||||
|
||||
},
|
||||
"Send notification to participants ?" : {
|
||||
|
||||
},
|
||||
"settings_title" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -3784,21 +4172,12 @@
|
|||
},
|
||||
"Temp Help" : {
|
||||
|
||||
},
|
||||
"The meeting will be cancelled" : {
|
||||
|
||||
},
|
||||
"The user name or password is incorrects" : {
|
||||
|
||||
},
|
||||
"This contact will be deleted definitively." : {
|
||||
|
||||
},
|
||||
"TLS" : {
|
||||
|
||||
},
|
||||
"Transfer" : {
|
||||
|
||||
},
|
||||
"Transfer call to" : {
|
||||
|
||||
|
|
@ -3817,9 +4196,6 @@
|
|||
},
|
||||
"Use a SIP account" : {
|
||||
|
||||
},
|
||||
"Use SIP Account" : {
|
||||
|
||||
},
|
||||
"username" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -3833,7 +4209,7 @@
|
|||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Username en FR"
|
||||
"value" : "Nom d’utilisateur"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ struct LoginFragment: View {
|
|||
.padding(.bottom)
|
||||
|
||||
HStack {
|
||||
Text("[Forgotten password?](https://subscribe.linphone.org/)")
|
||||
Text(.init(String(format: ("[%@](%@)"), String(localized: "assistant_forgotten_password"), "https://subscribe.linphone.org/")))
|
||||
.underline()
|
||||
.tint(Color.grayMain2c600)
|
||||
.default_text_style_600(styleSize: 15)
|
||||
|
|
@ -180,7 +180,7 @@ struct LoginFragment: View {
|
|||
VStack {
|
||||
Divider()
|
||||
}
|
||||
Text(" or ")
|
||||
Text("or")
|
||||
.default_text_style(styleSize: 15)
|
||||
.foregroundStyle(Color.grayMain2c500)
|
||||
VStack {
|
||||
|
|
@ -199,7 +199,7 @@ struct LoginFragment: View {
|
|||
.foregroundStyle(Color.orangeMain500)
|
||||
.frame(width: 20, height: 20)
|
||||
|
||||
Text("Scan QR code")
|
||||
Text("assistant_scan_qr_code")
|
||||
.default_text_style_orange_600(styleSize: 20)
|
||||
.frame(height: 35)
|
||||
}
|
||||
|
|
@ -219,7 +219,7 @@ struct LoginFragment: View {
|
|||
NavigationLink(isActive: $isLinkSIPActive, destination: {
|
||||
ThirdPartySipAccountWarningFragment(accountLoginViewModel: accountLoginViewModel)
|
||||
}, label: {
|
||||
Text("Use SIP Account")
|
||||
Text("assistant_login_third_party_sip_account")
|
||||
.default_text_style_orange_600(styleSize: 20)
|
||||
.frame(height: 35)
|
||||
.frame(maxWidth: .infinity)
|
||||
|
|
@ -254,12 +254,12 @@ struct LoginFragment: View {
|
|||
|
||||
Spacer()
|
||||
|
||||
Text("Not account yet?")
|
||||
Text("assistant_no_account_yet")
|
||||
.default_text_style(styleSize: 15)
|
||||
.foregroundStyle(Color.grayMain2c700)
|
||||
.padding(.horizontal, 10)
|
||||
|
||||
NavigationLink(destination: RegisterFragment(registerViewModel: RegisterViewModel()), isActive: $isLinkREGActive, label: {Text("Register")
|
||||
NavigationLink(destination: RegisterFragment(registerViewModel: RegisterViewModel()), isActive: $isLinkREGActive, label: { Text("assistant_account_register")
|
||||
.default_text_style_white_600(styleSize: 20)
|
||||
.frame(height: 35)
|
||||
})
|
||||
|
|
@ -293,21 +293,38 @@ struct LoginFragment: View {
|
|||
}
|
||||
|
||||
if self.isShowPopup {
|
||||
let contentPopup1 = Text("En continuant, vous acceptez ces conditions, ")
|
||||
let contentPopup2 = Text("[notre politique de confidentialité](https://linphone.org/privacy-policy)").underline()
|
||||
let contentPopup3 = Text(" et ")
|
||||
let contentPopup4 = Text("[nos conditions d’utilisation](https://linphone.org/general-terms)").underline()
|
||||
let contentPopup5 = Text(".")
|
||||
PopupView(isShowPopup: $isShowPopup,
|
||||
title: Text("Conditions de service"),
|
||||
content: contentPopup1 + contentPopup2 + contentPopup3 + contentPopup4 + contentPopup5,
|
||||
titleFirstButton: Text("Deny all"),
|
||||
actionFirstButton: {self.isShowPopup.toggle()},
|
||||
titleSecondButton: Text("Accept all"),
|
||||
actionSecondButton: {acceptGeneralTerms()})
|
||||
.background(.black.opacity(0.65))
|
||||
.onTapGesture {
|
||||
self.isShowPopup.toggle()
|
||||
let generalTerms = String(format: "[%@](%@)", String(localized: "assistant_dialog_general_terms_label"), "https://www.linphone.org/en/terms-of-use/")
|
||||
let privacyPolicy = String(format: "[%@](%@)", String(localized: "assistant_dialog_privacy_policy_label"), "https://linphone.org/en/privacy-policy")
|
||||
let splitMsg = String(localized: "assistant_dialog_general_terms_and_privacy_policy_message").components(separatedBy: "%@")
|
||||
if splitMsg.count == 3 { // We expect form of STRING %A STRING %@ STRING
|
||||
let contentPopup1 = Text(.init(splitMsg[0]))
|
||||
let contentPopup2 = Text(.init(generalTerms)).underline()
|
||||
let contentPopup3 = Text(.init(splitMsg[1]))
|
||||
let contentPopup4 = Text(.init(privacyPolicy)).underline()
|
||||
let contentPopup5 = Text(.init(splitMsg[2]))
|
||||
PopupView(isShowPopup: $isShowPopup,
|
||||
title: Text("assistant_dialog_general_terms_and_privacy_policy_title"),
|
||||
content: contentPopup1 + contentPopup2 + contentPopup3 + contentPopup4 + contentPopup5,
|
||||
titleFirstButton: Text("dialog_deny"),
|
||||
actionFirstButton: {self.isShowPopup.toggle()},
|
||||
titleSecondButton: Text("dialog_accept"),
|
||||
actionSecondButton: {acceptGeneralTerms()})
|
||||
.background(.black.opacity(0.65))
|
||||
.onTapGesture {
|
||||
self.isShowPopup.toggle()
|
||||
}
|
||||
} else { // backup just in case
|
||||
PopupView(isShowPopup: $isShowPopup,
|
||||
title: Text("assistant_dialog_general_terms_and_privacy_policy_title"),
|
||||
content: Text(.init(String(format: String(localized: "assistant_dialog_general_terms_and_privacy_policy_message"), generalTerms, privacyPolicy))),
|
||||
titleFirstButton: Text("dialog_deny"),
|
||||
actionFirstButton: {self.isShowPopup.toggle()},
|
||||
titleSecondButton: Text("dialog_accept"),
|
||||
actionSecondButton: {acceptGeneralTerms()})
|
||||
.background(.black.opacity(0.65))
|
||||
.onTapGesture {
|
||||
self.isShowPopup.toggle()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -103,8 +103,7 @@ struct PermissionsFragment: View {
|
|||
.padding(16)
|
||||
.background(Color.grayMain2c200)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("assistant_permissions_read_contacts_title")
|
||||
Text(.init(String(format: String(localized: "assistant_permissions_read_contacts_title"), Bundle.main.displayName)))
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(.leading, 10)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -300,10 +300,10 @@ struct CallView: View {
|
|||
}
|
||||
|
||||
if callViewModel.isPaused {
|
||||
Text("Paused")
|
||||
Text("call_state_paused")
|
||||
.default_text_style_white_800(styleSize: 16)
|
||||
} else if telecomManager.isPausedByRemote {
|
||||
Text("Paused by remote")
|
||||
Text("call_state_paused_by_remote")
|
||||
.default_text_style_white_800(styleSize: 16)
|
||||
}
|
||||
}
|
||||
|
|
@ -645,7 +645,7 @@ struct CallView: View {
|
|||
VStack {
|
||||
Spacer()
|
||||
|
||||
Text("En attente d'autres participants...")
|
||||
Text("conference_call_empty")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_300(styleSize: 25)
|
||||
|
|
@ -670,7 +670,7 @@ struct CallView: View {
|
|||
.foregroundStyle(Color.grayMain2c400)
|
||||
.frame(width: 30, height: 30)
|
||||
|
||||
Text("Partager le lien")
|
||||
Text("conference_share_link_title")
|
||||
.foregroundStyle(Color.grayMain2c400)
|
||||
.default_text_style(styleSize: 25)
|
||||
.frame(height: 40)
|
||||
|
|
@ -829,7 +829,7 @@ struct CallView: View {
|
|||
.foregroundStyle(.white)
|
||||
.frame(width: 40, height: 40)
|
||||
|
||||
Text("En pause")
|
||||
Text("conference_participant_paused_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1015,7 +1015,7 @@ struct CallView: View {
|
|||
.frame(width: 40, height: 40)
|
||||
.padding(.bottom, 5)
|
||||
|
||||
Text("Joining...")
|
||||
Text("conference_participant_joining_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1034,7 +1034,7 @@ struct CallView: View {
|
|||
.foregroundStyle(.white)
|
||||
.frame(width: 40, height: 40)
|
||||
|
||||
Text("En pause")
|
||||
Text("conference_participant_paused_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1182,7 +1182,7 @@ struct CallView: View {
|
|||
.frame(width: 40, height: 40)
|
||||
.padding(.bottom, 5)
|
||||
|
||||
Text("Joining...")
|
||||
Text("conference_participant_joining_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1201,7 +1201,7 @@ struct CallView: View {
|
|||
.foregroundStyle(.white)
|
||||
.frame(width: 40, height: 40)
|
||||
|
||||
Text("En pause")
|
||||
Text("conference_participant_paused_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1325,7 +1325,7 @@ struct CallView: View {
|
|||
.frame(width: maxValue/4, height: maxValue/4)
|
||||
.padding(.bottom, 5)
|
||||
|
||||
Text("Joining...")
|
||||
Text("conference_participant_joining_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1344,7 +1344,7 @@ struct CallView: View {
|
|||
.foregroundStyle(.white)
|
||||
.frame(width: maxValue/4, height: maxValue/4)
|
||||
|
||||
Text("En pause")
|
||||
Text("conference_participant_paused_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1441,7 +1441,7 @@ struct CallView: View {
|
|||
.frame(width: maxValue/4, height: maxValue/4)
|
||||
.padding(.bottom, 5)
|
||||
|
||||
Text("Joining...")
|
||||
Text("conference_participant_joining_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1460,7 +1460,7 @@ struct CallView: View {
|
|||
.foregroundStyle(.white)
|
||||
.frame(width: maxValue/4, height: maxValue/4)
|
||||
|
||||
Text("En pause")
|
||||
Text("conference_participant_paused_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1561,7 +1561,7 @@ struct CallView: View {
|
|||
.frame(width: maxValue/4, height: maxValue/4)
|
||||
.padding(.bottom, 5)
|
||||
|
||||
Text("Joining...")
|
||||
Text("conference_participant_joining_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1580,7 +1580,7 @@ struct CallView: View {
|
|||
.foregroundStyle(.white)
|
||||
.frame(width: maxValue/4, height: maxValue/4)
|
||||
|
||||
Text("En pause")
|
||||
Text("conference_participant_paused_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1677,7 +1677,7 @@ struct CallView: View {
|
|||
.frame(width: maxValue/4, height: maxValue/4)
|
||||
.padding(.bottom, 5)
|
||||
|
||||
Text("Joining...")
|
||||
Text("conference_participant_joining_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -1696,7 +1696,7 @@ struct CallView: View {
|
|||
.foregroundStyle(.white)
|
||||
.frame(width: maxValue/4, height: maxValue/4)
|
||||
|
||||
Text("En pause")
|
||||
Text("conference_participant_paused_text")
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.foregroundStyle(Color.white)
|
||||
.default_text_style_500(styleSize: 14)
|
||||
|
|
@ -2035,7 +2035,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text(callViewModel.callsCounter < 2 ? "Transfer" : "Attended transfer")
|
||||
Text(callViewModel.callsCounter < 2 ? "call_action_blind_transfer" : "call_action_attended_transfer")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2068,7 +2068,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("New call")
|
||||
Text("call_action_start_new_call")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2091,7 +2091,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(true)
|
||||
|
||||
Text("Partage d'écran")
|
||||
Text("conference_action_screen_sharing")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2116,7 +2116,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("Participants")
|
||||
Text("conference_action_show_participants")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2171,7 +2171,7 @@ struct CallView: View {
|
|||
}
|
||||
}
|
||||
|
||||
Text("Call list")
|
||||
Text("call_action_go_to_calls_list")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2201,7 +2201,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("Dialer")
|
||||
Text("call_action_show_dialer")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2224,7 +2224,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("Disposition")
|
||||
Text("call_action_change_layout")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2266,7 +2266,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(!callViewModel.isOneOneCall)
|
||||
|
||||
Text("Messages")
|
||||
Text("call_action_show_messages")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2290,7 +2290,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(telecomManager.isPausedByRemote)
|
||||
|
||||
Text("Pause")
|
||||
Text("call_action_pause_call")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2315,7 +2315,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(callViewModel.isPaused || telecomManager.isPausedByRemote)
|
||||
|
||||
Text("Record")
|
||||
Text("call_action_record_call")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2338,7 +2338,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(true)
|
||||
|
||||
Text("Record")
|
||||
Text("call_action_record_call")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2361,7 +2361,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("Disposition")
|
||||
Text("call_action_change_layout")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2404,7 +2404,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text(callViewModel.callsCounter < 2 ? "Transfer" : "Attended transfer")
|
||||
Text(callViewModel.callsCounter < 2 ? "call_action_blind_transfer" : "call_action_attended_transfer")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2437,7 +2437,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("New call")
|
||||
Text("call_action_start_new_call")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2461,7 +2461,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(true)
|
||||
|
||||
Text("Partage d'écran")
|
||||
Text("conference_action_screen_sharing")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2487,7 +2487,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("Participants")
|
||||
Text("conference_action_show_participants")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2543,7 +2543,7 @@ struct CallView: View {
|
|||
}
|
||||
}
|
||||
|
||||
Text("Call list")
|
||||
Text("call_action_go_to_calls_list")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2573,7 +2573,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("Dialer")
|
||||
Text("call_action_show_dialer")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2596,7 +2596,7 @@ struct CallView: View {
|
|||
.background(Color.gray500)
|
||||
.cornerRadius(40)
|
||||
|
||||
Text("Disposition")
|
||||
Text("call_action_change_layout")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2635,7 +2635,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(!callViewModel.isOneOneCall)
|
||||
|
||||
Text("Messages")
|
||||
Text("call_action_show_messages")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2659,7 +2659,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(telecomManager.isPausedByRemote)
|
||||
|
||||
Text("Pause")
|
||||
Text("call_action_pause_call")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2684,7 +2684,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(callViewModel.isPaused || telecomManager.isPausedByRemote)
|
||||
|
||||
Text("Record")
|
||||
Text("call_action_record_call")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
@ -2707,7 +2707,7 @@ struct CallView: View {
|
|||
.cornerRadius(40)
|
||||
.disabled(true)
|
||||
|
||||
Text("Record")
|
||||
Text("call_action_record_call")
|
||||
.foregroundStyle(.white)
|
||||
.default_text_style(styleSize: 15)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ struct CallsListFragment: View {
|
|||
|
||||
Text((callViewModel.selectedCall!.state == .PausedByRemote
|
||||
|| callViewModel.selectedCall!.state == .Pausing
|
||||
|| callViewModel.selectedCall!.state == .Paused) ? "Resume" : "Pause")
|
||||
|| callViewModel.selectedCall!.state == .Paused) ? "call_action_resume_call" : "call_action_pause_call")
|
||||
.default_text_style(styleSize: 15)
|
||||
|
||||
Spacer()
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ struct ContentView: View {
|
|||
.padding(.leading, 10)
|
||||
|
||||
if callViewModel.callsCounter > 1 {
|
||||
Text("\(callViewModel.callsCounter) appels")
|
||||
Text(String(format: String(localized: "calls_count_label"), callViewModel.callsCounter))
|
||||
.default_text_style_white(styleSize: 16)
|
||||
} else {
|
||||
Text("\(callViewModel.displayName)")
|
||||
|
|
@ -102,7 +102,7 @@ struct ContentView: View {
|
|||
Spacer()
|
||||
|
||||
if callViewModel.callsCounter == 1 {
|
||||
Text("\(callViewModel.isPaused || telecomManager.isPausedByRemote ? "En pause" : "Actif")")
|
||||
Text("\(callViewModel.isPaused || telecomManager.isPausedByRemote ? "call_state_paused" : "call_state_connected")")
|
||||
.default_text_style_white(styleSize: 16)
|
||||
.padding(.trailing, 10)
|
||||
}
|
||||
|
|
@ -140,10 +140,10 @@ struct ContentView: View {
|
|||
.foregroundStyle(self.index == 0 ? Color.orangeMain500 : Color.grayMain2c600)
|
||||
.frame(width: 25, height: 25)
|
||||
if self.index == 0 {
|
||||
Text("Contacts")
|
||||
Text("bottom_navigation_contacts_label")
|
||||
.default_text_style_700(styleSize: 10)
|
||||
} else {
|
||||
Text("Contacts")
|
||||
Text("bottom_navigation_contacts_label")
|
||||
.default_text_style(styleSize: 10)
|
||||
}
|
||||
}
|
||||
|
|
@ -188,10 +188,10 @@ struct ContentView: View {
|
|||
.foregroundStyle(self.index == 1 ? Color.orangeMain500 : Color.grayMain2c600)
|
||||
.frame(width: 25, height: 25)
|
||||
if self.index == 1 {
|
||||
Text("Calls")
|
||||
Text("bottom_navigation_calls_label")
|
||||
.default_text_style_700(styleSize: 10)
|
||||
} else {
|
||||
Text("Calls")
|
||||
Text("bottom_navigation_calls_label")
|
||||
.default_text_style(styleSize: 10)
|
||||
}
|
||||
}
|
||||
|
|
@ -391,7 +391,7 @@ struct ContentView: View {
|
|||
isShowDeleteAllHistoryPopup.toggle()
|
||||
} label: {
|
||||
HStack {
|
||||
Text("Delete all history")
|
||||
Text("menu_delete_history")
|
||||
Spacer()
|
||||
Image("trash-simple-red")
|
||||
.resizable()
|
||||
|
|
@ -669,10 +669,10 @@ struct ContentView: View {
|
|||
.foregroundStyle(self.index == 0 ? Color.orangeMain500 : Color.grayMain2c600)
|
||||
.frame(width: 25, height: 25)
|
||||
if self.index == 0 {
|
||||
Text("Contacts")
|
||||
Text("bottom_navigation_contacts_label")
|
||||
.default_text_style_700(styleSize: 10)
|
||||
} else {
|
||||
Text("Contacts")
|
||||
Text("bottom_navigation_contacts_label")
|
||||
.default_text_style(styleSize: 10)
|
||||
}
|
||||
}
|
||||
|
|
@ -719,10 +719,10 @@ struct ContentView: View {
|
|||
.foregroundStyle(self.index == 1 ? Color.orangeMain500 : Color.grayMain2c600)
|
||||
.frame(width: 25, height: 25)
|
||||
if self.index == 1 {
|
||||
Text("Calls")
|
||||
Text("bottom_navigation_calls_label")
|
||||
.default_text_style_700(styleSize: 9)
|
||||
} else {
|
||||
Text("Calls")
|
||||
Text("bottom_navigation_calls_label")
|
||||
.default_text_style(styleSize: 9)
|
||||
}
|
||||
}
|
||||
|
|
@ -1001,17 +1001,15 @@ struct ContentView: View {
|
|||
|
||||
if isShowDeleteContactPopup {
|
||||
PopupView(isShowPopup: $isShowDeleteContactPopup,
|
||||
title: Text(
|
||||
contactViewModel.selectedFriend != nil
|
||||
? "Delete \(contactViewModel.selectedFriend!.name!)?"
|
||||
: (contactViewModel.indexDisplayedFriend != nil
|
||||
? "Delete \(contactsManager.lastSearch[contactViewModel.indexDisplayedFriend!].friend!.name!)?"
|
||||
: "Error Name")),
|
||||
content: Text("This contact will be deleted definitively."),
|
||||
titleFirstButton: Text("Cancel"),
|
||||
title: Text(String(format: String(localized: "contact_dialog_delete_title"),
|
||||
contactViewModel.selectedFriend != nil
|
||||
? contactViewModel.selectedFriend!.name! : (contactViewModel.indexDisplayedFriend != nil
|
||||
? contactsManager.lastSearch[contactViewModel.indexDisplayedFriend!].friend!.name! : "Error Name"))),
|
||||
content: Text("contact_dialog_delete_message"),
|
||||
titleFirstButton: Text("dialog_cancel"),
|
||||
actionFirstButton: {
|
||||
self.isShowDeleteContactPopup.toggle()},
|
||||
titleSecondButton: Text("Ok"),
|
||||
titleSecondButton: Text("dialog_ok"),
|
||||
actionSecondButton: {
|
||||
if contactViewModel.selectedFriendToDelete != nil {
|
||||
if contactViewModel.indexDisplayedFriend != nil {
|
||||
|
|
@ -1043,20 +1041,20 @@ struct ContentView: View {
|
|||
|
||||
if isShowDeleteAllHistoryPopup {
|
||||
PopupView(isShowPopup: $isShowDeleteContactPopup,
|
||||
title: Text("Do you really want to delete all calls history?"),
|
||||
content: Text("All calls will be removed from the history."),
|
||||
titleFirstButton: Text("Cancel"),
|
||||
title: Text("history_dialog_delete_all_call_logs_title"),
|
||||
content: Text("history_dialog_delete_all_call_logs_message"),
|
||||
titleFirstButton: Text("dialog_cancel"),
|
||||
actionFirstButton: {
|
||||
self.isShowDeleteAllHistoryPopup.toggle()
|
||||
historyListViewModel.callLogsAddressToDelete = ""
|
||||
},
|
||||
titleSecondButton: Text("Ok"),
|
||||
titleSecondButton: Text("dialog_ok"),
|
||||
actionSecondButton: {
|
||||
historyListViewModel.removeCallLogs()
|
||||
self.isShowDeleteAllHistoryPopup.toggle()
|
||||
historyViewModel.displayedCall = nil
|
||||
|
||||
ToastViewModel.shared.toastMessage = "Success_remove_call_logs"
|
||||
ToastViewModel.shared.toastMessage = "call_history_deleted_toast"
|
||||
ToastViewModel.shared.displayToast.toggle()
|
||||
})
|
||||
.background(.black.opacity(0.65))
|
||||
|
|
@ -1068,11 +1066,11 @@ struct ContentView: View {
|
|||
|
||||
if isShowDismissPopup {
|
||||
PopupView(isShowPopup: $isShowDismissPopup,
|
||||
title: Text("Don’t save modifications?"),
|
||||
content: Text("All modifications will be canceled."),
|
||||
titleFirstButton: Text("Cancel"),
|
||||
title: Text("content_description_save_changes"),
|
||||
content: Text("contact_editor_dialog_abort_confirmation_message"),
|
||||
titleFirstButton: Text("dialog_cancel"),
|
||||
actionFirstButton: {self.isShowDismissPopup.toggle()},
|
||||
titleSecondButton: Text("Ok"),
|
||||
titleSecondButton: Text("dialog_ok"),
|
||||
actionSecondButton: {
|
||||
if editContactViewModel.selectedEditFriend == nil {
|
||||
self.isShowDismissPopup.toggle()
|
||||
|
|
@ -1143,15 +1141,15 @@ struct ContentView: View {
|
|||
|
||||
if isShowSendCancelMeetingNotificationPopup {
|
||||
PopupView(isShowPopup: $isShowSendCancelMeetingNotificationPopup,
|
||||
title: Text("The meeting will be cancelled"),
|
||||
content: Text("Send notification to participants ?"),
|
||||
title: Text("meeting_schedule_cancel_dialog_title"),
|
||||
content: Text("meeting_schedule_cancel_dialog_message"),
|
||||
titleFirstButton: Text("Cancel for me only"),
|
||||
actionFirstButton: {
|
||||
meetingViewModel.displayedMeeting = nil
|
||||
meetingsListViewModel.deleteSelectedMeeting()
|
||||
self.isShowSendCancelMeetingNotificationPopup.toggle(
|
||||
) },
|
||||
titleSecondButton: Text("Send cancellation notifications"),
|
||||
titleSecondButton: Text("meeting_schedule_cancel_dialog_title"),
|
||||
actionSecondButton: {
|
||||
meetingViewModel.displayedMeeting = nil
|
||||
if let meetingToDelete = self.meetingsListViewModel.selectedMeetingToDelete {
|
||||
|
|
@ -1172,11 +1170,11 @@ struct ContentView: View {
|
|||
isShowPopup: $isShowStartCallGroupPopup,
|
||||
title: Text("conversation_info_confirm_start_group_call_dialog_title"),
|
||||
content: Text("conversation_info_confirm_start_group_call_dialog_message"),
|
||||
titleFirstButton: Text("Cancel"),
|
||||
titleFirstButton: Text("dialog_cancel"),
|
||||
actionFirstButton: {
|
||||
self.isShowStartCallGroupPopup.toggle()
|
||||
},
|
||||
titleSecondButton: Text("Confirm"),
|
||||
titleSecondButton: Text("dialog_ok"),
|
||||
actionSecondButton: {
|
||||
if conversationViewModel.displayedConversation != nil {
|
||||
conversationViewModel.displayedConversation!.createGroupCall()
|
||||
|
|
@ -1196,11 +1194,11 @@ struct ContentView: View {
|
|||
isShowPopup: $isShowStartCallGroupPopup,
|
||||
title: Text("conversation_info_confirm_start_group_call_dialog_title"),
|
||||
content: Text("conversation_info_confirm_start_group_call_dialog_message"),
|
||||
titleFirstButton: Text("Cancel"),
|
||||
titleFirstButton: Text("dialog_cancel"),
|
||||
actionFirstButton: {
|
||||
self.isShowStartCallGroupPopup.toggle()
|
||||
},
|
||||
titleSecondButton: Text("Confirm"),
|
||||
titleSecondButton: Text("dialog_ok"),
|
||||
actionSecondButton: {
|
||||
if conversationViewModel.displayedConversation != nil {
|
||||
conversationViewModel.displayedConversation!.createGroupCall()
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class HelpView { // TODO (basic debug moved here until halp view is implemented)
|
|||
CoreContext.shared.doOnCoreQueue { _ in
|
||||
Core.resetLogCollection()
|
||||
DispatchQueue.main.async {
|
||||
ToastViewModel.shared.toastMessage = "Success_clear_logs"
|
||||
ToastViewModel.shared.toastMessage = "help_troubleshooting_debug_logs_cleaned_toast_message"
|
||||
ToastViewModel.shared.displayToast = true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,35 +60,35 @@ struct ToastView: View {
|
|||
.padding(8)
|
||||
|
||||
case "Success_remove_call_logs":
|
||||
Text("History has been deleted")
|
||||
Text("call_history_deleted_toast)
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Success_clear_logs":
|
||||
Text("Logs cleared")
|
||||
Text("help_troubleshooting_debug_logs_cleaned_toast_message")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Success_send_logs":
|
||||
Text("Logs URL copied into clipboard")
|
||||
Text("debug_logs_copied_to_clipboard_toast")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Success_address_copied_into_clipboard":
|
||||
Text("SIP address copied into clipboard")
|
||||
Text("sip_address_copied_to_clipboard_toast")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Success_message_copied_into_clipboard":
|
||||
Text("Message copied into clipboard")
|
||||
Text("message_copied_to_clipboard_toast")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
|
|
@ -109,63 +109,56 @@ struct ToastView: View {
|
|||
.padding(8)
|
||||
|
||||
case "Failed":
|
||||
Text("Invalid QR code!")
|
||||
Text("assistant_qr_code_invalid_toast")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.redDanger500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Invalide URI":
|
||||
Text("Invalide URI")
|
||||
Text("assistant_invalid_uri_toast")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.redDanger500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Registration_failed":
|
||||
Text("The user name or password is incorrects")
|
||||
Text("assistant_account_login_forbidden_error")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.redDanger500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Unavailable_network":
|
||||
Text("Network is not reachable")
|
||||
Text("network_not_reachable")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.redDanger500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Success_toast_network_connected":
|
||||
Text("Network is now reachable again")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Success_account_logged_out":
|
||||
Text("Account successfully logged out")
|
||||
Text("network_not_reachable_again")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Success_toast_call_transfer_successful":
|
||||
Text("Call has been successfully transferred")
|
||||
Text("call_transfer_successful_toast")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Success_toast_call_transfer_in_progress":
|
||||
Text("Call is being transferred")
|
||||
Text("call_transfer_in_progress_toast")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
.padding(8)
|
||||
|
||||
case "Success_toast_meeting_deleted":
|
||||
Text("Successfully removed meeting")
|
||||
Text("meeting_info_deleted_toast")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
|
|
@ -254,7 +247,7 @@ struct ToastView: View {
|
|||
.foregroundStyle(Color.redDanger500)
|
||||
|
||||
case "Meeting_added_to_calendar":
|
||||
Text("Meeting added to iPhone calendar")
|
||||
Text("meeting_exported_as_calendar_event")
|
||||
.multilineTextAlignment(.center)
|
||||
.foregroundStyle(Color.greenSuccess500)
|
||||
.default_text_style(styleSize: 15)
|
||||
|
|
|
|||
|
|
@ -433,7 +433,7 @@ struct ScheduleMeetingFragment: View {
|
|||
|
||||
HStack {
|
||||
Spacer()
|
||||
Text("Cancel")
|
||||
Text("dialog_cancel")
|
||||
.default_text_style_orange_500(styleSize: 16)
|
||||
.onTapGesture {
|
||||
if isTimeSelection {
|
||||
|
|
@ -442,7 +442,7 @@ struct ScheduleMeetingFragment: View {
|
|||
showDatePicker.toggle()
|
||||
}
|
||||
}
|
||||
Text("Ok")
|
||||
Text("dialog_ok")
|
||||
.default_text_style_orange_500(styleSize: 16)
|
||||
.onTapGesture {
|
||||
pickDate()
|
||||
|
|
|
|||
|
|
@ -249,7 +249,7 @@ class NotificationService: UNNotificationServiceExtension {
|
|||
if reactionContent == nil {
|
||||
msgData.body = (message.subject != nil ? "\(from): " : "") + content
|
||||
} else {
|
||||
msgData.body = from + NSLocalizedString(" has reacted by ", comment: "") + reactionContent! + NSLocalizedString(" to: ", comment: "") + content
|
||||
msgData.body = String(format: String(localized: "notification_chat_message_reaction_received"), from, reactionContent!, content)
|
||||
}
|
||||
} else {
|
||||
if let subject = message.subject {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue