Release 1.4.0 (build 31): retención, quick update, streak, what's new

- 1A: Notificación mensual de resumen de portfolio (día 5 de cada mes)
- 1B: Badge de racha mensual en Dashboard (streak counter)
- 1C: Empty states mejorados en Goals y Journal con CTAs claros
- 2A: Quick Update sheet — actualiza todas las fuentes desde una pantalla
- 2B: Notificación batch update redirige al Quick Update sheet
- 2C: Widget deep link portfoliojournal://quickupdate abre Quick Update
- 3A: App Store version check banner en Settings
- 3C: What's New sheet en primer launch de versión nueva
- Localización completa en 7 idiomas para todas las nuevas strings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alexandrev-tibco
2026-05-21 23:09:36 +02:00
parent 773da6800b
commit b48a47ce10
41 changed files with 2659 additions and 483 deletions
@@ -292,3 +292,95 @@
"Best Contributor" = "Meilleur contributeur";
"Update Check-in" = "Mettre à jour le check-in";
"Completed %@" = "Terminé %@";
// MARK: - Missing keys added (1.3.x)
"Checking…" = "Vérification…";
"Clear Filters" = "Effacer les filtres";
"Force Upload to iCloud" = "Forcer l'envoi vers iCloud";
"No export yet" = "Pas encore exporté";
"Not synced yet" = "Pas encore synchronisé";
"Refresh" = "Actualiser";
"Search sources" = "Rechercher des sources";
"Syncing with iCloud..." = "Synchronisation avec iCloud...";
"Uploading..." = "Envoi en cours...";
"Verify iCloud Setup" = "Vérifier la configuration iCloud";
"add_source_name_footer" = "Une source est tout investissement que vous souhaitez suivre : actions, ETFs, comptes d'épargne, immobilier, crypto et plus.";
"add_source_name_placeholder" = "ex. ETF MSCI World, Livret A, Appartement...";
"categories_empty" = "Aucune catégorie pour l'instant.";
"category_has_sources_warning" = "Impossible de supprimer une catégorie qui contient des sources. Supprimez ou réaffectez d'abord toutes les sources.";
"category_name_placeholder" = "ex. Fonds d'urgence";
"chart_yoy_empty" = "Ajoutez plus de snapshots sur différentes années pour voir la comparaison.";
"chart_yoy_title" = "Année par année";
"checking_icloud" = "Vérification d'iCloud...";
"contributions_vs_returns_invested" = "Investi";
"contributions_vs_returns_returns" = "Rendement du marché";
"contributions_vs_returns_title" = "Investi vs. Rendement";
"csv_enter_value" = "Saisir une valeur";
"csv_field_category" = "Catégorie";
"csv_field_contribution" = "Contribution";
"csv_field_date" = "Date";
"csv_field_notes" = "Notes";
"csv_field_source" = "Nom de la source (requis)";
"csv_field_value" = "Valeur (requise)";
"csv_mapping_subtitle" = "Associez vos colonnes CSV aux champs de Portfolio Journal";
"csv_no_column" = "— Non mappé —";
"csv_no_date_hint" = "Toutes les lignes seront importées comme un snapshot d'aujourd'hui.";
"csv_optional_section" = "Champs optionnels";
"csv_preview_section" = "Aperçu CSV";
"csv_required_section" = "Champs obligatoires";
"csv_use_today" = "Utiliser la date du jour";
"goal_achieved_notification_body" = "Vous avez atteint votre objectif : %@";
"goal_achieved_notification_title" = "Objectif atteint ! 🎉";
"goal_archive" = "Archiver";
"goal_delete_confirm" = "Supprimer";
"goal_delete_message" = "Cet objectif sera définitivement supprimé. Cette action est irréversible.";
"goal_delete_title" = "Supprimer l'objectif";
"goal_unarchive" = "Restaurer";
"goals_all_active_achieved" = "Tous les objectifs actifs sont atteints.";
"goals_empty_archived" = "Aucun objectif archivé.";
"goals_filter_active" = "Actifs";
"goals_filter_all" = "Tous";
"goals_filter_archived" = "Archivés";
"icloud_check_description" = "Si vous avez des données sur un autre appareil, activez iCloud pour les restaurer ici.";
"icloud_check_title" = "Vous utilisez déjà Portfolio Journal ?";
"icloud_enabled_description" = "Fermez l'application et rouvrez-la. Vos données se chargeront automatiquement depuis iCloud.";
"icloud_enabled_title" = "iCloud activé";
"monthly_checkin_notification_body" = "Enregistrez les valeurs de ce mois et suivez la croissance de votre portefeuille.";
"monthly_checkin_notification_title" = "C'est l'heure de votre mise à jour mensuelle";
"onboarding_add_first_source" = "Ajouter mon premier investissement";
"onboarding_import_data" = "Importer des données existantes";
"onboarding_quickstart_subtitle" = "Ajoutez votre première source d'investissement pour commencer à suivre votre portefeuille.";
"onboarding_quickstart_title" = "Presque prêt";
"reengagement_body" = "Quelques minutes suffisent pour rester au top de vos investissements.";
"reengagement_title" = "Votre portefeuille vous attend";
"snapshot_duplicate_add" = "Ajouter quand même";
"snapshot_duplicate_message" = "Vous avez déjà un snapshot pour ce mois. Voulez-vous en ajouter un autre ?";
"snapshot_duplicate_replace" = "Remplacer l'existant";
"snapshot_duplicate_title" = "Snapshot déjà existant";
"sources_filter_all" = "Toutes";
// MARK: - 1.4.0 Features
"monthly_summary_notification_title" = "Votre résumé mensuel de portefeuille";
"monthly_summary_notification_body" = "Vérifiez comment vos investissements ont performé ce mois-ci.";
"streak_badge" = "Série de %d mois";
"goals_empty_add_cta" = "Ajouter mon premier objectif";
"journal_empty_title" = "Aucune entrée pour l'instant";
"journal_empty_body" = "Les mises à jour de snapshots créent automatiquement des entrées mensuelles. Ajoutez votre première source pour commencer.";
"quick_update_title" = "Mise à jour rapide";
"quick_update_section_header" = "Saisir les valeurs actuelles";
"quick_update_section_footer" = "Seules les sources avec une valeur saisie seront mises à jour.";
"quick_update_placeholder" = "Nouvelle valeur";
"quick_update_save" = "Tout enregistrer";
"quick_update_no_sources" = "Aucune source";
"quick_update_no_sources_body" = "Ajoutez d'abord des sources d'investissement pour utiliser la mise à jour rapide.";
"update_available_title" = "Mise à jour disponible";
"update_available_body" = "La version %@ est disponible sur l'App Store.";
"whats_new_title" = "Nouveautés dans 1.4";
"whats_new_subtitle" = "Améliorations pour vous aider à rester sur la bonne voie.";
"whats_new_quick_update_title" = "Mise à jour rapide du portefeuille";
"whats_new_quick_update_body" = "Mettez à jour toutes vos sources depuis un seul écran en un geste.";
"whats_new_streak_title" = "Série de mises à jour";
"whats_new_streak_body" = "Suivez le nombre de mois consécutifs où vous avez tenu votre portefeuille à jour.";
"whats_new_goals_title" = "Objectifs et journal plus intelligents";
"whats_new_goals_body" = "Les états vides améliorés vous aident à démarrer plus rapidement.";
"whats_new_continue" = "C'est parti !";