# ── Navigation ────────────────────────────────────────────────────────────── [nav] brand = "Personal" dashboard = "Dashboard" transactions = "Transactions" portfolio = "Portfolio" goals = "Goals" property = "Property" people = "People" business = "🏢 Business" hub_back = "← Hub" [nav.analysis] reports = "Reports" projections = "Projections" tax = "Tax" networth = "Net Worth" simulator = "What If" [nav.settings] accounts_categories = "Accounts & Categories" import_csv = "Import CSV" import_guide = "Import Guide" [nav.drawer] analysis_label = "Analysis" settings_label = "Settings" [nav.theme] toggle_title = "Toggle dark/light mode" menu_aria = "Menu" # ── Homepage ───────────────────────────────────────────────────────────────── [homepage] title = "Finance Hub — Personal & Business Finance" brand = "Finance Hub" footer_tagline = "Self-hosted homelab" [homepage.nav] signin = "Sign in" personal = "Personal" business = "Business" [homepage.hero] eyebrow = "Self-hosted · Private · Open" title_line1 = "Personal wealth." title_line2 = "Business finances." subtitle = "One self-hosted platform to track your personal wealth and manage your organisation's budget — without handing your data to anyone." cta_get_started = "Get started" cta_see_inside = "See what's inside" cta_open_personal = "Open personal" cta_open_business = "Open business" [homepage.trust] data_privacy = "Your data, your server" multi_bank = "Multi-bank CSV import" dark_light = "Dark & light mode" role_access = "Role-based access" analytics = "Real-time analytics" [homepage.products.personal] badge = "Personal" name = "My Finance" desc = "Full visibility into your personal wealth — spending, investments, goals, and net worth in one place." feature_1 = "Spending dashboard & monthly trends" feature_2 = "Transactions with category budgets" feature_3 = "Investment portfolio tracking" feature_4 = "Financial goals with progress" feature_5 = "Net worth & what-if projections" feature_6 = "Tax report export" feature_7 = "Household sharing & multi-user view" cta_open = "Open app" cta_signin = "Sign in" [homepage.products.business] badge = "Business" name = "Organisations" desc = "Manage organisations, plan fiscal years, control event budgets, and keep teams financially aligned." feature_1 = "Multi-org with fiscal year lifecycle" feature_2 = "Teams with emoji avatars & roles" feature_3 = "Events with budget lines & goals" feature_4 = "Purchase requests & approval flow" feature_5 = "Ledger & bank CSV import" feature_6 = "Variance analysis per event & team" feature_7 = "End-of-year narrative report" cta_open = "Open orgs" cta_signin = "Sign in" [homepage.features.personal] section_label = "Personal Finance" section_title = "Complete visibility over your wealth" section_sub = "From daily coffee to long-term portfolio — everything in one dashboard, updated as you import." chip1_title = "Smart dashboard" chip1_desc = "Monthly income vs spending, top categories, recent transactions, and budget health at a glance." chip2_title = "Portfolio tracking" chip2_desc = "Import trades, track ISIN-mapped tickers, see P&L and allocation by asset class." chip3_title = "Goals & projections" chip3_desc = "Set savings goals, model scenarios, and see your projected net worth over time." [homepage.features.business] section_label = "Business Finance" section_title = "Budget control for your org" section_sub = "From fiscal year kick-off to the final report — with full traceability for every euro spent." chip1_title = "Fiscal year lifecycle" chip1_desc = "Plan events and budgets per year. Activate, lock, and close with an end-of-year report." chip2_title = "Request & approval flow" chip2_desc = "Teams submit purchase requests. Finance approves, tracks delivery, and settles against the ledger." chip3_title = "Variance analysis" chip3_desc = "Compare planned vs actual per event and per team. Identify overspend before the year closes." [homepage.signin_block] title = "Ready to get started?" body = "Finance Hub is self-hosted on your homelab. Sign in with your account to access your personal and business dashboards." cta = "Sign in to Finance Hub" [homepage.mock] net_income_label = "Net income" net_income_value = "+€2,840" net_income_sub = "vs last month +12%" net_worth_label = "Net worth" net_worth_sub = "↑ €1,240 this month" budget_health = "Budget health" groceries = "Groceries" dining_out = "Dining out" transport = "Transport" entertainment = "Entertainment" events_label = "Events — Summer Festival 2025" budget_label = "Budget" active_year = "Active year" requests_label = "Requests" sound_equipment = "Sound equipment rental" catering_deposit = "Catering deposit" stage_lighting = "Stage lighting" approved = "Approved" pending = "Pending" in_transit = "In transit" # ── Auth ───────────────────────────────────────────────────────────────────── [auth.login] page_title = "Sign in — Finance Hub" brand = "Finance Hub" heading = "Welcome back" subtext = "Sign in to your account. No account?" subtext_link = "Create one →" field_email = "Email" placeholder_email = "you@example.com" field_password = "Password" placeholder_password = "••••••••" btn_submit = "Sign in →" divider = "or" btn_google = "Continue with Google" footer_back = "← Back to home" error_oauth = "Google sign-in failed. Please try again." [auth.register] page_title = "Create account — Finance Hub" brand = "Finance Hub" heading = "Create your account" subtext = "Already have an account?" subtext_link = "Sign in →" field_name = "Name" name_optional = "(optional)" placeholder_name = "Your name" field_email = "Email" placeholder_email = "you@example.com" field_password = "Password" placeholder_password = "••••••••" hint_password = "At least 8 characters" field_confirm = "Confirm password" placeholder_confirm = "••••••••" btn_submit = "Create account →" divider_oauth = "or sign up with email" btn_google = "Continue with Google" footer_back = "← Back to home" # ── Dashboard ──────────────────────────────────────────────────────────────── [dashboard] title = "Dashboard" available_to_spend = "Available to spend this month" available_formula = "income − fixed costs − spent so far" disposable_label = "disposable" month_progress = "Month progress: {{pct}}%" month_spent = "Spent: {{pct}}%" [dashboard.cards] bank_should_be = "Bank balance should be" bank_should_be_sub = "upcoming fixed + safety buffer" savings_rate = "Savings rate" net_worth = "Net worth" net_worth_link = "→ full breakdown" portfolio_today = "Portfolio today" portfolio_cost_basis = "cost basis · prices unavailable" portfolio_no_trades = "No trades yet" portfolio_import_link = "Import trades →" [dashboard.bank_math] section_title = "What should be in your bank" section_subtitle = "right now" safety_buffer = "Safety buffer (2 weeks)" minimum_recommended = "Minimum recommended" no_recurring_msg = "No recurring expenses detected yet." no_recurring_sub = "Import a few months of transactions." [dashboard.stocks] section_title = "Stocks at a glance" portfolio_link = "→ portfolio" shares_label = "shares" cost_basis = "cost basis" total_label = "Total" total_invested = "Total invested" no_holdings_msg = "No holdings yet." import_link = "Import trades →" [dashboard.budget_health] section_title = "Budget health" categories_link = "→ categories" [dashboard.recent] section_title = "Recent activity" all_txns_link = "→ all transactions" no_txns_msg = "No transactions yet." import_link = "Import some!" [dashboard.goals] section_title = "Committed goals" all_goals_link = "→ all goals" months_left = "mo left" per_month_needed = "/mo needed" of = "of" this_month = "This month" funded = "On track" fund_link = "Fund it" needed = "needed" left_to_fund = "left to fund" needed_this_month = "needed this month" [dashboard.fixed_costs] section_title = "Fixed costs" auto_detected = "auto-detected · 3-month average" committed_goal = "committed goal" recurring_expense = "recurring expense" per_month = "/ month" total_committed = "Total committed" [dashboard.alerts] vs_last_month_up = "↑ vs last month" vs_last_month_down = "↓ vs last month" [dashboard.waterfall] title = "Cash flow this month" income = "Income" living = "Living expenses" goals = "Goal contributions" goals_link = "manage →" free_cash = "Free cash" month_progress = "Month progress" what_now = "What now?" fund_link = "Fund" all_funded = "All committed goals funded this month ✓" # ── Transactions ───────────────────────────────────────────────────────────── [transactions] title = "Transactions" btn_add = "+ Add Transaction" warning_all_dupes = "Every row in that file was already imported — nothing was added." [transactions.filter] label_category = "Category" option_all_cats = "All Categories" label_period = "Period" option_all_time = "All time" option_30_days = "30 days" option_90_days = "90 days" option_1_year = "1 year" label_search = "Search" placeholder_search = "Description…" btn_filter = "Filter" btn_clear = "Clear" [transactions.table] col_date = "Date" col_description = "Description" col_account = "Account" col_category = "Category" col_amount = "Amount" btn_edit_category = "Edit category" btn_delete = "Delete" empty_msg = "No transactions found." empty_import_link = "Import some" empty_add_btn = "add manually" empty_state_title = "No transactions yet" empty_state_subtitle = "Transactions are the foundation of every chart, goal, and insight in this app." empty_step1_title = "Add an account" empty_step1_body = "Go to Settings → Accounts and create your checking or savings account first." empty_step2_title = "Import a CSV or add manually" empty_step2_body = "Export a statement from your bank and import it, or tap + Add Transaction to enter one by hand." empty_step3_title = "Tag categories & goals" empty_step3_body = "Once imported, categorise your spending. Link categories to goals so contributions are tracked automatically." [transactions.modal_add] title = "Add Transaction" label_date = "Date" label_description = "Description" placeholder_desc = "e.g. Coffee at Starbucks" label_amount = "Amount (€)" option_expense = "− Expense" option_income = "+ Income" placeholder_amount = "0.00" label_category = "Category" label_account = "Account" option_no_account = "— none —" label_goal = "Fund a goal (optional)" option_no_goal = "— not a goal contribution —" btn_cancel = "Cancel" btn_save = "Save Transaction" error_required = "Please fill in date, description, and a positive amount." error_save_failed = "Failed to save." [transactions.confirm] delete_msg = "Delete this transaction?" # ── Portfolio ──────────────────────────────────────────────────────────────── [portfolio] title = "Portfolio" missing_prices_warn = "Live price unavailable for {{n}} holding{{s}} — add a Yahoo Finance ticker to fix this" lookup_link = "Look up ↗" btn_save_ticker = "Save" ticker_placeholder = "e.g. QDVE.DE" [portfolio.cards] total_value = "Total Value" total_cost = "Total Cost" unrealized_pl = "Unrealized P&L" [portfolio.allocation] section_title = "Allocation" [portfolio.holdings] section_title = "Holdings" col_asset = "Asset" col_shares = "Shares" col_avg_cost = "Avg Cost" col_price = "Price" col_value = "Value" col_pl = "P&L" add_trades_via = "Add trades via" btn_import = "Import CSV" [portfolio.empty] title = "No trades yet" desc = "Import your Trade Republic securities CSV to see your portfolio." btn_import = "Import Trades" # ── Goals ──────────────────────────────────────────────────────────────────── [goals] title = "Goals" tab_committed = "Committed goals" tab_planner = "Goal Planner" [goals.summary_cards] avg_monthly_savings = "Avg monthly savings" last_3_months = "last 3 months" income = "Income" this_month = "this month" goal_funded = "Funded to goals" tagged_transactions = "via tagged transactions" free_cash = "Free cash" after_goals = "after goals" [goals.goal_card] type_once = "One-off purchase" type_deposit = "Deposit / down-payment" type_emergency = "Emergency fund" type_recurring = "Recurring investment" saved_of = "saved of" need_per_month = "Need per month" months_left = "Months left" at_current_rate = "At current rate" disposable_after = "Disposable after" on_track = "✓ On track — your current savings rate covers €{{monthly}}/month with {{months}} months to go." behind_warn = "⚠ At your current rate (€{{rate}}/mo) you'd reach this in {{actual}} months — {{diff}} months late." btn_adjust_deadline = "Adjust deadline →" btn_committed = "✓ Committed — click to uncommit" btn_commit = "Commit to this goal" btn_remove = "Remove" confirm_remove = "Remove this goal?" btn_fund = "Fund this goal" funding_history = "Recent contributions" no_funding_yet = "No transactions tagged yet. Add a transaction and link it to this goal." [goals.empty] title = "No goals yet" desc = "Use the Goal Planner tab to simulate a goal and save it here." btn_open_planner = "Open Goal Planner →" step1_title = "Open the Goal Planner" step1_body = "Simulate how much you need to save monthly and by when. Try different deadlines to find a realistic target." step2_title = "Commit to the goal" step2_body = "Mark a goal as committed so it appears in your waterfall and \"what now?\" prompts on the dashboard." step3_title = "Fund it every month" step3_body = "Add expense transactions tagged to this goal, or link a spending category in Settings to auto-tag them." [goals.planner] what_kind = "What kind of goal?" purchase_title = "Save for a purchase" purchase_desc = "Car, trip, gadget, fund — save up to a target by a date." transition_title = "Sell & upgrade" transition_desc = "Own an asset with a loan, acquire something new, sell the old to fund it." [goals.planner.purchase] form_title = "Your purchase goal" label_name = "Goal name" placeholder_name = "e.g. New car, Europe trip, Emergency fund…" label_target = "Target amount (€)" placeholder_target = "e.g. 12000" label_monthly_savings = "Monthly savings (€)" placeholder_monthly = "e.g. 400" label_deadline = "Target date (optional — leave blank to see when you'll get there)" btn_calculate = "Calculate →" [goals.planner.purchase_result] card_at_rate = "At your savings rate" card_monthly_needed = "Monthly needed" card_target = "Target" your_goal_amount = "your goal amount" to_hit_deadline = "to hit {{date}}" set_target_date = "set a target date above" enter_monthly = "enter monthly savings" reach_label = "reach {{date}}" on_track = "✓ On track — €{{monthly}}/mo covers the required €{{needed}}/mo." behind_warn = "⚠ You need €{{needed}}/mo to hit the deadline but you're saving €{{monthly}}/mo. At your current rate you'll get there in {{months}} months ({{date}})." save_as_goal_title = "Save as a goal" save_as_goal_desc = "Adds this to your Goals tab so you can commit to it." label_goal_name = "Goal name" placeholder_goal_name = "e.g. New car" btn_save_goal = "Save goal →" [goals.planner.transition] form_title = "Your transition scenario" label_current_asset = "Current asset (optional)" option_none_asset = "— none selected —" label_current_loan = "Current loan (optional)" option_none_loan = "— none selected —" label_dream_cost = "New goal cost (€)" placeholder_dream_cost = "e.g. 350000" label_down_pct = "Down payment (%)" label_loan_rate = "New loan rate (% annual)" label_loan_term = "New loan term (years)" label_build_months = "Acquisition / build period (months)" label_monthly_savings = "Monthly savings available (€)" placeholder_savings = "e.g. 800" label_sale_price = "Expected sale price of current asset (€)" placeholder_sale_price = "leave blank to use current value" btn_run = "Run simulation →" [goals.planner.transition_result] card_total_timeline = "Total timeline" until_paid_off = "until goal is fully paid off" card_final_monthly = "Final monthly cost" after_selling = "after selling current asset" card_total_interest = "Total interest" across_both_loans = "across both loans" card_free_by = "Free by" fully_paid_off = "fully paid off" roadmap_title = "Your roadmap" phase1_title = "Save down payment" phase1_target = "Target:" phase1_already_have = "Already have:" phase1_still_need = "Still need:" phase1_saving = "Saving:" phase1_ready = "Ready now!" phase1_equity_covers = "equity covers down payment" phase1_down_payment = "Down payment:" phase1_your_equity = "Your equity:" phase2_title = "Acquire / build" phase2_new_loan = "New loan:" phase2_existing_loan = "Existing loan:" phase2_new_emi = "New EMI:" phase2_total_burden = "Total burden:" phase3_title = "Sell & transition" phase3_one_time = "One-time event" phase3_after_acquisition = "after acquisition completes" phase3_sale_price = "Sale price:" phase3_pay_off = "Pay off loan:" phase3_net_proceeds = "Net proceeds:" phase3_applied = "Applied to new loan" phase4_title = "Goal achieved" phase4_remaining_loan = "Remaining loan:" phase4_monthly = "Monthly:" phase4_fully_paid = "Fully paid!" phase4_sale_cleared = "sale proceeds cleared the loan" phase4_no_remaining = "No remaining loan!" chart_title = "Monthly cost over time" chart_subtitle = "what you pay each month" save_as_goal_title = "Save as a goal" save_as_goal_desc = "Adds this to your Goals tab so you can commit to it." label_goal_name = "Goal name" placeholder_goal_name = "e.g. New property, Upgrade car…" btn_save_goal = "Save goal →" # ── Property ───────────────────────────────────────────────────────────────── [property] summary_total_value = "Total property value" summary_total_value_sub = "current estimated value" summary_outstanding_loans = "Outstanding loans" summary_outstanding_sub = "remaining balance" summary_net_equity = "Net equity" summary_net_equity_sub = "value − loans" [property.properties] section_title = "Properties" btn_add = "+ Add property" stat_current_value = "Current value" stat_equity = "Equity" stat_purchase_price = "Purchase price" stat_gain = "Gain" equity_label = "Equity {{pct}}%" loan_label = "Loan {{pct}}%" loan_remaining = "Remaining" loan_monthly_payment = "Monthly payment" loan_payoff = "Payoff" loan_rate = "Rate" btn_edit = "Edit" btn_remove = "Remove" [property.properties.empty] title = "No properties yet" desc = "Add your home, investment property, or land to track equity and loans in one place." btn_add_first = "Add your first property" [property.loans] section_title = "Loans" btn_add = "+ Add loan" stat_balance = "Balance" stat_monthly = "Monthly" stat_payoff = "Payoff" stat_rate = "Rate" paid_label = "Paid {{pct}}%" interest_left = "interest left" btn_mark_paid = "Mark paid off" btn_remove = "Remove" confirm_paid_off = "Mark as paid off?" [property.modal_add] title_property = "Add property" label_name = "Property name *" placeholder_name = "e.g. Main House" label_address = "Address" placeholder_address = "Street, city" label_purchase_price = "Purchase price (€) *" placeholder_purchase_price = "220000" label_current_value = "Current value (€)" placeholder_current_value = "Same as purchase" hint_current_value = "Leave blank to use purchase price" label_purchase_date = "Purchase date" label_appreciation = "Est. appreciation (%/year)" placeholder_appreciation = "2.0" label_status = "Status" status_owned = "Owned" status_building = "Under construction" status_sold = "Sold" label_notes = "Notes" placeholder_notes = "Optional notes" btn_cancel = "Cancel" btn_add = "Add property" [property.modal_edit] title_property = "Edit property" label_name = "Property name *" label_address = "Address" label_purchase_price = "Purchase price (€)" label_current_value = "Current value (€)" label_purchase_date = "Purchase date" label_appreciation = "Appreciation (%/year)" label_status = "Status" status_owned = "Owned" status_building = "Under construction" status_sold = "Sold" label_notes = "Notes" btn_cancel = "Cancel" btn_save = "Save changes" [property.modal_loan] title_loan = "Add loan" label_name = "Loan name *" placeholder_name = "e.g. Home mortgage" label_type = "Type" type_mortgage = "Mortgage" type_construction = "Construction loan" type_personal = "Personal loan" label_linked_property = "Linked property" option_none_property = "— none —" label_principal = "Original principal (€) *" placeholder_principal = "200000" label_balance = "Current balance (€)" placeholder_balance = "Same as principal" hint_balance = "Leave blank if just starting" label_interest_rate = "Interest rate (%/year) *" placeholder_rate = "3.2" label_term = "Term (months) *" placeholder_term = "360" hint_term = "e.g. 360 = 30 years" label_monthly_payment = "Monthly payment (€)" placeholder_monthly_payment = "Auto-computed" hint_monthly_payment = "Leave blank to calculate" label_start_date = "Start date" label_notes = "Notes" placeholder_notes = "Bank name, reference, etc." btn_cancel = "Cancel" btn_add = "Add loan" # ── Net Worth ───────────────────────────────────────────────────────────────── [networth] title = "Net Worth" hero_label = "Total net worth" hero_formula = "cash balance + portfolio" cash_label = "💵 Cash" portfolio_label = "📈 Portfolio" property_equity_label = "🏠 Property equity" credit_label = "💳 Credit" [networth.cards] cash_balance = "Cash balance" cash_balance_sub = "all transaction history" portfolio = "Portfolio" portfolio_cost_basis = "Portfolio (cost basis)" portfolio_market = "market value" portfolio_cost_shown = "prices unavailable · cost basis shown" property_equity = "Property equity" credit_liabilities = "Credit / liabilities" outstanding_balance = "outstanding balance" [networth.chart] section_title = "Net worth over time" subtitle = "cumulative · all time" legend_net_worth = "Net Worth" legend_loans = "Loans outstanding" [networth.empty] title = "No transaction history yet" desc = "Import some transactions to see your net worth over time." btn_import = "Import transactions →" # ── Reports ────────────────────────────────────────────────────────────────── [reports] title = "Monthly Reports" chart_title = "12-Month Spend by Category" table_title = "Breakdown by Month" col_month = "Month" col_total = "Total" # ── Projections ────────────────────────────────────────────────────────────── [projections] title = "Projections" card_annual_spend = "Projected Annual Spend" card_annual_sub = "Based on 6-month average" card_monthly_spend = "Projected Monthly Spend" card_monthly_sub = "Average across all categories" chart_title = "Monthly Average by Category — Last 6 Months" table_col_category = "Category" table_col_monthly_avg = "Monthly Avg" table_col_projected = "Projected Annual" table_col_share = "Share of Spend" [projections.empty] title = "No spending data yet" desc = "Import at least a month of transactions to see projections." btn_import = "Import Transactions" # ── Simulator ("What If") ──────────────────────────────────────────────────── [simulator] title = "What If…" subtitle = "adjust sliders to see the ripple effect" [simulator.cards] disposable_income = "Disposable income" disposable_sub = "after fixed costs & goals" monthly_savings = "Monthly savings" monthly_savings_sub = "income − all committed spend" savings_rate = "Savings rate" savings_rate_sub = "savings ÷ income" [simulator.controls] section_title = "Adjustments" btn_reset = "Reset" label_income_change = "Income change" label_one_off = "One-off expense" label_fixed_costs = "Fixed costs change" label_new_goal = "Hypothetical new goal" label_goal_amount = "Amount (€)" placeholder_goal_amount = "5 000" label_goal_months = "Months to save" placeholder_goal_months = "12" goal_would_need = "Would need" per_month = "€0/mo" leaving = "— leaving" disposable_after = "€0/mo disposable" [simulator.goal_impact] section_title = "Goal timeline impact" no_goals_msg = "No goals yet." goals_link = "Add some →" committed = "committed" feasibility_not_achievable = "Not achievable at this savings level" feasibility_on_track = "On track ✓" feasibility_faster = "months faster ✓" feasibility_over = "months over deadline" [simulator.history_chart] section_title = "Savings rate history" subtitle = "past months" # ── Tax ────────────────────────────────────────────────────────────────────── [tax] title = "Tax Summary" btn_export = "Export CSV" year_label = "Tax year:" gross_income = "Gross Income" gross_income_sub = "from Income transactions" total_expenses = "Total Expenses" total_expenses_sub = "across all categories" capital_gains = "Capital Gains" capital_gains_sub = "realized this year" capital_losses = "Capital Losses" capital_losses_sub = "realized this year" net_capital = "Net Capital" net_capital_sub = "gains − losses" [tax.capital_table] section_title = "Realized Capital Events" col_name = "Name" col_isin = "ISIN" col_cost_basis = "Cost Basis" col_proceeds = "Proceeds" col_gain_loss = "Gain/Loss" col_pct = "%" [tax.expenses_table] section_title = "Expenses by Category" col_category = "Category" col_total_spent = "Total Spent" row_total = "Total" empty_msg = "No expense transactions for {{year}}" # ── Auto Import Guide ──────────────────────────────────────────────────────── [auto_import] title = "Import Guide" subtitle = "How to get your bank transactions into the app" btn_upload = "Upload CSV →" [auto_import.steps] step1_title = "Export a CSV from your bank" step1_body = "Log into your bank's online portal and download a transaction extract for the period you want. Most Portuguese banks offer this under Movimentos or Extratos." step1_cgd_name = "CGD (Caixa Geral de Depósitos)" step1_cgd_desc = "Netbanco → Consultas → Movimentos de Conta → Exportar. Choose CSV." step1_tr_name = "Trade Republic" step1_tr_desc = "App → Profile → Documents → Activity. Export as CSV." step1_generic_name = "Generic / Other banks" step1_generic_desc = "Any CSV with columns: Date, Description, Amount. The importer auto-detects column order." step2_title = "Upload and preview" step2_body = "Go to Import, pick the account and format, then select your file. You'll see a preview of every row with auto-suggested categories. Rows already in the database are shown greyed out and will be skipped automatically — safe to re-upload the same file." step3_title = "Review categories and confirm" step3_body = "Adjust any auto-categorised rows using the dropdown selectors, then click Confirm Import. Only new transactions are saved." [auto_import.tip] title = "Tip — avoid duplicates:" body = "the importer fingerprints each row by date, description, amount, and account. Re-uploading a file that overlaps with a previous import is safe; duplicates are detected and skipped at both preview and confirm time." [auto_import.api] title = "Automate with a script" body = "If you export your CSV on a schedule (e.g. via a cron job or n8n), you can push it directly to the import endpoint without going through the UI:" footer = "The preview endpoint returns an HTML page; for headless import pipe the confirmed rows to POST /import/confirm with the same account_id, format, raw_data, and categories[] fields." # ── Import ──────────────────────────────────────────────────────────────────── [import] title = "Import" [import.preview] section_title = "Preview" rows_label = "rows" already_imported = "already imported" skip_note = "(shown greyed out, will be skipped)" btn_back = "← Back" col_date = "Date" col_description = "Description" col_amount = "Amount" col_category = "Category" duplicate_label = "duplicate" btn_confirm = "✓ Confirm Import" btn_cancel = "Cancel" [import.upload] bank_section_title = "Bank Transactions" label_account = "Account" placeholder_account = "Select account…" label_format = "Bank / Format" format_cgd = "Caixa Geral de Depósitos (CGD)" format_tr = "Trade Republic Card" format_generic = "Generic CSV" label_csv_file = "CSV File" btn_preview = "Preview Import" securities_title = "Securities Trades" securities_desc = "Upload your Trade Republic securities CSV to import buy/sell trades into your portfolio." label_securities_file = "Trade Republic Securities CSV" btn_import_trades = "Import Trades" after_import_note = "After importing, visit Portfolio to see live prices and P&L." # ── Settings ───────────────────────────────────────────────────────────────── [settings] title = "Settings" tab_accounts = "Accounts" tab_categories = "Categories" [settings.accounts] card_add_title = "Add account" placeholder_name = "Account name" type_checking = "Checking" type_savings = "Savings" type_credit = "Credit card" type_securities = "Securities" btn_add = "Add" col_name = "Name" col_type = "Type" btn_delete = "Delete" empty_msg = "No accounts yet — add one above." confirm_delete = "Delete this account?" [settings.categories] card_add_title = "Add category" placeholder_name = "Category name" placeholder_budget = "Monthly budget (cents)" btn_add = "Add" col_category = "Category" col_budget = "Monthly Budget" col_goal = "Auto-tags goal" btn_delete = "Delete" empty_msg = "No categories yet — add one above." confirm_delete = "Delete this category?" [settings.categories.modal_edit] title = "Edit Category" placeholder_name = "Name" placeholder_budget = "Budget (cents)" label_goal = "Auto-tag goal" option_no_goal = "— none —" goal_hint = "Expenses in this category will automatically fund the selected goal." btn_cancel = "Cancel" btn_save = "Save" # ── Accounts (standalone page) ──────────────────────────────────────────────── [accounts] title = "Accounts" add_title = "Add Account" label_name = "Account Name" placeholder_name = "e.g. CGD Checking" label_type = "Type" type_checking = "Checking" type_savings = "Savings" type_credit = "Credit Card" type_securities = "Securities" btn_add = "Add" col_name = "Name" col_type = "Type" empty_msg = "No accounts yet." confirm_delete = "Delete this account?" btn_delete = "Delete" # ── Categories (standalone page) ────────────────────────────────────────────── [categories] title = "Categories" add_title = "Add Category" label_name = "Name" placeholder_name = "e.g. Dining" label_color = "Color" btn_add = "Add" col_color = "" col_name = "Name" col_budget = "Monthly Budget" no_budget = "No budget" btn_edit_budget = "Edit" btn_save_budget = "Save" btn_cancel_budget = "Cancel" btn_delete = "Delete" empty_msg = "No categories yet. Add one above." confirm_delete = "Delete this category? Transactions keep their label." # ── Sharing ─────────────────────────────────────────────────────────────────── [sharing] title = "Sharing" grant_title = "Grant Read Access" label_user_email = "User Email" placeholder_email = "Search by email…" btn_grant = "Grant Access" my_finances_title = "People with access to my finances" col_user = "User" col_since = "Since" btn_revoke = "Revoke" empty_my_grants = "No access grants yet." access_to_me_title = "Access granted to me" col_owner = "Owner" empty_access_to_me = "No one has shared with you yet." confirm_revoke = "Revoke access for this user?" # ── People ──────────────────────────────────────────────────────────────────── [people] title = "People" tab_sharing = "Sharing" tab_household = "Household" [people.sharing] grant_title = "Grant read access" grant_desc = "Enter another user's ID to let them view your finances in read-only mode." placeholder_viewer = "User ID or email" btn_add = "Add" viewers_title = "People with access to your data" btn_revoke = "Revoke" granted_title = "Accounts you can view" view_link = "View →" no_sharing_msg = "No sharing configured yet." confirm_revoke = "Revoke access for this user?" [people.household] link_title = "Link a partner account" link_desc = "Combine finances with a partner to see a shared monthly overview and goals." placeholder_email = "Partner's email" btn_link = "Link" linked_partner = "Linked partner" btn_unlink = "Unlink" stat_combined_income = "Combined Income" stat_my_income = "My Income" stat_partner_income = "Partner Income" stat_combined_expenses = "Combined Expenses" stat_disposable = "Disposable" your_goals = "Your Goals" partner_goals = "Partner Goals" no_goals = "No goals" committed_badge = "committed" confirm_unlink = "Unlink household? This only removes the link, not any data." # ── Household (standalone page) ─────────────────────────────────────────────── [household] title = "Household" link_title = "Link a partner account" link_desc = "Combine your finances with a partner to see a shared dashboard. Enter their account email address below." label_partner_email = "Partner email" placeholder_email = "partner@example.com" btn_link = "Link Partner" linked_partner = "Linked partner" btn_unlink = "Unlink" this_month_title = "This Month — Combined View" combined_income = "Combined Income" my_income = "My Income" partner_income = "Partner Income" combined_expenses = "Combined Expenses" disposable = "Disposable" goals_title = "Goals" your_goals = "YOUR GOALS" partner_goals = "PARTNER GOALS" no_goals = "No goals" committed_badge = "committed" confirm_unlink = "Unlink household? This only removes the link, not any data." # ── Goal Planner (plan.html — standalone) ───────────────────────────────────── [plan] title = "Goal Planner" scenario_title = "Your scenario" scenario_desc = "Model any transition where you hold an asset with a loan, want to acquire a new one, then sell the old to fund the new." label_current_asset = "Current asset (optional)" option_none_asset = "— none selected —" label_current_loan = "Current loan (optional)" option_none_loan = "— none selected —" label_dream_cost = "New goal cost (€)" placeholder_dream_cost = "e.g. 350000" label_down_pct = "Down payment (%)" label_loan_rate = "New loan rate (% annual)" label_loan_term = "New loan term (years)" placeholder_loan_term = "30" label_build_months = "Acquisition / build period (months)" label_monthly_savings = "Monthly savings available (€)" placeholder_savings = "e.g. 800" label_sale_price = "Expected sale price of current asset (€)" placeholder_sale_price = "leave blank to use current value" btn_run = "Run simulation →" result_total_timeline = "Total timeline" result_until_paid = "until goal is fully paid off" result_final_monthly = "Final monthly cost" result_after_selling = "after selling current asset" result_total_interest = "Total interest" result_across_both = "across both loans combined" result_free_by = "Free by" result_fully_paid = "fully paid off" roadmap_title = "Your roadmap" phase1_title = "Save down payment" phase1_target = "Target:" phase1_already_have = "Already have:" phase1_still_need = "Still need:" phase1_saving = "Saving:" phase1_ready = "Ready now!" phase1_equity_covers = "equity covers down payment" phase1_down_payment = "Down payment:" phase1_your_equity = "Your equity:" phase2_title = "Acquire / build" phase2_new_loan = "New loan:" phase2_existing_loan = "Existing loan:" phase2_new_emi = "New EMI:" phase2_total_burden = "Total burden:" phase3_title = "Sell & transition" phase3_one_time = "One-time event" phase3_after_acquisition = "after acquisition completes" phase3_sale_price = "Sale price:" phase3_pay_off = "Pay off loan:" phase3_net_proceeds = "Net proceeds:" phase3_applied = "Applied to new loan" phase4_title = "Goal achieved" phase4_remaining_loan = "Remaining loan:" phase4_monthly_payment = "Monthly payment:" phase4_just_new_loan = "just the new loan" phase4_fully_paid = "Fully paid!" phase4_sale_cleared = "sale proceeds cleared the loan" phase4_no_remaining = "No remaining loan!" phase4_sale_covers = "The sale covers everything." chart_title = "Monthly cost over time" chart_subtitle = "what you pay each month" levers_title = "Key levers" lever1_title = "Save more monthly" lever1_desc = "Each extra €100/mo shortens Phase 1 and gets you acquiring sooner." lever2_title = "Increase the down payment" lever2_desc = "A higher down % reduces the new loan and lowers the double-burden in Phase 2." lever3_title = "Sell at a higher price" lever3_desc = "Every extra euro from the sale goes straight to reducing the new loan balance." lever4_title = "Negotiate the rate" lever4_desc = "Even 0.5% less on the new loan saves thousands over the full term." empty_title = "Plan your next big goal" empty_desc = "Model any transition where you hold an asset with a loan, want to acquire something new, and plan to sell the old to fund it — including the double-payment period, the sale, and the final payoff date." empty_tip = "Tip: add your current asset and loan first so the planner can pre-fill the numbers." # ── Help tooltips ───────────────────────────────────────────────────────────── [help.free_cash] title = "Free Cash" body = "What's left after paying for life and funding your goals. Positive means you have room to save or spend more." formula = "Income − Living expenses − Goal contributions" [help.savings_rate] title = "Savings Rate" body = "The share of your income you're keeping. Above 20% is healthy; below 0% means you spent more than you earned." formula = "(Income − Expenses) ÷ Income × 100" [help.net_worth] title = "Net Worth" body = "Everything you own minus everything you owe. Tracking this monthly is the single best measure of financial health." formula = "Cash + Investments + Property equity − Debts" [help.monthly_needed] title = "Monthly amount needed" body = "How much to set aside each month to hit your target by the deadline." formula = "(Target − Saved) ÷ Months remaining" [help.at_current_rate] title = "At current rate" body = "How many months it would actually take based on your average monthly savings. Green = on time, red = late." [help.disposable_after] title = "Free cash after this goal" body = "Your estimated monthly free cash if you commit to this goal. Red means you'd need to cut spending elsewhere." formula = "Income − Living − All committed goals − This goal"