Add analytics tracking, overview PDF export, and charger updates

Add first launch event, share tracking for overview PDF and diagram
exports. Add SystemOverviewPDFExporter for A4 PDF generation. Update
charger model with new configuration fields and localization for all
5 languages. Refresh app icon assets and CLAUDE.md build instructions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Lange-Hegermann
2026-03-25 17:45:54 +01:00
parent 5a5e8b8fbe
commit 03878b9507
19 changed files with 1698 additions and 28 deletions

View File

@@ -330,3 +330,55 @@
"cable.pro.trial.duration.month.plural" = "%@-month";
"cable.pro.trial.duration.year.singular" = "%@-year";
"cable.pro.trial.duration.year.plural" = "%@-year";
// MARK: - PDF Overview Export
"overview.pdf.loads.section" = "Loads";
"overview.pdf.batteries.section" = "Batteries";
"overview.pdf.chargers.section" = "Chargers";
"overview.pdf.diagram.chargers" = "CHARGERS";
"overview.pdf.diagram.batteries" = "BATTERY BANK";
"overview.pdf.diagram.loads" = "LOADS";
"overview.pdf.diagram.no.batteries" = "No batteries";
"overview.pdf.diagram.usable" = "Usable";
"overview.pdf.summary.title" = "System Summary";
"overview.pdf.summary.runtime" = "Estimated Runtime";
"overview.pdf.summary.chargetime" = "Charge Time";
"overview.pdf.summary.totalpower" = "Total Power";
"overview.pdf.summary.totalcurrent" = "Total Current";
"overview.pdf.summary.batterycapacity" = "Battery Capacity";
"overview.pdf.summary.chargerpower" = "Charger Power";
"overview.pdf.load.voltage" = "Voltage";
"overview.pdf.load.current" = "Current";
"overview.pdf.load.power" = "Power";
"overview.pdf.load.length" = "Cable Length";
"overview.pdf.load.cable" = "Cable Size";
"overview.pdf.load.vdrop" = "Voltage Drop";
"overview.pdf.load.ploss" = "Power Loss";
"overview.pdf.load.fuse" = "Fuse";
"overview.pdf.battery.chemistry" = "Chemistry";
"overview.pdf.battery.voltage" = "Voltage";
"overview.pdf.battery.capacity" = "Capacity";
"overview.pdf.battery.usable" = "Usable Capacity";
"overview.pdf.battery.energy" = "Energy";
"overview.pdf.battery.usableenergy" = "Usable Energy";
"overview.pdf.charger.input" = "Input Voltage";
"overview.pdf.charger.output" = "Output Voltage";
"overview.pdf.charger.current" = "Max Current";
"overview.pdf.charger.power" = "Power";
"overview.pdf.continued" = "Continued";
"overview.pdf.page.number" = "Page %d";
"overview.share.button.title" = "Share System Overview";
"overview.share.button.subtitle" = "Export as PDF";
"overview.share.error.title" = "Export Failed";
// MARK: - Charger Power Source Type
"charger.editor.source.type" = "Power Source";
"charger.source.shore" = "Shore Power";
"charger.source.solar" = "Solar";
"charger.source.wind" = "Wind";
"charger.source.generator" = "Generator";
// MARK: - Share Menu
"overview.share.diagram" = "Wiring Diagram";
"overview.share.pdf" = "Full Report (PDF)";
"overview.share.diagram.error" = "Could not generate diagram. Check your internet connection.";