Localizable.strings 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. /* AppBrand.name ("Meetings") intentionnellement omis — le nom de l'application reste inchangé dans le code. */
  2. "AI Companion for Meet" = "Assistant IA pour Meet";
  3. /* MARK: - Général */
  4. "OK" = "OK";
  5. "Cancel" = "Annuler";
  6. "Continue" = "Continuer";
  7. "Apply" = "Appliquer";
  8. "Reset" = "Réinitialiser";
  9. "Save" = "Enregistrer";
  10. "Copy" = "Copier";
  11. "Copied" = "Copié";
  12. "Close" = "Fermer";
  13. "Join" = "Rejoindre";
  14. "None" = "Aucun";
  15. "Link" = "Lien";
  16. "Stop" = "Arrêter";
  17. "Address" = "Adresse";
  18. "Title" = "Titre";
  19. "Notes" = "Notes";
  20. "Start" = "Démarrer";
  21. "Premium" = "Premium";
  22. "Popular" = "Populaire";
  23. "Browser" = "Navigateur";
  24. "Meeting" = "Réunion";
  25. "Error" = "Erreur";
  26. "Success" = "Succès";
  27. /* MARK: - Barre d'état */
  28. "Meetings status menu" = "Menu d'état des réunions";
  29. "Open App" = "Ouvrir l'app";
  30. "Join Meetings" = "Rejoindre des réunions";
  31. "Schedule" = "Programmer";
  32. "Calendar" = "Calendrier";
  33. "Widgets" = "Widgets";
  34. "AI Companion" = "Assistant IA";
  35. "Settings" = "Paramètres";
  36. "Top meetings" = "Réunions en haut";
  37. "No upcoming meetings" = "Aucune réunion à venir";
  38. "Sign Out" = "Déconnexion";
  39. "Sign In" = "Connexion";
  40. "Quit" = "Quitter";
  41. /* MARK: - Écran de démarrage */
  42. "Preparing your meetings workspace" = "Préparation de votre espace de travail de réunions";
  43. "CONNECTING SERVICES" = "CONNEXION DES SERVICES";
  44. "READY" = "PRÊT";
  45. "Plan smart, achieve more" = "Planifiez intelligemment, accomplissez plus";
  46. /* MARK: - Widgets */
  47. "Add Widget to Desktop" = "Ajouter un widget au bureau";
  48. "Choose a size and add your Google Meet widget." = "Choisissez une taille et ajoutez votre widget Meet de Google.";
  49. "Tip: Right-click a desktop widget to remove it." = "Astuce : faites un clic droit sur un widget du bureau pour le supprimer.";
  50. "Removed %@ widget from desktop." = "Widget %@ supprimé du bureau.";
  51. "Added %@ widget from desktop." = "Widget %@ ajouté depuis le bureau.";
  52. "Added %@ widget to desktop." = "Widget %@ ajouté sur le bureau.";
  53. "Widgets are Premium only. Upgrade to add widgets." = "Les widgets sont uniquement disponibles dans la version Premium. Passez à Premium pour ajouter des widgets.";
  54. "Remove Widget" = "Supprimer le widget";
  55. "Small" = "Petit";
  56. "Medium" = "Moyen";
  57. "Quick actions" = "Actions rapides";
  58. "Open Meet" = "Ouvrir Meet";
  59. "Upcoming meetings" = "Réunions à venir";
  60. "Sign in to see upcoming meetings" = "Connectez-vous pour voir les réunions à venir";
  61. "Sign in with Google" = "Se connecter à Google";
  62. "Google Meet" = "Meet de Google";
  63. "Open and join quickly" = "Ouvrir et rejoindre rapidement";
  64. "Refresh" = "Actualiser";
  65. /* MARK: - Barre latérale et navigation */
  66. "Planning" = "Planification";
  67. "Additional" = "Supplémentaire";
  68. "Get Premium" = "Obtenir Premium";
  69. "Manage Subscription" = "Gérer l'abonnement";
  70. "App for Google Meet" = "Application Meet de Google";
  71. /* MARK: - Rejoindre une réunion */
  72. "New Instant Meet" = "Nouveau Meet instantané";
  73. "Start instant Meet in more section with\nGoogle Meet meet." = "Commencez un Meet instantané dans la section plus\navec Meet de Google.";
  74. "Join with Link" = "Rejoindre avec un lien";
  75. "Code or meet.google.com/…" = "Code ou meet.google.com/…";
  76. "Join with ID" = "Rejoindre avec un ID";
  77. "Join with URL" = "Rejoindre avec une URL";
  78. "Meeting URL" = "URL de la réunion";
  79. "Enter meeting URL..." = "Entrez l'URL de la réunion...";
  80. "Quick Join Meeting" = "Rejoindre rapidement une réunion";
  81. "Invalid Meet link" = "Lien Meet invalide";
  82. "Enter a valid Google Meet link or meeting code (for example nkd-grps-duv, meet.google.com/nkd-grps-duv, or https://meet.google.com/nkd-grps-duv)." = "Entrez un lien Meet de Google ou un code de réunion valide (par exemple nkd-grps-duv, meet.google.com/nkd-grps-duv, ou https://meet.google.com/nkd-grps-duv).";
  83. "Instant Meeting" = "Réunion instantanée";
  84. "Connect Google to start Instant Meeting" = "Connectez-vous à Google pour démarrer une réunion instantanée";
  85. "To auto-stop recording when the meeting ends, connect your Google account first." = "Pour arrêter automatiquement l'enregistrement lorsque la réunion se termine, connectez d'abord votre compte Google.";
  86. "Could not create Instant Meeting" = "Impossible de créer la réunion instantanée";
  87. "Free trial used. Upgrade to continue." = "Essai gratuit utilisé. Passez à Premium pour continuer.";
  88. /* MARK: - Naviguer sur le Web */
  89. "Browse the web" = "Naviguer sur le Web";
  90. "Enter a web address (for example meet.google.com)." = "Entrez une adresse web (par exemple meet.google.com).";
  91. "Invalid address" = "Adresse invalide";
  92. "Enter a valid http or https URL." = "Entrez une URL http ou https valide.";
  93. "Browse" = "Naviguer";
  94. "Quick links" = "Liens rapides";
  95. "Zoom help" = "Aide Zoom";
  96. "https://example.com or example.com" = "https://example.com ou example.com";
  97. "Enter a valid web address, for example https://example.com" = "Entrez une adresse web valide, par exemple https://example.com";
  98. "Address not allowed" = "Adresse non autorisée";
  99. "This URL is not permitted with the current in-app browser policy (whitelist)." = "Cette URL n'est pas autorisée par la politique actuelle du navigateur intégré (liste blanche).";
  100. "Unable to load page" = "Impossible de charger la page";
  101. "Could not load this page in the in-app browser.\n\n%@" = "Impossible de charger cette page dans le navigateur intégré.\n\n%@";
  102. "Page stopped loading" = "Le chargement de la page s'est arrêté";
  103. "Unable to open browser" = "Impossible d'ouvrir le navigateur";
  104. "Unable to Open Safari" = "Impossible d'ouvrir Safari";
  105. /* MARK: - Programmation et calendrier */
  106. "All" = "Tout";
  107. "Today" = "Aujourd'hui";
  108. "This week" = "Cette semaine";
  109. "This month" = "Ce mois-ci";
  110. "Previous week" = "Semaine précédente";
  111. "Previous month" = "Mois précédent";
  112. "Custom range" = "Plage personnalisée";
  113. "No meetings match the selected filters." = "Aucune réunion ne correspond aux filtres sélectionnés.";
  114. "Adjust the date range and tap Apply." = "Ajustez la plage de dates et appuyez sur Appliquer.";
  115. "Premium required. Get Premium now to unlock Calendar." = "Premium requis. Obtenez Premium maintenant pour débloquer le calendrier.";
  116. "Premium required. Click to open paywall." = "Premium requis. Cliquez pour ouvrir l'écran d'achat.";
  117. "Get Premium to see events" = "Obtenez Premium pour voir les événements";
  118. "Connect Google" = "Se connecter à Google";
  119. "Sign in with Google first to schedule a meeting from Calendar." = "Connectez-vous d'abord à Google pour programmer une réunion depuis le calendrier.";
  120. "Select date" = "Sélectionner la date";
  121. "Choose a date to schedule your meeting." = "Choisissez une date pour programmer votre réunion.";
  122. "Google schedule" = "Agenda Google";
  123. "To show scheduled meetings, connect your Google account. You’ll need a Google OAuth client ID (Desktop) and a redirect URI matching the app’s callback scheme." = "Pour afficher les réunions programmées, connectez votre compte Google. Vous aurez besoin d'un identifiant client OAuth Google (ordinateur) et d'un URI de redirection correspondant au schéma de rappel de l'application.";
  124. "Actions" = "Actions";
  125. "Schedule meeting" = "Programmer une réunion";
  126. "Team sync" = "Synchronisation d'équipe";
  127. "Duration (min)" = "Durée (min)";
  128. "Refresh saved meetings" = "Actualiser les réunions enregistrées";
  129. /* MARK: - Paramètres */
  130. "Manage appearance, account, and app options." = "Gérer l'apparence, le compte et les options de l'application.";
  131. "Appearance" = "Apparence";
  132. "Account" = "Compte";
  133. "App" = "Application";
  134. "Notifications" = "Notifications";
  135. "Help & Legal" = "Aide & Mentions légales";
  136. "Dark Mode" = "Mode sombre";
  137. "Language" = "Langue";
  138. "System Language" = "Langue du système";
  139. "Rate Us" = "Noter l'app";
  140. "Share App" = "Partager l'app";
  141. "Upgrade" = "Mettre à niveau";
  142. "Privacy Policy" = "Politique de confidentialité";
  143. "Support" = "Support";
  144. "Terms of Services" = "Conditions d'utilisation";
  145. "AI Language 1" = "Langue intelligente 1";
  146. "AI Language 2" = "Langue intelligente 2";
  147. "Google account connected" = "Compte Google connecté";
  148. "Google account not connected" = "Compte Google non connecté";
  149. "Signed in" = "Connecté";
  150. "Sign in to sync your meetings and calendar." = "Connectez-vous pour synchroniser vos réunions et votre calendrier.";
  151. "Log out" = "Déconnexion";
  152. "Check out %@ for managing and joining meetings." = "Découvrez %@ pour gérer et rejoindre des réunions.";
  153. "Meetings App" = "Application Réunions";
  154. /* MARK: - Consentement pour l'enregistrement */
  155. "Record this meeting locally?" = "Enregistrer cette réunion localement ?";
  156. "With your consent, the app will record meeting audio on this Mac and show it in AI Companion after the meeting." = "Avec votre consentement, l'application enregistrera l'audio de la réunion sur ce Mac et l'affichera dans l'Assistant IA après la réunion.";
  157. "Allow and Continue" = "Autoriser et continuer";
  158. "Continue Without Recording" = "Continuer sans enregistrement";
  159. "Transcription Languages" = "Langues de transcription";
  160. "Preferred Language 1" = "Langue préférée 1";
  161. "Preferred Language 2" = "Langue préférée 2";
  162. "Microphone permission denied" = "Autorisation du microphone refusée";
  163. "Microphone permission required" = "Autorisation du microphone requise";
  164. "Enable microphone access in System Settings to record meetings locally." = "Activez l'accès au microphone dans les Réglages Système pour enregistrer les réunions localement.";
  165. "Could not start recording" = "Impossible de démarrer l'enregistrement";
  166. "Recording will start when the meeting starts" = "L'enregistrement démarrera au début de la réunion";
  167. "Meeting recording started (meeting + microphone)" = "Enregistrement de la réunion démarré (réunion + microphone)";
  168. "System audio unavailable. Recording microphone only." = "Audio système indisponible. Enregistrement du microphone uniquement.";
  169. "Meeting recording started (microphone only)" = "Enregistrement de la réunion démarré (microphone uniquement)";
  170. "Meeting recording saved" = "Enregistrement de la réunion enregistré";
  171. /* MARK: - Assistant IA */
  172. "Get notes from your previous meetings" = "Obtenez les notes de vos réunions précédentes";
  173. "Connect your Google account to see your AI Companion meeting history." = "Connectez votre compte Google pour voir l'historique de vos réunions dans l'Assistant IA.";
  174. "No previous meetings yet for %@. End a meeting to save it here and generate notes." = "Aucune réunion précédente pour %@. Terminez une réunion pour l'enregistrer ici et générer des notes.";
  175. "this account" = "ce compte";
  176. "Previous meetings" = "Réunions précédentes";
  177. "Recording in progress: %@" = "Enregistrement en cours : %@";
  178. "Started: %@" = "Commencé : %@";
  179. "Stop Recording" = "Arrêter l'enregistrement";
  180. "Date: %@" = "Date : %@";
  181. "Saved time: %@" = "Enregistré le : %@";
  182. "Get Notes" = "Obtenir les notes";
  183. "Premium required. Click to unlock AI Companion notes." = "Premium requis. Cliquez pour débloquer les notes de l'Assistant IA.";
  184. "Play Audio" = "Lire l'audio";
  185. "Pause Audio" = "Pause audio";
  186. "Stopped" = "Arrêté";
  187. "Speaking..." = "Parle...";
  188. "Paused" = "En pause";
  189. "Playing..." = "Lecture...";
  190. "Not playing" = "Ne joue pas";
  191. "Checking audio..." = "Vérification de l'audio...";
  192. "Audio file missing" = "Fichier audio manquant";
  193. "Could not play recording" = "Impossible de lire l'enregistrement";
  194. "Failed: %@" = "Échec : %@";
  195. "Failed to play audio" = "Échec de la lecture audio";
  196. "decode error" = "erreur de décodage";
  197. "Loading..." = "Chargement...";
  198. "Buffering..." = "Tamponnage...";
  199. "Finished" = "Terminé";
  200. "Transcript not requested" = "Transcription non demandée";
  201. "Transcript processing..." = "Traitement de la transcription...";
  202. "Transcript ready" = "Transcription prête";
  203. "Transcript unavailable (tap to retry)" = "Transcription indisponible (appuyez pour réessayer)";
  204. "Notes not requested" = "Notes non demandées";
  205. "Preparing notes, please wait..." = "Préparation des notes, veuillez patienter...";
  206. "Notes ready" = "Notes prêtes";
  207. "Notes unavailable (tap to retry)" = "Notes indisponibles (appuyez pour réessayer)";
  208. "Transcript unavailable" = "Transcription indisponible";
  209. "Notes unavailable" = "Notes indisponibles";
  210. "Transcript unavailable.\n\n%@" = "Transcription indisponible.\n\n%@";
  211. "Notes unavailable.\n\n%@" = "Notes indisponibles.\n\n%@";
  212. "Transcribing %d/%d chunks..." = "Transcription de %d/%d segments...";
  213. "Ended meeting." = "Réunion terminée.";
  214. "Could not find recording details for this meeting." = "Impossible de trouver les détails d'enregistrement pour cette réunion.";
  215. "Transcript - %@" = "Transcription - %@";
  216. "Notes - %@" = "Notes - %@";
  217. "Meeting Notes" = "Notes de réunion";
  218. /* MARK: - Paywall et StoreKit */
  219. "Meetings Pro" = "Réunions Pro";
  220. "PREMIUM EXPERIENCE" = "EXPÉRIENCE PREMIUM";
  221. "Elevate your meetings workflow" = "Améliorez votre flux de travail de réunions";
  222. "Unlock automation, premium meeting tools, and priority support for every session." = "Débloquez l'automatisation, les outils de réunion premium et le support prioritaire pour chaque session.";
  223. "Manage meetings" = "Gérer les réunions";
  224. "Smart scheduling" = "Planification intelligente";
  225. "Faster workflow" = "Flux de travail plus rapide";
  226. "Reminder notifications" = "Notifications de rappel";
  227. "Monthly" = "Mensuel";
  228. "Bi Yearly" = "Semestriel";
  229. "Yearly" = "Annuel";
  230. "Most Popular" = "Le plus populaire";
  231. "%@ • Most Popular" = "%@ • Le plus populaire";
  232. "3 days free trial" = "3 jours d'essai gratuit";
  233. "Cancel anytime" = "Annulez à tout moment";
  234. "No lock-in" = "Sans engagement";
  235. "Instant access" = "Accès instantané";
  236. "Unlock all tools" = "Débloquez tous les outils";
  237. "Secure billing" = "Facturation sécurisée";
  238. "Handled by Apple" = "Géré par Apple";
  239. "Secured by Apple. Cancel anytime." = "Sécurisé par Apple. Annulez à tout moment.";
  240. "Restore Purchase" = "Restaurer l'achat";
  241. "Continue with free plan" = "Continuer avec le plan gratuit";
  242. "Already Premium" = "Déjà Premium";
  243. "You are already premium. Do you want to continue with this purchase?" = "Vous êtes déjà Premium. Voulez-vous continuer cet achat ?";
  244. "Current plan: %@. Choose a different package to switch." = "Plan actuel : %@. Choisissez une autre formule pour changer.";
  245. "Premium is active on this Apple ID." = "Premium est actif sur cet Apple ID.";
  246. "Free for %@, then %@" = "Gratuit pendant %@, puis %@";
  247. "Billed via App Store" = "Facturé via l'App Store";
  248. "%@ • %@" = "%@ • %@";
  249. "Save 0%" = "Économisez 0%";
  250. "Save %@%%" = "Économisez %@%%";
  251. "month" = "mois";
  252. "year" = "an";
  253. "%@ free trial" = "Essai gratuit de %@";
  254. "Processing..." = "Traitement...";
  255. "Premium Active" = "Premium actif";
  256. "Continue with 3 day trail" = "Continuer avec l'essai de 3 jours";
  257. "Please Wait" = "Veuillez patienter";
  258. "A purchase is already being processed." = "Un achat est déjà en cours de traitement.";
  259. "This Apple ID already has premium access." = "Cet Apple ID a déjà accès à Premium.";
  260. "Purchase Complete" = "Achat terminé";
  261. "Premium has been unlocked successfully." = "Premium a été débloqué avec succès.";
  262. "Purchase Pending" = "Achat en attente";
  263. "Your purchase is pending approval. You can continue once it completes." = "Votre achat est en attente d'approbation. Vous pouvez continuer une fois qu'il est terminé.";
  264. "Product Not Available" = "Produit indisponible";
  265. "Unable to load this product. Check your StoreKit configuration and product IDs." = "Impossible de charger ce produit. Vérifiez votre configuration StoreKit et vos IDs de produit.";
  266. "Already Purchased" = "Déjà acheté";
  267. "This plan is already active on your Apple ID." = "Ce plan est déjà actif sur votre Apple ID.";
  268. "Purchase Failed" = "Échec de l'achat";
  269. "Restore Purchases" = "Restaurer les achats";
  270. "Purchases restored successfully." = "Achats restaurés avec succès.";
  271. "No previous premium purchase was found for this Apple ID." = "Aucun achat Premium antérieur n'a été trouvé pour cet Apple ID.";
  272. "Restore failed: %@" = "La restauration a échoué : %@";
  273. "Unable to Open Subscriptions" = "Impossible d'ouvrir les abonnements";
  274. "The subscriptions URL is invalid." = "L'URL des abonnements est invalide.";
  275. "%@ tapped." = "%@ tapé.";
  276. /* MARK: - Authentification */
  277. "Google Sign-In" = "Connexion à Google";
  278. /* MARK: - Erreurs de reconnaissance vocale / transcription */
  279. "Speech recognition permission denied. Enable it in System Settings and try again." = "Autorisation de reconnaissance vocale refusée. Activez-la dans les Réglages Système et réessayez.";
  280. "Speech recognition is restricted on this Mac." = "La reconnaissance vocale est restreinte sur ce Mac.";
  281. "Speech recognition authorization is unavailable." = "L'autorisation de reconnaissance vocale est indisponible.";
  282. "Speech recognizer is unavailable for the current locale." = "Le reconnaisseur vocal est indisponible pour la locale actuelle.";
  283. "Speech recognizer is unavailable for %@." = "Le reconnaisseur vocal est indisponible pour %@.";
  284. "No audio was available to transcribe." = "Aucun audio n'était disponible pour la transcription.";
  285. /* MARK: - Erreurs de transaction StoreKit */
  286. "Unable to load products: %@" = "Impossible de charger les produits : %@";
  287. "Product ID not found in StoreKit response. Requested: %@. Loaded IDs: %@" = "ID de produit non trouvé dans la réponse StoreKit. Demandé : %@. IDs chargés : %@";
  288. "Purchase verification failed." = "La vérification de l'achat a échoué.";
  289. "Unknown purchase state." = "État de l'achat inconnu.";
  290. "none" = "aucun";
  291. /* MARK: - Textes de prix du paywall */
  292. "%@ one-time purchase" = "Achat unique de %@";
  293. "%@/month" = "%@/mois";
  294. "%@/6 months" = "%@/6 mois";
  295. "%@/year (3 days free trial)" = "%@/an (3 jours d'essai gratuit)";
  296. "day" = "jour";
  297. "week" = "semaine";
  298. "period" = "période";
  299. "1 %@" = "1 %@";
  300. "%d %@s" = "%d %@";
  301. /* MARK: - Toasts et retours rapides */
  302. "Meeting added successfully." = "Réunion ajoutée avec succès.";
  303. "An issue occurred. Please try again." = "Un problème est survenu. Veuillez réessayer.";
  304. "Failed to load transcript." = "Échec du chargement de la transcription.";
  305. "Failed to generate notes." = "Échec de la génération des notes.";
  306. /* MARK: - Alertes du navigateur */
  307. "Try Again" = "Réessayer";
  308. "The in-app browser closed this page unexpectedly. You can try loading it again in this same window." = "Le navigateur intégré a fermé cette page de manière inattendue. Vous pouvez essayer de la recharger dans cette même fenêtre.";
  309. /* MARK: - Erreurs de programmation et de calendrier */
  310. "Couldn't load schedule." = "Impossible de charger le programme.";
  311. "Couldn't refresh schedule." = "Impossible d'actualiser le programme.";
  312. "Couldn't connect Google account." = "Impossible de connecter le compte Google.";
  313. "Couldn't logout Google account." = "Impossible de se déconnecter du compte Google.";
  314. "Couldn't load schedule" = "Impossible de charger le programme";
  315. "Couldn't determine Meet meeting code from URL." = "Impossible de déterminer le code de réunion Meet à partir de l'URL.";
  316. "Refreshing…" = "Actualisation...";
  317. "Connect Google to see meetings" = "Connectez-vous à Google pour voir les réunions";
  318. "Connect to load schedule" = "Connectez-vous pour charger le programme";
  319. "Loading…" = "Chargement...";
  320. "Loading schedule…" = "Chargement du programme...";
  321. "Start date must be on or before end date." = "La date de début doit être antérieure ou égale à la date de fin.";
  322. "Invalid custom date range" = "Plage de dates personnalisée invalide";
  323. "No meetings" = "Aucune réunion";
  324. "No meetings for selected filters" = "Aucune réunion pour les filtres sélectionnés";
  325. "No meetings on %@" = "Aucune réunion le %@";
  326. "1 meeting on %@" = "1 réunion le %@";
  327. "%d meetings on %@" = "%d réunions le %@";
  328. "Showing %d of %d" = "Affichage de %d sur %d";
  329. "All day" = "Toute la journée";
  330. "Duration: all day" = "Durée : toute la journée";
  331. "Duration: %dh %dm" = "Durée : %dh %dm";
  332. "Duration: %dh" = "Durée : %dh";
  333. "Duration: %dm" = "Durée : %dm";
  334. "%@ - %@" = "%@ - %@";
  335. "Scheduled Meeting" = "Réunion programmée";
  336. /* MARK: - Popup de création de réunion */
  337. "Please enter a title." = "Veuillez entrer un titre.";
  338. "Duration must be a positive number of minutes." = "La durée doit être un nombre de minutes positif.";
  339. "Invalid start time." = "Heure de début invalide.";
  340. /* MARK: - Rappels et notifications */
  341. "Reminders" = "Rappels";
  342. "1 Day Before" = "1 jour avant";
  343. "12 Hours Before" = "12 heures avant";
  344. "1 Hour Before" = "1 heure avant";
  345. "Starts in 1 day" = "Commence dans 1 jour";
  346. "Starts in 12 hours" = "Commence dans 12 heures";
  347. "Starts in 1 hour" = "Commence dans 1 heure";
  348. /* MARK: - Erreurs OAuth Google */
  349. "Missing Google OAuth Client ID." = "Identifiant client OAuth Google manquant.";
  350. "Missing Google OAuth Client Secret." = "Secret client OAuth Google manquant.";
  351. "Invalid OAuth callback URL." = "URL de rappel OAuth invalide.";
  352. "Google did not return an authorization code." = "Google n'a pas renvoyé de code d'autorisation.";
  353. "Token exchange failed: %@" = "Échange de jeton échoué : %@";
  354. "Could not open browser for Google sign-in." = "Impossible d'ouvrir le navigateur pour la connexion à Google.";
  355. "Google sign-in timed out." = "La connexion à Google a expiré.";
  356. "No stored Google tokens found." = "Aucun jeton Google enregistré trouvé.";
  357. /* MARK: - Erreurs de l'Assistant IA / transcription */
  358. "Recording not found." = "Enregistrement non trouvé.";
  359. "Local meeting audio is missing." = "L'audio local de la réunion est manquant.";
  360. "Generated transcript was empty." = "La transcription générée était vide.";
  361. "(No transcript entries found.)" = "(Aucune entrée de transcription trouvée.)";
  362. "No conference record found for this meeting." = "Aucun enregistrement de conférence trouvé pour cette réunion.";
  363. "No transcript found for this meeting." = "Aucune transcription trouvée pour cette réunion.";
  364. "Unable to create audio composition tracks." = "Impossible de créer les pistes de composition audio.";
  365. "Unable to create audio export session." = "Impossible de créer la session d'exportation audio.";
  366. "Audio mix export failed." = "L'exportation du mixage audio a échoué.";
  367. "No display available for system audio capture." = "Aucun écran disponible pour la capture audio système.";
  368. "Cannot add audio writer input." = "Impossible d'ajouter l'entrée du writer audio.";
  369. /* MARK: - Erreurs API Google */
  370. "Google Meet returned an invalid response." = "Meet de Google a renvoyé une réponse invalide.";
  371. "Google Meet API error (%d): %@" = "Erreur d'API Meet de Google (%d) : %@";
  372. "Failed to parse Google Meet response: %@" = "Échec de l'analyse de la réponse Meet de Google : %@";
  373. "Google Calendar returned an invalid response." = "Agenda Google a renvoyé une réponse invalide.";
  374. "Google Calendar API error (%d): %@" = "Erreur d'API Agenda Google (%d) : %@";
  375. "Failed to parse Google Calendar events: %@" = "Échec de l'analyse des événements de l'Agenda Google : %@";
  376. /* MARK: - Erreurs OpenAI */
  377. "OpenAI API key is missing. Set OPENAI_API_KEY in the environment or app key vault." = "Clé API d'intelligence artificielle ouverte manquante. Définissez OPENAI_API_KEY dans l'environnement ou le trousseau de clés de l'application.";
  378. "Notes generation returned an invalid response." = "La génération des notes a renvoyé une réponse invalide.";
  379. "Notes generation failed (%d): %@" = "La génération des notes a échoué (%d) : %@";
  380. "Notes generation returned empty text." = "La génération des notes a renvoyé un texte vide.";
  381. "OpenAI transcription returned an invalid response." = "La transcription par intelligence artificielle ouverte a renvoyé une réponse invalide.";
  382. "OpenAI transcription failed (%d): %@" = "La transcription par intelligence artificielle ouverte a échoué (%d) : %@";
  383. "OpenAI transcription returned no text." = "La transcription par intelligence artificielle ouverte n'a renvoyé aucun texte.";
  384. /* MARK: - Navigation et navigateur intégré */
  385. "Open sites in the in-app browser (back, forward, reload, address bar). OAuth and “Continue in browser” flows stay inside the app." = "Ouvrez des sites dans le navigateur intégré (précédent, suivant, recharger, barre d'adresse). Les flux OAuth et « Continuer dans le navigateur » restent dans l'application.";
  386. "Open in app browser" = "Ouvrir dans le navigateur de l'application";
  387. "Meet help" = "Aide Meet";
  388. "Go" = "Aller";
  389. "Back" = "Précédent";
  390. "Forward" = "Suivant";
  391. "Reload" = "Recharger";
  392. /* MARK: - Libellés du calendrier et de la programmation */
  393. "Google Calendar" = "Agenda Google";
  394. "Untitled meeting" = "Réunion sans titre";
  395. "Created event missing start/end." = "L'événement créé n'a pas de début/fin.";
  396. "Created event missing Meet/HTML link." = "L'événement créé n'a pas de lien Meet/HTML.";
  397. /* MARK: - Compte Google */
  398. "Google account" = "Compte Google";
  399. "%@, Google account" = "%@, Compte Google";
  400. "Google User" = "Utilisateur Google";
  401. /* MARK: - Rejoindre Zoom (parties non utilisées) */
  402. "Meeting ID" = "ID de réunion";
  403. "Enter meeting ID..." = "Entrez l'ID de la réunion...";
  404. "Meeting Passcode" = "Code d'accès de la réunion";
  405. "Enter meeting passcode..." = "Entrez le code d'accès de la réunion...";
  406. /* MARK: - Paywall (avantages alternatifs) */
  407. "Virtual backgrounds" = "Fonds d'écran virtuels";
  408. "Tools for productivity" = "Outils de productivité";
  409. "24/7 support" = "Support 24/7";
  410. /* MARK: - Intervenants de la transcription */
  411. "You" = "Vous";
  412. /* MARK: - Erreurs Trousseau (Keychain) */
  413. "Failed to read OAuth tokens from Keychain." = "Échec de la lecture des jetons OAuth depuis le Trousseau.";
  414. "Keychain returned an invalid token payload." = "Le Trousseau a renvoyé une charge utile de jeton invalide.";
  415. "Failed to update OAuth tokens in Keychain." = "Échec de la mise à jour des jetons OAuth dans le Trousseau.";
  416. "Failed to save OAuth tokens to Keychain." = "Échec de l'enregistrement des jetons OAuth dans le Trousseau.";
  417. "Failed to delete OAuth tokens from Keychain." = "Échec de la suppression des jetons OAuth du Trousseau.";
  418. "Unable to allocate audio buffer." = "Impossible d'allouer le tampon audio.";
  419. "Invalid revoke response." = "Réponse de révocation invalide.";
  420. "Token revoke failed with status %d." = "La révocation du jeton a échoué avec le statut %d.";
  421. /* MARK: - Diagnostics d'erreur */
  422. "Keychain: %d (%@)" = "Trousseau : %d (%@)";
  423. "OSStatus: %d" = "OSStatus : %d";
  424. "Item: service=%@, account=%@" = "Élément : service=%@, compte=%@";