@kikkimo/claude-launcher 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,523 @@
1
+ /**
2
+ * French Language Pack
3
+ * Contains all translatable strings for French locale
4
+ */
5
+
6
+ module.exports = {
7
+ // Sections de menu
8
+ menu: {
9
+ main: {
10
+ title: "Menu Principal",
11
+ launch_default: "Lancer Claude Code",
12
+ launch_skip: "Lancer Claude Code (Ignorer la vérification des permissions)",
13
+ launch_api: "Lancer Claude Code avec API tierce",
14
+ launch_api_skip: "Lancer Claude Code avec API tierce (Ignorer la vérification des permissions)",
15
+ api_management: "Gestion des API tierces",
16
+ language_settings: "Paramètres de langue",
17
+ version_check: "Vérification de mise à jour",
18
+ exit: "Quitter"
19
+ },
20
+ api_management: {
21
+ title: "Gestion des API tierces",
22
+ add_new: "Ajouter une nouvelle API tierce",
23
+ remove: "Supprimer une API",
24
+ switch: "Changer l'API active",
25
+ statistics: "Voir les statistiques d'API",
26
+ export: "Exporter la configuration",
27
+ import: "Importer la configuration",
28
+ change_password: "Changer le mot de passe",
29
+ back: "Retour au menu principal"
30
+ },
31
+ language: {
32
+ title: "Paramètres de langue",
33
+ current: "Langue actuelle : {0}",
34
+ select_prompt: "Sélectionnez votre langue préférée :",
35
+ changed_success: "Langue changée en {0}",
36
+ restart_note: "Certaines modifications peuvent nécessiter un redémarrage de l'application",
37
+ back: "Retour au menu principal"
38
+ }
39
+ },
40
+
41
+ // Types de messages
42
+ messages: {
43
+ info: {
44
+ no_apis: "Aucune API tierce configurée",
45
+ add_api_first: "Veuillez d'abord ajouter une API en utilisant \"Ajouter une nouvelle API tierce\"",
46
+ all_apis_removed: "Toutes les API ont été supprimées",
47
+ apis_removed_or_none: "Toutes les API ont été supprimées ou aucune n'était configurée.",
48
+ removal_cancelled: "Suppression annulée",
49
+ operation_cancelled: "Opération annulée",
50
+ password_setup_skipped: "Configuration du mot de passe ignorée, fonctionnalité d'import/export définitivement désactivée",
51
+ first_time_usage: "Ceci est votre première utilisation de Claude Launcher",
52
+ export_disabled: "La fonctionnalité d'import/export est désactivée",
53
+ no_apis_info_title: "Aucune API tierce configurée",
54
+ press_return_menu: "Appuyez sur n'importe quelle touche pour retourner au menu principal..."
55
+ },
56
+ success: {
57
+ api_added: "API ajoutée avec succès !",
58
+ api_removed: "API supprimée avec succès !",
59
+ api_switched: "API changée avec succès !",
60
+ password_set: "Mot de passe défini avec succès ! (Force : {0})",
61
+ password_changed: "Mot de passe changé avec succès !",
62
+ config_exported: "Configuration exportée avec succès !",
63
+ config_imported: "Configuration importée avec succès ! ({0} importées, {1} ignorées)",
64
+ language_changed: "Langue changée avec succès !"
65
+ },
66
+ prompts: {
67
+ press_any_key: "Appuyez sur n'importe quelle touche pour continuer...",
68
+ press_any_key_menu: "Appuyez sur n'importe quelle touche pour retourner au menu principal...",
69
+ press_any_key_remove: "Appuyez sur n'importe quelle touche pour continuer la sélection des API à supprimer...",
70
+ confirm_deletion: "Êtes-vous sûr de vouloir supprimer cette API ?",
71
+ confirm_password_skip: "Êtes-vous sûr de vouloir ignorer définitivement la configuration du mot de passe ?",
72
+ enter_password: "Entrez le mot de passe pour vérifier l'identité : ",
73
+ enter_current_password: "Entrez le mot de passe actuel : ",
74
+ enter_new_password: "Nouveau mot de passe : ",
75
+ confirm_new_password: "Confirmer le mot de passe : ",
76
+ enter_api_name: "Entrez le nom de l'API (optionnel) : ",
77
+ enter_base_url: "Entrez l'URL de base : ",
78
+ enter_auth_token: "Entrez le jeton d'authentification : ",
79
+ enter_model_name: "Entrez le nom du modèle : ",
80
+ select_provider: "Sélectionner le fournisseur : ",
81
+ enter_import_file: "Entrez le chemin du fichier d'import : ",
82
+ ctrl_c_again: "Appuyez à nouveau sur Ctrl+C pour quitter le programme"
83
+ }
84
+ },
85
+
86
+ // Messages d'erreur
87
+ errors: {
88
+ api: {
89
+ invalid_url: "URL de base invalide : {0}",
90
+ invalid_token: "Jeton d'authentification invalide : {0}",
91
+ invalid_model: "Modèle invalide : {0}",
92
+ invalid_name: "Nom d'API invalide : {0}",
93
+ duplicate_config: "L'API {1} existe déjà{0}",
94
+ failed_encrypt: "Échec du chiffrement du jeton d'authentification : {0}",
95
+ failed_add: "Échec de l'ajout de l'API : {0}",
96
+ failed_remove: "Échec de la suppression de l'API : {0}",
97
+ failed_switch: "Échec du changement d'API : {0}",
98
+ invalid_index: "Index d'API invalide"
99
+ },
100
+ password: {
101
+ empty: "Le mot de passe ne peut pas être vide",
102
+ too_short: "Le mot de passe doit contenir au moins 6 caractères",
103
+ verification_failed: "Échec de la vérification du mot de passe",
104
+ verification_error: "Erreur de vérification du mot de passe : {0}",
105
+ verification_cancelled: "Vérification du mot de passe annulée par l'utilisateur",
106
+ setup_cancelled: "Configuration du mot de passe annulée par l'utilisateur",
107
+ current_incorrect: "Le mot de passe actuel est incorrect",
108
+ strength_insufficient: "La force du mot de passe est {0} - force minimale requise 'Bon' ou plus",
109
+ setup_failed: "Échec de la configuration du mot de passe : {0}",
110
+ change_failed: "Échec du changement de mot de passe : {0}",
111
+ mismatch: "Les mots de passe ne correspondent pas, veuillez réessayer",
112
+ requirements_not_met: "Le mot de passe ne répond pas aux exigences de sécurité :",
113
+ max_attempts: "Nombre maximum de tentatives atteint. Configuration du mot de passe échouée.",
114
+ confirm_skip_title: "Confirmer l'ignorance de la configuration du mot de passe",
115
+ setup_skipped: "Configuration du mot de passe ignorée, fonctionnalité d'import/export définitivement désactivée",
116
+ verification_required: "Vérification du mot de passe requise pour confirmer votre identité",
117
+ change_password_title: "Changer le mot de passe",
118
+ non_ascii: "Le mot de passe ne doit contenir que des caractères ASCII",
119
+ contains_spaces: "Le mot de passe ne peut pas contenir d'espaces ou de caractères d'espacement",
120
+ insufficient_types: "Le mot de passe doit contenir au moins 2 des types suivants : majuscules, minuscules, chiffres, caractères spéciaux",
121
+ weak_pattern: "Le mot de passe contient des motifs faibles courants - veuillez choisir un mot de passe plus sécurisé",
122
+ suggest_lowercase: "Ajouter des minuscules (a-z)",
123
+ suggest_uppercase: "Ajouter des majuscules (A-Z)",
124
+ suggest_numbers: "Ajouter des chiffres (0-9)",
125
+ suggest_special: "Ajouter des caractères spéciaux (!@#$%^&*()_+-=[]{}etc.)",
126
+ suggest_longer: "Essayez un mot de passe plus long avec plus de types de caractères",
127
+ suggest_more_types: "Considérez l'ajout de majuscules, chiffres ou caractères spéciaux",
128
+ current_password_verified: "✓ Mot de passe actuel vérifié"
129
+ },
130
+ file: {
131
+ export_failed: "Échec de l'export de la configuration : {0}",
132
+ import_failed: "Échec de l'import de la configuration : {0}",
133
+ file_not_found: "Fichier non trouvé : {0}",
134
+ invalid_format: "Format de configuration invalide - {0}",
135
+ read_failed: "Échec de la lecture du fichier : {0}",
136
+ write_failed: "Échec de l'écriture du fichier : {0}",
137
+ no_apis_found: "Aucune API trouvée dans le fichier de configuration"
138
+ },
139
+ general: {
140
+ unexpected_error: "Erreur inattendue : {0}",
141
+ operation_failed: "Opération échouée : {0}",
142
+ invalid_input: "Entrée invalide : {0}",
143
+ cancelled_by_user: "Opération annulée par l'utilisateur"
144
+ },
145
+ validation: {
146
+ base_url_empty: "L'URL de base est vide ou manquante",
147
+ invalid_url_format: "Format d'URL invalide",
148
+ auth_token_empty: "Le jeton d'authentification est vide ou manquant",
149
+ auth_token_too_short: "Le jeton d'authentification est trop court (minimum 10 caractères)",
150
+ model_name_empty: "Le nom du modèle est vide ou manquant",
151
+ model_name_invalid: "Le nom du modèle semble invalide ou trop court"
152
+ },
153
+ launcher: {
154
+ error_running_claude: "Erreur lors de l'exécution de Claude : {0}",
155
+ error_launching_claude: "Erreur lors du lancement de Claude Code : {0}"
156
+ }
157
+ },
158
+
159
+ // Messages de statut
160
+ status: {
161
+ loading: "Chargement...",
162
+ processing: "Traitement...",
163
+ validating: "Validation...",
164
+ encrypting: "Chiffrement...",
165
+ decrypting: "Déchiffrement...",
166
+ saving: "Sauvegarde de la configuration...",
167
+ exporting: "Export de la configuration...",
168
+ importing: "Import de la configuration...",
169
+ switching_language: "Changement de langue...",
170
+ initializing: "Initialisation..."
171
+ },
172
+
173
+ // Détails et étiquettes des API
174
+ api: {
175
+ details: {
176
+ provider: "Fournisseur",
177
+ url: "URL",
178
+ model: "Modèle",
179
+ token: "Jeton",
180
+ usage: "Utilisation",
181
+ last_used: "Dernière utilisation",
182
+ created_at: "Créé le",
183
+ never_used: "Jamais utilisé",
184
+ times_suffix: "fois",
185
+ currently_active: "API actuellement active",
186
+ no_active_api: "Aucune API active"
187
+ },
188
+ actions: {
189
+ select_to_switch: "Sélectionner l'API à changer :",
190
+ select_to_remove: "Sélectionner l'API à supprimer :",
191
+ switch_success: "API active : {0}",
192
+ remove_confirm: "API à supprimer : {0}",
193
+ cannot_undo: "Cette action ne peut pas être annulée !",
194
+ removed_info: "Supprimé : {0}"
195
+ }
196
+ },
197
+
198
+ // Configuration et gestion des mots de passe
199
+ password: {
200
+ setup: {
201
+ title: "Configurer le mot de passe d'import/export :",
202
+ change_title: "Changer le mot de passe :",
203
+ warning: "Changer le mot de passe rendra les fichiers d'export existants inaccessibles",
204
+ requirements_title: "Exigences du mot de passe :",
205
+ example: "Exemple de mot de passe fort : {0}",
206
+ attempt_counter: "tentative {0}/{1}",
207
+ first_time_title: "Configuration initiale d'import/export",
208
+ why_needed: "Pourquoi un mot de passe est nécessaire :",
209
+ why_needed_items: [
210
+ "Les fonctions d'import/export nécessitent une vérification par mot de passe pour l'identification de l'utilisateur",
211
+ "Les configurations exportées sont en format texte brut pour la compatibilité inter-machines",
212
+ "Les configurations locales restent chiffrées, le mot de passe garantit que seul vous pouvez y accéder"
213
+ ],
214
+ new_security_title: "Nouvelles exigences de sécurité renforcée :",
215
+ security_items: [
216
+ "Le mot de passe doit contenir au moins 6 caractères",
217
+ "Doit contenir au moins 2 types : majuscules, minuscules, chiffres ou caractères spéciaux",
218
+ "Caractères ASCII uniquement, pas d'espaces autorisés",
219
+ "Protection avancée contre les motifs de mots de passe faibles"
220
+ ],
221
+ options_title: "Options :",
222
+ option_set: "Définir le mot de passe : Activer la fonctionnalité d'import/export avec vérification d'identité",
223
+ option_skip: "Ignorer la configuration : Désactiver définitivement les fonctions d'import/export (ne peut pas être annulé)",
224
+ warning_skip: "ATTENTION : Ignorer la configuration désactivera définitivement la fonctionnalité d'import/export !",
225
+ menu_set_password: "Définir le mot de passe (recommandé)",
226
+ menu_skip_setup: "Ignorer la configuration (désactiver définitivement l'import/export)",
227
+ menu_back: "Toute autre touche : Retour au menu principal",
228
+ setup_instructions: [
229
+ "Le mot de passe doit contenir au moins 6 caractères",
230
+ "Doit contenir au moins 2 types : majuscules, minuscules, chiffres ou caractères spéciaux",
231
+ "Caractères ASCII uniquement, pas d'espaces autorisés",
232
+ "Protection avancée contre les motifs de mots de passe faibles"
233
+ ],
234
+ password_requirements_text: "Exigences du mot de passe :",
235
+ example_password: "Exemple de mot de passe fort : {0}",
236
+ new_password_attempt: "Nouveau mot de passe (tentative {0}/{1}) : ",
237
+ confirm_password_prompt: "Confirmer le mot de passe : ",
238
+ passwords_mismatch: "Les mots de passe ne correspondent pas, veuillez réessayer",
239
+ password_success: "Mot de passe défini avec succès ! (Force : {0})",
240
+ press_continue: "Appuyez sur n'importe quelle touche pour continuer...",
241
+ enter_current_password: "Entrez le mot de passe actuel : "
242
+ },
243
+ requirements: [
244
+ "Au moins 6 caractères de long",
245
+ "Au moins 2 des types de caractères suivants :",
246
+ " • Lettres majuscules (A-Z)",
247
+ " • Lettres minuscules (a-z)",
248
+ " • Chiffres (0-9)",
249
+ " • Caractères spéciaux (!@#$%^&*()_+-=[]{}etc.)",
250
+ "Caractères ASCII uniquement (pas d'espaces ou de caractères inhabituels)",
251
+ "Ne peut pas contenir de motifs faibles courants",
252
+ "Force minimale du mot de passe : Bon (les mots de passe faibles et très faibles sont rejetés)"
253
+ ],
254
+ suggestions: [
255
+ "Ajouter des minuscules (a-z)",
256
+ "Ajouter des majuscules (A-Z)",
257
+ "Ajouter des chiffres (0-9)",
258
+ "Ajouter des caractères spéciaux (!@#$%^&*()_+-=[]{}etc.)",
259
+ "Essayez un mot de passe plus long avec plus de types de caractères",
260
+ "Considérez l'ajout de majuscules, chiffres ou caractères spéciaux"
261
+ ],
262
+ strength: {
263
+ very_weak: "Très faible",
264
+ weak: "Faible",
265
+ good: "Bon",
266
+ strong: "Fort",
267
+ very_strong: "Très fort"
268
+ }
269
+ },
270
+
271
+ // Fonctionnalité d'import/export
272
+ import_export: {
273
+ export: {
274
+ title: "Exporter la configuration",
275
+ description_title: "Description de la fonction d'export :",
276
+ description_items: [
277
+ "Vérification par mot de passe requise pour confirmer votre identité",
278
+ "L'export sauvegarde un fichier JSON dans votre répertoire personnel",
279
+ "Le fichier contient les configurations d'API en texte brut pour une migration facile",
280
+ "Le fichier sera automatiquement ouvert après l'export"
281
+ ],
282
+ success: "Configuration exportée vers : {0}",
283
+ success_title: "Configuration exportée avec succès !",
284
+ details_title: "Détails de l'export :",
285
+ details_file_saved: "Fichier sauvegardé vers : {0}",
286
+ details_export_dir: "Répertoire d'export : {0}",
287
+ details_filename: "Nom du fichier : {0}",
288
+ opening_file: "Ouverture du fichier exporté avec l'application par défaut...",
289
+ tips_title: "Conseils :",
290
+ tips_items: [
291
+ "Partagez ce fichier pour migrer les configurations vers d'autres machines",
292
+ "Gardez le fichier en sécurité car il contient vos configurations d'API"
293
+ ],
294
+ password_required: "Vérification par mot de passe requise pour l'export",
295
+ enter_password_prompt: "Entrez le mot de passe pour vérifier l'identité : ",
296
+ verification_failed: "Échec de la vérification du mot de passe",
297
+ cannot_proceed: "Impossible de procéder à l'export",
298
+ press_return: "Appuyez sur n'importe quelle touche pour revenir..."
299
+ },
300
+ import: {
301
+ title: "Importer la configuration",
302
+ success: "Import terminé : {0} API importées, {1} ignorées",
303
+ password_required: "Vérification par mot de passe requise pour l'import",
304
+ file_prompt: "Entrez le chemin complet vers le fichier de configuration :",
305
+ processing: "Traitement du fichier d'import...",
306
+ validating_file: "Validation du fichier de configuration...",
307
+ verification_failed: "Échec de la vérification du mot de passe",
308
+ cannot_proceed: "Impossible de procéder à l'import",
309
+ press_return: "Appuyez sur n'importe quelle touche pour revenir..."
310
+ }
311
+ },
312
+
313
+ // Navigation et interface utilisateur
314
+ navigation: {
315
+ use_arrows: "Utilisez les touches fléchées ↑↓ pour naviguer, Entrée pour sélectionner, double-tap Ctrl+C pour quitter",
316
+ use_arrows_esc: "Utilisez ↑↓ pour naviguer, Entrée pour {0}, ESC pour retourner au menu principal",
317
+ use_number_keys: "Utilisez les touches numériques pour sélectionner :",
318
+ currently_active: "API actuellement active",
319
+ select_action: "Sélectionner une action :",
320
+ no_options: "Aucune option disponible",
321
+ enter_choice: "Entrez votre choix ({0}, ou toute autre touche pour retourner au menu principal) :",
322
+ arrow_keys_not_available: "Touches fléchées non disponibles. Entrez le numéro de sélection (1-{0}) :",
323
+ enter_choice_prompt: "[>] Entrez votre choix (1-2, ou toute autre touche pour retourner au menu principal) : "
324
+ },
325
+
326
+ // Processus de lancement
327
+ launch: {
328
+ starting: "Lancement de Claude Code...",
329
+ command: "Commande : {0}",
330
+ run_in_terminal: "Claude s'exécutera dans le terminal actuel.",
331
+ launcher_exit: "Le lanceur va quitter pour transférer le contrôle à Claude.",
332
+ no_active_api: "Aucune API tierce active",
333
+ no_active_api_desc: "Aucune API tierce n'est actuellement active.",
334
+ add_configure_first: "Veuillez d'abord ajouter et configurer une API, ou basculer vers une existante.",
335
+ press_key_return: "Appuyez sur n'importe quelle touche pour retourner au menu principal...",
336
+ environment_variables: "Variables d'environnement :",
337
+ using_third_party_api: "Utilisation de la configuration d'API tierce",
338
+ deepseek_optimizations: "Optimisations DeepSeek activées :",
339
+ extended_timeout: "Délai d'expiration étendu (600s)",
340
+ non_essential_disabled: "Trafic non essentiel désactivé",
341
+ press_key_return: "Appuyez sur n'importe quelle touche pour retourner au menu principal..."
342
+ },
343
+
344
+ // Messages d'interface utilisateur supplémentaires
345
+ ui: {
346
+ general: {
347
+ after_skipping_password_setup: "Après avoir ignoré la configuration du mot de passe :",
348
+ file_path_empty: "Le chemin du fichier ne peut pas être vide",
349
+ max_attempts_import_cancelled: "Nombre maximum de tentatives atteint. Import annulé.",
350
+ max_attempts_import_failed: "Nombre maximum de tentatives atteint. Import échoué.",
351
+ check_file_path_json: "💡 Veuillez vérifier le chemin du fichier et vous assurer qu'il s'agit d'un fichier JSON valide",
352
+ launcher_version: "Claude Launcher v2.0.0",
353
+ press_key_return_menu: "Appuyez sur n'importe quelle touche pour retourner au menu...",
354
+ add_apis_first: "Vous devez d'abord ajouter quelques API.",
355
+ press_any_key_continue: "Appuyez sur n'importe quelle touche pour continuer...",
356
+ currently_active_api: "API actuellement active :",
357
+ confirm_delete_api: "Êtes-vous sûr de vouloir supprimer cette configuration d'API ?",
358
+ action_cannot_undone: "Cette action ne peut pas être annulée !",
359
+ type_exit_cancel: "Tapez \"exit\" à n'importe quelle invite pour annuler",
360
+ type_exit_cancel_setup: "Tapez \"exit\" pour annuler la configuration",
361
+ press_y_confirm: "Appuyez sur Y pour confirmer, toute autre touche pour annuler...",
362
+ max_attempts_password_failed: "Nombre maximum de tentatives atteint. Configuration du mot de passe échouée.",
363
+ passwords_mismatch: "Les mots de passe ne correspondent pas, veuillez réessayer",
364
+ password_skip_consequences: [
365
+ "La fonctionnalité d'import/export sera définitivement désactivée",
366
+ "Impossible de sauvegarder ou migrer les configurations d'API",
367
+ "Cette décision ne peut pas être annulée"
368
+ ],
369
+ import_function_description: "Description de la fonction d'import :",
370
+ import_description_items: [
371
+ "L'import lit un fichier JSON depuis le chemin de fichier spécifié",
372
+ "Les données d'import seront fusionnées avec la configuration actuelle (pas d'écrasement)",
373
+ "Les configurations d'API dupliquées seront automatiquement ignorées"
374
+ ],
375
+ file_input_required: "Entrée de fichier requise :",
376
+ file_input_items: [
377
+ "Fournissez le chemin complet vers votre fichier de configuration JSON",
378
+ "Le fichier doit être un fichier JSON valide avec l'extension .json",
379
+ "Le fichier sera validé avant l'import"
380
+ ],
381
+ validating_file: "🔍 Validation du fichier...",
382
+ file_validation_successful: "✓ Validation du fichier réussie",
383
+ import_successful: "✓ Configuration importée avec succès !",
384
+ import_statistics: "📊 Statistiques d'import :",
385
+ import_stats_items: [
386
+ "Importé avec succès : {0} configurations d'API",
387
+ "Doublons ignorés : {1} configurations d'API",
388
+ "Configuration fusionnée avec les données existantes",
389
+ "Fichier source : {0}"
390
+ ],
391
+ import_tips: [
392
+ "💡 Veuillez vérifier le contenu et le format du fichier"
393
+ ],
394
+ goodbye: "👋 Au revoir !",
395
+ configured_apis: "API configurées :",
396
+ press_continue_provider_selection: "Appuyez sur n'importe quelle touche pour continuer vers la sélection du fournisseur...",
397
+
398
+ // Sections de configuration d'API
399
+ add_new_api_title: "🔗 Ajouter une nouvelle configuration d'API tierce",
400
+ security_privacy_info: "🔒 Informations de sécurité et confidentialité :",
401
+ security_items: [
402
+ "Toutes les clés d'API sont chiffrées en utilisant le chiffrement AES-256-CBC",
403
+ "La clé de chiffrement est dérivée de données spécifiques à la machine",
404
+ "Vos clés d'API sont stockées localement uniquement sur cette machine",
405
+ "Les clés ne peuvent pas être déchiffrées sur d'autres machines",
406
+ "Aucune donnée n'est envoyée aux serveurs externes sauf vos appels d'API"
407
+ ],
408
+ configuration_tips: "💡 Conseils de configuration :",
409
+ config_tip_items: [
410
+ "URL de base : Le point de terminaison de l'API (ex. https://api.example.com)",
411
+ "Jeton d'authentification : Votre clé d'API ou jeton d'authentification",
412
+ "Modèle : Le modèle d'IA à utiliser (ex. claude-3-sonnet-20240229)"
413
+ ],
414
+ all_providers_compatible: "💡 Tous les fournisseurs listés utilisent le format d'API compatible Anthropic",
415
+ using_custom_provider: "✓ Utilisation de la configuration de fournisseur personnalisé",
416
+ suggestions: "Suggestions :",
417
+ current_password_strength: "Force actuelle du mot de passe : {0}",
418
+ enter_json_file_path_attempt: "[>] Entrez le chemin du fichier JSON (tentative {0}/{1}) : ",
419
+ currently_active_api: "API actuellement active",
420
+ file_validation_failed: "Échec de la validation du fichier : {0}",
421
+ model_name_prompt: "[>] Nom du modèle : ",
422
+ provider_selection_required: "Veuillez sélectionner un fournisseur (1-{0})",
423
+
424
+ // Sélection du fournisseur
425
+ compatible_providers_title: "📋 Fournisseurs d'API compatibles Claude Code :",
426
+ provider_anthropic: "🎯 Anthropic (Officiel)",
427
+ provider_anthropic_desc: "API Anthropic officielle - Entièrement compatible",
428
+ provider_moonshot: "✅ Moonshot AI (Kimi-K2)",
429
+ provider_moonshot_desc: "Moonshot AI - Fournit une API compatible Anthropic",
430
+ provider_deepseek: "✅ DeepSeek (DeepSeek V3/V3.1)",
431
+ provider_deepseek_desc: "DeepSeek AI - Point de terminaison compatible Anthropic",
432
+ provider_custom: "✅ API personnalisée compatible Anthropic",
433
+ provider_custom_desc: "Serveur personnalisé avec API compatible Anthropic",
434
+ select_provider_prompt: "[>] Sélectionner le fournisseur (1-{0}) ou appuyez sur ESC pour annuler : ",
435
+
436
+ // Configuration du fournisseur
437
+ selected_provider: "✓ Sélectionné : {0}",
438
+ recommended_base_url: "URL de base recommandée : {0}",
439
+ reference_base_url: "URL de base de référence : {0}",
440
+ api_base_url_prompt: "[>] URL de base de l'API : ",
441
+ base_url_required: "L'URL de base est requise pour les fournisseurs personnalisés",
442
+ press_enter_default_url: "[>] Appuyez sur Entrée pour utiliser la valeur par défaut ou entrez une URL personnalisée : ",
443
+ expected_format: "Format attendu : {0}",
444
+ auth_token_prompt: "[>] Jeton d'authentification : ",
445
+ edit_url_hint: "(Vous pouvez éditer l'URL ci-dessus en tapant)",
446
+
447
+ // Sélection du modèle
448
+ suggested_models: "Modèles suggérés :",
449
+ select_model_prompt: "[>] Sélectionner le modèle (1-{0}) ou entrer personnalisé : ",
450
+ invalid_model_selection: "❌ Sélection invalide. Veuillez entrer un nombre entre 1-{0} ou un nom de modèle personnalisé",
451
+ invalid_provider_selection: "❌ Sélection invalide. Veuillez entrer un nombre entre 1-{0} ou appuyez sur Entrée pour personnalisé",
452
+ invalid_provider_number: "❌ Sélection invalide. Veuillez entrer un nombre entre 1-{0}",
453
+ api_name_prompt: "[>] Nom de l'API (optionnel, pour identification) : ",
454
+ replace_url_model_note: "Note : Remplacez l'URL et le modèle par les détails de votre serveur réel",
455
+
456
+ // Gestion des API
457
+ select_api_remove: "[!] Sélectionner l'API à supprimer :",
458
+ navigate_remove_instructions: "Utilisez ↑↓ pour naviguer, Entrée pour supprimer, ESC pour retourner au menu principal",
459
+ confirm_deletion_prompt: "[?] Confirmer la suppression (y/N) : ",
460
+ navigate_activate_instructions: "Utilisez ↑↓ pour naviguer, Entrée pour activer, ESC pour retourner au menu principal",
461
+ summary: "Résumé :",
462
+
463
+ // Options de confirmation d'ignorance
464
+ confirm_skip_option: "→ Je confirme ignorer",
465
+ reconsider_option: "Reconsidérer, retourner à la configuration du mot de passe",
466
+
467
+ // Détails des exigences du mot de passe
468
+ password_requirements_title: "🔒 Exigences du mot de passe :",
469
+ password_requirements_list: [
470
+ "Au moins 6 caractères de long",
471
+ "Au moins 2 des types de caractères suivants :",
472
+ " • Lettres majuscules (A-Z)",
473
+ " • Lettres minuscules (a-z)",
474
+ " • Chiffres (0-9)",
475
+ " • Caractères spéciaux (!@#$%^&*()_+-=[]{}etc.)",
476
+ "Caractères ASCII uniquement (pas d'espaces ou de caractères inhabituels)",
477
+ "Ne peut pas contenir de motifs faibles courants",
478
+ "Force minimale du mot de passe : Bon (les mots de passe faibles et très faibles sont rejetés)"
479
+ ],
480
+ example_strong_password: "Exemple de mot de passe fort : {0}",
481
+ new_password_attempt: "Nouveau mot de passe (tentative {0}/{1}) : "
482
+ }
483
+ },
484
+
485
+ // Statistiques et informations
486
+ statistics: {
487
+ title: "Statistiques d'API",
488
+ total_apis: "Total des API : {0}",
489
+ active_api: "API active : {0}",
490
+ most_used: "API la plus utilisée : {0}",
491
+ total_usage: "Utilisation totale : {0} fois",
492
+ no_usage: "Aucune utilisation enregistrée"
493
+ },
494
+
495
+ // Mises à jour de version
496
+ version: {
497
+ update_available: "Nouvelle version disponible : v{0} (actuelle : v{1})",
498
+ install_command: "Exécutez npm update -g @kikkimo/claude-launcher pour mettre à jour",
499
+ checking_updates: "Vérification des mises à jour...",
500
+ update_failed: "Échec de la vérification des mises à jour",
501
+ up_to_date: "Déjà à jour",
502
+ skip_version: "Ignorer cette version",
503
+ current_version_info: "Actuelle : v{0} | npm dernière : v{1}",
504
+ npm_package_url: "paquet npm : {0}",
505
+ always_show_mode: "Mode d'affichage de version : Toujours afficher",
506
+ update_only_mode: "Mode d'affichage de version : Mises à jour uniquement"
507
+ },
508
+
509
+ // Fonction de vérification de version
510
+ version_check: {
511
+ title: "Vérification de mise à jour de version",
512
+ checking: "Vérification du registre npm...",
513
+ please_wait: "Veuillez patienter",
514
+ error: "Échec de la vérification : {0}",
515
+ error_tips: "Conseils : Vérifiez la connexion réseau ou réessayez plus tard",
516
+ update_available: "🎉 Nouvelle version trouvée !",
517
+ current_version: "Version actuelle : v{0}",
518
+ latest_version: "Dernière version : v{0}",
519
+ update_command: "Commande de mise à jour : npm update -g @kikkimo/claude-launcher",
520
+ up_to_date: "Vous utilisez la dernière version",
521
+ unexpected_error: "Erreur inattendue survenue pendant la vérification"
522
+ }
523
+ };