386f4ff265
El dolor: para actualizar cada source hay que saltar a la app del banco, copiar/ memorizar el valor y volver. iOS no permite ventanas flotantes editables (PiP es solo vídeo), así que se resuelve con las dos vías sancionadas: Share Extension (target nuevo PortfolioJournalQuickUpdate): - Al compartir texto desde CUALQUIER app aparece "Portfolio Journal": mini-form sobre la app anfitriona con el importe pre-parseado del texto compartido y la siguiente source pendiente del mes preseleccionada. Guardar → sigues en el banco. - Sin Core Data en la extensión: la app publica un espejo de sources activas en el App Group (SharedQuickUpdateSync.refreshMirror) y la extensión encola PendingQuickUpdate; la app los convierte en Snapshots reales al activarse (ingestPending). ExtSharedBridge duplica el contrato (keep-in-sync comentado). - Parser de importes tolerante a locales (12.345,67 € / $1,234.56 / 1234,5). - UI localizada en los 7 idiomas (lproj propios de la extensión). - pbxproj: target app-extension completo (sync group, embed, dependency, configs) replicando el patrón del widget. Entitlements solo con App Group. Clipboard auto-advance en Quick Update: - Al volver a la app con un importe copiado: banner de un tap "Pegar X en <source>" que rellena la siguiente source vacía y avanza el foco a la siguiente. - Badge NEXT en la fila activa; no repite sugerencias del mismo clipboard. Script de upload: -allowProvisioningUpdates + API key también en el archive para que el bundle id nuevo de la extensión se registre automáticamente. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015qUZrBusG82T37R7PeokqJ
12 lines
504 B
Plaintext
12 lines
504 B
Plaintext
"ext_title" = "Actualización rápida";
|
|
"ext_cancel" = "Cancelar";
|
|
"ext_save" = "Guardar";
|
|
"ext_amount_section" = "Importe";
|
|
"ext_amount_placeholder" = "0,00";
|
|
"ext_source_section" = "Fuente";
|
|
"ext_already_updated" = "Actualizada este mes";
|
|
"ext_saved_title" = "¡Guardado!";
|
|
"ext_saved_body" = "Aparecerá en Portfolio Journal la próxima vez que la abras.";
|
|
"ext_no_sources_title" = "Aún no hay fuentes";
|
|
"ext_no_sources_body" = "Abre Portfolio Journal una vez para que tus fuentes aparezcan aquí.";
|