fina/backup/first -fina app/app/translations.py

1170 lines
60 KiB
Python
Raw Permalink Normal View History

2025-12-26 00:52:56 +00:00
# Translation system for FINA
translations = {
'en': {
# Navigation
'nav.new_category': 'New Category',
'nav.subscriptions': 'Subscriptions',
'nav.settings': 'Settings',
'nav.logout': 'Logout',
# Dashboard
'dashboard.title': 'Dashboard',
'dashboard.metrics': 'Metrics',
'dashboard.total_spent': 'Total Spent',
'dashboard.total_expenses': 'Total Expenses',
'dashboard.view_all': 'View All',
'dashboard.no_categories': 'No categories yet',
'dashboard.create_first': 'Create your first category to start tracking expenses',
'dashboard.monthly_spending': 'Monthly Spending',
'dashboard.monthly_expenses': 'Monthly Expenses',
'dashboard.expenses_by_category': 'Expenses by Category',
'dashboard.category_breakdown': 'Category Breakdown',
'dashboard.all_categories': 'All Categories',
'dashboard.categories_section': 'Categories',
# Categories
'category.create': 'Create Category',
'category.edit': 'Edit Category',
'category.view': 'View Category',
'category.name': 'Category Name',
'category.description': 'Description',
'category.color': 'Color',
'category.spent': 'Spent',
'category.expenses': 'Expenses',
'category.delete': 'Delete Category',
'category.add_expense': 'Add Expense',
'category.no_expenses': 'No expenses in this category yet',
# Expenses
'expense.create': 'Create Expense',
'expense.edit': 'Edit Expense',
'expense.amount': 'Amount',
'expense.date': 'Date',
'expense.description': 'Description',
'expense.receipt': 'Receipt',
'expense.upload_receipt': 'Upload Receipt',
'expense.tags': 'Tags',
'expense.delete': 'Delete Expense',
'expense.view_receipt': 'View Receipt',
# Authentication
'auth.login': 'Login',
'auth.register': 'Register',
'auth.logout': 'Logout',
'auth.username': 'Username',
'auth.email': 'Email',
'auth.password': 'Password',
'auth.confirm_password': 'Confirm Password',
'auth.remember_me': 'Remember Me',
'auth.forgot_password': 'Forgot Password?',
'auth.no_account': "Don't have an account?",
'auth.have_account': 'Already have an account?',
'auth.sign_in': 'Sign In',
'auth.sign_up': 'Sign Up',
'auth.welcome_back': 'Welcome back!',
'auth.create_account': 'Create your account',
'auth.verify_2fa': 'Verify Two-Factor Authentication',
'auth.enter_code': 'Enter the 6-digit code from your authenticator app',
'auth.verification_code': 'Verification Code',
'auth.verify': 'Verify',
# Settings
'settings.title': 'Settings',
'settings.profile': 'Profile',
'settings.security': 'Security',
'settings.users': 'User Management',
'settings.import_export': 'Import/Export',
'settings.language': 'Language',
'settings.currency': 'Currency',
'settings.save': 'Save Changes',
'settings.cancel': 'Cancel',
'settings.edit_profile': 'Edit Profile',
'settings.setup_2fa': 'Setup Two-Factor Authentication',
'settings.disable_2fa': 'Disable 2FA',
'settings.enable_2fa': 'Enable 2FA',
'settings.create_user': 'Create User',
'settings.edit_user': 'Edit User',
'settings.create_tag': 'Create Tag',
'settings.export_data': 'Export Data',
'settings.import_data': 'Import Data',
'settings.tags': 'Tags',
'settings.profile_settings': 'Profile Settings',
'settings.username': 'Username',
'settings.email': 'Email',
'settings.new_password': 'New Password (leave blank to keep current)',
'settings.new_password_placeholder': 'Enter new password',
'settings.2fa_title': 'Two-Factor Authentication (2FA)',
'settings.2fa_enabled': '2FA is currently enabled on your account.',
'settings.2fa_enabled_desc': 'Your account is protected with an additional layer of security.',
'settings.2fa_disabled': '2FA is currently disabled.',
'settings.2fa_disabled_desc': 'Enable 2FA to add an extra layer of security to your account.',
'settings.2fa_what_is': 'What is 2FA?',
'settings.2fa_what_is_desc': 'Two-Factor Authentication adds an extra layer of security by requiring a code from your phone in addition to your password when logging in.',
'settings.2fa_disable_confirm': 'Are you sure you want to disable 2FA?',
'settings.manage_tags': 'Manage Tags',
'settings.create_tag_btn': 'Create Tag',
'settings.delete_tag_confirm': 'Delete tag {name}?',
'settings.export_title': 'Export Data',
'settings.export_desc': 'Download all your expenses as CSV file',
'settings.export_btn': 'Export to CSV',
'settings.import_title': 'Import Data',
'settings.import_desc': 'Import expenses from CSV file. Format: Category, Description, Amount, Date (YYYY-MM-DD), Paid By, Tags',
'settings.import_file_label': 'CSV File',
'settings.import_btn': 'Import CSV',
'settings.users_title': 'User Management',
'settings.create_user_btn': 'Create User',
'settings.table_username': 'Username',
'settings.table_email': 'Email',
'settings.table_role': 'Role',
'settings.table_currency': 'Currency',
'settings.table_2fa': '2FA',
'settings.table_actions': 'Actions',
'settings.role_admin': 'Admin',
'settings.role_user': 'User',
'settings.2fa_status_enabled': 'Enabled',
'settings.2fa_status_disabled': 'Disabled',
'settings.delete_user_confirm': 'Delete user {name}?',
'settings.no_users': 'No users found',
# Common
'common.save': 'Save',
'common.cancel': 'Cancel',
'common.delete': 'Delete',
'common.edit': 'Edit',
'common.view': 'View',
'common.back': 'Back',
'common.search': 'Search',
'common.filter': 'Filter',
'common.all': 'All',
'common.select': 'Select',
'common.yes': 'Yes',
'common.no': 'No',
'common.loading': 'Loading...',
'common.error': 'Error',
# Subscriptions
'subscription.title': 'Subscriptions',
'subscription.today': 'Today',
'subscription.tomorrow': 'Tomorrow',
'subscription.days': 'days',
'subscription.no_upcoming': 'No upcoming payments in the next 30 days',
'subscription.add': 'Add Subscription',
'subscription.add_manual': 'Add Manually',
'subscription.detect': 'Detect Recurring',
'subscription.name': 'Subscription Name',
'subscription.frequency': 'Frequency',
'subscription.freq_weekly': 'Weekly',
'subscription.freq_biweekly': 'Bi-weekly',
'subscription.freq_monthly': 'Monthly',
'subscription.freq_quarterly': 'Quarterly',
'subscription.freq_yearly': 'Yearly',
'subscription.freq_custom': 'Custom',
'subscription.active': 'Active Subscriptions',
'subscription.active_list': 'Your Subscriptions',
'subscription.monthly_cost': 'Monthly Cost',
'subscription.yearly_cost': 'Yearly Cost',
'subscription.annual': 'Annual',
'subscription.next_payment': 'Next Payment',
'subscription.suggestions': 'Smart Suggestions',
'subscription.suggestions_desc': 'We detected these recurring patterns in your expenses',
'subscription.confidence': 'Confidence',
'subscription.occurrences': 'Occurrences',
'subscription.times': 'times',
'subscription.period': 'Period',
'subscription.accept': 'Accept',
'subscription.dismiss': 'Dismiss',
'subscription.delete_confirm': 'Are you sure you want to delete this subscription?',
'subscription.no_subscriptions': 'No Subscriptions Yet',
'subscription.no_subscriptions_desc': 'Track your recurring expenses automatically or add them manually',
'subscription.notes': 'Notes',
'subscription.notes_placeholder': 'Add any notes about this subscription...',
'subscription.custom_interval': 'Repeat Every (Days)',
'subscription.custom_interval_desc': 'Enter number of days between occurrences',
'subscription.start_date': 'Start Date',
'subscription.start_date_desc': 'First payment date',
'subscription.end_date': 'End Date',
'subscription.end_date_desc': 'Leave blank for ongoing subscription',
'subscription.total_occurrences': 'Total Payments',
'subscription.total_occurrences_desc': 'Limit number of payments (optional)',
'subscription.occurrences_remaining': 'Remaining',
'subscription.auto_create': 'Auto-Create Expenses',
'subscription.auto_create_desc': 'Automatically add expense when payment is due',
'subscription.auto_create_tooltip': 'Expenses will be created automatically on due date',
'subscription.create_due': 'Create Due Expenses',
'subscription.auto': 'AUTO',
'subscription.every': 'Every',
'common.optional': 'Optional',
'common.success': 'Success',
'common.warning': 'Warning',
'common.info': 'Info',
# Budget Alerts
'budget.title': 'Budget Management',
'budget.monthly_limit': 'Monthly Budget Limit',
'budget.monthly_limit_desc': 'Set a spending limit for this category',
'budget.alert_threshold': 'Alert Threshold',
'budget.alert_threshold_desc': 'Get notified when spending reaches this percentage (50-200%)',
'budget.current_month': 'Current Month',
'budget.spent': 'Spent',
'budget.budget': 'Budget',
'budget.remaining': 'Remaining',
'budget.alert_settings': 'Budget Alert Settings',
'budget.enable_alerts': 'Enable budget alert emails',
'budget.enable_alerts_desc': 'Receive email notifications when you exceed budget limits',
'budget.alert_email': 'Alert Email',
'budget.alert_email_desc': 'Use different email for alerts (defaults to account email)',
'budget.over_budget': 'Over Budget',
'budget.within_budget': 'Within Budget',
'budget.percentage_used': '% Used',
# Empty States
'empty.welcome_title': 'Welcome to FINA!',
'empty.welcome_message': 'Create your first category to start tracking expenses',
'empty.create_category': 'Create Category',
'empty.no_expenses_title': 'No expenses yet',
'empty.no_expenses_message': 'Start tracking by adding your first expense',
'empty.add_expense': 'Add Expense',
'empty.no_tags_title': 'No tags yet',
'empty.no_tags_message': 'Create your first tag!',
# Messages
'message.category_created': 'Category created successfully',
'message.category_updated': 'Category updated successfully',
'message.category_deleted': 'Category deleted successfully',
'message.expense_created': 'Expense added successfully',
'message.expense_updated': 'Expense updated successfully',
'message.expense_deleted': 'Expense deleted successfully',
'message.login_success': 'Logged in successfully',
'message.logout_success': 'Logged out successfully',
'message.register_success': 'Account created successfully',
'message.profile_updated': 'Profile updated successfully',
'message.settings_updated': 'Settings updated successfully',
# Months
'month.january': 'January',
'month.february': 'February',
'month.march': 'March',
'month.april': 'April',
'month.may': 'May',
'month.june': 'June',
'month.july': 'July',
'month.august': 'August',
'month.september': 'September',
'month.october': 'October',
'month.november': 'November',
'month.december': 'December',
# PWA
'pwa.install': 'Install',
'pwa.not_now': 'Not Now',
'pwa.install_title': 'Install FINA',
'pwa.install_description': 'Install our app for quick access and offline support',
'pwa.connection_restored': 'Connection restored',
'pwa.offline': 'You are offline. Some features may be limited.',
# OCR
'ocr.take_photo': 'Take Photo',
'ocr.processing': 'Processing receipt...',
'ocr.ai_extraction': 'AI will extract amount, date, and merchant',
'ocr.detected': 'AI Detected',
'ocr.use_this': 'Use This',
'ocr.merchant': 'Merchant',
'ocr.confidence': 'Confidence',
'ocr.failed': 'Could not extract data from receipt',
'ocr.error': 'OCR Error',
'expense.receipt_hint': 'Supports: JPG, PNG, PDF',
# Search
'search.title': 'Search',
'search.subtitle': 'Search expenses, categories, subscriptions, and more',
'search.placeholder': 'Search by description, amount, date, tags...',
'search.button': 'Search',
'search.quick_search': 'Quick search...',
'search.results_for': 'Results for',
'search.results_found': 'results found',
'search.no_results': 'No results found',
'search.no_results_message': 'Try different keywords or search terms',
'search.expenses': 'Expenses',
'search.categories': 'Categories',
'search.subscriptions': 'Subscriptions',
'search.tags': 'Tags',
'search.expenses_count': 'expenses',
'search.inactive': 'Inactive',
'search.welcome_title': 'Search anything',
'search.welcome_message': 'Quickly find expenses by description, amount, date, category, merchant, or tags. Works with numbers, dates, and text.',
'search.examples_title': 'Try these examples:',
'search.tip_spelling': 'Check your spelling of keywords',
'search.tip_keywords': 'Try different keywords or more general terms',
'search.tip_date': 'For dates use format: YYYY-MM-DD or DD/MM/YYYY',
'search.tip_amount': 'For amounts use numbers: 45.99 or 45',
# Predictions
'predictions.title': 'Spending Predictions',
'predictions.subtitle': 'AI-powered forecasts based on your spending history',
'predictions.next_months': 'Next {n} Months',
'predictions.total_predicted': 'Total Predicted',
'predictions.confidence': 'Confidence',
'predictions.confidence_high': 'High',
'predictions.confidence_medium': 'Medium',
'predictions.confidence_low': 'Low',
'predictions.trend': 'Trend',
'predictions.trend_increasing': 'Increasing',
'predictions.trend_decreasing': 'Decreasing',
'predictions.trend_stable': 'Stable',
'predictions.insights': 'Smart Insights',
'predictions.forecast': 'Spending Forecast',
'predictions.by_category': 'By Category',
'predictions.based_on': 'Based on {n} months of data',
'predictions.no_data': 'Not enough spending history for accurate predictions',
'predictions.no_data_desc': 'Add more expenses to see AI-powered predictions',
'predictions.chart.title': 'Predicted vs Historical',
'predictions.month': 'Month',
'predictions.amount': 'Amount',
'predictions.view_details': 'View Details',
'predictions.methodology': 'How we calculate',
'predictions.methodology_desc': 'Our predictions use weighted averages, trend analysis, and seasonal adjustments to forecast your future spending with high accuracy.',
# Bank Import
'bank.import_title': 'Bank Statement Import',
'bank.import_subtitle': 'Upload your bank statement (PDF or CSV) to automatically import transactions',
'bank.upload_file': 'Upload Bank Statement',
'bank.select_file': 'Select File',
'bank.drag_drop': 'Drag and drop your file here',
'bank.or_click': 'or click to browse',
'bank.browse_files': 'Browse Files',
'bank.remove': 'Remove',
'bank.supported_formats': 'Supported Formats',
'bank.format_pdf': 'PDF - Bank statements from most banks',
'bank.format_csv': 'CSV - Exported transaction history',
'bank.format_hint': 'Files must be less than 10MB. The system will automatically detect your bank format.',
'bank.upload_parse': 'Upload and Parse',
'bank.processing': 'Processing',
'bank.how_it_works': 'How It Works',
'bank.step_1': 'Download your bank statement from your online banking portal',
'bank.step_2': 'Upload the PDF or CSV file using the form above',
'bank.step_3': 'Review the automatically extracted transactions',
'bank.step_4': 'Map transactions to your expense categories',
'bank.step_5': 'Confirm to import selected transactions',
'bank.supported_banks': 'Supported Banks',
'bank.romania': 'Romania',
'bank.international': 'International',
'bank.generic': 'Generic Formats',
'bank.generic_pdf': 'Any PDF statement with standard format',
'bank.generic_csv': 'Standard CSV with date, description, amount',
'bank.review_title': 'Review Transactions',
'bank.review_subtitle': 'Review and select transactions to import',
'bank.transactions_found': 'Transactions Found',
'bank.detected_format': 'Detected Format',
'bank.selected': 'Selected',
'bank.unmapped': 'Without Category',
'bank.parse_warnings': 'Parsing Warnings',
'bank.select_all': 'Select All',
'bank.select_expenses': 'Select Expenses Only',
'bank.select_income': 'Select Income Only',
'bank.transactions_to_import': 'Transactions to Import',
'bank.date': 'Date',
'bank.description': 'Description',
'bank.amount': 'Amount',
'bank.type': 'Type',
'bank.category': 'Category',
'bank.expense': 'Expense',
'bank.income': 'Income',
'bank.select_category': '-- Select Category --',
'bank.back': 'Back to Upload',
'bank.import_selected': 'Import Selected Transactions',
'bank.importing': 'Importing',
'bank.no_transactions_selected': 'Please select at least one transaction to import.',
'bank.confirm_unmapped': '{count} selected transactions do not have a category assigned. They will be skipped. Continue?',
'bank.not_all_banks_supported': 'Not all banks are supported. The system will attempt to automatically detect and parse your statement format. If parsing fails, try exporting as CSV with columns: Date, Description, Amount.',
'bank.format_not_recognized': 'Bank Format Not Recognized',
'bank.format_not_recognized_hint': 'We could not detect your specific bank format. The system extracted transactions using generic patterns. Please review carefully and verify all transactions are correct before importing.',
},
'ro': {
# Navigation
'nav.new_category': 'Categorie Nouă',
'nav.subscriptions': 'Abonamente',
'nav.settings': 'Setări',
'nav.logout': 'Deconectare',
# Dashboard
'dashboard.title': 'Panou de Control',
'dashboard.metrics': 'Statistici',
'dashboard.total_spent': 'Total Cheltuit',
'dashboard.total_expenses': 'Total Cheltuieli',
'dashboard.view_all': 'Vezi Tot',
'dashboard.no_categories': 'Nu există categorii încă',
'dashboard.create_first': 'Creează prima categorie pentru a începe urmărirea cheltuielilor',
'dashboard.monthly_spending': 'Cheltuieli Lunare',
'dashboard.monthly_expenses': 'Cheltuieli Lunare',
'dashboard.expenses_by_category': 'Cheltuieli pe Categorie',
'dashboard.category_breakdown': 'Defalcare pe Categorii',
'dashboard.all_categories': 'Toate Categoriile',
'dashboard.categories_section': 'Categorii',
# Categories
'category.create': 'Creare Categorie',
'category.edit': 'Editare Categorie',
'category.view': 'Vizualizare Categorie',
'category.name': 'Nume Categorie',
'category.description': 'Descriere',
'category.color': 'Culoare',
'category.spent': 'Cheltuit',
'category.expenses': 'Cheltuieli',
'category.delete': 'Șterge Categoria',
'category.add_expense': 'Adaugă Cheltuială',
'category.no_expenses': 'Nu există cheltuieli în această categorie încă',
# Expenses
'expense.create': 'Adaugă Cheltuială',
'expense.edit': 'Editare Cheltuială',
'expense.amount': 'Sumă',
'expense.date': 'Dată',
'expense.description': 'Descriere',
'expense.receipt': 'Bon',
'expense.upload_receipt': 'Încarcă Bon',
'expense.tags': 'Etichete',
'expense.delete': 'Șterge Cheltuiala',
'expense.view_receipt': 'Vezi Bonul',
# Authentication
'auth.login': 'Autentificare',
'auth.register': 'Înregistrare',
'auth.logout': 'Deconectare',
'auth.username': 'Nume Utilizator',
'auth.email': 'Email',
'auth.password': 'Parolă',
'auth.confirm_password': 'Confirmă Parola',
'auth.remember_me': 'Ține-mă Minte',
'auth.forgot_password': 'Ai uitat parola?',
'auth.no_account': 'Nu ai cont?',
'auth.have_account': 'Ai deja cont?',
'auth.sign_in': 'Autentifică-te',
'auth.sign_up': 'Înregistrează-te',
'auth.welcome_back': 'Bine ai revenit!',
'auth.create_account': 'Creează-ți contul',
'auth.verify_2fa': 'Verificare Autentificare cu Doi Factori',
'auth.enter_code': 'Introdu codul de 6 cifre din aplicația de autentificare',
'auth.verification_code': 'Cod de Verificare',
'auth.verify': 'Verifică',
# Settings
'settings.title': 'Setări',
'settings.profile': 'Profil',
'settings.security': 'Securitate',
'settings.users': 'Gestionare Utilizatori',
'settings.import_export': 'Import/Export',
'settings.language': 'Limbă',
'settings.currency': 'Monedă',
'settings.save': 'Salvează Modificările',
'settings.cancel': 'Anulează',
'settings.edit_profile': 'Editează Profilul',
'settings.setup_2fa': 'Configurare Autentificare cu Doi Factori',
'settings.disable_2fa': 'Dezactivează 2FA',
'settings.enable_2fa': 'Activează 2FA',
'settings.create_user': 'Creează Utilizator',
'settings.edit_user': 'Editează Utilizator',
'settings.create_tag': 'Creează Etichetă',
'settings.export_data': 'Exportă Date',
'settings.import_data': 'Importă Date',
'settings.tags': 'Etichete',
'settings.profile_settings': 'Setări Profil',
'settings.username': 'Nume utilizator',
'settings.email': 'Email',
'settings.new_password': 'Parolă Nouă (lasă gol pentru a păstra actuala)',
'settings.new_password_placeholder': 'Introdu parolă nouă',
'settings.2fa_title': 'Autentificare cu Doi Factori (2FA)',
'settings.2fa_enabled': '2FA este activat în cont.',
'settings.2fa_enabled_desc': 'Contul tău este protejat cu un nivel suplimentar de securitate.',
'settings.2fa_disabled': '2FA este dezactivat momentan.',
'settings.2fa_disabled_desc': 'Activează 2FA pentru a adăuga un nivel suplimentar de securitate contului tău.',
'settings.2fa_what_is': 'Ce este 2FA?',
'settings.2fa_what_is_desc': 'Autentificarea cu Doi Factori adaugă un nivel suplimentar de securitate solicitând un cod de pe telefon pe lângă parolă la autentificare.',
'settings.2fa_disable_confirm': 'Ești sigur că vrei să dezactivezi 2FA?',
'settings.manage_tags': 'Gestionează Etichete',
'settings.create_tag_btn': 'Creează Etichetă',
'settings.delete_tag_confirm': 'Șterge eticheta {name}?',
'settings.export_title': 'Exportă Date',
'settings.export_desc': 'Descarcă toate cheltuielile ca fișier CSV',
'settings.export_btn': 'Exportă în CSV',
'settings.import_title': 'Importă Date',
'settings.import_desc': 'Importă cheltuieli din fișier CSV. Format: Categorie, Descriere, Sumă, Dată (YYYY-MM-DD), Plătit De, Etichete',
'settings.import_file_label': 'Fișier CSV',
'settings.import_btn': 'Importă CSV',
'settings.users_title': 'Gestionare Utilizatori',
'settings.create_user_btn': 'Creează Utilizator',
'settings.table_username': 'Nume utilizator',
'settings.table_email': 'Email',
'settings.table_role': 'Rol',
'settings.table_currency': 'Monedă',
'settings.table_2fa': '2FA',
'settings.table_actions': 'Acțiuni',
'settings.role_admin': 'Administrator',
'settings.role_user': 'Utilizator',
'settings.2fa_status_enabled': 'Activat',
'settings.2fa_status_disabled': 'Dezactivat',
'settings.delete_user_confirm': 'Șterge utilizatorul {name}?',
'settings.no_users': 'Niciun utilizator găsit',
# Common
'common.save': 'Salvează',
'common.cancel': 'Anulează',
'common.delete': 'Șterge',
'common.edit': 'Editează',
'common.view': 'Vezi',
'common.back': 'Înapoi',
'common.search': 'Caută',
'common.filter': 'Filtrează',
'common.all': 'Toate',
'common.select': 'Selectează',
'common.yes': 'Da',
'common.no': 'Nu',
'common.loading': 'Se încarcă...',
'common.error': 'Eroare',
'common.success': 'Succes',
'common.warning': 'Avertisment',
'common.info': 'Informație',
# Subscriptions
'subscription.title': 'Abonamente',
'subscription.today': 'Astăzi',
'subscription.tomorrow': 'Mâine',
'subscription.days': 'zile',
'subscription.no_upcoming': 'Nicio plată în următoarele 30 de zile',
'subscription.add': 'Adaugă Abonament',
'subscription.add_manual': 'Adaugă Manual',
'subscription.detect': 'Detectează Recurente',
'subscription.name': 'Nume Abonament',
'subscription.frequency': 'Frecvență',
'subscription.freq_weekly': 'Săptămânal',
'subscription.freq_biweekly': 'Bisăptămânal',
'subscription.freq_monthly': 'Lunar',
'subscription.freq_quarterly': 'Trimestrial',
'subscription.freq_yearly': 'Anual',
'subscription.active': 'Abonamente Active',
'subscription.active_list': 'Abonamentele Tale',
'subscription.monthly_cost': 'Cost Lunar',
'subscription.yearly_cost': 'Cost Anual',
'subscription.annual': 'Anual',
'subscription.next_payment': 'Următoarea Plată',
'subscription.suggestions': 'Sugestii Inteligente',
'subscription.suggestions_desc': 'Am detectat aceste tipare recurente în cheltuielile tale',
'subscription.confidence': 'Încredere',
'subscription.occurrences': 'Apariții',
'subscription.times': 'ori',
'subscription.period': 'Perioadă',
'subscription.accept': 'Acceptă',
'subscription.dismiss': 'Respinge',
'subscription.delete_confirm': 'Sigur vrei să ștergi acest abonament?',
'subscription.no_subscriptions': 'Niciun Abonament Încă',
'subscription.no_subscriptions_desc': 'Urmărește cheltuielile recurente automat sau adaugă-le manual',
'subscription.notes': 'Notițe',
'subscription.notes_placeholder': 'Adaugă notițe despre acest abonament...',
'subscription.freq_custom': 'Personalizat',
'subscription.custom_interval': 'Repetă la fiecare (Zile)',
'subscription.custom_interval_desc': 'Introdu numărul de zile între apariții',
'subscription.start_date': 'Data de început',
'subscription.start_date_desc': 'Data primei plăți',
'subscription.end_date': 'Data de sfârșit',
'subscription.end_date_desc': 'Lasă gol pentru abonament continuu',
'subscription.total_occurrences': 'Plăți totale',
'subscription.total_occurrences_desc': 'Limitează numărul de plăți (opțional)',
'subscription.occurrences_remaining': 'Rămase',
'subscription.auto_create': 'Creare automată cheltuieli',
'subscription.auto_create_desc': 'Adaugă cheltuiala automat când plata este scadentă',
'subscription.auto_create_tooltip': 'Cheltuielile vor fi create automat la data scadentă',
'subscription.create_due': 'Creează cheltuieli scadente',
'subscription.auto': 'AUTO',
'subscription.every': 'La fiecare',
'subscription.days': 'zile',
'subscription.times': 'ori',
'common.optional': 'Opțional',
# Budget Alerts
'budget.title': 'Gestionare Buget',
'budget.monthly_limit': 'Limită Buget Lunar',
'budget.monthly_limit_desc': 'Setează o limită de cheltuieli pentru această categorie',
'budget.alert_threshold': 'Prag Alertă',
'budget.alert_threshold_desc': 'Primește notificări când cheltuielile ajung la acest procent (50-200%)',
'budget.current_month': 'Luna Curentă',
'budget.spent': 'Cheltuit',
'budget.budget': 'Buget',
'budget.remaining': 'Rămas',
'budget.alert_settings': 'Setări Alerte Buget',
'budget.enable_alerts': 'Activează alerte email pentru buget',
'budget.enable_alerts_desc': 'Primește notificări email când depășești limitele bugetului',
'budget.alert_email': 'Email Alertă',
'budget.alert_email_desc': 'Folosește email diferit pentru alerte (implicit emailul contului)',
'budget.over_budget': 'Peste Buget',
'budget.within_budget': 'În Limite',
'budget.percentage_used': '% Folosit',
# Empty States
'empty.welcome_title': 'Bun venit la FINA!',
'empty.welcome_message': 'Creează prima ta categorie pentru a începe să urmărești cheltuielile',
'empty.create_category': 'Creează Categorie',
'empty.no_expenses_title': 'Nicio cheltuială încă',
'empty.no_expenses_message': 'Începe urmărirea adăugând prima ta cheltuială',
'empty.add_expense': 'Adaugă Cheltuială',
'empty.no_tags_title': 'Nicio etichetă încă',
'empty.no_tags_message': 'Creează prima ta etichetă!',
# Messages
'message.category_created': 'Categorie creată cu succes',
'message.category_updated': 'Categorie actualizată cu succes',
'message.category_deleted': 'Categorie ștearsă cu succes',
'message.expense_created': 'Cheltuială adăugată cu succes',
'message.expense_updated': 'Cheltuială actualizată cu succes',
'message.expense_deleted': 'Cheltuială ștearsă cu succes',
'message.login_success': 'Autentificat cu succes',
'message.logout_success': 'Deconectat cu succes',
'message.register_success': 'Cont creat cu succes',
'message.profile_updated': 'Profil actualizat cu succes',
'message.settings_updated': 'Setări actualizate cu succes',
# Months
'month.january': 'Ianuarie',
'month.february': 'Februarie',
'month.march': 'Martie',
'month.april': 'Aprilie',
'month.may': 'Mai',
'month.june': 'Iunie',
'month.july': 'Iulie',
'month.august': 'August',
'month.september': 'Septembrie',
'month.october': 'Octombrie',
'month.november': 'Noiembrie',
'month.december': 'Decembrie',
# PWA
'pwa.install': 'Instalează',
'pwa.not_now': 'Nu Acum',
'pwa.install_title': 'Instalează FINA',
'pwa.install_description': 'Instalează aplicația pentru acces rapid și suport offline',
'pwa.connection_restored': 'Conexiune restabilită',
'pwa.offline': 'Ești offline. Unele funcții pot fi limitate.',
# OCR
'ocr.take_photo': 'Fă Poză',
'ocr.processing': 'Procesează bon...',
'ocr.ai_extraction': 'AI va extrage suma, data și magazinul',
'ocr.detected': 'AI a Detectat',
'ocr.use_this': 'Folosește',
'ocr.merchant': 'Magazin',
'ocr.confidence': 'Încredere',
'ocr.failed': 'Nu s-au putut extrage date din bon',
'ocr.error': 'Eroare OCR',
'expense.receipt_hint': 'Suportă: JPG, PNG, PDF',
# Search
'search.title': 'Căutare',
'search.subtitle': 'Caută în cheltuieli, categorii, abonamente și altele',
'search.placeholder': 'Caută după descriere, sumă, dată, etichete...',
'search.button': 'Caută',
'search.quick_search': 'Căutare rapidă...',
'search.results_for': 'Rezultate pentru',
'search.results_found': 'rezultate găsite',
'search.no_results': 'Nu s-au găsit rezultate',
'search.no_results_message': 'Încearcă cu alte cuvinte cheie sau termeni de căutare',
'search.expenses': 'Cheltuieli',
'search.categories': 'Categorii',
'search.subscriptions': 'Abonamente',
'search.tags': 'Etichete',
'search.expenses_count': 'cheltuieli',
'search.inactive': 'Inactiv',
'search.welcome_title': 'Caută orice',
'search.welcome_message': 'Găsește rapid cheltuieli după descriere, sumă, dată, categorie, comerciant sau etichete. Funcționează cu numere, date și text.',
'search.examples_title': 'Încearcă aceste exemple:',
'search.tip_spelling': 'Verifică ortografia cuvintelor cheie',
'search.tip_keywords': 'Încearcă cu alte cuvinte cheie sau termeni mai generali',
'search.tip_date': 'Pentru date folosește formatul: YYYY-MM-DD sau DD/MM/YYYY',
'search.tip_amount': 'Pentru sume folosește numere: 45.99 sau 45',
# Predictions
'predictions.title': 'Predicții de Cheltuieli',
'predictions.subtitle': 'Prognoze bazate pe inteligență artificială din istoricul cheltuielilor',
'predictions.next_months': 'Următoarele {n} Luni',
'predictions.total_predicted': 'Total Prezis',
'predictions.confidence': 'Încredere',
'predictions.confidence_high': 'Mare',
'predictions.confidence_medium': 'Medie',
'predictions.confidence_low': 'Scăzută',
'predictions.trend': 'Tendință',
'predictions.trend_increasing': 'Crește',
'predictions.trend_decreasing': 'Scade',
'predictions.trend_stable': 'Stabilă',
'predictions.insights': 'Perspective Inteligente',
'predictions.forecast': 'Prognoză Cheltuieli',
'predictions.by_category': 'Pe Categorii',
'predictions.based_on': 'Bazat pe {n} luni de date',
'predictions.no_data': 'Istoric insuficient pentru predicții precise',
'predictions.no_data_desc': 'Adaugă mai multe cheltuieli pentru a vedea predicții AI',
'predictions.chart.title': 'Prezis vs Istoric',
'predictions.month': 'Luna',
'predictions.amount': 'Sumă',
'predictions.view_details': 'Vezi Detalii',
'predictions.methodology': 'Cum calculăm',
'predictions.methodology_desc': 'Predicțiile noastre folosesc medii ponderate, analiza tendințelor și ajustări sezoniere pentru a prognoza cheltuielile viitoare cu acuratețe ridicată.',
# Bank Import
'bank.import_title': 'Import Extras Bancar',
'bank.import_subtitle': 'Încarcă extractul tău bancar (PDF sau CSV) pentru a importa automat tranzacțiile',
'bank.upload_file': 'Încarcă Extras Bancar',
'bank.select_file': 'Selectează Fișier',
'bank.drag_drop': 'Trage și plasează fișierul aici',
'bank.or_click': 'sau click pentru a naviga',
'bank.browse_files': 'Răsfoiește Fișiere',
'bank.remove': 'Elimină',
'bank.supported_formats': 'Formate Suportate',
'bank.format_pdf': 'PDF - Extrase bancare de la majoritatea băncilor',
'bank.format_csv': 'CSV - Istoric tranzacții exportat',
'bank.format_hint': 'Fișierele trebuie să fie sub 10MB. Sistemul va detecta automat formatul băncii tale.',
'bank.upload_parse': 'Încarcă și Procesează',
'bank.processing': 'Se procesează',
'bank.how_it_works': 'Cum Funcționează',
'bank.step_1': 'Descarcă extractul bancar de pe portalul tău online banking',
'bank.step_2': 'Încarcă fișierul PDF sau CSV folosind formularul de mai sus',
'bank.step_3': 'Verifică tranzacțiile extrase automat',
'bank.step_4': 'Asociază tranzacțiile cu categoriile tale de cheltuieli',
'bank.step_5': 'Confirmă pentru a importa tranzacțiile selectate',
'bank.supported_banks': 'Bănci Suportate',
'bank.romania': 'România',
'bank.international': 'Internațional',
'bank.generic': 'Formate Generice',
'bank.generic_pdf': 'Orice PDF cu format standard',
'bank.generic_csv': 'CSV standard cu dată, descriere, sumă',
'bank.review_title': 'Verifică Tranzacțiile',
'bank.review_subtitle': 'Verifică și selectează tranzacțiile de importat',
'bank.transactions_found': 'Tranzacții Găsite',
'bank.detected_format': 'Format Detectat',
'bank.selected': 'Selectate',
'bank.unmapped': 'Fără Categorie',
'bank.parse_warnings': 'Avertismente Procesare',
'bank.select_all': 'Selectează Tot',
'bank.select_expenses': 'Selectează Doar Cheltuieli',
'bank.select_income': 'Selectează Doar Venituri',
'bank.transactions_to_import': 'Tranzacții de Importat',
'bank.date': 'Dată',
'bank.description': 'Descriere',
'bank.amount': 'Sumă',
'bank.type': 'Tip',
'bank.category': 'Categorie',
'bank.expense': 'Cheltuială',
'bank.income': 'Venit',
'bank.select_category': '-- Selectează Categorie --',
'bank.back': 'Înapoi la Încărcare',
'bank.import_selected': 'Importă Tranzacțiile Selectate',
'bank.importing': 'Se importă',
'bank.no_transactions_selected': 'Te rog selectează cel puțin o tranzacție pentru import.',
'bank.confirm_unmapped': '{count} tranzacții selectate nu au o categorie asociată. Vor fi sărite. Continui?',
'bank.not_all_banks_supported': 'Nu toate băncile sunt suportate. Sistemul va încerca să detecteze și să proceseze automat formatul extractului tău. Dacă procesarea eșuează, încearcă să exporți ca CSV cu coloanele: Dată, Descriere, Sumă.',
'bank.format_not_recognized': 'Format Bancă Nerecunoscut',
'bank.format_not_recognized_hint': 'Nu am putut detecta formatul specific al băncii tale. Sistemul a extras tranzacțiile folosind șabloane generice. Te rugăm să verifici cu atenție și să validezi toate tranzacțiile înainte de import.',
},
'es': {
# Navigation
'nav.new_category': 'Nueva Categoría',
'nav.subscriptions': 'Suscripciones',
'nav.settings': 'Configuración',
'nav.logout': 'Cerrar Sesión',
# Dashboard
'dashboard.title': 'Panel de Control',
'dashboard.metrics': 'Métricas',
'dashboard.total_spent': 'Total Gastado',
'dashboard.total_expenses': 'Total de Gastos',
'dashboard.view_all': 'Ver Todo',
'dashboard.no_categories': 'No hay categorías todavía',
'dashboard.create_first': 'Crea tu primera categoría para comenzar a rastrear gastos',
'dashboard.monthly_spending': 'Gastos Mensuales',
'dashboard.monthly_expenses': 'Gastos Mensuales',
'dashboard.expenses_by_category': 'Gastos por Categoría',
'dashboard.category_breakdown': 'Desglose por Categoría',
'dashboard.all_categories': 'Todas las Categorías',
'dashboard.categories_section': 'Categorías',
# Categories
'category.create': 'Crear Categoría',
'category.edit': 'Editar Categoría',
'category.view': 'Ver Categoría',
'category.name': 'Nombre de Categoría',
'category.description': 'Descripción',
'category.color': 'Color',
'category.spent': 'Gastado',
'category.expenses': 'Gastos',
'category.delete': 'Eliminar Categoría',
'category.add_expense': 'Agregar Gasto',
'category.no_expenses': 'No hay gastos en esta categoría todavía',
# Expenses
'expense.create': 'Agregar Gasto',
'expense.edit': 'Editar Gasto',
'expense.amount': 'Cantidad',
'expense.date': 'Fecha',
'expense.description': 'Descripción',
'expense.receipt': 'Recibo',
'expense.upload_receipt': 'Subir Recibo',
'expense.tags': 'Etiquetas',
'expense.delete': 'Eliminar Gasto',
'expense.view_receipt': 'Ver Recibo',
# Authentication
'auth.login': 'Iniciar Sesión',
'auth.register': 'Registrarse',
'auth.logout': 'Cerrar Sesión',
'auth.username': 'Nombre de Usuario',
'auth.email': 'Correo Electrónico',
'auth.password': 'Contraseña',
'auth.confirm_password': 'Confirmar Contraseña',
'auth.remember_me': 'Recordarme',
'auth.forgot_password': '¿Olvidaste tu contraseña?',
'auth.no_account': '¿No tienes cuenta?',
'auth.have_account': '¿Ya tienes cuenta?',
'auth.sign_in': 'Iniciar Sesión',
'auth.sign_up': 'Registrarse',
'auth.welcome_back': '¡Bienvenido de nuevo!',
'auth.create_account': 'Crea tu cuenta',
'auth.verify_2fa': 'Verificar Autenticación de Dos Factores',
'auth.enter_code': 'Ingresa el código de 6 dígitos de tu aplicación de autenticación',
'auth.verification_code': 'Código de Verificación',
'auth.verify': 'Verificar',
# Settings
'settings.title': 'Configuración',
'settings.profile': 'Perfil',
'settings.security': 'Seguridad',
'settings.users': 'Gestión de Usuarios',
'settings.import_export': 'Importar/Exportar',
'settings.language': 'Idioma',
'settings.currency': 'Moneda',
'settings.save': 'Guardar Cambios',
'settings.cancel': 'Cancelar',
'settings.edit_profile': 'Editar Perfil',
'settings.setup_2fa': 'Configurar Autenticación de Dos Factores',
'settings.disable_2fa': 'Desactivar 2FA',
'settings.enable_2fa': 'Activar 2FA',
'settings.create_user': 'Crear Usuario',
'settings.edit_user': 'Editar Usuario',
'settings.create_tag': 'Crear Etiqueta',
'settings.export_data': 'Exportar Datos',
'settings.import_data': 'Importar Datos',
'settings.tags': 'Etiquetas',
'settings.profile_settings': 'Configuración de Perfil',
'settings.username': 'Nombre de usuario',
'settings.email': 'Correo electrónico',
'settings.new_password': 'Nueva Contraseña (dejar en blanco para mantener actual)',
'settings.new_password_placeholder': 'Ingresa nueva contraseña',
'settings.2fa_title': 'Autenticación de Dos Factores (2FA)',
'settings.2fa_enabled': '2FA está actualmente habilitado en tu cuenta.',
'settings.2fa_enabled_desc': 'Tu cuenta está protegida con una capa adicional de seguridad.',
'settings.2fa_disabled': '2FA está actualmente deshabilitado.',
'settings.2fa_disabled_desc': 'Habilita 2FA para agregar una capa adicional de seguridad a tu cuenta.',
'settings.2fa_what_is': '¿Qué es 2FA?',
'settings.2fa_what_is_desc': 'La Autenticación de Dos Factores agrega una capa adicional de seguridad requiriendo un código de tu teléfono además de tu contraseña al iniciar sesión.',
'settings.2fa_disable_confirm': '¿Estás seguro de que quieres deshabilitar 2FA?',
'settings.manage_tags': 'Gestionar Etiquetas',
'settings.create_tag_btn': 'Crear Etiqueta',
'settings.delete_tag_confirm': '¿Eliminar etiqueta {name}?',
'settings.export_title': 'Exportar Datos',
'settings.export_desc': 'Descarga todos tus gastos como archivo CSV',
'settings.export_btn': 'Exportar a CSV',
'settings.import_title': 'Importar Datos',
'settings.import_desc': 'Importa gastos desde archivo CSV. Formato: Categoría, Descripción, Monto, Fecha (YYYY-MM-DD), Pagado Por, Etiquetas',
'settings.import_file_label': 'Archivo CSV',
'settings.import_btn': 'Importar CSV',
'settings.users_title': 'Gestión de Usuarios',
'settings.create_user_btn': 'Crear Usuario',
'settings.table_username': 'Nombre de usuario',
'settings.table_email': 'Correo electrónico',
'settings.table_role': 'Rol',
'settings.table_currency': 'Moneda',
'settings.table_2fa': '2FA',
'settings.table_actions': 'Acciones',
'settings.role_admin': 'Administrador',
'settings.role_user': 'Usuario',
'settings.2fa_status_enabled': 'Habilitado',
'settings.2fa_status_disabled': 'Deshabilitado',
'settings.delete_user_confirm': '¿Eliminar usuario {name}?',
'settings.no_users': 'No se encontraron usuarios',
# Common
'common.save': 'Guardar',
'common.select': 'Seleccionar',
'common.cancel': 'Cancelar',
'common.delete': 'Eliminar',
'common.edit': 'Editar',
'common.view': 'Ver',
'common.back': 'Atrás',
'common.search': 'Buscar',
'common.filter': 'Filtrar',
'common.all': 'Todo',
'common.yes': '',
'common.no': 'No',
'common.loading': 'Cargando...',
'common.error': 'Error',
'common.success': 'Éxito',
'common.warning': 'Advertencia',
'common.info': 'Información',
# Subscriptions
'subscription.title': 'Suscripciones',
'subscription.today': 'Hoy',
'subscription.tomorrow': 'Mañana',
'subscription.days': 'días',
'subscription.no_upcoming': 'No hay pagos próximos en los próximos 30 días',
'subscription.title': 'Suscripciones',
'subscription.add': 'Agregar Suscripción',
'subscription.add_manual': 'Agregar Manualmente',
'subscription.detect': 'Detectar Recurrentes',
'subscription.name': 'Nombre de Suscripción',
'subscription.frequency': 'Frecuencia',
'subscription.freq_weekly': 'Semanal',
'subscription.freq_biweekly': 'Quincenal',
'subscription.freq_monthly': 'Mensual',
'subscription.freq_quarterly': 'Trimestral',
'subscription.freq_yearly': 'Anual',
'subscription.active': 'Suscripciones Activas',
'subscription.active_list': 'Tus Suscripciones',
'subscription.monthly_cost': 'Costo Mensual',
'subscription.yearly_cost': 'Costo Anual',
'subscription.annual': 'Anual',
'subscription.next_payment': 'Próximo Pago',
'subscription.suggestions': 'Sugerencias Inteligentes',
'subscription.suggestions_desc': 'Detectamos estos patrones recurrentes en tus gastos',
'subscription.confidence': 'Confianza',
'subscription.occurrences': 'Ocurrencias',
'subscription.times': 'veces',
'subscription.period': 'Período',
'subscription.accept': 'Aceptar',
'subscription.dismiss': 'Descartar',
'subscription.delete_confirm': '¿Estás seguro de que quieres eliminar esta suscripción?',
'subscription.no_subscriptions': 'No Hay Suscripciones Aún',
'subscription.no_subscriptions_desc': 'Rastrea tus gastos recurrentes automáticamente o agrégalos manualmente',
'subscription.notes': 'Notas',
'subscription.notes_placeholder': 'Agrega notas sobre esta suscripción...', 'subscription.freq_custom': 'Personalizado',
'subscription.custom_interval': 'Repetir cada (Días)',
'subscription.custom_interval_desc': 'Ingresa el número de días entre ocurrencias',
'subscription.start_date': 'Fecha de inicio',
'subscription.start_date_desc': 'Fecha del primer pago',
'subscription.end_date': 'Fecha de finalización',
'subscription.end_date_desc': 'Dejar en blanco para suscripción continua',
'subscription.total_occurrences': 'Pagos totales',
'subscription.total_occurrences_desc': 'Limitar número de pagos (opcional)',
'subscription.occurrences_remaining': 'Restantes',
'subscription.auto_create': 'Auto-crear gastos',
'subscription.auto_create_desc': 'Agregar gasto automáticamente cuando vence el pago',
'subscription.auto_create_tooltip': 'Los gastos se crearán automáticamente en la fecha de vencimiento',
'subscription.create_due': 'Crear gastos vencidos',
'subscription.auto': 'AUTO',
'subscription.every': 'Cada',
'subscription.days': 'días',
'subscription.times': 'veces',
'common.optional': 'Opcional',
# Budget Alerts
'budget.title': 'Gestión de Presupuesto',
'budget.monthly_limit': 'Límite de Presupuesto Mensual',
'budget.monthly_limit_desc': 'Establece un límite de gasto para esta categoría',
'budget.alert_threshold': 'Umbral de Alerta',
'budget.alert_threshold_desc': 'Recibe notificaciones cuando el gasto alcance este porcentaje (50-200%)',
'budget.current_month': 'Mes Actual',
'budget.spent': 'Gastado',
'budget.budget': 'Presupuesto',
'budget.remaining': 'Restante',
'budget.alert_settings': 'Configuración de Alertas de Presupuesto',
'budget.enable_alerts': 'Habilitar alertas de presupuesto por email',
'budget.enable_alerts_desc': 'Recibe notificaciones por email cuando excedas los límites del presupuesto',
'budget.alert_email': 'Email de Alertas',
'budget.alert_email_desc': 'Usa un email diferente para alertas (por defecto el email de la cuenta)',
'budget.over_budget': 'Sobre Presupuesto',
'budget.within_budget': 'Dentro del Presupuesto',
'budget.percentage_used': '% Utilizado',
# Empty States
'empty.welcome_title': '¡Bienvenido a FINA!',
'empty.welcome_message': 'Crea tu primera categoría para comenzar a rastrear gastos',
'empty.create_category': 'Crear Categoría',
'empty.no_expenses_title': 'Aún no hay gastos',
'empty.no_expenses_message': 'Comienza a rastrear agregando tu primer gasto',
'empty.add_expense': 'Agregar Gasto',
'empty.no_tags_title': 'Aún no hay etiquetas',
'empty.no_tags_message': '¡Crea tu primera etiqueta!',
# Messages
'message.category_created': 'Categoría creada exitosamente',
'message.category_updated': 'Categoría actualizada exitosamente',
'message.category_deleted': 'Categoría eliminada exitosamente',
'message.expense_created': 'Gasto agregado exitosamente',
'message.expense_updated': 'Gasto actualizado exitosamente',
'message.expense_deleted': 'Gasto eliminado exitosamente',
'message.login_success': 'Sesión iniciada exitosamente',
'message.logout_success': 'Sesión cerrada exitosamente',
'message.register_success': 'Cuenta creada exitosamente',
'message.profile_updated': 'Perfil actualizado exitosamente',
'message.settings_updated': 'Configuración actualizada exitosamente',
# Months
'month.january': 'Enero',
'month.february': 'Febrero',
'month.march': 'Marzo',
'month.april': 'Abril',
'month.may': 'Mayo',
'month.june': 'Junio',
'month.july': 'Julio',
'month.august': 'Agosto',
'month.september': 'Septiembre',
'month.october': 'Octubre',
'month.november': 'Noviembre',
'month.december': 'Diciembre',
# PWA
'pwa.install': 'Instalar',
'pwa.not_now': 'Ahora No',
'pwa.install_title': 'Instalar FINA',
'pwa.install_description': 'Instala nuestra app para acceso rápido y soporte sin conexión',
'pwa.connection_restored': 'Conexión restaurada',
'pwa.offline': 'Estás sin conexión. Algunas funciones pueden estar limitadas.',
# OCR
'ocr.take_photo': 'Tomar Foto',
'ocr.processing': 'Procesando recibo...',
'ocr.ai_extraction': 'IA extraerá monto, fecha y comercio',
'ocr.detected': 'IA Detectó',
'ocr.use_this': 'Usar',
'ocr.merchant': 'Comercio',
'ocr.confidence': 'Confianza',
'ocr.failed': 'No se pudieron extraer datos del recibo',
'ocr.error': 'Error OCR',
'expense.receipt_hint': 'Soporta: JPG, PNG, PDF',
# Predictions
'predictions.title': 'Predicciones de Gastos',
'predictions.subtitle': 'Pronósticos impulsados por IA basados en tu historial de gastos',
'predictions.next_months': 'Próximos {n} Meses',
'predictions.total_predicted': 'Total Previsto',
'predictions.confidence': 'Confianza',
'predictions.confidence_high': 'Alta',
'predictions.confidence_medium': 'Media',
'predictions.confidence_low': 'Baja',
'predictions.trend': 'Tendencia',
'predictions.trend_increasing': 'Creciente',
'predictions.trend_decreasing': 'Decreciente',
'predictions.trend_stable': 'Estable',
'predictions.insights': 'Perspectivas Inteligentes',
'predictions.forecast': 'Pronóstico de Gastos',
'predictions.by_category': 'Por Categoría',
'predictions.based_on': 'Basado en {n} meses de datos',
'predictions.no_data': 'Historial insuficiente para predicciones precisas',
'predictions.no_data_desc': 'Añade más gastos para ver predicciones IA',
'predictions.chart.title': 'Previsto vs Histórico',
'predictions.month': 'Mes',
'predictions.amount': 'Cantidad',
'predictions.view_details': 'Ver Detalles',
'predictions.methodology': 'Cómo calculamos',
'predictions.methodology_desc': 'Nuestras predicciones usan promedios ponderados, análisis de tendencias y ajustes estacionales para pronosticar tus gastos futuros con alta precisión.',
# Bank Import
'bank.import_title': 'Importar Extracto Bancario',
'bank.import_subtitle': 'Sube tu extracto bancario (PDF o CSV) para importar transacciones automáticamente',
'bank.upload_file': 'Subir Extracto Bancario',
'bank.select_file': 'Seleccionar Archivo',
'bank.drag_drop': 'Arrastra y suelta tu archivo aquí',
'bank.or_click': 'o haz clic para explorar',
'bank.browse_files': 'Explorar Archivos',
'bank.remove': 'Eliminar',
'bank.supported_formats': 'Formatos Soportados',
'bank.format_pdf': 'PDF - Extractos bancarios de la mayoría de los bancos',
'bank.format_csv': 'CSV - Historial de transacciones exportado',
'bank.format_hint': 'Los archivos deben ser menores a 10MB. El sistema detectará automáticamente el formato de tu banco.',
'bank.upload_parse': 'Subir y Procesar',
'bank.processing': 'Procesando',
'bank.how_it_works': 'Cómo Funciona',
'bank.step_1': 'Descarga tu extracto bancario desde tu portal de banca en línea',
'bank.step_2': 'Sube el archivo PDF o CSV usando el formulario arriba',
'bank.step_3': 'Revisa las transacciones extraídas automáticamente',
'bank.step_4': 'Asigna transacciones a tus categorías de gastos',
'bank.step_5': 'Confirma para importar las transacciones seleccionadas',
'bank.supported_banks': 'Bancos Soportados',
'bank.romania': 'Rumania',
'bank.international': 'Internacional',
'bank.generic': 'Formatos Genéricos',
'bank.generic_pdf': 'Cualquier PDF con formato estándar',
'bank.generic_csv': 'CSV estándar con fecha, descripción, monto',
'bank.review_title': 'Revisar Transacciones',
'bank.review_subtitle': 'Revisa y selecciona transacciones para importar',
'bank.transactions_found': 'Transacciones Encontradas',
'bank.detected_format': 'Formato Detectado',
'bank.selected': 'Seleccionadas',
'bank.unmapped': 'Sin Categoría',
'bank.parse_warnings': 'Advertencias de Procesamiento',
'bank.select_all': 'Seleccionar Todo',
'bank.select_expenses': 'Seleccionar Solo Gastos',
'bank.select_income': 'Seleccionar Solo Ingresos',
'bank.transactions_to_import': 'Transacciones a Importar',
'bank.date': 'Fecha',
'bank.description': 'Descripción',
'bank.amount': 'Monto',
'bank.type': 'Tipo',
'bank.category': 'Categoría',
'bank.expense': 'Gasto',
'bank.income': 'Ingreso',
'bank.select_category': '-- Seleccionar Categoría --',
'bank.back': 'Volver a Subir',
'bank.import_selected': 'Importar Transacciones Seleccionadas',
'bank.importing': 'Importando',
'bank.no_transactions_selected': 'Por favor selecciona al menos una transacción para importar.',
'bank.confirm_unmapped': '{count} transacciones seleccionadas no tienen una categoría asignada. Serán omitidas. ¿Continuar?',
'bank.not_all_banks_supported': 'No todos los bancos son soportados. El sistema intentará detectar y procesar automáticamente el formato de tu extracto. Si el procesamiento falla, intenta exportar como CSV con columnas: Fecha, Descripción, Monto.',
'bank.format_not_recognized': 'Formato de Banco No Reconocido',
'bank.format_not_recognized_hint': 'No pudimos detectar el formato específico de tu banco. El sistema extrajo transacciones usando patrones genéricos. Por favor revisa cuidadosamente y verifica todas las transacciones antes de importar.',
# Search
'search.title': 'Buscar',
'search.subtitle': 'Busca en gastos, categorías, suscripciones y más',
'search.placeholder': 'Buscar por descripción, cantidad, fecha, etiquetas...',
'search.button': 'Buscar',
'search.quick_search': 'Buscar...',
'search.results_for': 'Resultados para',
'search.results_found': 'resultados encontrados',
'search.no_results': 'No se encontraron resultados',
'search.no_results_message': 'Intenta con diferentes palabras clave o términos de búsqueda',
'search.expenses': 'Gastos',
'search.categories': 'Categorías',
'search.subscriptions': 'Suscripciones',
'search.tags': 'Etiquetas',
'search.expenses_count': 'gastos',
'search.inactive': 'Inactiva',
'search.welcome_title': 'Busca cualquier cosa',
'search.welcome_message': 'Busca rápidamente gastos por descripción, cantidad, fecha, categoría, comerciante o etiquetas. Funciona con números, fechas y texto.',
'search.examples_title': 'Prueba estos ejemplos:',
'search.tip_spelling': 'Verifica la ortografía de tus palabras clave',
'search.tip_keywords': 'Prueba diferentes palabras clave o términos más generales',
'search.tip_date': 'Para fechas usa formato: YYYY-MM-DD o DD/MM/YYYY',
'search.tip_amount': 'Para cantidades usa números: 45.99 o 45',
}
}
def get_translation(key, lang='en'):
"""Get translation for a key in specified language"""
if lang not in translations:
lang = 'en'
return translations.get(lang, {}).get(key, key)
def get_language_name(code):
"""Get language name from code"""
languages = {
'en': 'English',
'ro': 'Română',
'es': 'Español'
}
return languages.get(code, 'English')
def get_available_languages():
"""Get list of available languages"""
return [
{'code': 'en', 'name': 'English', 'flag': '🇬🇧'},
{'code': 'ro', 'name': 'Română', 'flag': '🇷🇴'},
{'code': 'es', 'name': 'Español', 'flag': '🇪🇸'}
]