소스 검색

Add French (Canada) localization and language picker option.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 4 일 전
부모
커밋
8b41661e4b

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

@@ -105,6 +105,7 @@
105 105
 				"zh-Hans",
106 106
 				"zh-Hant",
107 107
 				fr,
108
+				"fr-CA",
108 109
 			);
109 110
 			mainGroup = 27D852772FB1D367008DF557;
110 111
 			minimizedProjectReferenceProxies = 1;

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

@@ -10,6 +10,7 @@ import Foundation
10 10
 
11 11
 enum AppLanguage: CaseIterable {
12 12
     case english
13
+    case frenchCanada
13 14
     case french
14 15
     case arabic
15 16
     case chineseSimplified
@@ -19,6 +20,8 @@ enum AppLanguage: CaseIterable {
19 20
         switch self {
20 21
         case .english:
21 22
             return "en"
23
+        case .frenchCanada:
24
+            return "fr-CA"
22 25
         case .french:
23 26
             return "fr"
24 27
         case .arabic:
@@ -43,6 +46,12 @@ enum AppLanguage: CaseIterable {
43 46
         if lower.hasPrefix("zh") {
44 47
             return .chineseSimplified
45 48
         }
49
+        if lower.hasPrefix("fr-ca") {
50
+            return .frenchCanada
51
+        }
52
+        if lower.hasPrefix("fr") {
53
+            return .french
54
+        }
46 55
         for language in AppLanguage.allCases where preferred.hasPrefix(language.localeIdentifier) {
47 56
             return language
48 57
         }
@@ -54,6 +63,8 @@ enum AppLanguage: CaseIterable {
54 63
         switch self {
55 64
         case .english:
56 65
             return "English"
66
+        case .frenchCanada:
67
+            return "French (Canada)"
57 68
         case .french:
58 69
             return "French"
59 70
         case .arabic:
@@ -111,7 +122,7 @@ private func translateTemplateNameByTokens(_ name: String, language: AppLanguage
111 122
     switch language {
112 123
     case .chineseSimplified, .chineseTraditional:
113 124
         return translated.joined()
114
-    case .arabic, .english, .french:
125
+    case .arabic, .english, .french, .frenchCanada:
115 126
         return translated.joined(separator: " ")
116 127
     }
117 128
 }
@@ -128,7 +139,7 @@ private func templateNameTokenTranslation(_ token: String, language: AppLanguage
128 139
         return TemplateNameTokenLexicon.zhHans[key] ?? TemplateNameTokenLexicon.zhHans[key.capitalized]
129 140
     case .arabic:
130 141
         return TemplateNameTokenLexicon.ar[key] ?? TemplateNameTokenLexicon.ar[key.capitalized]
131
-    case .french, .english:
142
+    case .french, .frenchCanada, .english:
132 143
         return nil
133 144
     }
134 145
 }

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

@@ -50,7 +50,7 @@ final class CVTemplateFetchService {
50 50
                 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`."
51 51
             case .arabic:
52 52
                 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`."
53
-            case .french:
53
+            case .french, .frenchCanada:
54 54
                 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`."
55 55
             }
56 56
         }

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

@@ -0,0 +1,353 @@
1
+/* Localizable.strings (Français (Canada)) */
2
+
3
+// MARK: - Général
4
+"OK" = "D'accord";
5
+"Cancel" = "Annuler";
6
+"Delete" = "Supprimer";
7
+"Remove" = "Retirer";
8
+"Dismiss" = "Fermer";
9
+
10
+// MARK: - Écran de lancement
11
+"AI-POWERED" = "ALIMENTÉ PAR L'IA";
12
+"Find your perfect job with the power of AI." = "Trouvez l'emploi idéal grâce à la puissance de l'IA.";
13
+"Starting up…" = "Démarrage…";
14
+"Loading progress" = "Chargement en cours";
15
+
16
+// MARK: - Statut de lancement
17
+"Checking your Pro subscription…" = "Vérification de votre abonnement Pro…";
18
+"Loading premium plans from the App Store…" = "Chargement des forfaits premium depuis l'App Store…";
19
+"Preparing your job search workspace…" = "Préparation de votre espace de recherche d'emploi…";
20
+"Almost ready…" = "Presque prêt…";
21
+
22
+// MARK: - Barre latérale
23
+"Home" = "Accueil";
24
+"Saved Jobs" = "Emplois sauvegardés";
25
+"CV Maker" = "Créateur de CV";
26
+"Profile" = "Profil";
27
+"Settings" = "Réglages";
28
+"Premium" = "Premium";
29
+"Indeed" = "Indeed";
30
+"Open Indeed to search and apply for jobs" = "Ouvrez Indeed pour chercher et postuler à des emplois";
31
+
32
+// MARK: - Tableau de bord / Accueil
33
+"Welcome" = "Bienvenue";
34
+"Send" = "Envoyer";
35
+"Clear chat" = "Effacer le clavardage";
36
+"Remove all messages and start a new conversation" = "Supprimer tous les messages et démarrer une nouvelle conversation";
37
+"Ask for roles, skills, salary, or job descriptions..." = "Demandez des rôles, compétences, salaires ou descriptions de poste…";
38
+"Ask AI" = "Demander à l'IA";
39
+"1 reply left" = "1 réponse restante";
40
+"Apply" = "Postuler";
41
+"Save" = "Sauvegarder";
42
+"Saved" = "Sauvegardé";
43
+"Remove from saved" = "Retirer des sauvegardes";
44
+"Show more jobs" = "Afficher plus d'emplois";
45
+"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.";
46
+"Save jobs from Home to see them here." = "Sauvegardez des emplois depuis Accueil pour les voir ici.";
47
+"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.";
48
+"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.";
49
+"1 saved position" = "1 poste sauvegardé";
50
+"Delete this profile?" = "Supprimer ce profil ?";
51
+"Find roles similar to: " = "Trouver des rôles similaires à : ";
52
+"Find jobs at company: " = "Trouver des emplois dans l'entreprise : ";
53
+"Find jobs that require skill: " = "Trouver des emplois qui exigent la compétence : ";
54
+"match" = "correspondance";
55
+"matches" = "correspondances";
56
+
57
+// MARK: - Raccourcis des fonctionnalités
58
+"Role" = "Rôle";
59
+"Explore similar or better job roles" = "Explorez des rôles similaires ou meilleurs";
60
+"Company" = "Entreprise";
61
+"Find opportunities at other companies" = "Trouvez des opportunités dans d'autres entreprises";
62
+"Skill" = "Compétence";
63
+"Match jobs that fit your skills" = "Trouvez des emplois qui correspondent à vos compétences";
64
+
65
+// MARK: - Pro / Abonnement
66
+"Upgrade to Pro" = "Passer à Pro";
67
+"You're on Pro" = "Vous êtes sur Pro";
68
+"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.";
69
+"Manage billing, renewals, and plans in Premium." = "Gérez la facturation, les renouvellements et les forfaits dans Premium.";
70
+"Try Pro" = "Essayer Pro";
71
+"Manage Subscription" = "Gérer l'abonnement";
72
+"Premium Plans" = "Forfaits Premium";
73
+"Unlock unlimited access to premium tools and boost your productivity." = "Débloquez un accès illimité aux outils premium et boostez votre productivité.";
74
+"Continue with free plan" = "Continuer avec le forfait gratuit";
75
+"Restore Purchase" = "Restaurer l'achat";
76
+"You're subscribed" = "Vous êtes abonné";
77
+"Thank you — Pro features are now available." = "Merci — les fonctionnalités Pro sont maintenant disponibles.";
78
+"Pro" = "Pro";
79
+"Purchases restored" = "Achats restaurés";
80
+"Your subscription is active." = "Votre abonnement est actif.";
81
+"No subscription found" = "Aucun abonnement trouvé";
82
+"There was nothing to restore for this Apple ID." = "Il n'y avait rien à restaurer pour cet identifiant Apple.";
83
+"Something went wrong" = "Une erreur s'est produite";
84
+"That subscription isn’t available from the App Store right now." = "Cet abonnement n'est pas disponible sur l'App Store pour le moment.";
85
+"Unlimited AI job search on Home" = "Recherche d'emploi IA illimitée sur Accueil";
86
+"Save jobs & open listings in-app" = "Sauvegardez des emplois et ouvrez les annonces dans l'application";
87
+"CV Maker, profiles & PDF export" = "Créateur de CV, profils et export PDF";
88
+"Role, company & skill shortcuts" = "Raccourcis de rôle, entreprise et compétence";
89
+
90
+// MARK: - Offres du paywall
91
+"Weekly" = "Hebdomadaire";
92
+"Flexible and commitment-free" = "Flexible et sans engagement";
93
+"Monthly" = "Mensuel";
94
+"Balanced for regular productivity" = "Équilibré pour une productivité régulière";
95
+"Yearly" = "Annuel";
96
+"Best value for long-term users" = "Meilleur rapport qualité-prix pour les utilisateurs à long terme";
97
+"/ week" = "/ semaine";
98
+"/ month" = "/ mois";
99
+"/ year" = "/ an";
100
+"3 days free trial" = "3 jours d'essai gratuit";
101
+"Perfect for short-term job hunts" = "Parfait pour les recherches d'emploi à court terme";
102
+"Cancel anytime" = "Annulez en tout temps";
103
+"Best for regular job seekers" = "Idéal pour les chercheurs d'emploi réguliers";
104
+"Priority support" = "Soutien prioritaire";
105
+"Lowest effective monthly cost" = "Coût mensuel effectif le plus bas";
106
+"Ideal for long-term use" = "Idéal pour une utilisation à long terme";
107
+
108
+// MARK: - Confiance du paywall
109
+"Secure Payments" = "Paiements sécurisés";
110
+"Your payment is 100% secure." = "Votre paiement est 100 % sécurisé.";
111
+"Cancel Anytime" = "Annulez en tout temps";
112
+"No commitment, cancel anytime." = "Sans engagement, annulez en tout temps.";
113
+"24/7 Support" = "Soutien 24/7";
114
+"We're here to help you anytime." = "Nous sommes là pour vous aider en tout temps.";
115
+"Privacy First" = "Confidentialité d'abord";
116
+"Your data is safe with us." = "Vos données sont en sécurité avec nous.";
117
+
118
+// MARK: - Réglages
119
+"Appearance" = "Apparence";
120
+"Theme" = "Thème";
121
+"Language" = "Langue";
122
+"Share App" = "Partager l'application";
123
+"More Apps" = "Plus d'applications";
124
+"About" = "À propos";
125
+"Website" = "Site Web";
126
+"Support" = "Soutien";
127
+"Terms of Use" = "Conditions d'utilisation";
128
+"Privacy Policy" = "Politique de confidentialité";
129
+"System" = "Système";
130
+"Light" = "Clair";
131
+"Dark" = "Sombre";
132
+
133
+// MARK: - Profils
134
+"Profiles" = "Profils";
135
+"Add new profile" = "Ajouter un profil";
136
+"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.";
137
+"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.";
138
+"Build CV" = "Créer un CV";
139
+"Edit" = "Modifier";
140
+"Untitled profile" = "Profil sans titre";
141
+"No contact details yet" = "Aucune coordonnée pour l'instant";
142
+"← Profiles" = "← Profils";
143
+
144
+// MARK: - Éditeur de profil
145
+"Save Profile  →" = "Enregistrer le profil →";
146
+"← All profiles" = "← Tous les profils";
147
+"New profile" = "Nouveau profil";
148
+"Edit profile" = "Modifier le profil";
149
+"Profile Name *" = "Nom du profil *";
150
+"Marketing Director Profile" = "Profil de Directeur marketing";
151
+"Personal Information" = "Renseignements personnels";
152
+"Full Name *" = "Nom complet *";
153
+"John Doe" = "Jean Dupont";
154
+"Email *" = "Courriel *";
155
+"john@example.com" = "jean.dupont@exemple.com";
156
+"Phone" = "Téléphone";
157
+"+1 (555) 123-4567" = "+1 (514) 555-1234";
158
+"Job Title *" = "Titre du poste *";
159
+"Software Engineer" = "Ingénieur logiciel";
160
+"Address" = "Adresse";
161
+"123 Main St, City, State, ZIP" = "123 Rue Principale, Ville, Province, Code postal";
162
+"Certificates / Rewards" = "Certificats / Récompenses";
163
+"List your certificates and awards..." = "Listez vos certificats et récompenses…";
164
+"Interests" = "Centres d'intérêt";
165
+"List your interests and hobbies..." = "Listez vos centres d'intérêt et loisirs…";
166
+"Languages" = "Langues";
167
+"List languages you speak (e.g., English - Native, Spanish - Fluent)..." = "Listez les langues que vous parlez (ex : Français - Natif, Anglais - Courant)…";
168
+"Career Summary" = "Sommaire de carrière";
169
+"Brief overview of your professional background and key achievements..." = "Aperçu bref de votre parcours professionnel et de vos principales réalisations…";
170
+"Referral (Optional)" = "Recommandation (optionnel)";
171
+"Referred by (Company/Person Name)" = "Recommandé par (Nom de l'entreprise/de la personne)";
172
+"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";
173
+"Work Experience" = "Expérience de travail";
174
+"Education" = "Formation";
175
+"+ Add Another" = "+ Ajouter un autre";
176
+"Complete required fields" = "Remplissez les champs obligatoires";
177
+"Remove experience" = "Supprimer l'expérience";
178
+"Remove education" = "Supprimer la formation";
179
+"Company Name *" = "Nom de l'entreprise *";
180
+"Duration *" = "Durée *";
181
+"Description" = "Description";
182
+"e.g., Software Engineer" = "ex : Ingénieur logiciel";
183
+"e.g., Google" = "ex : Google";
184
+"e.g., Jan 2020 - Present" = "ex : janv. 2020 - Présent";
185
+"Describe your responsibilities and achievements..." = "Décrivez vos responsabilités et réalisations…";
186
+"Degree / program *" = "Diplôme / programme *";
187
+"Institution *" = "Établissement *";
188
+"Year *" = "Année *";
189
+"e.g., BSc Computer Science" = "ex : Baccalauréat en informatique";
190
+"e.g., MIT" = "ex : Université de Montréal";
191
+"e.g., 2020" = "ex : 2020";
192
+"Profile name" = "Nom du profil";
193
+"Full Name" = "Nom complet";
194
+"Email" = "Courriel";
195
+"Job Title" = "Titre du poste";
196
+
197
+// MARK: - Créateur de CV
198
+"Templates" = "Modèles";
199
+"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.";
200
+"Use Template & Select Profile  →" = "Utiliser le modèle et sélectionner le profil →";
201
+"All" = "Tous";
202
+"No templates yet for this category." = "Aucun modèle pour cette catégorie pour l'instant.";
203
+"Pick a template" = "Choisissez un modèle";
204
+"Select a template first, then choose a profile to continue." = "Sélectionnez d'abord un modèle, puis choisissez un profil pour continuer.";
205
+"Fetching AI-curated templates…" = "Récupération des modèles organisés par l'IA…";
206
+"Couldn’t load AI templates — showing the built-in gallery." = "Impossible de charger les modèles IA — affichage de la galerie intégrée.";
207
+"Design-Based" = "Basé sur le design";
208
+"Profession-Based" = "Basé sur la profession";
209
+"Professional" = "Professionnel";
210
+"Modern" = "Moderne";
211
+"Creative" = "Créatif";
212
+"Minimal" = "Minimaliste";
213
+"Executive" = "Cadre dirigeant";
214
+"ATS layout" = "Mise en page ATS";
215
+"Sidebar left" = "Barre latérale gauche";
216
+"Sidebar right" = "Barre latérale droite";
217
+
218
+// MARK: - Aperçu du CV
219
+"CV preview" = "Aperçu du CV";
220
+"Export PDF…" = "Exporter en PDF…";
221
+"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).";
222
+"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.";
223
+"Couldn’t save PDF" = "Impossible d'enregistrer le PDF";
224
+"Your name" = "Votre nom";
225
+"Professional headline" = "Titre professionnel";
226
+"Experience" = "Expérience";
227
+"Highlights" = "Points forts";
228
+"Summary" = "Sommaire";
229
+"Contact" = "Contact";
230
+"Skills" = "Compétences";
231
+"Tools" = "Outils";
232
+"Languages & more" = "Langues et plus";
233
+"Certificates" = "Certificats";
234
+"Referrals" = "Recommandations";
235
+"Professional Summary" = "Sommaire professionnel";
236
+"Selected Experience" = "Expérience sélectionnée";
237
+"Core Competencies" = "Compétences clés";
238
+"Impact" = "Impact";
239
+"Add contact in your profile" = "Ajoutez un contact dans votre profil";
240
+"Add contact details in your profile" = "Ajoutez des coordonnées dans votre profil";
241
+"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.";
242
+"CV" = "CV";
243
+"Open to relocation" = "Prêt à déménager";
244
+"STRENGTHS" = "FORCES";
245
+"PORTFOLIO SNAPSHOT" = "APERÇU DU PORTFOLIO";
246
+"Close" = "Fermer";
247
+"/ day" = "/ jour";
248
+"/ %d days" = "/ %d jours";
249
+"/ %d weeks" = "/ %d semaines";
250
+"/ %d months" = "/ %d mois";
251
+"/ %d years" = "/ %d ans";
252
+
253
+// MARK: - Noms des modèles de CV
254
+"Paper White" = "Blanc Pur";
255
+"Swiss" = "Suisse";
256
+"Mono" = "Mono";
257
+"Airy" = "Aérien";
258
+"Tabular" = "Tabulaire";
259
+"Facet" = "Facette";
260
+"Corporate" = "Corporate";
261
+"Atlas" = "Atlas";
262
+"Ledger" = "Registre";
263
+"Harbor" = "Havre";
264
+"Clear Path" = "Chemin Clair";
265
+"Pinstripe" = "Rayures Fines";
266
+"Briefing" = "Briefing";
267
+"Quorum" = "Quorum";
268
+"Docket" = "Rôle";
269
+"Conduit" = "Conduit";
270
+"Principal" = "Principal";
271
+"Charter" = "Charte";
272
+"Vertex" = "Sommet";
273
+"Linea" = "Ligne";
274
+"Prism" = "Prisme";
275
+"Circuit" = "Circuit";
276
+"North" = "Nord";
277
+"Axis" = "Axe";
278
+"Marigold" = "Œillet d'Inde";
279
+"Ember" = "Braise";
280
+"Lattice" = "Treillis";
281
+"Bloom" = "Floraison";
282
+"Studio" = "Studio";
283
+"Kite" = "Cerf-volant";
284
+"Regent" = "Régent";
285
+"Monarch" = "Monarque";
286
+"Sterling" = "Sterling";
287
+"Summit" = "Sommet";
288
+"Estate" = "Domaine";
289
+"Chairman" = "Président";
290
+"Blue Ocean" = "Océan Bleu";
291
+
292
+// MARK: - Contenu de l'aperçu de démonstration du CV
293
+"Sarah Johnson" = "Sarah Johnson";
294
+"Senior Product Manager" = "Chef de produit principal";
295
+"Group PM, Consumer Growth & Activation" = "Responsable de groupe produit, Croissance et Activation des consommateurs";
296
+"Google · Mountain View, CA · 2019 – Present" = "Google · Mountain View, Californie · 2019 – Présent";
297
+"Stanford University" = "Université Stanford";
298
+"M.S. Management Science & Engineering" = "Maîtrise en sciences du management et ingénierie";
299
+"2014 – 2016" = "2014 – 2016";
300
+"Mountain View, CA" = "Mountain View, Californie";
301
+"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.";
302
+"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.";
303
+"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 %.";
304
+"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.";
305
+"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.";
306
+"Figma · SQL · Amplitude · Jira · BigQuery" = "Figma · SQL · Amplitude · Jira · BigQuery";
307
+"Product Strategy" = "Stratégie produit";
308
+"A/B Testing" = "Tests A/B";
309
+"Roadmapping" = "Feuille de route";
310
+"CONTACT" = "CONTACT";
311
+"SKILLS" = "COMPÉTENCES";
312
+"PROFILE" = "PROFIL";
313
+"EXPERIENCE" = "EXPÉRIENCE";
314
+"EDUCATION" = "FORMATION";
315
+"SUMMARY" = "SOMMAIRE";
316
+"PROFESSIONAL SUMMARY" = "SOMMAIRE PROFESSIONNEL";
317
+"SELECTED EXPERIENCE" = "EXPÉRIENCE SÉLECTIONNÉE";
318
+"CORE COMPETENCIES" = "COMPÉTENCES CLÉS";
319
+"TOOLS" = "OUTILS";
320
+"IMPACT" = "IMPACT";
321
+
322
+// MARK: - Navigateur d'emplois
323
+"Return to the previous screen" = "Revenir à l'écran précédent";
324
+
325
+// MARK: - Erreurs
326
+"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.";
327
+"The search was cancelled. Try again when you're ready." = "La recherche a été annulée. Réessayez quand vous êtes prêt.";
328
+"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.";
329
+"Job search is unavailable." = "La recherche d'emploi n'est pas disponible.";
330
+
331
+// MARK: - Alertes
332
+"This profile will be removed from this Mac." = "Ce profil sera supprimé de ce Mac.";
333
+
334
+// MARK: - Chaînes de format
335
+"Loading %@" = "Chargement de %@";
336
+"Loading %@. %@" = "Chargement de %@. %@";
337
+"Starting %@…" = "Démarrage de %@…";
338
+"%d replies left" = "%d réponses restantes";
339
+"%d saved positions" = "%d postes sauvegardés";
340
+"“%@” will be removed from this Mac." = "« %@ » sera supprimé de ce Mac.";
341
+"%@ isn’t available yet" = "%@ n'est pas encore disponible";
342
+"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.";
343
+"No jobs found for “%@”. Try another title, skill, company, or location." = "Aucun emploi trouvé pour « %@ ». Essayez un autre titre, compétence, entreprise ou lieu.";
344
+"Here are %d more %@ for “%@”." = "Voici %d %@ supplémentaires pour « %@ ».";
345
+"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.";
346
+"Get %@" = "Obtenir %@";
347
+"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.";
348
+"Experience %d" = "Expérience %d";
349
+"Education %d" = "Formation %d";
350
+"Please fill in: %@." = "Veuillez remplir : %@.";
351
+
352
+// MARK: - Multiligne
353
+"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)";