Some checks failed
Release / build-and-release (push) Has been cancelled
Fix updater: strip v-prefix from version in latest.json, and delete old package before re-uploading to avoid 409 conflicts. Add frontend log capture (console intercept) with a log viewer card in the settings page (filterable, copyable, clearable). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
819 lines
34 KiB
JSON
819 lines
34 KiB
JSON
{
|
|
"app": {
|
|
"name": "Simpl'Result"
|
|
},
|
|
"nav": {
|
|
"dashboard": "Dashboard",
|
|
"import": "Import",
|
|
"transactions": "Transactions",
|
|
"categories": "Categories",
|
|
"adjustments": "Adjustments",
|
|
"budget": "Budget",
|
|
"reports": "Reports",
|
|
"settings": "Settings"
|
|
},
|
|
"dashboard": {
|
|
"title": "Dashboard",
|
|
"balance": "Balance",
|
|
"income": "Income",
|
|
"expenses": "Expenses",
|
|
"noData": "No data available. Start by importing your bank statements.",
|
|
"expensesByCategory": "Expenses by Category",
|
|
"recentTransactions": "Recent Transactions",
|
|
"period": {
|
|
"month": "This month",
|
|
"3months": "3 months",
|
|
"6months": "6 months",
|
|
"12months": "12 months",
|
|
"year": "This year",
|
|
"all": "All",
|
|
"custom": "Custom"
|
|
},
|
|
"dateFrom": "From",
|
|
"dateTo": "To",
|
|
"apply": "Apply",
|
|
"help": {
|
|
"title": "How to use the Dashboard",
|
|
"tips": [
|
|
"Use the period selector (top right) to view different time ranges",
|
|
"Summary cards show your balance, income, and expenses for the selected period",
|
|
"The pie chart breaks down your expenses by category",
|
|
"Recent transactions are listed at the bottom"
|
|
]
|
|
}
|
|
},
|
|
"import": {
|
|
"title": "Import Statements",
|
|
"dropzone": "Drag your CSV files here or click to select",
|
|
"source": "Source",
|
|
"file": "File",
|
|
"status": "Status",
|
|
"date": "Date",
|
|
"folder": {
|
|
"label": "Import folder",
|
|
"notConfigured": "No folder configured",
|
|
"browse": "Browse",
|
|
"refresh": "Refresh"
|
|
},
|
|
"sources": {
|
|
"title": "Import Sources",
|
|
"empty": "No sources found. Create subfolders in your import folder with CSV files.",
|
|
"new": "new",
|
|
"fileCount_one": "{{count}} file",
|
|
"fileCount_other": "{{count}} files",
|
|
"fileCount": "{{count}} file(s)"
|
|
},
|
|
"config": {
|
|
"title": "Source Configuration",
|
|
"sourceName": "Source name",
|
|
"delimiter": "Delimiter",
|
|
"semicolon": "Semicolon",
|
|
"comma": "Comma",
|
|
"tab": "Tab",
|
|
"encoding": "Encoding",
|
|
"dateFormat": "Date format",
|
|
"skipLines": "Lines to skip",
|
|
"hasHeader": "First row contains headers",
|
|
"signConvention": "Sign convention",
|
|
"negativeExpense": "Negative expenses",
|
|
"positiveExpense": "Positive expenses",
|
|
"columnMapping": "Column mapping",
|
|
"dateColumn": "Date column",
|
|
"descriptionColumn": "Description column",
|
|
"amountColumn": "Amount column",
|
|
"amountMode": "Amount mode",
|
|
"singleAmount": "Single amount",
|
|
"debitCredit": "Separate debit / credit",
|
|
"debitColumn": "Debit column",
|
|
"creditColumn": "Credit column",
|
|
"selectFiles": "Files to import",
|
|
"selectAll": "Select all",
|
|
"alreadyImported": "Imported",
|
|
"autoDetect": "Auto-detect",
|
|
"saveAsTemplate": "Save as template",
|
|
"loadTemplate": "Load template",
|
|
"templateName": "Template name",
|
|
"templateSaved": "Template saved",
|
|
"deleteTemplate": "Delete template",
|
|
"noTemplates": "No templates saved",
|
|
"updateTemplate": "Update template"
|
|
},
|
|
"preview": {
|
|
"title": "Data Preview",
|
|
"noData": "No data to display",
|
|
"rowCount": "{{count}} row(s)",
|
|
"errorCount": "{{count}} error(s)",
|
|
"date": "Date",
|
|
"description": "Description",
|
|
"amount": "Amount",
|
|
"raw": "Raw data",
|
|
"moreRows": "... and {{count}} more row(s)"
|
|
},
|
|
"duplicates": {
|
|
"title": "Duplicate Detection",
|
|
"fileAlreadyImported": "This file has already been imported",
|
|
"fileAlreadyImportedDesc": "A file with the same content already exists in the database.",
|
|
"rowsFound": "{{count}} duplicate(s) found",
|
|
"rowsFoundDesc": "These rows match existing transactions.",
|
|
"noneFound": "No duplicates found",
|
|
"skip": "Skip duplicates",
|
|
"includeAll": "Import all",
|
|
"summary": "Total: {{total}} rows — {{new}} new — {{duplicates}} duplicate(s)",
|
|
"withinBatch": "Duplicate within imported files",
|
|
"sourceDb": "Existing",
|
|
"sourceBatch": "Within batch"
|
|
},
|
|
"confirm": {
|
|
"title": "Import Confirmation",
|
|
"source": "Source",
|
|
"files": "Files",
|
|
"settings": "Settings",
|
|
"rowsToImport": "Rows to import",
|
|
"rowsSummary": "{{count}} row(s) to import, {{skipped}} duplicate(s) skipped"
|
|
},
|
|
"progress": {
|
|
"title": "Import in Progress",
|
|
"importing": "Importing...",
|
|
"rows": "rows"
|
|
},
|
|
"report": {
|
|
"title": "Import Report",
|
|
"totalRows": "Total rows",
|
|
"imported": "Imported",
|
|
"skippedDuplicates": "Skipped duplicates",
|
|
"errors": "Errors",
|
|
"categorized": "Categorized",
|
|
"uncategorized": "Uncategorized",
|
|
"errorDetails": "Error details",
|
|
"row": "Row",
|
|
"errorMessage": "Error message",
|
|
"done": "Done"
|
|
},
|
|
"history": {
|
|
"title": "Import History",
|
|
"empty": "No imports yet.",
|
|
"deleteAll": "Delete All",
|
|
"deleteConfirm": "Delete this import and its {{count}} transaction(s)?",
|
|
"deleteAllConfirm": "Delete ALL imports and their transactions? This cannot be undone.",
|
|
"source": "Source",
|
|
"filename": "File",
|
|
"date": "Date",
|
|
"rows": "Rows",
|
|
"status": "Status"
|
|
},
|
|
"wizard": {
|
|
"back": "Back",
|
|
"next": "Next",
|
|
"preview": "Preview",
|
|
"checkDuplicates": "Check duplicates",
|
|
"confirm": "Confirm",
|
|
"import": "Import"
|
|
},
|
|
"help": {
|
|
"title": "How to import bank statements",
|
|
"tips": [
|
|
"Set your import folder, then create one subfolder per bank/source with CSV files inside",
|
|
"Click a source to configure column mapping, delimiter, and date format",
|
|
"Preview your data before importing to catch formatting issues",
|
|
"Duplicate detection prevents the same transactions from being imported twice"
|
|
]
|
|
}
|
|
},
|
|
"transactions": {
|
|
"title": "Transactions",
|
|
"date": "Date",
|
|
"description": "Description",
|
|
"amount": "Amount",
|
|
"category": "Category",
|
|
"supplier": "Supplier",
|
|
"noTransactions": "No transactions found.",
|
|
"filters": {
|
|
"search": "Search",
|
|
"searchPlaceholder": "Search by description...",
|
|
"allCategories": "All categories",
|
|
"allSources": "All sources",
|
|
"uncategorized": "Uncategorized",
|
|
"dateFrom": "From",
|
|
"dateTo": "To"
|
|
},
|
|
"summary": {
|
|
"count": "Transactions",
|
|
"income": "Income",
|
|
"expenses": "Expenses",
|
|
"balance": "Balance"
|
|
},
|
|
"table": {
|
|
"noCategory": "— No category —"
|
|
},
|
|
"pagination": {
|
|
"showing": "Showing",
|
|
"of": "of",
|
|
"previous": "Previous",
|
|
"next": "Next"
|
|
},
|
|
"notes": {
|
|
"placeholder": "Add a note..."
|
|
},
|
|
"autoCategorize": "Auto-categorize",
|
|
"autoCategorizeResult": "{{count}} transaction(s) categorized",
|
|
"autoCategorizeNone": "No new matches found",
|
|
"addKeyword": "Add keyword",
|
|
"keywordAdded": "Keyword added",
|
|
"keywordPlaceholder": "Keyword to match...",
|
|
"splitAdjustment": "Split adjustment",
|
|
"splitBase": "Base",
|
|
"splitAdjusted": "Adjusted",
|
|
"splitCategory": "Category",
|
|
"splitAmount": "Amount",
|
|
"splitDescription": "Description",
|
|
"splitAddRow": "Add split",
|
|
"splitRemove": "Remove split",
|
|
"splitTotal": "Total must equal original amount",
|
|
"splitDeleteConfirm": "Remove this split adjustment?",
|
|
"help": {
|
|
"title": "How to use Transactions",
|
|
"tips": [
|
|
"Use the filters to search by description, category, source, or date range",
|
|
"Click a column header to sort transactions",
|
|
"Assign categories by clicking the category dropdown on each row",
|
|
"Auto-categorize uses your keyword rules to categorize transactions in bulk"
|
|
]
|
|
}
|
|
},
|
|
"categories": {
|
|
"title": "Categories",
|
|
"name": "Name",
|
|
"type": "Type",
|
|
"parent": "Parent Category",
|
|
"color": "Color",
|
|
"expense": "Expense",
|
|
"income": "Income",
|
|
"transfer": "Transfer",
|
|
"keywords": "Keywords",
|
|
"addCategory": "Add Category",
|
|
"editCategory": "Edit Category",
|
|
"deleteCategory": "Delete Category",
|
|
"deleteConfirm": "Are you sure you want to delete this category? Its children will be promoted to top-level.",
|
|
"deleteBlocked": "Cannot delete: this category or its children are used by {{count}} transaction(s).",
|
|
"reinitialize": "Re-initialize",
|
|
"reinitializeConfirm": "Reset all categories and keywords to their default values? Transaction categories will be unlinked. This cannot be undone.",
|
|
"noParent": "No parent (top-level)",
|
|
"isInputable": "Allow input",
|
|
"isInputableHint": "Uncheck to hide from budget and transaction dropdowns",
|
|
"dragToReorder": "Drag to reorder or change parent",
|
|
"selectCategory": "Select a category to view details",
|
|
"keywordCount": "Keywords",
|
|
"keywordText": "Keyword...",
|
|
"priority": "Priority",
|
|
"customColor": "Custom color",
|
|
"allKeywords": "All Keywords",
|
|
"allKeywordsEmpty": "No keywords yet",
|
|
"help": {
|
|
"title": "How to manage Categories",
|
|
"tips": [
|
|
"Create top-level categories and subcategories to organize your expenses and income",
|
|
"Add keywords to a category so transactions matching those words are auto-categorized",
|
|
"Set a priority on keywords to resolve conflicts when multiple categories match",
|
|
"Click a category in the tree to view its details, edit it, or manage keywords"
|
|
]
|
|
}
|
|
},
|
|
"adjustments": {
|
|
"title": "Adjustments",
|
|
"name": "Name",
|
|
"date": "Date",
|
|
"description": "Description",
|
|
"amount": "Amount",
|
|
"recurring": "Recurring",
|
|
"entries": "Entries",
|
|
"addEntry": "Add entry",
|
|
"newAdjustment": "New adjustment",
|
|
"editAdjustment": "Edit adjustment",
|
|
"deleteConfirm": "Delete this adjustment?",
|
|
"total": "Total",
|
|
"selectAdjustment": "Select an adjustment",
|
|
"category": "Category",
|
|
"noEntries": "No entries yet",
|
|
"splitTransactions": "Transaction splits",
|
|
"help": {
|
|
"title": "How to use Adjustments",
|
|
"tips": [
|
|
"Adjustments let you add manual entries that don't come from bank imports",
|
|
"Use them for expected expenses or income not yet reflected in your statements",
|
|
"Recurring adjustments repeat automatically each period"
|
|
]
|
|
}
|
|
},
|
|
"budget": {
|
|
"title": "Budget",
|
|
"category": "Category",
|
|
"planned": "Planned",
|
|
"actual": "Actual",
|
|
"difference": "Difference",
|
|
"annual": "Annual",
|
|
"splitEvenly": "Split evenly across 12 months",
|
|
"annualMismatch": "Annual total does not match the sum of monthly amounts",
|
|
"applyToMonth": "Apply to month",
|
|
"allMonths": "All 12 months",
|
|
"expenses": "Expenses",
|
|
"income": "Income",
|
|
"transfers": "Transfers",
|
|
"totalPlanned": "Total Planned",
|
|
"totalActual": "Total Actual",
|
|
"totalDifference": "Difference",
|
|
"noCategories": "No categories found. Create categories first to set up your budget.",
|
|
"saveAsTemplate": "Save as template",
|
|
"applyTemplate": "Apply template",
|
|
"noTemplates": "No templates saved yet.",
|
|
"templateName": "Template name",
|
|
"templateDescription": "Description (optional)",
|
|
"directSuffix": "(direct)",
|
|
"deleteTemplateConfirm": "Delete this template?",
|
|
"help": {
|
|
"title": "How to use Budget",
|
|
"tips": [
|
|
"Use the year navigator to switch between years",
|
|
"Click on any month cell to edit the planned amount — press Enter to save, Escape to cancel, Tab to move to next month",
|
|
"The Annual column shows the total of all 12 months",
|
|
"Use the split button to distribute the annual total evenly across all months",
|
|
"Save your budget as a template and apply it to specific months or all 12 at once"
|
|
]
|
|
}
|
|
},
|
|
"reports": {
|
|
"title": "Reports",
|
|
"period": "Period",
|
|
"byCategory": "Expenses by Category",
|
|
"overTime": "Category Over Time",
|
|
"trends": "Monthly Trends",
|
|
"budgetVsActual": "Budget vs Actual",
|
|
"subtotalsOnTop": "Subtotals on top",
|
|
"subtotalsOnBottom": "Subtotals on bottom",
|
|
"bva": {
|
|
"monthly": "Monthly",
|
|
"ytd": "Year-to-Date",
|
|
"dollarVar": "$ Var",
|
|
"pctVar": "% Var",
|
|
"noData": "No budget or transaction data for this period."
|
|
},
|
|
"dynamic": "Dynamic Report",
|
|
"export": "Export",
|
|
"pivot": {
|
|
"availableFields": "Available Fields",
|
|
"rows": "Rows",
|
|
"columns": "Columns",
|
|
"filters": "Filters",
|
|
"values": "Values",
|
|
"addTo": "Add to...",
|
|
"year": "Year",
|
|
"month": "Month",
|
|
"categoryType": "Type",
|
|
"level1": "Category (Level 1)",
|
|
"level2": "Category (Level 2)",
|
|
"level3": "Category (Level 3)",
|
|
"periodic": "Periodic Amount",
|
|
"ytd": "Year-to-Date (YTD)",
|
|
"subtotal": "Subtotal",
|
|
"total": "Total",
|
|
"viewTable": "Table",
|
|
"viewChart": "Chart",
|
|
"viewBoth": "Both",
|
|
"noConfig": "Add fields to generate the report",
|
|
"noData": "No data for this configuration",
|
|
"fullscreen": "Full screen",
|
|
"exitFullscreen": "Exit full screen",
|
|
"rightClickExclude": "Right-click to exclude"
|
|
},
|
|
"help": {
|
|
"title": "How to use Reports",
|
|
"tips": [
|
|
"Switch between Trends, By Category, and Over Time views using the tabs",
|
|
"Use the period selector to adjust the time range for all charts",
|
|
"Monthly Trends shows your income and expenses over time",
|
|
"Category Over Time tracks how spending in each category evolves",
|
|
"Dynamic Report lets you build custom pivot tables by assigning dimensions to rows, columns, and filters"
|
|
]
|
|
}
|
|
},
|
|
"settings": {
|
|
"title": "Settings",
|
|
"version": "Version {{version}}",
|
|
"updates": {
|
|
"title": "Updates",
|
|
"checkButton": "Check for updates",
|
|
"checking": "Checking for updates...",
|
|
"upToDate": "App is up to date",
|
|
"available": "Version {{version}} available",
|
|
"downloadButton": "Download and install",
|
|
"downloading": "Downloading...",
|
|
"readyToInstall": "Update ready to install",
|
|
"installButton": "Install and restart",
|
|
"installing": "Installing...",
|
|
"error": "Update failed",
|
|
"retryButton": "Retry",
|
|
"releaseNotes": "What's New",
|
|
"notes": {
|
|
"0.4.0": "### Added\n- Categories: support for 3 levels of hierarchy (e.g., Recurring Expenses → Insurance → Car Insurance)\n- Dynamic Report: new \"Category (Level 3)\" pivot field\n- Budget: intermediate subtotals and 3-level indentation for nested categories\n- Categories: automatic `is_inputable` management when creating/deleting subcategories\n- Categories: depth validation prevents creating a 4th level\n\n### Fixed\n- Auto-categorization: keywords starting/ending with special characters (`[`, `]`, `(`, `)`, `-`, etc.) now match correctly\n- Auto-categorization: pre-compile regex patterns for better batch performance",
|
|
"0.3.11": "### Added\n- Dynamic Report: support multiple column dimensions (composite column keys)\n\n### Fixed\n- Dynamic Report: no longer affected by global page date filters — uses only its own panel filters",
|
|
"0.3.10": "### Added\n- Dynamic Report: fields can now be used in multiple zones simultaneously (rows + filters, columns + filters)\n- Dynamic Report: right-click on a filter value to exclude it (shown with strikethrough in red)\n- \"This year\" period option in reports and dashboard (Jan 1 to today)",
|
|
"0.3.9": "### Added\n- Dynamic Report (pivot table): compose custom reports by assigning dimensions to rows, columns, filters and measures to values\n- Delete keywords from the \"All Keywords\" view",
|
|
"0.3.8": "### Added\n- Custom date range picker for reports and dashboard\n- Toggle to position subtotals above or below detail rows\n- Display release notes from CHANGELOG in GitHub releases and in-app updater"
|
|
}
|
|
},
|
|
"dataManagement": {
|
|
"title": "Data Management",
|
|
"export": {
|
|
"title": "Export",
|
|
"modeLabel": "What to export",
|
|
"modeTransactionsWithCategories": "Transactions with categories",
|
|
"modeTransactionsOnly": "Transactions only",
|
|
"modeCategoriesOnly": "Categories only",
|
|
"formatLabel": "Format",
|
|
"csvDisabledNote": "transactions only",
|
|
"encryptLabel": "Encrypt with password",
|
|
"passwordPlaceholder": "Password (min 8 characters)",
|
|
"passwordConfirmPlaceholder": "Confirm password",
|
|
"passwordTooShort": "Password must be at least 8 characters",
|
|
"passwordMismatch": "Passwords do not match",
|
|
"button": "Export",
|
|
"success": "Export completed successfully"
|
|
},
|
|
"import": {
|
|
"title": "Import",
|
|
"description": "Import data from a previously exported file. This will replace existing data.",
|
|
"button": "Import from file",
|
|
"passwordRequired": "This file is encrypted. Enter the password to decrypt it.",
|
|
"passwordPlaceholder": "Password",
|
|
"decrypt": "Decrypt",
|
|
"confirmTitle": "Replace Data",
|
|
"willDeleteLabel": "The following data will be deleted:",
|
|
"willDeleteCategories": "All categories, suppliers, and keywords",
|
|
"willDeleteTransactions": "All transactions and import history",
|
|
"willDeleteAll": "All transactions, categories, suppliers, keywords, and import history",
|
|
"willImportLabel": "The following data will be imported:",
|
|
"countCategories": "{{count}} category(ies)",
|
|
"countSuppliers": "{{count}} supplier(s)",
|
|
"countKeywords": "{{count}} keyword(s)",
|
|
"countTransactions": "{{count}} transaction(s)",
|
|
"irreversibleWarning": "This action is irreversible. All existing data of the selected type will be permanently deleted and replaced.",
|
|
"typeToConfirm": "Type \"{{word}}\" to confirm:",
|
|
"confirmWord": "REPLACE",
|
|
"replaceButton": "Replace Data",
|
|
"success": "Import completed successfully",
|
|
"tryAgain": "Try again"
|
|
}
|
|
},
|
|
"userGuide": {
|
|
"title": "User Guide",
|
|
"description": "Learn how to use all features of the app"
|
|
},
|
|
"logs": {
|
|
"title": "Logs",
|
|
"clear": "Clear",
|
|
"copy": "Copy",
|
|
"copied": "Copied!",
|
|
"empty": "No logs",
|
|
"filterAll": "All"
|
|
},
|
|
"dataSafeNotice": "Your data is safe — only the app binary is replaced, your database is not modified.",
|
|
"help": {
|
|
"title": "About Settings",
|
|
"tips": [
|
|
"Check for app updates and install them directly from this page",
|
|
"Your data is stored locally and is never affected by updates",
|
|
"Change the app language using the language selector in the sidebar"
|
|
]
|
|
}
|
|
},
|
|
"charts": {
|
|
"hideCategory": "Hide category",
|
|
"viewTransactions": "View transactions",
|
|
"hiddenCategories": "Hidden",
|
|
"showAll": "Show all",
|
|
"total": "Total",
|
|
"transactions": "transactions",
|
|
"clickToShow": "Click to show"
|
|
},
|
|
"months": {
|
|
"jan": "Jan",
|
|
"feb": "Feb",
|
|
"mar": "Mar",
|
|
"apr": "Apr",
|
|
"may": "May",
|
|
"jun": "Jun",
|
|
"jul": "Jul",
|
|
"aug": "Aug",
|
|
"sep": "Sep",
|
|
"oct": "Oct",
|
|
"nov": "Nov",
|
|
"dec": "Dec"
|
|
},
|
|
"docs": {
|
|
"title": "User Guide",
|
|
"backToSettings": "Back to Settings",
|
|
"print": "Print",
|
|
"features": "Features",
|
|
"howTo": "How To",
|
|
"quickStart": "Quick Start",
|
|
"tipsHeader": "Tips",
|
|
"gettingStarted": {
|
|
"title": "Getting Started",
|
|
"overview": "Simpl'Result helps you track your personal finances by importing bank statements, categorizing transactions, setting budgets, and generating reports. The app is available on Windows and Linux.",
|
|
"features": [
|
|
"Import CSV bank statements from multiple sources",
|
|
"Automatic and manual transaction categorization",
|
|
"Split a transaction across multiple categories",
|
|
"Budget planning with monthly and annual views",
|
|
"Visual reports and interactive charts with context menu",
|
|
"Multiple profiles with separate databases and optional PIN",
|
|
"Dark mode with warm gray palette",
|
|
"Data export and import with optional AES-256 encryption"
|
|
],
|
|
"steps": [
|
|
"On first launch, choose or create a profile — each profile has its own database",
|
|
"Go to Settings and set your import folder — create one subfolder per bank account",
|
|
"Place your CSV bank statements in the corresponding subfolder",
|
|
"Open the Import page and configure your source (column mapping, delimiter, date format)",
|
|
"Import your transactions, then head to Categories to set up keyword rules",
|
|
"Use Auto-categorize on the Transactions page to apply your rules in bulk",
|
|
"Set up your Budget and track progress via Reports"
|
|
],
|
|
"tips": [
|
|
"You can switch between English and French using the language selector in the sidebar",
|
|
"Toggle dark mode using the button in the sidebar",
|
|
"Each page has a help icon (?) in the header with quick tips",
|
|
"Your data is stored locally on your computer — nothing is sent to the cloud"
|
|
]
|
|
},
|
|
"profiles": {
|
|
"title": "Profiles",
|
|
"overview": "Manage multiple independent profiles, each with its own database. Ideal for separating personal and business finances, or for multiple users on the same computer.",
|
|
"features": [
|
|
"Create multiple profiles with custom names and colors",
|
|
"Each profile has its own separate database",
|
|
"Optional PIN protection (numeric code)",
|
|
"Quick profile switching from the sidebar",
|
|
"Delete a profile along with all its data"
|
|
],
|
|
"steps": [
|
|
"Click the profile selector in the sidebar to see available profiles",
|
|
"Click Manage Profiles to create, edit, or delete profiles",
|
|
"Create a new profile by choosing a name, color, and optional PIN",
|
|
"Switch between profiles by clicking the one you want in the selector"
|
|
],
|
|
"tips": [
|
|
"A default profile is automatically created on first launch",
|
|
"The PIN is requested each time you access a protected profile",
|
|
"Deleting a profile permanently removes all its data — this action cannot be undone"
|
|
]
|
|
},
|
|
"dashboard": {
|
|
"title": "Dashboard",
|
|
"overview": "The Dashboard gives you an at-a-glance summary of your financial situation for a selected time period.",
|
|
"features": [
|
|
"Balance, income, and expense summary cards",
|
|
"Expense breakdown by category (pie chart with SVG patterns)",
|
|
"Recent transactions list",
|
|
"Adjustable time period selector",
|
|
"Context menu (right-click) to hide a category or view its transactions"
|
|
],
|
|
"steps": [
|
|
"Use the period selector in the top-right to choose a time range (month, 3 months, year, etc.)",
|
|
"Review the summary cards for your balance, total income, and total expenses",
|
|
"Check the pie chart to see how your spending is distributed across categories",
|
|
"Right-click a category in the chart to hide it or view its transaction details",
|
|
"Scroll down to see your most recent transactions"
|
|
],
|
|
"tips": [
|
|
"The balance is calculated as income minus expenses for the selected period",
|
|
"Hidden categories appear as dismissible chips above the chart — click Show All to restore them",
|
|
"SVG patterns (lines, dots, crosshatch) help distinguish categories beyond just color"
|
|
]
|
|
},
|
|
"import": {
|
|
"title": "Import",
|
|
"overview": "Import bank statements from CSV files using a step-by-step wizard. Each bank account is represented as a source folder.",
|
|
"features": [
|
|
"Multi-step import wizard with data preview",
|
|
"Configurable column mapping, delimiter, and date format",
|
|
"Automatic duplicate detection (within batch and against existing data)",
|
|
"Import templates to save and reuse source configurations",
|
|
"Import history with the ability to delete past imports"
|
|
],
|
|
"steps": [
|
|
"Set your import folder via the folder picker at the top of the page",
|
|
"Create a subfolder for each bank/source and place CSV files inside",
|
|
"Click on a source to open the import wizard",
|
|
"Configure the delimiter, encoding, date format, and column mapping",
|
|
"Select which files to import and preview the parsed data",
|
|
"Check for duplicates, review the summary, then confirm the import"
|
|
],
|
|
"tips": [
|
|
"Save your configuration as a template so you don't have to reconfigure each time",
|
|
"Files already imported are marked with a badge — re-importing them will trigger duplicate detection",
|
|
"You can delete an import from the history to remove all its transactions"
|
|
]
|
|
},
|
|
"transactions": {
|
|
"title": "Transactions",
|
|
"overview": "Browse, filter, sort, and categorize all your imported transactions. This is where you organize your financial data.",
|
|
"features": [
|
|
"Search and filter by description, category, source, or date range",
|
|
"Quick period selectors (this month, last month, this year, etc.)",
|
|
"Sortable columns (date, description, amount, category)",
|
|
"Inline category assignment via dropdown",
|
|
"Auto-categorize based on keyword rules",
|
|
"Add keywords directly from a transaction",
|
|
"Split a transaction across multiple categories",
|
|
"Transaction notes"
|
|
],
|
|
"steps": [
|
|
"Use the filter bar to narrow down transactions by text, category, source, or date",
|
|
"Click a column header to sort ascending or descending",
|
|
"To categorize a transaction, click its category dropdown and select a category",
|
|
"To auto-categorize all uncategorized transactions, click the Auto-categorize button",
|
|
"To add a keyword rule from a transaction, click the + icon and enter the keyword",
|
|
"To split a transaction across categories, use the Split button and add amounts per category"
|
|
],
|
|
"tips": [
|
|
"Use the quick period buttons (This month, Last month, etc.) for fast date filtering",
|
|
"Auto-categorize only affects uncategorized transactions — it won't overwrite manual assignments",
|
|
"Adding a keyword from a transaction pre-fills the category so you can quickly build rules",
|
|
"Split transactions display a visual indicator and show the breakdown details"
|
|
]
|
|
},
|
|
"categories": {
|
|
"title": "Categories",
|
|
"overview": "Manage your category tree with subcategories, keyword rules for auto-categorization, and custom colors.",
|
|
"features": [
|
|
"Hierarchical categories with parent/child relationships",
|
|
"Three category types: Expense, Income, Transfer",
|
|
"Keyword rules with priority levels for auto-categorization",
|
|
"Custom colors for chart display",
|
|
"Drag-and-drop to reorder categories or change their parent",
|
|
"Toggle categories as inputable or non-inputable",
|
|
"All Keywords view to see all rules at a glance",
|
|
"Re-initialize categories to defaults"
|
|
],
|
|
"steps": [
|
|
"Click Add Category to create a new category — choose a name, type, and optional parent",
|
|
"Select a category in the tree to view its details and keyword list",
|
|
"Drag and drop a category in the tree to reorder it or move it under a different parent",
|
|
"Add keywords that match transaction descriptions for auto-categorization",
|
|
"Set keyword priority to resolve conflicts when multiple categories match",
|
|
"Use the color picker to assign a custom color for charts"
|
|
],
|
|
"tips": [
|
|
"Non-inputable categories are hidden from budget and transaction dropdowns but still visible in reports",
|
|
"Higher priority keywords win when multiple categories match the same transaction",
|
|
"Use the All Keywords view to get a global overview of your categorization rules",
|
|
"Use Re-initialize to reset categories to defaults — this will unlink all transaction categories"
|
|
]
|
|
},
|
|
"adjustments": {
|
|
"title": "Adjustments",
|
|
"overview": "Add manual entries that don't come from bank imports, and view transaction splits created from the Transactions page.",
|
|
"features": [
|
|
"Create named adjustment groups with multiple entries",
|
|
"Assign a category to each entry",
|
|
"Mark adjustments as recurring",
|
|
"View transaction splits in a dedicated section"
|
|
],
|
|
"steps": [
|
|
"Click New Adjustment to create an adjustment group",
|
|
"Add entries with a description, amount, date, and category",
|
|
"Toggle the recurring flag if the adjustment should repeat each period",
|
|
"View the Transaction Splits section to see splits created from the Transactions page"
|
|
],
|
|
"tips": [
|
|
"Adjustments appear in your budget actuals alongside imported transactions",
|
|
"Use adjustments for planned expenses that haven't hit your bank account yet",
|
|
"Transaction splits are created from the Transactions page and appear here automatically"
|
|
]
|
|
},
|
|
"budget": {
|
|
"title": "Budget",
|
|
"overview": "Plan your monthly budget for each category and track planned vs. actual spending throughout the year.",
|
|
"features": [
|
|
"Monthly budget grid for all categories",
|
|
"Annual column with automatic totals",
|
|
"Split annual amount evenly across 12 months",
|
|
"Budget templates to save and apply configurations",
|
|
"Parent category subtotals"
|
|
],
|
|
"steps": [
|
|
"Use the year navigator to select the budget year",
|
|
"Click on any month cell to enter a planned amount",
|
|
"Press Enter to save, Escape to cancel, or Tab to move to the next month",
|
|
"Use the split button (on the Annual column) to distribute evenly across all months",
|
|
"Save your budget as a template to reuse it in future years"
|
|
],
|
|
"tips": [
|
|
"The Annual column auto-sums all 12 months — a warning appears if monthly totals don't match",
|
|
"Templates can be applied to specific months or all 12 at once",
|
|
"Parent categories show subtotals aggregated from their children"
|
|
]
|
|
},
|
|
"reports": {
|
|
"title": "Reports",
|
|
"overview": "Visualize your financial data with interactive charts and compare your budget plan against actual spending.",
|
|
"features": [
|
|
"Monthly Trends: income vs. expenses over time (bar chart)",
|
|
"Expenses by Category: spending breakdown (pie chart)",
|
|
"Category Over Time: track how each category evolves (line chart)",
|
|
"Budget vs Actual: monthly and year-to-date comparison table",
|
|
"SVG patterns (lines, dots, crosshatch) to distinguish categories",
|
|
"Context menu (right-click) to hide a category or view its transactions"
|
|
],
|
|
"steps": [
|
|
"Use the tabs to switch between Trends, By Category, Over Time, and Budget vs Actual views",
|
|
"Adjust the time period using the period selector",
|
|
"Right-click a category in any chart to hide it or view its transaction details",
|
|
"Hidden categories appear as dismissible chips above the chart — click them to show again",
|
|
"In Budget vs Actual, toggle between Monthly and Year-to-Date views"
|
|
],
|
|
"tips": [
|
|
"Hidden categories are remembered while you stay on the page — click Show All to reset",
|
|
"The period selector applies to all chart tabs simultaneously",
|
|
"Budget vs Actual shows dollar and percentage variance for each category",
|
|
"SVG patterns help colorblind users distinguish categories in charts"
|
|
]
|
|
},
|
|
"settings": {
|
|
"title": "Settings",
|
|
"overview": "Configure app preferences, check for updates, access the user guide, and manage your data with export/import tools.",
|
|
"features": [
|
|
"App version display",
|
|
"Complete user guide accessible directly from settings",
|
|
"Automatic update checker with one-click install",
|
|
"Data export (transactions, categories, or both) in JSON or CSV format",
|
|
"Data import from a previously exported file",
|
|
"Optional AES-256-GCM encryption for exported files"
|
|
],
|
|
"steps": [
|
|
"Click User Guide to access the full documentation",
|
|
"Click Check for Updates to see if a new version is available",
|
|
"Use the Data Management section to export or import your data",
|
|
"When exporting, choose what to include and optionally set a password for encryption",
|
|
"When importing, select a previously exported file — encrypted files will prompt for the password"
|
|
],
|
|
"tips": [
|
|
"Updates only replace the app binary — your database is never modified",
|
|
"Change the app language using the language selector in the sidebar",
|
|
"Export regularly to keep a backup of your data",
|
|
"The user guide can be printed or exported to PDF via the Print button"
|
|
]
|
|
}
|
|
},
|
|
"profile": {
|
|
"title": "Profiles",
|
|
"select": "Select a profile",
|
|
"create": "Create Profile",
|
|
"edit": "Edit Profile",
|
|
"delete": "Delete Profile",
|
|
"deleteConfirm": "Delete this profile and all its data? This cannot be undone.",
|
|
"name": "Profile Name",
|
|
"namePlaceholder": "Enter a name...",
|
|
"color": "Color",
|
|
"pin": "PIN",
|
|
"pinSet": "PIN set",
|
|
"pinNotSet": "No PIN",
|
|
"setPin": "Set PIN",
|
|
"removePin": "Remove PIN",
|
|
"enterPin": "Enter your PIN",
|
|
"wrongPin": "Wrong PIN. Try again.",
|
|
"switchProfile": "Switch Profile",
|
|
"manageProfiles": "Manage Profiles",
|
|
"default": "Default"
|
|
},
|
|
"error": {
|
|
"title": "An error occurred",
|
|
"startupTimeout": "Database connection timed out",
|
|
"unexpectedError": "An unexpected error occurred",
|
|
"showDetails": "Show details",
|
|
"hideDetails": "Hide details",
|
|
"refresh": "Refresh",
|
|
"checkUpdate": "Check for updates",
|
|
"updateAvailable": "Update available: v{{version}}",
|
|
"upToDate": "The application is up to date",
|
|
"contactUs": "Contact us",
|
|
"contactEmail": "Send an email to",
|
|
"reportIssue": "Report an issue"
|
|
},
|
|
"common": {
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"delete": "Delete",
|
|
"edit": "Edit",
|
|
"add": "Add",
|
|
"search": "Search",
|
|
"filter": "Filter",
|
|
"loading": "Loading...",
|
|
"noResults": "No results",
|
|
"confirm": "Confirm",
|
|
"language": "Language",
|
|
"total": "Total",
|
|
"darkMode": "Dark mode",
|
|
"lightMode": "Light mode"
|
|
}
|
|
}
|