10f6d0ca20
iCloud sync: - Force viewContext.refreshAllObjects() on remote change notifications so data from other devices is picked up immediately without app restart - Call refreshFromCloudKit() on foreground to merge any changes made while the device was inactive - Wait up to 10s for initial CloudKit sync on launch before showing onboarding (shows "Checking iCloud..." during the wait) - New OnboardingICloudCheckView: shown on fresh installs with iCloud available, lets user restore from iCloud before starting onboarding from scratch Localization: - Added de, fr, it, ja, pt-BR lproj folders - New iCloud onboarding strings in en + es-ES (+ button literals) ASO metadata (fastlane): - Updated en-US: new subtitle, keywords, description (fixed "no cloud sync" claim), promotional text, release notes - Added full metadata for es-ES, de-DE, fr-FR, it, ja, pt-BR (63 files total) - All keyword fields validated ≤100 Unicode chars Infrastructure: - Gemfile + Gemfile.lock for fastlane - Scripts/archive_and_upload_appstore.sh for CI/CD Version: 1.2.1 (build 7) Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
295 lines
14 KiB
Plaintext
295 lines
14 KiB
Plaintext
"app_name" = "Portfolio Journal";
|
|
"ok" = "OK";
|
|
"cancel" = "Annuler";
|
|
"save" = "Enregistrer";
|
|
"delete" = "Supprimer";
|
|
"edit" = "Modifier";
|
|
"add" = "Ajouter";
|
|
"done" = "Terminé";
|
|
"close" = "Fermer";
|
|
"continue" = "Continuer";
|
|
"skip" = "Passer";
|
|
"error" = "Erreur";
|
|
"success" = "Succès";
|
|
"loading" = "Chargement...";
|
|
"loading_data" = "Chargement de vos données...";
|
|
"tab_dashboard" = "Accueil";
|
|
"tab_sources" = "Sources";
|
|
"tab_charts" = "Graphiques";
|
|
"tab_settings" = "Réglages";
|
|
"dashboard_title" = "Accueil";
|
|
"total_portfolio_value" = "Valeur totale du portefeuille";
|
|
"today" = "aujourd'hui";
|
|
"returns" = "Rendements";
|
|
"by_category" = "Par catégorie";
|
|
"pending_updates" = "Mises à jour en attente";
|
|
"see_all" = "Voir tout";
|
|
"sources_title" = "Sources";
|
|
"add_source" = "Ajouter une source";
|
|
"source_name" = "Nom de la source";
|
|
"select_category" = "Sélectionner une catégorie";
|
|
"initial_value" = "Valeur initiale";
|
|
"initial_value_optional" = "Valeur initiale (optionnelle)";
|
|
"reminder_frequency" = "Fréquence des rappels";
|
|
"source_limit_warning" = "Limite de sources atteinte. Passez à Premium pour des sources illimitées.";
|
|
"no_sources" = "Aucune source d'investissement";
|
|
"no_sources_message" = "Ajoutez votre première source d'investissement pour commencer à suivre votre portefeuille.";
|
|
"add_snapshot" = "Ajouter un snapshot";
|
|
"edit_snapshot" = "Modifier le snapshot";
|
|
"snapshot_date" = "Date";
|
|
"snapshot_value" = "Valeur";
|
|
"snapshot_contribution" = "Contribution";
|
|
"contribution_optional" = "Contribution (optionnelle)";
|
|
"notes" = "Notes";
|
|
"notes_optional" = "Notes (optionnelles)";
|
|
"previous_value" = "Précédent : %@";
|
|
"change_from_previous" = "Variation par rapport au précédent";
|
|
"charts_title" = "Graphiques";
|
|
"evolution" = "Évolution";
|
|
"allocation" = "Allocation";
|
|
"performance" = "Performance";
|
|
"drawdown" = "Drawdown";
|
|
"volatility" = "Volatilité";
|
|
"prediction" = "Prévision";
|
|
"portfolio_evolution" = "Évolution du portefeuille";
|
|
"asset_allocation" = "Allocation des actifs";
|
|
"performance_by_category" = "Performance par catégorie";
|
|
"drawdown_analysis" = "Analyse du drawdown";
|
|
"prediction_12_month" = "Prévision sur 12 mois";
|
|
"not_enough_data" = "Pas assez de données";
|
|
"cagr" = "CAGR";
|
|
"twr" = "TWR";
|
|
"max_drawdown" = "Drawdown max";
|
|
"sharpe_ratio" = "Ratio de Sharpe";
|
|
"win_rate" = "Taux de réussite";
|
|
"avg_monthly" = "Moyenne mensuelle";
|
|
"best_month" = "Meilleur mois";
|
|
"worst_month" = "Pire mois";
|
|
"premium" = "Premium";
|
|
"upgrade_to_premium" = "Passer à Premium";
|
|
"unlock_full_potential" = "Débloquez tout le potentiel";
|
|
"one_time_purchase" = "Achat unique";
|
|
"includes_family_sharing" = "Inclut le partage familial";
|
|
"upgrade_now" = "Passer maintenant";
|
|
"restore_purchases" = "Restaurer les achats";
|
|
"premium_active" = "Premium actif";
|
|
"premium_feature" = "Fonction Premium";
|
|
"unlock" = "Débloquer";
|
|
"feature_unlimited_sources" = "Sources illimitées";
|
|
"feature_unlimited_sources_desc" = "Suivez autant d'investissements que vous le souhaitez";
|
|
"feature_full_history" = "Historique complet";
|
|
"feature_full_history_desc" = "Accédez à tout votre historique d'investissement";
|
|
"feature_advanced_charts" = "Graphiques avancés";
|
|
"feature_advanced_charts_desc" = "5 types de graphiques analytiques détaillés";
|
|
"feature_predictions" = "Prévisions";
|
|
"feature_predictions_desc" = "Prévisions IA sur 12 mois";
|
|
"feature_export" = "Exporter les données";
|
|
"feature_export_desc" = "Export vers CSV et JSON";
|
|
"feature_no_ads" = "Sans publicité";
|
|
"feature_no_ads_desc" = "Expérience sans publicité à vie";
|
|
"paywall_benefit_history_title" = "Votre historique complet";
|
|
"paywall_benefit_history_subtitle" = "Chaque snapshot, contribution et gain depuis le premier jour";
|
|
"paywall_benefit_charts_title" = "Des graphiques qui révèlent des tendances";
|
|
"paywall_benefit_charts_subtitle" = "Allocation, drawdown, performance, le tout au même endroit";
|
|
"paywall_benefit_forecasts_title" = "Prévisions à 12 mois";
|
|
"paywall_benefit_forecasts_subtitle" = "Voyez où votre portefeuille pourrait aller";
|
|
"paywall_benefit_noads_title" = "Aucune pub, jamais";
|
|
"paywall_benefit_noads_subtitle" = "Une expérience propre et centrée, sans distractions";
|
|
"settings_title" = "Réglages";
|
|
"subscription" = "Abonnement";
|
|
"notifications" = "Notifications";
|
|
"default_reminder_time" = "Heure de rappel par défaut";
|
|
"data" = "Données";
|
|
"export_data" = "Exporter les données";
|
|
"total_sources" = "Nombre total de sources";
|
|
"total_snapshots" = "Nombre total de snapshots";
|
|
"storage_used" = "Stockage utilisé";
|
|
"about" = "À propos";
|
|
"version" = "Version";
|
|
"privacy_policy" = "Politique de confidentialité";
|
|
"terms_of_service" = "Conditions d'utilisation";
|
|
"support" = "Support";
|
|
"rate_app" = "Noter l'app";
|
|
"danger_zone" = "Zone de danger";
|
|
"reset_all_data" = "Réinitialiser toutes les données";
|
|
"reset_confirmation" = "Cela supprimera définitivement toutes vos données d'investissement. Cette action est irréversible.";
|
|
"frequency_monthly" = "Mensuel";
|
|
"frequency_quarterly" = "Trimestriel";
|
|
"frequency_semiannual" = "Semestriel";
|
|
"frequency_annual" = "Annuel";
|
|
"frequency_custom" = "Personnalisé";
|
|
"frequency_never" = "Jamais";
|
|
"every_n_months" = "Tous les %d mois";
|
|
"category_stocks" = "Actions";
|
|
"category_bonds" = "Obligations";
|
|
"category_real_estate" = "Immobilier";
|
|
"category_crypto" = "Crypto";
|
|
"category_cash" = "Espèces";
|
|
"category_etfs" = "ETF";
|
|
"category_retirement" = "Retraite";
|
|
"category_other" = "Autre";
|
|
"uncategorized" = "Non catégorisé";
|
|
"time_1m" = "1M";
|
|
"time_3m" = "3M";
|
|
"time_6m" = "6M";
|
|
"time_1y" = "1A";
|
|
"time_all" = "Tout";
|
|
"export_format" = "Sélectionner le format";
|
|
"export_csv" = "CSV";
|
|
"export_csv_desc" = "Compatible avec Excel et Google Sheets";
|
|
"export_json" = "JSON";
|
|
"export_json_desc" = "Structure complète pour sauvegarde";
|
|
"onboarding_track_title" = "Suivez vos investissements";
|
|
"onboarding_track_desc" = "Surveillez toutes vos sources d'investissement au même endroit. Actions, obligations, immobilier, crypto et plus.";
|
|
"onboarding_visualize_title" = "Visualisez votre croissance";
|
|
"onboarding_visualize_desc" = "De beaux graphiques montrent l'évolution, l'allocation et la performance de votre portefeuille dans le temps.";
|
|
"onboarding_reminders_title" = "Ne manquez jamais une mise à jour";
|
|
"onboarding_reminders_desc" = "Définissez des rappels pour suivre régulièrement vos investissements. Mensuels, trimestriels ou personnalisés.";
|
|
"onboarding_sync_title" = "Synchronisez partout";
|
|
"onboarding_sync_desc" = "Vos données se synchronisent automatiquement via iCloud sur tous vos appareils Apple.";
|
|
"get_started" = "Commencer";
|
|
"onboarding_clarity_title" = "Sachez exactement où vous en êtes";
|
|
"onboarding_clarity_desc" = "Voyez votre patrimoine total, vos rendements réels et votre allocation, toujours à jour.";
|
|
"onboarding_habit_title" = "5 minutes par mois suffisent";
|
|
"onboarding_habit_desc" = "Saisissez vos valeurs une fois par mois. Portfolio Journal s'occupe des calculs et montre vos progrès.";
|
|
"onboarding_calm_title" = "Ignorez le bruit. Suivez la tendance.";
|
|
"onboarding_calm_desc" = "Les variations quotidiennes ne racontent pas la vraie histoire. Votre croissance sur des mois et des années, si.";
|
|
"onboarding_goals_title" = "Atteignez vos objectifs financiers";
|
|
"onboarding_goals_desc" = "Fixez des objectifs, suivez les étapes et voyez exactement jusqu'où vous êtes arrivé.";
|
|
"error_generic" = "Une erreur s'est produite. Veuillez réessayer.";
|
|
"error_no_purchases" = "Aucun achat à restaurer";
|
|
"error_purchase_failed" = "Achat échoué : %@";
|
|
"error_export_failed" = "L'export a échoué. Veuillez réessayer.";
|
|
"placeholder_source_name" = "ex. Vanguard 401k";
|
|
"placeholder_value" = "0.00";
|
|
"placeholder_notes" = "Ajouter des notes...";
|
|
"mood_energized_title" = "En feu";
|
|
"mood_confident_title" = "Confiant";
|
|
"mood_balanced_title" = "Stable";
|
|
"mood_cautious_title" = "Prudent";
|
|
"mood_stressed_title" = "Stressé";
|
|
"mood_energized_detail" = "Je me sens imbattable";
|
|
"mood_confident_detail" = "Sur la bonne voie et serein";
|
|
"mood_balanced_detail" = "Calme et patient";
|
|
"mood_cautious_detail" = "J'observe les mouvements";
|
|
"mood_stressed_detail" = "Besoin de souffler";
|
|
"achievement_streak_3_title" = "Série de 3 mois";
|
|
"achievement_streak_3_detail" = "Vous avez gardé vos check-ins à l'heure pendant trois mois d'affilée.";
|
|
"achievement_streak_6_title" = "Série de six mois";
|
|
"achievement_streak_6_detail" = "Six check-ins consécutifs à l'heure.";
|
|
"achievement_streak_12_title" = "Une année d'élan";
|
|
"achievement_streak_12_detail" = "Une année complète sans manquer la date limite.";
|
|
"achievement_perfect_on_time_title" = "Jamais en retard";
|
|
"achievement_perfect_on_time_detail" = "Chaque check-in a été envoyé avant la date limite.";
|
|
"achievement_clutch_finish_title" = "Final serré";
|
|
"achievement_clutch_finish_detail" = "Envoyé avec quelques heures d'avance, mais toujours à temps.";
|
|
"achievement_early_bird_title" = "Lève-tôt";
|
|
"achievement_early_bird_detail" = "En moyenne, vous terminez avec une belle marge.";
|
|
"achievements_title" = "Succès";
|
|
"achievements_view_all" = "Voir tous les succès";
|
|
"achievements_nav_title" = "Succès";
|
|
"achievements_progress_title" = "Progression";
|
|
"achievements_unlocked_title" = "Débloqués";
|
|
"achievements_unlocked_empty" = "Complétez des check-ins pour débloquer des succès.";
|
|
"achievements_locked_title" = "Verrouillés";
|
|
"achievements_locked_empty" = "Tous les succès sont débloqués. Beau travail.";
|
|
"rating_accessibility" = "Note %d sur 5";
|
|
"achievements_unlocked_count" = "%d sur %d débloqués";
|
|
"last_check_in" = "Dernier check-in : %@";
|
|
"next_check_in" = "Prochain check-in : %@";
|
|
"on_time_rate" = "%@ à l'heure";
|
|
"on_time_count" = "%d/%d à l'heure";
|
|
"tightest_finish" = "Fin la plus serrée : %@ avant la date limite.";
|
|
"date_today" = "Aujourd'hui";
|
|
"date_yesterday" = "Hier";
|
|
"date_never" = "Jamais";
|
|
"calendar_event_title" = "%@: Check-in mensuel";
|
|
"calendar_event_notes" = "Ouvrez %@ et terminez votre check-in mensuel.";
|
|
"checkin_enjoying_dialog_title" = "À quel point appréciez-vous Portfolio Journal ?";
|
|
"checkin_enjoying_dialog_message" = "Félicitations pour votre nouveau succès. Votre avis nous aide à nous améliorer.";
|
|
"not_now" = "Pas maintenant";
|
|
"rating_1_star" = "1 étoile";
|
|
"rating_n_stars" = "%d étoiles";
|
|
"app_store_review_title" = "Souhaitez-vous laisser un avis sur l'App Store ?";
|
|
"app_store_review_message" = "Merci pour les 5 étoiles. Cela aide vraiment d'autres investisseurs à découvrir l'app.";
|
|
"write_review" = "Écrire un avis";
|
|
"save_1_snapshot" = "Enregistrer 1 snapshot";
|
|
"save_n_snapshots" = "Enregistrer %d snapshots";
|
|
"checkin_update_month" = "Mettre à jour %@";
|
|
"checkin_start_new" = "Commencer";
|
|
"Home" = "Accueil";
|
|
"Sources" = "Sources";
|
|
"Charts" = "Graphiques";
|
|
"Settings" = "Réglages";
|
|
"Journal" = "Journal";
|
|
"Search monthly notes" = "Rechercher des notes mensuelles";
|
|
"Monthly Check-ins" = "Check-ins mensuels";
|
|
"No monthly notes yet." = "Aucune note mensuelle pour l'instant.";
|
|
"No matching notes." = "Aucune note correspondante.";
|
|
"Jump to month" = "Aller au mois";
|
|
"Today" = "Aujourd'hui";
|
|
"Mood not set" = "Humeur non définie";
|
|
"No rating" = "Aucune note";
|
|
"No note yet." = "Pas encore de note.";
|
|
"Monthly Note" = "Note mensuelle";
|
|
"Open Full Note" = "Ouvrir la note complète";
|
|
"Duplicate Previous" = "Dupliquer le précédent";
|
|
"Save" = "Enregistrer";
|
|
"Monthly Check-in" = "Check-in mensuel";
|
|
"This Month" = "Ce mois-ci";
|
|
"No check-in yet this month" = "Aucun check-in ce mois-ci";
|
|
"Start your first check-in anytime." = "Commencez votre premier check-in quand vous voulez.";
|
|
"Mark Check-in Complete" = "Marquer le check-in comme terminé";
|
|
"Editing stays open. New check-ins unlock after 70% of the month." = "L'édition reste ouverte. Les nouveaux check-ins se débloquent après 70 % du mois.";
|
|
"Momentum & Streaks" = "Élan et séries";
|
|
"Log a check-in to start a streak" = "Enregistrez un check-in pour démarrer une série";
|
|
"Streak" = "Série";
|
|
"On-time in a row" = "À l'heure d'affilée";
|
|
"Best" = "Meilleur";
|
|
"Personal best" = "Meilleur record";
|
|
"Avg early" = "Marge moyenne";
|
|
"vs deadline" = "vs date limite";
|
|
"On-time score" = "Score de ponctualité";
|
|
"Achievements" = "Succès";
|
|
"View all achievements" = "Voir tous les succès";
|
|
"Monthly Pulse" = "Pouls mensuel";
|
|
"Optional" = "Optionnel";
|
|
"Rate this month" = "Notez ce mois";
|
|
"How did it feel?" = "Comment cela s'est-il passé ?";
|
|
"Monthly Summary" = "Résumé mensuel";
|
|
"Starting" = "Départ";
|
|
"Ending" = "Fin";
|
|
"Contributions" = "Contributions";
|
|
"Net Performance" = "Performance nette";
|
|
"Update Sources" = "Mettre à jour les sources";
|
|
"Add sources to start your monthly check-in." = "Ajoutez des sources pour commencer votre check-in mensuel.";
|
|
"Updated this cycle" = "Mis à jour sur ce cycle";
|
|
"Needs update" = "Nécessite une mise à jour";
|
|
"Snapshot Notes" = "Notes des snapshots";
|
|
"No snapshot notes for this month." = "Aucune note de snapshot pour ce mois.";
|
|
"Source" = "Source";
|
|
"Your full portfolio,\nfully clear" = "Votre portefeuille complet,\nen toute clarté";
|
|
"One payment. Every feature. Forever." = "Un paiement. Toutes les fonctionnalités. Pour toujours.";
|
|
"Get Full Access" = "Obtenir l'accès complet";
|
|
"Restore Purchases" = "Restaurer les achats";
|
|
"Payment charged to your Apple ID account." = "Le paiement sera facturé à votre compte Apple ID.";
|
|
"Terms" = "Conditions";
|
|
"Privacy" = "Confidentialité";
|
|
"· one-time · Family Sharing" = "· achat unique · Partage familial";
|
|
"Full access, one payment" = "Accès complet, un paiement";
|
|
"Unlimited sources, advanced charts & more" = "Sources illimitées, graphiques avancés et plus";
|
|
"See full access" = "Voir l'accès complet";
|
|
"Batch Update" = "Mise à jour groupée";
|
|
"Current value" = "Valeur actuelle";
|
|
"Contribution this period (optional)" = "Contribution sur cette période (optionnelle)";
|
|
"Include Contribution" = "Inclure une contribution";
|
|
"New capital added" = "Nouveau capital ajouté";
|
|
"Contribution (Optional)" = "Contribution (optionnelle)";
|
|
"Track new capital added to separate it from investment growth." = "Suivez le nouveau capital ajouté pour le distinguer de la croissance de l'investissement.";
|
|
"Monthly Highlights" = "Temps forts du mois";
|
|
"Best Performer" = "Meilleure performance";
|
|
"Worst Performer" = "Pire performance";
|
|
"Best Contributor" = "Meilleur contributeur";
|
|
"Update Check-in" = "Mettre à jour le check-in";
|
|
"Completed %@" = "Terminé %@";
|