Files
accounted/messages/en.json
T
Jakob Wennberg ac1529e413 fix(ui): block illegal VAT rates, honest opening-balance state, surface account-save errors (#902)
* fix(ui): block illegal VAT rates, honest opening-balance state, surface account-save errors

- Supplier invoice form (#863 item 1): onSubmit now blocks any
  non-reverse-charge line whose VAT rate is outside the legal Swedish
  set {25, 12, 6, 0} with a destructive toast naming the line and the
  legal rates. Server-side schema tightening stays out of scope.
- Opening balance import (#837): the summary derives isBalanced from
  the running totals (0.01 epsilon) and renders the AlertCircle
  destructive pattern with the differens amount when unbalanced;
  canExecute includes isBalanced so the commit button is disabled
  instead of funneling users into a server-side rejection.
- EditAccountDialog (#838): a failed account save now shows a
  destructive toast with the server-provided message instead of being
  silently swallowed; the dialog stays open for retry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(ui): compare opening-balance totals in whole ore, map account-save errors to Swedish

Review findings on the first pass: the < 0.01 epsilon misclassified exact
1-ore imbalances as balanced (0.03 - 0.02 evaluates just under 0.01), and
the save-failure toast surfaced raw English server text instead of routing
through getErrorMessage like the sibling handlers in the same file.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 11:20:46 +02:00

5002 lines
254 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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",
"chart_of_accounts": "Chart of accounts",
"dimensions": "Cost centres & projects",
"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",
"vat_declaration": "VAT",
"skattekonto": "Tax account",
"year_end": "Year-end",
"pending": "Pending",
"help": "Help",
"extensions": "Extensions",
"settings": "Settings",
"group_main": "Main",
"group_work": "Work",
"group_analysis": "Analytics",
"group_data": "Data",
"group_tax": "Tax & year-end",
"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",
"billing": "Subscription",
"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",
"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",
"no_system_deadlines_title": "Automatic tax deadlines missing.",
"no_system_deadlines_description": "Deadlines for VAT, employer declarations and F-tax are generated from your company's tax settings — make sure they are filled in."
},
"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",
"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",
"mismatch_description": "Make sure you entered the same password in both fields.",
"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",
"default_currency_label": "Default currency",
"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 to 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 to 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",
"fy_action_lock": "Lock",
"fy_action_unlock": "Unlock",
"fy_confirm_cancel": "Cancel",
"fy_lock_confirm_title": "Lock fiscal year?",
"fy_lock_confirm_body": "{name} will be locked. No new entries can be posted in this period until you unlock it again.",
"fy_unlock_confirm_title": "Unlock fiscal year?",
"fy_unlock_confirm_body": "{name} will be unlocked so entries can be posted in this period again. This action is recorded in the audit log.",
"fy_lock_success": "Fiscal year locked",
"fy_unlock_success": "Fiscal year unlocked",
"fy_action_error": "The action could not be completed",
"related_heading": "Related",
"related_chart_of_accounts": "Chart of accounts (BAS)"
},
"settings_tax": {},
"settings_team": {},
"settings_templates": {},
"settings_salary": {
"title": "Payroll settings",
"payments_heading": "Payment",
"pay_day_label": "Pay day",
"pay_day_help": "Day of the month salaries are paid (128). Used as the default for new payroll runs and for reminders.",
"format_label": "Payment file format",
"format_pain001": "ISO 20022 pain.001 (XML)",
"format_bg_lb": "Bankgirot LB file",
"format_help": "The format of the payment file you upload to your internet bank. pain.001 is the new standard all banks are moving to.",
"sunset_warning": "Swedish banks are retiring Bankgirot Lön during 2026 — Swedbank stops accepting LB salary files on 1 August 2026, other banks during the autumn. Switch to ISO 20022 pain.001 well before your next salary payment.",
"bank_label": "Bank for salary payments",
"bank_none": "Not selected",
"bank_other": "Other bank",
"bank_help": "When selected, upload instructions for your bank are shown first on every payroll run.",
"vacation_info": "The vacation rule (procentregeln 12% by default) and number of vacation days are set per employee.",
"vacation_info_link": "Manage employees",
"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)"
},
"salary_payments": {
"title": "Payment file for your bank",
"last_generated": "Last generated:",
"format_label": "Format",
"format_bg_lb": "Bankgirot LB file",
"format_pain001": "ISO 20022 pain.001 (XML)",
"format_description_bg_lb": "Legacy Bankgirot format. Being retired by the banks during 2026 — use pain.001 if your bank supports it.",
"format_description_pain001": "ISO 20022 — the new payment file standard at Swedbank, SEB, Handelsbanken and Nordea.",
"sunset_warning": "Swedish banks are retiring Bankgirot Lön during 2026 — Swedbank stops accepting LB salary files on 1 August 2026, other banks during the autumn. Switch to pain.001 in good time.",
"sunset_link": "Change in payroll settings",
"download": "Download payment file",
"download_failed_title": "Payment file could not be generated",
"download_failed_fallback": "Could not generate payment file",
"downloaded": "Payment file downloaded",
"instructions_toggle": "How to import the file in your bank",
"instructions_footer": "The amounts are pre-filled — all that remains is signing with BankID in your bank.",
"your_bank": "your bank",
"open_payments_note": "Open Payments / direct payment via PSD2 (without file import) is planned for the future via Enable Banking. Initiation requires a separate PIS agreement — we will follow up once enough customers use salary payment files regularly.",
"steps_bg_lb_swedbank": "Företagsbetalningar → Importera fil → choose LB format → upload and sign with BankID. Note: Swedbank stops accepting LB salary files after 1 August 2026.",
"steps_bg_lb_seb": "Betalningar → Filöverföring → choose Bankgiro LB → upload and approve.",
"steps_bg_lb_handelsbanken": "Betala → Filimport → choose LB → verify totals → sign. Note: Handelsbanken no longer accepts salary files via Bankgirot.",
"steps_bg_lb_nordea": "Filimport → Bankgiro LB → upload → approve the payment.",
"steps_pain001_swedbank": "Betala och överföra → Filtjänster → Upload file (ISO 20022 pain.001) → sign with BankID.",
"steps_pain001_seb": "Betalningar → Import SEPA / ISO 20022 (pain.001) → upload and sign. The file must be received no later than 10:30 the day before the pay date.",
"steps_pain001_handelsbanken": "Betala → Filimport → ISO 20022 → choose pain.001 → sign.",
"steps_pain001_nordea": "Filimport in Nordea Business → Format pain.001 → upload → approve.",
"tax_title": "Payment to your skattekonto",
"tax_label_tax": "Tax",
"tax_label_avgifter": "Employer contributions",
"tax_label_total": "Total to pay",
"tax_recipient": "Recipient:",
"tax_recipient_value": "Skatteverket Bankgiro 5050-1055",
"tax_due_date": "Due date:",
"tax_ocr_note": "The payment file uses your skattekonto OCR (org number + Luhn check digit). Skatteverket applies the payment to the amount you declared in the AGI for the period.",
"tax_file_generated": "Payment file last generated",
"tax_marked_paid": "Marked as paid",
"tax_skattekonto_button": "Skattekontot",
"tax_download_button": "Download payment file",
"tax_mark_paid_button": "Mark as paid",
"tax_download_failed_title": "The payment file could not be generated",
"tax_download_failed_fallback": "Could not generate payment file",
"tax_downloaded": "Tax payment file downloaded",
"tax_mark_paid_failed_title": "Could not mark as paid",
"tax_mark_paid_failed_fallback": "Could not mark as paid"
},
"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",
"bank_server_error": "The bank rejected the connection.",
"hb_business_poa_hint": "Handelsbanken requires a power of attorney before business accounts can be connected: log in to the corporate online bank, go to Powers of attorney → Self-service services and enable \"Internet Företag tilläggstjänst API Företag\". Then link the power of attorney to the person who will approve the connection and try again.",
"hb_business_poa_link": "See the step-by-step guide",
"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_email_texts": {
"heading": "Email texts",
"description": "The texts in the email sent with the invoice. Edit freely: only your changes are saved. Does not apply to credit notes, proforma invoices or delivery notes.",
"reset_label": "Reset to standard",
"tab_sv": "Swedish",
"tab_en": "English",
"en_tab_hint": "Used for customers with English as their language.",
"subject_label": "Subject line",
"greeting_label": "Greeting",
"body_label": "Body text",
"signoff_label": "Sign-off",
"placeholders_help": "Available placeholders (unknown ones are left as text):",
"firstname_note": "The first-name placeholder uses the first word of the customer's name.",
"toast_save_failed": "Could not save"
},
"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",
"needs_reconsent_message": "The Skatteverket connection needs to be renewed. Automatic syncing is paused until you reconnect with BankID.",
"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_clear": "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"
},
"document_viewer": {
"empty": "No document attached",
"header_label": "Document",
"open_in_new_tab": "Open in new tab",
"not_previewable": "Can't preview"
},
"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)}}",
"dimensions_hint": "Cost centre/project is applied to the voucher's lines.",
"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",
"row_menu_set_dimensions": "Set cost centre/project",
"row_menu_remove_dimensions": "Remove cost centre/project",
"dimensions_default_hint": "Cost centre/project applies to all rows without their own tagging.",
"row_dimensions_inherit_hint": "Empty fields inherit the invoice default ({dims}).",
"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 {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 {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}",
"row_dimensions_aria": "Cost centre/project for row {index}",
"row_dimensions_title": "Cost centre/project",
"row_dimensions_inherit_hint": "Empty fields inherit the invoice default ({dims}).",
"dimensions_default_hint": "Cost centre/project applies to all rows without their own tagging.",
"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}.",
"illegal_vat_rate_title": "Invalid VAT rate",
"illegal_vat_rate_description": "Line {row} has VAT rate {rate} %. The legal Swedish VAT rates are 25, 12, 6 or 0 %.",
"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 {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 {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.",
"empty_drafts_title": "No drafts",
"empty_drafts_description": "Entries you've saved but not yet posted collect here. Switch to Vouchers to see posted entries.",
"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",
"reverse_action": "Reverse (storno)",
"reverse_confirm_title": "Reverse journal entry",
"reverse_confirm_label": "Create storno",
"reverse_warning": "Linked bank transactions return to \"To book\" and any invoice or payment status is reset. A storno entry is posted and cannot be changed afterwards.",
"reverse_dialog_heading": "Reverse {voucher} with a storno",
"reverse_dialog_body": "A storno entry that mirrors and zeroes out the journal entry is posted. The original is not deleted: it is marked as reversed and the original → storno chain stays traceable (BFL ch. 5 § 5). To change accounts or amounts instead, use Correct.",
"toast_reverse_done_title": "Storno created",
"toast_reverse_done_description": "Storno entry {voucher} has been posted.",
"toast_reverse_failed": "Could not reverse journal 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",
"correct_opening_balances": "Correct opening balances",
"reverse_action": "Reverse (storno)",
"reverse_confirm_title": "Reverse journal entry",
"reverse_confirm_label": "Create storno",
"reverse_warning": "Linked bank transactions return to \"To book\" and any invoice or payment status is reset. A storno entry is posted and cannot be changed afterwards.",
"reverse_dialog_heading": "Reverse {voucher} with a storno",
"reverse_dialog_body": "A storno entry that mirrors and zeroes out the journal entry is posted. The original is not deleted: it is marked as reversed and the original → storno chain stays traceable (BFL ch. 5 § 5). To change accounts or amounts instead, use Correct.",
"toast_reverse_done_title": "Storno created",
"toast_reverse_done_description": "Storno entry {voucher} has been posted.",
"toast_reverse_failed": "Could not reverse journal entry",
"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": {
"account_not_activated": "Activated when you post",
"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.",
"keyboard_hint": "Enter jumps to the next field: once the entry balances, Enter opens the review.",
"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.",
"add_dimensions": "Cost centre/Project",
"dimensions_apply_all_hint": "Applies to all rows without their own tag.",
"row_dimensions_aria": "Cost centre/project for this row"
},
"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",
"col_usage": "Vouchers",
"own_badge": "Custom",
"prune_button": "Delete accounts",
"prune_title": "Delete accounts",
"prune_description": "Remove accounts that have never been used in your bookkeeping. Accounts with posted vouchers cannot be deleted — they can only be deactivated.",
"prune_loading": "Analyzing the chart of accounts...",
"prune_group_custom": "Custom and imported accounts",
"prune_group_custom_hint": "Accounts added manually or via import.",
"prune_group_seed": "Unused accounts from the base plan",
"prune_group_seed_hint": "Standard accounts from your original chart — keep them if you want to use them later.",
"prune_inactive_badge": "Inactive",
"prune_used_note": "{count} accounts are used in your bookkeeping and cannot be deleted. Deactivate them instead if you want to hide them.",
"prune_empty": "No unused accounts to clean up — your chart of accounts is already clean.",
"prune_confirm": "Delete {count} accounts",
"toast_pruned_title": "Chart of accounts cleaned",
"toast_pruned_description": "{deleted} accounts deleted",
"toast_pruned_with_skipped": "{deleted} accounts deleted, {skipped} skipped",
"toast_prune_failed": "Could not clean up the chart of accounts"
},
"dimensions": {
"new_value": "New value",
"new_value_title": "New value: {dimension}",
"edit_value_title": "Edit value",
"search_placeholder": "Search by code or name…",
"col_code": "Code",
"col_name": "Name",
"col_status": "Status",
"col_start": "Start",
"col_end": "End",
"status_active": "Active",
"status_archived": "Archived",
"load_failed_title": "Could not load the register",
"load_failed_description": "Try again in a moment.",
"retry": "Try again",
"empty_title": "No values yet",
"empty_description": "Create values for {dimension} to tag journal lines and follow up results.",
"no_search_results_title": "No matches",
"no_search_results_description": "No value matches “{term}”.",
"viewer_disabled_tooltip": "You have read-only access and cannot create values",
"created_title": "Value created",
"created_description": "{code} has been added to the register.",
"updated_title": "Value updated",
"deleted_title": "Value deleted",
"save_failed_title": "Could not save",
"delete_failed_title": "Could not delete",
"form_code_label": "Code",
"form_code_help": "1-20 characters: letters, digits and _ + -",
"form_code_immutable_help": "The code cannot be changed after the value has been created.",
"form_code_invalid": "Invalid code: 1-20 characters, only letters, digits and _ + -",
"form_name_label": "Name",
"form_name_invalid": "Enter a name (1-120 characters).",
"form_active_label": "Active",
"form_active_help": "Archived values are hidden in pickers but remain on posted vouchers.",
"form_start_label": "Start date",
"form_end_label": "End date",
"form_date_order_invalid": "The end date cannot be before the start date.",
"form_create": "Create",
"form_save": "Save",
"form_delete": "Delete",
"delete_confirm_title": "Delete this value?",
"delete_confirm_description": "“{code}” will be permanently deleted. Values used on posted vouchers cannot be deleted: archive them instead.",
"delete_confirm_label": "Delete",
"delete_cancel_label": "Cancel",
"settings_heading": "Cost centres & projects",
"settings_toggle_label": "Enable cost centres & projects",
"settings_toggle_help": "Shows the register in the menu and lets you tag journal lines with cost centre and project.",
"settings_imported_toast_title": "Existing codes imported",
"settings_imported_toast": "{count, plural, one {1 existing code was imported} other {# existing codes were imported}}",
"settings_import_failed_title": "Could not import existing codes",
"settings_save_failed_title": "Could not save the setting",
"settings_open_register": "Open cost centres & projects",
"new_dimension": "New dimension",
"new_dimension_title": "New dimension",
"dim_form_name_invalid": "Enter a name (160 characters).",
"dim_form_number_label": "Number",
"dim_form_number_help": "Leave empty for the next free number (20+). SIE reserves 119.",
"dim_form_number_invalid": "Enter a whole number of 20 or higher.",
"dim_form_resets_label": "Resets every fiscal year",
"dim_form_resets_help": "Balances per value start over at a new fiscal year.",
"dim_form_advanced": "Advanced",
"dim_form_parent_label": "Parent dimension",
"dim_form_parent_none": "None",
"dim_form_parent_help": "Makes the new dimension a subdimension (SIE #UNDERDIM) of the selected one.",
"dim_created_title": "Dimension created",
"subdimension_of": "Subdimension of {parent}"
},
"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",
"create_with_assistant": "Create with assistant",
"ask_assistant_handoff": "Let the assistant fill it in?",
"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_dimension_pnl": "Income statement per dimension: one column per project or cost centre",
"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_year_end_closing": "Close the fiscal year: dispositions, accruals and closing entries",
"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_dimension_pnl": "Profit & loss by project/cost centre",
"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_year_end_closing": "Year-end closing",
"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",
"start_run": "Start payroll run",
"run_exists_opening": "A payroll run already exists — opening it",
"start_run_failed": "Could not start the payroll run",
"onboarding_title": "Get started with payroll",
"onboarding_description": "Add your first employee and we calculate wages, tax deductions, and employer contributions — plus payment file, payslips, and the AGI declaration.",
"onboarding_action": "Add employee",
"hero_review_title": "Payroll run {period} is waiting for review",
"hero_review_description": "{count} employees · {net} net · payment {date}",
"hero_review_action": "Review",
"hero_pay_title": "Time to pay salaries for {period}",
"hero_pay_description": "{net} net · payment {date}. Download the payment file and upload it to your bank.",
"hero_pay_action": "Go to payment",
"hero_finish_title": "Finish payroll run {period}",
"hero_finish_description": "Nothing to pay out — continue to post it and file AGI.",
"hero_finish_action": "Continue",
"hero_book_title": "Post payroll run {period}",
"hero_book_description": "Salaries are paid — post the run to create the vouchers.",
"hero_book_action": "Post",
"hero_agi_title": "File AGI for {period}",
"hero_agi_description": "The payroll run is posted. Generate and submit the employer declaration.",
"hero_agi_action": "Go to AGI",
"quiet_title": "Next payroll run {period}",
"quiet_description": "Payment {date}. Everything is done for the previous period.",
"quiet_action": "Start now",
"card_agi_title": "AGI deadline",
"card_agi_none": "No upcoming AGI deadline.",
"card_tax_title": "Tax to pay",
"card_tax_paid": "Paid {date}",
"card_tax_unpaid": "Tax and contributions for {period} — due on the 12th.",
"card_tax_none": "No posted payroll run yet.",
"card_blockers_title": "Needs attention",
"card_blockers_detail": "{bank} missing bank account · {email} missing email",
"card_blockers_none": "No blockers — all employees are complete.",
"status_draft": "Draft",
"status_review": "Review",
"status_approved": "Approved",
"status_paid": "Paid",
"status_booked": "Posted",
"status_corrected": "Corrected"
},
"salary_run": {
"title": "Payroll run {period}",
"back_to_salary": "Back to payroll",
"payment_date_label": "Payment",
"header_employees": "{count, plural, one {# employee} other {# employees}}",
"not_found": "Payroll run not found",
"more_actions": "More actions",
"unknown_error": "Unknown error",
"rail_title": "This month's steps",
"rail_calculate": "Calculate",
"rail_calculate_hint": "Calculate wages, tax, and contributions, then send for review.",
"rail_approve": "Approve",
"rail_pay": "Pay",
"rail_pay_hint": "Download the payment file below, upload and sign it in your bank — then mark as paid.",
"rail_pay_nopayout_hint": "Nothing to pay out — mark as done to continue.",
"rail_payslips": "Payslips",
"rail_payslips_summary": "{sent} sent · {failed} failed · {skipped} skipped",
"rail_payslips_none": "No payslips sent yet.",
"rail_book": "Post",
"rail_agi": "AGI & tax",
"rail_agi_hint": "Generate and submit the employer declaration below.",
"rail_agi_generated": "AGI file generated — submit it to Skatteverket.",
"rail_agi_submitted": "Submitted to Skatteverket.",
"rail_all_done": "All done for the period",
"rail_step_counter": "{done} of {total} done",
"action_calculate": "Calculate",
"action_recalculate": "Recalculate",
"action_preview": "Preview",
"action_to_review": "Send for review",
"action_approve": "Approve",
"approve_override_title": "Approve without bank details?",
"approve_override_body": "The following employees are missing bank details and won't be included in the payment file until a clearing number and account number are filled in. You can approve the run anyway and complete the details before you create the payment file.",
"approve_override_cancel": "Cancel",
"approve_override_confirm": "Approve anyway",
"action_revert": "Back to draft",
"action_unapprove": "Recall approval",
"confirm_unapprove_intro": "The approval is recalled and the run goes back to review.",
"confirm_unapprove_payment_file": "A payment file has been generated. If it has already been uploaded to the bank, the payment must be cancelled there — otherwise the old amounts will be paid out.",
"confirm_unapprove_payslips": "Payslips have already been sent and need to be re-sent after recalculation.",
"confirm_unapprove_agi": "The generated AGI file is deleted and needs to be regenerated. If you have already filed it manually with Skatteverket, file a corrected employer declaration instead.",
"action_mark_paid": "Mark as paid",
"action_continue": "Continue",
"action_book": "Post",
"action_send_payslips": "Send payslips",
"action_send_payslips_again": "Send again",
"action_download_payslips": "Download all",
"action_download_agi": "Download AGI file (XML)",
"action_delete_draft": "Delete draft",
"action_correct": "Correct payroll run (storno)",
"correction_badge": "Correction",
"corrects_link": "Corrects the {period} run",
"corrected_by_link": "View the correction run",
"correct_dialog_title": "Correct this payroll run?",
"correct_dialog_body": "A correction run is created for {period}. The original vouchers are reversed (storno) per BFL 5 kap. 5 § — nothing is deleted, and both the original and the correction remain visible in the books. You edit and recalculate the new run before posting it.",
"correct_dialog_agi_warning": "The AGI for this period has already been generated. After the correction, the employer declaration must be regenerated and resubmitted to Skatteverket.",
"correct_dialog_cancel": "Cancel",
"correct_dialog_confirm": "Create correction",
"kpi_gross": "Gross",
"kpi_tax": "Tax",
"kpi_net": "Net",
"kpi_avgifter": "Contributions",
"kpi_employer_cost": "Total cost",
"nollkorning_title": "Zero run",
"nollkorning_body": "No salary is reported for {period}. A zero declaration (huvuduppgift without individuppgifter) is filed with Skatteverket — a registered employer must file an employer declaration every month, including months without payroll.",
"confirm_nollkorning": "This is a zero run — no salary is reported for the period. A zero declaration (huvuduppgift without individuppgifter) is filed with Skatteverket. Continue?",
"employees_title": "Employees ({count})",
"add_employee_placeholder": "Add employee...",
"no_employees_yet": "No employees added yet",
"employee_fallback": "Employee",
"th_employee": "Employee",
"th_monthly_salary": "Monthly salary",
"th_gross": "Gross",
"th_diff": "Δ {period}",
"th_tax": "Tax",
"th_net": "Net",
"th_avgifter": "Contributions",
"th_vacation": "Vacation",
"th_payslip": "Payslip",
"diff_new_employee": "New",
"view_pdf": "View PDF",
"view_payslip_title": "View payslip",
"salary_input_aria": "Monthly salary for {name}",
"remove_sr": "Remove",
"remove_employee_aria": "Remove {name} from the payroll run",
"remove_employee_title": "Remove from the payroll run",
"calculation_details_title": "Calculation details",
"journal_preview_title": "Preview — vouchers",
"journal_preview_nollkorning": "Zero run — no vouchers are posted for this run. Verify that other payroll runs for the period cover the employer declaration to Skatteverket.",
"journal_th_account": "Account",
"journal_th_description": "Description",
"journal_th_debit": "Debit",
"journal_th_credit": "Credit",
"confirm_delete": "Delete the draft for {period}? All employees and calculations in the run are removed. This cannot be undone.",
"confirm_remove_employee": "Remove {name} from the payroll run?",
"toast_status_updated": "Status updated",
"toast_status_failed": "Could not update status",
"toast_draft_deleted": "Draft deleted",
"toast_delete_failed": "Could not delete draft",
"toast_correction_created": "Correction run created",
"toast_correction_description": "The original vouchers have been reversed (storno). Edit and recalculate the new run.",
"toast_correction_failed": "Could not create correction",
"toast_employee_added": "Employee added",
"toast_add_employee_failed": "Could not add employee",
"toast_employee_removed": "Employee removed",
"toast_remove_employee_failed": "Could not remove employee",
"toast_salary_updated": "Monthly salary updated",
"toast_salary_updated_hint": "Click Calculate to refresh the outcome.",
"toast_salary_update_failed": "Could not update monthly salary",
"toast_calculation_done": "Calculation done",
"toast_calculation_warning": "Please review",
"toast_calculation_failed": "Calculation error",
"toast_payslips_sent": "Payslips sent",
"toast_payslips_sent_detail": "{sent} sent, {skipped} skipped (missing email).",
"toast_payslip_error": "Payslip could not be sent",
"toast_payslips_send_failed": "Payslips could not be sent",
"toast_payslips_download_empty": "No payslips could be downloaded",
"toast_payslips_downloaded": "Payslips downloaded",
"toast_payslips_downloaded_detail": "{count} files in a zip archive.",
"toast_zip_failed": "Could not create zip file",
"toast_agi_failed": "AGI file could not be generated",
"toast_agi_downloaded": "AGI file downloaded"
},
"salary_agi": {
"title": "Arbetsgivardeklaration (AGI)",
"loading_status": "Fetching Skatteverket status...",
"disabled_before": "The Skatteverket integration is disabled in this environment. Enable",
"disabled_after": "to submit AGI directly to Skatteverket.",
"connect_description": "Connect to Skatteverket with BankID to submit AGI directly from accounted.",
"connect_button": "Connect with BankID",
"reconnect_button": "Reconnect with BankID",
"connected": "Connected",
"disconnect_button": "Disconnect",
"disconnect_title": "Disconnect the Skatteverket connection",
"disconnect_success": "The Skatteverket connection has been disconnected.",
"disconnect_failed": "Could not disconnect",
"disconnect_failed_status": "Could not disconnect ({status})",
"oauth_success": "Successfully connected to Skatteverket.",
"oauth_error_fallback": "The OAuth connection failed. Please try again.",
"expired_banner_title": "The Skatteverket connection has expired",
"expired_banner_description": "Sign in with BankID again to be able to submit AGI.",
"missing_scope_title": "The Skatteverket connection lacks permission for Arbetsgivardeklaration",
"missing_scope_description": "Your connection was issued before AGI support was enabled. Disconnect and reconnect via Settings → Tax to be able to submit AGI directly.",
"open_settings": "Open settings",
"file_generated": "AGI file generated {date}",
"file_not_generated": "The AGI file has not been generated yet.",
"submitted_with_kvittens": "Submitted to Skatteverket — kvittens {kvittens}",
"submitted_at": "Submitted to Skatteverket {date}",
"submitted": "Submitted",
"pending_stale_draft": "A signing draft exists at Skatteverket but is outdated — unlock and submit the underlag again.",
"pending_awaiting_signature": "Granskningsunderlag ready — waiting for BankID signature in Mina Sidor.",
"pending_underlag_submitted": "Underlag received by Skatteverket. Create a granskningsunderlag to proceed to signing.",
"pending_not_submitted": "Not submitted to Skatteverket yet. Deadline: the 12th of the month after payout (the 17th in January/August for employers whose total annual payroll is below SEK 40 million).",
"draft_locked_title": "The draft is locked and ready to be signed",
"draft_locked_description": "Open the link below and sign with BankID on Skatteverket's website.",
"open_signing_link": "Open signing link",
"stale_draft_title": "The signing draft is outdated",
"stale_draft_description": "The AGI was regenerated {generatedAt} after this signing draft was created{draftCreatedAt}. The draft at Skatteverket contains outdated figures.",
"stale_draft_click": "Click",
"stale_draft_then": "and then",
"stale_draft_to_sign": "to sign the correct amounts.",
"incorrect_data_title": "Incorrect underlag — the granskningsunderlag could not be signed",
"incorrect_data_description": "Skatteverket rejected the underlag. Open the error report for details.",
"incorrect_data_error": "{message} — open the link for the error report.",
"incorrect_data_fallback": "There are incorrect underlag",
"open_error_report": "Open error report at Skatteverket",
"download_xml_button": "Download AGI file",
"download_xml_title": "Download the AGI file (XML) for manual filing with Skatteverket",
"xml_generate_failed": "Could not generate the AGI file",
"xml_download_failed": "Could not download the AGI file",
"submit_button": "Submit underlag",
"submit_upgrade_title": "Submitting AGI to Skatteverket is included in an upgraded plan.",
"submit_failed": "Could not submit AGI",
"submit_failed_status": "Submission failed ({status})",
"submit_missing_id": "The submission response is missing inlamningId",
"kontrollresultat_failed_status": "Kontrollresultat check failed ({status})",
"still_processing": "Skatteverket is still processing the underlag — try again in a moment.",
"underlag_accepted": "Underlag accepted by Skatteverket. Click \"Create signing link\" to proceed to BankID signing in Mina Sidor.",
"underlag_rejected_error": "The underlag contains {count} blocking errors. Fix them and submit again.",
"underlag_failed": "Skatteverket rejected the underlag (DONE_FAILED).",
"signed_success": "The AGI has been signed and submitted.",
"signing_link_button": "Create signing link",
"signing_link_ready": "Granskningsunderlag ready. Open the signing link to sign with BankID.",
"signing_link_failed": "Could not create granskningsunderlag",
"signing_link_failed_status": "Could not create granskningsunderlag ({status})",
"unlock_button": "Unlock",
"unlock_success": "The AGI has been unlocked",
"unlock_failed": "Could not unlock",
"unlock_failed_status": "Could not unlock ({status})",
"check_kvittens_button": "Fetch kvittens",
"kvittens_fetch_failed": "Could not fetch kvittenser",
"no_kvittens_yet": "No signed kvittens found for the period yet.",
"check_status_failed": "Could not check status",
"upgrade_hint_before": "Download the AGI file above and file it manually in Skatteverket's e-service — or",
"upgrade_hint_link": "upgrade",
"upgrade_hint_after": "to submit directly from here."
},
"salary_calendar": {
"type_sick": "Sick leave",
"type_sick_short": "Sick",
"type_vab": "VAB",
"type_vab_short": "VAB",
"type_parental": "Parental leave",
"type_parental_short": "Par.",
"type_pregnancy": "Pregnancy benefit (graviditetspenning)",
"type_pregnancy_short": "Preg.",
"type_care_relative": "Care of close relative (närståendepenning)",
"type_care_relative_short": "Rel.",
"type_study": "Study leave",
"type_study_short": "Study",
"type_unpaid_leave": "Unpaid leave",
"type_unpaid_leave_short": "Unpaid",
"type_other_leave": "Other leave",
"type_other_leave_short": "Other",
"error_load_absence": "Could not load absence",
"error_load_worked": "Could not load worked hours",
"unknown_error": "Unknown error",
"confirm_bulk_delete": "Remove everything (worked time and absence) on {count, plural, one {# day} other {# days}}?",
"error_delete_worked_date": "Could not remove worked time on {date}",
"error_delete_absence_date": "Could not remove absence on {date}",
"prev_month": "Previous month",
"next_month": "Next month",
"fill_weekdays": "Fill weekdays",
"fill_weekdays_title": "Select all weekdays in the period that don't already have worked time",
"wd_mon": "Mon",
"wd_tue": "Tue",
"wd_wed": "Wed",
"wd_thu": "Thu",
"wd_fri": "Fri",
"wd_sat": "Sat",
"wd_sun": "Sun",
"cell_details_title": "Double-click for details",
"pill_title": "{label} ({hours}h)",
"worked_hours_in_period": "Worked hours in the period:",
"hint_click": "Click to select, shift-click for a range, double-click for details.",
"worked_time": "Worked time",
"days_selected": "{count, plural, one {day} other {days}} selected",
"clear_selection": "Clear selection",
"delete": "Remove",
"absence_action": "Absence…",
"worked_hours_action": "Worked hours…",
"error_hours_range": "Hours must be between 0 and 24",
"error_delete_date": "Could not remove {date}",
"error_save_hours": "Could not save hours",
"bulk_worked_title": "Worked hours",
"bulk_worked_clear_desc": "Worked time will be removed for {count, plural, one {# day} other {# days}}.",
"bulk_worked_desc": "{count, plural, one {# day} other {# days}} will be marked as worked. Existing hours for these dates will be overwritten.",
"hours_per_day": "Hours per day",
"hours_zero_hint": "Set to 0 to remove worked time on the selected days.",
"notes_label": "Note (optional)",
"conflicts_worked": "{count, plural, one {# day was skipped} other {# days were skipped}} — combined with existing absence it would have exceeded 24 hours.",
"close": "Close",
"ok": "OK",
"save": "Save",
"error_save_absence_date": "Could not save absence on {date}",
"bulk_absence_title": "Absence",
"bulk_absence_desc": "{count, plural, one {# day} other {# days}} will be marked as absence. Sick pay calculation (sjuklön), karensavdrag and AGI reporting are derived automatically.",
"type_label": "Type",
"conflicts_absence": "{count, plural, one {# day was skipped} other {# days were skipped}} — combined with existing worked time it would have exceeded 24 hours.",
"error_delete_worked": "Could not remove worked time",
"error_delete_absence": "Could not remove absence",
"inspector_desc": "Overview of worked time and absence on this day.",
"hours_count": "{hours} hours",
"delete_worked_aria": "Remove worked time",
"delete_absence_aria": "Remove absence",
"no_entries": "No entries on this day."
},
"salary_employee": {
"form_back_to_employees": "Back to employees",
"form_personal_info": "Personal information",
"form_first_name": "First name",
"form_last_name": "Last name",
"form_email": "Email",
"form_email_hint": "Required to send payslips",
"form_phone": "Phone",
"form_address": "Address",
"form_street_address": "Street address",
"form_postal_code": "Postal code",
"form_city": "City",
"form_employment": "Employment",
"form_employment_salary": "Employment and salary",
"form_employment_type": "Type",
"form_employment_type_employee": "Employee",
"form_employment_type_company_owner": "Company owner",
"form_employment_type_board_member": "Board member",
"form_employment_start": "Employment start date",
"form_employment_end": "End date",
"form_employment_degree": "Degree of employment (%)",
"form_salary": "Salary",
"form_salary_type": "Salary type",
"form_salary_type_monthly": "Monthly salary",
"form_salary_type_hourly": "Hourly wage",
"form_monthly_salary": "Monthly salary (gross, SEK)",
"form_hourly_rate": "Hourly rate (SEK)",
"form_dimensions_title": "Cost center / Project (default)",
"form_dimensions_hint": "Suggested on salary cost lines when salary runs are booked.",
"form_vacation": "Vacation",
"form_vacation_rule": "Vacation rule",
"form_vacation_rule_procentregeln": "Percentage rule (procentregeln, 12 %)",
"form_vacation_rule_sammaloneregeln": "Same-pay rule (sammalöneregeln)",
"form_vacation_rule_semesterersattning": "Vacation compensation (semesterersättning, paid out directly)",
"form_vacation_rule_none": "No vacation accrual",
"form_vacation_semesterersattning_hint": "12 % is added to every salary run and booked against 7285. No vacation pay liability builds up — common for hourly and fixed-term employees.",
"form_vacation_days": "Vacation days per year",
"form_vacation_days_hint": "Statutory minimum: 25 days",
"form_bank_account": "Bank account",
"form_clearing_number": "Clearing number",
"form_account_number": "Account number",
"form_bank_hint": "Required before a salary run can be approved",
"form_cancel": "Cancel",
"form_save": "Save",
"form_saving": "Saving...",
"new_title": "New employee",
"new_created": "Employee created",
"new_create_failed": "Could not create employee",
"new_personnummer_label": "Personnummer (12 digits)",
"new_personnummer_placeholder": "YYYYMMDDNNNN",
"new_personnummer_hint": "Encrypted when stored",
"new_vacation_none_hint": "No accrual to 2920 is booked. Common for owners who are the only employee.",
"detail_updated": "Employee updated",
"detail_update_failed": "Could not update employee",
"detail_deactivate_confirm": "Do you want to deactivate this employee?",
"detail_deactivated": "Employee deactivated",
"detail_not_found": "Employee not found",
"detail_deactivate": "Deactivate",
"detail_employment_start_hint": "The salary is prorated automatically if the employment starts or ends in the middle of a pay period.",
"detail_employment_end_hint": "Leave empty for ongoing employment.",
"detail_f_skatt_verified": "F-skatt verified: {date}",
"detail_vacation_none_hint": "No accrual to 2920 is booked. Use if vacation is included in the monthly salary — common for owners who are the only employee.",
"detail_save_changes": "Save changes",
"tax_title": "Tax",
"tax_form_label": "Tax status",
"tax_form_tooltip": "A-skatt: you withhold preliminary tax according to the tax table (skattetabell). F-skatt/FA-skatt: the person handles their own tax — no tax is withheld.",
"tax_status_not_verified": "Not verified",
"tax_sidoinkomst_label": "Side income (sidoinkomst, 30 % tax withholding)",
"tax_sidoinkomst_tooltip": "Check this if this is NOT the person's main employer. A flat 30 % tax is then withheld instead of according to the table.",
"tax_municipality_label": "Registered municipality (folkbokföringskommun)",
"tax_municipality_tooltip": "The municipality where the person is registered (as of 1 November the previous year). It determines the tax table (skattetabell) — select a municipality and the table is filled in automatically.",
"tax_table_label": "Tax table (skattetabell)",
"tax_table_tooltip": "Skatteverket's tables 2942, based on the municipality's total tax rate. Derived automatically from the registered municipality.",
"tax_table_pick_municipality": "Select a municipality above",
"tax_table_use_municipality": "Use the municipality's table",
"tax_table_enter_manually": "Enter table manually",
"tax_column_label": "Column (kolumn)",
"tax_column_tooltip": "The column in the tax table determines how the withholding is calculated, mainly based on age and income type. Suggested automatically from the personnummer.",
"tax_column_suggested_under_66": "Suggested automatically: employee under 66.",
"tax_column_senior_warning": "The person has turned 66 — select the column manually (salary = column 3, pension = column 2).",
"tax_no_table_sidoinkomst": "Side income (sidoinkomst): a flat 30 % tax is withheld — no tax table is needed.",
"tax_no_table_f_skatt": "With F-skatt or FA-skatt the person handles their own tax — no tax is withheld and no tax table is needed.",
"benefits_title": "Benefits",
"benefits_add": "Add benefit",
"benefits_loading": "Loading…",
"benefits_empty": "No benefits registered. Active benefits are added automatically as rows in salary runs.",
"benefits_type": "Type",
"benefits_description": "Description",
"benefits_value_per_month": "Value/month",
"benefits_period": "Period",
"benefits_ongoing": "ongoing",
"benefits_remove": "Remove",
"benefits_added": "Benefit added",
"benefits_save_failed": "Could not save benefit",
"benefits_removed": "Benefit removed",
"benefits_remove_failed": "Could not remove",
"benefits_type_bike": "Bicycle benefit (cykelförmån)",
"benefits_type_car": "Car benefit (bilförmån)",
"benefits_type_meals": "Meal benefit (kostförmån)",
"benefits_type_housing": "Housing benefit (bostadsförmån)",
"benefits_type_wellness": "Wellness benefit (friskvård, taxable part)",
"benefits_type_other": "Other benefit",
"benefits_annual_market_value": "Annual market value (SEK)",
"benefits_annual_market_value_placeholder": "e.g. 8 400 (700 kr/month)",
"benefits_bike_hint": "Skatteverket's standard rule: the first 3 000 kr/year is tax-free. The remainder is taxed monthly.",
"benefits_monthly_value_preview": "Monthly benefit value:",
"benefits_monthly_value": "Monthly benefit value (SEK)",
"benefits_valid_from": "Valid from",
"benefits_valid_to": "Valid to (optional)",
"kommun_search_placeholder": "Search municipality…",
"kommun_table_number": "Table {number}",
"kommun_load_failed": "Could not fetch the municipality list — type the municipality name and enter the tax table (skattetabell) manually."
},
"salary_override": {
"title": "Advanced mode",
"adjusted_badge": "Adjusted",
"hide": "Hide",
"show": "Show",
"description": "Adjust the tax deduction or employer contributions (arbetsgivaravgifter) for this employee — e.g. for R&D relief (FoU-avdrag) or adjusted withholding (jämkning). Adjusted values are used for bookkeeping and AGI reporting. Only allowed in review mode.",
"tax_label": "Tax deduction (kr)",
"avgifter_label": "Employer contributions (kr)",
"basis_label": "Contribution basis (kr)",
"calculated": "Calculated:",
"reason_label": "Reason (required for adjustments)",
"reason_placeholder": "E.g. FoU-avdrag 10 % on employer contributions, jämkning per decision from Skatteverket",
"save": "Save adjustment",
"clear": "Clear adjustment",
"saved": "Adjustment saved",
"cleared": "Adjustment cleared",
"save_failed": "Could not save adjustment",
"clear_failed": "Could not clear adjustment",
"unknown_error": "Unknown error"
},
"salary_run_employee": {
"li_monthly_salary": "Monthly salary",
"li_hourly_salary": "Hourly pay",
"li_overtime": "Overtime",
"li_overtime_50": "Overtime 50 %",
"li_overtime_100": "Overtime 100 %",
"li_ob_weekday_evening": "OB weekday evening",
"li_ob_weekend": "OB weekend",
"li_ob_night": "OB night",
"li_ob_holiday": "OB public holiday",
"li_bonus": "Bonus",
"li_commission": "Commission",
"li_gross_deduction_pension": "Gross deduction — pension",
"li_gross_deduction_other": "Gross deduction — other",
"li_benefit_car": "Car benefit (bilförmån)",
"li_benefit_housing": "Housing benefit",
"li_benefit_meals": "Meal benefit (kostförmån)",
"li_benefit_wellness": "Wellness benefit (friskvård)",
"li_benefit_bike": "Bicycle benefit",
"li_benefit_other": "Other benefit",
"li_sick_karens": "Karensavdrag",
"li_sick_day2_14": "Sick pay (sjuklön day 214, 80 %)",
"li_sick_day15_plus": "Sick pay (sjuklön day 15+, Försäkringskassan)",
"li_vab": "VAB (care of sick child)",
"li_parental_leave": "Parental leave",
"li_unpaid_leave": "Unpaid leave",
"li_vacation": "Vacation (semester)",
"li_semesterersattning": "Vacation pay (semesterersättning)",
"li_traktamente_taxfree": "Per diem (traktamente, tax-free)",
"li_traktamente_taxable": "Per diem (traktamente, taxable)",
"li_mileage_taxfree": "Mileage allowance (tax-free)",
"li_mileage_taxable": "Mileage allowance (taxable)",
"li_net_deduction_advance": "Net deduction — advance",
"li_net_deduction_union": "Net deduction — union fee",
"li_net_deduction_benefit_payment": "Net deduction — benefit payment",
"li_net_deduction_other": "Net deduction — other",
"li_correction": "Correction",
"li_other": "Other",
"error_load_run": "Could not load salary run",
"error_load_employee": "Could not load employee",
"unknown_error": "Unknown error",
"error_calculate": "Calculation failed",
"loading": "Loading...",
"back_to_run": "Back to salary run",
"payslip_period": "Payslip {period}",
"calculate": "Calculate",
"gross": "Gross",
"tax": "Tax",
"net": "Net",
"avgifter": "Contributions",
"adjusted_badge": "Adjusted",
"time_absence_title": "Time and absence",
"calendar_hint_hourly": "Select days and enter worked hours or absence. Base pay is calculated as hourly rate × total worked hours. Karensavdrag, sick pay (sjuklön) and AGI reporting are derived automatically.",
"calendar_hint_monthly": "Mark sickness, VAB, parental leave and other absence per day. Karensavdrag, sick pay (sjuklön) and AGI reporting are calculated automatically.",
"sick_days": "Sick days",
"vab_days": "VAB days",
"parental_days": "Parental leave",
"days_count": "{days} days",
"line_items_title": "Pay items ({count})",
"no_line_items": "No pay items. Run the calculation on the salary run to create standard items.",
"th_type": "Type",
"th_description": "Description",
"th_quantity": "Quantity",
"th_amount": "Amount"
},
"salary_tax_tables": {
"checking": "Checking tax tables…",
"source_api": "Tax tables for {year} are fetched live from Skatteverket",
"source_fallback": "Skatteverket's API is unreachable — using local fallback data for {year}",
"source_unavailable": "Tax tables for {year} could not be fetched",
"recheck": "Check again"
},
"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"
}
}