From 41247d0840a6116a717f0299dcc3c4261093a865 Mon Sep 17 00:00:00 2001 From: Hugo Pezziardi Date: Tue, 26 Nov 2024 14:50:12 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=20(LekaApp):=20Add=20OS=20update?= =?UTF-8?q?=20available=20alert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resources/l10n/Localizable.xcstrings | 344 +++++++++++------- .../Views/MainView/MainView+l10n.swift | 7 + .../Sources/Views/MainView/MainView.swift | 24 +- 3 files changed, 236 insertions(+), 139 deletions(-) diff --git a/Apps/LekaApp/Resources/l10n/Localizable.xcstrings b/Apps/LekaApp/Resources/l10n/Localizable.xcstrings index 4620b69fb..fd40e8f56 100644 --- a/Apps/LekaApp/Resources/l10n/Localizable.xcstrings +++ b/Apps/LekaApp/Resources/l10n/Localizable.xcstrings @@ -51,7 +51,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Minimum 12 caractères, sans espaces" + "value": "Minimum 12 caract\u00e8res, sans espaces" } } } @@ -87,7 +87,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Processus de création de compte" + "value": "Processus de cr\u00e9ation de compte" } } } @@ -99,13 +99,13 @@ "en": { "stringUnit": { "state": "new", - "value": "Let's start! 👉" + "value": "Let's start! \ud83d\udc49" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Commençons ! 👉" + "value": "Commen\u00e7ons ! \ud83d\udc49" } } } @@ -123,7 +123,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nous allons maintenant vous guider\nà travers la création de votre compte\net les différentes étapes.\nPrêt(e)?" + "value": "Nous allons maintenant vous guider\n\u00e0 travers la cr\u00e9ation de votre compte\net les diff\u00e9rentes \u00e9tapes.\nPr\u00eat(e)?" } } } @@ -135,13 +135,13 @@ "en": { "stringUnit": { "state": "new", - "value": "Welcome to our account creation process! 👋" + "value": "Welcome to our account creation process! \ud83d\udc4b" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Bienvenue dans notre processus de création de compte ! 👋" + "value": "Bienvenue dans notre processus de cr\u00e9ation de compte ! \ud83d\udc4b" } } } @@ -159,7 +159,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer" + "value": "Cr\u00e9er" } } } @@ -177,7 +177,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Tout d'abord, créons votre profil en tant qu'accompagnant." + "value": "Tout d'abord, cr\u00e9ons votre profil en tant qu'accompagnant." } } } @@ -195,7 +195,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Passer cette étape" + "value": "Passer cette \u00e9tape" } } } @@ -213,7 +213,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Étape 1 - Profil de l'accompagnant" + "value": "\u00c9tape 1 - Profil de l'accompagnant" } } } @@ -231,7 +231,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer" + "value": "Cr\u00e9er" } } } @@ -249,7 +249,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nous allons maintenant créer un profil\nprofil de personne accompagnée." + "value": "Nous allons maintenant cr\u00e9er un profil\nprofil de personne accompagn\u00e9e." } } } @@ -267,7 +267,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Passer cette étape" + "value": "Passer cette \u00e9tape" } } } @@ -285,7 +285,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Étape 2 - Profil de la personne accompagnée" + "value": "\u00c9tape 2 - Profil de la personne accompagn\u00e9e" } } } @@ -297,13 +297,13 @@ "en": { "stringUnit": { "state": "new", - "value": "Let's go! 🚀" + "value": "Let's go! \ud83d\ude80" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Allons-y ! 🚀" + "value": "Allons-y ! \ud83d\ude80" } } } @@ -321,7 +321,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Vous voilà prêt !\nVous pouvez maintenant découvrir l'appli Leka et approfondir notre contenu éducatif !" + "value": "Vous voil\u00e0 pr\u00eat !\nVous pouvez maintenant d\u00e9couvrir l'appli Leka et approfondir notre contenu \u00e9ducatif !" } } } @@ -333,13 +333,13 @@ "en": { "stringUnit": { "state": "new", - "value": "🎉 Congratulations! 👏" + "value": "\ud83c\udf89 Congratulations! \ud83d\udc4f" } }, "fr": { "stringUnit": { "state": "translated", - "value": "🎉 Félicitations ! 👏" + "value": "\ud83c\udf89 F\u00e9licitations ! \ud83d\udc4f" } } } @@ -375,7 +375,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer un compte" + "value": "Cr\u00e9er un compte" } } } @@ -411,7 +411,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Un email a été envoyé à l'adresse indiquée. Veuillez cliquer sur le lien pour confirmer votre adresse e-mail." + "value": "Un email a \u00e9t\u00e9 envoy\u00e9 \u00e0 l'adresse indiqu\u00e9e. Veuillez cliquer sur le lien pour confirmer votre adresse e-mail." } } } @@ -447,7 +447,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nous avons rencontré un problème lors de la création de votre compte. Veuillez réessayer. " + "value": "Nous avons rencontr\u00e9 un probl\u00e8me lors de la cr\u00e9ation de votre compte. Veuillez r\u00e9essayer. " } } } @@ -483,7 +483,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Sélectionner" + "value": "S\u00e9lectionner" } } } @@ -573,7 +573,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Prénom" + "value": "Pr\u00e9nom" } } } @@ -681,7 +681,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer le profil" + "value": "Cr\u00e9er le profil" } } } @@ -699,7 +699,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "L’e-mail ne doit pas contenir d’espaces ou de sauts de ligne" + "value": "L\u2019e-mail ne doit pas contenir d\u2019espaces ou de sauts de ligne" } } } @@ -735,7 +735,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer un profil d'accompagnant" + "value": "Cr\u00e9er un profil d'accompagnant" } } } @@ -753,7 +753,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer un profil" + "value": "Cr\u00e9er un profil" } } } @@ -771,7 +771,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer votre premier profil accompagnant" + "value": "Cr\u00e9er votre premier profil accompagnant" } } } @@ -789,7 +789,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Aucun profil d'accompagnant n'a été créé pour le moment." + "value": "Aucun profil d'accompagnant n'a \u00e9t\u00e9 cr\u00e9\u00e9 pour le moment." } } } @@ -807,7 +807,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Accédez et modifiez les profils des professionnels et accompagnants, visualisez les statistiques et l'historique d'utilisation." + "value": "Acc\u00e9dez et modifiez les profils des professionnels et accompagnants, visualisez les statistiques et l'historique d'utilisation." } } } @@ -825,7 +825,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Gérez les profils et suivez les activités des accompagnants." + "value": "G\u00e9rez les profils et suivez les activit\u00e9s des accompagnants." } } } @@ -861,7 +861,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer votre premier profil Accompagnant" + "value": "Cr\u00e9er votre premier profil Accompagnant" } } } @@ -879,7 +879,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Aucun profil d'accompagnant n'a été créé pour le moment." + "value": "Aucun profil d'accompagnant n'a \u00e9t\u00e9 cr\u00e9\u00e9 pour le moment." } } } @@ -915,7 +915,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer un profil" + "value": "Cr\u00e9er un profil" } } } @@ -933,7 +933,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Sélectionner" + "value": "S\u00e9lectionner" } } } @@ -951,7 +951,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Sélectionner votre profil " + "value": "S\u00e9lectionner votre profil " } } } @@ -1041,7 +1041,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer le profil" + "value": "Cr\u00e9er le profil" } } } @@ -1059,7 +1059,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer un profil de personne accompagnée" + "value": "Cr\u00e9er un profil de personne accompagn\u00e9e" } } } @@ -1077,7 +1077,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer un profil" + "value": "Cr\u00e9er un profil" } } } @@ -1095,7 +1095,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer votre premier profil de personne accompagnée" + "value": "Cr\u00e9er votre premier profil de personne accompagn\u00e9e" } } } @@ -1113,7 +1113,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Aucun profil de personne accompagnée n'a été créé pour le moment." + "value": "Aucun profil de personne accompagn\u00e9e n'a \u00e9t\u00e9 cr\u00e9\u00e9 pour le moment." } } } @@ -1131,7 +1131,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Modifiez les profils des personnes accompagnées, suivez leur progression et accédez à l'historique de leur activité pour un suivi personnalisé." + "value": "Modifiez les profils des personnes accompagn\u00e9es, suivez leur progression et acc\u00e9dez \u00e0 l'historique de leur activit\u00e9 pour un suivi personnalis\u00e9." } } } @@ -1149,7 +1149,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Suivi détaillé et gestion des profils des personnes accompagnées." + "value": "Suivi d\u00e9taill\u00e9 et gestion des profils des personnes accompagn\u00e9es." } } } @@ -1167,7 +1167,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Personnes accompagnées" + "value": "Personnes accompagn\u00e9es" } } } @@ -1203,7 +1203,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Aller à la section Personnes Accompagnées" + "value": "Aller \u00e0 la section Personnes Accompagn\u00e9es" } } } @@ -1221,7 +1221,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Aucun profil de personne accompagnée n'a été créé pour le moment.\nVous pouvez en créer un en vous rendant dans la section Personnes Accompagnées" + "value": "Aucun profil de personne accompagn\u00e9e n'a \u00e9t\u00e9 cr\u00e9\u00e9 pour le moment.\nVous pouvez en cr\u00e9er un en vous rendant dans la section Personnes Accompagn\u00e9es" } } } @@ -1239,7 +1239,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Sélectionner" + "value": "S\u00e9lectionner" } } } @@ -1275,7 +1275,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Avec qui faites vous cette activité ?" + "value": "Avec qui faites vous cette activit\u00e9 ?" } } } @@ -1293,7 +1293,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Parcourir les compétences" + "value": "Parcourir les comp\u00e9tences" } } } @@ -1311,7 +1311,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Pour des raisons de sécurité, les modifications de l'e-mail ou du mot de passe doivent être traitées par notre équipe support.\nVeuillez nous contacter à\nsupport@leka.io\net nous serons heureux de vous aider à mettre à jour les informations de votre compte." + "value": "Pour des raisons de s\u00e9curit\u00e9, les modifications de l'e-mail ou du mot de passe doivent \u00eatre trait\u00e9es par notre \u00e9quipe support.\nVeuillez nous contacter \u00e0\nsupport@leka.io\net nous serons heureux de vous aider \u00e0 mettre \u00e0 jour les informations de votre compte." } } } @@ -1329,7 +1329,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Mot de passe oublié ?" + "value": "Mot de passe oubli\u00e9 ?" } } } @@ -1365,7 +1365,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Mot de passe oublié ?" + "value": "Mot de passe oubli\u00e9 ?" } } } @@ -1383,7 +1383,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nous avons rencontré un problème lors de la connexion à votre compte. Veuillez réessayer. " + "value": "Nous avons rencontr\u00e9 un probl\u00e8me lors de la connexion \u00e0 votre compte. Veuillez r\u00e9essayer. " } } } @@ -1419,7 +1419,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Thème de couleur" + "value": "Th\u00e8me de couleur" } } } @@ -1473,7 +1473,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Éditer mon profil" + "value": "\u00c9diter mon profil" } } } @@ -1527,7 +1527,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Éditer le profil" + "value": "\u00c9diter le profil" } } } @@ -1563,7 +1563,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "dans n'importe quelle activité, parcours ou histoire pour les ajouter à votre Bibliothèque." + "value": "dans n'importe quelle activit\u00e9, parcours ou histoire pour les ajouter \u00e0 votre Biblioth\u00e8que." } } } @@ -1581,7 +1581,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Votre Bibliothèque est vide" + "value": "Votre Biblioth\u00e8que est vide" } } } @@ -1599,7 +1599,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Vous pouvez supprimer des éléments de votre Bibliothèque en utilisant le même bouton." + "value": "Vous pouvez supprimer des \u00e9l\u00e9ments de votre Biblioth\u00e8que en utilisant le m\u00eame bouton." } } } @@ -1635,7 +1635,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Pour des raisons de sécurité, nous n’avons pas accès à votre mot de passe et ne pouvons donc pas vous le fournir.\n\nCependant, vous pouvez changer votre mot de passe après avoir rempli votre adresse e-mail ci-dessous.\n\nVous recevrez ensuite un e-mail vous permettant d’en choisir un nouveau." + "value": "Pour des raisons de s\u00e9curit\u00e9, nous n\u2019avons pas acc\u00e8s \u00e0 votre mot de passe et ne pouvons donc pas vous le fournir.\n\nCependant, vous pouvez changer votre mot de passe apr\u00e8s avoir rempli votre adresse e-mail ci-dessous.\n\nVous recevrez ensuite un e-mail vous permettant d\u2019en choisir un nouveau." } } } @@ -1671,7 +1671,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Réinitialiser le mot de passe" + "value": "R\u00e9initialiser le mot de passe" } } } @@ -1689,7 +1689,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nous avons rencontré un problème lors de l'envoi d'un e-mail pour changer votre mot de passe. \nVeuillez réessayer. \n\nSi le problème persiste, contactez notre équipe d'assistance pour obtenir de l'aide." + "value": "Nous avons rencontr\u00e9 un probl\u00e8me lors de l'envoi d'un e-mail pour changer votre mot de passe. \nVeuillez r\u00e9essayer. \n\nSi le probl\u00e8me persiste, contactez notre \u00e9quipe d'assistance pour obtenir de l'aide." } } } @@ -1707,7 +1707,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "L'e-mail de changement de mot de passe a été envoyé avec succès.\nVeuillez vérifier votre boîte de réception." + "value": "L'e-mail de changement de mot de passe a \u00e9t\u00e9 envoy\u00e9 avec succ\u00e8s.\nVeuillez v\u00e9rifier votre bo\u00eete de r\u00e9ception." } } } @@ -1761,7 +1761,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Mettre à jour maintenant" + "value": "Mettre \u00e0 jour maintenant" } } } @@ -1779,7 +1779,25 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Profitez des nouvelles fonctionnalités en téléchargeant la nouvelle mise à jour de l’app Leka !" + "value": "Profitez des nouvelles fonctionnalit\u00e9s en t\u00e9l\u00e9chargeant la nouvelle mise \u00e0 jour de l\u2019app Leka !" + } + } + } + }, + "lekaapp.main_view.app_update_alert.reminder": { + "comment": "The action button of the alert to inform the user that an os update is available", + "extractionState": "extracted_with_value", + "localizations": { + "en": { + "stringUnit": { + "state": "new", + "value": "Remind me later" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Me le rappeler plus tard" } } } @@ -1797,7 +1815,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nouvelle mise à jour disponible" + "value": "Nouvelle mise \u00e0 jour disponible" } } } @@ -1815,7 +1833,79 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Connectez-vous à votre compte pour accéder à votre bibliothèque personnelle." + "value": "Connectez-vous \u00e0 votre compte pour acc\u00e9der \u00e0 votre biblioth\u00e8que personnelle." + } + } + } + }, + "lekaapp.main_view.os_update_alert.action": { + "comment": "The action button of the alert to inform the user that an os update is available", + "extractionState": "extracted_with_value", + "localizations": { + "en": { + "stringUnit": { + "state": "new", + "value": "Update now" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Mettre \u00e0 jour maintenant" + } + } + } + }, + "lekaapp.main_view.os_update_alert.message": { + "comment": "The message of the alert to inform the user that an os update is available", + "extractionState": "extracted_with_value", + "localizations": { + "en": { + "stringUnit": { + "state": "new", + "value": "A new version of iPadOS is available! Update now to enjoy enhanced performance, security, and compatibility with the latest features of our app." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Une nouvelle version d'iPadOS est disponible ! Mettez \u00e0 jour d\u00e8s maintenant pour profiter de meilleures performances, d\u2019une s\u00e9curit\u00e9 renforc\u00e9e et d\u2019une compatibilit\u00e9 optimale avec les derni\u00e8res fonctionnalit\u00e9s de notre application." + } + } + } + }, + "lekaapp.main_view.os_update_alert.reminder": { + "comment": "The action button of the alert to inform the user that an os update is available", + "extractionState": "extracted_with_value", + "localizations": { + "en": { + "stringUnit": { + "state": "new", + "value": "Remind me later" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Me le rappeler plus tard" + } + } + } + }, + "lekaapp.main_view.os_update_alert.title": { + "comment": "The title of the alert to inform the user that an os update is available", + "extractionState": "extracted_with_value", + "localizations": { + "en": { + "stringUnit": { + "state": "new", + "value": "Update your iPad to the Latest iPadOS Version" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Mettez \u00e0 jour votre iPad vers la derni\u00e8re version d'iPadOS" } } } @@ -1851,7 +1941,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Personnes Accompagnées" + "value": "Personnes Accompagn\u00e9es" } } } @@ -1887,7 +1977,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Jeux Éducatifs" + "value": "Jeux \u00c9ducatifs" } } } @@ -1941,7 +2031,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Activités" + "value": "Activit\u00e9s" } } } @@ -1995,7 +2085,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nouveautés" + "value": "Nouveaut\u00e9s" } } } @@ -2013,7 +2103,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Sélectionnez une catégorie" + "value": "S\u00e9lectionnez une cat\u00e9gorie" } } } @@ -2067,7 +2157,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Vidéos" + "value": "Vid\u00e9os" } } } @@ -2175,7 +2265,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Bibliothèque" + "value": "Biblioth\u00e8que" } } } @@ -2265,7 +2355,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nouveautés" + "value": "Nouveaut\u00e9s" } } } @@ -2301,7 +2391,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Autre (préciser)" + "value": "Autre (pr\u00e9ciser)" } } } @@ -2319,7 +2409,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Sélectionner" + "value": "S\u00e9lectionner" } } } @@ -2373,7 +2463,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nous vous enverrons un e-mail avec un lien pour réinitialiser votre mot de passe.\nEs-tu sur de vouloir continuer?" + "value": "Nous vous enverrons un e-mail avec un lien pour r\u00e9initialiser votre mot de passe.\nEs-tu sur de vouloir continuer?" } } } @@ -2391,7 +2481,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Êtes-vous sûr de vouloir réinitialiser votre mot de passe ?" + "value": "\u00cates-vous s\u00fbr de vouloir r\u00e9initialiser votre mot de passe\u00a0?" } } } @@ -2427,7 +2517,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Veuillez entrer votre mot de passe pour confirmer que vous souhaitez\nsupprimer définitivement votre compte.\n\nUne fois votre compte supprimé, vous ne pourrez plus revenir en arrière.\n\n**Toutes vos données seront perdues à jamais.**\n*Êtes-vous sûr(e) de vous ?*" + "value": "Veuillez entrer votre mot de passe pour confirmer que vous souhaitez\nsupprimer d\u00e9finitivement votre compte.\n\nUne fois votre compte supprim\u00e9, vous ne pourrez plus revenir en arri\u00e8re.\n\n**Toutes vos donn\u00e9es seront perdues \u00e0 jamais.**\n*\u00cates-vous s\u00fbr(e) de vous ?*" } } } @@ -2445,7 +2535,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Mot de Passe Oublié ?" + "value": "Mot de Passe Oubli\u00e9 ?" } } } @@ -2463,7 +2553,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "L'authentification a échoué. Veuillez vérifier votre mot de passe." + "value": "L'authentification a \u00e9chou\u00e9. Veuillez v\u00e9rifier votre mot de passe." } } } @@ -2481,7 +2571,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Réinitialiser le mot de passe" + "value": "R\u00e9initialiser le mot de passe" } } } @@ -2517,7 +2607,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Le renforçateur est un effet lumineux répétitif du robot que vous pourrez actionner pour récompenser le comportement de l'utilisateur. Si votre robot est connecté, vous pouvez tester les renforçateurs avant d'en choisir un." + "value": "Le renfor\u00e7ateur est un effet lumineux r\u00e9p\u00e9titif du robot que vous pourrez actionner pour r\u00e9compenser le comportement de l'utilisateur. Si votre robot est connect\u00e9, vous pouvez tester les renfor\u00e7ateurs avant d'en choisir un." } } } @@ -2535,7 +2625,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Choix du renforçateur" + "value": "Choix du renfor\u00e7ateur" } } } @@ -2553,7 +2643,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Connecté à" + "value": "Connect\u00e9 \u00e0" } } } @@ -2571,7 +2661,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Connectez-vous à votre Leka" + "value": "Connectez-vous \u00e0 votre Leka" } } } @@ -2589,7 +2679,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Réglages" + "value": "R\u00e9glages" } } } @@ -2643,7 +2733,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Êtes-vous sûr(e) de vouloir supprimer votre compte ?\nCette action est irréversible." + "value": "\u00cates-vous s\u00fbr(e) de vouloir supprimer votre compte ?\nCette action est irr\u00e9versible." } } } @@ -2697,7 +2787,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nous avons rencontré un problème lors de la suppression de votre compte. Veuillez réessayer. \nSi le problème persiste, contactez notre équipe d'assistance pour obtenir de l'aide." + "value": "Nous avons rencontr\u00e9 un probl\u00e8me lors de la suppression de votre compte. Veuillez r\u00e9essayer. \nSi le probl\u00e8me persiste, contactez notre \u00e9quipe d'assistance pour obtenir de l'aide." } } } @@ -2733,7 +2823,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Se Connecter / Créer un Compte" + "value": "Se Connecter / Cr\u00e9er un Compte" } } } @@ -2751,7 +2841,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Se déconnecter" + "value": "Se d\u00e9connecter" } } } @@ -2769,7 +2859,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Êtes-vous sûr de vouloir vous déconnecter?\nVous devrez saisir votre email et votre mot de passe pour vous reconnecter." + "value": "\u00cates-vous s\u00fbr de vouloir vous d\u00e9connecter?\nVous devrez saisir votre email et votre mot de passe pour vous reconnecter." } } } @@ -2787,7 +2877,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Confirmer La Déconnexion" + "value": "Confirmer La D\u00e9connexion" } } } @@ -2805,7 +2895,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Se Déconnecter" + "value": "Se D\u00e9connecter" } } } @@ -2823,7 +2913,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nous avons rencontré un problème lors de votre déconnexion. Veuillez réessayer. \nSi le problème persiste, contactez notre équipe d'assistance pour obtenir de l'aide." + "value": "Nous avons rencontr\u00e9 un probl\u00e8me lors de votre d\u00e9connexion. Veuillez r\u00e9essayer. \nSi le probl\u00e8me persiste, contactez notre \u00e9quipe d'assistance pour obtenir de l'aide." } } } @@ -2841,7 +2931,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Erreur de déconnexion" + "value": "Erreur de d\u00e9connexion" } } } @@ -2859,7 +2949,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Mettre à jour" + "value": "Mettre \u00e0 jour" } } } @@ -2877,7 +2967,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Une nouvelle mise à jour est disponible !" + "value": "Une nouvelle mise \u00e0 jour est disponible !" } } } @@ -2949,7 +3039,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Êtes-vous sûr de vouloir changer votre mot de passe ?" + "value": "\u00cates-vous s\u00fbr de vouloir changer votre mot de passe ?" } } } @@ -2985,7 +3075,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Nous avons rencontré un problème lors de l'envoi de l'e-mail. Veuillez réessayer plus tard ou contacter le support si le problème persiste." + "value": "Nous avons rencontr\u00e9 un probl\u00e8me lors de l'envoi de l'e-mail. Veuillez r\u00e9essayer plus tard ou contacter le support si le probl\u00e8me persiste." } } } @@ -3003,7 +3093,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Échec de l'Envoi de l'Email" + "value": "\u00c9chec de l'Envoi de l'Email" } } } @@ -3039,7 +3129,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Un email a été envoyé à l'adresse indiquée. Veuillez cliquer sur le lien pour confirmer votre adresse e-mail." + "value": "Un email a \u00e9t\u00e9 envoy\u00e9 \u00e0 l'adresse indiqu\u00e9e. Veuillez cliquer sur le lien pour confirmer votre adresse e-mail." } } } @@ -3057,7 +3147,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "E-mail Envoyé" + "value": "E-mail Envoy\u00e9" } } } @@ -3093,7 +3183,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Réglages" + "value": "R\u00e9glages" } } } @@ -3129,7 +3219,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer un compte" + "value": "Cr\u00e9er un compte" } } } @@ -3165,7 +3255,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Passer cette étape" + "value": "Passer cette \u00e9tape" } } } @@ -3183,7 +3273,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Créer votre premier profil Accompagnant" + "value": "Cr\u00e9er votre premier profil Accompagnant" } } } @@ -3201,7 +3291,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Votre historique d'utilisation sera bientôt disponible ici." + "value": "Votre historique d'utilisation sera bient\u00f4t disponible ici." } } } @@ -3219,7 +3309,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Votre historique d'utilisation sera bientôt disponible ici." + "value": "Votre historique d'utilisation sera bient\u00f4t disponible ici." } } } @@ -3237,7 +3327,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Éditer le profil" + "value": "\u00c9diter le profil" } } } @@ -3255,7 +3345,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Éditer le profil" + "value": "\u00c9diter le profil" } } } @@ -3273,7 +3363,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Se Connecter ou Créer un Compte" + "value": "Se Connecter ou Cr\u00e9er un Compte" } } } @@ -3291,7 +3381,7 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Vous utilisez Leka sans être connecté !" + "value": "Vous utilisez Leka sans \u00eatre connect\u00e9 !" } } } @@ -3309,28 +3399,10 @@ "fr": { "stringUnit": { "state": "translated", - "value": "Sélectionner un Accompagnant" - } - } - } - }, - "lekaapp.main_view.app_update_alert.reminder": { - "comment": "The action button of the alert to inform the user that an os update is available", - "extractionState": "extracted_with_value", - "localizations": { - "en": { - "stringUnit": { - "state": "new", - "value": "Remind me later" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Me le rappeler plus tard" + "value": "S\u00e9lectionner un Accompagnant" } } } } } -} \ No newline at end of file +} diff --git a/Apps/LekaApp/Sources/Views/MainView/MainView+l10n.swift b/Apps/LekaApp/Sources/Views/MainView/MainView+l10n.swift index 5e55800c0..1139d0502 100644 --- a/Apps/LekaApp/Sources/Views/MainView/MainView+l10n.swift +++ b/Apps/LekaApp/Sources/Views/MainView/MainView+l10n.swift @@ -51,6 +51,13 @@ extension l10n { static let action = LocalizedString("lekaapp.main_view.app_update_alert.action", value: "Update now", comment: "The action button of the alert to inform the user that an update is available") static let reminder = LocalizedString("lekaapp.main_view.app_update_alert.reminder", value: "Remind me later", comment: "The action button of the alert to inform the user that an os update is available") } + + enum OSUpdateAlert { + static let title = LocalizedString("lekaapp.main_view.os_update_alert.title", value: "Update your iPad to the Latest iPadOS Version", comment: "The title of the alert to inform the user that an os update is available") + static let message = LocalizedString("lekaapp.main_view.os_update_alert.message", value: "A new version of iPadOS is available! Update now to enjoy enhanced performance, security, and compatibility with the latest features of our app.", comment: "The message of the alert to inform the user that an os update is available") + static let action = LocalizedString("lekaapp.main_view.os_update_alert.action", value: "Update now", comment: "The action button of the alert to inform the user that an os update is available") + static let reminder = LocalizedString("lekaapp.main_view.os_update_alert.reminder", value: "Remind me later", comment: "The action button of the alert to inform the user that an os update is available") + } } } diff --git a/Apps/LekaApp/Sources/Views/MainView/MainView.swift b/Apps/LekaApp/Sources/Views/MainView/MainView.swift index f013bcc26..fd12b583a 100644 --- a/Apps/LekaApp/Sources/Views/MainView/MainView.swift +++ b/Apps/LekaApp/Sources/Views/MainView/MainView.swift @@ -137,6 +137,21 @@ struct MainView: View { } ) } + .alert(isPresented: self.$showingOSUpdateAlert) { + Alert( + title: Text(l10n.MainView.OSUpdateAlert.title), + message: Text(l10n.MainView.OSUpdateAlert.message), + primaryButton: .default(Text(l10n.MainView.OSUpdateAlert.action), action: { + AnalyticsManager.logEventOSUpdateOpenSettings() + if let url = URL(string: UIApplication.openSettingsURLString) { + UIApplication.shared.open(url) + } + }), + secondaryButton: .cancel(Text(l10n.MainView.OSUpdateAlert.reminder)) { + AnalyticsManager.logEventOSUpdateRemindLater() + } + ) + } } detail: { NavigationStack(path: self.$navigation.path) { switch self.navigation.selectedCategory { @@ -317,11 +332,13 @@ struct MainView: View { } .onDisappear { DispatchQueue.main.asyncAfter(deadline: .now() + 2) { - switch self.appUpdateStatus.status { + switch self.updateStatus.status { case .updateAvailable: self.showingAppUpdateAlert = true default: - break + if self.updateStatus.isOSUpdateAvailable { + self.showingOSUpdateAlert = true + } } } } @@ -418,9 +435,10 @@ struct MainView: View { @StateObject private var caregiverManagerViewModel = CaregiverManagerViewModel() @StateObject private var rootAccountViewModel = RootAccountManagerViewModel() - @StateObject var appUpdateStatus: LekaApp.UpdateStatus = .shared + @StateObject var updateStatus: LekaApp.UpdateStatus = .shared @State private var showingAppUpdateAlert: Bool = false + @State private var showingOSUpdateAlert: Bool = false private var persistentDataManager: PersistentDataManager = .shared private var caregiverManager: CaregiverManager = .shared