1.6.0 #10 ocultar saldos + Face ID · #11 widget interactivo + Siri

#10 Ocultar saldos: BalancePrivacyManager (balancesHidden + requireBiometricToReveal),
modifier .hiddenBalance() (blur + máscara de bullets, ancho estable), botón ojo en Dashboard,
revelar con Face ID vía AppLockService, sección Privacidad en Settings. Aplicado a total
portfolio, forecast, sources, goals, monthly summary.

#11 Siri/App Intents: NetWorthIntent ('¿cuál es mi patrimonio?' → 'Tu patrimonio es X'),
StreakIntent, 5 AppShortcuts con frases. Widget interactivo iOS 17: botón Refresh
(Button(intent:) → reloadAllTimelines, in-process) en medium/large, gated #available(iOS 17).
Reader read-only del AppGroup. Dialogs Siri refactorizados a String(localized:).

Localización: strings de #10 y de Siri en los 7 idiomas.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L2p3gUZRNWW388rWFRjiU7
This commit is contained in:
alexandrev-tibco
2026-07-25 17:52:09 +02:00
parent 648c2bd805
commit 326be6db04
20 changed files with 587 additions and 8 deletions
@@ -628,3 +628,20 @@
"Weekly" = "Hebdomadaire";
"Monthly" = "Mensuel";
"Last auto backup" = "Dernière sauvegarde auto";
/* 1.6.0 hide balances */
"Hide balances" = "Masquer les soldes";
"Show balances" = "Afficher les soldes";
"Balance hidden" = "Solde masqué";
"Reveal your balances" = "Afficher vos soldes";
"Privacy" = "Confidentialité";
"Hide Balances" = "Masquer les soldes";
"Require Face ID to Reveal" = "Exiger Face ID pour afficher";
"Hide all monetary amounts behind a blur. Great for using the app in public or taking screenshots. Optionally require Face ID to reveal them." = "Masque tous les montants derrière un flou. Idéal pour utiliser l'app en public ou faire des captures. Exigez Face ID pour les afficher, en option.";
/* 1.6.0 Siri intents */
"intent_networth_empty" = "Tu n'as encore enregistré aucune valeur de portefeuille.";
"intent_networth_dialog" = "Ton patrimoine est de %@.";
"intent_streak" = "Tu es sur une série de %d mois.";
"intent_streak_with_date" = "Tu es sur une série de %d mois. Ton dernier relevé date du %@.";
"intent_streak_none" = "Tu n'as pas encore de série active. Enregistre une valeur pour en commencer une.";