Replace text with translation keys in Meeting waiting room, meetings list, meeting scheduling fragments

This commit is contained in:
QuentinArguillere 2024-11-21 15:29:14 +01:00
parent c6c25ce88b
commit 3f154651ea
7 changed files with 307 additions and 68 deletions

View file

@ -15,6 +15,9 @@
},
" to: " : {
},
": %@" : {
},
"." : {
@ -60,9 +63,6 @@
},
"%@" : {
},
"%@ meeting" : {
},
"%lld" : {
@ -207,9 +207,6 @@
},
"Active" : {
},
"Add a description" : {
},
"Add a picture" : {
@ -219,9 +216,6 @@
},
"Add the contact" : {
},
"Add to calendar" : {
},
"Add to contacts" : {
@ -240,9 +234,6 @@
},
"All modifications will be canceled." : {
},
"Annuler" : {
},
"Appel" : {
@ -442,6 +433,22 @@
},
"Bluetooth" : {
},
"bottom_navigation_meetings_label" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Meetings"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Réunions"
}
}
}
},
"Call failed" : {
@ -477,6 +484,9 @@
}
}
}
},
"call_audio_device_type_speaker" : {
},
"call_can_be_trusted_toast" : {
"extractionState" : "manual",
@ -805,9 +815,6 @@
},
"Cancel for me only" : {
},
"Cancelled" : {
},
"Categories" : {
@ -871,9 +878,6 @@
}
}
}
},
"Connexion à la réunion" : {
},
"contact_details_actions_title" : {
"extractionState" : "manual",
@ -1861,9 +1865,6 @@
},
"Delete this contact" : {
},
"Delete this meeting" : {
},
"Demande dautorisations" : {
@ -2257,9 +2258,6 @@
},
"Job title" : {
},
"Join the meeting now" : {
},
"Joining..." : {
@ -2306,6 +2304,134 @@
},
"Meeting added to iPhone calendar" : {
},
"meeting_info_cancelled_toast" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Meeting has been cancelled"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "La réunion a été annulée"
}
}
}
},
"meeting_info_delete" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Delete meeting"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Supprimer la réunion"
}
}
}
},
"meeting_info_export_as_calendar_event" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Create calendar event"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Ajouter un évènement dans le calendrie"
}
}
}
},
"meeting_info_join_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Join the meeting now"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Rejoindre la réunion"
}
}
}
},
"meeting_info_organizer_label" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Organizer"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Organisateur"
}
}
}
},
"meeting_schedule_add_participants_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Add participants"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Ajouter des participants"
}
}
}
},
"meeting_schedule_description_hint" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Add description"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Ajouter une description"
}
}
}
},
"meeting_schedule_edit_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Edit meeting"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Modifier la réunion"
}
}
}
},
"meeting_schedule_meeting_label" : {
"extractionState" : "manual",
@ -2324,6 +2450,86 @@
}
}
},
"meeting_schedule_send_invitations_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Send invitation to participants"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Envoyer une invitation aux participants"
}
}
}
},
"meeting_schedule_subject_hint" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Add title…"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Ajouter un titre…"
}
}
}
},
"meeting_schedule_timezone_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Timezone"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Fuseau horaire"
}
}
}
},
"meeting_schedule_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "New meeting"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Nouvelle réunion"
}
}
}
},
"meeting_waiting_room_cancel" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Cancel"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Annuler"
}
}
}
},
"meeting_waiting_room_join" : {
"extractionState" : "manual",
"localizations" : {
@ -2341,6 +2547,38 @@
}
}
},
"meeting_waiting_room_joining_subtitle" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "You\\'ll be joining in a short moment"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Vous allez rejoindre la réunion dans quelques instants…"
}
}
}
},
"meeting_waiting_room_joining_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Connection in progress"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Connexion à la réunion"
}
}
}
},
"Meetings" : {
},
@ -2360,6 +2598,22 @@
}
}
},
"meetings_list_no_meeting_for_today" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "No meeting scheduled for today"
}
},
"fr" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Aucune réunion aujourd\\'hui"
}
}
}
},
"menu_copy_chat_message" : {
"extractionState" : "manual",
"localizations" : {
@ -2633,9 +2887,6 @@
},
"Next" : {
},
"No meeting today" : {
},
"No participant for the moment..." : {
@ -2654,9 +2905,6 @@
},
"Opération en cours..." : {
},
"Organizer" : {
},
"Other actions" : {
@ -2804,9 +3052,6 @@
},
"Send cancellation notifications" : {
},
"Send invitations to participants" : {
},
"Send Logs" : {
@ -2854,9 +3099,6 @@
},
"Start" : {
},
"Subject" : {
},
"subscribe.linphone.org" : {
@ -2887,9 +3129,6 @@
},
"This contact will be deleted definitively." : {
},
"Time Zone: %@" : {
},
"TLS" : {
@ -2955,9 +3194,6 @@
},
"Vos communications sont en sécurité grâce aux **Chiffrement de bout en bout**." : {
},
"Vous allez rejoindre la réunion dans quelques instants..." : {
},
"Welcome" : {

View file

@ -376,12 +376,12 @@ struct MeetingWaitingRoomFragment: View {
VStack {
Spacer()
Text("Connexion à la réunion")
Text("meeting_waiting_room_joining_title")
.default_text_style_white_600(styleSize: 24)
.multilineTextAlignment(.center)
.padding(.bottom, 10)
Text("Vous allez rejoindre la réunion dans quelques instants...")
Text("meeting_waiting_room_joining_subtitle")
.default_text_style_white(styleSize: 16)
.multilineTextAlignment(.center)
.padding(.bottom, 20)
@ -394,7 +394,7 @@ struct MeetingWaitingRoomFragment: View {
Button(action: {
meetingWaitingRoomViewModel.cancelMeeting()
}, label: {
Text("Annuler")
Text("meeting_waiting_room_cancel")
.default_text_style_white_600(styleSize: 20)
.frame(height: 35)
.frame(maxWidth: .infinity)
@ -502,7 +502,7 @@ struct MeetingWaitingRoomFragment: View {
.frame(width: 25, height: 25, alignment: .leading)
.padding(.all, 10)
Text("Speaker")
Text("call_audio_device_type_speaker")
.default_text_style_white(styleSize: 15)
Spacer()

View file

@ -260,10 +260,10 @@ struct ContentView: View {
.foregroundStyle(self.index == 3 ? Color.orangeMain500 : Color.grayMain2c600)
.frame(width: 25, height: 25)
if self.index == 0 {
Text("Meetings")
Text("bottom_navigation_meetings_label")
.default_text_style_700(styleSize: 10)
} else {
Text("Meetings")
Text("bottom_navigation_meetings_label")
.default_text_style(styleSize: 10)
}
}
@ -313,7 +313,7 @@ struct ContentView: View {
openMenu()
}
Text(index == 0 ? "Contacts" : (index == 1 ? "Calls" : (index == 2 ? "Conversations" : "Meetings")))
Text(index == 0 ? "Contacts" : (index == 1 ? "Calls" : (index == 2 ? "Conversations" : "bottom_navigation_meetings_label")))
.default_text_style_white_800(styleSize: 20)
.padding(.leading, 10)
@ -794,10 +794,10 @@ struct ContentView: View {
.foregroundStyle(self.index == 3 ? Color.orangeMain500 : Color.grayMain2c600)
.frame(width: 25, height: 25)
if self.index == 3 {
Text("Meetings")
Text("bottom_navigation_meetings_label")
.default_text_style_700(styleSize: 9)
} else {
Text("Meetings")
Text("bottom_navigation_meetings_label")
.default_text_style(styleSize: 9)
}
}

View file

@ -55,7 +55,7 @@ struct MeetingFragment: View {
.padding(.leading, 10)
.padding(.trailing, 40)
Text("Organizer")
Text("meeting_info_organizer_label")
.font(Font.custom("NotoSans-Light", size: 12))
.foregroundStyle(Color.grayMain2c600)
.opacity(participant.isOrganizer ? 1 : 0)
@ -122,7 +122,7 @@ struct MeetingFragment: View {
.renderingMode(.template)
.resizable()
.frame(width: 25, height: 25, alignment: .leading)
Text("Add to calendar")
Text("meeting_info_export_as_calendar_event")
.default_text_style(styleSize: 16)
Spacer()
}
@ -144,7 +144,7 @@ struct MeetingFragment: View {
.renderingMode(.template)
.resizable()
.frame(width: 25, height: 25, alignment: .leading)
Text("Delete this meeting")
Text("meeting_info_delete")
.foregroundStyle(Color.redDanger500)
.default_text_style(styleSize: 16)
Spacer()
@ -301,7 +301,7 @@ struct MeetingFragment: View {
Button(action: {
meetingViewModel.joinMeeting(addressUri: meetingViewModel.displayedMeeting?.address ?? "")
}, label: {
Text("Join the meeting now")
Text("meeting_info_join_title")
.bold()
.default_text_style_white_500(styleSize: 16)
.frame(maxWidth: .infinity, maxHeight: 47, alignment: .center)

View file

@ -49,7 +49,7 @@ struct MeetingsFragment: View {
func createMeetingLine(model: MeetingsListItemModel) -> some View {
VStack(alignment: .leading, spacing: 0) {
if model.isToday {
Text("No meeting today")
Text("meetings_list_no_meeting_for_today")
.fontWeight(.bold)
.default_text_style_500(styleSize: 15)
} else {
@ -71,7 +71,7 @@ struct MeetingsFragment: View {
// this time string is formatted for the current device timezone, we use the selected timezone only when displaying details
.default_text_style_500(styleSize: 15)
} else {
Text("Cancelled")
Text("meeting_info_cancelled_toast")
.foregroundStyle(Color.redDanger500)
.default_text_style_500(styleSize: 15)
}
@ -134,7 +134,7 @@ struct MeetingsFragment: View {
}
.frame(width: 35)
if itemModel.isToday {
Text("No meeting today")
Text("meetings_list_no_meeting_for_today")
.fontWeight(.bold)
.padding(.leading, 20)
.padding(.top, 15)

View file

@ -85,7 +85,7 @@ struct MeetingsListBottomSheet: View {
.foregroundStyle(Color.redDanger500)
.frame(width: 25, height: 25, alignment: .leading)
.padding(.all, 10)
Text("Delete this meeting")
Text("meeting_info_delete")
.foregroundStyle(Color.redDanger500)
.default_text_style(styleSize: 16)
Spacer()

View file

@ -83,7 +83,7 @@ struct ScheduleMeetingFragment: View {
}
}
Text("\(meetingViewModel.displayedMeeting != nil ? "Edit" : "New") meeting" )
Text(meetingViewModel.displayedMeeting != nil ? "meeting_schedule_edit_title" : "meeting_schedule_title" )
.multilineTextAlignment(.leading)
.default_text_style_orange_800(styleSize: 16)
@ -102,7 +102,7 @@ struct ScheduleMeetingFragment: View {
.foregroundStyle(Color.grayMain2c800)
.frame(width: 24, height: 24)
.padding(.leading, 15)
TextField("Subject", text: $meetingViewModel.subject)
TextField("meeting_schedule_subject_hint", text: $meetingViewModel.subject)
.focused($isSubjectTextFocused)
.default_text_style_700(styleSize: 20)
.frame(height: 29, alignment: .leading)
@ -156,15 +156,18 @@ struct ScheduleMeetingFragment: View {
Spacer()
}
HStack(alignment: .center, spacing: 10) {
HStack(alignment: .center, spacing: 0) {
Image("earth")
.renderingMode(.template)
.resizable()
.foregroundStyle(Color.grayMain2c800)
.frame(width: 24, height: 24)
.padding(.leading, 15)
Text("Time Zone: \(meetingViewModel.selectedTimezone.formattedString())")
.padding(.trailing, 10)
Text("meeting_schedule_timezone_title")
.fontWeight(.bold)
.default_text_style_500(styleSize: 15)
Text(": \(meetingViewModel.selectedTimezone.formattedString())")
.fontWeight(.bold)
.default_text_style_500(styleSize: 15)
.onTapGesture {
@ -202,7 +205,7 @@ struct ScheduleMeetingFragment: View {
.padding(.leading, 16)
if #available(iOS 16.0, *) {
TextField("Add a description", text: $meetingViewModel.description, axis: .vertical)
TextField("meeting_schedule_description_hint", text: $meetingViewModel.description, axis: .vertical)
.default_text_style(styleSize: 15)
.focused($isDescriptionTextFocused)
.padding(.vertical, 5)
@ -216,7 +219,7 @@ struct ScheduleMeetingFragment: View {
.focused($isDescriptionTextFocused)
if meetingViewModel.description.isEmpty {
Text("Add a description")
Text("meeting_schedule_description_hint")
.padding(.leading, 5)
.foregroundStyle(Color.gray300)
.default_text_style(styleSize: 15)
@ -248,7 +251,7 @@ struct ScheduleMeetingFragment: View {
.frame(width: 24, height: 24)
.padding(.leading, 16)
Text("Add participants")
Text("meeting_schedule_add_participants_title")
.default_text_style_700(styleSize: 16)
.frame(height: 29, alignment: .leading)
Spacer()
@ -293,7 +296,7 @@ struct ScheduleMeetingFragment: View {
.padding(.leading, 16)
.labelsHidden()
.tint(Color.orangeMain300)
Text("Send invitations to participants")
Text("meeting_schedule_send_invitations_title")
.default_text_style_500(styleSize: 14)
Spacer()
}