diff --git a/Linphone/Localizable.xcstrings b/Linphone/Localizable.xcstrings index 0c7de5d09..9856db08f 100644 --- a/Linphone/Localizable.xcstrings +++ b/Linphone/Localizable.xcstrings @@ -3,21 +3,9 @@ "strings" : { "" : { - }, - " has reacted by " : { - - }, - " or " : { - - }, - " to: " : { - }, ": %@" : { - }, - "[Forgotten password?](https://subscribe.linphone.org/)" : { - }, "[linphone.org/contact](https://linphone.org/contact)" : { @@ -438,6 +426,54 @@ } } }, + "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" : { @@ -566,6 +602,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" : { @@ -698,9 +750,15 @@ }, "call_audio_device_type_speaker" : { "localizations" : { - "fr" : { + "en" : { "stringUnit" : { "state" : "translated", + "value" : "Speaker" + } + }, + "fr" : { + "stringUnit" : { + "state" : "needs_review", "value" : "Haut parleur" } } @@ -3692,14 +3750,30 @@ "Non" : { }, - "Not account yet?" : { - + "notification_chat_message_reaction_received" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ reacted by %@ to: %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ a réagi par %@ à : %@" + } + } + } }, "Ok" : { }, "Opération en cours..." : { + }, + "or" : { + }, "Oui" : { @@ -3728,7 +3802,7 @@ "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Password en FR" + "value" : "Mot de passe" } } } @@ -3797,6 +3871,7 @@ } }, "Register" : { + "extractionState" : "stale", "localizations" : { "fr" : { "stringUnit" : { @@ -3811,9 +3886,6 @@ }, "Resuming" : { - }, - "Scan QR code" : { - }, "Select %@ %@" : { "localizations" : { @@ -3929,9 +4001,6 @@ }, "Use a SIP account" : { - }, - "Use SIP Account" : { - }, "username" : { "extractionState" : "manual", @@ -3945,7 +4014,7 @@ "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Username en FR" + "value" : "Nom d’utilisateur" } } } @@ -3955,30 +4024,6 @@ }, "Vidéo" : { - }, - "website_privacy_policy_url" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "https://linphone.org/privacy-policy" - } - } - }, - "shouldTranslate" : false - }, - "website_terms_and_conditions_url" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "https://linphone.org/general-terms" - } - } - }, - "shouldTranslate" : false }, "welcome_page_1_message" : { "localizations" : { diff --git a/Linphone/UI/Assistant/Fragments/LoginFragment.swift b/Linphone/UI/Assistant/Fragments/LoginFragment.swift index a570ec995..222274491 100644 --- a/Linphone/UI/Assistant/Fragments/LoginFragment.swift +++ b/Linphone/UI/Assistant/Fragments/LoginFragment.swift @@ -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) }) diff --git a/msgNotificationService/NotificationService.swift b/msgNotificationService/NotificationService.swift index ae04eba6c..c6f0f6189 100644 --- a/msgNotificationService/NotificationService.swift +++ b/msgNotificationService/NotificationService.swift @@ -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 {