diff --git a/apps/finance/services/api/main/locales/en.toml b/apps/finance/services/api/main/locales/en.toml index 2db5719..3190361 100644 --- a/apps/finance/services/api/main/locales/en.toml +++ b/apps/finance/services/api/main/locales/en.toml @@ -290,9 +290,17 @@ 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_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" @@ -391,6 +399,12 @@ no_funding_yet = "No transactions tagged yet. Add a transaction and lin 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?" @@ -1040,3 +1054,34 @@ lever4_desc = "Even 0.5% less on the new loan saves thousands ov 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" diff --git a/apps/finance/services/api/main/locales/pt.toml b/apps/finance/services/api/main/locales/pt.toml index 044dc51..7ca4eca 100644 --- a/apps/finance/services/api/main/locales/pt.toml +++ b/apps/finance/services/api/main/locales/pt.toml @@ -290,9 +290,17 @@ col_category = "Categoria" col_amount = "Valor" btn_edit_category = "Editar categoria" btn_delete = "Eliminar" -empty_msg = "Nenhuma transação encontrada." -empty_import_link = "Importar algumas" -empty_add_btn = "adicionar manualmente" +empty_msg = "Nenhuma transação encontrada." +empty_import_link = "Importar algumas" +empty_add_btn = "adicionar manualmente" +empty_state_title = "Sem transações ainda" +empty_state_subtitle = "As transações são a base de todos os gráficos, objetivos e análises nesta aplicação." +empty_step1_title = "Adicionar uma conta" +empty_step1_body = "Vá a Definições → Contas e crie a sua conta à ordem ou poupança primeiro." +empty_step2_title = "Importar CSV ou adicionar manualmente" +empty_step2_body = "Exporte um extrato do seu banco e importe-o, ou toque em + Adicionar Transação para introduzir manualmente." +empty_step3_title = "Etiquetar categorias e objetivos" +empty_step3_body = "Após importar, categorize os seus gastos. Ligue categorias a objetivos para que as contribuições sejam registadas automaticamente." [transactions.modal_add] title = "Adicionar Transação" @@ -391,6 +399,12 @@ no_funding_yet = "Nenhuma transação etiquetada ainda. Adicione uma tr title = "Sem objetivos ainda" desc = "Use o separador Planeador de Objetivos para simular um objetivo e guardá-lo aqui." btn_open_planner = "Abrir Planeador de Objetivos →" +step1_title = "Abrir o Planeador de Objetivos" +step1_body = "Simule quanto precisa de poupar mensalmente e até quando. Experimente prazos diferentes para encontrar um objetivo realista." +step2_title = "Comprometer-se com o objetivo" +step2_body = "Marque um objetivo como comprometido para que apareça na cascata e nas sugestões do painel." +step3_title = "Financiar todos os meses" +step3_body = "Adicione transações de despesa associadas a este objetivo, ou ligue uma categoria de gastos nas Definições para etiquetagem automática." [goals.planner] what_kind = "Que tipo de objetivo?" @@ -1040,3 +1054,34 @@ lever4_desc = "Mesmo 0,5% a menos no novo empréstimo poupa milh empty_title = "Planeie o seu próximo grande objetivo" empty_desc = "Modele qualquer transição em que detém um ativo com empréstimo, quer adquirir algo novo e planeia vender o antigo para financiar — incluindo o período de duplo pagamento, a venda e a data final de liquidação." empty_tip = "Dica: adicione primeiro o seu ativo atual e o empréstimo para que o planeador preencha os valores automaticamente." + +# ── Dicas de ajuda ──────────────────────────────────────────────────────────── + +[help.free_cash] +title = "Dinheiro Livre" +body = "O que sobra depois de pagar a vida e financiar os seus objetivos. Positivo significa que tem margem para poupar ou gastar mais." +formula = "Rendimento − Despesas de vida − Contribuições para objetivos" + +[help.savings_rate] +title = "Taxa de Poupança" +body = "A parte do rendimento que está a guardar. Acima de 20% é saudável; abaixo de 0% significa que gastou mais do que ganhou." +formula = "(Rendimento − Despesas) ÷ Rendimento × 100" + +[help.net_worth] +title = "Património Líquido" +body = "Tudo o que possui menos tudo o que deve. Acompanhá-lo mensalmente é a melhor medida de saúde financeira." +formula = "Dinheiro + Investimentos + Capital próprio imóvel − Dívidas" + +[help.monthly_needed] +title = "Valor mensal necessário" +body = "Quanto precisa de reservar por mês para atingir o objetivo até ao prazo." +formula = "(Objetivo − Poupado) ÷ Meses restantes" + +[help.at_current_rate] +title = "Ao ritmo atual" +body = "Quantos meses levaria realmente com base na sua poupança mensal média. Verde = a tempo, vermelho = com atraso." + +[help.disposable_after] +title = "Dinheiro livre após este objetivo" +body = "O seu dinheiro livre mensal estimado se se comprometer com este objetivo. Vermelho significa que precisaria de reduzir despesas." +formula = "Rendimento − Vida − Todos os objetivos comprometidos − Este objetivo" diff --git a/apps/finance/services/api/main/templates/dashboard.html b/apps/finance/services/api/main/templates/dashboard.html index 38b2a12..0cc7e09 100644 --- a/apps/finance/services/api/main/templates/dashboard.html +++ b/apps/finance/services/api/main/templates/dashboard.html @@ -136,7 +136,7 @@
Income − Living expenses − Goal contributions{{$d.T.Get "help.free_cash.formula"}}(Income − Expenses) ÷ Income × 100{{$d.T.Get "help.savings_rate.formula"}}@@ -259,7 +259,7 @@ function wfToggleCat(id) {
Cash + Investments + Property equity − Debts{{$d.T.Get "help.net_worth.formula"}}{{$d.T.Get "dashboard.cards.net_worth_link"}}
diff --git a/apps/finance/services/api/main/templates/goals.html b/apps/finance/services/api/main/templates/goals.html index adf2edb..a53b7af 100644 --- a/apps/finance/services/api/main/templates/goals.html +++ b/apps/finance/services/api/main/templates/goals.html @@ -80,7 +80,7 @@(Target − Saved) ÷ Months remaining{{$d.T.Get "help.monthly_needed.formula"}}Income − Living − All committed goals − This goal{{$d.T.Get "help.disposable_after.formula"}}Simulate how much you need to save monthly and by when. Try different deadlines to find a realistic target.
+ {{$d.T.Get "goals.empty.step1_title"}} +{{$d.T.Get "goals.empty.step1_body"}}
Mark a goal as committed so it appears in your waterfall and "what now?" prompts on the dashboard.
+ {{$d.T.Get "goals.empty.step2_title"}} +{{$d.T.Get "goals.empty.step2_body"}}
Add expense transactions tagged to this goal, or link a spending category in Settings to auto-tag them.
+ {{$d.T.Get "goals.empty.step3_title"}} +{{$d.T.Get "goals.empty.step3_body"}}
Transactions are the foundation of every chart, goal, and insight in this app.
+{{$d.T.Get "transactions.table.empty_state_subtitle"}}
Go to Settings → Accounts and create your checking or savings account first.
+ {{$d.T.Get "transactions.table.empty_step1_title"}} +{{$d.T.Get "transactions.table.empty_step1_body"}}
Export a statement from your bank and import it, or tap "+ Add Transaction" to enter one by hand.
+ {{$d.T.Get "transactions.table.empty_step2_title"}} +{{$d.T.Get "transactions.table.empty_step2_body"}}
Once imported, categorise your spending. Link categories to goals so contributions are tracked automatically.
+ {{$d.T.Get "transactions.table.empty_step3_title"}} +{{$d.T.Get "transactions.table.empty_step3_body"}}