Эх сурвалжийг харах

Add French (Canada) localization and language picker option.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 1 сар өмнө
parent
commit
8b41661e4b

+ 1 - 0
App for Indeed.xcodeproj/project.pbxproj

@@ -105,6 +105,7 @@
 				"zh-Hans",
 				"zh-Hant",
 				fr,
+				"fr-CA",
 			);
 			mainGroup = 27D852772FB1D367008DF557;
 			minimizedProjectReferenceProxies = 1;

+ 13 - 2
App for Indeed/Services/AppLocalization.swift

@@ -10,6 +10,7 @@ import Foundation
 
 enum AppLanguage: CaseIterable {
     case english
+    case frenchCanada
     case french
     case arabic
     case chineseSimplified
@@ -19,6 +20,8 @@ enum AppLanguage: CaseIterable {
         switch self {
         case .english:
             return "en"
+        case .frenchCanada:
+            return "fr-CA"
         case .french:
             return "fr"
         case .arabic:
@@ -43,6 +46,12 @@ enum AppLanguage: CaseIterable {
         if lower.hasPrefix("zh") {
             return .chineseSimplified
         }
+        if lower.hasPrefix("fr-ca") {
+            return .frenchCanada
+        }
+        if lower.hasPrefix("fr") {
+            return .french
+        }
         for language in AppLanguage.allCases where preferred.hasPrefix(language.localeIdentifier) {
             return language
         }
@@ -54,6 +63,8 @@ enum AppLanguage: CaseIterable {
         switch self {
         case .english:
             return "English"
+        case .frenchCanada:
+            return "French (Canada)"
         case .french:
             return "French"
         case .arabic:
@@ -111,7 +122,7 @@ private func translateTemplateNameByTokens(_ name: String, language: AppLanguage
     switch language {
     case .chineseSimplified, .chineseTraditional:
         return translated.joined()
-    case .arabic, .english, .french:
+    case .arabic, .english, .french, .frenchCanada:
         return translated.joined(separator: " ")
     }
 }
@@ -128,7 +139,7 @@ private func templateNameTokenTranslation(_ token: String, language: AppLanguage
         return TemplateNameTokenLexicon.zhHans[key] ?? TemplateNameTokenLexicon.zhHans[key.capitalized]
     case .arabic:
         return TemplateNameTokenLexicon.ar[key] ?? TemplateNameTokenLexicon.ar[key.capitalized]
-    case .french, .english:
+    case .french, .frenchCanada, .english:
         return nil
     }
 }

+ 1 - 1
App for Indeed/Services/CVTemplateFetchService.swift

@@ -50,7 +50,7 @@ final class CVTemplateFetchService {
                 return "Each `name` must be 1–3 English words (ASCII letters and spaces only) suitable as localization keys, e.g. \"Design Dynamo\" — do not use Chinese characters in `name`."
             case .arabic:
                 return "Each `name` must be 1–3 English words (ASCII letters and spaces only) suitable as localization keys, e.g. \"UI Sculptor\" — do not use Arabic script in `name`."
-            case .french:
+            case .french, .frenchCanada:
                 return "Each `name` must be 1–3 English words (ASCII letters and spaces only) suitable as localization keys, e.g. \"Creative Cascade\" — do not use French characters in `name`."
             }
         }

+ 353 - 0
App for Indeed/fr-CA.lproj/Localizable.strings

@@ -0,0 +1,353 @@
+/* Localizable.strings (Français (Canada)) */
+
+// MARK: - Général
+"OK" = "D'accord";
+"Cancel" = "Annuler";
+"Delete" = "Supprimer";
+"Remove" = "Retirer";
+"Dismiss" = "Fermer";
+
+// MARK: - Écran de lancement
+"AI-POWERED" = "ALIMENTÉ PAR L'IA";
+"Find your perfect job with the power of AI." = "Trouvez l'emploi idéal grâce à la puissance de l'IA.";
+"Starting up…" = "Démarrage…";
+"Loading progress" = "Chargement en cours";
+
+// MARK: - Statut de lancement
+"Checking your Pro subscription…" = "Vérification de votre abonnement Pro…";
+"Loading premium plans from the App Store…" = "Chargement des forfaits premium depuis l'App Store…";
+"Preparing your job search workspace…" = "Préparation de votre espace de recherche d'emploi…";
+"Almost ready…" = "Presque prêt…";
+
+// MARK: - Barre latérale
+"Home" = "Accueil";
+"Saved Jobs" = "Emplois sauvegardés";
+"CV Maker" = "Créateur de CV";
+"Profile" = "Profil";
+"Settings" = "Réglages";
+"Premium" = "Premium";
+"Indeed" = "Indeed";
+"Open Indeed to search and apply for jobs" = "Ouvrez Indeed pour chercher et postuler à des emplois";
+
+// MARK: - Tableau de bord / Accueil
+"Welcome" = "Bienvenue";
+"Send" = "Envoyer";
+"Clear chat" = "Effacer le clavardage";
+"Remove all messages and start a new conversation" = "Supprimer tous les messages et démarrer une nouvelle conversation";
+"Ask for roles, skills, salary, or job descriptions..." = "Demandez des rôles, compétences, salaires ou descriptions de poste…";
+"Ask AI" = "Demander à l'IA";
+"1 reply left" = "1 réponse restante";
+"Apply" = "Postuler";
+"Save" = "Sauvegarder";
+"Saved" = "Sauvegardé";
+"Remove from saved" = "Retirer des sauvegardes";
+"Show more jobs" = "Afficher plus d'emplois";
+"This area is not available in the preview build. Use Home to search jobs." = "Cette zone n'est pas disponible dans la version d'aperçu. Utilisez Accueil pour chercher des emplois.";
+"Save jobs from Home to see them here." = "Sauvegardez des emplois depuis Accueil pour les voir ici.";
+"No saved jobs yet. Search on Home, then tap Save on a listing." = "Aucun emploi sauvegardé pour l'instant. Effectuez une recherche sur Accueil, puis appuyez sur Sauvegarder sur une annonce.";
+"Tell me what role you want and I will return job descriptions, key skills, and a quick fit summary." = "Dites-moi quel rôle vous voulez et je vous fournirai des descriptions de poste, les compétences clés et un résumé rapide de la correspondance.";
+"1 saved position" = "1 poste sauvegardé";
+"Delete this profile?" = "Supprimer ce profil ?";
+"Find roles similar to: " = "Trouver des rôles similaires à : ";
+"Find jobs at company: " = "Trouver des emplois dans l'entreprise : ";
+"Find jobs that require skill: " = "Trouver des emplois qui exigent la compétence : ";
+"match" = "correspondance";
+"matches" = "correspondances";
+
+// MARK: - Raccourcis des fonctionnalités
+"Role" = "Rôle";
+"Explore similar or better job roles" = "Explorez des rôles similaires ou meilleurs";
+"Company" = "Entreprise";
+"Find opportunities at other companies" = "Trouvez des opportunités dans d'autres entreprises";
+"Skill" = "Compétence";
+"Match jobs that fit your skills" = "Trouvez des emplois qui correspondent à vos compétences";
+
+// MARK: - Pro / Abonnement
+"Upgrade to Pro" = "Passer à Pro";
+"You're on Pro" = "Vous êtes sur Pro";
+"Unlimited AI matches, smart alerts, and interview prep—all in one place." = "Correspondances IA illimitées, alertes intelligentes et préparation aux entrevues — tout au même endroit.";
+"Manage billing, renewals, and plans in Premium." = "Gérez la facturation, les renouvellements et les forfaits dans Premium.";
+"Try Pro" = "Essayer Pro";
+"Manage Subscription" = "Gérer l'abonnement";
+"Premium Plans" = "Forfaits Premium";
+"Unlock unlimited access to premium tools and boost your productivity." = "Débloquez un accès illimité aux outils premium et boostez votre productivité.";
+"Continue with free plan" = "Continuer avec le forfait gratuit";
+"Restore Purchase" = "Restaurer l'achat";
+"You're subscribed" = "Vous êtes abonné";
+"Thank you — Pro features are now available." = "Merci — les fonctionnalités Pro sont maintenant disponibles.";
+"Pro" = "Pro";
+"Purchases restored" = "Achats restaurés";
+"Your subscription is active." = "Votre abonnement est actif.";
+"No subscription found" = "Aucun abonnement trouvé";
+"There was nothing to restore for this Apple ID." = "Il n'y avait rien à restaurer pour cet identifiant Apple.";
+"Something went wrong" = "Une erreur s'est produite";
+"That subscription isn’t available from the App Store right now." = "Cet abonnement n'est pas disponible sur l'App Store pour le moment.";
+"Unlimited AI job search on Home" = "Recherche d'emploi IA illimitée sur Accueil";
+"Save jobs & open listings in-app" = "Sauvegardez des emplois et ouvrez les annonces dans l'application";
+"CV Maker, profiles & PDF export" = "Créateur de CV, profils et export PDF";
+"Role, company & skill shortcuts" = "Raccourcis de rôle, entreprise et compétence";
+
+// MARK: - Offres du paywall
+"Weekly" = "Hebdomadaire";
+"Flexible and commitment-free" = "Flexible et sans engagement";
+"Monthly" = "Mensuel";
+"Balanced for regular productivity" = "Équilibré pour une productivité régulière";
+"Yearly" = "Annuel";
+"Best value for long-term users" = "Meilleur rapport qualité-prix pour les utilisateurs à long terme";
+"/ week" = "/ semaine";
+"/ month" = "/ mois";
+"/ year" = "/ an";
+"3 days free trial" = "3 jours d'essai gratuit";
+"Perfect for short-term job hunts" = "Parfait pour les recherches d'emploi à court terme";
+"Cancel anytime" = "Annulez en tout temps";
+"Best for regular job seekers" = "Idéal pour les chercheurs d'emploi réguliers";
+"Priority support" = "Soutien prioritaire";
+"Lowest effective monthly cost" = "Coût mensuel effectif le plus bas";
+"Ideal for long-term use" = "Idéal pour une utilisation à long terme";
+
+// MARK: - Confiance du paywall
+"Secure Payments" = "Paiements sécurisés";
+"Your payment is 100% secure." = "Votre paiement est 100 % sécurisé.";
+"Cancel Anytime" = "Annulez en tout temps";
+"No commitment, cancel anytime." = "Sans engagement, annulez en tout temps.";
+"24/7 Support" = "Soutien 24/7";
+"We're here to help you anytime." = "Nous sommes là pour vous aider en tout temps.";
+"Privacy First" = "Confidentialité d'abord";
+"Your data is safe with us." = "Vos données sont en sécurité avec nous.";
+
+// MARK: - Réglages
+"Appearance" = "Apparence";
+"Theme" = "Thème";
+"Language" = "Langue";
+"Share App" = "Partager l'application";
+"More Apps" = "Plus d'applications";
+"About" = "À propos";
+"Website" = "Site Web";
+"Support" = "Soutien";
+"Terms of Use" = "Conditions d'utilisation";
+"Privacy Policy" = "Politique de confidentialité";
+"System" = "Système";
+"Light" = "Clair";
+"Dark" = "Sombre";
+
+// MARK: - Profils
+"Profiles" = "Profils";
+"Add new profile" = "Ajouter un profil";
+"Create and manage CV profiles. Each profile stores your details on this Mac." = "Créez et gérez des profils de CV. Chaque profil stocke vos informations sur ce Mac.";
+"No profiles yet. Tap “Add new profile” to create your first one." = "Aucun profil pour l'instant. Appuyez sur « Ajouter un profil » pour créer votre premier profil.";
+"Build CV" = "Créer un CV";
+"Edit" = "Modifier";
+"Untitled profile" = "Profil sans titre";
+"No contact details yet" = "Aucune coordonnée pour l'instant";
+"← Profiles" = "← Profils";
+
+// MARK: - Éditeur de profil
+"Save Profile  →" = "Enregistrer le profil →";
+"← All profiles" = "← Tous les profils";
+"New profile" = "Nouveau profil";
+"Edit profile" = "Modifier le profil";
+"Profile Name *" = "Nom du profil *";
+"Marketing Director Profile" = "Profil de Directeur marketing";
+"Personal Information" = "Renseignements personnels";
+"Full Name *" = "Nom complet *";
+"John Doe" = "Jean Dupont";
+"Email *" = "Courriel *";
+"john@example.com" = "jean.dupont@exemple.com";
+"Phone" = "Téléphone";
+"+1 (555) 123-4567" = "+1 (514) 555-1234";
+"Job Title *" = "Titre du poste *";
+"Software Engineer" = "Ingénieur logiciel";
+"Address" = "Adresse";
+"123 Main St, City, State, ZIP" = "123 Rue Principale, Ville, Province, Code postal";
+"Certificates / Rewards" = "Certificats / Récompenses";
+"List your certificates and awards..." = "Listez vos certificats et récompenses…";
+"Interests" = "Centres d'intérêt";
+"List your interests and hobbies..." = "Listez vos centres d'intérêt et loisirs…";
+"Languages" = "Langues";
+"List languages you speak (e.g., English - Native, Spanish - Fluent)..." = "Listez les langues que vous parlez (ex : Français - Natif, Anglais - Courant)…";
+"Career Summary" = "Sommaire de carrière";
+"Brief overview of your professional background and key achievements..." = "Aperçu bref de votre parcours professionnel et de vos principales réalisations…";
+"Referral (Optional)" = "Recommandation (optionnel)";
+"Referred by (Company/Person Name)" = "Recommandé par (Nom de l'entreprise/de la personne)";
+"If someone referred you for this job, enter their name or company here" = "Si quelqu'un vous a recommandé pour ce poste, entrez son nom ou son entreprise ici";
+"Work Experience" = "Expérience de travail";
+"Education" = "Formation";
+"+ Add Another" = "+ Ajouter un autre";
+"Complete required fields" = "Remplissez les champs obligatoires";
+"Remove experience" = "Supprimer l'expérience";
+"Remove education" = "Supprimer la formation";
+"Company Name *" = "Nom de l'entreprise *";
+"Duration *" = "Durée *";
+"Description" = "Description";
+"e.g., Software Engineer" = "ex : Ingénieur logiciel";
+"e.g., Google" = "ex : Google";
+"e.g., Jan 2020 - Present" = "ex : janv. 2020 - Présent";
+"Describe your responsibilities and achievements..." = "Décrivez vos responsabilités et réalisations…";
+"Degree / program *" = "Diplôme / programme *";
+"Institution *" = "Établissement *";
+"Year *" = "Année *";
+"e.g., BSc Computer Science" = "ex : Baccalauréat en informatique";
+"e.g., MIT" = "ex : Université de Montréal";
+"e.g., 2020" = "ex : 2020";
+"Profile name" = "Nom du profil";
+"Full Name" = "Nom complet";
+"Email" = "Courriel";
+"Job Title" = "Titre du poste";
+
+// MARK: - Créateur de CV
+"Templates" = "Modèles";
+"Polished layouts with live previews — pick a style that fits your story." = "Des mises en page soignées avec aperçus en direct — choisissez un style qui correspond à votre histoire.";
+"Use Template & Select Profile  →" = "Utiliser le modèle et sélectionner le profil →";
+"All" = "Tous";
+"No templates yet for this category." = "Aucun modèle pour cette catégorie pour l'instant.";
+"Pick a template" = "Choisissez un modèle";
+"Select a template first, then choose a profile to continue." = "Sélectionnez d'abord un modèle, puis choisissez un profil pour continuer.";
+"Fetching AI-curated templates…" = "Récupération des modèles organisés par l'IA…";
+"Couldn’t load AI templates — showing the built-in gallery." = "Impossible de charger les modèles IA — affichage de la galerie intégrée.";
+"Design-Based" = "Basé sur le design";
+"Profession-Based" = "Basé sur la profession";
+"Professional" = "Professionnel";
+"Modern" = "Moderne";
+"Creative" = "Créatif";
+"Minimal" = "Minimaliste";
+"Executive" = "Cadre dirigeant";
+"ATS layout" = "Mise en page ATS";
+"Sidebar left" = "Barre latérale gauche";
+"Sidebar right" = "Barre latérale droite";
+
+// MARK: - Aperçu du CV
+"CV preview" = "Aperçu du CV";
+"Export PDF…" = "Exporter en PDF…";
+"Layout matches the CV Maker thumbnail for this template. Export a PDF that matches what you see here (fonts, columns, colours, and rules)." = "La mise en page correspond à la vignette du Créateur de CV pour ce modèle. Exportez un PDF qui correspond à ce que vous voyez ici (polices, colonnes, couleurs et règles).";
+"The résumé could not be rendered to PDF (empty output). Try scrolling the preview so it lays out, then export again." = "Le CV n'a pas pu être converti en PDF (sortie vide). Essayez de faire défiler l'aperçu pour qu'il se mette en page, puis exportez à nouveau.";
+"Couldn’t save PDF" = "Impossible d'enregistrer le PDF";
+"Your name" = "Votre nom";
+"Professional headline" = "Titre professionnel";
+"Experience" = "Expérience";
+"Highlights" = "Points forts";
+"Summary" = "Sommaire";
+"Contact" = "Contact";
+"Skills" = "Compétences";
+"Tools" = "Outils";
+"Languages & more" = "Langues et plus";
+"Certificates" = "Certificats";
+"Referrals" = "Recommandations";
+"Professional Summary" = "Sommaire professionnel";
+"Selected Experience" = "Expérience sélectionnée";
+"Core Competencies" = "Compétences clés";
+"Impact" = "Impact";
+"Add contact in your profile" = "Ajoutez un contact dans votre profil";
+"Add contact details in your profile" = "Ajoutez des coordonnées dans votre profil";
+"Add a career summary or interests in your profile to populate this column." = "Ajoutez un sommaire de carrière ou des centres d'intérêt dans votre profil pour remplir cette colonne.";
+"CV" = "CV";
+"Open to relocation" = "Prêt à déménager";
+"STRENGTHS" = "FORCES";
+"PORTFOLIO SNAPSHOT" = "APERÇU DU PORTFOLIO";
+"Close" = "Fermer";
+"/ day" = "/ jour";
+"/ %d days" = "/ %d jours";
+"/ %d weeks" = "/ %d semaines";
+"/ %d months" = "/ %d mois";
+"/ %d years" = "/ %d ans";
+
+// MARK: - Noms des modèles de CV
+"Paper White" = "Blanc Pur";
+"Swiss" = "Suisse";
+"Mono" = "Mono";
+"Airy" = "Aérien";
+"Tabular" = "Tabulaire";
+"Facet" = "Facette";
+"Corporate" = "Corporate";
+"Atlas" = "Atlas";
+"Ledger" = "Registre";
+"Harbor" = "Havre";
+"Clear Path" = "Chemin Clair";
+"Pinstripe" = "Rayures Fines";
+"Briefing" = "Briefing";
+"Quorum" = "Quorum";
+"Docket" = "Rôle";
+"Conduit" = "Conduit";
+"Principal" = "Principal";
+"Charter" = "Charte";
+"Vertex" = "Sommet";
+"Linea" = "Ligne";
+"Prism" = "Prisme";
+"Circuit" = "Circuit";
+"North" = "Nord";
+"Axis" = "Axe";
+"Marigold" = "Œillet d'Inde";
+"Ember" = "Braise";
+"Lattice" = "Treillis";
+"Bloom" = "Floraison";
+"Studio" = "Studio";
+"Kite" = "Cerf-volant";
+"Regent" = "Régent";
+"Monarch" = "Monarque";
+"Sterling" = "Sterling";
+"Summit" = "Sommet";
+"Estate" = "Domaine";
+"Chairman" = "Président";
+"Blue Ocean" = "Océan Bleu";
+
+// MARK: - Contenu de l'aperçu de démonstration du CV
+"Sarah Johnson" = "Sarah Johnson";
+"Senior Product Manager" = "Chef de produit principal";
+"Group PM, Consumer Growth & Activation" = "Responsable de groupe produit, Croissance et Activation des consommateurs";
+"Google · Mountain View, CA · 2019 – Present" = "Google · Mountain View, Californie · 2019 – Présent";
+"Stanford University" = "Université Stanford";
+"M.S. Management Science & Engineering" = "Maîtrise en sciences du management et ingénierie";
+"2014 – 2016" = "2014 – 2016";
+"Mountain View, CA" = "Mountain View, Californie";
+"Product leader shipping roadmap, discovery, and analytics for high-scale consumer experiences." = "Responsable produit, pilotant la feuille de route, la découverte et les analyses pour des expériences consommateurs à grande échelle.";
+"Defined multi-year platform strategy with exec stakeholders and quarterly OKRs." = "Définition d'une stratégie de plateforme pluriannuelle avec les parties prenantes exécutives et les OKR trimestriels.";
+"Partnered with engineering and design to launch experiments improving activation by 12%." = "Partenariat avec l'ingénierie et le design pour lancer des expériences améliorant l'activation de 12 %.";
+"Stood up quarterly business reviews with finance and GTM, aligning spend to north-star metrics." = "Mise en place de revues commerciales trimestrielles avec les finances et le GTM, alignant les dépenses sur les métriques clés.";
+"Presented roadmap shifts to the leadership team and translated trade-offs into clear investment asks." = "Présentation des changements de feuille de route à l'équipe de direction et traduction des compromis en demandes d'investissement claires.";
+"Figma · SQL · Amplitude · Jira · BigQuery" = "Figma · SQL · Amplitude · Jira · BigQuery";
+"Product Strategy" = "Stratégie produit";
+"A/B Testing" = "Tests A/B";
+"Roadmapping" = "Feuille de route";
+"CONTACT" = "CONTACT";
+"SKILLS" = "COMPÉTENCES";
+"PROFILE" = "PROFIL";
+"EXPERIENCE" = "EXPÉRIENCE";
+"EDUCATION" = "FORMATION";
+"SUMMARY" = "SOMMAIRE";
+"PROFESSIONAL SUMMARY" = "SOMMAIRE PROFESSIONNEL";
+"SELECTED EXPERIENCE" = "EXPÉRIENCE SÉLECTIONNÉE";
+"CORE COMPETENCIES" = "COMPÉTENCES CLÉS";
+"TOOLS" = "OUTILS";
+"IMPACT" = "IMPACT";
+
+// MARK: - Navigateur d'emplois
+"Return to the previous screen" = "Revenir à l'écran précédent";
+
+// MARK: - Erreurs
+"We couldn't reach the server. Check your internet connection and try again." = "Nous ne pouvons pas joindre le serveur. Vérifiez votre connexion Internet et réessayez.";
+"The search was cancelled. Try again when you're ready." = "La recherche a été annulée. Réessayez quand vous êtes prêt.";
+"Something went wrong while searching. Please try again in a moment." = "Une erreur s'est produite lors de la recherche. Veuillez réessayer dans un instant.";
+"Job search is unavailable." = "La recherche d'emploi n'est pas disponible.";
+
+// MARK: - Alertes
+"This profile will be removed from this Mac." = "Ce profil sera supprimé de ce Mac.";
+
+// MARK: - Chaînes de format
+"Loading %@" = "Chargement de %@";
+"Loading %@. %@" = "Chargement de %@. %@";
+"Starting %@…" = "Démarrage de %@…";
+"%d replies left" = "%d réponses restantes";
+"%d saved positions" = "%d postes sauvegardés";
+"“%@” will be removed from this Mac." = "« %@ » sera supprimé de ce Mac.";
+"%@ isn’t available yet" = "%@ n'est pas encore disponible";
+"I couldn't find new matches for “%@”. Try a different angle or a more specific keyword." = "Je n'ai pas trouvé de nouvelles correspondances pour « %@ ». Essayez un autre angle ou un mot-clé plus spécifique.";
+"No jobs found for “%@”. Try another title, skill, company, or location." = "Aucun emploi trouvé pour « %@ ». Essayez un autre titre, compétence, entreprise ou lieu.";
+"Here are %d more %@ for “%@”." = "Voici %d %@ supplémentaires pour « %@ ».";
+"Found %d %@ for “%@”. Tap Apply to open the listing or Save to revisit later." = "%d %@ trouvé(s) pour « %@ ». Appuyez sur Postuler pour ouvrir l'annonce ou sur Sauvegarder pour y revenir plus tard.";
+"Get %@" = "Obtenir %@";
+"You chose the “%@” template. Tap Build CV on a profile to preview your résumé with that layout." = "Vous avez choisi le modèle « %@ ». Appuyez sur Créer un CV sur un profil pour prévisualiser votre CV avec cette mise en page.";
+"Experience %d" = "Expérience %d";
+"Education %d" = "Formation %d";
+"Please fill in: %@." = "Veuillez remplir : %@.";
+
+// MARK: - Multiligne
+"Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Ajoutez vos identifiants Mac App Store dans les paramètres de build de la cible :\n• AppStoreAppID — identifiant numérique de l'application depuis App Store Connect\n• AppStoreDeveloperID — identifiant numérique du développeur (pour votre page d'autres applications)";