Added
- Budget: expense categories are now stored in the database (
budget_categoriestable) as stable English slugs, replacing hardcoded German strings - Budget: subcategory support for all expense entries — 35 predefined subcategories across 8 top-level categories (housing, food, transport, personal_health, leisure, shopping_clothing, education, financial_other)
- Budget: users can add custom categories and subcategories directly from the entry modal via inline "+ category" / "+ subcategory" buttons
- Budget: new API endpoints
POST /api/v1/budget/categoriesandPOST /api/v1/budget/categories/:key/subcategoriesfor custom category/subcategory creation - Budget: subcategory displayed alongside category in each entry's metadata line
- Budget: CSV export now includes a subcategory column and English column headers
- i18n: all 14 non-German locales extended with new budget category keys (
catHousing,catTransport,catPersonalHealth,catShoppingClothing,catFinancialOther) and all 35 subcategory label keys - All server-side log messages and API error strings translated from German to English — contributed by @rafaelfoster
Changed
- Budget category labels for existing entries migrated to new slug keys via DB migration 15; display names remain fully localised through the i18n system