55ba66908b
An enskild firma that hires staff should get the payroll module, but its owner or board can never be on payroll (owner compensation is egna uttag / BAS 2013, not lön). - Migration 20260628120000 adds the enforce_ef_no_owner_employee trigger (BEFORE INSERT OR UPDATE OF employment_type) as the all-paths backstop. - lib/salary/employment-rules.ts is the app-layer mirror (forbidden set kept byte-identical to the trigger); getCompanyEntityType() resolves the same company_settings -> companies precedence. - The two UI salary routes and the v1 POST guard before insert/update for a clean 400 with guidance. - Payroll nav + Lön settings now show for any employer (aktiebolag OR company_settings.pays_salaries), wired through the dashboard layout. Fixes #782. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4268 lines
210 KiB
JSON
4268 lines
210 KiB
JSON
{
|
||
"common": {
|
||
"save": "Save",
|
||
"saving": "Saving...",
|
||
"cancel": "Cancel",
|
||
"create": "Create",
|
||
"add": "Add",
|
||
"delete": "Delete",
|
||
"edit": "Edit",
|
||
"back": "Back",
|
||
"next": "Next",
|
||
"previous": "Previous",
|
||
"close": "Close",
|
||
"search": "Search",
|
||
"filter": "Filter",
|
||
"loading": "Loading...",
|
||
"retry": "Try again",
|
||
"load_error": "Could not load data",
|
||
"confirm": "Confirm",
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"remove": "Remove",
|
||
"submit": "Submit",
|
||
"send": "Send",
|
||
"download": "Download",
|
||
"upload": "Upload",
|
||
"copy": "Copy",
|
||
"copied": "Copied",
|
||
"open": "Open",
|
||
"select": "Select",
|
||
"all": "All",
|
||
"none": "None",
|
||
"more": "More",
|
||
"less": "Less",
|
||
"show": "Show",
|
||
"hide": "Hide",
|
||
"actions": "Actions",
|
||
"settings": "Settings",
|
||
"language": "Language",
|
||
"language_swedish": "Swedish",
|
||
"language_english": "English",
|
||
"appearance": "Appearance",
|
||
"theme_light": "Light",
|
||
"theme_dark": "Dark",
|
||
"theme_system": "System",
|
||
"logout": "Sign out",
|
||
"logout_description": "Sign out of your account",
|
||
"account_settings": "Account settings",
|
||
"status": {
|
||
"posted": "Posted",
|
||
"draft": "Draft",
|
||
"pending": "Pending",
|
||
"approved": "Approved",
|
||
"archived": "Archived",
|
||
"paid": "Paid",
|
||
"unpaid": "Unpaid",
|
||
"overdue": "Overdue",
|
||
"cancelled": "Cancelled",
|
||
"sent": "Sent",
|
||
"matched": "Matched",
|
||
"unmatched": "Unmatched"
|
||
}
|
||
},
|
||
"nav": {
|
||
"dashboard": "Overview",
|
||
"home": "Home",
|
||
"assistant": "Assistant",
|
||
"bureau": "Bureau",
|
||
"kpi": "KPIs",
|
||
"invoice_inbox": "Documents",
|
||
"invoices": "Invoices",
|
||
"sales_orders": "Orders",
|
||
"customers": "Customers",
|
||
"articles": "Articles",
|
||
"products": "Products",
|
||
"inventory": "Inventory",
|
||
"supplier_invoices": "Supplier invoices",
|
||
"purchase_orders": "Purchase orders",
|
||
"suppliers": "Suppliers",
|
||
"review": "Review",
|
||
"transactions": "Transactions",
|
||
"bookkeeping": "Bookkeeping",
|
||
"assets": "Fixed assets",
|
||
"reports": "Reports",
|
||
"budgets": "Budgets",
|
||
"insights": "Insights",
|
||
"import": "Import/Export",
|
||
"salary": "Payroll",
|
||
"employees": "Employees",
|
||
"time_tracking": "Time tracking",
|
||
"expenses": "Expenses",
|
||
"receipts": "Receipts",
|
||
"deadlines": "Deadlines",
|
||
"pending": "Pending",
|
||
"help": "Help",
|
||
"extensions": "Extensions",
|
||
"settings": "Settings",
|
||
"group_main": "Main",
|
||
"group_sales": "Sales",
|
||
"group_purchases": "Purchases",
|
||
"group_personnel": "Personnel",
|
||
"group_accounting": "Accounting",
|
||
"group_other": "Other",
|
||
"group_extensions": "Extensions",
|
||
"mitt_konto": "My account",
|
||
"main_navigation": "Main navigation",
|
||
"mobile_navigation": "Mobile navigation",
|
||
"menu": "Menu",
|
||
"open_menu": "Open menu",
|
||
"close_menu": "Close menu",
|
||
"navigation_menu": "Navigation menu",
|
||
"badge_coming_soon": "Coming soon",
|
||
"badge_dev": "Dev",
|
||
"badge_beta": "Beta",
|
||
"needs_company_tooltip": "Add a company to enable",
|
||
"logout_sandbox": "Exit sandbox",
|
||
"ext_tic": "Company profile",
|
||
"ext_invoice_inbox": "Document inbox"
|
||
},
|
||
"auth": {
|
||
"login_title": "Sign in",
|
||
"login_subtitle": "Sign in to manage your finances",
|
||
"email_label": "Email address",
|
||
"email_placeholder": "name@example.com",
|
||
"password_label": "Password",
|
||
"password_placeholder": "Your password",
|
||
"login_button": "Sign in",
|
||
"logging_in": "Signing in...",
|
||
"forgot_password": "Forgot password?",
|
||
"no_account": "Create account",
|
||
"or_divider": "or",
|
||
"or_email_divider": "or sign in with email",
|
||
"login_failed_title": "Sign in failed",
|
||
"login_failed_bankid": "Could not complete BankID sign in.",
|
||
"login_invalid_credentials": "Wrong email or password.",
|
||
"reset_title": "Reset password",
|
||
"reset_subtitle": "Enter your email and we'll send you a reset link",
|
||
"reset_button": "Send reset link",
|
||
"reset_sending": "Sending...",
|
||
"reset_cooldown": "Wait {seconds}s",
|
||
"reset_failed_title": "Could not send reset link",
|
||
"reset_sent_title": "Reset link sent!",
|
||
"reset_sent_body": "Check your inbox to reset your password.",
|
||
"email_sent_title": "Check your email",
|
||
"email_sent_body_reset": "We sent a reset link to <strong>{email}</strong>",
|
||
"email_sent_body_login": "We sent a sign-in link to <strong>{email}</strong>",
|
||
"email_sent_hint_reset": "Click the link in the email to reset your password. The link is valid for 1 hour.",
|
||
"email_sent_hint_login": "Click the link in the email to sign in. The link is valid for 1 hour.",
|
||
"open_webmail_search": "Find the email in {provider}",
|
||
"open_webmail_inbox": "Open {provider}",
|
||
"back_to_login": "Back to sign in",
|
||
"callback_error_title": "The reset link did not work",
|
||
"callback_error_body": "The link has expired or has already been used.",
|
||
"request_new_reset_link": "Request a new reset link",
|
||
"bankid_no_account_greeting": "Hi {name}!",
|
||
"bankid_no_account_body": "We did not find an account linked to your BankID. Sign in with email below and then link BankID in settings.",
|
||
"bankid_no_account_create": "Or create a new account",
|
||
"bankid_unavailable_title": "No password?",
|
||
"bankid_unavailable_body": "If you created your account with BankID you can use \"Forgot password?\" to get a sign-in link by email.",
|
||
"terms_prefix": "By signing in you agree to our",
|
||
"terms_link": "terms",
|
||
"terms_and": "and",
|
||
"privacy_link": "privacy policy"
|
||
},
|
||
"settings_nav": {
|
||
"aria_label": "Settings",
|
||
"company": "Company",
|
||
"invoicing": "Invoicing",
|
||
"bookkeeping": "Bookkeeping",
|
||
"tax": "Tax",
|
||
"team": "Team",
|
||
"banking": "Bank (PSD2)",
|
||
"skatteverket": "Skatteverket",
|
||
"salary": "Payroll",
|
||
"templates": "Templates",
|
||
"agent_profile": "Company profile",
|
||
"agent_memory": "Assistant memory",
|
||
"agent_skills": "Assistant knowledge",
|
||
"assistant": "Assistant",
|
||
"backup": "Backup",
|
||
"account": "Account",
|
||
"api": "API",
|
||
"group_account": "Account",
|
||
"group_company": "Company",
|
||
"group_accounting": "Accounting & tax",
|
||
"group_sales": "Sales",
|
||
"group_tools": "Tools & integrations"
|
||
},
|
||
"settings_modal": {
|
||
"title": "Settings",
|
||
"description": "Manage your company and account"
|
||
},
|
||
"settings": {
|
||
"section_name": "Name",
|
||
"name_label": "Your name",
|
||
"name_description": "The name we use to address you and that appears as the contact person on some documents. We greet you by your first name, so put the name you go by first.",
|
||
"name_placeholder": "First name Last name",
|
||
"name_saved": "Name updated",
|
||
"name_save_failed": "Could not save name",
|
||
"section_appearance": "Appearance",
|
||
"section_language": "Language",
|
||
"language_description": "Choose the language for the interface. Invoices and reports always stay in Swedish.",
|
||
"language_saved": "Language updated",
|
||
"language_save_failed": "Could not save language preference",
|
||
"legal_title": "Privacy & agreements",
|
||
"legal_privacy": "Privacy policy",
|
||
"legal_dpa": "Data Processing Agreement (DPA)"
|
||
},
|
||
"help": {
|
||
"title": "Help & Glossary",
|
||
"subtitle": "Definitions of Swedish tax and bookkeeping terms (in Swedish — these terms appear in your dealings with Skatteverket).",
|
||
"search_placeholder": "Search for a term...",
|
||
"filter_all": "All",
|
||
"no_results": "No terms found for \"{query}\"",
|
||
"templates_title": "Documents & Templates",
|
||
"templates_subtitle": "Statutory templates for your bookkeeping — download, fill in, and save",
|
||
"external_resources_title": "External resources",
|
||
"support_title": "Need more help?",
|
||
"support_subtitle": "Can't find what you're looking for? Contact us and we'll help.",
|
||
"category_skatt": "Tax",
|
||
"category_moms": "VAT",
|
||
"category_faktura": "Invoice",
|
||
"category_bokforing": "Bookkeeping",
|
||
"category_bank": "Bank",
|
||
"category_foretag": "Company",
|
||
"related_label": "Related:",
|
||
"read_more_skv": "Read more at Skatteverket"
|
||
},
|
||
"pending": {
|
||
"title": "Review",
|
||
"subtitle": "Operations waiting for approval",
|
||
"tab_pending": "Pending",
|
||
"tab_committed": "Approved",
|
||
"tab_rejected": "Rejected",
|
||
"tab_all": "All",
|
||
"tab_agent": "From agent",
|
||
"tab_high_risk": "High risk",
|
||
"approve": "Approve",
|
||
"approve_selected": "Approve selected ({count})",
|
||
"approve_selected_none": "Approve selected",
|
||
"approve_count": "Approve {count}",
|
||
"approve_operation_title": "Approve operation",
|
||
"approve_bulk_title": "Approve {count} operations?",
|
||
"reject": "Reject",
|
||
"select_all_aria": "Select all",
|
||
"select_operation_aria": "Select operation",
|
||
"selected_count": "{count} selected",
|
||
"select_all_count": "Select all ({count})",
|
||
"select_all_count_partial": "Select ({eligible} of {total} — {excluded} require individual review)",
|
||
"deselect": "Deselect",
|
||
"quick_pick": "Quick pick:",
|
||
"conversation_filter_label": "Showing operations from conversation",
|
||
"conversation_filter_clear": "Clear filter",
|
||
"badge_high_risk": "High risk",
|
||
"badge_approved": "Approved",
|
||
"badge_rejected": "Rejected",
|
||
"empty_pending_title": "No pending operations",
|
||
"empty_committed_title": "No approved operations",
|
||
"empty_rejected_title": "No rejected operations",
|
||
"empty_pending_description": "When an operation needs approval it will appear here for review.",
|
||
"empty_finished_description": "Operations you have approved or rejected appear here.",
|
||
"bulk_confirm_intro": "Confirming will perform the following:",
|
||
"bulk_confirm_footer": "Operations run in order. Failed ones are skipped and reported afterwards.",
|
||
"type_categorize_transaction": "Categorization",
|
||
"type_create_customer": "New customer",
|
||
"type_create_invoice": "New invoice",
|
||
"type_create_transaction": "New transaction",
|
||
"type_create_voucher": "New journal entry",
|
||
"type_correct_entry": "Correction",
|
||
"type_reverse_entry": "Reversal",
|
||
"type_mark_invoice_paid": "Paid invoice",
|
||
"type_send_invoice": "Send invoice",
|
||
"type_mark_invoice_sent": "Mark as sent",
|
||
"type_match_transaction_invoice": "Invoice match",
|
||
"origin_agent_chat": "Suggested by the AI assistant via chat",
|
||
"origin_mcp": "Suggested by an AI assistant via {label}",
|
||
"origin_api": "Suggested via API integration",
|
||
"origin_cron": "Created by a scheduled job",
|
||
"explainer": "Approve executes the bookkeeping operation. Reject just discards the proposal — nothing is booked.",
|
||
"auto_expiry_note": "Unhandled proposals expire automatically after 30 days — doing nothing is safe.",
|
||
"badge_auto_expired": "Expired automatically",
|
||
"auto_expired_detail": "Expired automatically after 30 days without action. Nothing was booked."
|
||
},
|
||
"deadlines": {
|
||
"title": "Deadlines",
|
||
"load_failed_title": "Could not load deadlines",
|
||
"load_failed_description": "Check your connection and try again.",
|
||
"created_title": "Deadline created",
|
||
"created_description": "Your deadline has been saved",
|
||
"create_failed_title": "Could not create deadline",
|
||
"marked_done": "\"{title}\" marked done",
|
||
"marked_not_done": "\"{title}\" marked not done",
|
||
"undo": "Undo",
|
||
"undo_failed": "Could not undo",
|
||
"toggle_failed_title": "Could not update status",
|
||
"updated_title": "Deadline updated",
|
||
"updated_description": "Your changes have been saved",
|
||
"update_failed_title": "Could not save changes",
|
||
"deleted_title": "Deadline deleted",
|
||
"delete_failed_title": "Could not delete deadline",
|
||
"retry": "Please try again.",
|
||
"overdue_invoices": "{count} overdue invoices"
|
||
},
|
||
"bureau": {
|
||
"title": "Bureau",
|
||
"subtitle": "Overview of every client company you have access to",
|
||
"section_title": "Bureau mode",
|
||
"enable_setting": "Enable bureau mode",
|
||
"enable_setting_description": "Shows an aggregated overview of every client company you have access to",
|
||
"toggle_saved": "Bureau mode updated",
|
||
"toggle_save_failed": "Could not save bureau setting",
|
||
"tiles": {
|
||
"clients": "Clients total",
|
||
"pending": "Awaiting approval",
|
||
"deadlines": "Deadlines this week",
|
||
"overdue_ar": "Overdue invoices"
|
||
},
|
||
"action": {
|
||
"open": "Open"
|
||
},
|
||
"pending_label": "Pending operations",
|
||
"deadlines_label": "Upcoming deadlines",
|
||
"no_pending": "No pending operations",
|
||
"no_deadlines": "No deadlines this week",
|
||
"show_pending": "Show pending",
|
||
"high_risk": "{count} high risk",
|
||
"kpi": {
|
||
"revenue_mtd": "Revenue MTD",
|
||
"cash": "Cash",
|
||
"overdue_ar": "Overdue AR"
|
||
},
|
||
"role": {
|
||
"owner": "owner",
|
||
"admin": "admin",
|
||
"member": "member",
|
||
"viewer": "viewer"
|
||
},
|
||
"deadline_status": {
|
||
"overdue": "overdue"
|
||
},
|
||
"empty": {
|
||
"title": "No client companies yet",
|
||
"description": "Once you are added to a company it will appear here."
|
||
}
|
||
},
|
||
"insights": {
|
||
"title": "Insights",
|
||
"empty": "No anomalies found",
|
||
"severity_flag": "Address",
|
||
"severity_warn": "Review",
|
||
"severity_info": "Info",
|
||
"action_dismiss": "Dismiss",
|
||
"action_snooze": "Snooze 7d",
|
||
"subject_open": "Open source",
|
||
"dashboard_tile_title": "Anomalies",
|
||
"dashboard_tile_subtitle": "{count} to address",
|
||
"rules": {
|
||
"outlier_amount": "Unusual amount for counterparty",
|
||
"missing_recurring": "Missing recurring vendor",
|
||
"duplicate_suspect": "Possible duplicate",
|
||
"stale_uncategorized": "Old uncategorized transaction",
|
||
"vat_rate_outlier": "Unusual VAT rate",
|
||
"stale_customer_balance": "Stale customer balance"
|
||
}
|
||
},
|
||
"supplier_invoices": {
|
||
"title": "Supplier invoices",
|
||
"register_invoice": "Register invoice",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"tab_all": "All",
|
||
"tab_registered": "Registered",
|
||
"tab_approved": "Approved",
|
||
"tab_to_pay": "To pay",
|
||
"tab_paid": "Paid",
|
||
"empty_title": "No invoices",
|
||
"empty_description_all": "Register supplier invoices to keep track of purchases and payments.",
|
||
"empty_description_category": "No invoices in this category.",
|
||
"th_arrival": "Arrival",
|
||
"th_supplier": "Supplier",
|
||
"th_invoice_number": "Invoice no.",
|
||
"th_invoice_date": "Invoice date",
|
||
"th_due_date": "Due",
|
||
"th_amount": "Amount",
|
||
"th_remaining": "Remaining",
|
||
"th_status": "Status",
|
||
"status_registered": "Registered",
|
||
"status_approved": "Approved",
|
||
"status_paid": "Paid",
|
||
"status_partially_paid": "Partially paid",
|
||
"status_overdue": "Overdue",
|
||
"status_disputed": "Disputed",
|
||
"status_credited": "Credited",
|
||
"status_reversed": "Reversed"
|
||
},
|
||
"purchase_orders": {
|
||
"title": "Purchase orders",
|
||
"new": "New purchase order",
|
||
"empty_title": "No purchase orders yet",
|
||
"empty_description": "Create a purchase order to plan a purchase, record goods receipts, and reconcile against the supplier invoice.",
|
||
"filter_open": "Open",
|
||
"filter_all": "All",
|
||
"th_number": "Number",
|
||
"th_supplier": "Supplier",
|
||
"th_order_date": "Order date",
|
||
"th_status": "Status",
|
||
"th_expected_delivery": "Expected delivery",
|
||
"th_amount": "Amount",
|
||
"status_draft": "Draft",
|
||
"status_sent": "Sent",
|
||
"status_partially_received": "Partially received",
|
||
"status_received": "Received",
|
||
"status_partially_invoiced": "Partially invoiced",
|
||
"status_closed": "Closed",
|
||
"status_cancelled": "Cancelled",
|
||
"send": "Mark as sent",
|
||
"receive": "Receive goods",
|
||
"cancel": "Cancel order",
|
||
"three_way_match_failed": "Three-way match failed. Verify quantities and prices against the purchase order.",
|
||
"po_link_required": "Company settings require supplier invoices to be linked to a purchase order.",
|
||
"match_within_tolerance": "Within tolerance",
|
||
"match_out_of_tolerance": "Outside tolerance"
|
||
},
|
||
"suppliers": {
|
||
"title": "Suppliers",
|
||
"subtitle": "Manage your suppliers and their payment details",
|
||
"new_supplier": "New supplier",
|
||
"add_supplier": "Add supplier",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"search_placeholder": "Search by name, email, or org. number...",
|
||
"load_failed_title": "Could not load suppliers",
|
||
"load_failed_description": "Check your connection and try again.",
|
||
"create_failed_title": "Could not create supplier",
|
||
"create_failed_retry": "Please try again.",
|
||
"created_title": "Supplier created",
|
||
"created_description": "{name} has been added",
|
||
"no_search_results_title": "No matches",
|
||
"no_search_results_description": "No suppliers match \"{term}\".",
|
||
"empty_title": "No suppliers",
|
||
"empty_description": "Add your first supplier to start recording purchase invoices.",
|
||
"type_swedish_business": "Swedish company or organization",
|
||
"type_eu_business": "EU business",
|
||
"type_non_eu_business": "Outside EU",
|
||
"label_org_number": "Org. no.",
|
||
"label_email": "Email",
|
||
"label_location": "Location",
|
||
"label_bg": "BG",
|
||
"label_pg": "PG",
|
||
"label_iban": "IBAN",
|
||
"label_bank_account": "Bank account",
|
||
"no_contact_info": "No contact details"
|
||
},
|
||
"accruals": {
|
||
"row_toggle": "Defer over period",
|
||
"row_toggle_aria": "Defer line {index} over a period",
|
||
"row_menu_add": "Add accrual period",
|
||
"row_menu_remove": "Remove deferral",
|
||
"panel_title": "Periodisering",
|
||
"start_label": "Period start",
|
||
"end_label": "Period end",
|
||
"account_label": "Balance account",
|
||
"remove_aria": "Remove deferral",
|
||
"preview": "{months} months × {amount}",
|
||
"preview_invalid_period": "The period end must be after its start",
|
||
"preview_min_months": "Deferral requires at least 2 calendar months",
|
||
"k2_hint": "Amounts under SEK 5,000 normally do not need to be deferred (K2).",
|
||
"validation_period": "Enter a period of at least 2 calendar months",
|
||
"incomplete_toast_title": "Incomplete deferral",
|
||
"incomplete_toast_description": "Set the period start and end (at least 2 months) or remove the deferral from the line."
|
||
},
|
||
"assets": {
|
||
"title": "Fixed assets",
|
||
"new_asset": "New asset",
|
||
"load_failed": "Could not load assets",
|
||
"empty_title": "No assets yet",
|
||
"empty_description": "Add fixed assets (computers, furniture, vehicles, machines) and year-end will compute scheduled depreciation automatically.",
|
||
"th_name": "Name",
|
||
"th_category": "Category",
|
||
"th_acquired": "Acquired",
|
||
"th_acquisition_cost": "Acquisition cost",
|
||
"th_useful_life": "Depreciation period",
|
||
"th_status": "Status",
|
||
"th_actions": "Actions",
|
||
"useful_life_format": "{years} yr ({months} mo)",
|
||
"status_disposed": "Disposed",
|
||
"status_active": "Active",
|
||
"action_edit": "Edit",
|
||
"action_dispose": "Dispose",
|
||
"category_immaterial": "Intangible",
|
||
"category_building": "Building",
|
||
"category_land_improvement": "Land improvement",
|
||
"category_machinery": "Machinery",
|
||
"category_equipment": "Equipment",
|
||
"category_vehicle": "Vehicle",
|
||
"category_computer": "Computer",
|
||
"category_other_tangible": "Other tangible"
|
||
},
|
||
"employees": {
|
||
"title": "Employees",
|
||
"registered_count": "{count} registered",
|
||
"back_to_payroll": "Back to payroll",
|
||
"new_employee": "New employee",
|
||
"add_employee": "Add employee",
|
||
"empty_title": "No employees",
|
||
"empty_description": "Add employees to create payroll runs and AGI filings.",
|
||
"th_name": "Name",
|
||
"th_personnummer": "Personal ID",
|
||
"th_type": "Type",
|
||
"th_salary": "Salary",
|
||
"th_employment_degree": "Employment %",
|
||
"th_tax_table": "Tax table",
|
||
"tax_table_format": "Table {table}, col {column}",
|
||
"hourly_suffix": "/hr",
|
||
"employment_employee": "Employee",
|
||
"employment_company_owner": "Company owner",
|
||
"employment_board_member": "Board member"
|
||
},
|
||
"register": {
|
||
"subtitle": "Create an account to get started",
|
||
"or_email_divider": "or sign up with email",
|
||
"bankid_unavailable_body": "Create an account with email and password below instead. You can link BankID in settings later.",
|
||
"bankid_verified": "Verified with BankID",
|
||
"email_label": "Email address",
|
||
"email_placeholder": "name@example.com",
|
||
"bankid_email_hint": "Used for sign-in and notifications.",
|
||
"invite_email_hint": "The invitation was sent to this address.",
|
||
"password_label": "Password",
|
||
"password_placeholder": "Min 8 chars, Aa1!",
|
||
"confirm_password_label": "Confirm password",
|
||
"confirm_password_placeholder": "Repeat the password",
|
||
"create_account": "Create account",
|
||
"creating": "Creating account...",
|
||
"back": "Back",
|
||
"already_have_account": "Already have an account?",
|
||
"sign_in": "Sign in",
|
||
"terms_prefix": "By creating an account you agree to our",
|
||
"terms_link": "terms",
|
||
"terms_and": "and",
|
||
"privacy_link": "privacy policy",
|
||
"bankid_failed_title": "BankID failed",
|
||
"bankid_failed_description": "Could not verify your identity.",
|
||
"bankid_already_linked_title": "BankID already linked",
|
||
"bankid_already_linked_description": "This BankID is already linked to an account. Try signing in instead.",
|
||
"account_exists_title": "Account already exists",
|
||
"account_exists_description": "An account with this email already exists. Sign in and link BankID in settings.",
|
||
"register_failed_title": "Sign-up failed",
|
||
"register_failed_default": "An unexpected error occurred.",
|
||
"register_failed_complete": "Could not complete the sign-up",
|
||
"weak_password_title": "Password too weak",
|
||
"weak_password_description": "Password must be at least 8 characters and include uppercase, lowercase, digits, and a special character.",
|
||
"password_mismatch_title": "Passwords don't match",
|
||
"password_mismatch_description": "Check that you typed the same password in both fields.",
|
||
"duplicate_title": "Account already exists",
|
||
"duplicate_body_prefix": "There is already an account linked to",
|
||
"duplicate_hint": "Sign in with your email and password. If you have forgotten your password you can reset it via \"Forgot password?\" on the sign-in page.",
|
||
"confirm_email_title": "Confirm your email",
|
||
"confirm_email_body": "We sent a confirmation link to <strong>{email}</strong>",
|
||
"confirm_email_hint": "Click the link in the email to activate your account. The link is valid for 24 hours.",
|
||
"open_webmail_search": "Find the email in {provider}",
|
||
"open_webmail_inbox": "Open {provider}",
|
||
"back_to_login": "Back to sign in"
|
||
},
|
||
"mfa": {
|
||
"enroll_title": "Set up two-step verification",
|
||
"enroll_subtitle": "Secure your account with an authenticator app",
|
||
"verify_title": "Two-step verification",
|
||
"verify_subtitle": "Enter the code from your authenticator app",
|
||
"verify_code_label": "Verification code",
|
||
"verify_button": "Verify",
|
||
"verifying": "Verifying...",
|
||
"enroll_step_qr": "Scan the QR code",
|
||
"enroll_step_qr_hint": "Use an authenticator app like Google Authenticator, Authy, or 1Password.",
|
||
"enroll_show_secret": "Show secret manually",
|
||
"enroll_step_verify": "Verify code",
|
||
"enroll_step_verify_hint": "Enter the code from your app to complete enrollment.",
|
||
"enroll_finish": "Enable",
|
||
"enroll_finishing": "Enabling...",
|
||
"enroll_failed_title": "Could not enable two-step verification",
|
||
"verify_failed_title": "Verification failed",
|
||
"verify_failed_description": "The code is incorrect or has expired.",
|
||
"enrolled_title": "Two-step verification enabled",
|
||
"enrolled_description": "Your account is now protected.",
|
||
"back": "Back",
|
||
"verify_subtitle_full": "Enter the 6-digit code from your authenticator app",
|
||
"verify_challenge_failed_description": "Could not start verification. Please try again.",
|
||
"wrong_code_title": "Wrong code",
|
||
"wrong_code_description": "Check the code and try again.",
|
||
"unexpected_error": "An unexpected error occurred. Please try again.",
|
||
"wait_seconds": "Wait {seconds}s",
|
||
"lost_authenticator": "Lost your authenticator app?",
|
||
"contact_support": "Contact support"
|
||
},
|
||
"reset_password": {
|
||
"title": "Choose a new password",
|
||
"subtitle": "Enter a new password for your account.",
|
||
"new_password_label": "New password",
|
||
"new_password_placeholder": "Min 8 chars, Aa1!",
|
||
"confirm_password_label": "Confirm password",
|
||
"confirm_password_placeholder": "Repeat the password",
|
||
"submit": "Save password",
|
||
"submitting": "Saving...",
|
||
"saved_title": "Password saved",
|
||
"saved_description": "You can now sign in with your new password.",
|
||
"weak_title": "Password too weak",
|
||
"weak_description": "Password must be at least 8 characters and include uppercase, lowercase, digits, and a special character.",
|
||
"mismatch_title": "Passwords don't match",
|
||
"save_failed_title": "Could not save password",
|
||
"save_failed_description": "Please try again."
|
||
},
|
||
"customer_detail": {
|
||
"back": "Back to customers",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"edit_dialog_title": "Edit customer",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"section_contact": "Contact details",
|
||
"section_business": "Business details",
|
||
"section_summary": "Overview",
|
||
"section_notes": "Notes",
|
||
"section_invoices": "Invoices",
|
||
"no_contact_info": "No contact details",
|
||
"no_business_info": "No business details",
|
||
"no_invoices": "No invoices linked to this customer",
|
||
"label_org_number": "Org. no.:",
|
||
"label_vat": "VAT:",
|
||
"label_payment_terms": "Payment terms:",
|
||
"payment_terms_value": "{days} days",
|
||
"verified": "Verified",
|
||
"invoice_count": "{count} invoices",
|
||
"load_failed_title": "Could not load customer",
|
||
"load_failed_description": "Customer not found.",
|
||
"updated_title": "Customer updated",
|
||
"update_failed_title": "Could not update customer",
|
||
"retry": "Please try again.",
|
||
"delete_confirm_title": "Delete {name}",
|
||
"delete_confirm_description": "The customer and related data will be permanently deleted. This cannot be undone.",
|
||
"delete_confirm_label": "Delete",
|
||
"deleted_title": "Customer deleted",
|
||
"delete_failed_title": "Could not delete customer",
|
||
"invoice_status_paid": "Paid",
|
||
"invoice_status_overdue": "Overdue",
|
||
"invoice_status_unpaid": "Unpaid",
|
||
"type_individual": "Individual",
|
||
"type_swedish_business": "Swedish company or organization",
|
||
"type_eu_business": "EU business",
|
||
"type_non_eu_business": "Outside EU"
|
||
},
|
||
"form_customer": {
|
||
"type_label": "Customer type *",
|
||
"type_placeholder": "Choose customer type",
|
||
"type_individual": "Individual (Sweden)",
|
||
"type_swedish_business": "Swedish company or organization",
|
||
"type_eu_business": "EU business",
|
||
"type_non_eu_business": "Business outside EU",
|
||
"type_hint": "Customer type affects how VAT is handled on invoices",
|
||
"name_label": "Name *",
|
||
"name_placeholder": "Company or person name",
|
||
"name_required": "Name is required",
|
||
"email_label": "Email",
|
||
"email_placeholder": "name@company.com",
|
||
"email_invalid": "Invalid email address",
|
||
"phone_label": "Phone",
|
||
"phone_placeholder": "+46 70 123 45 67",
|
||
"address_section": "Address",
|
||
"street_label": "Street address",
|
||
"street_placeholder": "Storgatan 1",
|
||
"postal_label": "Postal code",
|
||
"postal_placeholder": "123 45",
|
||
"city_label": "City",
|
||
"city_placeholder": "Stockholm",
|
||
"country_label": "Country",
|
||
"country_placeholder": "Sweden",
|
||
"business_section": "Business details",
|
||
"individual_section": "Personal details",
|
||
"personal_number_label": "Personal number",
|
||
"personal_number_placeholder": "YYYYMMDD-XXXX",
|
||
"personal_number_invalid": "Invalid personal number",
|
||
"org_number_label": "Org. number",
|
||
"org_number_placeholder": "XXXXXX-XXXX",
|
||
"vat_label": "VAT number",
|
||
"vat_placeholder_eu": "DE123456789",
|
||
"vat_placeholder_se": "SE123456789001",
|
||
"vat_verify": "Verify",
|
||
"vat_hint_eu": "Verify the VAT number to invoice with reverse charge (0% VAT)",
|
||
"vat_verified_title": "VAT number verified",
|
||
"vat_verified_description": "Company: {name}",
|
||
"vat_failed_title": "Verification failed",
|
||
"vat_failed_default": "The VAT number could not be verified",
|
||
"vat_error_title": "Could not verify VAT number",
|
||
"payment_terms_label": "Payment terms (days)",
|
||
"language_label": "Invoice language",
|
||
"language_sv": "Swedish",
|
||
"language_en": "English",
|
||
"language_hint": "Invoices and emails to this customer are sent in the chosen language. Does not affect how the invoice is booked.",
|
||
"notes_label": "Notes",
|
||
"notes_placeholder": "Internal notes about the customer...",
|
||
"submit_save": "Save customer",
|
||
"submit_saving": "Saving...",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company"
|
||
},
|
||
"form_supplier": {
|
||
"name_label": "Name *",
|
||
"name_placeholder": "Company name",
|
||
"name_required": "Name is required",
|
||
"type_label": "Supplier type *",
|
||
"type_swedish_business": "Swedish company or organization",
|
||
"type_eu_business": "EU business",
|
||
"type_non_eu_business": "Business outside EU",
|
||
"type_hint": "Supplier type affects how VAT is handled on purchases",
|
||
"email_label": "Email",
|
||
"email_placeholder": "contact@company.com",
|
||
"email_invalid": "Invalid email address",
|
||
"phone_label": "Phone",
|
||
"address_section": "Address",
|
||
"street_label": "Street address",
|
||
"postal_label": "Postal code",
|
||
"city_label": "City",
|
||
"country_label": "Country",
|
||
"business_section": "Business details",
|
||
"org_number_label": "Org. number",
|
||
"org_number_placeholder": "XXXXXX-XXXX",
|
||
"vat_label": "VAT number",
|
||
"vat_placeholder_eu": "DE123456789",
|
||
"vat_placeholder_se": "SE123456789001",
|
||
"vat_verify": "Verify",
|
||
"vat_verified_title": "VAT number verified",
|
||
"vat_verified_description": "Company: {name}",
|
||
"vat_failed_title": "Verification failed",
|
||
"vat_failed_default": "The VAT number could not be verified",
|
||
"vat_error_title": "Could not verify VAT number",
|
||
"payment_section": "Payment details",
|
||
"bankgiro_label": "Bankgiro",
|
||
"bankgiro_placeholder": "123-4567",
|
||
"plusgiro_label": "Plusgiro",
|
||
"iban_label": "IBAN",
|
||
"iban_placeholder": "SE45 5000 0000 0583 9825 7466",
|
||
"swift_label": "SWIFT/BIC",
|
||
"bank_account_label": "Bank account",
|
||
"default_payment_terms_label": "Payment terms (days)",
|
||
"default_account_label": "Default account",
|
||
"default_account_placeholder": "e.g. 5410",
|
||
"notes_label": "Notes",
|
||
"notes_placeholder": "Internal notes about the supplier...",
|
||
"submit_save": "Save supplier",
|
||
"submit_saving": "Saving...",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company"
|
||
},
|
||
"upcoming_deadlines": {
|
||
"title": "Upcoming deadlines",
|
||
"overdue_badge": "{count} overdue",
|
||
"action_needed_badge": "{count} to act on",
|
||
"today": "Today",
|
||
"tomorrow": "Tomorrow",
|
||
"time_prefix": "at",
|
||
"tax_badge": "Tax",
|
||
"mark_as_submitted": "Mark as submitted",
|
||
"mark_as_confirmed": "Mark as confirmed",
|
||
"view_all": "View all deadlines",
|
||
"toast_status_updated": "Status updated",
|
||
"toast_status_updated_description": "Deadline marked as {status}",
|
||
"toast_status_update_failed": "Could not update status"
|
||
},
|
||
"tax_todo": {
|
||
"title": "To do — Tax",
|
||
"overdue_badge": "{count} overdue",
|
||
"action_needed_badge": "{count} soon",
|
||
"today": "Today",
|
||
"tomorrow": "Tomorrow",
|
||
"days_ago": "{count} days ago",
|
||
"in_days": "In {count} days",
|
||
"start": "Start",
|
||
"submitted": "Submitted",
|
||
"more_tasks": "+{count} more tasks",
|
||
"view_all": "View all deadlines",
|
||
"toast_status_updated": "Status updated",
|
||
"toast_status_updated_description": "Marked as {status}",
|
||
"toast_status_update_failed": "Could not update status"
|
||
},
|
||
"new_user_checklist": {
|
||
"welcome": "Welcome to {appName}",
|
||
"intro": "Start by importing your bookkeeping, then connect your bank. Nothing changes in your current system.",
|
||
"step1_title": "Import your bookkeeping",
|
||
"step1_done_title": "Bookkeeping imported",
|
||
"step1_done_description": "Done. You can import more periods later from the Import view.",
|
||
"migrate_title": "Import from another system",
|
||
"migrate_description": "Nothing changes in your existing system.",
|
||
"sie_title": "Import SIE file",
|
||
"sie_description": "Export a SIE4 file from your current bookkeeping software and upload it here.",
|
||
"step2_title": "Connect your bank",
|
||
"bank_title": "Connect your bank account",
|
||
"bank_description_psd2": "Connect via PSD2 — transactions sync automatically every day.",
|
||
"bank_description_file": "Import bank statements from your bank — CSV, OFX and most Swedish banks.",
|
||
"step3_title": "Anslut Skatteverket",
|
||
"optional_suffix": "— optional",
|
||
"skatteverket_connected_title": "Skatteverket connected",
|
||
"skatteverket_connected_description": "You can now submit momsdeklaration and AGI directly, and see the balance on your skattekonto.",
|
||
"skatteverket_connect_title": "Connect to Skatteverket with BankID",
|
||
"skatteverket_connect_description": "Submit momsdeklaration and arbetsgivardeklaration directly, and fetch the balance on your skattekonto — without leaving {appName}.",
|
||
"or_separator": "or",
|
||
"fresh_start": "I'm starting a new business with no prior bookkeeping",
|
||
"security_note": "Your data is encrypted and stored securely in Sweden"
|
||
},
|
||
"onboarding": {
|
||
"greeting_night": "Good night",
|
||
"greeting_morning": "Good morning",
|
||
"greeting_hello": "Hi",
|
||
"greeting_afternoon": "Good afternoon",
|
||
"greeting_evening": "Good evening",
|
||
"welcome_title": "Welcome to {appName}",
|
||
"add_first_company": "Add your first company",
|
||
"add_a_company": "Add a company",
|
||
"add_first_company_subtitle": "Add your first company to get started.",
|
||
"add_company_subtitle": "Add a company.",
|
||
"new_company": "New company",
|
||
"step1_title": "Entity type",
|
||
"step1_subtitle": "Choose your entity type to get started.",
|
||
"step2_title": "Details",
|
||
"step2_subtitle": "These details appear on invoices and documents.",
|
||
"step3_title": "F-skatt & fiscal year",
|
||
"step3_subtitle": "Enter your tax registration and fiscal year.",
|
||
"step4_title": "VAT & accounting",
|
||
"step4_subtitle": "VAT registration and accounting method.",
|
||
"period_error_end_after_start": "The end date must be after the start date.",
|
||
"period_error_start_first": "The start date must be the 1st of a month.",
|
||
"period_error_end_last_day": "The end date must be the last day of a month.",
|
||
"period_error_max_18": "The fiscal year cannot exceed 18 months (BFL 3 kap.).",
|
||
"period_error_invalid": "Invalid fiscal year. Check the dates and try again.",
|
||
"toast_invalid_fiscal_year": "Invalid fiscal year",
|
||
"toast_error_title": "Error",
|
||
"toast_create_failed": "Could not create company. Please try again.",
|
||
"toast_org_invalid_title": "Invalid organisation number",
|
||
"toast_org_invalid_description": "Check that you entered a valid 10- or 12-digit organisation number.",
|
||
"toast_welcome_title": "Welcome!",
|
||
"toast_company_ready": "Your company is ready.",
|
||
"toast_unexpected_error": "An unexpected error occurred. Please try again.",
|
||
"saving": "Saving...",
|
||
"continue": "Continue",
|
||
"back": "Back",
|
||
"coming_soon": "Coming soon",
|
||
"missing_fields": "Missing information",
|
||
"check_all_fields": "Check that all fields are filled in correctly.",
|
||
"step1_ef_description": "You run a business in your own name with an F-skatt certificate",
|
||
"step1_ab_description": "You have a registered AB with an organisation number",
|
||
"step2_card_title": "Basic information",
|
||
"step2_card_desc_tic": "Enter the organisation number and the remaining details will be fetched automatically.",
|
||
"step2_card_desc_ab": "Enter the company's registered name and organisation number.",
|
||
"step2_card_desc_ef": "Enter the name of your business.",
|
||
"step2_org_number_label": "Organisation number *",
|
||
"step2_org_number_placeholder_ef": "YYMMDD-XXXX (your personnummer for EF)",
|
||
"step2_org_help_ab": "Required for aktiebolag",
|
||
"step2_org_help_ef": "For enskild firma, the org number is the same as your personnummer",
|
||
"step2_fetching_details": "Fetching company details...",
|
||
"step2_lookup_not_found": "No company found with that organisation number.",
|
||
"step2_lookup_failed": "Could not fetch company details. You can fill them in manually.",
|
||
"step2_ceased_inline": "{companyName} — the company is deregistered",
|
||
"step2_company_exists_own": "You already have {name} with this organisation number. You can still continue.",
|
||
"step2_company_name_ab": "Company name *",
|
||
"step2_company_name_ef": "Business name (or your name for EF) *",
|
||
"step2_company_name_placeholder_ab": "AB Företaget",
|
||
"step2_company_name_placeholder_ef": "Alice's consulting",
|
||
"step2_address_heading": "Address (for invoices)",
|
||
"step2_street_address": "Street address",
|
||
"step2_street_placeholder": "Storgatan 1",
|
||
"step2_postal_code": "Postal code",
|
||
"step2_city": "City",
|
||
"step3_card_title": "F-skatt and fiscal year",
|
||
"step3_card_description": "These details are used to calculate your tax situation.",
|
||
"step3_invalid_period": "Fiscal year is not valid",
|
||
"step3_broken_year_title": "Are you sure about a non-calendar fiscal year?",
|
||
"step3_broken_year_description": "You've chosen a fiscal year that doesn't follow the calendar year (ending {endLabel}). Most Swedish companies use the calendar year (1 January – 31 December). You can change this later in settings, but only before you've posted anything.",
|
||
"step3_broken_year_confirm": "Yes, continue",
|
||
"step3_broken_year_cancel": "Change selection",
|
||
"step3_fskatt_tip_title": "What is F-skatt?",
|
||
"step3_fskatt_tip_body": "F-skatt means you are responsible for paying tax and contributions to Skatteverket each month yourself.",
|
||
"step3_fskatt_tip_note": "Most business owners have F-skatt. Without F-skatt, your customers must withhold tax from your invoices.",
|
||
"step3_fskatt_label": "I have an F-skatt certificate",
|
||
"step3_fskatt_help": "F-skatt means you are responsible for paying tax and contributions yourself.",
|
||
"step3_fy_tip_title": "Fiscal year",
|
||
"step3_fy_tip_body": "Your fiscal year determines the period you keep books for. Most companies use the calendar year (Jan–Dec).",
|
||
"step3_fy_tip_ef_note": "Enskild firma must use the calendar year per BFL 3 kap.",
|
||
"step3_fy_question": "Which fiscal year are you bookkeeping for?",
|
||
"step3_first_fy_title": "First fiscal year",
|
||
"step3_first_fy_subtitle": "Newly started company",
|
||
"step3_other_fy_title": "Other fiscal year",
|
||
"step3_other_fy_subtitle": "Ongoing business",
|
||
"step3_start_help": "The date the company was registered. The first fiscal year can start any day.",
|
||
"step3_fy_end_month_label": "Fiscal year ends (month)",
|
||
"step3_select_month": "Select month",
|
||
"step3_end_date_label": "End date",
|
||
"step3_select_end_date": "Select end date",
|
||
"step3_no_valid_end": "No valid end period found. Check the start date.",
|
||
"step3_calendar_year": "Calendar year (January – December)",
|
||
"step3_ef_calendar_required": "Enskild firma must use the calendar year per BFL 3 kap.",
|
||
"step3_when_fy_ends": "When does the company's fiscal year end?",
|
||
"step3_calendar_or_broken": "Most use the calendar year (December). A non-calendar fiscal year ends in another month.",
|
||
"step3_your_fy": "Your fiscal year",
|
||
"step3_twelve_months": "12 months",
|
||
"step4_card_title": "VAT and accounting method",
|
||
"step4_card_description": "Enter your VAT registration and choose an accounting method.",
|
||
"step4_vat_tip_title": "Do I need to register for VAT?",
|
||
"step4_vat_tip_body": "Yes, if your turnover exceeds SEK 120,000 per year. With VAT you add 25% to your invoices but can also deduct VAT on your purchases.",
|
||
"step4_vat_tip_note": "If your turnover exceeds SEK 120,000 per year you need to register for VAT.",
|
||
"step4_vat_heading": "VAT registration",
|
||
"step4_vat_registered_label": "I am VAT-registered",
|
||
"step4_vat_registered_help": "Required if your turnover exceeds SEK 120,000 per year.",
|
||
"step4_vat_number_label": "VAT registration number",
|
||
"step4_vat_number_format": "Format: SE + organisation number + 01",
|
||
"step4_vat_period_tip_title": "How often do you report VAT?",
|
||
"step4_vat_period_tip_body": "Choose the period stated on Verksamt or in your decision from Skatteverket.",
|
||
"step4_vat_period_bracket_low": "Under SEK 1 million/year = Can choose yearly",
|
||
"step4_vat_period_bracket_mid": "SEK 1–40 million = Quarterly",
|
||
"step4_vat_period_bracket_high": "Over SEK 40 million = Monthly",
|
||
"step4_vat_period_label": "VAT reporting period",
|
||
"step4_select_period": "Select period",
|
||
"step4_period_monthly": "Monthly",
|
||
"step4_period_quarterly": "Quarterly",
|
||
"step4_period_yearly": "Yearly",
|
||
"step4_period_help": "Choose the period stated in your decision from Skatteverket. Usually quarterly or yearly.",
|
||
"step4_method_tip": "Faktureringsmetoden posts revenue and expenses when the invoice is sent/received. Kontantmetoden posts at payment.",
|
||
"step4_method_label": "Accounting method",
|
||
"step4_method_accrual": "Faktureringsmetoden",
|
||
"step4_method_cash": "Kontantmetoden",
|
||
"step4_method_accrual_desc": "Revenue and expenses are posted when the invoice is sent or received, regardless of when payment occurs. This gives a more accurate view of the business's finances.",
|
||
"step4_method_cash_desc": "Revenue and expenses are posted only when payment actually occurs. Simpler to manage but gives a less precise view of the business's finances at any given moment.",
|
||
"step4_cash_limit_note": "Kontantmetoden may be used if annual net turnover is normally at most SEK 3 million (BFL 5 kap. 2 §)."
|
||
},
|
||
"select_company": {
|
||
"greeting_night": "Good night",
|
||
"greeting_morning": "Good morning",
|
||
"greeting_hello": "Hi",
|
||
"greeting_afternoon": "Good afternoon",
|
||
"greeting_evening": "Good evening",
|
||
"subtitle": "Choose a company to open or add a new one.",
|
||
"setting_up": "Setting up your company…",
|
||
"org_nr_prefix": "Org.nr {orgNumber}",
|
||
"progress_lookup": "Fetching details from Bolagsverket",
|
||
"progress_provision": "Creating company and chart of accounts",
|
||
"enrichment_stale": "The information from BankID is more than a week old. Sign in with BankID again to refresh the list.",
|
||
"section_your_companies": "Your companies in {appName}",
|
||
"section_bankid_companies": "Companies linked to your BankID",
|
||
"already_in_app": "Already in {appName}",
|
||
"setup_manually": "Set up manually",
|
||
"no_companies_found": "No companies found. Add your first company below.",
|
||
"or_separator": "or",
|
||
"add_company_manually": "Add company manually",
|
||
"toast_lookup_failed_title": "Could not fetch company details",
|
||
"toast_lookup_failed_description": "Fill in the remaining details manually.",
|
||
"toast_company_ceased_title": "The company is deregistered",
|
||
"toast_company_ceased_description": "You cannot set up bookkeeping for a deregistered company.",
|
||
"toast_org_invalid_title": "Invalid organisation number",
|
||
"toast_org_invalid_description": "Continue with manual setup.",
|
||
"toast_create_failed_title": "Could not create company",
|
||
"toast_create_failed_description": "Try again or add it manually.",
|
||
"toast_welcome_title": "Welcome!",
|
||
"toast_company_ready": "Your company is ready.",
|
||
"error_no_access": "You don't have access to this company.",
|
||
"error_switch_failed": "The company switch could not be saved. Please try again."
|
||
},
|
||
"companies_new": {
|
||
"step1_title": "New company",
|
||
"step1_subtitle": "Choose an entity type for the new company.",
|
||
"step1_label": "Entity type",
|
||
"step2_title": "Company details",
|
||
"step2_subtitle": "These details appear on invoices and documents.",
|
||
"step2_label": "Details",
|
||
"step3_title": "F-skatt & fiscal year",
|
||
"step3_subtitle": "Tax registration and fiscal year.",
|
||
"step3_label": "Tax",
|
||
"step4_title": "VAT & accounting",
|
||
"step4_subtitle": "VAT registration and accounting method.",
|
||
"step4_label": "VAT",
|
||
"period_error_end_after_start": "The end date must be after the start date.",
|
||
"period_error_start_first": "The start date must be the 1st of a month.",
|
||
"period_error_end_last_day": "The end date must be the last day of a month.",
|
||
"period_error_max_18": "The fiscal year cannot exceed 18 months (BFL 3 kap.).",
|
||
"period_error_invalid": "Invalid fiscal year. Check the dates and try again.",
|
||
"toast_invalid_fiscal_year": "Invalid fiscal year",
|
||
"toast_error_title": "Error",
|
||
"toast_no_team": "Could not find team. Reload the page.",
|
||
"toast_create_failed": "Could not create company. Please try again.",
|
||
"toast_company_created": "Company created!",
|
||
"toast_switched_to_new": "You have now switched to the new company.",
|
||
"toast_unexpected_error": "An unexpected error occurred. Please try again."
|
||
},
|
||
"invite": {
|
||
"header_invalid": "Invalid invitation",
|
||
"header_invited": "You've been invited",
|
||
"invalid_invite": "The invitation is invalid.",
|
||
"load_failed": "Could not load the invitation.",
|
||
"contact_inviter": "Contact the person who invited you for a new invitation.",
|
||
"go_to_login": "Go to sign in",
|
||
"expired_title": "The invitation has expired",
|
||
"expired_description": "Ask the person who invited you to send a new invitation.",
|
||
"invited_to_company": "You've been invited as a member of this company.",
|
||
"logged_in_as": "Signed in as <strong>{email}</strong>.",
|
||
"joining": "Joining…",
|
||
"join_named": "Join {companyName}",
|
||
"wrong_account": "The invitation was sent to <strong>{invitedEmail}</strong>, but you are signed in as <strong>{currentEmail}</strong>.",
|
||
"signout_then_login": "Sign out and sign in again with the correct account to join.",
|
||
"signout_and_switch": "Sign out and switch account",
|
||
"existing_account": "<strong>{email}</strong> already has an account on {appName}. Sign in to join.",
|
||
"login_and_join": "Sign in and join",
|
||
"create_account_and_join": "Create account and join",
|
||
"terms_notice": "By creating an account you agree to our terms.",
|
||
"join_failed_title": "Could not join",
|
||
"unexpected_error": "An unexpected error occurred. Please try again.",
|
||
"welcome_title": "Welcome!",
|
||
"joined_named": "You are now a member of {companyName}.",
|
||
"joined_generic": "You are now a member."
|
||
},
|
||
"settings_company": {
|
||
"company_info_heading": "Company details",
|
||
"company_name_label": "Company name",
|
||
"company_name_help": "Shown on invoices, emails and declaration files. For a sole trader it is usually your own name (First Last).",
|
||
"org_number_label": "Organisation number",
|
||
"org_number_locked": "Cannot be changed after the account has been created",
|
||
"address_label": "Address",
|
||
"postal_code_label": "Postal code",
|
||
"city_label": "City",
|
||
"phone_label": "Phone",
|
||
"email_label": "Email",
|
||
"website_label": "Website",
|
||
"members_invite_title": "Invite to {companyName}",
|
||
"members_invite_description": "The person gets access to this company only.",
|
||
"members_invite_email_label": "Email address",
|
||
"members_invite_email_placeholder": "name@example.com",
|
||
"members_invite_button": "Invite",
|
||
"members_role_owner": "Owner",
|
||
"members_role_admin": "Admin",
|
||
"members_role_member": "Member",
|
||
"members_role_viewer": "Read-only",
|
||
"members_title": "Members",
|
||
"members_count": "{count, plural, =1 {# member} other {# members}} in {companyName}",
|
||
"members_you": "(you)",
|
||
"members_team_badge": "Team",
|
||
"members_invite_sent_title": "Invitation sent",
|
||
"members_invite_sent_dev_url": "Link logged in the console (F12)",
|
||
"members_invite_sent_description": "Email sent to {email}.",
|
||
"members_invite_failed": "Could not send invitation.",
|
||
"members_removed": "Member removed",
|
||
"members_remove_failed": "Could not remove member.",
|
||
"members_invite_revoked": "Invitation revoked",
|
||
"members_invite_revoke_failed": "Could not revoke invitation.",
|
||
"invitations_pending_title": "Pending invitations",
|
||
"invitations_expires": "Expires {date}",
|
||
"logo_heading": "Logo",
|
||
"logo_help": "Shown in the header of your invoices. Max 2 MB, PNG/JPG/SVG.",
|
||
"logo_disallowed_type_title": "File type not allowed",
|
||
"logo_disallowed_type_description": "PNG, JPG, SVG or WebP.",
|
||
"logo_too_large": "File is too large (max 2 MB)",
|
||
"logo_upload_failed_title": "Could not upload",
|
||
"logo_upload_failed_default": "Upload failed",
|
||
"logo_try_again": "Please try again.",
|
||
"logo_delete_failed": "Could not remove logo",
|
||
"logo_alt": "Company logo",
|
||
"logo_change": "Change logo",
|
||
"logo_remove": "Remove",
|
||
"logo_uploading": "Uploading...",
|
||
"logo_pick_or_drop": "Choose a file or drop one here",
|
||
"fp_heading": "First fiscal year",
|
||
"fp_intro": "If you picked the wrong fiscal year at setup you can adjust it here — as long as no vouchers have been posted yet.",
|
||
"fp_load_error_periods": "Could not load fiscal years",
|
||
"fp_load_error_entry_count": "Could not load voucher count",
|
||
"fp_load_error_unknown": "Unknown error",
|
||
"fp_loading": "Loading fiscal year...",
|
||
"fp_none": "No fiscal year found.",
|
||
"fp_warning_title": "Change with care.",
|
||
"fp_warning_body": "The change affects opening balances and reports.",
|
||
"fp_warning_ef_suffix": " Enskild firma must use a calendar year per BFL 3 kap.",
|
||
"fp_summary_title": "Proposed fiscal year",
|
||
"fp_end_date_label": "End date",
|
||
"fp_end_date_help": "Must be the last day of a month.",
|
||
"fp_reset": "Reset",
|
||
"fp_save": "Save change",
|
||
"fp_saving": "Saving...",
|
||
"fp_confirm_title": "Change the first fiscal year?",
|
||
"fp_confirm_description": "This changes your first fiscal year from {oldStart} – {oldEnd} to {newStart} – {newEnd}. The change is only allowed because no vouchers have been posted yet. Continue?",
|
||
"fp_confirm_yes": "Yes, change fiscal year",
|
||
"fp_confirm_cancel": "Cancel",
|
||
"fp_updated_title": "Fiscal year updated",
|
||
"fp_update_failed_title": "Could not change fiscal year",
|
||
"fp_try_again": "Please try again.",
|
||
"fp_blocked_title": "Fiscal year can no longer be changed",
|
||
"fp_blocked_reason_locked": "The fiscal year is locked.",
|
||
"fp_blocked_reason_closed": "The fiscal year is closed.",
|
||
"fp_blocked_reason_posted": "{count, plural, =1 {# posted voucher already exists in the period.} other {# posted vouchers already exist in the period.}}",
|
||
"fp_blocked_first_year": "First fiscal year:",
|
||
"fp_blocked_calendar_year": " (calendar year)",
|
||
"fp_blocked_broken_year": " (broken fiscal year)",
|
||
"fp_blocked_explainer": "If you have to start over you can delete the company at the bottom of this page and create a new one. Bookkeeping data is retained for 7 years per BFL 7 kap. 2§.",
|
||
"fp_year_label_single": "Räkenskapsår {year}",
|
||
"fp_year_label_range": "Räkenskapsår {startYear}/{endYear}",
|
||
"danger_heading": "Delete company",
|
||
"danger_button": "Delete company",
|
||
"danger_dialog_title": "Delete {companyName}",
|
||
"danger_dialog_description": "The company is hidden from {appName}. The bookkeeping is retained securely for 7 years per BFL. Type the company name exactly to confirm.",
|
||
"danger_confirm_label": "Type <strong>{companyName}</strong> to confirm",
|
||
"danger_cancel": "Cancel",
|
||
"danger_deleting": "Deleting...",
|
||
"danger_deleted_title": "Company deleted",
|
||
"danger_delete_failed_title": "Could not delete the company",
|
||
"danger_delete_failed_default": "Could not delete the company",
|
||
"danger_try_again": "Please try again.",
|
||
"wrapper_save_failed_title": "Could not save",
|
||
"wrapper_save_failed_default": "Could not save settings",
|
||
"wrapper_try_again": "Please try again.",
|
||
"wrapper_saved": "Saved",
|
||
"wrapper_saving": "Saving...",
|
||
"wrapper_save_changes": "Save changes",
|
||
"wrapper_readonly_tooltip": "You have read-only access to this company"
|
||
},
|
||
"settings_invoicing": {
|
||
"bank_validation_title": "Check bank details"
|
||
},
|
||
"settings_invoicing_preview": {
|
||
"title": "Preview",
|
||
"preview_button": "Preview invoice",
|
||
"loading": "Generating preview...",
|
||
"error": "Could not load preview",
|
||
"sample_item_description": "Sample line",
|
||
"iframe_title": "Invoice PDF preview"
|
||
},
|
||
"settings_bookkeeping": {
|
||
"method_heading": "Accounting method",
|
||
"method_label": "Method",
|
||
"method_accrual": "Faktureringsmetoden",
|
||
"method_cash": "Kontantmetoden",
|
||
"method_help": "The cash method may be used if annual net sales are normally at most 3 MSEK (BFL 5 kap. 2 §). Outstanding receivables and payables must be posted at year-end.",
|
||
"series_heading": "Default voucher series",
|
||
"series_label": "Series",
|
||
"series_help": "Which series is preselected for manual bookkeeping. Can be changed per voucher.",
|
||
"fy_heading": "Fiscal years",
|
||
"fy_help": "Fiscal years are created automatically when you book or import data outside existing years, but you can also set up a new year in advance here. A new year must chain directly onto an existing year, and the prior year may need to be locked first.",
|
||
"fy_create": "Create fiscal year",
|
||
"fy_empty": "No fiscal years created yet.",
|
||
"fy_load_error": "Could not load fiscal years. Please try again.",
|
||
"fy_status_open": "Open",
|
||
"fy_status_locked": "Locked",
|
||
"fy_status_closed": "Closed",
|
||
"related_heading": "Related",
|
||
"related_fiscal_year": "Fiscal years and opening balances",
|
||
"related_chart_of_accounts": "Chart of accounts (BAS)"
|
||
},
|
||
"settings_tax": {},
|
||
"settings_team": {},
|
||
"settings_templates": {},
|
||
"settings_salary": {
|
||
"title": "Payroll settings",
|
||
"accounting_heading": "Bookkeeping",
|
||
"voucher_series_label": "Default voucher series for payroll",
|
||
"voucher_series_a": "A — Standard",
|
||
"voucher_series_l": "L — Löner",
|
||
"voucher_series_help": "Can be changed per payroll run. Each series has unbroken voucher numbers per fiscal year.",
|
||
"tax_tables_heading": "Skattetabeller",
|
||
"tax_tables_help": "Tax tables and municipal tax rates are fetched automatically from Skatteverket's open data on every payroll run. No manual update is needed. If Skatteverket's API is unavailable, an embedded fallback copy is used until the service is back.",
|
||
"vacation_heading": "Vacation",
|
||
"vacation_rule_label": "Default vacation rule",
|
||
"vacation_rule_percentage": "Procentregeln (12%)",
|
||
"vacation_rule_same_pay": "Sammalöneregeln",
|
||
"vacation_rule_none": "No vacation accrual",
|
||
"vacation_supplement_label": "Vacation supplement",
|
||
"vacation_supplement_min": "0.43% (statutory minimum)",
|
||
"vacation_supplement_cba": "0.80% (common collective agreement level)",
|
||
"vacation_supplement_help": "Applied with sammalöneregeln. Can be overridden per employee.",
|
||
"info_heading": "Information",
|
||
"info_payroll_scope": "The payroll module handles salaries for your employees – tax deductions, employer contributions, vacation pay liability and the employer declaration (AGI). If you run a sole proprietorship (enskild firma), you as the owner take money out via owner's drawings (account 2013), not salary – the module is for your employees.",
|
||
"info_current_year": "<strong>Current year:</strong> 2026 — Arbetsgivaravgifter 31.42%, prisbasbelopp 59,200 SEK"
|
||
},
|
||
"settings_backup": {
|
||
"heading": "Backup",
|
||
"intro": "Download your own copy of all accounting data — SIE files, receipts, supporting documents and processing history — in a single ZIP file. The backup is your own copy for safety and portability. {appName} archives all accounting data for at least 7 years per BFL 7 kap. 2 §, so your backup does not replace our legal obligation — it complements it."
|
||
},
|
||
"settings_api": {},
|
||
"settings_banking": {
|
||
"sync_start_title": "Syncing transactions...",
|
||
"sync_start_description": "Fetching transactions from your bank in the background.",
|
||
"sync_success_title": "Bank connected!",
|
||
"sync_success_description": "{count} transactions imported",
|
||
"sync_success_no_id_description": "Your bank is now linked.",
|
||
"sync_timeout_title": "Sync took too long",
|
||
"sync_timeout_description": "Transactions are being fetched in the background. Reload the page in a moment.",
|
||
"sync_failed_title": "Sync failed",
|
||
"sync_failed_default": "Could not fetch transactions",
|
||
"connect_failed_title": "Connection failed",
|
||
"access_denied_hint": "{bankName} denied access. If you're using a personal account you can try connecting with the account type \"Privatkonto\" in the bank picker below.",
|
||
"import_fallback_text": "You can also ",
|
||
"import_fallback_link": "import transactions from a bank file",
|
||
"import_fallback_suffix": " instead.",
|
||
"dismiss_aria": "Close",
|
||
"not_enabled_title": "Bank integration (PSD2) is not enabled",
|
||
"not_enabled_description": "Enable the Enable Banking extension to link your bank account and fetch transactions automatically.",
|
||
"go_to_extensions": "Go to Extensions"
|
||
},
|
||
"settings_skatteverket": {
|
||
"connected_title": "Skatteverket connected",
|
||
"connected_description": "You can now file declarations and fetch the tax account balance.",
|
||
"connect_failed_title": "Connection failed"
|
||
},
|
||
"settings_account_danger": {
|
||
"heading": "Delete account",
|
||
"blockers_title": "Companies you own",
|
||
"blockers_description": "Delete or hand over all companies before you delete your account.",
|
||
"blockers_manage": "Manage",
|
||
"support_question": "Questions?",
|
||
"support_subject": "Question about account deletion",
|
||
"export_sie": "Export accounting data (SIE)",
|
||
"delete_button": "Delete my account",
|
||
"dialog_title": "Permanently delete account",
|
||
"dialog_description": "Your account is anonymised and you are signed out of all devices. You cannot create a new account with the same email address — contact support if you want to reactivate the account in the future.",
|
||
"confirm_label": "Type your email address (<strong>{email}</strong>) to confirm",
|
||
"cancel": "Cancel",
|
||
"deleting": "Deleting...",
|
||
"delete_confirm_button": "Delete account",
|
||
"delete_failed_blockers": "You must delete or hand over your companies first.",
|
||
"delete_failed_default": "Could not delete the account"
|
||
},
|
||
"settings_bank_details_form": {
|
||
"heading": "Bank details",
|
||
"subheading": "Shown on your invoices",
|
||
"bank_label": "Bank",
|
||
"clearing_label": "Clearing",
|
||
"clearing_error": "Must be 4-5 digits",
|
||
"account_number_label": "Account number",
|
||
"account_number_error": "Must be 6-12 digits",
|
||
"bankgiro_label": "Bankgiro",
|
||
"bankgiro_error": "Invalid bankgiro number",
|
||
"plusgiro_label": "Plusgiro",
|
||
"plusgiro_error": "Invalid plusgiro number",
|
||
"swish_label": "Swish",
|
||
"swish_placeholder": "123 XXX XX XX or 07X XXX XX XX",
|
||
"swish_error": "Invalid Swish number (business number 123XXXXXXX or mobile number 07XXXXXXXX)"
|
||
},
|
||
"settings_invoice_form": {
|
||
"default_our_reference_label": "Default \"Our reference\"",
|
||
"default_our_reference_placeholder": "E.g. your name",
|
||
"default_our_reference_help": "Pre-filled on new invoices. Editable per invoice.",
|
||
"heading": "Invoice settings",
|
||
"prefix_label": "Invoice prefix",
|
||
"prefix_placeholder": "e.g. F-",
|
||
"next_number_label": "Next invoice number",
|
||
"default_days_label": "Payment terms (days)",
|
||
"default_notes_label": "Default invoice text",
|
||
"default_notes_placeholder": "E.g. payment terms, delivery info...",
|
||
"default_notes_help": "Suggested automatically for new invoices."
|
||
},
|
||
"settings_pdf_print": {
|
||
"coming_soon": "Coming soon",
|
||
"heading": "Print & PDF",
|
||
"toast_save_failed": "Could not save",
|
||
"ore_rounding_label": "Öre rounding",
|
||
"ore_rounding_help": "Round invoice total to whole krona",
|
||
"show_ocr_label": "Show OCR reference",
|
||
"show_ocr_help": "Show OCR number on invoice printout",
|
||
"show_bankgiro_label": "Show bankgiro",
|
||
"show_bankgiro_help": "Show bankgiro number on invoice printout",
|
||
"show_plusgiro_label": "Show plusgiro",
|
||
"show_plusgiro_help": "Show plusgiro number on invoice printout",
|
||
"show_swish_label": "Show Swish",
|
||
"show_swish_help": "Show swish number and qr code on invoice",
|
||
"show_logo_label": "Show logo",
|
||
"show_logo_help": "Show uploaded logo in the invoice header",
|
||
"show_company_name_label": "Show company name on invoice",
|
||
"show_company_name_help": "Display the company name on the invoice",
|
||
"placement_label": "Placement",
|
||
"placement_aria_label": "Company name placement",
|
||
"placement_header": "Header",
|
||
"placement_footer": "Footer",
|
||
"late_fee_label": "Late payment interest",
|
||
"late_fee_placeholder": "E.g. Payments after the due date incur interest per the Swedish Interest Act.",
|
||
"credit_terms_label": "Payment terms (footnote)",
|
||
"credit_terms_placeholder": "E.g. Payment is made to the specified bankgiro."
|
||
},
|
||
"settings_period_locking": {
|
||
"heading": "Period locking",
|
||
"locked_through_label": "Bookkeeping locked through",
|
||
"locked_through_help": "Vouchers dated before this date cannot be created or modified.",
|
||
"auto_lock_label": "Automatic locking after",
|
||
"auto_lock_none": "No automatic locking",
|
||
"auto_lock_30": "30 days after period end",
|
||
"auto_lock_60": "60 days after period end",
|
||
"auto_lock_90": "90 days after period end",
|
||
"auto_lock_help": "Automatically locks periods after the chosen number of days."
|
||
},
|
||
"settings_voucher_series": {
|
||
"heading": "Verifikationsserier",
|
||
"empty_state": "No voucher series yet. Series {series} is created automatically with the first voucher.",
|
||
"active_series_label": "Active series",
|
||
"series_prefix": "Series",
|
||
"default_badge": "default",
|
||
"latest_number": "Latest no.",
|
||
"footnote": "New series are created automatically the first time they are used in bookkeeping."
|
||
},
|
||
"settings_team_panel": {
|
||
"role_owner": "Owner",
|
||
"role_admin": "Admin",
|
||
"role_member": "Member",
|
||
"team_fallback": "Team",
|
||
"you_suffix": "(you)"
|
||
},
|
||
"settings_booking_templates": {
|
||
"title": "Bookkeeping templates",
|
||
"description": "Reusable templates for common bookkeeping transactions. Standard templates are shown to everyone; you can create and share your own.",
|
||
"entity_all": "All",
|
||
"entity_enskild_firma": "Enskild firma",
|
||
"entity_aktiebolag": "Aktiebolag",
|
||
"toast_fetch_failed": "Could not load templates",
|
||
"toast_delete_failed": "Could not delete template",
|
||
"toast_deleted": "Template deleted",
|
||
"toast_export_failed": "Could not export templates",
|
||
"toast_import_error": "Import error",
|
||
"toast_import_generic": "Could not import",
|
||
"toast_import_done": "Import complete",
|
||
"toast_import_count": "{count} template(s) imported.",
|
||
"toast_invalid_file": "Invalid file",
|
||
"toast_fill_all_fields": "Fill in all fields",
|
||
"toast_create_failed": "Could not create template",
|
||
"toast_created": "Template created",
|
||
"export": "Export",
|
||
"import": "Import",
|
||
"new_template": "New template",
|
||
"create_dialog_title": "Create bookkeeping template",
|
||
"empty_state": "No templates found.",
|
||
"section_system": "Standard templates",
|
||
"section_team": "Team templates",
|
||
"section_company": "Company templates",
|
||
"th_account": "Account",
|
||
"th_description": "Description",
|
||
"th_type": "Type",
|
||
"th_debit": "Debit",
|
||
"th_credit": "Credit",
|
||
"vat_with_rate": "VAT {rate}%",
|
||
"type_settlement": "Payment",
|
||
"type_cost_revenue": "Cost/Revenue",
|
||
"type_cost": "Cost",
|
||
"type_vat": "VAT",
|
||
"debit_short": "D",
|
||
"credit_short": "C",
|
||
"name_label": "Name",
|
||
"name_placeholder": "E.g. EU goods purchase",
|
||
"description_label": "Description",
|
||
"optional_suffix": "(optional)",
|
||
"description_placeholder": "When should this template be used?",
|
||
"category_label": "Category",
|
||
"entity_type_label": "Company type",
|
||
"lines_label": "Lines",
|
||
"account_placeholder": "Account",
|
||
"description_short_placeholder": "Description",
|
||
"debit_label": "Debit",
|
||
"credit_label": "Credit",
|
||
"add_line": "Add line",
|
||
"create_button": "Create template",
|
||
"vat_rate_label": "VAT rate",
|
||
"vat_rate_25": "25%",
|
||
"vat_rate_12": "12%",
|
||
"vat_rate_6": "6%",
|
||
"vat_rate_0": "0% (export/reverse-charge/exempt)",
|
||
"unconvertible_hint": "This template can't be picked directly when booking a transaction — it's used from a journal entry. To appear in the transaction list, it needs exactly one cost/revenue line and one settlement line on opposite sides.",
|
||
"unconvertible_badge": "Journal entries only",
|
||
"ratio_label": "Share",
|
||
"ratio_help": "Share of the total amount booked on this line. The shares should sum to 1.0.",
|
||
"ratio_sum_warning": "The shares for cost lines do not sum to 1.0.",
|
||
"preview_label": "Preview for 1,000 kr",
|
||
"edit": "Edit",
|
||
"edit_dialog_title": "Edit template",
|
||
"customize": "Customize",
|
||
"customize_dialog_title": "Customize standard template",
|
||
"copy_name_suffix": "{name} (customized)",
|
||
"save_button": "Save",
|
||
"toast_updated": "Template saved",
|
||
"duplicate_name_warning": "A template with this name already exists."
|
||
},
|
||
"settings_counterparty_templates": {
|
||
"title": "Bookkeeping templates",
|
||
"description": "Learned patterns that suggest postings automatically based on the counterparty. Templates are created from SIE imports and when you approve categorizations.",
|
||
"source_sie_import": "SIE import",
|
||
"source_user_approved": "Approved",
|
||
"source_auto_learned": "Automatic",
|
||
"source_sni_default": "Standard",
|
||
"vat_reverse_charge": "Reverse",
|
||
"vat_export": "Export",
|
||
"vat_exempt": "Exempt",
|
||
"toast_fetch_failed": "Could not load templates",
|
||
"toast_delete_failed": "Could not delete template",
|
||
"toast_deleted": "Template deleted",
|
||
"empty_title": "No templates yet.",
|
||
"empty_help": "Templates are created automatically when you categorize transactions or import a SIE file.",
|
||
"times_count": "{count} times",
|
||
"booking_label": "Posting",
|
||
"debit_label": "Debit",
|
||
"credit_label": "Credit",
|
||
"vat_paren": "({rate}% VAT)",
|
||
"vat_label": "VAT",
|
||
"occurrence_count_label": "Booking count",
|
||
"confidence_label": "Confidence",
|
||
"last_seen_label": "Last used",
|
||
"aliases_label": "Aliases",
|
||
"delete_button": "Delete template"
|
||
},
|
||
"settings_tax_form": {
|
||
"entity_form_heading": "Company form",
|
||
"entity_aktiebolag": "Aktiebolag",
|
||
"entity_enskild_firma": "Enskild firma",
|
||
"entity_form_help": "Company form cannot be changed. Contact support if needed.",
|
||
"tax_vat_heading": "Tax & VAT",
|
||
"f_skatt_label": "F-skattsedel",
|
||
"f_skatt_help": "Approved for F-skatt (independent business activity).",
|
||
"vat_registered_label": "VAT registered",
|
||
"vat_registered_help": "Mandatory if turnover exceeds SEK 120,000 per year.",
|
||
"vat_number_label": "VAT registration number",
|
||
"vat_number_help": "Format: SE + organisation number + 01",
|
||
"moms_period_label": "VAT reporting period",
|
||
"select_period_placeholder": "Select period",
|
||
"period_monthly": "Monthly",
|
||
"period_quarterly": "Quarterly",
|
||
"period_yearly": "Yearly",
|
||
"moms_period_help": "Per decision from Skatteverket.",
|
||
"periodisk_label": "EU sales list reporting period",
|
||
"periodisk_help": "EU goods sales must normally be reported monthly (35 ch. 2 § SFL). Quarterly requires approval from Skatteverket and only applies to services.",
|
||
"tax_contact_heading": "Tax matters contact",
|
||
"tax_contact_help": "Used as sender on files to Skatteverket (EU sales list, etc.).",
|
||
"tax_contact_name_label": "Name",
|
||
"tax_contact_name_placeholder": "Anna Andersson",
|
||
"tax_contact_phone_label": "Phone",
|
||
"tax_contact_email_label": "Email",
|
||
"fiscal_year_salaries_heading": "Fiscal year & salaries",
|
||
"fiscal_year_start_label": "Fiscal year start month",
|
||
"fiscal_year_ef_help": "Enskild firma must use the calendar year (BFL ch. 3).",
|
||
"fiscal_year_change_help": "The change affects future fiscal years.",
|
||
"month_jan": "January",
|
||
"month_feb": "February",
|
||
"month_mar": "March",
|
||
"month_apr": "April",
|
||
"month_may": "May",
|
||
"month_jun": "June",
|
||
"month_jul": "July",
|
||
"month_aug": "August",
|
||
"month_sep": "September",
|
||
"month_oct": "October",
|
||
"month_nov": "November",
|
||
"month_dec": "December",
|
||
"pays_salaries_label": "Pays salaries",
|
||
"pays_salaries_help": "Affects which tax deadlines are shown (employer declarations, etc.).",
|
||
"preliminary_tax_heading": "Preliminary tax",
|
||
"preliminary_tax_monthly_label": "Monthly preliminary tax (F-skatt)",
|
||
"preliminary_tax_monthly_help": "Amount in SEK paid each month."
|
||
},
|
||
"settings_backup_download": {
|
||
"create_backup_title": "Create backup",
|
||
"scope_label": "Scope",
|
||
"scope_all_label": "Full history",
|
||
"scope_all_desc": "All fiscal years and vouchers",
|
||
"scope_period_label": "Single period",
|
||
"scope_period_desc": "Pick a specific fiscal year",
|
||
"recommended": "Recommended",
|
||
"fiscal_year_label": "Fiscal year",
|
||
"no_fiscal_years": "No fiscal years",
|
||
"include_docs_label": "Include receipts and supporting documents",
|
||
"include_docs_help": "Voucher attachments (receipts, invoices, PDFs) are packed in the ZIP. Turn off for a smaller backup with bookkeeping data only.",
|
||
"calculating_size": "Calculating size…",
|
||
"estimated_size": "Estimated size:",
|
||
"attachment_singular": "attachment",
|
||
"attachment_plural": "attachments",
|
||
"size_will_calculate": "Size is calculated when scope is selected.",
|
||
"over_limit_message": "The archive is larger than {limit} and cannot be downloaded directly. Pick a single period or disable attachments for now — automatic cloud sync is coming in a later version.",
|
||
"creating_backup": "Creating backup…",
|
||
"create_and_download": "Create and download",
|
||
"last_download": "Last download",
|
||
"toast_too_large_title": "Archive too large for direct download",
|
||
"toast_too_large_with_size": "Your archive is about {size} MB. Export one period at a time for now — automatic cloud sync is coming in a later version.",
|
||
"toast_too_large_generic": "Export one period at a time for now — automatic cloud sync is coming in a later version.",
|
||
"error_create_archive": "Could not create the archive",
|
||
"toast_backup_created": "Backup created",
|
||
"toast_backup_failed": "Could not create backup",
|
||
"toast_try_again": "Please try again.",
|
||
"cloud_sync_title": "Cloud sync",
|
||
"cloud_sync_disabled_help": "Enable the \"Cloud sync\" extension to connect Google Drive and upload your backup with one click."
|
||
},
|
||
"settings_api_keys": {
|
||
"title": "API keys",
|
||
"description": "Manage keys for MCP clients (Claude, Cursor) and other integrations.",
|
||
"create_key": "Create key",
|
||
"default_key_name": "MCP key",
|
||
"toast_fetch_failed": "Could not load API keys",
|
||
"toast_create_failed": "Could not create key",
|
||
"toast_revoked": "Key revoked",
|
||
"toast_revoke_failed": "Could not revoke key",
|
||
"mode_label": "Environment",
|
||
"mode_live": "Live",
|
||
"mode_test": "Test",
|
||
"mode_live_help": "Live keys operate on your real company and its books.",
|
||
"mode_test_help": "Test keys simulate every call (forced dry-run) — you see exactly what would happen, but nothing is saved or sent.",
|
||
"badge_test": "Test",
|
||
"revoke_dialog_title": "Revoke API key",
|
||
"revoke_dialog_description": "\"{name}\" will be permanently revoked. Any clients using the key will stop working immediately.",
|
||
"revoke_confirm": "Revoke",
|
||
"empty_title": "No API keys yet.",
|
||
"empty_help": "Create a key to connect your MCP client.",
|
||
"all_permissions": "All permissions",
|
||
"no_permissions": "No permissions",
|
||
"permissions_count": "{count} permissions",
|
||
"created": "Created",
|
||
"used_on": "Used {date}",
|
||
"never_used": "Never used",
|
||
"revoke_aria": "Revoke {name}",
|
||
"copy_aria": "Copy",
|
||
"connect_mcp_title": "Connect MCP client",
|
||
"recommended_badge": "Recommended",
|
||
"claude_ai_instructions": "Go to <path>Settings → Connectors → Add custom connector</path> and paste the MCP server URL. You sign in via your {connectorName} account — no API key needed.",
|
||
"claude_code_cursor": "Claude Code / Cursor",
|
||
"terminal_runs_browser_login": "Run in the terminal — sign in via the browser:",
|
||
"connect_with_api_key": "Connect with an API key instead",
|
||
"claude_desktop_instructions": "Add to <code>claude_desktop_config.json</code> (Settings → Developer):",
|
||
"terminal_with_api_key": "Run in the terminal with an API key:",
|
||
"create_dialog_title": "Create API key",
|
||
"create_dialog_description": "Name the key so you remember what it's for.",
|
||
"name_label": "Name",
|
||
"name_placeholder": "e.g. Claude Desktop",
|
||
"permissions_label": "Permissions",
|
||
"permissions_help": "Choose what the key should have access to.",
|
||
"selected_count": "{selected} of {total} selected",
|
||
"tools_count": "{count} tools",
|
||
"rest_badge": "REST",
|
||
"cancel": "Cancel",
|
||
"create": "Create",
|
||
"new_key_dialog_title": "Your new API key",
|
||
"new_key_dialog_description": "Copy the key now. It is shown only once.",
|
||
"done": "Done",
|
||
"group_transactions": "Transactions",
|
||
"group_customers": "Customers",
|
||
"group_invoices": "Invoices",
|
||
"group_suppliers": "Suppliers",
|
||
"group_reports": "Reports",
|
||
"group_bookkeeping": "Bookkeeping",
|
||
"group_payroll": "Payroll",
|
||
"group_pending_operations": "Staged operations",
|
||
"group_documents": "Documents (REST API)",
|
||
"group_companies": "Companies (REST API)",
|
||
"group_events": "Events (REST API)",
|
||
"group_webhooks": "Webhooks (REST API)",
|
||
"group_operations": "Operations (REST API)",
|
||
"group_compliance": "Compliance (REST API)",
|
||
"scope_transactions_read": "Read — list transactions, templates, categories, inbox",
|
||
"scope_transactions_write": "Write — categorize, receipt matching, link to invoice, document upload",
|
||
"scope_customers_read": "Read — list customers",
|
||
"scope_customers_write": "Write — create customers",
|
||
"scope_invoices_read": "Read — list invoices",
|
||
"scope_invoices_write": "Write — create, send, mark paid/sent, credit, convert",
|
||
"scope_suppliers_read": "Read — list suppliers and supplier invoices",
|
||
"scope_suppliers_write": "Write — approve, credit, create supplier invoice from inbox",
|
||
"scope_reports_read": "Read — chart of accounts, general ledger, BS, IS, VAT, KPI, ledgers, periods, bank reconciliation, SIE export",
|
||
"scope_bookkeeping_write": "Write — close/lock periods, opening balances, year-end, SIE import, vouchers, corrections (all staged)",
|
||
"scope_payroll_read": "Read — list employees, salary runs, salary journal",
|
||
"scope_payroll_write": "Write — create salary run, calculate, generate AGI",
|
||
"scope_pending_operations_read": "Read — list pending_operations awaiting approval",
|
||
"scope_pending_operations_approve": "Approve — commit or reject staged ops via API (replaces web UI review)",
|
||
"scope_documents_read": "Read — list and fetch document attachments",
|
||
"scope_documents_write": "Write — upload and link documents to vouchers",
|
||
"scope_companies_read": "Read — company profiles the key has access to",
|
||
"scope_events_read": "Read — poll event_log as a webhook fallback",
|
||
"scope_webhooks_manage": "Manage — create, list, update, delete subscriptions",
|
||
"scope_operations_read": "Read — status of long-running operations (import, year-end, revaluation)",
|
||
"scope_compliance_read": "Read — pre-flight: VAT closing, year-end readiness, voucher gaps, IB/UB continuity; Skatteverket status (VAT + AGI)",
|
||
"group_agent": "Agent",
|
||
"scope_agent_read": "Read — agent briefing: profile, loaded specialists, saved memories",
|
||
"scope_agent_write": "Write — save and remove the agent's memories about the company",
|
||
"group_skatteverket": "Skatteverket",
|
||
"scope_skatteverket_write": "Write — file VAT (momsdeklaration) and employer (AGI) declarations to Skatteverket (staged; BankID-signed)",
|
||
"sod_warning": "This key can both create bookkeeping and approve it. That lets an automated agent commit postings with no human review (segregation of duties).",
|
||
"sod_dialog_title": "Confirm combined permissions",
|
||
"sod_dialog_description": "This key combines a staging write scope with permission to approve staged operations. That lets an automated agent both create and approve postings without a human reviewing them. Create the key anyway?",
|
||
"sod_confirm": "Create anyway"
|
||
},
|
||
"settings_oauth_clients": {
|
||
"title": "OAuth clients",
|
||
"description": "Register redirect URIs for self-built MCP clients. Claude.ai and localhost are already allowed by default — only register here if you're building your own app.",
|
||
"register_uri": "Register URI",
|
||
"default_client_name": "OAuth client",
|
||
"toast_fetch_failed": "Could not load OAuth clients",
|
||
"toast_register_failed": "Could not register redirect URI",
|
||
"toast_revoked": "Client revoked",
|
||
"toast_revoke_failed": "Could not revoke client",
|
||
"revoke_dialog_title": "Revoke OAuth client",
|
||
"revoke_dialog_description": "\"{name}\" will be removed from the allowlist. Ongoing auth flows stop working immediately; already issued API keys remain valid until revoked separately.",
|
||
"revoke_confirm": "Revoke",
|
||
"empty_title": "No custom OAuth clients registered.",
|
||
"empty_help": "Building an agent that connects via OAuth? Register its callback URI here.",
|
||
"registered_on": "Registered",
|
||
"revoke_aria": "Revoke {name}",
|
||
"register_dialog_title": "Register redirect URI",
|
||
"register_dialog_description": "Only for self-built MCP clients with a public HTTPS callback. Do <bold>not</bold> add <code>localhost</code> or <code>claude.ai</code> — they already work without registration. The URI is compared verbatim against the redirect_uri parameter in the OAuth flow.",
|
||
"client_name_label": "Client name",
|
||
"client_name_placeholder": "e.g. My bookkeeping agent",
|
||
"redirect_uri_label": "Redirect URI",
|
||
"cancel": "Cancel",
|
||
"register": "Register"
|
||
},
|
||
"settings_skatteverket_connect": {
|
||
"title": "Skatteverket",
|
||
"scope_momsdeklaration": "VAT declaration",
|
||
"scope_inkforetag": "Company information",
|
||
"scope_skahmst": "Tax account – balance & transactions",
|
||
"scope_skattekonto": "Tax account",
|
||
"scope_agd": "Employer declaration",
|
||
"disconnect_failed": "Disconnect failed",
|
||
"toast_disconnected": "Disconnected from Skatteverket",
|
||
"toast_disconnect_failed": "Could not disconnect",
|
||
"loading_status": "Loading status…",
|
||
"disabled_message": "The Skatteverket integration is temporarily disabled. Contact support.",
|
||
"connect_intro": "Connect to Skatteverket with BankID to submit VAT declarations, employer declarations and fetch the tax account balance.",
|
||
"skahmst_note": "On Skatteverket's consent page one of the permissions appears as <code>skahmst (Rubrik saknas)</code> — that's the scope name for tax account balance and transactions (Skattekonto HuvudMan STatus). Skatteverket has not yet published a Swedish description. It's safe to approve.",
|
||
"connect_with_bankid": "Connect with BankID",
|
||
"expired": "Expired",
|
||
"connected": "Connected",
|
||
"token_expires_label": "Token expires",
|
||
"expires_in_minutes": "(in {minutes} min)",
|
||
"refresh_label": "Refresh",
|
||
"refresh_auto": "Refreshes automatically",
|
||
"refresh_exhausted": "Refresh exhausted — connect again",
|
||
"permissions_label": "Permissions",
|
||
"missing_skattekonto": "The Skattekonto permission is missing — disconnect and reconnect to enable the balance and transactions view.",
|
||
"missing_agd": "The employer declaration (AGI) permission is missing — disconnect and reconnect to send AGI directly from accounted. Tokens issued before AGI support was activated lack this scope.",
|
||
"disabled_filings_message": "The Skatteverket integration is temporarily disabled. Filings are inactive.",
|
||
"reconnect": "Reconnect",
|
||
"disconnect": "Disconnect",
|
||
"disconnecting": "Disconnecting…",
|
||
"env_disabled": "Disabled",
|
||
"env_test": "Test environment",
|
||
"env_prod": "Production"
|
||
},
|
||
"settings_bankid": {
|
||
"title": "BankID",
|
||
"toast_already_linked": "This BankID is already linked to another account.",
|
||
"toast_link_failed": "Could not link BankID.",
|
||
"toast_linked": "BankID linked to your account",
|
||
"confirm_unlink": "Unlink BankID from your account?",
|
||
"toast_unlinked": "BankID unlinked",
|
||
"toast_unlink_failed": "Could not unlink BankID",
|
||
"link_bankid_title": "Link BankID",
|
||
"link_bankid_description": "Scan the QR code with the BankID app",
|
||
"linked_description": "Your account is linked to BankID.",
|
||
"not_linked_description": "Link BankID for more secure sign-in.",
|
||
"linked_on": "Linked {date}",
|
||
"unlinking": "Unlinking...",
|
||
"unlink_button": "Unlink",
|
||
"link_button": "Link BankID"
|
||
},
|
||
"settings_security": {
|
||
"toast_weak_password_title": "Password is too weak",
|
||
"toast_weak_password_description": "The password must be at least 8 characters and include uppercase, lowercase, digits and a special character.",
|
||
"toast_mismatch_title": "Passwords do not match",
|
||
"toast_mismatch_description": "Check that you typed the same password in both fields.",
|
||
"toast_update_failed_title": "Could not update password",
|
||
"toast_update_failed_description": "Please try again later.",
|
||
"set_password_first": "Set a password first",
|
||
"toast_password_updated_title": "Password updated",
|
||
"toast_password_updated_description": "Your password has been changed.",
|
||
"toast_generic_error_title": "Something went wrong",
|
||
"toast_try_again": "Please try again later.",
|
||
"toast_unenroll_failed_title": "Could not disable 2FA",
|
||
"toast_mfa_disabled_title": "Two-factor authentication disabled",
|
||
"toast_mfa_disabled_description": "2FA has been removed from your account.",
|
||
"change_password_title": "Change password",
|
||
"change_password_description": "Update your password. If you sign in with an email link, you can set a password here.",
|
||
"new_password_label": "New password",
|
||
"new_password_placeholder": "At least 8 characters",
|
||
"confirm_password_label": "Confirm new password",
|
||
"confirm_password_placeholder": "Repeat the password",
|
||
"saving": "Saving...",
|
||
"update_password_button": "Update password",
|
||
"mfa_title": "Two-factor authentication (2FA)",
|
||
"mfa_description": "Protect your account with an authenticator app. At every sign-in you'll need to enter a code in addition to your password.",
|
||
"loading": "Loading...",
|
||
"mfa_active_title": "2FA is enabled",
|
||
"mfa_active_description": "Your account is protected with two-factor authentication.",
|
||
"disabling": "Disabling...",
|
||
"disable_mfa": "Disable 2FA",
|
||
"mfa_required_note": "Two-factor authentication is mandatory and cannot be disabled.",
|
||
"mfa_inactive_title": "2FA is not enabled",
|
||
"mfa_inactive_description": "We recommend enabling two-factor authentication.",
|
||
"enable_mfa": "Enable 2FA"
|
||
},
|
||
"settings_calendar_feed": {
|
||
"title": "Calendar sync",
|
||
"description": "Sync your deadlines with Apple Calendar, Google Calendar or Outlook",
|
||
"subscribe_description": "Subscribe to your calendar in Apple Calendar, Google Calendar or Outlook",
|
||
"toast_feed_created_title": "Calendar feed created",
|
||
"toast_feed_created_description": "You can now connect the calendar to Apple Calendar or Google Calendar.",
|
||
"toast_create_failed": "Could not create calendar feed.",
|
||
"toast_update_failed": "Could not update setting.",
|
||
"regen_dialog_title": "Create new calendar link",
|
||
"regen_dialog_description": "The old link stops working immediately. You'll need to update the link in any calendar app that uses it.",
|
||
"regen_confirm": "Create new link",
|
||
"toast_new_link_title": "New link created",
|
||
"toast_new_link_description": "The old link no longer works.",
|
||
"toast_regen_failed": "Could not create new link.",
|
||
"toast_copied_title": "Copied",
|
||
"toast_copied_description": "The link was copied to the clipboard.",
|
||
"toast_copy_failed": "Could not copy the link.",
|
||
"empty_intro": "Create a calendar feed to see your deadlines in your usual calendar app.",
|
||
"creating": "Creating...",
|
||
"activate_sync": "Activate calendar sync",
|
||
"add_to_apple_calendar": "Add to Apple Calendar",
|
||
"calendar_link_label": "Calendar link (for Google Calendar etc.)",
|
||
"calendar_link_help": "Copy this link and add it as a URL subscription in your calendar app.",
|
||
"last_fetched": "Last fetched:",
|
||
"times_count": "{count} times",
|
||
"creating_new_link": "Creating new link...",
|
||
"create_new_link": "Create new link",
|
||
"regen_help": "Invalidates the old link. Use it if the link has been exposed.",
|
||
"content_title": "Calendar contents",
|
||
"content_description": "Choose which events appear in your calendar",
|
||
"tax_deadlines_label": "Tax deadlines",
|
||
"tax_deadlines_help": "VAT, F-skatt, declarations",
|
||
"invoices_label": "Invoices",
|
||
"invoices_help": "Invoice due dates"
|
||
},
|
||
"tx_inbox_card": {
|
||
"skv_counterpart_label": "Possible 1930↔1630 transfer.",
|
||
"skv_counterpart_body": "There is a skattekonto event on {date} that matches — post this voucher first, then link the skattekonto row to the same voucher instead of posting it twice.",
|
||
"match_invoice_btn": "Match invoice {number}",
|
||
"match_supplier_invoice_btn": "Match supplier invoice {number}",
|
||
"choose_template_btn": "Choose template...",
|
||
"match_voucher_btn": "Match to existing voucher",
|
||
"attach_document_btn": "Match to document",
|
||
"more_actions_aria": "More actions",
|
||
"ignore_btn": "Ignore transaction",
|
||
"delete_aria": "Delete transaction",
|
||
"edit_title_aria": "Edit title",
|
||
"edited_badge": "edited",
|
||
"original_name_tooltip": "Original bank name: {name}",
|
||
"edit_title_dialog_title": "Edit transaction title",
|
||
"edit_title_warning": "Are you sure you want to edit the title of this transaction?",
|
||
"edit_title_label": "Title",
|
||
"edit_title_original_hint": "Original bank name: {name}.",
|
||
"edit_title_restore": "Restore",
|
||
"edit_title_cancel": "Cancel",
|
||
"edit_title_save": "Save"
|
||
},
|
||
"tx_quick_review": {
|
||
"open_attached_failed": "Could not open the receipt",
|
||
"exchange_rate_fetch_failed": "Could not fetch the exchange rate.",
|
||
"title": "Review posting",
|
||
"description_template": "Review the journal entry before posting",
|
||
"description_default": "Check account and VAT before posting",
|
||
"amount_loading": "Fetching exchange rate…",
|
||
"amount_approx": "≈ {sign}{sek}",
|
||
"rate_footnote": "Posted in SEK at Riksbanken's rate {rate} per {currency} ({date}).",
|
||
"label_counterparty_template": "Counterparty template",
|
||
"label_template": "Template",
|
||
"label_category": "Category",
|
||
"change_template": "Change template",
|
||
"reverse_charge_warning": "Reverse charge requires the supplier's VAT registration number and country.",
|
||
"label_account": "Account",
|
||
"label_vat_treatment": "VAT treatment",
|
||
"no_vat_liability_account": "No VAT for liability/equity accounts",
|
||
"no_vat_default": "No VAT",
|
||
"change": "Change",
|
||
"attached_doc_label": "Receipt attached",
|
||
"attached_doc_source": "from document inbox",
|
||
"opening": "Opening…",
|
||
"view": "View",
|
||
"doc_label": "Receipt",
|
||
"doc_attached_count": "{count} attached",
|
||
"doc_link_failed_title": "Receipt could not be attached",
|
||
"doc_link_failed_description": "{count} file(s) could not be linked to the journal entry.",
|
||
"generic_error": "An error occurred while posting.",
|
||
"cancel": "Cancel",
|
||
"booking": "Posting...",
|
||
"fetching_rate": "Fetching exchange rate…",
|
||
"book": "Post"
|
||
},
|
||
"tx_booking_dialog": {
|
||
"title": "Post transaction",
|
||
"description": "Create a journal entry for the transaction",
|
||
"doc_label": "Receipt (optional)",
|
||
"doc_attached_count": "{count} attached",
|
||
"doc_pick_existing": "Choose existing document",
|
||
"doc_picked_remove": "Remove document",
|
||
"doc_link_failed_title": "Receipt could not be attached",
|
||
"doc_link_failed_description": "{count} file(s) could not be linked to the journal entry. Try again from the bookkeeping page.",
|
||
"bank_line_description": "Business account"
|
||
},
|
||
"tx_attach_dialog": {
|
||
"title": "Match to document",
|
||
"description": "Attach a receipt or invoice to the transaction — pick from the inbox or upload a new file.",
|
||
"pick_existing": "Choose existing document",
|
||
"selected_remove": "Remove selected document",
|
||
"already_attached_hint": "This transaction already has a document. Attaching a new one replaces it.",
|
||
"confirm": "Attach document",
|
||
"attaching": "Attaching…",
|
||
"success_toast": "Document attached",
|
||
"error_toast": "Could not attach the document",
|
||
"cancel": "Cancel"
|
||
},
|
||
"tx_underlag": {
|
||
"attached_label": "Document",
|
||
"attached_title": "Supporting document attached — click to open",
|
||
"attached_aria": "Open attached document",
|
||
"missing_label": "Missing document",
|
||
"missing_title": "The voucher has no supporting document — click to attach",
|
||
"open_failed": "Could not fetch the document"
|
||
},
|
||
"tx_batch_selector": {
|
||
"title_processing": "Posting {done}/{total}...",
|
||
"title_default": "Post {count} transactions",
|
||
"description_processing": "Please wait while the transactions are posted",
|
||
"description_default": "Choose a category to apply to all selected transactions",
|
||
"progress_label": "{done} of {total} done",
|
||
"underlag_reminder": "Receipts need to be attached separately for each transaction after posting.",
|
||
"vat_label": "VAT treatment",
|
||
"expenses_label": "Expenses",
|
||
"income_label": "Income"
|
||
},
|
||
"tx_inbox_zero": {
|
||
"empty_title": "No transactions",
|
||
"empty_description": "Import a bank statement or add transactions manually to get started.",
|
||
"import_btn": "Import transactions",
|
||
"add_manual_btn": "Add manually",
|
||
"done_title": "All transactions posted!",
|
||
"done_description": "Nice work! All your transactions are posted. Import more or switch to history.",
|
||
"import_more_btn": "Import more",
|
||
"new_btn": "New transaction"
|
||
},
|
||
"tx_swipe_view": {
|
||
"doc_link_failed_title": "Receipt could not be attached",
|
||
"doc_link_failed_description": "{count} file(s) could not be linked to the journal entry.",
|
||
"booking_failed_skip": "Could not post. Tap \"Skip\" to continue.",
|
||
"generic_error_skip": "An error occurred. Tap \"Skip\" to continue.",
|
||
"match_failed_skip": "Could not match the invoice. Tap \"Skip\" to continue.",
|
||
"done_title": "Done!",
|
||
"done_subtitle": "All transactions are now posted",
|
||
"back_to_transactions": "Back to transactions",
|
||
"choose_template": "Choose template",
|
||
"skip": "Skip",
|
||
"review_title": "Review posting",
|
||
"label_template": "Template",
|
||
"label_category": "Category",
|
||
"change_template": "Change template",
|
||
"reverse_charge_warning": "Reverse charge requires the supplier's VAT registration number and country.",
|
||
"label_account": "Account",
|
||
"label_vat_treatment": "VAT treatment",
|
||
"no_vat_liability_account": "No VAT for liability/equity accounts",
|
||
"no_vat_default": "No VAT",
|
||
"change": "Change",
|
||
"doc_label": "Receipt",
|
||
"doc_attached_count": "{count} attached",
|
||
"booking": "Posting...",
|
||
"book": "Post",
|
||
"progress_label": "{current} of {total}",
|
||
"instr_skip": "Skip",
|
||
"instr_book": "Post",
|
||
"indicator_skip": "Skip",
|
||
"indicator_business": "Business",
|
||
"badge_receipt": "Receipt",
|
||
"badge_attachment": "Attachment",
|
||
"invoice_match_title": "Invoice match found",
|
||
"invoice_match_badge": "Match",
|
||
"invoice_label": "Invoice {number}",
|
||
"unknown_customer": "Unknown customer",
|
||
"match_invoice_btn": "Match with invoice {number}",
|
||
"suggested_categories": "Suggested categories"
|
||
},
|
||
"tx_template_picker": {
|
||
"group_premises": "Premises",
|
||
"group_vehicle": "Vehicle",
|
||
"group_it_software": "IT & Software",
|
||
"group_office_supplies": "Office supplies",
|
||
"group_marketing": "Marketing",
|
||
"group_travel": "Travel & Transport",
|
||
"group_representation": "Representation",
|
||
"group_insurance": "Insurance",
|
||
"group_professional_services": "Professional services",
|
||
"group_bank_finance": "Bank & Finance",
|
||
"group_telecom": "Telecom & Internet",
|
||
"group_education": "Education",
|
||
"group_personnel": "Personnel",
|
||
"group_revenue": "Revenue",
|
||
"group_financial": "Financial items",
|
||
"group_private_transfers": "Private transfers",
|
||
"group_equipment": "Equipment & Fixed assets",
|
||
"vat_standard_25": "25% VAT",
|
||
"vat_reduced_12": "12% VAT",
|
||
"vat_reduced_6": "6% VAT",
|
||
"vat_reverse_charge": "Reverse charge",
|
||
"vat_export": "VAT-free (export)",
|
||
"vat_exempt": "VAT-free",
|
||
"requires_vat_reg": "Requires VAT reg. no.",
|
||
"search_placeholder": "Search template...",
|
||
"no_results": "No results",
|
||
"n_results": "{count} results",
|
||
"my_templates": "My templates",
|
||
"previous_counterparties": "Previous counterparties",
|
||
"suggested": "Suggested",
|
||
"common_templates": "Common templates",
|
||
"more_templates": "More templates ({count})",
|
||
"opens_editor_badge": "Opens journal editor"
|
||
},
|
||
"tx_invoice_match": {
|
||
"title_supplier": "Confirm supplier invoice match",
|
||
"title_customer": "Confirm invoice match",
|
||
"description_supplier": "Link this transaction to the supplier invoice? The invoice will be marked as paid and a payment voucher created.",
|
||
"description_customer": "Link this transaction to the invoice? The invoice will be marked as paid.",
|
||
"duplicate_title": "Possible duplicate posting",
|
||
"duplicate_body_same_date": "There is already a posted journal entry {label} for the same amount ({amount}) on the same date. Have you already posted this payment manually?",
|
||
"duplicate_body_window": "There is already a posted journal entry {label} for the same amount ({amount}) within ±7 days ({date}). Have you already posted this payment manually?",
|
||
"link_to_existing": "Link to {label}",
|
||
"create_new_anyway": "Create new voucher anyway",
|
||
"transaction_label": "Transaction",
|
||
"invoice_label": "Invoice",
|
||
"invoice_number": "Invoice {number}",
|
||
"unknown_customer": "Unknown customer",
|
||
"due_date": "Due: {date}",
|
||
"supplier_invoice_label": "Supplier invoice",
|
||
"arrival_number": "Arrival no.: {number}",
|
||
"amounts_match": "Amounts match",
|
||
"amounts_differ": "Amounts differ",
|
||
"amount_diff": "Difference: {amount}",
|
||
"different_currencies": " (different currencies)",
|
||
"partial_payment_note": " — the invoice will become partially paid.",
|
||
"ore_rounding_note": "The {amount} difference is booked as rounding (account 3740). The invoice is marked as paid.",
|
||
"fx_title": "Currency conversion",
|
||
"fx_rate_description": "Riksbanken mid-rate {date}: 1 {invoiceCurrency} = {rate} SEK",
|
||
"fx_paid_in_invoice_currency": "Payment equals: {amount}",
|
||
"fx_remaining_after": "Remaining after payment: {amount}",
|
||
"fx_status_paid": "Invoice will be: Paid",
|
||
"fx_status_partially_paid": "Invoice will be: Partially paid",
|
||
"fx_rate_unavailable_title": "Exchange rate unavailable",
|
||
"fx_rate_unavailable_description": "Riksbanken has not published a rate for {date}. Enter the rate from your bank statement (SEK per 1 {invoiceCurrency}).",
|
||
"fx_manual_rate_label": "Manual rate",
|
||
"fx_manual_rate_placeholder": "e.g. 10.4500",
|
||
"fx_gain_note": "FX gain: {amount}",
|
||
"fx_loss_note": "FX loss: {amount}",
|
||
"on_confirm_title": "On confirmation:",
|
||
"on_confirm_link_supplier": "The transaction is linked to the supplier invoice",
|
||
"on_confirm_link_customer": "The transaction is linked to the invoice",
|
||
"on_confirm_mark_paid_supplier": "The supplier invoice is marked as paid",
|
||
"on_confirm_mark_paid_customer": "The invoice is marked as paid",
|
||
"on_confirm_voucher": "A journal entry is created automatically",
|
||
"booking_title": "Bookkeeping",
|
||
"booking_loading": "Calculating booking...",
|
||
"booking_unavailable": "Could not preview the booking. Continue or cancel.",
|
||
"booking_debit": "Debit",
|
||
"booking_credit": "Credit",
|
||
"booking_account": "Account",
|
||
"booking_edit": "Edit",
|
||
"booking_reset": "Reset",
|
||
"booking_done_editing": "Done",
|
||
"booking_add_line": "Add line",
|
||
"booking_remove_line": "Remove line",
|
||
"booking_description_placeholder": "Description",
|
||
"booking_unbalanced": "Debit and credit must match and be greater than zero. Difference: {diff}",
|
||
"booking_account_invalid": "Account number must be 4 digits.",
|
||
"cancel": "Cancel",
|
||
"confirming": "Confirming...",
|
||
"confirm_match": "Confirm match"
|
||
},
|
||
"tx_invoice_picker": {
|
||
"loading": "Loading invoices...",
|
||
"empty": "No open invoices to match against.",
|
||
"search_placeholder": "Search invoice number or customer...",
|
||
"no_number": "(no number)",
|
||
"status_overdue": "Overdue",
|
||
"status_partially_paid": "Partially paid",
|
||
"unknown_customer": "Unknown customer",
|
||
"due_short": "Due {date}",
|
||
"exact_match": "Exact match",
|
||
"no_search_results": "No invoice matches \"{term}\""
|
||
},
|
||
"tx_bulk_book": {
|
||
"title": "Book {count} transactions from {date}",
|
||
"description_income": "Create a single combined verifikat covering all selected incoming payments (BFL 5 kap 6§).",
|
||
"description_expense": "Create a single combined verifikat covering all selected outgoing payments (BFL 5 kap 6§).",
|
||
"summary_count": "{count, plural, one {# transaction} other {# transactions}}",
|
||
"template_label": "Booking template",
|
||
"no_templates": "No active templates available.",
|
||
"system_badge": "Standard",
|
||
"mode_label": "How should the lines be grouped?",
|
||
"mode_per_tx": "One line per transaction",
|
||
"mode_per_tx_hint": "Preserves per-transaction audit detail — more lines.",
|
||
"mode_sum": "Sum per account",
|
||
"mode_sum_hint": "Compact verifikat — all amounts summed per account.",
|
||
"description_label": "Voucher description",
|
||
"default_description": "Combined verifikat {date}",
|
||
"preview_label": "Preview ({count} lines)",
|
||
"preview_truncated": "+ {remaining} more lines on booking",
|
||
"col_account": "Account",
|
||
"col_description": "Description",
|
||
"col_debit": "Debit",
|
||
"col_credit": "Credit",
|
||
"total_label": "Total",
|
||
"balance_ok": "The verifikat balances.",
|
||
"balance_off": "The verifikat doesn't balance (delta {delta}).",
|
||
"bank_ok": "Bank line matches the transactions.",
|
||
"bank_off": "The bank line's net amount doesn't match the transactions.",
|
||
"error_title": "Bulk booking failed",
|
||
"success_title": "Combined verifikat created",
|
||
"success_description": "{count} transactions booked to verifikat {voucher}.",
|
||
"unknown_voucher": "(no number)",
|
||
"tab_template": "Template",
|
||
"tab_manual": "Manual",
|
||
"manual_lines_label": "Lines",
|
||
"manual_add_line": "Add line",
|
||
"manual_remove_line": "Remove line",
|
||
"manual_description_placeholder": "Description (optional)",
|
||
"docs_inherit_hint": "{count, plural, one {# supporting document will follow (7-year retention per BFL 7 kap)} other {# supporting documents will follow (7-year retention per BFL 7 kap)}}",
|
||
"cancel": "Cancel",
|
||
"confirm": "Confirm booking"
|
||
},
|
||
"tx_match_allocation": {
|
||
"title": "Split payment",
|
||
"description_customer": "Allocate the incoming payment across one or more customer invoices. The verifikat lands as a samlingsverifikation per BFL 5 kap 6§.",
|
||
"description_supplier": "Allocate the outgoing payment across one or more supplier invoices. The verifikat lands as a samlingsverifikation per BFL 5 kap 6§.",
|
||
"transaction_label": "Transaction",
|
||
"search_placeholder": "Search invoice number, customer or supplier...",
|
||
"empty_title": "No open invoices",
|
||
"empty_description": "There are no invoices in an open state to allocate against.",
|
||
"unknown_customer": "Unknown customer",
|
||
"unknown_supplier": "Unknown supplier",
|
||
"remaining_label": "Remaining: {amount}",
|
||
"selected_badge": "Selected",
|
||
"add_button": "Add",
|
||
"amount_input_aria": "Amount for {label}",
|
||
"remove_aria": "Remove {label}",
|
||
"allocated_label": "Allocated",
|
||
"balanced_message": "Amounts match — ready to confirm.",
|
||
"overshoot_warning": "Allocation exceeds the transaction by {excess}. Lower an amount or remove an invoice.",
|
||
"undershoot_warning": "{amount} left to allocate — the full transaction must be covered before you can confirm. Add more invoices or adjust amounts.",
|
||
"fx_rate_missing_warning": "No exchange rate on file for {currency} — enter the SEK amount manually.",
|
||
"error_no_allocations_title": "No allocations",
|
||
"error_no_allocations_description": "Pick at least one invoice to allocate the payment to.",
|
||
"error_submit_title": "Allocation could not be saved",
|
||
"success_title": "Payment allocated",
|
||
"success_description": "{count, plural, one {The invoice has} other {The invoices have}} been booked against the transaction.",
|
||
"cancel": "Cancel",
|
||
"confirm": "Confirm allocation"
|
||
},
|
||
"tx_skattekonto_card": {
|
||
"skv_badge": "Skatteverket",
|
||
"duplicate_title_with_voucher": "Possible duplicate of voucher {label}",
|
||
"duplicate_title_draft": "Possible duplicate of voucher (draft)",
|
||
"duplicate_body": "This looks like the same cash flow — link instead of re-posting.",
|
||
"link_to_voucher": "Link to voucher",
|
||
"book_anyway": "Post anyway",
|
||
"book": "Post",
|
||
"match_to_voucher": "Match to voucher"
|
||
},
|
||
"tx_form": {
|
||
"date_required": "Date is required",
|
||
"date_invalid": "Enter a valid date (YYYY-MM-DD)",
|
||
"description_required": "Description is required",
|
||
"amount_required": "Amount must be entered",
|
||
"date_label": "Date *",
|
||
"currency_label": "Currency",
|
||
"description_label": "Description *",
|
||
"description_placeholder": "E.g. Adobe Creative Cloud",
|
||
"amount_label": "Amount * (negative for expense)",
|
||
"amount_placeholder": "-500",
|
||
"amount_help": "Enter a positive amount for income, negative for expenses",
|
||
"notes_label": "Notes",
|
||
"notes_placeholder": "Optional notes...",
|
||
"saving": "Saving...",
|
||
"save": "Save transaction"
|
||
},
|
||
"tx_history": {
|
||
"search_placeholder": "Search transactions...",
|
||
"filter_all": "All",
|
||
"filter_business": "Business",
|
||
"filter_private": "Private",
|
||
"source_label": "Source:",
|
||
"source_all": "All",
|
||
"source_bank": "Bank",
|
||
"source_skatteverket": "Skatteverket",
|
||
"empty_title": "No transactions",
|
||
"empty_search": "No transactions match your search",
|
||
"empty_filter": "No transactions to show with the selected filter",
|
||
"loading_more": "Loading...",
|
||
"load_more": "Load more",
|
||
"private_badge": "Private",
|
||
"linked_to_invoice": "Linked to invoice",
|
||
"posted": "Posted",
|
||
"view_voucher": "View journal entry",
|
||
"fetching": "Fetching…",
|
||
"create_correction": "Create correction entry",
|
||
"not_posted": "Not posted",
|
||
"possible_match_invoice": "Possible match: Invoice {number}",
|
||
"attach_document": "Match to document",
|
||
"book": "Post",
|
||
"delete": "Delete",
|
||
"delete_aria": "Delete transaction",
|
||
"skv_badge": "Skatteverket",
|
||
"possible_duplicate": "Possible duplicate",
|
||
"link": "Link",
|
||
"match": "Match",
|
||
"view_voucher_short": "View voucher"
|
||
},
|
||
"tx_categories": {
|
||
"expense_representation": "Representation",
|
||
"expense_equipment": "Equipment",
|
||
"expense_software": "Software",
|
||
"expense_consumables": "Materials",
|
||
"expense_travel": "Travel",
|
||
"expense_office": "Office",
|
||
"expense_vehicle": "Car & fuel",
|
||
"expense_telecom": "Phone & internet",
|
||
"expense_marketing": "Marketing",
|
||
"expense_professional_services": "Consultants",
|
||
"expense_education": "Education",
|
||
"expense_bank_fees": "Bank fee",
|
||
"expense_card_fees": "Card fee",
|
||
"expense_currency_exchange": "Currency exchange",
|
||
"expense_other": "Other",
|
||
"income_services": "Services",
|
||
"income_products": "Products",
|
||
"income_other": "Other",
|
||
"vat_standard_25": "VAT 25%",
|
||
"vat_reduced_12": "VAT 12%",
|
||
"vat_reduced_12_desc": "Food, hotels, camping",
|
||
"vat_reduced_6": "VAT 6%",
|
||
"vat_reduced_6_desc": "Books, newspapers, public transport",
|
||
"vat_reverse_charge": "Reverse charge",
|
||
"vat_reverse_charge_desc": "Buyer reports the VAT (EU services etc.)",
|
||
"vat_export": "Export",
|
||
"vat_export_desc": "Sales outside EU (right to deduct retained)",
|
||
"vat_exempt": "VAT-free",
|
||
"vat_exempt_desc": "Exempt under ML (healthcare, education, finance)",
|
||
"vat_none": "No VAT",
|
||
"vat_none_desc": "Not VAT-liable (e.g. wages, private withdrawals)"
|
||
},
|
||
"tx_skattekonto_match": {
|
||
"search_failed_default": "Could not search candidates",
|
||
"fetch_candidates_failed_title": "Could not fetch candidates",
|
||
"match_failed_default": "Match failed",
|
||
"match_success_title": "Transaction linked to voucher",
|
||
"match_failed_title": "Could not link the transaction",
|
||
"title": "Match against existing voucher",
|
||
"searching": "Searching candidates…",
|
||
"no_candidates_title": "No vouchers with a matching line on account 1630.",
|
||
"no_candidates_help": "The candidate must have the same amount and side on 1630 within ±14 days of the transaction date, and must not already be linked to another skattekonto transaction. Use <strong>Post</strong> to create a new voucher instead.",
|
||
"th_date": "Date",
|
||
"th_voucher": "Voucher",
|
||
"th_description": "Description",
|
||
"th_status": "Status",
|
||
"status_posted": "Posted",
|
||
"status_draft": "Draft",
|
||
"status_reversed": "Reversed",
|
||
"linking": "Linking…",
|
||
"link": "Link",
|
||
"cancel": "Cancel"
|
||
},
|
||
"invoice_editor": {
|
||
"row_menu_set_account": "Set sales account",
|
||
"row_menu_remove_account": "Remove sales account",
|
||
"revenue_account_label": "Sales account",
|
||
"revenue_account_hint": "Leave blank to derive the account from the VAT rate. Ignored for reverse charge and export.",
|
||
"ore_rounding_label": "Öre rounding",
|
||
"ore_rounding_help": "Round the invoice total to whole kronor",
|
||
"back": "Back",
|
||
"article_label": "Article",
|
||
"article_placeholder": "Select article",
|
||
"article_free_text": "Custom line (free text)",
|
||
"save_as_article": "Save as article",
|
||
"save_article_need_description": "Enter a description before saving as an article",
|
||
"article_saved_title": "Article saved",
|
||
"save_article_failed": "Could not save the article",
|
||
"title_invoice": "New invoice",
|
||
"title_proforma": "New proforma invoice",
|
||
"title_delivery_note": "New delivery note",
|
||
"subtitle_invoice": "Create a new invoice",
|
||
"subtitle_proforma": "Create a proforma invoice (no bookkeeping)",
|
||
"subtitle_delivery_note": "Create a delivery note (without prices)",
|
||
"bank_missing_warning": "Payment details missing — you need to add them before creating an invoice.",
|
||
"bank_add_now": "Add now",
|
||
"customer_card_title": "Customer",
|
||
"customer_card_description": "Select which customer the invoice should be sent to",
|
||
"select_customer_placeholder": "Select customer",
|
||
"create_customer": "Create customer",
|
||
"create_customer_dialog_title": "Add customer",
|
||
"create_customer_failed_title": "Could not create customer",
|
||
"customer_created_title": "Customer created",
|
||
"customer_created_description": "{name} has been added",
|
||
"load_customers_failed_title": "Could not load customers",
|
||
"load_customers_failed_description": "Check your connection and try again.",
|
||
"items_card_title": "Invoice lines",
|
||
"items_card_description": "Add products or services",
|
||
"description_label": "Description",
|
||
"description_placeholder": "E.g. Instagram campaign",
|
||
"quantity_label": "Quantity",
|
||
"unit_label": "Unit",
|
||
"unit_price_label": "Unit price",
|
||
"vat_label": "VAT",
|
||
"row_label": "Row {index}",
|
||
"add_row": "Add row",
|
||
"add_text_row": "Add text row",
|
||
"text_row_label": "Free text",
|
||
"text_row_placeholder": "Explanatory text – leave empty for a blank row",
|
||
"remove_row_aria": "Remove row",
|
||
"remove_row": "Remove row",
|
||
"row_actions_aria": "Row actions",
|
||
"drag_handle_aria": "Drag to move the row",
|
||
"notes_card_title": "Notes",
|
||
"notes_card_description": "Optional message on the invoice",
|
||
"notes_placeholder": "E.g. payment terms or thanks for the collaboration...",
|
||
"details_card_title": "Invoice details",
|
||
"document_type_label": "Document type",
|
||
"doctype_invoice": "Invoice",
|
||
"doctype_proforma": "Proforma invoice",
|
||
"doctype_delivery_note": "Delivery note",
|
||
"currency_label": "Currency",
|
||
"invoice_date_label": "Invoice date",
|
||
"due_date_label": "Due date",
|
||
"delivery_date_label": "Delivery date",
|
||
"delivery_date_placeholder": "If different from invoice date",
|
||
"your_reference_label": "Your reference",
|
||
"your_reference_placeholder": "Customer contact person",
|
||
"our_reference_label": "Our reference",
|
||
"our_reference_placeholder": "Your name",
|
||
"summary_card_title": "Summary",
|
||
"subtotal_label": "Subtotal",
|
||
"net_at_rate": "Net {rate}%",
|
||
"vat_at_rate": "VAT {rate}%",
|
||
"vat_label_short": "VAT",
|
||
"total_label": "Total",
|
||
"review_and_create": "Review & create",
|
||
"save_as_draft": "Save as draft",
|
||
"save_as_draft_short": "Draft",
|
||
"save_as_draft_tooltip": "Saves without an invoice number — can be deleted later",
|
||
"toast_draft_saved_title": "Draft saved",
|
||
"toast_draft_saved_description": "The draft is in your invoice list. Open it to review and create the invoice.",
|
||
"save_draft_failed_title": "Could not save draft",
|
||
"title_edit": "Edit draft",
|
||
"subtitle_edit": "Change the draft and save. The invoice number is unchanged.",
|
||
"save_changes": "Save changes",
|
||
"toast_draft_updated_title": "Draft updated",
|
||
"toast_draft_updated_description": "Your changes have been saved.",
|
||
"update_failed_title": "Could not save your changes",
|
||
"mode_invoice": "Invoice",
|
||
"mode_self_billed": "Self-billing",
|
||
"viewer_disabled_tooltip": "You only have read-only access to this company",
|
||
"review_dialog_title_invoice": "Review invoice",
|
||
"review_dialog_title_proforma": "Review proforma invoice",
|
||
"review_dialog_title_delivery_note": "Review delivery note",
|
||
"review_warning_invoice_accrual": "An invoice is created and assigned an invoice number. When it is sent or marked as sent, a journal entry (verifikat) is posted; it cannot be edited directly but can be corrected via a credit note.",
|
||
"review_warning_invoice_cash": "An invoice is created and assigned an invoice number. The journal entry (verifikat) is only posted when the invoice is marked as paid (cash method).",
|
||
"review_warning_proforma": "A proforma invoice is created. No journal entry is posted. The proforma can later be converted to a real invoice.",
|
||
"review_warning_delivery_note": "A delivery note is created without prices. No journal entry is posted.",
|
||
"confirm_create_invoice": "Confirm & create",
|
||
"confirm_create_proforma": "Create proforma invoice",
|
||
"confirm_create_delivery_note": "Create delivery note",
|
||
"preview_pdf": "Preview PDF",
|
||
"preview_pdf_generating": "Generating...",
|
||
"preview_pdf_failed": "Could not generate PDF",
|
||
"create_invoice_failed_title": "Could not create invoice",
|
||
"doc_created_title": "{docLabel} created",
|
||
"doc_created_description": "{docLabel} {number} has been created",
|
||
"doc_label_invoice": "Invoice",
|
||
"doc_label_proforma": "Proforma invoice",
|
||
"doc_label_delivery_note": "Delivery note",
|
||
"send_now_dialog_title": "Send the invoice now?",
|
||
"send_now_dialog_description": "The invoice was created. Do you want to send it to {email} now?",
|
||
"send_later": "Send later",
|
||
"send_now": "Send now",
|
||
"send_now_sending": "Sending...",
|
||
"invoice_sent_title": "Invoice sent",
|
||
"invoice_sent_description": "The invoice was sent to {email}",
|
||
"send_invoice_failed_title": "Could not send invoice",
|
||
"validation_description_required": "Description required",
|
||
"validation_quantity_min": "Minimum 0.01",
|
||
"validation_unit_required": "Unit required",
|
||
"validation_customer_required": "Select a customer",
|
||
"validation_invoice_date_required": "Invoice date required",
|
||
"validation_due_date_required": "Due date required",
|
||
"validation_min_one_row": "At least one row required",
|
||
"deduction_menu_label": "Tax reduction",
|
||
"deduction_none": "None",
|
||
"deduction_rot": "ROT (30%)",
|
||
"deduction_rut": "RUT (50%)",
|
||
"deduction_work_type_placeholder": "Select work type",
|
||
"deduction_hours_placeholder": "Labor hours",
|
||
"deduction_labor_only_warning": "Skatteverket requires that only labor costs are included in the ROT/RUT base. Materials must be invoiced separately. Only apply a tax reduction to lines that are 100% labor.",
|
||
"deduction_card_title": "Tax reduction details",
|
||
"deduction_card_description": "ROT/RUT deductions are claimed from Skatteverket via the invoice model (fakturamodellen). The customer must approve the payout, so the details must match the buyer exactly.",
|
||
"deduction_personnummer_label": "Personal identity number (personnummer)",
|
||
"deduction_personnummer_placeholder": "YYYYMMDD-NNNN",
|
||
"deduction_personnummer_hint": "Encrypted before storage. Only the last four digits are shown on the invoice.",
|
||
"deduction_housing_label": "Property designation (fastighetsbeteckning)",
|
||
"deduction_housing_placeholder": "e.g. Stockholm Vasastan 1:23",
|
||
"deduction_housing_hint": "Required for ROT deductions (not needed for RUT).",
|
||
"deduction_cap_over": "The invoice's deduction exceeds the annual cap",
|
||
"deduction_cap_check": "The customer needs to check their remaining allowance themselves.",
|
||
"deduction_summary_label": "Tax reduction ROT/RUT",
|
||
"to_pay_label": "Amount to pay",
|
||
"total_incl_vat_label": "Total incl. VAT"
|
||
},
|
||
"invoice_review": {
|
||
"assigned_number_prefix": "Will be assigned invoice number",
|
||
"accrual_line_info": "Accrued {from} – {to}",
|
||
"customer_type_individual": "Private individual",
|
||
"customer_type_swedish_business": "Swedish business or organization",
|
||
"customer_type_eu_business": "EU business",
|
||
"customer_type_non_eu_business": "Outside EU",
|
||
"invoice_date": "Invoice date",
|
||
"due_date": "Due date",
|
||
"th_description": "Description",
|
||
"th_quantity": "Quantity",
|
||
"th_unit": "Unit",
|
||
"th_unit_price": "Unit price",
|
||
"th_vat": "VAT",
|
||
"th_amount": "Amount",
|
||
"mobile_vat_suffix": "({rate}% VAT)",
|
||
"subtotal": "Subtotal",
|
||
"vat_at_rate": "VAT {rate}%",
|
||
"vat_label": "VAT",
|
||
"ore_rounding": "Öresavrundning",
|
||
"total": "Total",
|
||
"your_reference": "Your reference:",
|
||
"our_reference": "Our reference:",
|
||
"notes_prefix": "Note: {notes}"
|
||
},
|
||
"invoice_bank_setup": {
|
||
"title": "Payment details",
|
||
"description_prefix": "These details are shown on your invoices. You can change them later in ",
|
||
"settings_link": "Settings",
|
||
"description_suffix": ".",
|
||
"bank_label": "Bank",
|
||
"clearing_label": "Clearing",
|
||
"clearing_placeholder": "8000",
|
||
"account_label": "Account number",
|
||
"account_placeholder": "12345678",
|
||
"bankgiro_label": "Bankgiro",
|
||
"bankgiro_placeholder": "123-4567",
|
||
"international_toggle": "International payments",
|
||
"iban_label": "IBAN",
|
||
"iban_placeholder": "SE12 3456 7890 1234 5678 9012",
|
||
"bic_label": "BIC/SWIFT",
|
||
"bic_placeholder": "NDEASESS",
|
||
"invoice_prefix_label": "Invoice prefix",
|
||
"invoice_prefix_placeholder": "e.g. F-",
|
||
"next_invoice_number_label": "Starting number",
|
||
"next_invoice_number_placeholder": "1",
|
||
"prefix_hint": "Prefix \"F-\" with starting number 1 gives F-2026001. Leave empty for default.",
|
||
"save_and_continue": "Save & continue",
|
||
"saved_title": "Payment details saved",
|
||
"saved_description": "You can change them later in Settings.",
|
||
"save_failed_title": "Could not save",
|
||
"validation_clearing_format": "Clearing number must be 4–5 digits",
|
||
"validation_account_format": "Account number must be 6–12 digits",
|
||
"validation_either_required": "Provide either account number (clearing + account) or bankgiro",
|
||
"validation_both_required": "Provide both clearing number and account number",
|
||
"validation_bankgiro_invalid": "Invalid bankgiro number (7–8 digits with check digit)",
|
||
"validation_start_number_positive": "Starting number must be a positive integer",
|
||
"save_failed_fallback": "Could not save"
|
||
},
|
||
"invoice_detail": {
|
||
"back": "Back",
|
||
"load_failed_title": "Could not load invoice",
|
||
"load_failed_description": "The invoice was not found.",
|
||
"status_draft": "Draft",
|
||
"status_unsent": "Not sent",
|
||
"status_sent": "Sent",
|
||
"status_paid": "Paid",
|
||
"status_partially_paid": "Partially paid",
|
||
"status_overdue": "Overdue",
|
||
"status_cancelled": "Cancelled",
|
||
"status_credited": "Credited",
|
||
"badge_proforma": "Proforma",
|
||
"badge_delivery_note": "Delivery note",
|
||
"badge_self_billed": "Self-billing",
|
||
"badge_accrued": "Accrued",
|
||
"accrual_line_info": "Accrued {from} – {to}",
|
||
"external_number_label": "Invoice number (customer's)",
|
||
"agreement_ref_label": "Agreement reference",
|
||
"created_at": "Created {date}",
|
||
"sent_at_suffix": " • Sent {date}",
|
||
"convert_to_invoice": "Convert to invoice",
|
||
"send_via_email": "Send via email",
|
||
"mark_sent_manually": "Sent manually",
|
||
"mark_as_sent": "Mark as sent",
|
||
"mark_as_paid": "Mark as paid",
|
||
"download_pdf": "Download PDF",
|
||
"viewer_disabled_tooltip": "You only have read-only access to this company",
|
||
"customer_card_title": "Customer",
|
||
"org_number_label": "Org. no: {value}",
|
||
"vat_number_label": "VAT: {value}",
|
||
"items_card_title": "Invoice lines",
|
||
"th_description": "Description",
|
||
"th_quantity": "Quantity",
|
||
"th_unit": "Unit",
|
||
"th_unit_price": "Unit price",
|
||
"th_amount": "Amount",
|
||
"subtotal": "Subtotal",
|
||
"vat_label": "VAT",
|
||
"vat_at_rate": "VAT {rate}%",
|
||
"ore_rounding": "Öresavrundning",
|
||
"total": "Total",
|
||
"in_sek": "In SEK (rate {rate})",
|
||
"notes_card_title": "Notes",
|
||
"reverse_charge_label": "Reverse charge",
|
||
"details_card_title": "Details",
|
||
"invoice_number_label": "Invoice number",
|
||
"invoice_date_label": "Invoice date",
|
||
"due_date_label": "Due date",
|
||
"currency_label": "Currency",
|
||
"vat_treatment_label": "VAT treatment",
|
||
"your_reference_label": "Your reference",
|
||
"our_reference_label": "Our reference",
|
||
"bookkeeping_label": "Bookkeeping",
|
||
"view_voucher": "View verifikat",
|
||
"correction_loading": "Loading…",
|
||
"correction_prompt": "Something wrong? Create a correction verifikat",
|
||
"paid_card_title": "Paid",
|
||
"paid_received_at": "Payment received {date}",
|
||
"payment_status_card_title": "Payment status",
|
||
"payment_status_paid_label": "Paid",
|
||
"payment_status_remaining_label": "Remaining",
|
||
"payment_status_payments_heading": "Payments",
|
||
"payment_status_view_voucher": "Voucher {label}",
|
||
"payment_status_view_voucher_unlinked": "No voucher linked",
|
||
"payment_status_empty": "No payments recorded yet.",
|
||
"reminders_card_title": "Reminders",
|
||
"reminders_description": "Automatic reminders are sent at 15, 30 and 45 days overdue",
|
||
"reminders_empty": "No reminders have been sent yet.",
|
||
"reminder_level_label": "Level {level}",
|
||
"reminder_level_1": "Friendly reminder",
|
||
"reminder_level_2": "Second reminder",
|
||
"reminder_level_3": "Final reminder",
|
||
"reminder_sent_to": "Sent {date} to {email}",
|
||
"reminder_marked_paid": "Customer marked as paid",
|
||
"reminder_objection": "Customer has objections",
|
||
"credited_card_title": "Credited",
|
||
"credited_description": "This invoice has been credited",
|
||
"see_credit_note": "See credit note {number}",
|
||
"credit_note_card_title": "Credit note",
|
||
"credit_note_description": "This credit note credits",
|
||
"see_original_invoice": "See invoice {number}",
|
||
"converted_card_title": "Converted",
|
||
"converted_description": "Converted from a proforma invoice",
|
||
"see_proforma": "See proforma {number}",
|
||
"actions_card_title": "Actions",
|
||
"cancel_action": "Cancel",
|
||
"delete_draft": "Cancel draft",
|
||
"create_credit_note": "Create credit note",
|
||
"no_customer_email_warning": "The customer has no email address. Add an email to be able to send the invoice digitally.",
|
||
"send_manual_hint_with_email": "Use if you've already sent the invoice another way (post, another system)",
|
||
"send_manual_hint_no_email": "Marks the invoice as sent and creates the bookkeeping verifikat",
|
||
"delete_dialog_title": "Cancel invoice draft",
|
||
"delete_dialog_desc_with_number_1": "The invoice is marked as cancelled and kept in the invoice list with status ",
|
||
"delete_dialog_status_makulerad": "Cancelled",
|
||
"delete_dialog_desc_with_number_2": ".",
|
||
"delete_dialog_number_kept": "Invoice number {number} is kept so the number series stays unbroken per ML 17 kap 24§.",
|
||
"delete_dialog_cancel": "Cancel",
|
||
"delete_dialog_confirm": "Cancel invoice",
|
||
"finalize_action": "Review & create",
|
||
"edit_draft": "Edit",
|
||
"edit_not_allowed_title": "Cannot be edited",
|
||
"edit_not_allowed_description": "Only drafts can be edited. Posted or sent invoices must be credited instead.",
|
||
"finalize_dialog_title": "Create invoice?",
|
||
"finalize_dialog_number_label": "Invoice number",
|
||
"finalize_dialog_desc": "An invoice number is assigned and the draft becomes an invoice. You can send or cancel it afterwards, but can no longer delete it.",
|
||
"finalize_dialog_cancel": "Cancel",
|
||
"finalize_dialog_confirm": "Review & create",
|
||
"finalized_toast_title": "Invoice created",
|
||
"finalized_toast_description": "Invoice {number} has been created.",
|
||
"finalize_failed_title": "Could not create the invoice",
|
||
"remove_action": "Delete",
|
||
"remove_dialog_title": "Delete draft?",
|
||
"remove_dialog_desc": "The draft and its rows are permanently deleted. Since no invoice number was assigned, the number series is unaffected. This cannot be undone.",
|
||
"remove_dialog_confirm": "Delete",
|
||
"removed_toast_title": "Draft deleted",
|
||
"removed_toast_description": "The draft has been removed.",
|
||
"status_update_toast_title": "Updated",
|
||
"status_update_toast_description": "The invoice is now marked as {status}",
|
||
"status_update_failed_title": "Status update failed",
|
||
"fallback_try_again": "Try again.",
|
||
"cancel_posted_error": "Posted invoices cannot be cancelled. Create a credit note instead.",
|
||
"mark_sent_failed_fallback": "Could not mark as sent",
|
||
"convert_failed_title": "Conversion failed",
|
||
"convert_failed_fallback": "Could not convert the proforma invoice",
|
||
"converted_toast_title": "Converted to invoice",
|
||
"converted_toast_description": "Invoice {number} has been created",
|
||
"pdf_generate_failed": "Could not generate PDF",
|
||
"pdf_downloaded_title": "PDF downloaded",
|
||
"pdf_downloaded_with_number": "Invoice {number} has been downloaded",
|
||
"pdf_downloaded_draft": "The draft has been downloaded",
|
||
"pdf_download_failed_title": "Could not download PDF",
|
||
"cancel_failed_fallback": "Could not cancel the invoice",
|
||
"cancelled_toast_title": "Invoice cancelled",
|
||
"cancelled_with_number": "Invoice {number} has been cancelled. The number is kept in the series.",
|
||
"cancelled_draft": "The draft has been cancelled.",
|
||
"cancel_failed_title": "Could not cancel the invoice",
|
||
"paid_toast_title": "Paid",
|
||
"paid_toast_description": "Invoice {number} has been marked as paid and posted"
|
||
},
|
||
"invoice_credit": {
|
||
"back": "Back",
|
||
"title": "Create credit note",
|
||
"subtitle": "Credits invoice {number}",
|
||
"warning_title": "Irreversible action",
|
||
"warning_description": "A credit note fully cancels the original invoice. All amounts become negative, a bookkeeping verifikat is created, and the original invoice is marked as credited. This action cannot be undone.",
|
||
"original_card_title": "Original invoice",
|
||
"original_card_description": "The credit note is based on this invoice",
|
||
"invoice_number_label": "Invoice number:",
|
||
"date_label": "Date:",
|
||
"customer_label": "Customer:",
|
||
"vat_treatment_label": "VAT treatment:",
|
||
"preview_card_title": "Credit note preview",
|
||
"preview_card_description": "Credit note number: KR-{number}",
|
||
"th_description": "Description",
|
||
"th_quantity": "Quantity",
|
||
"th_unit": "Unit",
|
||
"th_unit_price": "Unit price",
|
||
"th_amount": "Amount",
|
||
"subtotal": "Subtotal",
|
||
"vat_at_rate": "VAT ({rate}%)",
|
||
"total": "Total",
|
||
"in_sek": "In SEK (rate {rate})",
|
||
"reason_card_title": "Reason",
|
||
"reason_card_description": "State the reason for crediting (shown on the credit note)",
|
||
"reason_label": "Reason",
|
||
"reason_placeholder": "E.g. Incorrect invoicing, returned goods...",
|
||
"reason_default": "Credits invoice {number}",
|
||
"confirm_card_title": "Confirm",
|
||
"confirm_card_description_1": "Type the invoice number ",
|
||
"confirm_card_description_2": " to confirm",
|
||
"cancel": "Cancel",
|
||
"creating": "Creating...",
|
||
"create_credit_note": "Create credit note",
|
||
"viewer_disabled_tooltip": "You only have read-only access to this company",
|
||
"load_failed_title": "Could not load invoice",
|
||
"load_failed_description": "The invoice was not found.",
|
||
"cannot_credit_title": "Cannot be credited",
|
||
"cannot_credit_description": "Only sent, paid or overdue invoices can be credited",
|
||
"already_credited_title": "Already credited",
|
||
"already_credited_description": "This invoice has already been credited",
|
||
"created_toast_title": "Credit note created",
|
||
"created_toast_description": "Credit note {number} has been created",
|
||
"create_failed_title": "Could not create credit note",
|
||
"create_failed_fallback": "Failed to create credit note",
|
||
"try_again": "Try again."
|
||
},
|
||
"invoice_recurring": {
|
||
"title": "Recurring invoices",
|
||
"new_schedule": "New schedule",
|
||
"viewer_disabled_tooltip": "You only have read-only access to this company",
|
||
"loading": "Loading...",
|
||
"load_failed_title": "Could not load recurring invoices",
|
||
"load_failed_description": "Check your connection and try again.",
|
||
"empty_title": "No recurring invoices",
|
||
"empty_description": "Create a schedule to automatically invoice customers on a specific day every month.",
|
||
"th_name": "Name",
|
||
"th_customer": "Customer",
|
||
"th_day": "Day",
|
||
"th_next_run": "Next run",
|
||
"th_status": "Status",
|
||
"th_generated": "Created",
|
||
"th_actions": "Actions",
|
||
"status_active": "Active",
|
||
"status_paused": "Paused",
|
||
"pause": "Pause",
|
||
"resume": "Activate",
|
||
"delete": "Remove",
|
||
"schedule_paused_title": "Schedule paused",
|
||
"schedule_resumed_title": "Schedule reactivated",
|
||
"schedule_update_failed_title": "Could not update schedule",
|
||
"schedule_deleted_title": "Schedule removed",
|
||
"schedule_delete_failed_title": "Could not remove schedule",
|
||
"delete_confirm": "Remove schedule \"{name}\"? Already created invoices are not affected."
|
||
},
|
||
"invoice_recurring_new": {
|
||
"back": "Back",
|
||
"title": "New recurring schedule",
|
||
"schedule_card_title": "Schedule",
|
||
"name_label": "Name",
|
||
"name_placeholder": "e.g. Monthly retainer Acme AB",
|
||
"customer_label": "Customer",
|
||
"customer_placeholder": "Select customer",
|
||
"day_label": "Day of month",
|
||
"day_hint": "29-31 run on the last day in shorter months.",
|
||
"payment_terms_label": "Payment terms (days)",
|
||
"currency_label": "Currency",
|
||
"auto_send_label": "Create and send automatically",
|
||
"auto_send_description": "When enabled: the invoice is emailed to the customer immediately on creation. Otherwise it is created as a draft for manual review.",
|
||
"items_card_title": "Lines",
|
||
"description_placeholder": "Description",
|
||
"quantity_placeholder": "Quantity",
|
||
"unit_price_placeholder": "Unit price",
|
||
"remove_row": "Remove row",
|
||
"add_row": "Add row",
|
||
"subtotal_ex_vat": "Subtotal excl. VAT: {amount}",
|
||
"other_card_title": "Other",
|
||
"your_reference_label": "Your reference",
|
||
"our_reference_label": "Our reference",
|
||
"notes_label": "Notes (written on every invoice)",
|
||
"cancel": "Cancel",
|
||
"create_schedule": "Create schedule",
|
||
"creating": "Creating...",
|
||
"created_title": "Schedule created",
|
||
"create_failed_title": "Could not create schedule",
|
||
"create_failed_fallback": "Could not create schedule",
|
||
"validation_description_required": "Description required",
|
||
"validation_quantity_min": "Minimum 0.01",
|
||
"validation_unit_required": "Unit required",
|
||
"validation_customer_required": "Select a customer",
|
||
"validation_name_required": "Name required",
|
||
"validation_min_one_row": "At least one row required"
|
||
},
|
||
"invoice_send_dialog": {
|
||
"title_email": "Send invoice",
|
||
"title_manual": "Mark as sent",
|
||
"title_suffix": " — {number}",
|
||
"description_sek_suffix": " ({amount} SEK)",
|
||
"description_to_email": " to {email}",
|
||
"load_failed_title": "Could not load settings",
|
||
"no_active_company": "No active company",
|
||
"company_settings_failed": "Could not load company settings",
|
||
"journal_preview_intro": "The following bookkeeping verifikat is created automatically:",
|
||
"voucher_description": "Sales invoice{numberSpace}{customerSuffix}",
|
||
"explain_cash": "Cash method — bookkeeping happens on payment, not on invoicing.",
|
||
"explain_email": "The invoice is sent to {email}.",
|
||
"explain_manual": "The invoice is marked as sent.",
|
||
"cancel": "Cancel",
|
||
"send_invoice": "Send invoice",
|
||
"mark_as_sent": "Mark as sent",
|
||
"send_failed_title": "Could not send invoice",
|
||
"send_failed_fallback": "Could not send the invoice",
|
||
"send_success_title": "Invoice sent",
|
||
"send_success_default": "The invoice was sent to {email}",
|
||
"mark_success_title": "Invoice marked as sent",
|
||
"mark_success_voucher_created": "The bookkeeping verifikat has been created.",
|
||
"try_again": "Try again."
|
||
},
|
||
"invoice_payment_dialog": {
|
||
"title": "Post payment",
|
||
"title_suffix": " — {number}",
|
||
"description_sek_suffix": " ({amount} SEK)",
|
||
"match_reason_ocr_exact": "Exact OCR match",
|
||
"match_reason_name_amount_fuzzy": "Likely match",
|
||
"match_reason_amount_only": "Possible match",
|
||
"duplicate_title": "Possible duplicate payment",
|
||
"duplicate_one": "An incoming bank transaction looks like it could be this payment. Link it instead of creating a new verifikat, or post anyway if you're sure.",
|
||
"duplicate_many": "{count} incoming bank transactions look like they could be this payment. Link the right one instead of creating a new verifikat, or post anyway if you're sure.",
|
||
"link_transaction": "Link transaction",
|
||
"payment_date_label": "Payment date",
|
||
"debit_label": "Debit",
|
||
"credit_label": "Credit",
|
||
"account_label": "Account",
|
||
"add_row": "Add row",
|
||
"balanced_badge": "Debit = Credit",
|
||
"unbalanced_badge": "Unbalanced ({delta})",
|
||
"cancel": "Cancel",
|
||
"book_anyway": "Post anyway",
|
||
"confirm_and_book": "Confirm & post",
|
||
"load_chart_failed": "Could not load the chart of accounts",
|
||
"no_active_company": "No active company",
|
||
"load_settings_failed": "Could not load company settings",
|
||
"load_dialog_failed_title": "Could not load the bookkeeping dialog",
|
||
"try_again": "Try again.",
|
||
"mark_paid_failed": "Could not mark as paid",
|
||
"booking_failed_title": "Bookkeeping failed",
|
||
"tab_new_payment": "Post new payment",
|
||
"tab_existing_voucher": "Existing journal entry"
|
||
},
|
||
"invoice_link_voucher": {
|
||
"intro": "Pick an existing posted journal entry that credits accounts receivable (1510). No new entry is created — you only link the existing one as the payment.",
|
||
"intro_cash": "Pick an existing posted journal entry that records the payment into a cash/bank account (e.g. 1930). No new entry is created — you only link the existing one as the payment.",
|
||
"search_placeholder": "Search by voucher number or description…",
|
||
"confidence_high": "Strong match",
|
||
"confidence_medium": "Likely match",
|
||
"confidence_low": "Weak match",
|
||
"period_locked": "Locked period",
|
||
"empty_title": "No matching journal entries found",
|
||
"empty_description": "No posted entry credits 1510 in this invoice's currency and date window. Post a new payment instead, or correct the prior bookkeeping first.",
|
||
"empty_description_cash": "No posted entry debits a cash/bank account (19xx) in this invoice's currency and date window. Post a new payment instead, or correct the prior bookkeeping first.",
|
||
"confirmation": "This links voucher {voucher} ({amount}) as the payment for the invoice.",
|
||
"no_new_je_note": "No new bookkeeping is created — the existing journal entry is the payment posting.",
|
||
"cancel": "Cancel",
|
||
"confirm": "Link as payment",
|
||
"link_success_title": "Journal entry linked to invoice",
|
||
"link_success_tx_reconciled": "The matching bank transaction was also linked to the journal entry and will leave the Transactions list.",
|
||
"link_failed_title": "Could not link the journal entry"
|
||
},
|
||
"supplier_invoice_editor": {
|
||
"ore_rounding_label": "Öre rounding",
|
||
"ore_rounding_help": "Round the invoice total to whole kronor",
|
||
"page_title": "Register supplier invoice",
|
||
"no_period_warning": "You're creating a supplier invoice for a fiscal year that doesn't exist ({date}).",
|
||
"no_period_help": "Create the fiscal year first, or change the invoice date — the invoice can't be registered without one.",
|
||
"back_aria": "Back to supplier invoices",
|
||
"back_aria_inbox": "Back to the inbox",
|
||
"loading_inbox": "Loading data from inbox…",
|
||
"inbox_load_failed_title": "Could not load inbox item",
|
||
"inbox_load_failed_description": "The item no longer exists or is unavailable.",
|
||
"unknown_error": "Unknown error.",
|
||
"ai_suggested_supplier": "Suggested supplier (from invoice): {name}",
|
||
"ai_org_number": "Org. no. {orgNumber}",
|
||
"ai_no_org_number": "No organisation number found",
|
||
"ai_supplier_not_in_system": " — supplier is not yet registered.",
|
||
"create_and_select": "Create & select",
|
||
"section_invoice": "Invoice",
|
||
"section_accounting": "Accounting",
|
||
"section_other": "Other",
|
||
"paid_privately_label": "I paid this privately",
|
||
"paid_privately_help_ef": "Booked as a liability from the company to you (2018 Egen insättning). Refund manually later from the company account.",
|
||
"paid_privately_help_ab": "Booked as a liability from the company to you (2893 Skuld till ägare). Refund manually later from the company account.",
|
||
"supplier_label": "Supplier",
|
||
"supplier_placeholder": "Select supplier",
|
||
"add_new_supplier": "+ Add new supplier...",
|
||
"supplier_invoice_number_label": "Supplier's invoice number",
|
||
"supplier_invoice_number_placeholder": "Invoice no. from supplier",
|
||
"invoice_date_label": "Invoice date",
|
||
"due_date_label": "Due date",
|
||
"payment_reference_label": "OCR / Payment reference",
|
||
"payment_reference_placeholder": "OCR-nummer",
|
||
"add_row": "Add row",
|
||
"currency_label": "Currency",
|
||
"exchange_rate_label": "Exchange rate",
|
||
"exchange_rate_to_sek": "(to SEK)",
|
||
"exchange_rate_placeholder": "Fetched from Riksbanken",
|
||
"reverse_charge_label": "Reverse charge",
|
||
"reverse_charge_help": "Intra-EU purchases or construction services — VAT is reported by the buyer.",
|
||
"col_account": "Account",
|
||
"col_description": "Description",
|
||
"col_amount_excl": "Amount (excl.)",
|
||
"col_amount": "Amount",
|
||
"col_vat_rate": "VAT rate",
|
||
"col_vat": "VAT",
|
||
"col_rc_vat_rate": "VAT rate (RC)",
|
||
"col_rc_vat": "Self-assessed VAT",
|
||
"col_debit": "Debit",
|
||
"col_credit": "Credit",
|
||
"vat_rate_presets_aria": "Pick VAT rate from list",
|
||
"description_placeholder": "Description",
|
||
"row_label": "Row {index}",
|
||
"remove_row_aria": "Remove row {index}",
|
||
"ai_totals_label": "From invoice (AI):",
|
||
"ai_net": "Net {amount}",
|
||
"ai_vat": "VAT {amount}",
|
||
"ai_total": "Total {amount}",
|
||
"net_excl_vat": "Net (excl. VAT)",
|
||
"vat_label_short": "VAT",
|
||
"vat_reverse_charge": "VAT (reverse charge, reported by buyer)",
|
||
"total_label": "Total",
|
||
"sum_label": "TOTAL",
|
||
"delivery_date_label": "Delivery date (VAT Act requirement)",
|
||
"notes_label": "Notes",
|
||
"notes_placeholder": "Internal notes about this invoice...",
|
||
"cancel": "Cancel",
|
||
"register_and_mark_paid": "Register & mark as paid",
|
||
"register_invoice": "Register invoice",
|
||
"register_expense": "Register expense",
|
||
"review_and_register": "Review & register",
|
||
"registering": "Registering...",
|
||
"viewer_disabled_tooltip": "You only have read access in this company",
|
||
"review_dialog_title": "Review supplier invoice",
|
||
"review_dialog_warning": "The supplier invoice is registered and a verifikat is booked. The verifikat cannot be edited directly, but can be corrected with a correction verifikat.",
|
||
"review_dialog_confirm": "Confirm & register",
|
||
"new_supplier_dialog_title": "New supplier",
|
||
"new_supplier_name_label": "Name",
|
||
"new_supplier_name_placeholder": "Supplier name",
|
||
"new_supplier_type_label": "Type",
|
||
"supplier_type_swedish": "Swedish company",
|
||
"supplier_type_eu": "EU company",
|
||
"supplier_type_non_eu": "Non-EU",
|
||
"new_supplier_org_number_label": "Organisation number",
|
||
"new_supplier_vat_number_label": "VAT number",
|
||
"new_supplier_address_label": "Address",
|
||
"new_supplier_address_placeholder": "Street address",
|
||
"new_supplier_bankgiro_label": "Bankgiro",
|
||
"new_supplier_plusgiro_label": "Plusgiro",
|
||
"new_supplier_default_account_label": "Default account (expense)",
|
||
"new_supplier_default_account_placeholder": "e.g. 5010",
|
||
"creating": "Creating...",
|
||
"create_supplier_button": "Create supplier",
|
||
"name_missing_title": "Name missing",
|
||
"name_missing_description": "Enter a name for the supplier.",
|
||
"create_supplier_failed_title": "Could not create supplier",
|
||
"supplier_created_title": "Supplier created",
|
||
"supplier_missing_title": "Supplier missing",
|
||
"supplier_missing_description": "Select or create a supplier.",
|
||
"invoice_number_missing_title": "Invoice number missing",
|
||
"invoice_number_missing_description": "Enter the supplier's invoice number.",
|
||
"account_missing_title": "Account missing",
|
||
"account_missing_description": "Select an expense account for line {row}.",
|
||
"expense_registered_title": "Expense registered",
|
||
"invoice_registered_title": "Invoice registered",
|
||
"arrival_number_label": "Arrival number: {number}",
|
||
"warning_title": "Warning",
|
||
"auto_approve_failed_description": "The invoice was created but could not be approved automatically",
|
||
"invoice_registered_and_matched_title": "Invoice registered and matched",
|
||
"invoice_registered_and_matched_description": "Arrival number: {number}. Marked as paid.",
|
||
"invoice_registered_match_failed_title": "Invoice registered — could not match",
|
||
"register_invoice_failed_title": "Could not register invoice",
|
||
"uncredit_failed_title": "Could not undo credit note",
|
||
"uncredit_and_register_success_title": "Credit undone and invoice registered",
|
||
"uncredit_but_register_failed_title": "Credit undone — but the new invoice could not be registered",
|
||
"uncredit_but_register_failed_description": "Invoice {number} has been restored and the number is available. {reason}",
|
||
"duplicate_default_message": "There is already an invoice with this number from this supplier.",
|
||
"duplicate_dialog_title": "Invoice number already in use",
|
||
"show_existing_invoice": "Show existing invoice",
|
||
"uncredit_and_retry": "Undo credit & retry",
|
||
"use_different_number": "Use a different number",
|
||
"processing": "Processing...",
|
||
"reverse_charge_badge": "Reverse charge",
|
||
"review_invoice_number_label": "Invoice no.: {number}",
|
||
"review_currency_rate_suffix": " (rate {rate})",
|
||
"review_sek_amount_at_rate": "SEK amount (at rate {rate})",
|
||
"review_voucher_preview_title": "Verifikat to be booked",
|
||
"review_voucher_in_sek_suffix": "(in SEK)",
|
||
"review_vat_inline": "{rate}% VAT ({amount})",
|
||
"review_payment_reference_inline": "Payment reference: {reference}",
|
||
"debit_short": "D {amount}",
|
||
"credit_short": "C {amount}",
|
||
"debit_credit_short": "D {debit} / C {credit}",
|
||
"account_2440": "Accounts payable",
|
||
"account_2641": "Input VAT",
|
||
"account_2645": "Calculated input VAT, foreign purchase",
|
||
"account_2647": "Calculated input VAT, domestic reverse charge",
|
||
"account_2614": "Output VAT, reverse charge 25%",
|
||
"account_2624": "Output VAT, reverse charge 12%",
|
||
"account_2634": "Output VAT, reverse charge 6%",
|
||
"account_1710": "Prepaid rent",
|
||
"account_1720": "Prepaid leasing fees",
|
||
"account_1730": "Prepaid insurance premiums",
|
||
"account_1740": "Prepaid interest",
|
||
"account_1790": "Other prepaid expenses",
|
||
"review_accrual_line_info": "Accrued {from} – {to}"
|
||
},
|
||
"supplier_invoice_detail": {
|
||
"ore_rounding": "Öre rounding",
|
||
"back": "Back",
|
||
"back_aria": "Back to supplier invoices",
|
||
"viewer_disabled_tooltip": "You only have read access in this company",
|
||
"not_found": "Invoice not found",
|
||
"arrival_header": "Arrival #{number}",
|
||
"header_subtitle": "{supplier} | Invoice {number}",
|
||
"status_registered": "Registered",
|
||
"status_approved": "Approved",
|
||
"status_paid": "Paid",
|
||
"status_partially_paid": "Partly paid",
|
||
"status_overdue": "Overdue",
|
||
"status_disputed": "Disputed",
|
||
"status_credited": "Credited",
|
||
"status_reversed": "Reversed",
|
||
"approve": "Approve",
|
||
"mark_paid": "Mark as paid",
|
||
"credit_note_button": "Credit note",
|
||
"uncredit_button": "Undo credit",
|
||
"load_failed_title": "Could not load supplier invoice",
|
||
"approve_failed_title": "Approval failed",
|
||
"approved_title": "Approved",
|
||
"approved_description": "The invoice has been approved",
|
||
"payment_failed_title": "Payment failed",
|
||
"paid_title": "Paid",
|
||
"partial_payment_title": "Partial payment registered",
|
||
"amount_registered_description": "{amount} kr registered",
|
||
"credit_confirm_title": "Register credit note",
|
||
"credit_confirm_description": "A credit note is created that reverses the original invoice. This action cannot be undone.",
|
||
"credit_confirm_label": "Register credit note",
|
||
"credit_failed_title": "Credit failed",
|
||
"credit_success_title": "Credit note registered",
|
||
"delete_confirm_title": "Delete invoice",
|
||
"delete_confirm_description": "The invoice and its data will be removed permanently. This action cannot be undone.",
|
||
"delete_confirm_label": "Delete",
|
||
"delete_failed_title": "Could not delete invoice",
|
||
"deleted_title": "Deleted",
|
||
"uncredit_confirm_title": "Undo credit note",
|
||
"uncredit_confirm_description": "The credit note is removed and its verifikat is reversed (storno). The original invoice is restored so the invoice number becomes available again.",
|
||
"uncredit_confirm_label": "Undo credit note",
|
||
"uncredit_failed_title": "Could not undo credit note",
|
||
"uncredit_success_title": "Credit undone",
|
||
"uncredit_success_description": "The original invoice has been restored and the number is available.",
|
||
"credit_note_banner_title": "This is a credit note",
|
||
"credit_note_banner_prefix": "It is linked to",
|
||
"credit_note_banner_link": "invoice {number}",
|
||
"credit_note_banner_original_fallback": "the original invoice",
|
||
"credit_note_banner_suffix": ". To remove the credit note and free up the invoice number, go to the original and select \"Undo credit\".",
|
||
"invoice_info_title": "Invoice information",
|
||
"arrival_number_label": "Arrival number",
|
||
"invoice_number_label": "Invoice number",
|
||
"invoice_date_label": "Invoice date",
|
||
"due_date_label": "Due date",
|
||
"delivery_date_label": "Delivery date",
|
||
"ocr_reference_label": "OCR/reference",
|
||
"reverse_charge_badge": "Reverse charge",
|
||
"badge_accrued": "Accrued",
|
||
"accrual_line_info": "Accrued {from} – {to}",
|
||
"amounts_title": "Amounts",
|
||
"net_excl_vat": "Net (excl. VAT)",
|
||
"vat_label": "VAT",
|
||
"total_label": "Total",
|
||
"paid_label": "Paid",
|
||
"remaining_label": "Remaining to pay",
|
||
"supplier_section_title": "Supplier",
|
||
"org_number_inline": "Org. no.: {number} | ",
|
||
"rows_title": "Rows",
|
||
"col_description": "Description",
|
||
"col_quantity": "Qty",
|
||
"col_unit": "Unit",
|
||
"col_unit_price": "Unit price",
|
||
"col_account": "Account",
|
||
"col_vat_rate": "VAT %",
|
||
"col_amount": "Amount",
|
||
"col_vat": "VAT",
|
||
"vat_inline": "{rate}% VAT",
|
||
"vat_amount_inline": "VAT {amount}",
|
||
"payment_history_title": "Payment history",
|
||
"col_date": "Date",
|
||
"col_amount_short": "Amount",
|
||
"col_voucher": "Verifikat",
|
||
"col_note": "Note",
|
||
"vouchers_title": "Verifikat (sambandskrav)",
|
||
"registration_voucher": "Registration verifikat",
|
||
"no_registration_voucher": "No registration verifikat (cash method)",
|
||
"payment_voucher": "Payment verifikat",
|
||
"notes_title": "Notes",
|
||
"pay_dialog_title": "Mark as paid",
|
||
"tab_new_payment": "New payment",
|
||
"tab_existing_voucher": "Existing voucher",
|
||
"payment_date_label": "Payment date",
|
||
"payment_amount_label": "Amount to pay",
|
||
"remaining_to_pay": "Remaining to pay: {amount} {currency}",
|
||
"cancel": "Cancel",
|
||
"register_payment": "Register payment",
|
||
"processing": "Processing...",
|
||
"duplicate_payment_title": "Possible duplicate payment",
|
||
"duplicate_payment_description_one": "We found a bank transaction that appears to match this payment. Link the existing transaction instead of creating a new verifikat.",
|
||
"duplicate_payment_description_many": "We found bank transactions that appear to match this payment. Link the existing transaction instead of creating a new verifikat.",
|
||
"bank_transaction_fallback": "Bank transaction",
|
||
"go_to": "Go to",
|
||
"create_voucher_anyway": "Create new verifikat anyway"
|
||
},
|
||
"supplier_detail": {
|
||
"back": "Back",
|
||
"back_aria": "Back to suppliers",
|
||
"viewer_disabled_tooltip": "You only have read access in this company",
|
||
"not_found": "Supplier not found",
|
||
"type_swedish": "Swedish company or organisation",
|
||
"type_eu": "EU company",
|
||
"type_non_eu": "Outside EU",
|
||
"org_number_inline": " | Org. no.: {number}",
|
||
"edit": "Edit",
|
||
"edit_dialog_title": "Edit supplier",
|
||
"load_failed_title": "Could not load supplier",
|
||
"update_failed_title": "Could not update supplier",
|
||
"saved_title": "Saved",
|
||
"saved_description": "The supplier has been updated",
|
||
"delete_confirm_title": "Delete supplier",
|
||
"delete_confirm_description": "\"{name}\" and its data will be removed permanently. This action cannot be undone.",
|
||
"delete_confirm_label": "Delete",
|
||
"delete_failed_title": "Could not delete supplier",
|
||
"deleted_title": "Deleted",
|
||
"deleted_description": "The supplier has been removed",
|
||
"outstanding": "Outstanding",
|
||
"total_paid": "Total paid",
|
||
"invoice_count": "Invoice count",
|
||
"contact_section_title": "Contact details",
|
||
"email_inline": "Email: {email}",
|
||
"phone_inline": "Phone: {phone}",
|
||
"vat_inline": "VAT: {vat}",
|
||
"payment_section_title": "Payment details",
|
||
"bankgiro_inline": "Bankgiro: {value}",
|
||
"plusgiro_inline": "Plusgiro: {value}",
|
||
"iban_inline": "IBAN: {value}",
|
||
"bic_inline": "BIC: {value}",
|
||
"payment_terms_inline": "Payment terms: {days} days",
|
||
"currency_inline": "Currency: {currency}",
|
||
"expense_account_inline": "Expense account: {account}",
|
||
"invoices_section_title": "Invoices",
|
||
"new_invoice": "New invoice",
|
||
"no_invoices": "No invoices registered for this supplier",
|
||
"col_arrival": "Arrival",
|
||
"col_invoice_number": "Invoice no.",
|
||
"col_date": "Date",
|
||
"col_due": "Due",
|
||
"col_amount": "Amount",
|
||
"col_remaining": "Remaining",
|
||
"col_status": "Status",
|
||
"remaining_inline": "Remaining: {amount} kr",
|
||
"status_registered": "Registered",
|
||
"status_approved": "Approved",
|
||
"status_paid": "Paid",
|
||
"status_partially_paid": "Partly paid",
|
||
"status_overdue": "Overdue",
|
||
"status_credited": "Credited"
|
||
},
|
||
"retention_notice": {
|
||
"company_title": "Bookkeeping is retained for 7 years",
|
||
"company_body_prefix": "Under Swedish accounting law (BFL 7 kap. 2§), accounting records must be retained for 7 years. When you delete the company it is hidden in {appName}, but journal entries, documents and bookkeeping are kept safely until the legal retention period expires. You can ",
|
||
"company_body_link": "download a backup",
|
||
"company_body_suffix": " before continuing.",
|
||
"account_title": "Account deletion is permanent",
|
||
"account_body_prefix": "Your account is anonymized and you are signed out of all devices. Accounting records from companies you owned are retained safely for 7 years under BFL 7 kap. 2§. You cannot create a new account with the same email address — contact support if you want to reactivate the account in the future. Feel free to download a ",
|
||
"account_body_link": "backup",
|
||
"account_body_suffix": " before continuing."
|
||
},
|
||
"support_link": {
|
||
"default_label": "Contact support",
|
||
"dialog_title": "Contact support",
|
||
"dialog_description": "Describe your issue and we'll get back to you as soon as we can.",
|
||
"thanks": "Thank you! We've received your message.",
|
||
"placeholder": "Describe what you need help with...",
|
||
"char_count": "{count}/5000 characters",
|
||
"cancel": "Cancel",
|
||
"send": "Send",
|
||
"sending": "Sending...",
|
||
"send_failed_title": "Could not send",
|
||
"send_failed_fallback": "Please try again."
|
||
},
|
||
"journal_list": {
|
||
"mode_vouchers": "Vouchers",
|
||
"mode_drafts": "Drafts",
|
||
"show_correction_chain": "Show storno & corrected entries",
|
||
"loading": "Loading journal entries...",
|
||
"empty_title": "No journal entries",
|
||
"empty_description": "Journal entries are created automatically from invoicing and transaction posting, or manually via the \"New entry\" tab.",
|
||
"show_missing": "Show entries missing documents",
|
||
"sort_date_desc": "Date, newest first",
|
||
"sort_date_asc": "Date, oldest first",
|
||
"sort_voucher_asc": "Voucher, A1 first",
|
||
"sort_voucher_desc": "Voucher, latest first",
|
||
"date_from_placeholder": "From YYYY-MM-DD",
|
||
"date_to_placeholder": "To YYYY-MM-DD",
|
||
"filter": "Filter",
|
||
"filter_with_count": "Filter ({count} active)",
|
||
"filter_dialog_title": "Filter journal entries",
|
||
"filter_clear_all": "Clear all filters",
|
||
"filter_done": "Done",
|
||
"filter_section_period": "Fiscal year",
|
||
"filter_section_sort": "Sort order",
|
||
"filter_section_series": "Voucher series",
|
||
"filter_section_date": "Date range",
|
||
"clear_date_filter": "Clear date filter",
|
||
"scope_label": "Showing:",
|
||
"scope_all_years": "All fiscal years",
|
||
"out_of_period_label": "Subsequent",
|
||
"out_of_period_tooltip": "Posted in a later fiscal year, but relates to the selected year (e.g. payment of an invoice issued in the selected year).",
|
||
"out_of_period_tooltip_mobile": "Posted in a later fiscal year, but relates to the selected year.",
|
||
"attachment_count_tooltip": "{count} documents",
|
||
"missing_attachment_tooltip": "Document missing",
|
||
"no_lines": "No entry lines found for this journal entry.",
|
||
"debit": "Debit",
|
||
"credit": "Credit",
|
||
"sum_debit": "Total debit",
|
||
"sum_credit": "Total credit",
|
||
"post": "Post",
|
||
"show_details": "Show details",
|
||
"create_correction": "Create correction entry",
|
||
"copy": "Copy",
|
||
"copy_voucher_tooltip": "Copy voucher",
|
||
"search_placeholder": "Search description...",
|
||
"clear_search": "Clear search",
|
||
"no_results_title": "No matches",
|
||
"no_results_description": "No journal entries match your filters. Adjust your search or clear the filters.",
|
||
"previous": "Previous",
|
||
"next": "Next",
|
||
"first_page": "First page",
|
||
"last_page": "Last page",
|
||
"page_of": "Page {page} of {total}",
|
||
"page_size_label": "Rows per page",
|
||
"page_size_all": "All",
|
||
"showing_range": "Showing {from}–{to} of {total}",
|
||
"showing_all": "Showing all {total}",
|
||
"read_only_tooltip": "You have read-only access to this company",
|
||
"toast_posted_title": "Journal entry posted",
|
||
"toast_posted_description": "Journal entry {voucher} has been posted.",
|
||
"toast_post_failed": "Could not post",
|
||
"toast_post_failed_generic": "Could not post journal entry",
|
||
"view_attachments": "View attachments",
|
||
"no_doc_required_toggle": "No supporting document required",
|
||
"no_doc_required_indicator_tooltip": "Marked as not requiring a supporting document",
|
||
"no_doc_required_reason_label": "Reason",
|
||
"no_doc_required_reason_add": "Add reason (optional)",
|
||
"no_doc_required_reason_placeholder": "E.g. bank fee, interest, internal transfer",
|
||
"no_doc_required_save_reason": "Save",
|
||
"no_doc_required_save_failed": "Could not save",
|
||
"no_doc_required_suggestion_bank_fee": "Bank fee",
|
||
"no_doc_required_suggestion_interest": "Interest",
|
||
"no_doc_required_suggestion_internal_transfer": "Internal transfer",
|
||
"no_doc_required_suggestion_tax_payment": "Tax payment",
|
||
"no_doc_required_suggestion_salary": "Salary",
|
||
"account_column": "Account",
|
||
"description_column": "Description",
|
||
"sum_label": "Total",
|
||
"batch_select_all": "Select all ({count})",
|
||
"batch_select_row": "Select entry",
|
||
"batch_selected_count": "{count} selected",
|
||
"batch_mark_no_doc": "Mark as no document required",
|
||
"batch_clear_selection": "Clear",
|
||
"batch_no_doc_done_title": "Marked as no document required",
|
||
"batch_no_doc_done_description": "{count} entries updated.",
|
||
"batch_mark_all_missing": "Mark all without documents",
|
||
"bulk_mark_title": "Mark all without documents",
|
||
"bulk_mark_counting": "Counting entries...",
|
||
"bulk_mark_none": "No entries without documents match the filter.",
|
||
"bulk_mark_body": "{count} entries without a supporting document match the current filter. They will be marked \"No supporting document required\". You can undo this per entry afterwards.",
|
||
"bulk_mark_confirm": "Mark {count}",
|
||
"bulk_cancel": "Cancel"
|
||
},
|
||
"attachment_preview_sheet": {
|
||
"title": "Attachments",
|
||
"empty": "No attachments",
|
||
"open_in_new_tab": "Open in new tab",
|
||
"not_previewable": "Preview is not available for this file type.",
|
||
"remove": "Remove",
|
||
"replace": "Replace with new version",
|
||
"corrupt_title": "File appears to be corrupt",
|
||
"corrupt_body": "The file cannot be read as a PDF. Upload a new version to replace it — the old one is kept in the version history.",
|
||
"corrupt_replace_cta": "Upload new version",
|
||
"integrity_unknown": "File integrity could not be verified — try again later if the preview does not appear."
|
||
},
|
||
"journal_attachments": {
|
||
"loading": "Loading documents...",
|
||
"title": "Documents",
|
||
"add": "Add document",
|
||
"empty": "No documents attached.",
|
||
"download": "Download",
|
||
"remove": "Remove",
|
||
"replace": "Replace with new version",
|
||
"remove_confirm_title": "Remove document",
|
||
"remove_confirm_body": "Remove {file}? This cannot be undone.",
|
||
"remove_confirm_cta": "Remove",
|
||
"remove_blocked_title": "Document cannot be removed",
|
||
"remove_blocked_body": "This document is attached to a verifikation and constitutes räkenskapsinformation under the Swedish Bookkeeping Act (BFL 7 kap 2§). Räkenskapsinformation must be retained for at least 7 years and cannot be deleted.",
|
||
"remove_blocked_hint": "If the document needs correction, upload a new version. The existing one is preserved in the version history.",
|
||
"remove_blocked_replace_cta": "Upload new version",
|
||
"remove_blocked_cancel_cta": "Close",
|
||
"replace_uploading": "Replacing...",
|
||
"remove_failed": "Could not remove the document.",
|
||
"replace_failed": "Could not upload new version.",
|
||
"choose_from_inbox": "Choose from inbox",
|
||
"picker_title": "Choose a document from the inbox",
|
||
"picker_description": "Documents received by email or upload that haven't been used yet.",
|
||
"picker_search_placeholder": "Search supplier or file name…",
|
||
"picker_results": "{count}",
|
||
"picker_empty": "No unused documents in the inbox.",
|
||
"picker_empty_search": "No documents match \"{query}\".",
|
||
"picker_source_email": "Email",
|
||
"picker_source_upload": "Upload",
|
||
"picker_linked": "Document attached.",
|
||
"picker_link_failed": "Could not attach the document.",
|
||
"picker_preview": "Preview",
|
||
"picker_attach": "Attach document",
|
||
"picker_close": "Close",
|
||
"picker_preview_unavailable": "Preview could not be displayed."
|
||
},
|
||
"journal_status": {
|
||
"status_draft": "Draft",
|
||
"status_posted": "Posted",
|
||
"status_reversed": "Reversed",
|
||
"status_cancelled": "Cancelled",
|
||
"source_storno": "Storno",
|
||
"source_correction": "Correction",
|
||
"source_label_manual": "Manual",
|
||
"source_label_bank_transaction": "Bank transaction",
|
||
"source_label_invoice_created": "Invoice created",
|
||
"source_label_invoice_paid": "Invoice payment",
|
||
"source_label_credit_note": "Credit note",
|
||
"source_label_salary_payment": "Salary",
|
||
"source_label_opening_balance": "Opening balance",
|
||
"source_label_year_end": "Year-end close",
|
||
"source_label_storno": "Storno",
|
||
"source_label_correction": "Correction",
|
||
"source_label_import": "Import",
|
||
"source_label_system": "System",
|
||
"source_label_supplier_invoice_registered": "Supplier invoice",
|
||
"source_label_supplier_invoice_paid": "Supplier payment",
|
||
"source_label_supplier_invoice_cash_payment": "Cash payment",
|
||
"source_label_currency_revaluation": "Currency revaluation",
|
||
"source_label_reminder_fee": "Reminder fee"
|
||
},
|
||
"journal_correction": {
|
||
"title": "Correction chain",
|
||
"info": "Posted journal entries cannot be edited directly. Instead, a storno entry is created that reverses the original, and a new correction entry with the correct details.",
|
||
"role_storno": "Storno",
|
||
"role_correction": "Correction",
|
||
"role_original": "Original",
|
||
"current": "Current"
|
||
},
|
||
"journal_detail": {
|
||
"edit_draft": "Edit",
|
||
"back": "Back to bookkeeping",
|
||
"loading": "Loading journal entry...",
|
||
"error_not_found": "Journal entry not found",
|
||
"error_load_failed": "Could not fetch journal entry",
|
||
"post": "Post",
|
||
"delete_draft": "Delete draft",
|
||
"delete_entry": "Delete journal entry",
|
||
"create_correction": "Create correction entry",
|
||
"copy_entry": "Copy journal entry",
|
||
"edit_entry": "Edit",
|
||
"correct_menu": "Correct",
|
||
"correct_lines": "Correct lines",
|
||
"correct_date": "Correct date",
|
||
"details_title": "Journal entry details",
|
||
"field_date": "Date",
|
||
"field_posted_at": "Posted",
|
||
"field_type": "Type",
|
||
"field_source_voucher": "Original voucher",
|
||
"field_note": "Note",
|
||
"edit_note_aria": "Edit note",
|
||
"note_placeholder": "Internal note...",
|
||
"no_note": "No note",
|
||
"summary_title": "Summary",
|
||
"summary_debit": "Debit",
|
||
"summary_credit": "Credit",
|
||
"summary_lines": "Lines",
|
||
"attachments_title": "Documents",
|
||
"attachments_count": "{count} documents",
|
||
"no_attachments": "No documents attached",
|
||
"references_count": "{count, plural, one {# reference} other {# references}}",
|
||
"references_title": "Linked supporting documents",
|
||
"references_subtitle": "Reference to the invoice that identifies the transaction — part of the audit trail.",
|
||
"reference_invoice": "Customer invoice {number}",
|
||
"reference_supplier_invoice": "Supplier invoice {number}",
|
||
"currency_title": "Currency conversion",
|
||
"currency_rate": "Rate",
|
||
"currency_original_amount": "Original amount",
|
||
"lines_title": "Entry lines",
|
||
"col_account": "Account",
|
||
"col_description": "Description",
|
||
"col_debit": "Debit",
|
||
"col_credit": "Credit",
|
||
"sum": "Total",
|
||
"history_title": "Correction history",
|
||
"read_only_tooltip": "You have read-only access to this company",
|
||
"toast_posted_title": "Journal entry posted",
|
||
"toast_posted_description": "Journal entry {voucher} has been posted.",
|
||
"toast_post_failed": "Could not post",
|
||
"toast_post_failed_generic": "Could not post journal entry",
|
||
"toast_delete_draft_title": "Draft deleted",
|
||
"toast_delete_entry_title": "Journal entry deleted",
|
||
"toast_delete_draft_description": "The draft has been removed.",
|
||
"toast_delete_entry_description": "Journal entry {voucher} has been deleted.",
|
||
"toast_delete_failed": "Could not delete",
|
||
"toast_delete_failed_generic": "Could not delete journal entry",
|
||
"toast_save_note_failed": "Could not save note",
|
||
"delete_confirm_label": "Delete permanently",
|
||
"delete_warning_draft": "The draft has never been posted and can be removed without affecting the voucher sequence. Any linked documents are kept but unlinked. This action cannot be undone.",
|
||
"delete_warning_entry": "Journal entry {voucher} will be permanently deleted. Any linked documents are kept but unlinked. This action cannot be undone.",
|
||
"delete_dialog_heading": "Permanent deletion",
|
||
"delete_dialog_draft_body": "The draft and its entry lines are removed. Linked invoices and transactions are not affected — they remain unposted. Documents (receipts, files) are kept but unlinked.",
|
||
"delete_dialog_entry_body": "The journal entry and its lines are removed. Linked transactions and invoices keep their data but are marked as unposted. Documents (receipts, files) are kept but unlinked."
|
||
},
|
||
"journal_form": {
|
||
"save_edit": "Save changes",
|
||
"toast_updated_title": "Draft updated",
|
||
"toast_updated_description": "Your changes to the draft were saved.",
|
||
"toast_update_failed": "Could not save changes",
|
||
"card_title": "New journal entry",
|
||
"fiscal_year": "Fiscal year",
|
||
"fiscal_year_placeholder": "Select period",
|
||
"date": "Date",
|
||
"description": "Description",
|
||
"description_placeholder": "Entry text...",
|
||
"internal_note": "Internal note",
|
||
"internal_note_optional": "(optional)",
|
||
"internal_note_placeholder": "E.g. reason for posting, reference to email, etc.",
|
||
"series": "Series",
|
||
"no_period_warning": "No fiscal year matches the date {date}",
|
||
"no_period_help": "Create a fiscal year that covers this date so you can post it.",
|
||
"create_period": "Create fiscal year",
|
||
"currency": "Currency",
|
||
"exchange_rate_label": "Exchange rate (1 {currency} = ? SEK)",
|
||
"amount_in_currency_label": "Amount in {currency}",
|
||
"col_account": "Account",
|
||
"col_description": "Description",
|
||
"col_debit": "Debit",
|
||
"col_credit": "Credit",
|
||
"col_saldo": "Balance (before)",
|
||
"saldo_label": "Balance (before)",
|
||
"line_description_placeholder": "Line text...",
|
||
"sum": "Total",
|
||
"sum_d": "D: {amount}",
|
||
"sum_k": "C: {amount}",
|
||
"add_line": "Add line",
|
||
"attachments_label": "Documents",
|
||
"difference": "Difference: {amount}",
|
||
"save_draft": "Save as draft",
|
||
"review_and_create": "Review & create",
|
||
"save_draft_tooltip": "Saves as a draft without assigning a voucher number",
|
||
"clear_all": "Clear",
|
||
"clear_all_tooltip": "Clear all fields",
|
||
"clear_all_confirm_title": "Are you sure you want to clear everything?",
|
||
"clear_all_confirm_body": "Everything you've entered will be cleared and can't be restored.",
|
||
"clear_all_cancel": "Cancel",
|
||
"clear_all_confirm": "Clear everything",
|
||
"read_only_tooltip": "You have read-only access to this company",
|
||
"validation_description": "Enter a description",
|
||
"validation_period": "Select a fiscal period",
|
||
"validation_no_matching_period": "Create a fiscal year that matches the date",
|
||
"validation_uploading": "Wait until files have finished uploading",
|
||
"validation_incomplete_lines": "All lines with an amount must have an account (and vice versa)",
|
||
"validation_min_lines": "At least two lines with account and amount are required",
|
||
"review_title": "Review journal entry",
|
||
"review_title_with_voucher": "Review journal entry ({voucher})",
|
||
"review_warning": "A journal entry is created and cannot be edited afterwards. Corrections are made via storno.",
|
||
"review_back": "Back",
|
||
"review_confirm": "Create entry",
|
||
"no_doc_dialog_title": "Document missing",
|
||
"no_doc_dialog_warning": "No document attached. Under the Swedish Accounting Act (BFL 5 kap. 6-7 §§) every accounting entry must have a verification as supporting document. You can attach one now or continue without.",
|
||
"no_doc_confirm": "Post without document",
|
||
"no_doc_body": "Review the details before confirming.",
|
||
"toast_created_title": "Journal entry created",
|
||
"toast_created_description": "Journal entry {voucher} has been created.",
|
||
"toast_create_failed": "Could not create journal entry",
|
||
"toast_draft_saved_title": "Draft saved",
|
||
"toast_draft_saved_description": "The draft can be posted from the bookkeeping page.",
|
||
"toast_save_draft_failed": "Could not save draft",
|
||
"toast_attach_failed_title": "Documents could not be attached",
|
||
"toast_attach_failed_description": "{count} file(s) could not be linked to the journal entry. Try again from the bookkeeping page.",
|
||
"fill_balance_tooltip": "Double-click to fill the balancing amount",
|
||
"fill_balance_hint": "Tip: double-click debit or credit to fill the remaining difference.",
|
||
"review_month_changed": "Note: different month than the previous voucher ({prev} → {current}).",
|
||
"review_period_locked": "This period is closed or locked — posting may be rejected."
|
||
},
|
||
"chart_of_accounts": {
|
||
"class_1": "Assets",
|
||
"class_2": "Equity and liabilities",
|
||
"class_3": "Operating revenue",
|
||
"class_4": "Purchases of goods and materials",
|
||
"class_5": "Other external costs",
|
||
"class_6": "Other external costs",
|
||
"class_7": "Personnel costs and depreciation",
|
||
"class_8": "Financial items and result",
|
||
"type_asset": "Asset",
|
||
"type_liability": "Liability",
|
||
"type_equity": "Equity",
|
||
"type_revenue": "Revenue",
|
||
"type_expense": "Expense",
|
||
"type_untaxed_reserves": "Untaxed reserves",
|
||
"loading": "Loading chart of accounts...",
|
||
"tab_my_accounts": "My accounts",
|
||
"tab_bas_catalog": "BAS catalog",
|
||
"add_own": "Custom account",
|
||
"hide_k2_excluded": "Hide K2-excluded",
|
||
"search_placeholder": "Search account (number or name)...",
|
||
"class_heading": "Class {cls}: {label}",
|
||
"col_account": "Account",
|
||
"col_name": "Name",
|
||
"col_sru": "SRU",
|
||
"col_type": "Type",
|
||
"col_active": "Active",
|
||
"col_status": "Status",
|
||
"system_badge": "System",
|
||
"activated": "Activated",
|
||
"add": "Add",
|
||
"active_count_label": "{active}/{total} active",
|
||
"no_matches": "No accounts match the search",
|
||
"no_accounts": "No accounts in the chart",
|
||
"delete_confirm": "Delete account {number} {name}?",
|
||
"toast_account_deleted": "Account deleted",
|
||
"toast_delete_failed": "Could not delete the account",
|
||
"toast_update_failed": "Could not update the account",
|
||
"toast_activate_failed": "Could not activate the account",
|
||
"toast_activated_title": "Account activated",
|
||
"toast_activated_description": "Account {number} has been added to your chart of accounts"
|
||
},
|
||
"tic_workspace": {
|
||
"toast_settings_failed": "Could not fetch settings",
|
||
"toast_profile_failed": "Could not fetch company profile",
|
||
"toast_unexpected_error": "An unexpected error occurred",
|
||
"no_org_number_title": "No organisation number",
|
||
"no_org_number_description": "Enter an organisation number under Settings to view the company profile.",
|
||
"go_to_settings": "Go to Settings",
|
||
"settings": "Settings",
|
||
"retry": "Try again",
|
||
"fetch_failed_title": "Could not fetch company profile",
|
||
"fetch_failed_description": "Check that the organisation number in settings is correct and try again.",
|
||
"deregistered": "Deregistered",
|
||
"registered_for": "Registered for",
|
||
"reg_f_tax": "F-skatt",
|
||
"reg_vat": "Moms",
|
||
"reg_employer": "Employer",
|
||
"sni_codes": "SNI-koder",
|
||
"bank_accounts": "Bank details",
|
||
"purpose": "Activity",
|
||
"employees_range": "Employees: {range}",
|
||
"turnover_range": "Turnover: {range}",
|
||
"updated_ago": "Updated {ago}",
|
||
"time_just_now": "just now",
|
||
"time_minutes_ago": "{n} min ago",
|
||
"time_hours_ago": "{n} h ago",
|
||
"time_days_ago": "{n, plural, one {# day ago} other {# days ago}}",
|
||
"latest_closing": "Latest annual report",
|
||
"net_sales": "Net sales",
|
||
"operating_profit": "Operating profit",
|
||
"total_assets": "Total assets",
|
||
"employees": "Employees",
|
||
"operating_margin": "Operating margin",
|
||
"equity_ratio": "Equity ratio",
|
||
"no_financials": "No financial data available.",
|
||
"annual_reports": "Annual reports",
|
||
"col_period": "Period",
|
||
"col_title": "Title",
|
||
"col_filed": "Filed",
|
||
"col_audited": "Audited",
|
||
"col_audit_opinion": "Audit opinion",
|
||
"status_section": "Status",
|
||
"status_no_entries": "No status entries on file.",
|
||
"fiscal_year_section": "Fiscal year",
|
||
"fiscal_year_current": "Current: {start} – {end}",
|
||
"fiscal_year_changed": "Fiscal year has been changed {n, plural, one {# time} other {# times}}.",
|
||
"signatory_section": "Authorised signatories",
|
||
"signatory_empty": "No signatory rules on file at TIC.",
|
||
"board_section": "Board & officers",
|
||
"board_summary_members": "{n, plural, one {# board member} other {# board members}}",
|
||
"board_summary_deputies": "{n, plural, one {# deputy} other {# deputies}}",
|
||
"board_vacancy": "Board has a vacancy",
|
||
"board_missing_ceo": "CEO position vacant since {date}",
|
||
"board_missing_auditor": "Auditor position vacant since {date}",
|
||
"board_no_representatives": "No active officers on file.",
|
||
"col_name": "Name",
|
||
"col_position": "Role",
|
||
"col_since": "Since",
|
||
"payroll_section": "Payroll history",
|
||
"payroll_empty": "No payroll history reported to Skatteverket.",
|
||
"col_payroll_period": "Period",
|
||
"col_payroll_employees": "Employees",
|
||
"col_payroll_tax": "Tax withheld",
|
||
"col_payroll_personnel_costs": "Personnel costs",
|
||
"col_payroll_deviation": "Deviation vs AR",
|
||
"col_payroll_late_fees": "Late fees"
|
||
},
|
||
"extensions": {
|
||
"page_title": "Extensions",
|
||
"page_description": "Extend your bookkeeping system with tools and industry-specific features.",
|
||
"industry_tools": "Industry tools",
|
||
"description_heading": "Description",
|
||
"data_source_heading": "Data source",
|
||
"reads_from": "Reads from: {tables}",
|
||
"open": "Open",
|
||
"breadcrumb": "Extensions",
|
||
"extension_count": "{count} extensions",
|
||
"data_pattern_core": "Uses bookkeeping data",
|
||
"data_pattern_manual": "Manual entry",
|
||
"data_pattern_both": "Bookkeeping data + manual entry",
|
||
"category_accounting": "Accounting & Tax",
|
||
"category_reports": "Industry reports",
|
||
"category_import": "Smart import",
|
||
"category_operations": "Tools",
|
||
"sector_general_name": "General tools",
|
||
"sector_general_description": "Tools that suit any business",
|
||
"ext_enable_banking_name": "Bank integration (PSD2)",
|
||
"ext_enable_banking_description": "Automatic bank transaction sync via PSD2",
|
||
"ext_enable_banking_long_description": "Connect your bank account directly and sync transactions automatically via secure PSD2 bank integration. Supports most Swedish banks.",
|
||
"ext_email_name": "Email (Resend)",
|
||
"ext_email_description": "Send invoices and reminders via email",
|
||
"ext_email_long_description": "Enables email features: send invoices to customers, automatic payment reminders (15/30/45 days), and email notifications. Requires a Resend account with a verified domain.",
|
||
"ext_arcim_migration_name": "System migration",
|
||
"ext_arcim_migration_description": "Migrate bookkeeping from Fortnox, Visma, Bokio, Björn Lundén or Briox",
|
||
"ext_arcim_migration_long_description": "Move all bookkeeping data from your old system to accounted. Imports chart of accounts, vouchers, customers, suppliers and open invoices automatically via a secure API integration directly with the provider.",
|
||
"ext_tic_name": "Company information",
|
||
"ext_tic_description": "Fetch company information automatically at signup",
|
||
"ext_tic_long_description": "Auto-fill company details by entering an organization number. Retrieves address, VAT registration, F-tax status and bank details from public registries via TIC.",
|
||
"ext_mcp_server_name": "MCP server (API)",
|
||
"ext_mcp_server_description": "Do bookkeeping via Claude, Cursor or another MCP client",
|
||
"ext_mcp_server_long_description": "Exposes accounted's bookkeeping engine as MCP tools (Model Context Protocol). Connect your MCP client with an API key and do bookkeeping through conversation: list uncategorized transactions, book them, create invoices.",
|
||
"ext_cloud_backup_name": "Cloud sync",
|
||
"ext_cloud_backup_description": "Sync backups to your own cloud storage",
|
||
"ext_cloud_backup_long_description": "Connect your Google Drive account and upload a full backup with one click. Accounted creates a ZIP with SIE files, receipts and processing history and uploads it to a dedicated folder in your Drive. Perfect for meeting your own redundancy requirements.",
|
||
"ext_skatteverket_name": "Skatteverket integration",
|
||
"ext_skatteverket_description": "Submit the VAT declaration directly to Skatteverket via BankID.",
|
||
"ext_skatteverket_long_description": "Connect to Skatteverket with BankID and submit your VAT declaration directly from accounted. Save drafts, validate, lock and sign — without leaving the app.",
|
||
"ext_invoice_inbox_name": "Document inbox",
|
||
"ext_invoice_inbox_description": "Forward supplier invoices to a unique address — documents land here with extracted fields",
|
||
"ext_invoice_inbox_long_description": "Each company gets a unique invoice inbox address. Invoices sent there are captured automatically and fields such as org. no., OCR, bankgiro, amount and due date are extracted deterministically from the PDF text. No AI calls, no cloud services beyond Resend for email delivery."
|
||
},
|
||
"fiscal_year": {
|
||
"label": "Fiscal year",
|
||
"placeholder": "Select fiscal year",
|
||
"loading": "Loading…",
|
||
"all_years": "All fiscal years",
|
||
"suffix_locked": " — locked",
|
||
"suffix_closed": " — closed",
|
||
"badge_locked": "Locked",
|
||
"badge_closed": "Closed",
|
||
"tooltip_locked": "The fiscal year is locked — no journal entries can be added or changed",
|
||
"tooltip_closed": "The fiscal year is closed (year-end filed) — can be reopened by an admin"
|
||
},
|
||
"kpi": {
|
||
"title": "KPIs",
|
||
"fetch_failed": "Could not fetch KPI data",
|
||
"customize": "Customize",
|
||
"empty_no_kpis_chosen": "No KPIs selected. Click \"Customize\" to choose which ones to show.",
|
||
"tooltip_formula": "Formula:",
|
||
"tooltip_accounts": "Accounts:",
|
||
"tooltip_overrides": "Custom:",
|
||
"value_days_suffix": "days",
|
||
"trend_title": "Revenue, expenses & result per month",
|
||
"trend_legend_income": "Revenue",
|
||
"trend_legend_expenses": "Expenses",
|
||
"trend_legend_net": "Net result",
|
||
"expense_mix_title": "Expenses by class",
|
||
"expense_mix_empty": "No posted expenses yet",
|
||
"expense_mix_total": "Total",
|
||
"expense_mix_class4": "Goods (class 4)",
|
||
"expense_mix_class5": "Operations & premises (class 5)",
|
||
"expense_mix_class6": "Other external (class 6)",
|
||
"expense_mix_class7": "Personnel (class 7)",
|
||
"top_suppliers_title": "Top suppliers",
|
||
"top_suppliers_empty": "No supplier invoices registered in the period",
|
||
"top_suppliers_spend": "Spend",
|
||
"sub_netto": "net",
|
||
"sub_likvida_medel": "cash & equivalents",
|
||
"sub_utestaende": "outstanding",
|
||
"sub_overdue": "of which overdue: {amount}",
|
||
"sub_att_betala": "to pay",
|
||
"sub_att_aterfa": "to be refunded",
|
||
"sub_jamnt": "even",
|
||
"sub_av_intakter": "of revenue",
|
||
"sub_snitt": "average",
|
||
"def_netResult_label": "Net result",
|
||
"def_netResult_description": "Net result for the period (revenue minus expenses)",
|
||
"def_netResult_formula": "Total revenue − Total expenses ± Financial items",
|
||
"def_netResult_accounts": "Revenue (class 3), Expenses (class 4-7), Financial (class 8)",
|
||
"def_cashPosition_label": "Cash",
|
||
"def_cashPosition_description": "Total cash and equivalents (bank and cash accounts)",
|
||
"def_cashPosition_formula": "Sum of closing balances for selected 19xx accounts",
|
||
"def_cashPosition_accounts": "Bank and cash accounts (19xx)",
|
||
"def_outstandingReceivables_label": "Receivables",
|
||
"def_outstandingReceivables_description": "Outstanding customer receivables",
|
||
"def_outstandingReceivables_formula": "Sum of unpaid customer invoices",
|
||
"def_outstandingReceivables_accounts": "Accounts receivable (1510)",
|
||
"def_vatLiability_label": "VAT",
|
||
"def_vatLiability_description": "VAT liability or receivable for the period",
|
||
"def_vatLiability_formula": "Output VAT (rutor 10–12, 30–32, 60–62) − Input VAT (ruta 48) — same accounts as the VAT declaration",
|
||
"def_vatLiability_accounts": "Output VAT incl. reverse charge and import (2610–2638), Input VAT (2640–2649)",
|
||
"def_grossMargin_label": "Gross margin",
|
||
"def_grossMargin_description": "Share of revenue remaining after cost of goods",
|
||
"def_grossMargin_formula": "(Revenue − Cost of goods class 4) ÷ Revenue × 100",
|
||
"def_grossMargin_accounts": "Revenue (class 3), Goods and materials (class 4)",
|
||
"def_expenseRatio_label": "Expense ratio",
|
||
"def_expenseRatio_description": "Share of revenue going to expenses",
|
||
"def_expenseRatio_formula": "Total expenses ÷ Total revenue × 100",
|
||
"def_expenseRatio_accounts": "Revenue (class 3), Expenses (class 4-7)",
|
||
"def_avgPaymentDays_label": "Payment time",
|
||
"def_avgPaymentDays_description": "Average days to customer payment",
|
||
"def_avgPaymentDays_formula": "Sum of payment days ÷ Number of paid invoices (min 5 required)",
|
||
"def_avgPaymentDays_accounts": "Calculated from paid customer invoices, not accounts",
|
||
"settings_title": "Customize KPIs",
|
||
"settings_subtitle": "Choose which KPIs to show and adjust their calculations.",
|
||
"settings_custom_suffix": "(custom)",
|
||
"settings_formula_label": "Formula",
|
||
"settings_accounts_label": "Accounts",
|
||
"settings_customize_accounts": "Customize accounts",
|
||
"settings_account_hint": "Enter account numbers separated by commas (e.g. {example})",
|
||
"settings_reset_field": "Reset to default",
|
||
"settings_reset_all": "Reset all"
|
||
},
|
||
"company_switcher": {
|
||
"company_label": "Company",
|
||
"default_company_name": "My business",
|
||
"add_company": "Add company",
|
||
"error_no_access": "You don't have access to this company.",
|
||
"error_switch_failed": "The company switch could not be saved. Please try again."
|
||
},
|
||
"transactions": {
|
||
"page_title": "Transactions",
|
||
"subtitle_to_post": "to post",
|
||
"subtitle_matches": "{count} invoice matches",
|
||
"history_subtitle": "All your transactions",
|
||
"action_import": "Import",
|
||
"action_review_all": "Review all",
|
||
"action_review_loading": "Loading...",
|
||
"action_select_multi_start": "Select several",
|
||
"action_select_multi_end": "Done",
|
||
"action_new_transaction": "New transaction",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"mode_inbox": "To post",
|
||
"mode_history": "All transactions",
|
||
"source_label": "Source:",
|
||
"source_all": "All ({count})",
|
||
"source_bank": "Bank ({count})",
|
||
"source_skatteverket": "Skatteverket ({count})",
|
||
"search_placeholder": "Search transactions...",
|
||
"no_search_results": "No transactions match your search.",
|
||
"dialog_choose_template": "Choose template",
|
||
"dialog_match_invoice": "Match with invoice",
|
||
"dialog_add_transaction": "Add transaction",
|
||
"dialog_match_supplier_invoice": "Match with supplier invoice?",
|
||
"dialog_match_customer_invoice": "Match with customer invoice?",
|
||
"badge_exact_ocr": "Exact OCR match",
|
||
"dialog_duplicate_title": "Possible duplicate",
|
||
"dialog_duplicate_body": "This business event already appears to be booked — as another transaction or an existing voucher (e.g. a paid invoice or a salary run) with the same date and amount. Review it and link this transaction there rather than booking the same event twice — or book it anyway if they're unrelated.",
|
||
"dialog_duplicate_voucher_label": "Voucher {label}",
|
||
"dialog_duplicate_voucher_generic": "Existing voucher",
|
||
"dialog_duplicate_view_voucher": "View the voucher",
|
||
"dialog_duplicate_book_anyway": "Book anyway",
|
||
"dialog_duplicate_cancel": "Cancel",
|
||
"load_failed_title": "Could not load transactions",
|
||
"load_failed_description": "Check your connection and try again.",
|
||
"undone_title": "Undone",
|
||
"undone_description": "Categorization was undone",
|
||
"undo_failed_title": "Could not undo",
|
||
"undo_failed_description": "Categorization could not be undone. Please try again.",
|
||
"partially_booked_title": "Partially posted",
|
||
"partially_booked_description": "Transaction updated but the journal entry could not be created",
|
||
"booking_failed_title": "Posting failed",
|
||
"booking_failed_description": "The transaction could not be posted. Please try again.",
|
||
"customer_invoice_matched_title": "Customer invoice matched",
|
||
"customer_invoice_matched_description": "The invoice was marked as paid",
|
||
"supplier_invoice_matched_title": "Supplier invoice matched",
|
||
"supplier_invoice_matched_description": "The invoice was marked as paid",
|
||
"match_failed_title": "Match failed",
|
||
"match_failed_description_retry": "Please try again.",
|
||
"match_failed_transaction": "The transaction could not be matched. Please try again.",
|
||
"match_failed_with_invoice": "The transaction could not be matched with the invoice. Please try again.",
|
||
"voucher_link_failed_description": "The journal entry could not be linked. Please try again.",
|
||
"login_required_title": "Sign in required",
|
||
"login_required_description": "You must be signed in to add transactions.",
|
||
"deleted_title": "Deleted",
|
||
"deleted_description": "The transaction has been deleted",
|
||
"delete_failed_description": "The transaction could not be deleted. Please try again.",
|
||
"edit_title_saved": "Title updated",
|
||
"edit_title_failed": "Could not update the title",
|
||
"review_in_bookkeeping_description": "Review and post the journal entry in Bookkeeping.",
|
||
"bank_sync_attention_one": "1 bank connection needs renewal",
|
||
"bank_sync_attention_many": "{count} bank connections need renewal",
|
||
"bank_sync_auto_nightly": "Synced automatically each night",
|
||
"bank_sync_last_separator": " · last ",
|
||
"bank_sync_age_just_now": "just now",
|
||
"bank_sync_age_minutes": "{count} min ago",
|
||
"bank_sync_age_hours": "{count} h ago",
|
||
"bank_sync_age_days": "{count} d ago",
|
||
"bank_sync_stale_warning": "Last sync was over 36 hours ago — check the connection",
|
||
"bank_sync_latency_hint": "Banks report transactions with up to 48 hours of delay. Today's transactions often only appear the next morning.",
|
||
"bank_sync_button_now": "Sync now",
|
||
"bank_sync_button_syncing": "Syncing…",
|
||
"bank_sync_new_since_last_visit_one": "1 new bank transaction since your last visit",
|
||
"bank_sync_new_since_last_visit_many": "{count} new bank transactions since your last visit",
|
||
"bank_sync_new_since_last_visit_dismiss": "Dismiss",
|
||
"bank_reconnect": "Reconnect",
|
||
"bank_sync_session_expired": "Bank connection expired",
|
||
"bank_sync_session_expired_desc": "Reconnect to keep syncing transactions.",
|
||
"import_psd2_active_warning_title": "PSD2 is active for {bankName}",
|
||
"import_psd2_active_warning_body": "Transactions sync automatically each night. File imports are only needed for older history or when PSD2 isn't working — otherwise duplicates may occur."
|
||
},
|
||
"bookkeeping": {
|
||
"edit_draft_dialog_title": "Edit draft",
|
||
"title": "Bookkeeping",
|
||
"year_end": "Year-end (Årsbokslut)",
|
||
"tab_journal": "Journal entries",
|
||
"tab_new_entry": "New journal entry",
|
||
"tab_accounts": "Chart of accounts",
|
||
"new_entry_dialog_title": "New journal entry",
|
||
"loading_source_voucher": "Loading source voucher...",
|
||
"copy_failed_title": "Could not copy journal entry",
|
||
"copy_source_missing": "Source voucher not found.",
|
||
"copy_fetch_failed": "Could not fetch source voucher.",
|
||
"copy_banner_title": "Copy of voucher {label}",
|
||
"copy_banner_unknown_label": "(unknown number)",
|
||
"copy_banner_body": "A new, standalone voucher will be created with its own voucher series and number. This is NOT a correction or reversal of the original — use \"Skapa ändringsverifikation\" if you want to correct the source voucher."
|
||
},
|
||
"articles": {
|
||
"title": "Articles",
|
||
"new_article": "New article",
|
||
"add_article": "Add article",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"load_failed_title": "Could not load articles",
|
||
"load_failed_description": "Check your connection and try again.",
|
||
"create_failed_title": "Could not create article",
|
||
"created_title": "Article created",
|
||
"created_description": "{name} has been added",
|
||
"search_placeholder": "Search articles",
|
||
"no_search_results_title": "No matches",
|
||
"no_search_results_description": "No articles match \"{term}\".",
|
||
"empty_title": "No articles yet",
|
||
"empty_description": "Add articles for goods and services to fill in invoice rows quickly.",
|
||
"empty_action": "Add article",
|
||
"type_vara": "Goods",
|
||
"type_tjanst": "Service",
|
||
"status_active": "Active",
|
||
"status_inactive": "Inactive",
|
||
"per_unit": "per {unit}",
|
||
"vat_label_value": "{rate} % VAT",
|
||
"col_number": "Article number",
|
||
"col_name": "Name",
|
||
"col_type": "Type",
|
||
"col_unit": "Unit",
|
||
"col_price": "Price excl. VAT",
|
||
"col_vat": "VAT",
|
||
"col_status": "Status",
|
||
"activate_and_save": "Activate and save"
|
||
},
|
||
"article_detail": {
|
||
"back": "Back to articles",
|
||
"edit": "Edit",
|
||
"deactivate": "Deactivate",
|
||
"edit_dialog_title": "Edit article",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"type_vara": "Goods",
|
||
"type_tjanst": "Service",
|
||
"status_active": "Active",
|
||
"status_inactive": "Inactive",
|
||
"section_pricing": "Pricing",
|
||
"section_accounting": "Accounting",
|
||
"section_details": "Details",
|
||
"section_notes": "Notes",
|
||
"label_price": "Price excl. VAT",
|
||
"label_vat": "VAT",
|
||
"label_unit": "Unit",
|
||
"label_cost_price": "Cost price",
|
||
"label_revenue_account": "Revenue account",
|
||
"revenue_account_auto": "Derived automatically",
|
||
"label_housework": "ROT/RUT",
|
||
"label_name_en": "Name (English)",
|
||
"label_ean": "EAN/barcode",
|
||
"no_details": "No additional details",
|
||
"load_failed_title": "Could not load article",
|
||
"load_failed_description": "Article not found.",
|
||
"updated_title": "Article updated",
|
||
"update_failed_title": "Could not update article",
|
||
"retry": "Please try again.",
|
||
"deactivate_confirm_title": "Deactivate {name}",
|
||
"deactivate_confirm_description": "The article is hidden from lists and invoice pickers but its history is kept. You can reactivate it later.",
|
||
"deactivate_confirm_label": "Deactivate",
|
||
"deactivated_title": "Article deactivated",
|
||
"deactivate_failed_title": "Could not deactivate article",
|
||
"activate_and_save": "Activate and save"
|
||
},
|
||
"form_article": {
|
||
"type_label": "Type *",
|
||
"type_placeholder": "Choose type",
|
||
"type_vara": "Goods",
|
||
"type_tjanst": "Service",
|
||
"name_label": "Name *",
|
||
"name_placeholder": "E.g. Consulting hour",
|
||
"name_required": "Name is required",
|
||
"name_en_label": "Name (English)",
|
||
"name_en_placeholder": "E.g. Consulting hour",
|
||
"name_en_hint": "Used on English-language invoices.",
|
||
"unit_label": "Unit",
|
||
"price_label": "Price excl. VAT *",
|
||
"price_required": "Enter a price",
|
||
"vat_rate_label": "VAT",
|
||
"advanced_section": "Advanced",
|
||
"revenue_account_label": "Revenue account",
|
||
"revenue_account_placeholder": "e.g. 3041",
|
||
"revenue_account_hint": "Leave empty to derive the account automatically from the VAT rate.",
|
||
"cost_price_label": "Cost price",
|
||
"cost_price_hint": "Margin display only – never posted.",
|
||
"ean_label": "EAN/barcode",
|
||
"ean_placeholder": "e.g. 7350000000000",
|
||
"housework_label": "ROT/RUT",
|
||
"housework_placeholder": "Choose work type",
|
||
"housework_none": "None",
|
||
"housework_rot": "ROT",
|
||
"housework_rut": "RUT",
|
||
"housework_hint": "Pre-fills the work type on the invoice row for housework.",
|
||
"notes_label": "Notes",
|
||
"notes_placeholder": "Internal notes about the article...",
|
||
"submit_save": "Save article",
|
||
"submit_saving": "Saving...",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company"
|
||
},
|
||
"customers": {
|
||
"title": "Customers",
|
||
"new_customer": "New customer",
|
||
"add_customer": "Add customer",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"load_failed_title": "Could not load customers",
|
||
"load_failed_description": "Check your connection and try again.",
|
||
"create_failed_title": "Could not create customer",
|
||
"created_title": "Customer created",
|
||
"created_description": "{name} has been added",
|
||
"search_placeholder": "Search customers",
|
||
"no_search_results_title": "No matches",
|
||
"no_search_results_description": "No customers match \"{term}\".",
|
||
"type_individual": "Individual",
|
||
"type_swedish_business": "Swedish company or organization",
|
||
"type_eu_business": "EU business",
|
||
"type_non_eu_business": "Outside EU",
|
||
"verified": "Verified",
|
||
"col_name": "Name",
|
||
"col_type": "Type",
|
||
"col_identifier": "Org. no. / Personal no.",
|
||
"col_email": "Email",
|
||
"col_city": "City",
|
||
"col_created": "Created"
|
||
},
|
||
"products": {
|
||
"title": "Products",
|
||
"new_product": "New product",
|
||
"back_to_list": "Back to products",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"load_failed_title": "Could not load products",
|
||
"load_failed_description": "Check your connection and try again.",
|
||
"create_failed_title": "Could not create product",
|
||
"update_failed_title": "Could not update product",
|
||
"archive_failed_title": "Could not archive product",
|
||
"created_title": "Product created",
|
||
"created_description": "{name} was added",
|
||
"updated_title": "Product updated",
|
||
"archived_title": "Product archived",
|
||
"archive": "Archive",
|
||
"archive_confirm": "Archive this product? Existing invoices that reference it are unaffected.",
|
||
"archived_badge": "Archived",
|
||
"search_placeholder": "Search products",
|
||
"no_search_results_title": "No matches",
|
||
"no_search_results_description": "No products match \"{term}\".",
|
||
"empty_title": "No products yet",
|
||
"empty_description": "Create your first product so you can add it to invoices.",
|
||
"section_basics": "Basics",
|
||
"section_pricing": "Price & VAT",
|
||
"type_goods": "Goods",
|
||
"type_service": "Service",
|
||
"field_name": "Product name",
|
||
"field_name_placeholder": "e.g. LED bulb 9W",
|
||
"field_sku": "SKU",
|
||
"field_sku_placeholder": "e.g. LED-9W-E27",
|
||
"field_description": "Description",
|
||
"field_type": "Product type",
|
||
"field_type_hint": "Goods update stock levels when invoiced. Services don't.",
|
||
"field_category": "Category",
|
||
"field_default_price": "Default price (excl. VAT)",
|
||
"field_default_unit": "Unit",
|
||
"field_default_vat": "Default VAT rate",
|
||
"validation_name_required": "Product name is required",
|
||
"save": "Save",
|
||
"cancel": "Cancel",
|
||
"col_name": "Name",
|
||
"col_sku": "SKU",
|
||
"col_type": "Type",
|
||
"col_default_price": "Default price",
|
||
"col_unit": "Unit"
|
||
},
|
||
"sales_orders": {
|
||
"title": "Sales orders",
|
||
"back_to_list": "Back to orders",
|
||
"new_order": "New order",
|
||
"viewer_disabled_tooltip": "You only have read access in this company",
|
||
"load_failed_title": "Could not load orders",
|
||
"load_failed_description": "Check your connection and try again.",
|
||
"search_placeholder": "Search order number or customer",
|
||
"empty_title": "No orders yet",
|
||
"empty_description": "Create your first order when a customer accepts a quote, or start one from scratch.",
|
||
"no_category_title": "No orders in this category",
|
||
"no_category_description": "Try a different filter or create a new order.",
|
||
"tab_all": "All",
|
||
"tab_draft": "Drafts",
|
||
"tab_confirmed": "Confirmed",
|
||
"tab_partially_shipped": "Partially shipped",
|
||
"tab_shipped": "Shipped",
|
||
"tab_partially_invoiced": "Partially invoiced",
|
||
"tab_invoiced": "Invoiced",
|
||
"tab_cancelled": "Cancelled",
|
||
"status_draft": "Draft",
|
||
"status_confirmed": "Confirmed",
|
||
"status_partially_shipped": "Partially shipped",
|
||
"status_shipped": "Shipped",
|
||
"status_partially_invoiced": "Partially invoiced",
|
||
"status_invoiced": "Invoiced",
|
||
"status_cancelled": "Cancelled",
|
||
"col_number": "Number",
|
||
"col_customer": "Customer",
|
||
"col_date": "Date",
|
||
"col_expected_delivery": "Expected delivery",
|
||
"col_status": "Status",
|
||
"col_amount": "Amount",
|
||
"col_description": "Description",
|
||
"col_quantity": "Quantity",
|
||
"col_quantity_shipped": "Shipped",
|
||
"col_quantity_invoiced": "Invoiced",
|
||
"col_unit_price": "Unit price",
|
||
"col_line_total": "Line total",
|
||
"section_header": "Order details",
|
||
"section_lines": "Order lines",
|
||
"section_progress": "Shipment and invoicing progress",
|
||
"field_customer": "Customer",
|
||
"field_order_date": "Order date",
|
||
"field_expected_delivery": "Expected delivery date",
|
||
"field_currency": "Currency",
|
||
"field_notes": "Notes",
|
||
"field_our_reference": "Our reference",
|
||
"field_your_reference": "Your reference",
|
||
"field_product": "Product",
|
||
"field_unit": "Unit",
|
||
"field_vat_rate": "VAT",
|
||
"action_confirm": "Confirm order",
|
||
"action_ship": "Ship",
|
||
"action_invoice": "Invoice",
|
||
"action_cancel": "Cancel",
|
||
"action_delete": "Delete draft",
|
||
"confirm_dialog_title": "Confirm the order?",
|
||
"confirm_dialog_description": "The customer commits to receiving the shipment. You can then create a delivery note and invoice.",
|
||
"ship_dialog_title": "Ship the order",
|
||
"ship_dialog_description": "A delivery note is created and stock levels are updated automatically for products that track inventory.",
|
||
"invoice_dialog_title": "Invoice the order",
|
||
"invoice_dialog_description": "An invoice is created for the remaining quantities. You can edit it before sending it to the customer.",
|
||
"cancel_dialog_title": "Cancel the order?",
|
||
"cancel_dialog_description": "An order can only be cancelled before the first shipment. Cancelled orders cannot be restored.",
|
||
"delete_dialog_title": "Delete draft?",
|
||
"delete_dialog_description": "Drafts can be removed without a trace — confirmed orders must be cancelled instead.",
|
||
"confirmed_toast": "Order is confirmed",
|
||
"shipped_toast": "Delivery note created",
|
||
"invoiced_toast": "Invoice created",
|
||
"cancelled_toast": "Order is cancelled",
|
||
"deleted_toast": "Draft removed",
|
||
"from_quote": "From quote",
|
||
"summary_total": "Total",
|
||
"summary_subtotal": "Subtotal",
|
||
"summary_vat": "VAT",
|
||
"stock_warnings_title": "Some stock movements could not be recorded",
|
||
"validation_at_least_one_line": "At least one order line is required",
|
||
"remaining_to_ship": "{remaining} left to ship",
|
||
"remaining_to_invoice": "{remaining} left to invoice"
|
||
},
|
||
"inventory": {
|
||
"title": "Inventory",
|
||
"back_to_inventory": "Back to inventory",
|
||
"view_movements": "View movements",
|
||
"movements_title": "Stock movements",
|
||
"load_failed_title": "Could not load inventory",
|
||
"no_locations_title": "No location configured",
|
||
"no_locations_description": "Create a primary location to start tracking stock levels.",
|
||
"create_primary_location": "Create primary location",
|
||
"default_location_name": "Main warehouse",
|
||
"location_created": "Location created",
|
||
"location_create_failed": "Could not create location",
|
||
"locations_title": "Locations",
|
||
"primary": "Primary",
|
||
"inactive": "Inactive",
|
||
"stock_levels_title": "Current stock",
|
||
"no_levels_title": "No stock movements yet",
|
||
"no_levels_description": "Stock movements are created automatically when you send invoices or approve supplier invoices that reference a 'Goods' product.",
|
||
"no_movements_title": "No movements yet",
|
||
"no_movements_description": "All inbound and outbound movements will appear here once recorded.",
|
||
"col_location_name": "Name",
|
||
"col_location_status": "Status",
|
||
"col_product": "Product",
|
||
"col_sku": "SKU",
|
||
"col_location": "Location",
|
||
"col_quantity": "Quantity",
|
||
"col_unit": "Unit",
|
||
"col_when": "When",
|
||
"col_reason": "Reason",
|
||
"col_delta": "Change",
|
||
"col_reference": "Source",
|
||
"reason_purchase": "Purchase",
|
||
"reason_sale": "Sale",
|
||
"reason_adjustment": "Adjustment",
|
||
"reason_transfer_in": "Transfer in",
|
||
"reason_transfer_out": "Transfer out",
|
||
"reason_return": "Return",
|
||
"reason_disposal": "Disposal",
|
||
"reason_opening": "Opening balance",
|
||
"ref_invoice": "Invoice",
|
||
"ref_supplier_invoice": "Supplier invoice",
|
||
"ref_transfer": "Stock transfer",
|
||
"ref_transfer_rollback": "Rollback",
|
||
"ref_manual": "Manual"
|
||
},
|
||
"self_billing": {
|
||
"title": "Register self-billing invoice",
|
||
"subtitle": "A self-billing invoice you received — the customer invoiced in your name. For you it is a sale with output VAT.",
|
||
"back": "Back",
|
||
"issuer_card_title": "Issuer and invoice reference",
|
||
"issuer_card_description": "The customer who issued the self-billing invoice, and the number they assigned.",
|
||
"customer_label": "Customer (issuer)",
|
||
"select_customer_placeholder": "Select customer",
|
||
"external_number_label": "Invoice number (customer's)",
|
||
"external_number_placeholder": "e.g. SF-2026-014",
|
||
"agreement_ref_label": "Agreement reference",
|
||
"agreement_ref_placeholder": "Self-billing agreement",
|
||
"items_card_title": "Lines",
|
||
"items_card_description": "The amounts from the received self-billing invoice.",
|
||
"description_label": "Description",
|
||
"description_placeholder": "Description",
|
||
"quantity_label": "Qty",
|
||
"unit_label": "Unit",
|
||
"unit_price_label": "Unit price",
|
||
"vat_label": "VAT",
|
||
"row_label": "Row {index}",
|
||
"add_row": "Add row",
|
||
"notes_card_title": "Notes",
|
||
"notes_placeholder": "Internal notes (optional)",
|
||
"details_card_title": "Details",
|
||
"currency_label": "Currency",
|
||
"invoice_date_label": "Invoice date",
|
||
"received_date_label": "Received date",
|
||
"due_date_label": "Due date",
|
||
"summary_card_title": "Summary",
|
||
"subtotal_label": "Net",
|
||
"output_vat_label": "Output VAT",
|
||
"total_label": "Total",
|
||
"register": "Register self-billing invoice",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"load_customers_failed": "Could not load customers",
|
||
"created_title": "Self-billing invoice registered",
|
||
"created_description": "Self-billing invoice {number} has been booked as a sale.",
|
||
"create_failed_title": "Could not register the self-billing invoice",
|
||
"validation_customer_required": "Select a customer",
|
||
"validation_external_number_required": "Invoice number is required",
|
||
"validation_invoice_date_required": "Invoice date is required",
|
||
"validation_received_date_required": "Received date is required",
|
||
"validation_due_date_required": "Due date is required",
|
||
"validation_description_required": "Description is required",
|
||
"validation_quantity_min": "Quantity must be at least 0.01",
|
||
"validation_min_one_row": "At least one row is required"
|
||
},
|
||
"invoices": {
|
||
"title": "Invoices",
|
||
"recurring": "Recurring",
|
||
"new_invoice": "New invoice",
|
||
"new_self_billed": "Self-billing",
|
||
"viewer_disabled_tooltip": "You only have viewer access in this company",
|
||
"load_failed_title": "Could not load invoices",
|
||
"load_failed_description": "Check your connection and try again.",
|
||
"summary_one": "{count} invoice",
|
||
"summary_other": "{count} invoices",
|
||
"summary_unpaid": "{count} unpaid",
|
||
"summary_to_collect": "{amount} outstanding",
|
||
"summary_overdue": "{count} overdue",
|
||
"search_placeholder": "Search invoices",
|
||
"tab_all": "All",
|
||
"tab_unpaid": "Unpaid",
|
||
"tab_paid": "Paid",
|
||
"tab_draft": "Draft",
|
||
"tab_proforma": "Proforma",
|
||
"tab_delivery_note": "Delivery note",
|
||
"tab_credit": "Credit",
|
||
"tab_cancelled": "Cancelled",
|
||
"no_search_results_title": "No matches",
|
||
"no_search_results_description": "No invoices match \"{term}\".",
|
||
"no_category_title": "No invoices in this category",
|
||
"no_category_description": "Try switching tabs to see more invoices.",
|
||
"badge_credit": "Credit",
|
||
"badge_proforma": "Proforma",
|
||
"badge_delivery_note": "Delivery note",
|
||
"badge_self_billed": "Self-billing",
|
||
"status_draft": "Draft",
|
||
"status_unsent": "Not sent",
|
||
"status_sent": "Sent",
|
||
"status_paid": "Paid",
|
||
"status_partially_paid": "Partly paid",
|
||
"status_overdue": "Overdue",
|
||
"status_cancelled": "Cancelled",
|
||
"status_credited": "Credited",
|
||
"due_days_overdue": "{days} days overdue",
|
||
"due_today": "Due today",
|
||
"due_days_left": "{days} days left"
|
||
},
|
||
"dashboard": {
|
||
"result": "Net result",
|
||
"this_year_short": "this year",
|
||
"this_month": "this month",
|
||
"this_year_block": "This year",
|
||
"revenue": "Revenue",
|
||
"expenses": "Expenses",
|
||
"to_be_paid": "To be paid",
|
||
"bank_balance": "Bank balance",
|
||
"connect_bank": "Connect bank",
|
||
"todo": "To do",
|
||
"all_done": "All done!",
|
||
"units": "",
|
||
"alerts_title": "Needs attention",
|
||
"show_less": "Show less",
|
||
"show_all": "Show all ({count})",
|
||
"overdue_invoices": "Overdue invoices",
|
||
"overdue_invoices_count": "{count}",
|
||
"unpaid_invoices": "Unpaid invoices",
|
||
"unpaid_invoices_detail": "{count} · {amount}",
|
||
"transactions": "Transactions",
|
||
"uncategorized_count": "{count} unposted",
|
||
"missing_underlag": "Missing documents",
|
||
"missing_underlag_detail": "{count} journal entries without supporting documents",
|
||
"stale_transactions": "Old transactions",
|
||
"stale_transactions_detail": "{count} transactions older than 14 days are not posted",
|
||
"anomalies_title": "Anomalies",
|
||
"anomalies_detail": "{count} to address",
|
||
"bank_consent_expiring": "Bank consent expiring",
|
||
"bank_consent_detail_one": "{bank} — {days} day left",
|
||
"bank_consent_detail_other": "{bank} — {days} days left",
|
||
"att_gora_title": "To do",
|
||
"att_gora_left": "{count} left",
|
||
"att_gora_empty_title": "All caught up!",
|
||
"att_gora_empty_body": "No transactions to record and no documents to handle.",
|
||
"band_bokfor": "Record",
|
||
"band_granska": "Review & complete",
|
||
"band_bevaka": "Monitor",
|
||
"row_book_transactions": "Transactions to record",
|
||
"row_book_transactions_stale": "{count} older than 14 days",
|
||
"row_inbox_documents": "Documents to handle",
|
||
"row_inbox_documents_detail": "Match to a transaction or record directly",
|
||
"row_supplier_approval": "Supplier invoices to approve",
|
||
"row_missing_underlag": "Vouchers missing documents",
|
||
"row_pending_ops": "To review",
|
||
"row_overdue_invoices": "Overdue customer invoices",
|
||
"suggested_title": "Suggested matches",
|
||
"suggested_kind_invoice": "Invoice",
|
||
"suggested_kind_supplier_invoice": "Supplier invoice",
|
||
"suggested_confirm": "Confirm",
|
||
"suggested_view": "View transaction",
|
||
"suggested_confirmed_toast": "Match recorded",
|
||
"suggested_failed_toast": "Match failed",
|
||
"row_deadlines": "VAT and tax deadlines"
|
||
},
|
||
"reports": {
|
||
"title": "Reports",
|
||
"download_sie": "Download SIE file",
|
||
"sie_moved_hint": "SIE export now lives under Import/Export.",
|
||
"sie_moved_link": "Open SIE export",
|
||
"download_pdf": "Download PDF",
|
||
"download_excel": "Download Excel",
|
||
"download_csv": "Download CSV",
|
||
"export": "Export",
|
||
"recent_heading": "Recently opened",
|
||
"back_to_library": "Reports",
|
||
"switch_report": "Switch report",
|
||
"calendar_badge": "Calendar",
|
||
"group_payroll": "Payroll",
|
||
"group_export": "Export & archive",
|
||
"name_kpi": "Key figures",
|
||
"name_sie_export": "SIE export",
|
||
"desc_resultatrapport": "Revenue less costs for the period",
|
||
"desc_balansrapport": "Assets, liabilities and equity by account",
|
||
"desc_trial_balance": "All accounts with opening and closing balances",
|
||
"desc_kpi": "Margin, liquidity and other key figures",
|
||
"desc_income_statement": "Profit or loss in the statutory layout",
|
||
"desc_balance_sheet": "Financial position at the end of the period",
|
||
"desc_kassaflodesanalys": "Change in liquidity during the year",
|
||
"desc_arsredovisning": "Directors' report, notes and signatures",
|
||
"desc_vat_declaration": "Basis for the VAT return (boxes)",
|
||
"desc_periodisk_sammanstallning": "EU sales of goods and services",
|
||
"desc_ne_declaration": "NE appendix for sole traders",
|
||
"desc_ink2_declaration": "Income tax return 2 for limited companies",
|
||
"desc_huvudbok": "Balance and all transactions per account",
|
||
"desc_grundbok": "Vouchers in registration order",
|
||
"desc_kundreskontra": "Outstanding receivables with aging",
|
||
"desc_supplier_ledger": "Outstanding payables with aging",
|
||
"desc_bank_reconciliation": "Reconcile bank transactions against the books",
|
||
"desc_sie_export": "Export the books as a SIE file",
|
||
"categories_aria": "Report categories",
|
||
"group_interim": "Interim",
|
||
"group_year_end": "Year-end",
|
||
"group_tax_vat": "Tax & VAT",
|
||
"group_ledgers": "Ledgers",
|
||
"group_reconciliation": "Reconciliation",
|
||
"name_resultatrapport": "Income statement (interim)",
|
||
"name_balansrapport": "Balance sheet (interim)",
|
||
"name_trial_balance": "Trial balance",
|
||
"name_income_statement": "Income statement",
|
||
"name_balance_sheet": "Balance sheet",
|
||
"name_kassaflodesanalys": "Cash flow statement",
|
||
"name_arsredovisning": "Annual report",
|
||
"name_vat_declaration": "VAT declaration",
|
||
"name_periodisk_sammanstallning": "EU sales report",
|
||
"name_ne_declaration": "NE-bilaga",
|
||
"name_ink2_declaration": "INK2",
|
||
"name_huvudbok": "General ledger",
|
||
"name_grundbok": "Journal register",
|
||
"name_kundreskontra": "Accounts receivable ledger",
|
||
"name_supplier_ledger": "Accounts payable ledger",
|
||
"name_bank_reconciliation": "Bank reconciliation",
|
||
"date_range_label": "Period",
|
||
"date_range_preset_full_year": "Full year",
|
||
"date_range_preset_ytd": "Year to date",
|
||
"date_range_preset_this_month": "This month",
|
||
"date_range_preset_last_month": "Last month",
|
||
"date_range_preset_this_quarter": "This quarter",
|
||
"date_range_preset_custom": "Custom",
|
||
"date_range_from": "From",
|
||
"date_range_to": "To"
|
||
},
|
||
"salary": {
|
||
"title": "Payroll",
|
||
"employees": "Employees",
|
||
"new_run": "New payroll run",
|
||
"gross_year": "Gross salaries {year}",
|
||
"contributions_year": "Employer contributions {year}",
|
||
"runs_title": "Payroll runs",
|
||
"th_period": "Period",
|
||
"th_payday": "Payday",
|
||
"th_gross": "Gross",
|
||
"th_net": "Net",
|
||
"th_contributions": "Contributions",
|
||
"th_status": "Status",
|
||
"empty_runs_title": "No payroll runs yet",
|
||
"empty_runs_description": "Create a payroll run to compute wages, tax, and employer contributions.",
|
||
"create_run": "Create payroll run",
|
||
"status_draft": "Draft",
|
||
"status_review": "Review",
|
||
"status_approved": "Approved",
|
||
"status_paid": "Paid",
|
||
"status_booked": "Posted"
|
||
},
|
||
"time_tracking": {
|
||
"title": "Time tracking",
|
||
"billable_inbox": "Billable hours by customer",
|
||
"create_invoice": "Create invoice",
|
||
"hourly_rate": "Hourly rate",
|
||
"project_required": "Select a project to bill",
|
||
"no_project": "No project",
|
||
"no_billable_hours": "No billable hours to invoice. Mark days as billable to collect them here.",
|
||
"log_hours": "Log hours",
|
||
"billable": "Billable",
|
||
"invoiced": "Invoiced",
|
||
"missing_rate": "Missing rate"
|
||
},
|
||
"import": {
|
||
"title": "Import",
|
||
"subtitle": "Import bank transactions or bookkeeping data into your company",
|
||
"export_title": "Export",
|
||
"export_subtitle": "Download your bookkeeping as a SIE file or back it up to Google Drive",
|
||
"tab_import": "Import",
|
||
"tab_export": "Export",
|
||
"sandbox_disabled": "Bank connections and migration from other systems require a real account and are disabled in the sandbox. File-based imports (bank files, CSV/Excel and SIE) work as usual.",
|
||
"back_to_choices": "Back to choices",
|
||
"psd2_title": "Connect bank",
|
||
"psd2_recommended": "Recommended",
|
||
"psd2_description": "Connect your bank account directly and sync transactions automatically via PSD2.",
|
||
"migration_title": "Import from another system",
|
||
"migration_description": "Nothing changes in your existing system.",
|
||
"bankfile_title": "Bank transactions",
|
||
"bankfile_description": "Import statements from your bank. Supports most Swedish banks.",
|
||
"csv_data_title": "Import CSV / Excel data",
|
||
"csv_data_description": "Import opening balances, customers, suppliers, or articles.",
|
||
"csv_chip_opening_balances": "Opening balances",
|
||
"csv_chip_customers": "Customers",
|
||
"csv_chip_suppliers": "Suppliers",
|
||
"csv_chip_articles": "Articles",
|
||
"sie_title": "Bookkeeping data (SIE)",
|
||
"sie_description": "Import journal entries and chart of accounts from another bookkeeping system.",
|
||
"loading_migration": "Loading migration tool...",
|
||
"export_heading": "Export",
|
||
"export_sie_title": "Export SIE file",
|
||
"export_sie_description": "Export your bookkeeping as a SIE4 file for your accountant or for migrating to another system.",
|
||
"export_sie_period_label": "Fiscal year",
|
||
"export_sie_button": "Download SIE",
|
||
"export_sie_no_period": "Select a fiscal year to export.",
|
||
"export_sie_exclude_closing_label": "Exclude year-end closing voucher (recommended for eDeklarera and systems that do their own year-end closing)",
|
||
"export_cloud_title": "Cloud backup to Google Drive"
|
||
},
|
||
"empty": {
|
||
"invoices_title": "No invoices yet",
|
||
"invoices_description": "Create your first invoice to get started.",
|
||
"customers_title": "No customers yet",
|
||
"customers_description": "Add your first customer to start invoicing.",
|
||
"transactions_title": "No transactions",
|
||
"transactions_description": "Transactions will appear here once your bank connection syncs.",
|
||
"suppliers_title": "No suppliers yet",
|
||
"suppliers_description": "Add your first supplier.",
|
||
"no_results": "No results",
|
||
"no_data": "No data to display",
|
||
"support_hint_subject": "Need help getting started",
|
||
"support_hint_label": "Need help? Contact support",
|
||
"preset_invoices_title": "No invoices yet",
|
||
"preset_invoices_description": "Create your first invoice in under 60 seconds. We fill in your details automatically.",
|
||
"preset_invoices_action": "Create invoice",
|
||
"preset_customers_title": "No customers yet",
|
||
"preset_customers_description": "Add your customers to easily create invoices and track payments.",
|
||
"preset_customers_action": "Add customer",
|
||
"preset_transactions_title": "No transactions",
|
||
"preset_transactions_description": "Import bank statements to automatically post entries and stay on top of your finances.",
|
||
"preset_transactions_action": "Import transactions",
|
||
"preset_receipts_title": "No receipts",
|
||
"preset_receipts_description": "Snap a photo of a receipt for automatic reading and posting. We handle the rest!",
|
||
"preset_receipts_action": "Scan receipt",
|
||
"preset_deadlines_title": "No upcoming deadlines",
|
||
"preset_deadlines_description": "Great work! You have no immediate deadlines to handle.",
|
||
"preset_no_bank_title": "No transactions imported",
|
||
"preset_no_bank_description": "Import bank statements to automatically post entries and get a better view of your finances.",
|
||
"preset_no_bank_action": "Import transactions",
|
||
"preset_reports_title": "No reports available",
|
||
"preset_reports_description": "Reports are generated automatically once you have enough data. Start by creating invoices or importing transactions.",
|
||
"preset_reports_action": "Create invoice",
|
||
"preset_reports_secondary": "Import transactions"
|
||
}
|
||
}
|