From ba1c3378f6170c366508b33da6f74005d835c0c4 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 5 Nov 2023 17:26:36 +1100 Subject: [PATCH 01/31] minor fixes for formatting --- app/Services/Invoice/EInvoice/FacturaEInvoice.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/Invoice/EInvoice/FacturaEInvoice.php b/app/Services/Invoice/EInvoice/FacturaEInvoice.php index 0f7907cde741..d8834dba61a4 100644 --- a/app/Services/Invoice/EInvoice/FacturaEInvoice.php +++ b/app/Services/Invoice/EInvoice/FacturaEInvoice.php @@ -558,7 +558,7 @@ class FacturaEInvoice extends AbstractService 'centres' => $this->setFace(), // "cnoCnae" => "04791", // Clasif. Nacional de Act. Económicas // "ineTownCode" => "280796" // Cód. de municipio del INE - ]; + ]; if($this->invoice->client->classification === 'individual') { $buyer_array['name'] = $this->invoice->client->present()->first_name(); From 985f2c7dbbcd7a1963aad497411fc6285ca638dd Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 5 Nov 2023 18:03:31 +1100 Subject: [PATCH 02/31] Updates for Translations --- lang/ar/texts.php | 290 ++- lang/cs/texts.php | 710 +++--- lang/da/texts.php | 5624 +++++++++++++++++++++--------------------- lang/de/texts.php | 58 +- lang/es/texts.php | 100 +- lang/fr/texts.php | 76 +- lang/fr_CH/texts.php | 136 +- lang/zh_TW/texts.php | 3976 ++++++++++++++--------------- 8 files changed, 5562 insertions(+), 5408 deletions(-) diff --git a/lang/ar/texts.php b/lang/ar/texts.php index 8110483c791a..e1d1ec636dd3 100644 --- a/lang/ar/texts.php +++ b/lang/ar/texts.php @@ -645,7 +645,7 @@ $LANG = array( 'primary_user' => 'المستخدم الأساسي', 'help' => 'يساعد', 'playground' => 'ملعب', - 'support_forum' => 'Support Forums', + 'support_forum' => 'منتديات الدعم', 'invoice_due_date' => 'تاريخ الاستحقاق', 'quote_due_date' => 'صالح حتى', 'valid_until' => 'صالح حتى', @@ -739,7 +739,7 @@ $LANG = array( 'activity_7' => ':contact الفاتورة المعروضة :invoice لـ :client', 'activity_8' => ':user الفاتورة المؤرشفة :invoice', 'activity_9' => ':user الفاتورة المحذوفة :invoice', - 'activity_10' => ':user entered payment :payment for :payment_amount on invoice :invoice for :client', + 'activity_10' => ':user الدفعة المدخلة :payment لـ :payment _المبلغ الموجود في الفاتورة :invoice لـ :client', 'activity_11' => ':user الدفع المحدث :payment', 'activity_12' => ':user الدفع المؤرشف :payment', 'activity_13' => ':user الدفعة المحذوفة :payment', @@ -1123,7 +1123,7 @@ $LANG = array( 'plan_status' => 'حالة الخطة', 'plan_upgrade' => 'يرقي', - 'plan_change' => 'Manage Plan', + 'plan_change' => 'إدارة الخطة', 'pending_change_to' => 'تغيير الى', 'plan_changes_to' => ': خطة على a0b70e20 definitelyeeaz0', 'plan_term_changes_to' => ': خطة (: term) في a0b70e20 definitelyeeaz0', @@ -1970,7 +1970,7 @@ $LANG = array( 'current_quarter' => 'الربع الحالي', 'last_quarter' => 'الربع الأخير', 'last_year' => 'العام الماضي', - 'all_time' => 'All Time', + 'all_time' => 'كل الوقت', 'custom_range' => 'نطاق مخصص', 'url' => 'URL', 'debug' => 'تصحيح', @@ -2230,7 +2230,7 @@ $LANG = array( 'restore_recurring_expense' => 'استعادة النفقات المتكررة', 'restored_recurring_expense' => 'تمت استعادة النفقات المتكررة بنجاح', 'delete_recurring_expense' => 'حذف المصاريف المتكررة', - 'deleted_recurring_expense' => 'Successfully deleted recurring expense', + 'deleted_recurring_expense' => 'تم حذف النفقات المتكررة بنجاح', 'view_recurring_expense' => 'عرض المصاريف المتكررة', 'taxes_and_fees' => 'الضرائب والرسوم', 'import_failed' => 'فشل الاستيراد', @@ -2374,9 +2374,12 @@ $LANG = array( 'currency_cuban_peso' => 'بيزو كوبي', 'currency_bz_dollar' => 'دولار BZ', - 'currency_libyan_dinar' => 'Libyan Dinar', - 'currency_silver_troy_ounce' => 'Silver Troy Ounce', - 'currency_gold_troy_ounce' => 'Gold Troy Ounce', + 'currency_libyan_dinar' => 'الدينار الليبي', + 'currency_silver_troy_ounce' => 'أونصة تروي فضية', + 'currency_gold_troy_ounce' => 'أونصة تروي ذهبية', + 'currency_nicaraguan_córdoba' => 'قرطبة نيكاراغوا', + 'currency_malagasy_ariary' => 'أرياري مدغشقر', + "currency_tongan_pa_anga" => "تونجا بانجا", 'review_app_help' => 'نأمل أن تستمتع باستخدام التطبيق.
إذا كنت تفكر في :link فإننا نقدر ذلك كثيرًا!', 'writing_a_review' => 'كتابة مراجعة', @@ -2488,8 +2491,8 @@ $LANG = array( 'partial_due_date' => 'تاريخ الاستحقاق الجزئي', 'task_fields' => 'مجالات المهام', 'product_fields_help' => 'قم بسحب وإسقاط الحقول لتغيير ترتيبها', - 'custom_value1' => 'Custom Value 1', - 'custom_value2' => 'Custom Value 2', + 'custom_value1' => 'القيمة المخصصة 1', + 'custom_value2' => 'القيمة المخصصة 2', 'enable_two_factor' => 'توثيق ذو عاملين', 'enable_two_factor_help' => 'استخدم هاتفك لتأكيد هويتك عند تسجيل الدخول', 'two_factor_setup' => 'إعداد ثنائي', @@ -3312,9 +3315,9 @@ $LANG = array( 'freq_three_years' => 'ثلاث سنوات', 'military_time_help' => 'عرض 24 ساعة', 'click_here_capital' => 'انقر هنا', - 'marked_invoice_as_paid' => 'Successfully marked invoice as paid', + 'marked_invoice_as_paid' => 'تم وضع علامة على الفاتورة على أنها مدفوعة بنجاح', 'marked_invoices_as_sent' => 'نجح وضع علامة على الفواتير على أنها مرسلة', - 'marked_invoices_as_paid' => 'Successfully marked invoices as paid', + 'marked_invoices_as_paid' => 'تم وضع علامة على الفواتير على أنها مدفوعة بنجاح', 'activity_57' => 'فشل النظام في إرسال الفاتورة بالبريد الإلكتروني :invoice', 'custom_value3' => 'القيمة المخصصة 3', 'custom_value4' => 'القيمة المخصصة 4', @@ -3654,9 +3657,9 @@ $LANG = array( 'send_date' => 'تاريخ الإرسال', 'auto_bill_on' => 'فوترة تلقائية في', 'minimum_under_payment_amount' => 'الحد الأدنى لمبلغ الدفع', - 'allow_over_payment' => 'السماح بدفع أكثر من اللازم', + 'allow_over_payment' => 'السماح بالدفع الزائد', 'allow_over_payment_help' => 'دعم دفع مبلغ إضافي لقبول الإكراميات', - 'allow_under_payment' => 'السماح تحت السداد', + 'allow_under_payment' => 'السماح بالدفع الناقص', 'allow_under_payment_help' => 'دعم دفع الحد الأدنى من مبلغ الإيداع / الجزئي', 'test_mode' => 'الوضع التجريبي', 'calculated_rate' => 'السعر المحسوب', @@ -3836,7 +3839,7 @@ $LANG = array( 'notification_credit_viewed' => 'عرض العميل التالي :client الائتمان :credit لـ :amount.', 'reset_password_text' => 'أدخل بريدك الإلكتروني لإعادة تعيين كلمة المرور الخاصة بك.', 'password_reset' => 'إعادة تعيين كلمة المرور', - 'account_login_text' => 'Welcome! Glad to see you.', + 'account_login_text' => 'مرحباً! سعيد برؤيتك.', 'request_cancellation' => 'طلب الغاء', 'delete_payment_method' => 'حذف وسيلة الدفع', 'about_to_delete_payment_method' => 'أنت على وشك حذف طريقة الدفع.', @@ -3950,11 +3953,11 @@ $LANG = array( 'add_payment_method_first' => 'إضافة طريقة دفع', 'no_items_selected' => 'لم يتم تحديد عناصر.', 'payment_due' => 'استحقاق الدفع', - 'account_balance' => 'Account Balance', + 'account_balance' => 'رصيد حساب', 'thanks' => 'شكرًا', 'minimum_required_payment' => 'الحد الأدنى للدفع المطلوب هو :amount', - 'under_payments_disabled' => 'لا تدعم الشركة بموجب المدفوعات.', - 'over_payments_disabled' => 'لا تدعم الشركة المدفوعات.', + 'under_payments_disabled' => 'الشركة لا تدعم الدفعات المنخفضة.', + 'over_payments_disabled' => 'الشركة لا تدعم المدفوعات الزائدة.', 'saved_at' => 'تم الحفظ في :time', 'credit_payment' => 'تم تطبيق الائتمان على الفاتورة :invoice_number', 'credit_subject' => 'رصيد جديد :number من :account', @@ -4300,7 +4303,7 @@ $LANG = array( 'include_drafts' => 'قم بتضمين المسودات', 'include_drafts_help' => 'تضمين مسودة السجلات في التقارير', 'is_invoiced' => 'مفوتر', - 'change_plan' => 'Manage Plan', + 'change_plan' => 'إدارة الخطة', 'persist_data' => 'استمرارية البيانات', 'customer_count' => 'عدد العملاء', 'verify_customers' => 'تحقق من العملاء', @@ -4629,8 +4632,8 @@ $LANG = array( 'search_purchase_order' => 'بحث طلب الشراء', 'search_purchase_orders' => 'بحث طلبات الشراء', 'login_url' => 'رابط تسجيل الدخول', - 'enable_applying_payments' => 'تمكين تطبيق المدفوعات', - 'enable_applying_payments_help' => 'دعم إنشاء وتطبيق المدفوعات بشكل منفصل', + 'enable_applying_payments' => 'المدفوعات الزائدة اليدوية', + 'enable_applying_payments_help' => 'دعم إضافة مبلغ الدفع الزائد يدويًا على الدفع', 'stock_quantity' => 'كمية المخزون', 'notification_threshold' => 'عتبة الإخطار', 'track_inventory' => 'حساب المخزون', @@ -4881,7 +4884,7 @@ $LANG = array( 'all_clients' => 'كل العملاء', 'show_aging_table' => 'عرض جدول التقادم', 'show_payments_table' => 'إظهار جدول المدفوعات', - 'only_clients_with_invoices' => 'Only Clients with Invoices', + 'only_clients_with_invoices' => 'فقط العملاء الذين لديهم فواتير', 'email_statement' => 'بيان البريد الإلكتروني', 'once' => 'مرة واحدة', 'schedules' => 'جداول', @@ -4925,7 +4928,7 @@ $LANG = array( 'sync_from' => 'مزامنة من', 'gateway_payment_text' => 'الفواتير: :invoices لـ :amount للعميل :client', 'gateway_payment_text_no_invoice' => 'الدفع بدون فاتورة للمبلغ :amount للعميل :client', - 'click_to_variables' => 'Click here to see all variables.', + 'click_to_variables' => 'انقر هنا لرؤية كافة المتغيرات.', 'ship_to' => 'سافر على متن سفينة لِـ', 'stripe_direct_debit_details' => 'يرجى التحويل إلى الحساب المصرفي المحدد أعلاه.', 'branch_name' => 'اسم الفرع', @@ -5031,117 +5034,136 @@ $LANG = array( 'tax_exempt' => 'معفاة من الضرائب', 'late_fee_added_locked_invoice' => 'تمت إضافة الرسوم المتأخرة للفاتورة :invoice على a0b70e20 XXeeaz0', 'lang_Khmer' => 'الخمير', - 'routing_id' => 'Routing ID', - 'enable_e_invoice' => 'Enable E-Invoice', - 'e_invoice_type' => 'E-Invoice Type', - 'reduced_tax' => 'Reduced Tax', - 'override_tax' => 'Override Tax', - 'zero_rated' => 'Zero Rated', - 'reverse_tax' => 'Reverse Tax', - 'updated_tax_category' => 'Successfully updated the tax category', - 'updated_tax_categories' => 'Successfully updated the tax categories', - 'set_tax_category' => 'Set Tax Category', - 'payment_manual' => 'Payment Manual', - 'expense_payment_type' => 'Expense Payment Type', - 'payment_type_Cash App' => 'Cash App', - 'rename' => 'Rename', - 'renamed_document' => 'Successfully renamed document', - 'e_invoice' => 'E-Invoice', - 'light_dark_mode' => 'Light/Dark Mode', - 'activities' => 'Activities', - 'recent_transactions' => "Here are your company's most recent transactions:", - 'country_Palestine' => "Palestine", - 'country_Taiwan' => 'Taiwan', - 'duties' => 'Duties', - 'order_number' => 'Order Number', - 'order_id' => 'Order', - 'total_invoices_outstanding' => 'Total Invoices Outstanding', - 'recent_activity' => 'Recent Activity', - 'enable_auto_bill' => 'Enable auto billing', - 'email_count_invoices' => 'Email :count invoices', - 'invoice_task_item_description' => 'Invoice Task Item Description', - 'invoice_task_item_description_help' => 'Add the item description to the invoice line items', - 'next_send_time' => 'Next Send Time', - 'uploaded_certificate' => 'Successfully uploaded certificate', - 'certificate_set' => 'Certificate set', - 'certificate_not_set' => 'Certificate not set', - 'passphrase_set' => 'Passphrase set', - 'passphrase_not_set' => 'Passphrase not set', - 'upload_certificate' => 'Upload Certificate', - 'certificate_passphrase' => 'Certificate Passphrase', - 'valid_vat_number' => 'Valid VAT Number', - 'react_notification_link' => 'React Notification Links', - 'react_notification_link_help' => 'Admin emails will contain links to the react application', - 'show_task_billable' => 'Show Task Billable', - 'credit_item' => 'Credit Item', - 'drop_file_here' => 'Drop file here', - 'files' => 'Files', - 'camera' => 'Camera', - 'gallery' => 'Gallery', - 'project_location' => 'Project Location', - 'add_gateway_help_message' => 'Add a payment gateway (ie. Stripe, WePay or PayPal) to accept online payments', - 'lang_Hungarian' => 'Hungarian', - 'use_mobile_to_manage_plan' => 'Use your phone subscription settings to manage your plan', - 'item_tax3' => 'Item Tax3', - 'item_tax_rate1' => 'Item Tax Rate 1', - 'item_tax_rate2' => 'Item Tax Rate 2', - 'item_tax_rate3' => 'Item Tax Rate 3', - 'buy_price' => 'Buy Price', - 'country_Macedonia' => 'Macedonia', - 'admin_initiated_payments' => 'Admin Initiated Payments', - 'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice', - 'paid_date' => 'Paid Date', - 'downloaded_entities' => 'An email will be sent with the PDFs', - 'lang_French - Swiss' => 'French - Swiss', - 'currency_swazi_lilangeni' => 'Swazi Lilangeni', - 'income' => 'Income', - 'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.', - 'vendor_phone' => 'Vendor Phone', - 'mercado_pago' => 'Mercado Pago', - 'mybank' => 'MyBank', - 'paypal_paylater' => 'Pay in 4', - 'paid_date' => 'Paid Date', - 'district' => 'District', - 'region' => 'Region', - 'county' => 'County', - 'tax_details' => 'Tax Details', - 'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client', - 'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client', - 'default_payment_type' => 'Default Payment Type', - 'number_precision' => 'Number precision', - 'number_precision_help' => 'Controls the number of decimals supported in the interface', - 'is_tax_exempt' => 'Tax Exempt', - 'drop_files_here' => 'Drop files here', - 'upload_files' => 'Upload Files', - 'download_e_invoice' => 'Download E-Invoice', - 'triangular_tax_info' => 'Intra-community triangular transaction', - 'intracommunity_tax_info' => 'Tax-free intra-community delivery', - 'reverse_tax_info' => 'Please note that this supply is subject to reverse charge', - 'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba', - 'public' => 'Public', - 'private' => 'Private', - 'image' => 'Image', - 'other' => 'Other', - 'linked_to' => 'Linked To', - 'file_saved_in_path' => 'The file has been saved in :path', - 'unlinked_transactions' => 'Successfully unlinked :count transactions', - 'unlinked_transaction' => 'Successfully unlinked transaction', - 'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions', - 'marked_sent_credits' => 'Successfully marked credits sent', - 'show_document_preview' => 'Show Document Preview', - 'cash_accounting' => 'Cash accounting', - 'click_or_drop_files_here' => 'Click or drop files here', - 'set_public' => 'Set public', - 'set_private' => 'Set private', - 'individual' => 'Individual', - 'business' => 'Business', - 'partnership' => 'partnership', - 'trust' => 'Trust', - 'charity' => 'Charity', - 'government' => 'Government', - 'in_stock_quantity' => 'Stock quantity', - 'vendor_contact' => 'Vendor Contact', - + 'routing_id' => 'معرف التوجيه', + 'enable_e_invoice' => 'تفعيل الفاتورة الإلكترونية', + 'e_invoice_type' => 'نوع الفاتورة الإلكترونية', + 'reduced_tax' => 'تخفيض الضرائب', + 'override_tax' => 'تجاوز الضريبة', + 'zero_rated' => 'تصنيف صفر', + 'reverse_tax' => 'عكس الضريبة', + 'updated_tax_category' => 'تم تحديث فئة الضريبة بنجاح', + 'updated_tax_categories' => 'تم تحديث فئات الضرائب بنجاح', + 'set_tax_category' => 'تعيين فئة الضريبة', + 'payment_manual' => 'دليل الدفع', + 'expense_payment_type' => 'نوع دفع المصاريف', + 'payment_type_Cash App' => 'التطبيق النقدي', + 'rename' => 'إعادة تسمية', + 'renamed_document' => 'تمت إعادة تسمية المستند بنجاح', + 'e_invoice' => 'الفاتورة الإلكترونية', + 'light_dark_mode' => 'وضع الضوء/الظلام', + 'activities' => 'أنشطة', + 'recent_transactions' => "فيما يلي أحدث معاملات شركتك:", + 'country_Palestine' => "فلسطين", + 'country_Taiwan' => 'تايوان', + 'duties' => 'الواجبات', + 'order_number' => 'رقم الأمر', + 'order_id' => 'طلب', + 'total_invoices_outstanding' => 'إجمالي الفواتير المعلقة', + 'recent_activity' => 'النشاط الأخير', + 'enable_auto_bill' => 'تمكين الفوترة التلقائية', + 'email_count_invoices' => 'إرسال الفواتير عبر البريد الإلكتروني :count', + 'invoice_task_item_description' => 'وصف عنصر مهمة الفاتورة', + 'invoice_task_item_description_help' => 'اضافة وصف الصنف إلى بنود الفاتورة', + 'next_send_time' => 'وقت الإرسال التالي', + 'uploaded_certificate' => 'تم تحميل الشهادة بنجاح', + 'certificate_set' => 'مجموعة الشهادات', + 'certificate_not_set' => 'لم يتم تعيين الشهادة', + 'passphrase_set' => 'مجموعة عبارة المرور', + 'passphrase_not_set' => 'لم يتم تعيين عبارة المرور', + 'upload_certificate' => 'تحميل الشهادة', + 'certificate_passphrase' => 'عبارة مرور الشهادة', + 'valid_vat_number' => 'رقم ضريبة القيمة المضافة صالح', + 'react_notification_link' => 'رد فعل روابط الإخطار', + 'react_notification_link_help' => 'ستحتوي رسائل البريد الإلكتروني الخاصة بالمسؤول على روابط لتطبيق التفاعل', + 'show_task_billable' => 'إظهار المهمة القابلة للفوترة', + 'credit_item' => 'عنصر الائتمان', + 'drop_file_here' => 'قم بإسقاط الملف هنا', + 'files' => 'ملفات', + 'camera' => 'آلة تصوير', + 'gallery' => 'صالة عرض', + 'project_location' => 'موقع المشروع', + 'add_gateway_help_message' => 'اضافة بوابة دفع (مثل Stripe أو WePay أو PayPal) لقبول الدفع عبر الإنترنت', + 'lang_Hungarian' => 'المجرية', + 'use_mobile_to_manage_plan' => 'استخدم إعدادات اشتراك هاتفك لإدارة خطتك', + 'item_tax3' => 'ضريبة السلعة3', + 'item_tax_rate1' => 'البند معدل الضريبة 1', + 'item_tax_rate2' => 'معدل ضريبة السلعة 2', + 'item_tax_rate3' => 'معدل ضريبة السلعة 3', + 'buy_price' => 'سعر شراء', + 'country_Macedonia' => 'مقدونيا', + 'admin_initiated_payments' => 'بدأ المشرف المدفوعات', + 'admin_initiated_payments_help' => 'دعم إدخال دفعة في بوابة الإدارة بدون فاتورة', + 'paid_date' => 'تاريخ المدفوعة', + 'downloaded_entities' => 'سيتم إرسال بريد إلكتروني مع ملفات PDF', + 'lang_French - Swiss' => 'الفرنسية - السويسرية', + 'currency_swazi_lilangeni' => 'ليلانجيني السوازي', + 'income' => 'دخل', + 'amount_received_help' => 'أدخل قيمة هنا إذا كان إجمالي المبلغ المستلم أكثر من مبلغ الفاتورة، أو عند تسجيل دفعة بدون فواتير. وإلا فيجب ترك هذا الحقل فارغًا.', + 'vendor_phone' => 'هاتف البائع', + 'mercado_pago' => 'ميركادو باجو', + 'mybank' => 'بنكي', + 'paypal_paylater' => 'الدفع في 4', + 'paid_date' => 'تاريخ المدفوعة', + 'district' => 'يصرف', + 'region' => 'منطقة', + 'county' => 'مقاطعة', + 'tax_details' => 'التفاصيل الضريبية', + 'activity_10_online' => ':contact تم إدخال الدفعة :payment للفاتورة :invoice لـ :client', + 'activity_10_manual' => ':user الدفعة المدخلة :payment للفاتورة :invoice لـ :client', + 'default_payment_type' => 'نوع الدفع الافتراضي', + 'number_precision' => 'دقة العدد', + 'number_precision_help' => 'التحكم في عدد الكسور العشرية المدعومة في الواجهة', + 'is_tax_exempt' => 'معفاة من الضرائب', + 'drop_files_here' => 'قم بوضع الملفات هنا', + 'upload_files' => 'تحميل الملفات', + 'download_e_invoice' => 'تحميل الفاتورة الإلكترونية', + 'triangular_tax_info' => 'المعاملات الثلاثية داخل المجتمع', + 'intracommunity_tax_info' => 'التوصيل داخل المجتمع معفي من الضرائب', + 'reverse_tax_info' => 'يرجى ملاحظة أن هذا العرض يخضع لرسوم عكسية', + 'currency_nicaraguan_cordoba' => 'قرطبة نيكاراغوا', + 'public' => 'عام', + 'private' => 'خاص', + 'image' => 'صورة', + 'other' => 'آخر', + 'linked_to' => 'مرتبط ب', + 'file_saved_in_path' => 'تم حفظ الملف في :path', + 'unlinked_transactions' => 'تم إلغاء ربط معاملات :count بنجاح', + 'unlinked_transaction' => 'تم إلغاء ربط المعاملة بنجاح', + 'view_dashboard_permission' => 'السماح للمستخدم بالوصول إلى لوحة المعلومات، تقتصر البيانات على الأذونات المتاحة', + 'marked_sent_credits' => 'تم وضع علامة على الاعتمادات المرسلة بنجاح', + 'show_document_preview' => 'إظهار معاينة المستند', + 'cash_accounting' => 'المحاسبة النقدية', + 'click_or_drop_files_here' => 'انقر أو أسقط الملفات هنا', + 'set_public' => 'تعيين عام', + 'set_private' => 'تعيين خاص', + 'individual' => 'فردي', + 'business' => 'عمل', + 'partnership' => 'شراكة', + 'trust' => 'يثق', + 'charity' => 'صدقة', + 'government' => 'حكومة', + 'in_stock_quantity' => 'كمية المخزون', + 'vendor_contact' => 'الاتصال بالبائع', + 'expense_status_4' => 'غير مدفوعة الأجر', + 'expense_status_5' => 'مدفوع', + 'ziptax_help' => 'ملاحظة: تتطلب هذه الميزة مفتاح Zip-Tax API للبحث عن ضريبة المبيعات الأمريكية حسب العنوان', + 'cache_data' => 'بيانات ذاكرة التخزين المؤقت', + 'unknown' => 'مجهول', + 'webhook_failure' => 'فشل خطاف الويب', + 'email_opened' => 'تم فتح البريد الإلكتروني', + 'email_delivered' => 'تم تسليم البريد الإلكتروني', + 'log' => 'سجل', + 'classification' => 'تصنيف', + 'stock_quantity_number' => 'كمية المخزون', + 'upcoming' => 'القادمة', + 'client_contact' => 'الاتصال بالعميل', + 'uncategorized' => 'غير مصنف', + 'login_notification' => 'إشعار تسجيل الدخول', + 'login_notification_help' => 'يرسل بريدًا إلكترونيًا لإعلامك بأنه قد تم تسجيل الدخول.', + 'payment_refund_receipt' => 'إيصال استرداد المبلغ رقم :number', + 'payment_receipt' => 'إيصال الدفع رقم :number', + 'load_template_description' => 'سيتم تطبيق القالب على ما يلي:', + 'run_template' => 'تشغيل القالب', ); return $LANG; diff --git a/lang/cs/texts.php b/lang/cs/texts.php index e8ce34bb0363..7423ca953f9b 100644 --- a/lang/cs/texts.php +++ b/lang/cs/texts.php @@ -3,7 +3,7 @@ $LANG = array( 'organization' => 'Organizace', 'name' => 'Název', - 'website' => 'Stránky', + 'website' => 'Web', 'work_phone' => 'Telefon', 'address' => 'Adresa', 'address1' => 'Ulice', @@ -16,7 +16,7 @@ $LANG = array( 'first_name' => 'Jméno', 'last_name' => 'Příjmení', 'phone' => 'Telefon', - 'email' => 'Email', + 'email' => 'E-mail', 'additional_info' => 'Další informace', 'payment_terms' => 'Platební podmínky', 'currency_id' => 'Měna', @@ -63,7 +63,7 @@ $LANG = array( 'clone_invoice' => 'Zkopírovat do faktury', 'archive_invoice' => 'Archivovat fakturu', 'delete_invoice' => 'Smazat fakturu', - 'email_invoice' => 'Poslat emailem', + 'email_invoice' => 'Poslat e-mailem', 'enter_payment' => 'Zadat platbu', 'tax_rates' => 'Sazby daně', 'rate' => 'Sazba', @@ -92,7 +92,7 @@ $LANG = array( 'download' => 'Stáhnout', 'cancel' => 'Zrušit', 'close' => 'Zavřít', - 'provide_email' => 'Zadejte validní email', + 'provide_email' => 'Zadejte validní e-mail', 'powered_by' => 'Vytvořeno', 'no_items' => 'Žádné položky', 'recurring_invoices' => 'Pravidelné faktury', @@ -162,7 +162,7 @@ $LANG = array( 'are_you_sure' => 'Jste si jisti?', 'payment_type_id' => 'Typ platby', 'amount' => 'Částka', - 'work_email' => 'Email', + 'work_email' => 'E-mail', 'language_id' => 'Jazyk', 'timezone_id' => 'Časová zóna', 'date_format_id' => 'Formát datumu', @@ -173,12 +173,12 @@ $LANG = array( 'logo_help' => 'Podporováno: JPEG, GIF a PNG', 'payment_gateway' => 'Platební brána', 'gateway_id' => 'Brána', - 'email_notifications' => 'Emailové notifikace', - 'email_viewed' => 'Odeslat email, pokud je faktura zobrazena', - 'email_paid' => 'Odeslat email, pokud je faktura zaplacena', + 'email_notifications' => 'E-mailové notifikace', + 'email_viewed' => 'Odeslat e-mail, pokud je faktura zobrazena', + 'email_paid' => 'Odeslat e-mail, pokud je faktura zaplacena', 'site_updates' => 'Změny na webu', 'custom_messages' => 'Volitelné vzkazy', - 'default_email_footer' => 'Nastavit výchozí emailový podpis', + 'default_email_footer' => 'Nastavit výchozí e-mailový podpis', 'select_file' => 'Prosím zvolte soubor', 'first_row_headers' => 'Použít první řádku jako záhlaví', 'column' => 'Sloupec', @@ -186,7 +186,7 @@ $LANG = array( 'import_to' => 'Importovat do', 'client_will_create' => 'klient bude vytvořen', 'clients_will_create' => 'klienti budou vytvořeni', - 'email_settings' => 'Nastavení emailu', + 'email_settings' => 'Nastavení e-mailu', 'client_view_styling' => 'Úprava klientského zobrazení', 'pdf_email_attachment' => 'Připojit PDF', 'custom_css' => 'Volitelné CSS', @@ -202,7 +202,7 @@ $LANG = array( 'limit_clients' => 'Omlouváme se, toto přesáhne limit :count klientů. Prosím vylepšete svoji instalaci na placenou.', 'payment_error' => 'Nastala chyba během zpracování Vaší platby. Zkuste to prosím znovu později.', 'registration_required' => 'Registrace vyžadována', - 'confirmation_required' => 'Prosím potvrďte vaší emailovou adresu. :link pro odeslání potvrzovacího emailu.', + 'confirmation_required' => 'Prosím potvrďte vaší e-mailovou adresu. :link pro odeslání potvrzovacího e-mailu.', 'updated_client' => 'Klient úspěšně aktualizován', 'archived_client' => 'Klient úspěšně archivován', 'archived_clients' => ':count klientů bylo úspěšně archivováno', @@ -265,11 +265,11 @@ $LANG = array( 'sign_up_to_save' => 'Pro uložení své práce se zaregistrujte', 'agree_to_terms' => 'Souhlasím s :terms', 'terms_of_service' => 'Obchodní podmínky', - 'email_taken' => 'Tento email už byl registrován', + 'email_taken' => 'Tento e-mail už byl registrován', 'working' => 'Pracuji', 'success' => 'Úspěch', - 'success_message' => 'Registrace proběhla úspěšně! Pro potvrzení Vašeho účtu klikněte na odkaz v emailu, který jsme Vám zaslali.', - 'erase_data' => 'Váš účet není zaregistrován, toto permanentně smaže Vaše data.', + 'success_message' => 'Registrace proběhla úspěšně! Pro potvrzení Vašeho účtu klikněte na odkaz v e-mailu, který jsme Vám zaslali.', + 'erase_data' => 'Váš účet není zaregistrován, toto trvale smaže Vaše data.', 'password' => 'Heslo', 'pro_plan_product' => 'Profi plán', 'pro_plan_success' => 'Děkujeme za použití Profi plánu od Invoice Ninja!

 
@@ -324,7 +324,7 @@ $LANG = array( 'archive_quote' => 'Archivovat nabídku', 'delete_quote' => 'Smazat nabídku', 'save_quote' => 'Uložit nabídku', - 'email_quote' => 'Odeslat nabídku emailem', + 'email_quote' => 'Odeslat nabídku e-mailem', 'clone_quote' => 'Duplikovat do nabídky', 'convert_to_invoice' => 'Změnit na fakturu', 'view_invoice' => 'Zobrazit fakturu', @@ -344,7 +344,7 @@ $LANG = array( 'quote_link_message' => 'Pro zobrazení nabídky vašeho klienta klikněte na odkaz níže:', 'notification_quote_sent_subject' => 'Nabídka :invoice byla odeslána klientovi :client', 'notification_quote_viewed_subject' => 'Nabídka :invoice byla zobrazena klientem :client', - 'notification_quote_sent' => 'Klientovi :client byla emailem odeslána nabídka :invoice za :amount.', + 'notification_quote_sent' => 'Klientovi :client byla e-mailem odeslána nabídka :invoice za :amount.', 'notification_quote_viewed' => 'Klient :client zobrazil nabídku :invoice za :amount.', 'session_expired' => 'Vaše přihlášení vypršelo.', 'invoice_fields' => 'Pole na faktuře', @@ -370,7 +370,7 @@ $LANG = array( 'confirm_recurring_email_invoice' => 'Jste si jistí, že chcete odeslat tuto fakturu?', 'confirm_recurring_email_invoice_not_sent' => 'Jste si jistí, že chcete spustit opakování?', 'cancel_account' => 'Smazat účet', - 'cancel_account_message' => 'Varování: Toto permanentně odstraní Váš účet. Tato akce je nevratná.', + 'cancel_account_message' => 'Varování: Toto trvale odstraní Váš účet. Tato akce je nevratná.', 'go_back' => 'Jít zpět', 'data_visualizations' => 'Vizualizace dat', 'sample_data' => 'Zobrazit vzorová data', @@ -429,10 +429,10 @@ $LANG = array( 'restore_user' => 'Obnovit uživatele', 'restored_user' => 'Uživatel úspěšně obnoven', 'show_deleted_users' => 'Zobrazit smazané uživatele', - 'email_templates' => 'Emailové šablony', - 'invoice_email' => 'Email pro fakturu', - 'payment_email' => 'Email pro platbu', - 'quote_email' => 'Email pro nabídku', + 'email_templates' => 'E-mailové šablony', + 'invoice_email' => 'E-mail pro fakturu', + 'payment_email' => 'E-mail pro platbu', + 'quote_email' => 'E-mail pro nabídku', 'reset_all' => 'Resetovat vše', 'approve' => 'Schválit', 'token_billing_type_id' => 'Token účtování', @@ -484,21 +484,21 @@ $LANG = array( 'password_error_invalid' => 'Nové heslo je neplatné.', 'updated_password' => 'Heslo úspěšně změněno', 'api_tokens' => 'API Tokeny', - 'users_and_tokens' => 'Uživatelé & Tokeny', + 'users_and_tokens' => 'Uživatelé a tokeny', 'account_login' => 'Přihlášení k účtu', 'recover_password' => 'Obnovit vaše heslo', 'forgot_password' => 'Zapomněli jste heslo?', - 'email_address' => 'Email', + 'email_address' => 'E-mail', 'lets_go' => 'Jdeme na to', 'password_recovery' => 'Obnovení hesla', - 'send_email' => 'Odeslat email', + 'send_email' => 'Odeslat e-mail', 'set_password' => 'Nastavit heslo', 'converted' => 'Zkonvertováno', - 'email_approved' => 'Odeslat email po schválení nabídky', + 'email_approved' => 'Odeslat e-mail po schválení nabídky', 'notification_quote_approved_subject' => 'Nabídka :invoice byla schválena :client', 'notification_quote_approved' => 'Klient :client schválil nabídku :invoice na :amount.', - 'resend_confirmation' => 'Znovu poslat potvrzovací email', - 'confirmation_resent' => 'Potvrzení bylo odesláno emailem', + 'resend_confirmation' => 'Znovu poslat potvrzovací e-mail', + 'confirmation_resent' => 'Potvrzení bylo odesláno e-mailem', 'payment_type_credit_card' => 'Platební karty', 'payment_type_paypal' => 'PayPal', 'payment_type_bitcoin' => 'Bitcoin', @@ -514,14 +514,14 @@ $LANG = array( 'auto_wrap' => 'Automatické zalomení řádky', 'duplicate_post' => 'Varování: předchozí stránka byla odeslána dvakrát. Druhé odeslání bylo ignorováno.', 'view_documentation' => 'Zobrazit dokumentaci', - 'app_title' => 'Open source online fakturace', + 'app_title' => 'Open-source online fakturace', 'app_description' => 'Invoice Ninja je bezplatné řešení s otevřeným zdrojovým kódem pro fakturaci a fakturaci zákazníkům. S aplikací Invoice Ninja můžete snadno vytvářet a odesílat krásné faktury z jakéhokoli zařízení, které má přístup k webu. Vaši klienti si mohou faktury vytisknout, stáhnout jako soubory pdf a dokonce vám z tohoto systému zaplatit online.', 'rows' => 'řádky', 'www' => 'www', 'logo' => 'Logo', 'subdomain' => 'subdoména', - 'provide_name_or_email' => 'Prosím zadejte jméno nebo email', - 'charts_and_reports' => 'Grafy & Reporty', + 'provide_name_or_email' => 'Prosím zadejte jméno nebo e-mail', + 'charts_and_reports' => 'Grafy a reporty', 'chart' => 'Graf', 'report' => 'Report', 'group_by' => 'Seskupené podle', @@ -553,7 +553,7 @@ $LANG = array( 'now' => 'Nyní', 'timer' => 'Časovač', 'manual' => 'Manuální', - 'date_and_time' => 'Datum & Čas', + 'date_and_time' => 'Datum a čas', 'second' => 'Sekunda', 'seconds' => 'Sekundy', 'minute' => 'Minuta', @@ -591,10 +591,10 @@ $LANG = array( 'pro_plan_feature2' => 'Přístup k 10 nádherným šablonám faktur', 'pro_plan_feature3' => 'Volitelné URLs - "vaseznacka.InvoiceNinja.com"', 'pro_plan_feature4' => 'Odstranit "Vytvořeno Invoice Ninja"', - 'pro_plan_feature5' => 'Přístup více uživatelů & sledování aktivit', - 'pro_plan_feature6' => 'Vytváření nabídek & proforem', - 'pro_plan_feature7' => 'Úprava popisu polí faktur & číslování', - 'pro_plan_feature8' => 'Možnost připojit PDF soubor do emailu klientům', + 'pro_plan_feature5' => 'Přístup více uživatelů a sledování aktivit', + 'pro_plan_feature6' => 'Vytváření nabídek a proforem', + 'pro_plan_feature7' => 'Úprava popisu polí faktur a číslování', + 'pro_plan_feature8' => 'Možnost připojit PDF soubor do e-mailu klientům', 'resume' => 'Pokračovat', 'break_duration' => 'Přestávka', 'edit_details' => 'Editovat detaily', @@ -610,8 +610,8 @@ $LANG = array( 'unlinked_account' => 'Účty úspěšně rozspojeny', 'login' => 'Přihlášení', 'or' => 'nebo', - 'email_error' => 'Nastal problém s odesláním emailu', - 'confirm_recurring_timing' => 'Poznámka: Emaily jsou odesílány na záčátku hodiny.', + 'email_error' => 'Nastal problém s odesláním e-mailu', + 'confirm_recurring_timing' => 'Poznámka: E-maily jsou odesílány na záčátku hodiny.', 'confirm_recurring_timing_not_sent' => 'Poznámka: Faktury jsou tvořená na začátku hodiny.', 'payment_terms_help' => 'Nastaví jako výchozí datum splatnosti faktury', 'unlink_account' => 'Odpojit účet', @@ -665,7 +665,7 @@ $LANG = array( 'reset_footer' => 'Resetovat patičku', 'invoice_sent' => ':count faktura odeslána', 'invoices_sent' => ':count faktur odesláno', - 'status_draft' => 'Návrh', + 'status_draft' => 'Koncept', 'status_sent' => 'Odesláno', 'status_viewed' => 'Zobrazené', 'status_partial' => 'Částečné', @@ -679,9 +679,9 @@ $LANG = array( 'auto_bill' => 'Automatické fakturování', 'military_time' => '24 hodinový čas', 'last_sent' => 'Poslední odeslány', - 'reminder_emails' => 'Připomínky emailem', - 'quote_reminder_emails' => 'Připomínky nabídek emailem', - 'templates_and_reminders' => 'Šablony & Připomínky', + 'reminder_emails' => 'Připomínky e-mailem', + 'quote_reminder_emails' => 'Připomínky nabídek e-mailem', + 'templates_and_reminders' => 'Šablony a připomínky', 'subject' => 'Předmět', 'body' => 'Tělo', 'first_reminder' => 'První připomínka', @@ -712,7 +712,7 @@ $LANG = array( 'custom_invoice_link' => 'Odkaz na fakturu', 'total_invoiced' => 'Celkem fakturováno', 'open_balance' => 'Zůstatek', - 'verify_email' => 'Prosím klikněte na odkaz v potvrzovacím emailu pro ověření správné adresy.', + 'verify_email' => 'Prosím klikněte na odkaz v potvrzovacím e-mailu pro ověření správné adresy.', 'basic_settings' => 'Základní nastavení', 'pro' => 'Profi', 'gateways' => 'Platební brány', @@ -747,7 +747,7 @@ $LANG = array( 'activity_3' => ':user smazal klienta :client', 'activity_4' => ':user vytvořil fakturu :invoice', 'activity_5' => ':user změnil fakturu :invoice', - 'activity_6' => ':user poslal email s fakturou :invoice pro :client na :contact', + 'activity_6' => ':user poslal e-mail s fakturou :invoice pro :client na :contact', 'activity_7' => 'Klient :contact zobrazil fakturu :invoice pro :client', 'activity_8' => ':user archivoval fakturu :invoice', 'activity_9' => ':user smazal fakturu :invoice', @@ -775,16 +775,16 @@ $LANG = array( 'activity_31' => ':user archivoval dodavatele :vendor', 'activity_32' => ':user smazal dodavatele :vendor', 'activity_33' => ':user obnovil dodavatele :vendor', - 'activity_34' => ':user vytvořil výdaj :expense', - 'activity_35' => ':user archivoval výdaj :expense', - 'activity_36' => ':user smazal výdaj :expense', - 'activity_37' => ':user obnovil výdaj :expense', + 'activity_34' => ':user vytvořil náklad :expense', + 'activity_35' => ':user archivoval náklad :expense', + 'activity_36' => ':user smazal náklad :expense', + 'activity_37' => ':user obnovil náklad :expense', 'activity_42' => ':user vytvořil úkol :task', 'activity_43' => ':user aktualizoval úkol :task', 'activity_44' => ':user archivoval úkol :task', 'activity_45' => ':user smazal úkol :task', 'activity_46' => ':user obnovil úkol :task', - 'activity_47' => ':user aktualizoval výdaj :expense', + 'activity_47' => ':user aktualizoval náklad :expense', 'activity_48' => ':user vytvořil uživatele :user', 'activity_49' => ':user aktualizoval uživatele :user', 'activity_50' => ':user archivoval uživatele :user', @@ -797,7 +797,7 @@ $LANG = array( 'payment' => 'Platba', 'system' => 'Systém', - 'signature' => 'Emailový podpis', + 'signature' => 'E-mailový podpis', 'default_messages' => 'Výchozí vzkazy', 'quote_terms' => 'Podmínky nabídky', 'default_quote_terms' => 'Výchozí podmínky nabídky', @@ -857,14 +857,14 @@ $LANG = array( 'publishable_key' => 'Veřejný klíč', 'secret_key' => 'Tajný klíč', 'missing_publishable_key' => 'Nastavte veřejný klíč Stripe pro lepší proces platby', - 'email_design' => 'Vzhled emailu', + 'email_design' => 'Vzhled e-mailu', 'due_by' => 'Splatnost do :date', 'enable_email_markup' => 'Umožnit mikroznačky', - 'enable_email_markup_help' => 'Přidejte si mikroznačky schema.org do emailu a usnadněte tak vašim klientům platby.', + 'enable_email_markup_help' => 'Přidejte si mikroznačky schema.org do e-mailu a usnadněte tak vašim klientům platby.', 'template_help_title' => 'Nápověda k šablonám', 'template_help_1' => 'Dostupné proměnné:', - 'email_design_id' => 'Styl emailu', - 'email_design_help' => 'Udělejtě si své emaily více profesionální pomocí HTML rozvržení.', + 'email_design_id' => 'Styl e-mailu', + 'email_design_help' => 'Udělejtě si své e-maily více profesionální pomocí HTML rozvržení.', 'plain' => 'Prostý text', 'light' => 'Světlý', 'dark' => 'Tmavý', @@ -879,9 +879,9 @@ $LANG = array( 'custom_invoice_charges_helps' => 'Přidejte si pole během vytváření faktury a zahrňte ho mezi poplatky do faktury.', 'token_expired' => 'Validační token expiroval. Prosím vyzkoušejte znovu.', 'invoice_link' => 'Odkaz na fakturu', - 'button_confirmation_message' => 'Potvrďte váš email.', + 'button_confirmation_message' => 'Potvrďte váš e-mail.', 'confirm' => 'Potvrzuji', - 'email_preferences' => 'Email preference', + 'email_preferences' => 'Nastavení e-mailu', 'created_invoices' => 'Úspěšně vytvořeno :count faktur', 'next_invoice_number' => 'Další číslo faktury je :number.', 'next_quote_number' => 'Další číslo nabídky je :number.', @@ -890,7 +890,7 @@ $LANG = array( 'field_due_date' => 'datum splatnosti', 'field_invoice_date' => 'datum vystavení', 'schedule' => 'Rozvrh', - 'email_designs' => 'Vzhled emailů', + 'email_designs' => 'Vzhled e-mailů', 'assigned_when_sent' => 'Přiřazeno při odeslání', 'white_label_purchase_link' => 'Zakoupit white label licenci', 'expense' => 'Náklad', @@ -906,8 +906,8 @@ $LANG = array( 'deleted_expense' => 'Náklad úspěšně smazán', 'archived_expense' => 'Náklad úspěšně archivován', 'deleted_expenses' => 'Náklad úspěšně smazán', - 'archived_expenses' => 'Náklady úspěšně archivovány', - 'expense_amount' => 'Částka nákladů', + 'archived_expenses' => 'Náklad úspěšně archivovány', + 'expense_amount' => 'Náklady celkem', 'expense_balance' => 'Zůstatek nákladů', 'expense_date' => 'Datum nákladu', 'expense_should_be_invoiced' => 'Má tento náklad být fakturován?', @@ -918,7 +918,7 @@ $LANG = array( 'no' => 'Ne', 'should_be_invoiced' => 'Má být fakturován', 'view_expense' => 'Zobrazit náklad # :expense', - 'edit_expense' => 'Editovat náklad', + 'edit_expense' => 'Upravit náklad', 'archive_expense' => 'Archivovat náklad', 'delete_expense' => 'Smazat náklad', 'view_expense_num' => 'Náklad # :expense', @@ -926,7 +926,7 @@ $LANG = array( 'created_expense' => 'Náklad úspěšně vytvořen', 'enter_expense' => 'Zadat náklad', 'view' => 'Zobrazit', - 'restore_expense' => 'Obnovit náklady', + 'restore_expense' => 'Obnovit náklad', 'invoice_expense' => 'Fakturovat náklady', 'expense_error_multiple_clients' => 'Náklady nemohou patřit různým klientům', 'expense_error_invoiced' => 'Náklady byly již vyfakturovány', @@ -966,14 +966,14 @@ $LANG = array( 'saturday' => 'Sobota', 'header_font_id' => 'Hlavička font', 'body_font_id' => 'Font těla', - 'color_font_help' => 'Poznámka: primární barva a fonty jsou rovněž použity v klientském portálu a upravených šablonách emailů.', + 'color_font_help' => 'Poznámka: primární barva a fonty jsou rovněž použity v klientském portálu a upravených šablonách e-mailů.', 'live_preview' => 'Náhled', - 'invalid_mail_config' => 'Nelze odeslat email, zkontrolujte prosím nastavení emailu.', + 'invalid_mail_config' => 'Nelze odeslat e-mail, zkontrolujte prosím nastavení e-mailu.', 'invoice_message_button' => 'Pro zobrazení faktury na :amount, klikněte na tlačítko níže.', 'quote_message_button' => 'Pro zobrazení nabídky na :amount, klikněte na tlačítko níže.', 'payment_message_button' => 'Děkujeme za Vaši platbu :amount.', 'payment_type_direct_debit' => 'Platba převodem', - 'bank_accounts' => 'Platební karty & Banky', + 'bank_accounts' => 'Platební karty a banky', 'add_bank_account' => 'Přidat bankovní účet', 'setup_account' => 'Nastavení účtu', 'import_expenses' => 'Importovat náklady', @@ -1022,7 +1022,7 @@ $LANG = array( 'white_label_text' => 'Zakupte si roční licenci pro odstranění značky Invoice Ninka z faktury a klientského portálu za $:price.', - 'user_email_footer' => 'Pro úpravu emailových notifikací prosím navštivte :link', + 'user_email_footer' => 'Pro úpravu e-mailových notifikací prosím navštivte :link', 'reset_password_footer' => 'Pokud jste nepožádali o resetování hesla, prosím kontaktujte naši podporu na: :email', 'limit_users' => 'Omlouváme se, to už přesáhlo limit :limit uživatelů', 'more_designs_self_host_header' => 'Získejte 6 dalších vzhledů faktur jen za $:price', @@ -1037,13 +1037,13 @@ $LANG = array( 'invitation_status_sent' => 'Odesláno', 'invitation_status_opened' => 'Otevřeno', 'invitation_status_viewed' => 'Zobrazeno', - 'email_error_inactive_client' => 'Emaily nemohou být odeslány neaktivním klientům', - 'email_error_inactive_contact' => 'Emaily nemohou být odeslány neaktivním kontaktům', - 'email_error_inactive_invoice' => 'Emaily nemohou být odeslány k neaktivním fakturám', - 'email_error_inactive_proposal' => 'Nelze poslat email k neaktivní nabídce', - 'email_error_user_unregistered' => 'Pro odesílání emailů si prosím zaregistrujte účet', - 'email_error_user_unconfirmed' => 'Pro posílání emailů potvrďte prosím Váš účet.', - 'email_error_invalid_contact_email' => 'Neplatný kontaktní email', + 'email_error_inactive_client' => 'E-maily nemohou být odeslány neaktivním klientům', + 'email_error_inactive_contact' => 'E-maily nemohou být odeslány neaktivním kontaktům', + 'email_error_inactive_invoice' => 'E-maily nemohou být odeslány k neaktivním fakturám', + 'email_error_inactive_proposal' => 'Nelze poslat e-mail k neaktivní nabídce', + 'email_error_user_unregistered' => 'Pro odesílání e-mailů si prosím zaregistrujte účet', + 'email_error_user_unconfirmed' => 'Pro posílání e-mailů potvrďte prosím Váš účet.', + 'email_error_invalid_contact_email' => 'Neplatný kontaktní e-mail', 'navigation' => 'Navigace', 'list_invoices' => 'Seznam faktur', @@ -1118,12 +1118,12 @@ $LANG = array( 'quote_documents' => 'Quote Documents', 'invoice_documents' => 'Invoice Documents', 'expense_documents' => 'Expense Documents', - 'invoice_embed_documents' => 'Embed Documents', + 'invoice_embed_documents' => 'Vložit dokumenty', 'invoice_embed_documents_help' => 'Include attached images in the invoice.', - 'document_email_attachment' => 'Attach Documents', + 'document_email_attachment' => 'Přiložit dokumenty', 'ubl_email_attachment' => 'Attach UBL', - 'download_documents' => 'Download Documents (:size)', - 'documents_from_expenses' => 'From Expenses:', + 'download_documents' => 'Stáhnout dokumenty (:size)', + 'documents_from_expenses' => 'Od nákladů:', 'dropzone_default_message' => 'Drop files or click to upload', 'dropzone_default_message_disabled' => 'Nahrávání vypnuto', 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', @@ -1134,7 +1134,7 @@ $LANG = array( 'dropzone_cancel_upload' => 'Cancel upload', 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', 'dropzone_remove_file' => 'Odstranit soubor', - 'documents' => 'Documents', + 'documents' => 'Dokumenty', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1144,7 +1144,7 @@ $LANG = array( 'enable_client_portal_dashboard_help' => 'Zobrazit/skrýt hlavní panel v klientském portálu.', // Plans - 'account_management' => 'Account Management', + 'account_management' => 'Spravování účtů', 'plan_status' => 'Plan Status', 'plan_upgrade' => 'Upgrade', @@ -1159,7 +1159,7 @@ $LANG = array( 'plan_expired' => ':plan Plan Expired', 'trial_expired' => ':plan Plan Trial Ended', 'never' => 'Never', - 'plan_free' => 'Free', + 'plan_free' => 'Zdarma', 'plan_pro' => 'Pro', 'plan_enterprise' => 'Enterprise', 'plan_white_label' => 'Self Hosted (White labeled)', @@ -1193,7 +1193,7 @@ $LANG = array( 'live_preview_disabled' => 'Live preview has been disabled to support selected font', 'invoice_number_padding' => 'Padding', 'preview' => 'Preview', - 'list_vendors' => 'List Vendors', + 'list_vendors' => 'Vypsat dodavatele', 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments, :link to see the full list of features.', 'return_to_app' => 'Návrat do aplikace', @@ -1295,7 +1295,7 @@ $LANG = array( 'off' => 'Off', 'opt_in' => 'Opt-in', 'opt_out' => 'Opt-out', - 'always' => 'Always', + 'always' => 'Vždy', 'opted_out' => 'Opted out', 'opted_in' => 'Opted in', 'manage_auto_bill' => 'Manage Auto-bill', @@ -1325,7 +1325,7 @@ $LANG = array( 'wepay_description_help' => 'The purpose of this account.', 'wepay_tos_agree' => 'Souhlasím s :link.', 'wepay_tos_link_text' => 'WePay Obchodní podmínky', - 'resend_confirmation_email' => 'Znovu odeslat potvrzovací email', + 'resend_confirmation_email' => 'Znovu odeslat potvrzovací e-mail', 'manage_account' => 'Spravovat účet', 'action_required' => 'Akce vyžadována', 'finish_setup' => 'Finish Setup', @@ -1348,13 +1348,13 @@ $LANG = array( 'wait_for_upload' => 'Počkejte, než se dokument nahraje.', 'upgrade_for_permissions' => 'Upgrade to our Enterprise plan to enable permissions.', 'enable_second_tax_rate' => 'Enable specifying a second tax rate', - 'payment_file' => 'Payment File', - 'expense_file' => 'Expense File', - 'product_file' => 'Product File', + 'payment_file' => 'Soubor platby', + 'expense_file' => 'Soubor nákladu', + 'product_file' => 'Soubor produktu', 'import_products' => 'Importovat produkty', - 'products_will_create' => 'products will be created', + 'products_will_create' => 'produktů bude vytvořeno', 'product_key' => 'Product', - 'created_products' => 'Successfully created/updated :count product(s)', + 'created_products' => 'Úspěšně vytvořeno/aktualizováno :count produktů', 'export_help' => 'Use JSON if you plan to import the data into Invoice Ninja.
The file includes clients, products, invoices, quotes and payments.', 'selfhost_export_help' => '
We recommend using mysqldump to create a full backup.', 'JSON_file' => 'JSON soubor', @@ -1789,7 +1789,7 @@ $LANG = array( 'max_users_reached' => 'The maximum number of users has been reached.', 'buy_now_buttons' => 'Buy Now Buttons', 'landing_page' => 'Landing Page', - 'payment_type' => 'Payment Type', + 'payment_type' => 'Typ platby', 'form' => 'Form', 'link' => 'Link', 'fields' => 'Fields', @@ -1818,7 +1818,7 @@ $LANG = array( 'bot_emailed_invoice' => 'Your invoice has been sent.', 'bot_emailed_notify_viewed' => 'I\'ll email you when it\'s viewed.', 'bot_emailed_notify_paid' => 'I\'ll email you when it\'s paid.', - 'add_product_to_invoice' => 'Add 1 :product', + 'add_product_to_invoice' => 'Přidat 1 :product', 'not_authorized' => 'You are not authorized', 'bot_get_code' => 'Thanks! I\'ve sent a you an email with your security code.', 'bot_welcome' => 'That\'s it, your account is verified.
', @@ -1884,7 +1884,7 @@ $LANG = array( 'update' => 'Update', 'invoice_fields_help' => 'Drag and drop fields to change their order and location', 'new_category' => 'New Category', - 'restore_product' => 'Restore Product', + 'restore_product' => 'Obnovit produkt', 'blank' => 'Blank', 'invoice_save_error' => 'There was an error saving your invoice', 'enable_recurring' => 'Enable Recurring', @@ -1940,27 +1940,27 @@ $LANG = array( 'entity_state' => 'State', 'client_created_at' => 'Date Created', 'postmark_error' => 'There was a problem sending the email through Postmark: :link', - 'project' => 'Project', + 'project' => 'Projekt', 'projects' => 'Projekty', - 'new_project' => 'New Project', - 'edit_project' => 'Edit Project', - 'archive_project' => 'Archive Project', + 'new_project' => 'Nový projekt', + 'edit_project' => 'Upravit projekt', + 'archive_project' => 'Archivovat projekt', 'list_projects' => 'Seznam projektů', - 'updated_project' => 'Successfully updated project', - 'created_project' => 'Successfully created project', - 'archived_project' => 'Successfully archived project', + 'updated_project' => 'Projekt úspěšně aktualizován', + 'created_project' => 'Projekt úspěšně vytvořen', + 'archived_project' => 'Projekt úspěšně archivován', 'archived_projects' => ':count projektů archivováno', - 'restore_project' => 'Restore Project', - 'restored_project' => 'Successfully restored project', - 'delete_project' => 'Delete Project', - 'deleted_project' => 'Successfully deleted project', + 'restore_project' => 'Obnovit projekt', + 'restored_project' => 'Projekt úspěšně obnoven', + 'delete_project' => 'Smazat projekt', + 'deleted_project' => 'Projekt úspěšně smazán', 'deleted_projects' => ':count projektů smazáno', 'delete_expense_category' => 'Delete category', 'deleted_expense_category' => 'Successfully deleted category', - 'delete_product' => 'Delete Product', - 'deleted_product' => 'Successfully deleted product', - 'deleted_products' => 'Successfully deleted :count products', - 'restored_product' => 'Successfully restored product', + 'delete_product' => 'Smazat produkt', + 'deleted_product' => 'Produkt úspěšně smazán', + 'deleted_products' => 'Úspěšně smazáno :count produktů', + 'restored_product' => 'Produkt úspěšně obnoven', 'update_credit' => 'Update Credit', 'updated_credit' => 'Successfully updated credit', 'edit_credit' => 'Edit Credit', @@ -1979,7 +1979,7 @@ $LANG = array( 'list_...' => 'List ...', 'created_at' => 'Date Created', 'contact_us' => 'Kontaktuje nás', - 'user_guide' => 'User Guide', + 'user_guide' => 'Uživatelská příručka', 'promo_message' => 'Upgrade before :expires and get :amount OFF your first year of our Pro or Enterprise packages.', 'discount_message' => ':amount off expires :expires', 'mark_paid' => 'Mark Paid', @@ -2028,7 +2028,7 @@ $LANG = array( 'tax_invoice' => 'Tax Invoice', 'emailed_invoices' => 'Successfully emailed invoices', 'emailed_quotes' => 'Successfully emailed quotes', - 'website_url' => 'Website URL', + 'website_url' => 'URL webových stránek', 'domain' => 'Domain', 'domain_help' => 'Used in the client portal and when sending emails.', 'domain_help_website' => 'Used when sending emails.', @@ -2038,7 +2038,7 @@ $LANG = array( 'columns' => 'Columns', 'filters' => 'Filters', 'sort_by' => 'Sort By', - 'draft' => 'Draft', + 'draft' => 'Koncept', 'unpaid' => 'Unpaid', 'aging' => 'Aging', 'age' => 'Age', @@ -2061,7 +2061,7 @@ $LANG = array( 'statement_date' => 'Statement Date', 'mark_active' => 'Mark Active', 'send_automatically' => 'Send Automatically', - 'initial_email' => 'Initial Email', + 'initial_email' => 'Původní e-mail', 'invoice_not_emailed' => 'This invoice hasn\'t been emailed.', 'quote_not_emailed' => 'This quote hasn\'t been emailed.', 'sent_by' => 'Sent by :user', @@ -2104,7 +2104,7 @@ $LANG = array( 'credit_created_by' => 'Credit created by payment :transaction_reference', 'created_payment_and_credit' => 'Successfully created payment and credit', 'created_payment_and_credit_emailed_client' => 'Successfully created payment and credit, and emailed client', - 'create_project' => 'Create project', + 'create_project' => 'Vytvořit projekt', 'create_vendor' => 'Create vendor', 'create_expense_category' => 'Create category', 'pro_plan_reports' => ':link to enable reports by joining the Pro Plan', @@ -2140,7 +2140,7 @@ $LANG = array( 'logo_warning_invalid' => 'There was a problem reading the image file, please try a different format.', 'error_refresh_page' => 'An error occurred, please refresh the page and try again.', 'data' => 'Data', - 'imported_settings' => 'Successfully imported settings', + 'imported_settings' => 'Nastavení úspěšně importována', 'reset_counter' => 'Reset Counter', 'next_reset' => 'Next Reset', 'reset_counter_help' => 'Automatically reset the invoice and quote counters.', @@ -2166,8 +2166,8 @@ $LANG = array( 'purge_successful' => 'Data firmy úspěšně smazána', 'forbidden' => 'Forbidden', 'purge_data_message' => 'Warning: This will permanently erase your data, there is no undo.', - 'contact_phone' => 'Telefon', - 'contact_email' => 'Email', + 'contact_phone' => 'Kontaktní tel. číslo', + 'contact_email' => 'E-mail', 'reply_to_email' => 'Reply-To Email', 'reply_to_email_help' => 'Specify the reply-to address for client emails.', 'bcc_email_help' => 'Privately include this address with client emails.', @@ -2216,47 +2216,47 @@ $LANG = array( 'custom_design1' => 'Custom Design 1', 'custom_design2' => 'Custom Design 2', 'custom_design3' => 'Custom Design 3', - 'empty' => 'Empty', - 'load_design' => 'Load Design', - 'accepted_card_logos' => 'Accepted Card Logos', + 'empty' => 'Prázdné', + 'load_design' => 'Načíst design', + 'accepted_card_logos' => 'Loga přijímaných karet', 'phantomjs_local_and_cloud' => 'Using local PhantomJS, falling back to phantomjscloud.com', 'google_analytics' => 'Google Analytics', 'analytics_key' => 'Analytics Key', 'analytics_key_help' => 'Track payments using :link', 'start_date_required' => 'The start date is required', - 'application_settings' => 'Application Settings', + 'application_settings' => 'Nastavení aplikace', 'database_connection' => 'Database Connection', 'driver' => 'Driver', 'host' => 'Host', - 'database' => 'Database', + 'database' => 'Databáze', 'test_connection' => 'Test connection', 'from_name' => 'From Name', - 'from_address' => 'From Address', + 'from_address' => 'Z adresy', 'port' => 'Port', - 'encryption' => 'Encryption', + 'encryption' => 'Šifrování', 'mailgun_domain' => 'Mailgun Domain', 'mailgun_private_key' => 'Mailgun Private Key', - 'send_test_email' => 'Send test email', - 'select_label' => 'Select Label', - 'label' => 'Label', - 'service' => 'Service', - 'update_payment_details' => 'Update payment details', - 'updated_payment_details' => 'Successfully updated payment details', - 'update_credit_card' => 'Update Credit Card', + 'send_test_email' => 'Odeslat zkušební e-mail', + 'select_label' => 'Vybrat štítek', + 'label' => 'Štítek', + 'service' => 'Služba', + 'update_payment_details' => 'Aktualizovat detaily platby', + 'updated_payment_details' => 'Detaily platby úspěšně aktualizovány', + 'update_credit_card' => 'Aktualizovat kreditní kartu', 'recurring_expenses' => 'Pravidelné náklady', - 'recurring_expense' => 'Recurring Expense', - 'new_recurring_expense' => 'New Recurring Expense', - 'edit_recurring_expense' => 'Edit Recurring Expense', - 'archive_recurring_expense' => 'Archive Recurring Expense', - 'list_recurring_expense' => 'List Recurring Expenses', - 'updated_recurring_expense' => 'Successfully updated recurring expense', - 'created_recurring_expense' => 'Successfully created recurring expense', - 'archived_recurring_expense' => 'Successfully archived recurring expense', - 'restore_recurring_expense' => 'Restore Recurring Expense', - 'restored_recurring_expense' => 'Successfully restored recurring expense', - 'delete_recurring_expense' => 'Delete Recurring Expense', - 'deleted_recurring_expense' => 'Successfully deleted recurring expense', - 'view_recurring_expense' => 'View Recurring Expense', + 'recurring_expense' => 'Pravidelný náklad', + 'new_recurring_expense' => 'Nový pravidelný náklad', + 'edit_recurring_expense' => 'Upravit pravidelný náklad', + 'archive_recurring_expense' => 'Archivovat pravidelný náklad', + 'list_recurring_expense' => 'Vypsat pravidelné náklady', + 'updated_recurring_expense' => 'Pravidelný náklad úspěšně aktualizován', + 'created_recurring_expense' => 'Pravidelný náklad úspěšně vytvořen', + 'archived_recurring_expense' => 'Pravidelný náklad úspěšně archivován', + 'restore_recurring_expense' => 'Obnovit pravidelný náklad', + 'restored_recurring_expense' => 'Pravidelný náklad úspěšně obnoven', + 'delete_recurring_expense' => 'Smazat pravidelný náklad', + 'deleted_recurring_expense' => 'Pravidelný náklad úspěšně smazán', + 'view_recurring_expense' => 'Zobrazit pravidelný náklad', 'taxes_and_fees' => 'Taxes and fees', 'import_failed' => 'Import Failed', 'recurring_prefix' => 'Recurring Prefix', @@ -2402,6 +2402,9 @@ $LANG = array( 'currency_libyan_dinar' => 'Libyan Dinar', 'currency_silver_troy_ounce' => 'Silver Troy Ounce', 'currency_gold_troy_ounce' => 'Gold Troy Ounce', + 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', + 'currency_malagasy_ariary' => 'Malagasy ariary', + "currency_tongan_pa_anga" => "Tongan Pa'anga", 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', 'writing_a_review' => 'writing a review', @@ -2431,7 +2434,7 @@ $LANG = array( 'item_tax2' => 'Item Tax2', 'delete_company' => 'Odstranit firmu', - 'delete_company_help' => 'Permanentně odstranit firmu se všemi daty i nastavením.', + 'delete_company_help' => 'Trvale odstranit firmu se všemi daty i nastavením.', 'delete_company_message' => 'Warning: This will permanently delete your company, there is no undo.', 'applied_discount' => 'The coupon has been applied, the plan price has been reduced by :discount%.', @@ -2515,14 +2518,14 @@ $LANG = array( 'product_fields_help' => 'Drag and drop fields to change their order', 'custom_value1' => 'Custom Value 1', 'custom_value2' => 'Custom Value 2', - 'enable_two_factor' => 'Two-Factor Authentication', + 'enable_two_factor' => 'Dvoufaktorové ověření', 'enable_two_factor_help' => 'Use your phone to confirm your identity when logging in', - 'two_factor_setup' => 'Two-Factor Setup', + 'two_factor_setup' => 'Dvoufaktorové nastavení', 'two_factor_setup_help' => 'Scan the bar code with a :link compatible app.', 'one_time_password' => 'One Time Password', 'set_phone_for_two_factor' => 'Set your mobile phone number as a backup to enable.', - 'enabled_two_factor' => 'Successfully enabled Two-Factor Authentication', - 'add_product' => 'Add Product', + 'enabled_two_factor' => 'Dvoufaktorové ověření úspěšně nastaveno', + 'add_product' => 'Přidat produkt', 'email_will_be_sent_on' => 'Note: the email will be sent on :date.', 'invoice_product' => 'Invoice Product', 'self_host_login' => 'Self-Host Login', @@ -2533,25 +2536,25 @@ $LANG = array( 'client_login' => 'Client Login', 'converted_amount' => 'Converted Amount', 'default' => 'Default', - 'shipping_address' => 'Shipping Address', - 'bllling_address' => 'Billing Address', - 'billing_address1' => 'Billing Street', - 'billing_address2' => 'Billing Apt/Suite', - 'billing_city' => 'Billing City', + 'shipping_address' => 'Doručovací adresa', + 'bllling_address' => 'Fakturační adresa', + 'billing_address1' => 'Fakturační ulice', + 'billing_address2' => 'Faktučaní číslo patra/bytu', + 'billing_city' => 'Fakturační město', 'billing_state' => 'Billing State/Province', - 'billing_postal_code' => 'Billing Postal Code', - 'billing_country' => 'Billing Country', - 'shipping_address1' => 'Shipping Street', - 'shipping_address2' => 'Shipping Apt/Suite', - 'shipping_city' => 'Shipping City', + 'billing_postal_code' => 'Fakturační PSČ', + 'billing_country' => 'Fakturační země', + 'shipping_address1' => 'Doručovací ulice', + 'shipping_address2' => 'Doručovací číslo patra/bytu', + 'shipping_city' => 'Doručovací město', 'shipping_state' => 'Shipping State/Province', 'shipping_postal_code' => 'Shipping Postal Code', 'shipping_country' => 'Shipping Country', - 'classify' => 'Classify', + 'classify' => 'Klasifikovat', 'show_shipping_address_help' => 'Require client to provide their shipping address', - 'ship_to_billing_address' => 'Ship to billing address', + 'ship_to_billing_address' => 'Doručit na fakturační adresu', 'delivery_note' => 'Dodací list', - 'show_tasks_in_portal' => 'Show tasks in the client portal', + 'show_tasks_in_portal' => 'Zobrazit úlohy v klientském portálu', 'cancel_schedule' => 'Cancel Schedule', 'scheduled_report' => 'Scheduled Report', 'scheduled_report_help' => 'Email the :report report as :format to :email', @@ -2559,7 +2562,7 @@ $LANG = array( 'deleted_scheduled_report' => 'Successfully canceled scheduled report', 'scheduled_report_attached' => 'Your scheduled :type report is attached.', 'scheduled_report_error' => 'Failed to create schedule report', - 'invalid_one_time_password' => 'Invalid one time password', + 'invalid_one_time_password' => 'Neplatné jednorázové heslo', 'apple_pay' => 'Apple/Google Pay', 'enable_apple_pay' => 'Accept Apple Pay and Pay with Google', 'requires_subdomain' => 'This payment type requires that a :link.', @@ -2572,7 +2575,7 @@ $LANG = array( 'add_subscription' => 'Add Subscription', 'target_url' => 'Target', 'target_url_help' => 'When the selected event occurs the app will post the entity to the target URL.', - 'event' => 'Event', + 'event' => 'Událost', 'subscription_event_1' => 'Created Client', 'subscription_event_2' => 'Created Invoice', 'subscription_event_3' => 'Created Quote', @@ -2605,8 +2608,8 @@ $LANG = array( 'module_recurring_invoice' => 'Recurring Invoices', 'module_credit' => 'Credits', 'module_quote' => 'Quotes & Proposals', - 'module_task' => 'Úkoly & Projekty', - 'module_expense' => 'Expenses & Vendors', + 'module_task' => 'Úlohy a projekty', + 'module_expense' => 'Náklady a dodavatelé', 'module_ticket' => 'Tickets', 'reminders' => 'Reminders', 'send_client_reminders' => 'Send email reminders', @@ -2640,7 +2643,7 @@ $LANG = array( 'improve_client_portal_link' => 'Set a subdomain to shorten the client portal link.', 'budgeted_hours' => 'Budgeted Hours', 'progress' => 'Progress', - 'view_project' => 'View Project', + 'view_project' => 'Zobrazit projekt', 'summary' => 'Summary', 'endless_reminder' => 'Endless Reminder', 'signature_on_invoice_help' => 'Add the following code to show your client\'s signature on the PDF.', @@ -2689,52 +2692,52 @@ $LANG = array( 'deleted_proposal_snippets' => 'Successfully archived :count snippets', 'restored_proposal_snippet' => 'Successfully restored snippet', 'restore_proposal_snippet' => 'Restore Snippet', - 'template' => 'Template', - 'templates' => 'Templates', - 'proposal_template' => 'Template', - 'proposal_templates' => 'Templates', - 'new_proposal_template' => 'New Template', - 'edit_proposal_template' => 'Edit Template', - 'archive_proposal_template' => 'Archive Template', - 'delete_proposal_template' => 'Delete Template', - 'created_proposal_template' => 'Successfully created template', - 'updated_proposal_template' => 'Successfully updated template', - 'archived_proposal_template' => 'Successfully archived template', - 'deleted_proposal_template' => 'Successfully archived template', - 'archived_proposal_templates' => 'Successfully archived :count templates', - 'deleted_proposal_templates' => 'Successfully archived :count templates', - 'restored_proposal_template' => 'Successfully restored template', - 'restore_proposal_template' => 'Restore Template', - 'proposal_category' => 'Category', - 'proposal_categories' => 'Categories', - 'new_proposal_category' => 'New Category', - 'edit_proposal_category' => 'Edit Category', - 'archive_proposal_category' => 'Archive Category', - 'delete_proposal_category' => 'Delete Category', - 'created_proposal_category' => 'Successfully created category', - 'updated_proposal_category' => 'Successfully updated category', - 'archived_proposal_category' => 'Successfully archived category', - 'deleted_proposal_category' => 'Successfully archived category', - 'archived_proposal_categories' => 'Successfully archived :count categories', - 'deleted_proposal_categories' => 'Successfully archived :count categories', - 'restored_proposal_category' => 'Successfully restored category', - 'restore_proposal_category' => 'Restore Category', + 'template' => 'Šablona', + 'templates' => 'Šablony', + 'proposal_template' => 'Šablona', + 'proposal_templates' => 'Šablony', + 'new_proposal_template' => 'Nová šablona', + 'edit_proposal_template' => 'Upravit šablonu', + 'archive_proposal_template' => 'Archivovat šablonu', + 'delete_proposal_template' => 'Smazat šablonu', + 'created_proposal_template' => 'Šablona úspěšně vytvořena', + 'updated_proposal_template' => 'Šablona úspěšně aktualizována', + 'archived_proposal_template' => 'Šablona úspěšně archivována', + 'deleted_proposal_template' => 'Šablona úspěšně archivována', + 'archived_proposal_templates' => 'Úspěšně archivováno :count šablon', + 'deleted_proposal_templates' => 'Úspěšně archivováno :count šablon', + 'restored_proposal_template' => 'Šablona úspěšně obnovena', + 'restore_proposal_template' => 'Obnovit šablonu', + 'proposal_category' => 'Kategorie', + 'proposal_categories' => 'Kategorie', + 'new_proposal_category' => 'Nová kategorie', + 'edit_proposal_category' => 'Upravit kategorii', + 'archive_proposal_category' => 'Archivovat kategorii', + 'delete_proposal_category' => 'Smazat kategorii', + 'created_proposal_category' => 'Kategorie úspěšně vytvořena', + 'updated_proposal_category' => 'Kategorie úspěšně aktualizována', + 'archived_proposal_category' => 'Kategorie úspěšně archivována', + 'deleted_proposal_category' => 'Kategorie úspěšně archivována', + 'archived_proposal_categories' => 'Úspěšně archivováno :count kategorií', + 'deleted_proposal_categories' => 'Úspěšně archivováno :count kategorií', + 'restored_proposal_category' => 'Kategorie úspěšně obnovena', + 'restore_proposal_category' => 'Obnovit kategorii', 'delete_status' => 'Delete Status', 'standard' => 'Standard', - 'icon' => 'Icon', + 'icon' => 'Ikona', 'proposal_not_found' => 'The requested proposal is not available', - 'create_proposal_category' => 'Create category', + 'create_proposal_category' => 'Vytvořit kategorii', 'clone_proposal_template' => 'Clone Template', 'proposal_email' => 'Proposal Email', 'proposal_subject' => 'Nový návrh :number od :account', 'proposal_message' => 'Pro zobrazení návrhu na :amount klikněte na odkaz níže.', 'emailed_proposal' => 'Successfully emailed proposal', - 'load_template' => 'Load Template', + 'load_template' => 'Načíst šablonu', 'no_assets' => 'No images, drag to upload', - 'add_image' => 'Add Image', - 'select_image' => 'Select Image', + 'add_image' => 'Přidat obrázek', + 'select_image' => 'Vybrat obrázek', 'upgrade_to_upload_images' => 'Upgrade to the enterprise plan to upload images', - 'delete_image' => 'Delete Image', + 'delete_image' => 'Smazat obrázek', 'delete_image_help' => 'Warning: deleting the image will remove it from all proposals.', 'amount_variable_help' => 'Note: the invoice $amount field will use the partial/deposit field if set otherwise it will use the invoice balance.', 'taxes_are_included_help' => 'Note: Inclusive taxes have been enabled.', @@ -2747,13 +2750,13 @@ $LANG = array( 'test' => 'Test', 'beta' => 'Beta', 'gmp_required' => 'Exporting to ZIP requires the GMP extension', - 'email_history' => 'Email History', + 'email_history' => 'Historie e-mailů', 'loading' => 'Loading', - 'no_messages_found' => 'No messages found', + 'no_messages_found' => 'Žádné zprávy nenalezeny', 'processing' => 'Processing', 'reactivate' => 'Reactivate', 'reactivated_email' => 'The email address has been reactivated', - 'emails' => 'Emails', + 'emails' => 'E-maily', 'opened' => 'Opened', 'bounced' => 'Bounced', 'total_sent' => 'Total Sent', @@ -2771,9 +2774,9 @@ $LANG = array( 'received_new_payment' => 'You\'ve received a new payment!', 'slack_webhook_help' => 'Receive payment notifications using :link.', 'slack_incoming_webhooks' => 'Slack incoming webhooks', - 'accept' => 'Accept', + 'accept' => 'Přijmout', 'accepted_terms' => 'Successfully accepted the latest terms of service', - 'invalid_url' => 'Invalid URL', + 'invalid_url' => 'Neplatná URL', 'workflow_settings' => 'Workflow Settings', 'auto_email_invoice' => 'Auto Email', 'auto_email_invoice_help' => 'Automatically email recurring invoices when created.', @@ -2795,13 +2798,13 @@ $LANG = array( 'item_details' => 'Item Details', 'send_item_details_help' => 'Send line item details to the payment gateway.', 'view_proposal' => 'View Proposal', - 'view_in_portal' => 'View in Portal', - 'cookie_message' => 'This website uses cookies to ensure you get the best experience on our website.', + 'view_in_portal' => 'Zobrazit na portálu', + 'cookie_message' => 'Tyto webové stránky používají soubory cookie, aby vám poskytovaly co nejlepší zážitek.', 'got_it' => 'Got it!', 'vendor_will_create' => 'vendor will be created', 'vendors_will_create' => 'vendors will be created', 'created_vendors' => 'Successfully created :count vendor(s)', - 'import_vendors' => 'Import Vendors', + 'import_vendors' => 'Importovat dodavatele', 'company' => 'Firma', 'client_field' => 'Client Field', 'contact_field' => 'Contact Field', @@ -2824,10 +2827,10 @@ $LANG = array( 'unapproved_proposal' => 'Unapproved Proposal', 'autofills_city_state' => 'Auto-fills city/state', 'no_match_found' => 'No match found', - 'password_strength' => 'Password Strength', - 'strength_weak' => 'Weak', - 'strength_good' => 'Good', - 'strength_strong' => 'Strong', + 'password_strength' => 'Síla hesla', + 'strength_weak' => 'Slabé', + 'strength_good' => 'Dobré', + 'strength_strong' => 'Silné', 'mark' => 'Mark', 'updated_task_status' => 'Successfully update task status', 'background_image' => 'Background Image', @@ -2849,37 +2852,37 @@ $LANG = array( 'maximum' => 'Maximum', 'sort' => 'Sort', 'refresh_complete' => 'Refresh Complete', - 'please_enter_your_email' => 'Please enter your email', - 'please_enter_your_password' => 'Please enter your password', - 'please_enter_your_url' => 'Please enter your URL', + 'please_enter_your_email' => 'Prosím zadejte svůj e-mail', + 'please_enter_your_password' => 'Prosím zadejte svoje heslo', + 'please_enter_your_url' => 'Prosím zadejte svoji URL', 'please_enter_a_product_key' => 'Please enter a product key', - 'an_error_occurred' => 'An error occurred', - 'overview' => 'Overview', + 'an_error_occurred' => 'Došlo k chybě', + 'overview' => 'Přehled', 'copied_to_clipboard' => 'Copied :value to the clipboard', - 'error' => 'Error', + 'error' => 'Chyba', 'could_not_launch' => 'Could not launch', 'additional' => 'Additional', - 'ok' => 'Ok', - 'email_is_invalid' => 'Email is invalid', - 'items' => 'Items', + 'ok' => 'OK', + 'email_is_invalid' => 'E-mail je neplatný', + 'items' => 'Položky', 'partial_deposit' => 'Partial/Deposit', - 'add_item' => 'Add Item', + 'add_item' => 'Přidat položku', 'total_amount' => 'Total Amount', 'pdf' => 'PDF', 'invoice_status_id' => 'Invoice Status', - 'click_plus_to_add_item' => 'Click + to add an item', + 'click_plus_to_add_item' => 'Stiskněte + pro přidání položky', 'count_selected' => ':count selected', 'dismiss' => 'Dismiss', - 'please_select_a_date' => 'Please select a date', + 'please_select_a_date' => 'Prosím vyberte datum', 'please_select_a_client' => 'Please select a client', - 'language' => 'Language', + 'language' => 'Jazyk', 'updated_at' => 'Updated', 'please_enter_an_invoice_number' => 'Please enter an invoice number', 'please_enter_a_quote_number' => 'Please enter a quote number', 'clients_invoices' => ':client\'s invoices', 'viewed' => 'Viewed', 'approved' => 'Approved', - 'invoice_status_1' => 'Draft', + 'invoice_status_1' => 'Koncept', 'invoice_status_2' => 'Sent', 'invoice_status_3' => 'Viewed', 'invoice_status_4' => 'Approved', @@ -2894,7 +2897,7 @@ $LANG = array( 'industry' => 'Industry', 'size' => 'Size', 'net' => 'Net', - 'show_tasks' => 'Show tasks', + 'show_tasks' => 'Zobrazit úlohy', 'email_reminders' => 'Email Reminders', 'reminder1' => 'First Reminder', 'reminder2' => 'Second Reminder', @@ -3067,7 +3070,7 @@ $LANG = array( 'last30_days' => 'Last 30 Days', 'custom_js' => 'Custom JS', 'adjust_fee_percent_help' => 'Adjust percent to account for fee', - 'show_product_notes' => 'Show product details', + 'show_product_notes' => 'Zobrazit detaily produktu', 'show_product_notes_help' => 'Include the description and cost in the product dropdown', 'important' => 'Important', 'thank_you_for_using_our_app' => 'Thank you for using our app!', @@ -3108,7 +3111,7 @@ $LANG = array( 'error_unsaved_changes' => 'Please save or cancel your changes', 'thank_you_for_your_purchase' => 'Thank you for your purchase!', 'redeem' => 'Redeem', - 'back' => 'Back', + 'back' => 'Zpět', 'past_purchases' => 'Past Purchases', 'annual_subscription' => 'Annual Subscription', 'pro_plan' => 'Pro Plan', @@ -3121,7 +3124,7 @@ $LANG = array( 'i_agree_to_the' => 'I agree to the', 'terms_of_service_link' => 'terms of service', 'privacy_policy_link' => 'privacy policy', - 'view_website' => 'View Website', + 'view_website' => 'Navštívit web', 'create_account' => 'Create Account', 'email_login' => 'Email Login', 'late_fees' => 'Late Fees', @@ -3145,7 +3148,7 @@ $LANG = array( 'custom_javascript' => 'Custom JavaScript', 'portal_mode' => 'Portal Mode', 'attach_pdf' => 'Attach PDF', - 'attach_documents' => 'Attach Documents', + 'attach_documents' => 'Přiložit dokumenty', 'attach_ubl' => 'Attach UBL', 'email_style' => 'Email Style', 'processed' => 'Processed', @@ -3183,7 +3186,7 @@ $LANG = array( 'filtered_by_invoice' => 'Filtered by Invoice', 'filtered_by_client' => 'Filtered by Client', 'filtered_by_vendor' => 'Filtered by Vendor', - 'group_settings' => 'Group Settings', + 'group_settings' => 'Nastavení skupiny', 'groups' => 'Groups', 'new_group' => 'New Group', 'edit_group' => 'Edit Group', @@ -3195,8 +3198,8 @@ $LANG = array( 'upload_logo' => 'Upload Logo', 'uploaded_logo' => 'Successfully uploaded logo', 'saved_settings' => 'Successfully saved settings', - 'device_settings' => 'Device Settings', - 'credit_cards_and_banks' => 'Credit Cards & Banks', + 'device_settings' => 'Nastavení zařízení', + 'credit_cards_and_banks' => 'Kreditní karty a banky', 'price' => 'Price', 'email_sign_up' => 'Email Sign Up', 'google_sign_up' => 'Google Sign Up', @@ -3211,14 +3214,14 @@ $LANG = array( 'download_data' => 'Press button below to download the data.', 'migration_import' => 'Awesome! Now you are ready to import your migration. Go to your new installation to import your data', 'continue' => 'Continue', - 'company1' => 'Custom Company 1', - 'company2' => 'Custom Company 2', - 'company3' => 'Custom Company 3', - 'company4' => 'Custom Company 4', - 'product1' => 'Custom Product 1', - 'product2' => 'Custom Product 2', - 'product3' => 'Custom Product 3', - 'product4' => 'Custom Product 4', + 'company1' => 'Vlastní firma 1', + 'company2' => 'Vlastní firma 2', + 'company3' => 'Vlastní firma 3', + 'company4' => 'Vlastní firma 4', + 'product1' => 'Vlastní produkt 1', + 'product2' => 'Vlastní produkt 2', + 'product3' => 'Vlastní produkt 3', + 'product4' => 'Vlastní produkt 4', 'client1' => 'Custom Client 1', 'client2' => 'Custom Client 2', 'client3' => 'Custom Client 3', @@ -3231,14 +3234,14 @@ $LANG = array( 'task2' => 'Custom Task 2', 'task3' => 'Custom Task 3', 'task4' => 'Custom Task 4', - 'project1' => 'Custom Project 1', - 'project2' => 'Custom Project 2', - 'project3' => 'Custom Project 3', - 'project4' => 'Custom Project 4', - 'expense1' => 'Custom Expense 1', - 'expense2' => 'Custom Expense 2', - 'expense3' => 'Custom Expense 3', - 'expense4' => 'Custom Expense 4', + 'project1' => 'Vlastní projekt 1', + 'project2' => 'Vlastní projekt 2', + 'project3' => 'Vlastní projekt 3', + 'project4' => 'Vlastní projekt 4', + 'expense1' => 'Vlastní náklad 1', + 'expense2' => 'Vlastní náklad 2', + 'expense3' => 'Vlastní náklad 3', + 'expense4' => 'Vlastní náklad 4', 'vendor1' => 'Custom Vendor 1', 'vendor2' => 'Custom Vendor 2', 'vendor3' => 'Custom Vendor 3', @@ -3279,12 +3282,12 @@ $LANG = array( 'applied' => 'Applied', 'include_recent_errors' => 'Include recent errors from the logs', 'your_message_has_been_received' => 'We have received your message and will try to respond promptly.', - 'show_product_details' => 'Show Product Details', + 'show_product_details' => 'Zobrazit detaily produktu', 'show_product_details_help' => 'Include the description and cost in the product dropdown', 'pdf_min_requirements' => 'The PDF renderer requires :version', 'adjust_fee_percent' => 'Adjust Fee Percent', 'configure_settings' => 'Configure Settings', - 'about' => 'About', + 'about' => 'O nás', 'credit_email' => 'Credit Email', 'domain_url' => 'Domain URL', 'password_is_too_easy' => 'Password must contain an upper case character and a number', @@ -3326,7 +3329,7 @@ $LANG = array( 'item_tax_rates' => 'Item Tax Rates', 'configure_rates' => 'Configure rates', 'tax_settings_rates' => 'Tax Rates', - 'accent_color' => 'Accent Color', + 'accent_color' => 'Akcentní barva', 'comma_sparated_list' => 'Comma separated list', 'single_line_text' => 'Single-line text', 'multi_line_text' => 'Multi-line text', @@ -3385,9 +3388,9 @@ $LANG = array( 'client_is_active' => 'Client is Active', 'client_balance' => 'Client Balance', 'client_address1' => 'Client Street', - 'client_address2' => 'Client Apt/Suite', + 'client_address2' => 'Klientské číslo patra/bytu', 'client_shipping_address1' => 'Client Shipping Street', - 'client_shipping_address2' => 'Client Shipping Apt/Suite', + 'client_shipping_address2' => 'Klientské doručovací číslo patra/bytu', 'tax_rate1' => 'Tax Rate 1', 'tax_rate2' => 'Tax Rate 2', 'tax_rate3' => 'Tax Rate 3', @@ -3408,7 +3411,7 @@ $LANG = array( 'credit_footer' => 'Credit Footer', 'credit_terms' => 'Credit Terms', 'untitled_company' => 'Untitled Company', - 'added_company' => 'Successfully added company', + 'added_company' => 'Firma úspěšně přidána', 'supported_events' => 'Supported Events', 'custom3' => 'Third Custom', 'custom4' => 'Fourth Custom', @@ -3450,14 +3453,14 @@ $LANG = array( 'deleted_design' => 'Successfully deleted design', 'removed_design' => 'Design úspěšně odstraněn', 'restored_design' => 'Successfully restored design', - 'recurring_tasks' => 'Recurring Tasks', + 'recurring_tasks' => 'Pravidelné úlohy', 'removed_credit' => 'Successfully removed credit', 'latest_version' => 'Latest Version', 'update_now' => 'Update Now', 'a_new_version_is_available' => 'A new version of the web app is available', 'update_available' => 'Update Available', 'app_updated' => 'Update successfully completed', - 'integrations' => 'Integrations', + 'integrations' => 'Integrace', 'tracking_id' => 'Tracking Id', 'slack_webhook_url' => 'Slack Webhook URL', 'partial_payment' => 'Partial Payment', @@ -3478,7 +3481,7 @@ $LANG = array( 'credit_remaining' => 'Credit Remaining', 'use_default' => 'Use default', 'reminder_endless' => 'Endless Reminders', - 'number_of_days' => 'Number of days', + 'number_of_days' => 'Počet dní', 'configure_payment_terms' => 'Configure Payment Terms', 'payment_term' => 'Payment Term', 'new_payment_term' => 'New Payment Term', @@ -3510,10 +3513,10 @@ $LANG = array( 'search_vendors' => 'Hledat dodavatele', 'search_users' => 'Hledat uživatele', 'search_tax_rates' => 'Search Tax Rates', - 'search_tasks' => 'Search Tasks', - 'search_settings' => 'Search Settings', + 'search_tasks' => 'Hledat úlohy', + 'search_settings' => 'Nastavení vyhledávání', 'search_projects' => 'Hledat projekt', - 'search_expenses' => 'Hledat výdaje', + 'search_expenses' => 'Hledat náklady', 'search_payments' => 'Search Payments', 'search_groups' => 'Search Groups', 'search_company' => 'Hledat firmu', @@ -3572,20 +3575,20 @@ $LANG = array( 'gross' => 'Gross', 'net_amount' => 'Net Amount', 'net_balance' => 'Net Balance', - 'client_settings' => 'Client Settings', + 'client_settings' => 'Klientské nastavení', 'selected_invoices' => 'Selected Invoices', 'selected_payments' => 'Selected Payments', 'selected_quotes' => 'Selected Quotes', - 'selected_tasks' => 'Selected Tasks', - 'selected_expenses' => 'Selected Expenses', + 'selected_tasks' => 'Vybrané úlohy', + 'selected_expenses' => 'Vybrané náklady', 'past_due_invoices' => 'Past Due Invoices', 'create_payment' => 'Create Payment', 'update_quote' => 'Update Quote', 'update_invoice' => 'Update Invoice', 'update_client' => 'Update Client', 'update_vendor' => 'Update Vendor', - 'create_expense' => 'Create Expense', - 'update_expense' => 'Update Expense', + 'create_expense' => 'Vytvořit náklad', + 'update_expense' => 'Aktualizovat náklad', 'update_task' => 'Update Task', 'approve_quote' => 'Approve Quote', 'when_paid' => 'When Paid', @@ -3616,7 +3619,7 @@ $LANG = array( 'restored_token' => 'Successfully restored token', 'client_registration' => 'Client Registration', 'client_registration_help' => 'Enable clients to self register in the portal', - 'customize_and_preview' => 'Customize & Preview', + 'customize_and_preview' => 'Přizpůsobení a náhled', 'search_document' => 'Search 1 Document', 'search_design' => 'Search 1 Design', 'search_invoice' => 'Hledat 1 fakturu', @@ -3644,7 +3647,7 @@ $LANG = array( 'mark_invoiceable_help' => 'Enable the expense to be invoiced', 'add_documents_to_invoice_help' => 'Make the documents visible to client', 'convert_currency_help' => 'Set an exchange rate', - 'expense_settings' => 'Expense Settings', + 'expense_settings' => 'Nastavení nákladů', 'clone_to_recurring' => 'Clone to Recurring', 'crypto' => 'Crypto', 'user_field' => 'User Field', @@ -3679,9 +3682,9 @@ $LANG = array( 'send_date' => 'Send Date', 'auto_bill_on' => 'Auto Bill On', 'minimum_under_payment_amount' => 'Minimum Under Payment Amount', - 'allow_over_payment' => 'Allow Over Payment', + 'allow_over_payment' => 'Allow Overpayment', 'allow_over_payment_help' => 'Support paying extra to accept tips', - 'allow_under_payment' => 'Allow Under Payment', + 'allow_under_payment' => 'Allow Underpayment', 'allow_under_payment_help' => 'Support paying at minimum the partial/deposit amount', 'test_mode' => 'Test Mode', 'calculated_rate' => 'Calculated Rate', @@ -3699,13 +3702,13 @@ $LANG = array( 'restored_task_status' => 'Successfully restored task status', 'search_task_status' => 'Search 1 Task Status', 'search_task_statuses' => 'Search :count Task Statuses', - 'show_tasks_table' => 'Show Tasks Table', - 'show_tasks_table_help' => 'Always show the tasks section when creating invoices', + 'show_tasks_table' => 'Zobrazit tabulku úloh', + 'show_tasks_table_help' => 'Vždy zobrazovat sekci s úlohami při zakládání faktur', 'invoice_task_timelog' => 'Invoice Task Timelog', 'invoice_task_timelog_help' => 'Add time details to the invoice line items', - 'auto_start_tasks_help' => 'Start tasks before saving', + 'auto_start_tasks_help' => 'Zahájit úlohy před uložením', 'configure_statuses' => 'Configure Statuses', - 'task_settings' => 'Task Settings', + 'task_settings' => 'Nastavení úloh', 'configure_categories' => 'Configure Categories', 'edit_expense_category' => 'Edit Expense Category', 'removed_expense_category' => 'Successfully removed expense category', @@ -3729,14 +3732,14 @@ $LANG = array( 'expense_number' => 'Expense Number', 'task_number' => 'Task Number', 'project_number' => 'Project Number', - 'view_settings' => 'View Settings', + 'view_settings' => 'Nastavení zobrazení', 'company_disabled_warning' => 'Varování: tato firma ještě nebylo aktivována', 'late_invoice' => 'Late Invoice', 'expired_quote' => 'Expired Quote', 'remind_invoice' => 'Remind Invoice', 'client_phone' => 'Client Phone', 'required_fields' => 'Required Fields', - 'enabled_modules' => 'Enabled Modules', + 'enabled_modules' => 'Aktivované moduly', 'activity_60' => ':contact viewed quote :quote', 'activity_61' => ':user updated client :client', 'activity_62' => ':user updated vendor :vendor', @@ -3801,7 +3804,7 @@ $LANG = array( 'restored_documents' => 'Successfully restored :value documents', 'restored_vendors' => 'Successfully restored :value vendors', 'restored_expenses' => 'Successfully restored :value expenses', - 'restored_tasks' => 'Successfully restored :value tasks', + 'restored_tasks' => 'Úspěšně obnoveno :value úloh', 'restored_projects' => 'Projekt :value obnoven', 'restored_products' => 'Successfully restored :value products', 'restored_clients' => 'Successfully restored :value clients', @@ -3817,26 +3820,26 @@ $LANG = array( 'first_row_as_column_names' => 'Use first row as column names', 'no_file_selected' => 'No File Selected', 'import_type' => 'Import Type', - 'draft_mode' => 'Draft Mode', + 'draft_mode' => 'Režim konceptu', 'draft_mode_help' => 'Preview updates faster but is less accurate', 'show_product_discount' => 'Zobrazit slevu produktu', 'show_product_discount_help' => 'Display a line item discount field', 'tax_name3' => 'Název daně 3', 'debug_mode_is_enabled' => 'Debugovací mód je zapnutý', 'debug_mode_is_enabled_help' => 'Varování: je určený pouze pro vývoj na lokálním serveru. Může vyzradit údaje. Klikněte pro další informace.', - 'running_tasks' => 'Running Tasks', + 'running_tasks' => 'Běžící úlohy', 'recent_tasks' => 'Nedávné úkoly', 'recent_expenses' => 'Nedávné náklady', 'upcoming_expenses' => 'Nadcházející náklady', 'search_payment_term' => 'Search 1 Payment Term', 'search_payment_terms' => 'Search :count Payment Terms', 'save_and_preview' => 'Uložit a zobrazit náhled', - 'save_and_email' => 'Uložit a odeslat emailem', + 'save_and_email' => 'Uložit a odeslat e-mailem', 'converted_balance' => 'Converted Balance', 'is_sent' => 'Je odesláno', 'document_upload' => 'Nahrání dokumentu', 'document_upload_help' => 'Povolit klientům nahrávat dokumenty', - 'expense_total' => 'Výdajů celkem', + 'expense_total' => 'Náklady celkem', 'enter_taxes' => 'Zadejte daně', 'by_rate' => 'Podle sazby', 'by_amount' => 'Podle částky', @@ -3861,7 +3864,7 @@ $LANG = array( 'notification_credit_viewed' => 'The following client :client viewed Credit :credit for :amount.', 'reset_password_text' => 'Enter your email to reset your password.', 'password_reset' => 'Reset hesla', - 'account_login_text' => 'Welcome! Glad to see you.', + 'account_login_text' => 'Vítej! Rádi tě tu vidíme.', 'request_cancellation' => 'Request cancellation', 'delete_payment_method' => 'Odstranit platební metodu', 'about_to_delete_payment_method' => 'You are about to delete the payment method.', @@ -3890,13 +3893,13 @@ $LANG = array( 'display_log' => 'Display Log', 'send_fail_logs_to_our_server' => 'Report errors in realtime', 'setup' => 'Instalace', - 'quick_overview_statistics' => 'Quick overview & statistics', + 'quick_overview_statistics' => 'Rychlý přehled a statistika', 'update_your_personal_info' => 'Update your personal information', - 'name_website_logo' => 'Jméno, web & logo', + 'name_website_logo' => 'Jméno, web a logo', 'make_sure_use_full_link' => 'Make sure you use full link to your site', 'personal_address' => 'Personal address', 'enter_your_personal_address' => 'Enter your personal address', - 'enter_your_shipping_address' => 'Enter your shipping address', + 'enter_your_shipping_address' => 'Zadejte svou doručovací adresu', 'list_of_invoices' => 'Seznam faktur', 'with_selected' => 'With selected', 'invoice_still_unpaid' => 'This invoice is still not paid. Click the button to complete the payment', @@ -3978,8 +3981,8 @@ $LANG = array( 'account_balance' => 'Account Balance', 'thanks' => 'Děkujeme', 'minimum_required_payment' => 'Minimum required payment is :amount', - 'under_payments_disabled' => 'Company doesn\'t support under payments.', - 'over_payments_disabled' => 'Company doesn\'t support over payments.', + 'under_payments_disabled' => 'Company doesn\'t support underpayments.', + 'over_payments_disabled' => 'Company doesn\'t support overpayments.', 'saved_at' => 'Uloženo v :time', 'credit_payment' => 'Credit applied to Invoice :invoice_number', 'credit_subject' => 'New credit :number from :account', @@ -4072,7 +4075,7 @@ $LANG = array( 'online_payments_minimum_note' => 'Note: Online payments are supported only if amount is bigger than $1 or currency equivalent.', 'payment_token_not_found' => 'Payment token not found, please try again. If an issue still persist, try with another payment method', 'vendor_address1' => 'Vendor Street', - 'vendor_address2' => 'Vendor Apt/Suite', + 'vendor_address2' => 'Dodavatelské číslo patra/bytu', 'partially_unapplied' => 'Partially Unapplied', 'select_a_gmail_user' => 'Please select a user authenticated with Gmail', 'list_long_press' => 'List Long Press', @@ -4100,9 +4103,9 @@ $LANG = array( 'count_day' => '1 den', 'count_days' => ':count dní', 'web_session_timeout' => 'Web Session Timeout', - 'security_settings' => 'Security Settings', - 'resend_email' => 'Znovu odeslat email', - 'confirm_your_email_address' => 'Potvrďte svou emailovou adresu', + 'security_settings' => 'Nastavení bezpečí', + 'resend_email' => 'Znovu odeslat e-mail', + 'confirm_your_email_address' => 'Potvrďte svou e-mailovou adresu', 'freshbooks' => 'FreshBooks', 'invoice2go' => 'Invoice2go', 'invoicely' => 'Invoicely', @@ -4123,8 +4126,8 @@ $LANG = array( 'help_translate' => 'Pomozte přeložit', 'please_select_a_country' => 'Vyberte zemi', 'disabled_two_factor' => 'Dvoufázové ověření úspěšně deaktivováno', - 'connected_google' => 'Successfully connected account', - 'disconnected_google' => 'Successfully disconnected account', + 'connected_google' => 'Účet úspěšně připojen', + 'disconnected_google' => 'Účet úspěšně odpojen', 'delivered' => 'Doručeno', 'spam' => 'Spam', 'view_docs' => 'Zobrazit dokumenty', @@ -4138,11 +4141,11 @@ $LANG = array( 'invoice_task_datelog_help' => 'Add date details to the invoice line items', 'promo_code' => 'Promo kód', 'recurring_invoice_issued_to' => 'Faktura vystavena pro', - 'subscription' => 'Subscription', - 'new_subscription' => 'New Subscription', - 'deleted_subscription' => 'Successfully deleted subscription', + 'subscription' => 'Předplatné', + 'new_subscription' => 'Nové předplatné', + 'deleted_subscription' => 'Předplatné úspěšně smazáno', 'removed_subscription' => 'Předplatné úspěšně odstraněno', - 'restored_subscription' => 'Successfully restored subscription', + 'restored_subscription' => 'Předplatné úspěšně obnoveno', 'search_subscription' => 'Search 1 Subscription', 'search_subscriptions' => 'Search :count Subscriptions', 'subdomain_is_not_available' => 'Subdoména není dostupná', @@ -4206,7 +4209,7 @@ $LANG = array( 'auto_bill_disabled' => 'Automatická fakturace vypnuta', 'select_payment_method' => 'Vyberte platební metodu:', 'login_without_password' => 'Přihlásit se bez hesla', - 'email_sent' => 'Odeslat email, pokud je faktura odeslaná', + 'email_sent' => 'Odeslat e-mail, pokud je faktura odeslaná', 'one_time_purchases' => 'Jednorázové nákupy', 'recurring_purchases' => 'Pravidelné nákupy', 'you_might_be_interested_in_following' => 'Mohlo by vás zajímat', @@ -4281,8 +4284,8 @@ $LANG = array( 'normal' => 'Normální', 'large' => 'Velký', 'extra_large' => 'Extra velký', - 'show_pdf_preview' => 'Zobrazit PDF náhled', - 'show_pdf_preview_help' => 'Zobrazit PDF náhled při editaci faktur', + 'show_pdf_preview' => 'Zobrazovat náhled PDF', + 'show_pdf_preview_help' => 'Zobrazovat náhled PDF při úpravě faktur', 'print_pdf' => 'Tisk PDF', 'remind_me' => 'Remind Me', 'instant_bank_pay' => 'Instant Bank Pay', @@ -4295,7 +4298,7 @@ $LANG = array( 'recommend_mobile' => 'We recommend using the mobile app for the best performance', 'disconnected_gateway' => 'Successfully disconnected gateway', 'disconnect' => 'Odpojit', - 'add_to_invoices' => 'Add to Invoices', + 'add_to_invoices' => 'Přidávat do faktur', 'bulk_download' => 'Stáhnout', 'persist_data_help' => 'Save data locally to enable the app to start faster, disabling may improve performance in large accounts', 'persist_ui' => 'Persist UI', @@ -4315,9 +4318,9 @@ $LANG = array( 'error_cross_client_expenses' => 'Expenses must all belong to the same client', 'app' => 'Aplikace', 'for_best_performance' => 'For the best performance download the :app app', - 'bulk_email_invoice' => 'Poslat fakturu emailem', - 'bulk_email_quote' => 'Poslat nabídku emailem', - 'bulk_email_credit' => 'Poslat kredit emaile', + 'bulk_email_invoice' => 'Poslat fakturu e-mailem', + 'bulk_email_quote' => 'Poslat nabídku e-mailem', + 'bulk_email_credit' => 'Poslat kredit e-mailem', 'removed_recurring_expense' => 'Pravidelný náklad úspěšně odstraněn', 'search_recurring_expense' => 'Hledat pravidelný náklad', 'search_recurring_expenses' => 'Hledat pravidelné náklady', @@ -4360,7 +4363,7 @@ $LANG = array( 'free_trial_help' => 'All accounts receive a two week trial of the Pro plan, once the trial ends your account will automatically change to the free plan.', 'free_trial_ends_in_days' => 'The Pro plan trial ends in :count days, click to upgrade.', 'free_trial_ends_today' => 'Today is the last day of the Pro plan trial, click to upgrade.', - 'change_email' => 'Změnit email', + 'change_email' => 'Změnit e-mail', 'client_portal_domain_hint' => 'Optionally configure a separate client portal domain', 'tasks_shown_in_portal' => 'Tasks Shown in Portal', 'uninvoiced' => 'Nevyfakturováno', @@ -4427,7 +4430,7 @@ $LANG = array( 'rest_method' => 'REST metoda', 'header_key' => 'Header Key', 'header_value' => 'Header Value', - 'recurring_products' => 'Recurring Products', + 'recurring_products' => 'Pravidelné produkty', 'promo_discount' => 'Promo Discount', 'allow_cancellation' => 'Allow Cancellation', 'per_seat_enabled' => 'Per Seat Enabled', @@ -4510,11 +4513,11 @@ $LANG = array( 'json_help' => 'Note: JSON files generated by the v4 app are not supported', 'release_notes' => 'Release Notes', 'upgrade_to_view_reports' => 'Upgrade your plan to view reports', - 'started_tasks' => 'Successfully started :value tasks', - 'stopped_tasks' => 'Successfully stopped :value tasks', + 'started_tasks' => 'Úspěšně zahájeno :value úloh', + 'stopped_tasks' => 'Úspěšně ukončeno :value úloh', 'approved_quote' => 'Successfully apporved quote', 'approved_quotes' => 'Successfully :value approved quotes', - 'client_website' => 'Client Website', + 'client_website' => 'Klientský web', 'invalid_time' => 'Invalid Time', 'signed_in_as' => 'Signed in as', 'total_results' => 'Total results', @@ -4525,7 +4528,7 @@ $LANG = array( 'tax_amount1' => 'Tax Amount 1', 'tax_amount2' => 'Tax Amount 2', 'tax_amount3' => 'Tax Amount 3', - 'update_project' => 'Update Project', + 'update_project' => 'Aktualizovat projekt', 'auto_archive_invoice_cancelled' => 'Auto Archive Cancelled Invoice', 'auto_archive_invoice_cancelled_help' => 'Automatically archive invoices when cancelled', 'no_invoices_found' => 'No invoices found', @@ -4544,7 +4547,7 @@ $LANG = array( 'page_numbering' => 'Page Numbering', 'page_numbering_alignment' => 'Page Numbering Alignment', 'invoice_sent_notification_label' => 'Invoice Sent', - 'show_product_description' => 'Show Product Description', + 'show_product_description' => 'Zobrazit popis produktu', 'show_product_description_help' => 'Include the description in the product dropdown', 'invoice_items' => 'Invoice Items', 'quote_items' => 'Quote Items', @@ -4589,13 +4592,13 @@ $LANG = array( 'notification_purchase_order_accepted' => 'The following vendor :vendor accepted Purchase Order :purchase_order for :amount.', 'amount_received' => 'Amount received', 'purchase_order_already_expensed' => 'Already converted to an expense.', - 'convert_to_expense' => 'Convert to Expense', + 'convert_to_expense' => 'Převést na náklad', 'add_to_inventory' => 'Add to Inventory', 'added_purchase_order_to_inventory' => 'Successfully added purchase order to inventory', 'added_purchase_orders_to_inventory' => 'Successfully added purchase orders to inventory', 'client_document_upload' => 'Client Document Upload', 'vendor_document_upload' => 'Vendor Document Upload', - 'vendor_document_upload_help' => 'Enable vendors to upload documents', + 'vendor_document_upload_help' => 'Umožnit dodavatelům nahrávat dokumenty', 'are_you_enjoying_the_app' => 'Are you enjoying the app?', 'yes_its_great' => 'Yes, it\'s great!', 'not_so_much' => 'Not so much', @@ -4654,8 +4657,8 @@ $LANG = array( 'search_purchase_order' => 'Search Purchase Order', 'search_purchase_orders' => 'Search Purchase Orders', 'login_url' => 'Login URL', - 'enable_applying_payments' => 'Enable Applying Payments', - 'enable_applying_payments_help' => 'Support separately creating and applying payments', + 'enable_applying_payments' => 'Manual Overpayments', + 'enable_applying_payments_help' => 'Support adding an overpayment amount manually on a payment', 'stock_quantity' => 'Stock Quantity', 'notification_threshold' => 'Notification Threshold', 'track_inventory' => 'Track Inventory', @@ -4695,14 +4698,14 @@ $LANG = array( 'total_unapproved_quotes' => 'Unapproved Quotes', 'total_logged_tasks' => 'Logged Tasks', 'total_invoiced_tasks' => 'Invoiced Tasks', - 'total_paid_tasks' => 'Paid Tasks', + 'total_paid_tasks' => 'Placené úlohy', 'total_logged_expenses' => 'Logged Expenses', 'total_pending_expenses' => 'Pending Expenses', - 'total_invoiced_expenses' => 'Invoiced Expenses', + 'total_invoiced_expenses' => 'Vyfakturované náklady', 'total_invoice_paid_expenses' => 'Invoice Paid Expenses', 'vendor_portal' => 'Vendor Portal', 'send_code' => 'Send Code', - 'save_to_upload_documents' => 'Save the record to upload documents', + 'save_to_upload_documents' => 'Uložte záznam, abyste mohl/a nahrát dokumenty.', 'expense_tax_rates' => 'Expense Tax Rates', 'invoice_item_tax_rates' => 'Invoice Item Tax Rates', 'verified_phone_number' => 'Successfully verified phone number', @@ -4789,7 +4792,7 @@ $LANG = array( 'verify_phone_number_2fa_help' => 'Please verify your phone number for 2FA backup', 'enable_applying_payments_later' => 'Enable Applying Payments Later', 'line_item_tax_rates' => 'Line Item Tax Rates', - 'show_tasks_in_client_portal' => 'Show Tasks in Client Portal', + 'show_tasks_in_client_portal' => 'Zobrazit úlohy v klientském portálu', 'notification_quote_expired_subject' => 'Quote :invoice has expired for :client', 'notification_quote_expired' => 'The following Quote :invoice for client :client and :amount has now expired.', 'auto_sync' => 'Auto Sync', @@ -4814,8 +4817,8 @@ $LANG = array( 'registration_required_help' => 'Require clients to register', 'use_inventory_management' => 'Use Inventory Management', 'use_inventory_management_help' => 'Require products to be in stock', - 'optional_products' => 'Optional Products', - 'optional_recurring_products' => 'Optional Recurring Products', + 'optional_products' => 'Volitelné produkty', + 'optional_recurring_products' => 'Volitelné pravidelné produkty', 'convert_matched' => 'Convert', 'auto_billed_invoice' => 'Successfully queued invoice to be auto-billed', 'auto_billed_invoices' => 'Successfully queued invoices to be auto-billed', @@ -4854,8 +4857,8 @@ $LANG = array( 'company_backup_file' => 'Select company backup file', 'company_backup_file_help' => 'Please upload the .zip file used to create this backup.', 'backup_restore' => 'Backup | Restore', - 'export_company' => 'Create company backup', - 'backup' => 'Backup', + 'export_company' => 'Vytvořit firemní zálohu', + 'backup' => 'Záloha', 'notification_purchase_order_created_body' => 'The following purchase_order :purchase_order was created for vendor :vendor for :amount.', 'notification_purchase_order_created_subject' => 'Purchase Order :purchase_order was created for :vendor', 'notification_purchase_order_sent_subject' => 'Purchase Order :purchase_order was sent to :vendor', @@ -4920,7 +4923,7 @@ $LANG = array( 'restored_schedule' => 'Successfully restored schedule', 'search_schedule' => 'Search Schedule', 'search_schedules' => 'Search Schedules', - 'update_product' => 'Update Product', + 'update_product' => 'Aktualizovat produkt', 'create_purchase_order' => 'Create Purchase Order', 'update_purchase_order' => 'Update Purchase Order', 'sent_invoice' => 'Sent Invoice', @@ -4941,7 +4944,7 @@ $LANG = array( 'from_email' => 'From Email', 'show_preview' => 'Show Preview', 'show_paid_stamp' => 'Show Paid Stamp', - 'show_shipping_address' => 'Show Shipping Address', + 'show_shipping_address' => 'Zobrazit doručovací adresu', 'no_documents_to_download' => 'There are no documents in the selected records to download', 'pixels' => 'Pixels', 'logo_size' => 'Logo Size', @@ -4986,7 +4989,7 @@ $LANG = array( 'payment_balance' => 'Payment Balance', 'view_report_permission' => 'Allow user to access the reports, data is limited to available permissions', 'activity_138' => 'Payment :payment was emailed to :client', - 'one_time_products' => 'One-Time Products', + 'one_time_products' => 'Jednorázové produkty', 'optional_one_time_products' => 'Optional One-Time Products', 'required' => 'Required', 'hidden' => 'Hidden', @@ -5017,8 +5020,8 @@ $LANG = array( 'email_record' => 'Email Record', 'invoice_product_columns' => 'Invoice Product Columns', 'quote_product_columns' => 'Quote Product Columns', - 'vendors' => 'Vendors', - 'product_sales' => 'Product Sales', + 'vendors' => 'Dodavatelé', + 'product_sales' => 'Prodeje produktu', 'user_sales_report_header' => 'User sales report for client/s :client from :start_date to :end_date', 'client_balance_report' => 'Customer balance report', 'client_sales_report' => 'Customer sales report', @@ -5028,7 +5031,7 @@ $LANG = array( 'taxable_amount' => 'Taxable Amount', 'tax_summary' => 'Tax Summary', 'oauth_mail' => 'OAuth / Mail', - 'preferences' => 'Preferences', + 'preferences' => 'Předvolby', 'analytics' => 'Analytics', 'reduced_rate' => 'Reduced Rate', 'tax_all' => 'Tax All', @@ -5044,16 +5047,16 @@ $LANG = array( 'date_picker_hint' => 'Use +days to set the date in the future', 'app_help_link' => 'More information ', 'here' => 'here', - 'industry_Restaurant & Catering' => 'Restaurant & Catering', + 'industry_Restaurant & Catering' => 'Restaurace a catering', 'show_credits_table' => 'Show Credits Table', 'manual_payment' => 'Payment Manual', 'tax_summary_report' => 'Tax Summary Report', 'tax_category' => 'Tax Category', 'physical_goods' => 'Physical Goods', - 'digital_products' => 'Digital Products', + 'digital_products' => 'Digitální produkty', 'services' => 'Services', 'shipping' => 'Shipping', - 'tax_exempt' => 'Tax Exempt', + 'tax_exempt' => 'Osvobozen od daní', 'late_fee_added_locked_invoice' => 'Late fee for invoice :invoice added on :date', 'lang_Khmer' => 'Khmer', 'routing_id' => 'Routing ID', @@ -5081,7 +5084,7 @@ $LANG = array( 'order_number' => 'Order Number', 'order_id' => 'Order', 'total_invoices_outstanding' => 'Total Invoices Outstanding', - 'recent_activity' => 'Recent Activity', + 'recent_activity' => 'Nedávná aktivita', 'enable_auto_bill' => 'Enable auto billing', 'email_count_invoices' => 'Email :count invoices', 'invoice_task_item_description' => 'Invoice Task Item Description', @@ -5133,9 +5136,9 @@ $LANG = array( 'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client', 'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client', 'default_payment_type' => 'Default Payment Type', - 'number_precision' => 'Number precision', + 'number_precision' => 'Přesnost čísel', 'number_precision_help' => 'Controls the number of decimals supported in the interface', - 'is_tax_exempt' => 'Tax Exempt', + 'is_tax_exempt' => 'Osvobozen od daní', 'drop_files_here' => 'Drop files here', 'upload_files' => 'Upload Files', 'download_e_invoice' => 'Download E-Invoice', @@ -5144,7 +5147,7 @@ $LANG = array( 'reverse_tax_info' => 'Please note that this supply is subject to reverse charge', 'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba', 'public' => 'Public', - 'private' => 'Private', + 'private' => 'Soukromé', 'image' => 'Image', 'other' => 'Other', 'linked_to' => 'Linked To', @@ -5153,20 +5156,39 @@ $LANG = array( 'unlinked_transaction' => 'Successfully unlinked transaction', 'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions', 'marked_sent_credits' => 'Successfully marked credits sent', - 'show_document_preview' => 'Show Document Preview', + 'show_document_preview' => 'Zobrazovat náhled dokumentu', 'cash_accounting' => 'Cash accounting', 'click_or_drop_files_here' => 'Click or drop files here', - 'set_public' => 'Set public', - 'set_private' => 'Set private', - 'individual' => 'Individual', - 'business' => 'Business', - 'partnership' => 'partnership', + 'set_public' => 'Nastavit jako veřejné', + 'set_private' => 'Nastavit jako soukromé', + 'individual' => 'Jednotlivec', + 'business' => 'Podnik', + 'partnership' => 'Partnerství', 'trust' => 'Trust', - 'charity' => 'Charity', - 'government' => 'Government', + 'charity' => 'Charita', + 'government' => 'Vláda', 'in_stock_quantity' => 'Stock quantity', 'vendor_contact' => 'Vendor Contact', - + 'expense_status_4' => 'Neplacené', + 'expense_status_5' => 'Placené', + 'ziptax_help' => 'Note: this feature requires a Zip-Tax API key to lookup US sales tax by address', + 'cache_data' => 'Cache Data', + 'unknown' => 'Unknown', + 'webhook_failure' => 'Webhook Failure', + 'email_opened' => 'E-mail otevřen', + 'email_delivered' => 'E-mail doručen', + 'log' => 'Log', + 'classification' => 'Klasifikace', + 'stock_quantity_number' => 'Stock :quantity', + 'upcoming' => 'Upcoming', + 'client_contact' => 'Kontakt na klienta', + 'uncategorized' => 'Nekategorizované', + 'login_notification' => 'Upozornění o přihlášení', + 'login_notification_help' => 'Sends an email notifying that a login has taken place.', + 'payment_refund_receipt' => 'Payment Refund Receipt # :number', + 'payment_receipt' => 'Payment Receipt # :number', + 'load_template_description' => 'The template will be applied to following:', + 'run_template' => 'Run template', ); return $LANG; diff --git a/lang/da/texts.php b/lang/da/texts.php index 05ad6f58be6f..bd4322e7b186 100644 --- a/lang/da/texts.php +++ b/lang/da/texts.php @@ -199,9 +199,9 @@ $LANG = array( 'removed_logo' => 'Logo slettet', 'sent_message' => 'Besked sendt', 'invoice_error' => 'Vælg venligst en kunde og ret eventuelle fejl', - 'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.', + 'limit_clients' => 'Beklager, dette vil overskride grænsen på :count Klienter . Opgrader til et betalt abonnement.', 'payment_error' => 'Det opstod en fejl under din betaling. Venligst prøv igen senere.', - 'registration_required' => 'Registration Required', + 'registration_required' => 'Tilmelding påkrævet', 'confirmation_required' => 'Venligst bekræft e-mail, :link Send bekræftelses e-mail igen.', 'updated_client' => 'Kunde opdateret', 'archived_client' => 'Kunde arkiveret', @@ -253,8 +253,8 @@ $LANG = array( 'notification_invoice_paid' => 'En betaling pålydende :amount blev betalt af :client for faktura :invoice.', 'notification_invoice_sent' => 'En e-mail er blevet sendt til :client med faktura :invoice pålydende :amount.', 'notification_invoice_viewed' => ':client har set faktura :invoice pålydende :amount.', - 'stripe_payment_text' => 'Invoice :invoicenumber for :amount for client :client', - 'stripe_payment_text_without_invoice' => 'Payment with no invoice for amount :amount for client :client', + 'stripe_payment_text' => 'Faktura :invoice nummer for :amount for Klient :client', + 'stripe_payment_text_without_invoice' => 'Betaling uden Faktura for Beløb :amount for Klient :client', 'reset_password' => 'Du kan nulstille din adgangskode ved at besøge følgende link:', 'secure_payment' => 'Sikker betaling', 'card_number' => 'Kortnummer', @@ -658,7 +658,7 @@ $LANG = array( 'primary_user' => 'Primær bruger', 'help' => 'Hjælp', 'playground' => 'legeplads', - 'support_forum' => 'Support Forums', + 'support_forum' => 'Supportfora', 'invoice_due_date' => 'Due Date', 'quote_due_date' => 'Gyldig indtil', 'valid_until' => 'Gyldig indtil', @@ -752,7 +752,7 @@ $LANG = array( 'activity_7' => ':contact læste faktura :invoice for :client', 'activity_8' => ':user arkiverede faktura :invoice', 'activity_9' => ':user slettede faktura :invoice', - 'activity_10' => ':user entered payment :payment for :payment_amount on invoice :invoice for :client', + 'activity_10' => ':user indtastet Betaling :payment for :payment _beløb på Faktura :invoice for :client', 'activity_11' => ':user ajourførte betaling :payment', 'activity_12' => ':user arkiverede betaling :payment', 'activity_13' => ':user slettede betaling :payment', @@ -786,13 +786,13 @@ $LANG = array( 'activity_45' => ':user slettede opgave :task', 'activity_46' => ':user genoprettede opgave :task', 'activity_47' => ':user ajourførte udgift :expense', - 'activity_48' => ':user created user :user', - 'activity_49' => ':user updated user :user', - 'activity_50' => ':user archived user :user', - 'activity_51' => ':user deleted user :user', - 'activity_52' => ':user restored user :user', - 'activity_53' => ':user marked sent :invoice', - 'activity_54' => ':user paid invoice :invoice', + 'activity_48' => ':user oprettet Bruger :user', + 'activity_49' => ':user opdateret Bruger :user', + 'activity_50' => ':user arkiveret Bruger :user', + 'activity_51' => ':user slettet Bruger :user', + 'activity_52' => ':user genskabt Bruger :user', + 'activity_53' => ':user markeret sendt :invoice', + 'activity_54' => ':user betalt Faktura :invoice', 'activity_55' => ':contact besvarede sagen :ticket', 'activity_56' => ':user læste sagen :ticket', @@ -994,7 +994,7 @@ $LANG = array( 'status_approved' => 'Godkendt', 'quote_settings' => 'Quote Settings', 'auto_convert_quote' => 'Auto konvertering', - 'auto_convert_quote_help' => 'Automatically convert a quote to an invoice when approved.', + 'auto_convert_quote_help' => 'Konverter automatisk et tilbud til en Faktura , når Godkendt .', 'validate' => 'Validate', 'info' => 'Info', 'imported_expenses' => 'Gennemførte oprettelse af :count_vendors sælger(e) og :count_expenses udgifter', @@ -1148,7 +1148,7 @@ $LANG = array( 'plan_status' => 'Plan Status', 'plan_upgrade' => 'Upgrade', - 'plan_change' => 'Manage Plan', + 'plan_change' => 'Administrer plan', 'pending_change_to' => 'Changes To', 'plan_changes_to' => ':plan on :date', 'plan_term_changes_to' => ':plan (:term) on :date', @@ -1979,14 +1979,14 @@ $LANG = array( 'created_at' => 'Oprettelsesdato', 'contact_us' => 'Kontakt os', 'user_guide' => 'Brugerguide', - 'promo_message' => 'Upgrade before :expires and get :amount OFF your first year of our Pro or Enterprise packages.', - 'discount_message' => ':amount off expires :expires', + 'promo_message' => 'Opgrader før :expires og få :amount RABAT dit første år af vores Pro- eller Enterprise-pakker.', + 'discount_message' => ':amount off udløber :expires', 'mark_paid' => 'Markér som betalt', - 'marked_sent_invoice' => 'Successfully marked invoice sent', - 'marked_sent_invoices' => 'Successfully marked invoices sent', + 'marked_sent_invoice' => 'Succesfuldt mærket Faktura sendt', + 'marked_sent_invoices' => 'Succesfuldt mærket Fakturaer sendt', 'invoice_name' => 'Faktura', - 'product_will_create' => 'product will be created', - 'contact_us_response' => 'Thank you for your message! We\'ll try to respond as soon as possible.', + 'product_will_create' => 'produktet vil blive oprettet', + 'contact_us_response' => 'Tak for din Besked ! Vi vil forsøge at svare så hurtigt som muligt.', 'last_7_days' => 'Seneste 7 dage', 'last_30_days' => 'Seneste 30 dage', 'this_month' => 'Denne måned', @@ -1994,7 +1994,7 @@ $LANG = array( 'current_quarter' => 'Nuværende kvartal', 'last_quarter' => 'Forrige kvartal', 'last_year' => 'Forrige år', - 'all_time' => 'All Time', + 'all_time' => 'Hele tiden', 'custom_range' => 'Valgfri periode', 'url' => 'URL', 'debug' => 'Fejlsøg', @@ -2008,7 +2008,7 @@ $LANG = array( 'iphone_app' => 'iPhone-app', 'android_app' => 'Android-app', 'logged_in' => 'Logget ind', - 'switch_to_primary' => 'Switch to your primary company (:name) to manage your plan.', + 'switch_to_primary' => 'Skift til din primære virksomhed ( :name ) for at administrere din plan.', 'inclusive' => 'Inklusiv', 'exclusive' => 'Eksklusiv', 'postal_city_state' => 'Postnummer/By/Region', @@ -2023,15 +2023,15 @@ $LANG = array( 'notes_reminder3' => 'Tredje påmindelse', 'notes_reminder4' => 'Påmindelse', 'bcc_email' => 'BCC-email', - 'tax_quote' => 'Tax Quote', - 'tax_invoice' => 'Tax Invoice', - 'emailed_invoices' => 'Successfully emailed invoices', - 'emailed_quotes' => 'Successfully emailed quotes', + 'tax_quote' => 'Skat tilbud', + 'tax_invoice' => 'Skat Faktura', + 'emailed_invoices' => 'Succesfuldt mailede Fakturaer', + 'emailed_quotes' => 'Succesfuldt mailede citater', 'website_url' => 'Website-URL', 'domain' => 'Domæne', - 'domain_help' => 'Used in the client portal and when sending emails.', - 'domain_help_website' => 'Used when sending emails.', - 'import_invoices' => 'Import Invoices', + 'domain_help' => 'Bruges i Klient portalen og ved afsendelse af e-mails.', + 'domain_help_website' => 'Bruges ved afsendelse af e-mails.', + 'import_invoices' => 'Import Fakturaer', 'new_report' => 'Ny rapport', 'edit_report' => 'Redigér rapport', 'columns' => 'Kolonner', @@ -2039,7 +2039,7 @@ $LANG = array( 'sort_by' => 'Sortér efter', 'draft' => 'Kladde', 'unpaid' => 'Ikke betalt', - 'aging' => 'Aging', + 'aging' => 'Aldring', 'age' => 'Alder', 'days' => 'Dage', 'age_group_0' => '0 - 30 dage', @@ -2052,12 +2052,12 @@ $LANG = array( 'profit_and_loss' => 'Fortjeneste og tab', 'revenue' => 'Omsætning', 'profit' => 'Fortjeneste', - 'group_when_sorted' => 'Group Sort', + 'group_when_sorted' => 'Gruppe sortering', 'group_dates_by' => 'Gruppér datoer efter', 'year' => 'År', 'view_statement' => 'Se kontoudskrift', 'statement' => 'Kontoudtog', - 'statement_date' => 'Statement Date', + 'statement_date' => 'Erklæringsdato', 'mark_active' => 'Markér som aktiv', 'send_automatically' => 'Send automatisk', 'initial_email' => 'Indledende e-mail', @@ -2080,76 +2080,76 @@ $LANG = array( // New Client Portal styling 'invoice_from' => 'Fakturaer fra:', - 'email_alias_message' => 'We require each company to have a unique email address.
Consider using an alias. ie, email+label@example.com', - 'full_name' => 'Full Name', - 'month_year' => 'MONTH/YEAR', - 'valid_thru' => 'Valid\nthru', + 'email_alias_message' => 'Vi kræver, at hver virksomhed har en unik e-mail .
Overvej at bruge et alias. dvs. e-mail +label@example.com', + 'full_name' => 'Fulde navn', + 'month_year' => 'MÅNED ÅR', + 'valid_thru' => 'Gyldig\ntil', - 'product_fields' => 'Product Fields', - 'custom_product_fields_help' => 'Add a field when creating a product or invoice and display the label and value on the PDF.', + 'product_fields' => 'Produktfelter', + 'custom_product_fields_help' => 'Tilføj et felt, når du opretter et produkt eller Faktura , og vis etiketten og værdien på PDF .', 'freq_two_months' => 'To måneder', 'freq_yearly' => 'Årligt', 'profile' => 'Profil', - 'payment_type_help' => 'Sets the default manual payment type.', + 'payment_type_help' => 'Indstiller den manuelle Betaling som standard.', 'industry_Construction' => 'Konstruktion', 'your_statement' => 'Din erklæring', 'statement_issued_to' => 'Erklæring udstedt til', 'statement_to' => 'Erklæring til', 'customize_options' => 'Tilpas valgmuligheder', - 'created_payment_term' => 'Successfully created payment term', - 'updated_payment_term' => 'Successfully updated payment term', - 'archived_payment_term' => 'Successfully archived payment term', - 'resend_invite' => 'Resend Invitation', - 'credit_created_by' => 'Credit created by payment :transaction_reference', - 'created_payment_and_credit' => 'Successfully created payment and credit', - 'created_payment_and_credit_emailed_client' => 'Successfully created payment and credit, and emailed client', + 'created_payment_term' => 'Succesfuldt oprettet Betaling term', + 'updated_payment_term' => 'Succesfuldt opdateret Betaling', + 'archived_payment_term' => 'Succesfuldt arkiveret Betaling termin', + 'resend_invite' => 'Send invitation igen', + 'credit_created_by' => 'Kredit oprettet ved Betaling :transaction_reference', + 'created_payment_and_credit' => 'Succesfuldt oprettet Betaling og kredit', + 'created_payment_and_credit_emailed_client' => 'Succesfuldt oprettet Betaling og kredit, og mailet til Klient', 'create_project' => 'Opret projekt', - 'create_vendor' => 'Create vendor', - 'create_expense_category' => 'Create category', - 'pro_plan_reports' => ':link to enable reports by joining the Pro Plan', + 'create_vendor' => 'Opret Sælger', + 'create_expense_category' => 'Opret kategori', + 'pro_plan_reports' => ':link for at aktivere rapporter ved at tilmelde dig Pro Plan', 'mark_ready' => 'Markér som klar', 'limits' => 'Grænser', 'fees' => 'Gebyrer', 'fee' => 'Gebyr', 'set_limits_fees' => 'Angiv :gateway_type grænser/gebyrer', - 'fees_tax_help' => 'Enable line item taxes to set the fee tax rates.', - 'fees_sample' => 'The fee for a :amount invoice would be :total.', - 'discount_sample' => 'The discount for a :amount invoice would be :total.', + 'fees_tax_help' => 'Aktiver linjepostskatter for at indstille gebyrafgiftssatserne.', + 'fees_sample' => 'Gebyret for en :amount Faktura ville være :total .', + 'discount_sample' => 'Rabatten for en :amount Faktura ville være :total .', 'no_fees' => 'Ingen gebyrer', 'gateway_fees_disclaimer' => 'Advarsel: det er ikke alle stater/gateways til betaling, der tillader tilføjelse af gebyrer, gennemgå venligst lokale lovgivninger/servicebetingelser. ', 'percent' => 'Procent', 'location' => 'Placering', - 'line_item' => 'Line Item', - 'surcharge' => 'Surcharge', - 'location_first_surcharge' => 'Enabled - First surcharge', - 'location_second_surcharge' => 'Enabled - Second surcharge', - 'location_line_item' => 'Enabled - Line item', - 'online_payment_surcharge' => 'Online Payment Surcharge', + 'line_item' => 'Linjepost', + 'surcharge' => 'Ekstragebyr', + 'location_first_surcharge' => 'Aktiveret - Første tillæg', + 'location_second_surcharge' => 'Aktiveret - Andet tillæg', + 'location_line_item' => 'Aktiveret - Linjepost', + 'online_payment_surcharge' => 'Online Betaling', 'gateway_fees' => 'Gebyrer for gateway', 'fees_disabled' => 'Gebyrer er slået fra', - 'gateway_fees_help' => 'Automatically add an online payment surcharge/discount.', + 'gateway_fees_help' => 'Tilføj automatisk et online Betaling /rabat.', 'gateway' => 'Gateway', - 'gateway_fee_change_warning' => 'If there are unpaid invoices with fees they need to be updated manually.', - 'fees_surcharge_help' => 'Customize surcharge :link.', - 'label_and_taxes' => 'label and taxes', + 'gateway_fee_change_warning' => 'Hvis der er ubetalte Fakturaer med gebyrer, skal de opdateret manuelt.', + 'fees_surcharge_help' => 'Tilpas tillæg :link .', + 'label_and_taxes' => 'etiket og afgifter', 'billable' => 'Fakturérbar', 'logo_warning_too_large' => 'Billedfilen er for stor', 'logo_warning_fileinfo' => 'Advarsel: For at understøtte gifbilleder, så skal PHP-udvidelsen fileinfo være slået til.', - 'logo_warning_invalid' => 'There was a problem reading the image file, please try a different format.', - 'error_refresh_page' => 'An error occurred, please refresh the page and try again.', + 'logo_warning_invalid' => 'Der opstod et problem med at læse billedfilen, prøv venligst et andet Format .', + 'error_refresh_page' => 'Der opstod en fejl. Opdater siden og prøv igen.', 'data' => 'Data', - 'imported_settings' => 'Successfully imported settings', - 'reset_counter' => 'Reset Counter', - 'next_reset' => 'Next Reset', - 'reset_counter_help' => 'Automatically reset the invoice and quote counters.', - 'auto_bill_failed' => 'Auto-billing for invoice :invoice_number failed', - 'online_payment_discount' => 'Online Payment Discount', - 'created_new_company' => 'Successfully created new company', - 'fees_disabled_for_gateway' => 'Fees are disabled for this gateway.', - 'logout_and_delete' => 'Log Out/Delete Account', - 'tax_rate_type_help' => 'Inclusive tax rates adjust the line item cost when selected.
Only exclusive tax rates can be used as a default.', - 'invoice_footer_help' => 'Use $pageNumber and $pageCount to display the page information.', + 'imported_settings' => 'Succesfuldt importerede Indstillinger', + 'reset_counter' => 'Nulstil tæller', + 'next_reset' => 'Næste nulstilling', + 'reset_counter_help' => 'Nulstil automatisk Faktura og tilbudstællere.', + 'auto_bill_failed' => 'Automatisk fakturering for Faktura :invoice _nummer mislykkedes', + 'online_payment_discount' => 'Online Betaling Rabat', + 'created_new_company' => 'Succesfuldt oprettet nyt firma', + 'fees_disabled_for_gateway' => 'Gebyrer er deaktiveret for denne Gateway .', + 'logout_and_delete' => 'Log ud/ Slet konto', + 'tax_rate_type_help' => 'Inklusiv momssatser justerer linjepostens pris, når den er valgt.
Kun eksklusive skattesatser kan bruges som standard.', + 'invoice_footer_help' => 'Brug $pageNumber og $pageCount til at vise sideoplysningerne.', 'credit_note' => 'Kreditnota', 'credit_issued_to' => 'Kredit udstedt til', 'credit_to' => 'Kredit til', @@ -2157,12 +2157,12 @@ $LANG = array( 'credit_number' => 'Kreditnummer', 'create_credit_note' => 'Opret kreditnota', 'menu' => 'Menu', - 'error_incorrect_gateway_ids' => 'Error: The gateways table has incorrect ids.', - 'purge_data' => 'Purge Data', - 'delete_data' => 'Delete Data', - 'purge_data_help' => 'Permanently delete all data but keep the account and settings.', - 'cancel_account_help' => 'Permanently delete the account along with all data and setting.', - 'purge_successful' => 'Successfully purged company data', + 'error_incorrect_gateway_ids' => 'Fejl: Gateway-tabellen har forkerte id'er.', + 'purge_data' => 'Rens data', + 'delete_data' => 'Slet Data', + 'purge_data_help' => 'Slet alle data permanent, men behold kontoen og Indstillinger .', + 'cancel_account_help' => 'Slet kontoen permanent sammen med alle data og indstillinger.', + 'purge_successful' => 'Succesfuldt rensede virksomhedsdata', 'forbidden' => 'Forbudt', 'purge_data_message' => 'Advarsel: Dette vil slette dine data permanent, der er ingen måder at fortryde.', 'contact_phone' => 'Kontakttelefon', @@ -2174,492 +2174,495 @@ $LANG = array( 'confirm_account_to_import' => 'Bekræft venligst din konto for at importere data.', 'import_started' => 'Din import er påbegyndt, vi sender dig en e-mail når den er gennemført.', 'listening' => 'Lytter...', - 'microphone_help' => 'Say "new invoice for [client]" or "show me [client]\'s archived payments"', + 'microphone_help' => 'Sig "ny Faktura for [ Klient ]" eller "vis mig [ Klient ]s arkiveret Betalinger "', 'voice_commands' => 'Talekommandoer', - 'sample_commands' => 'Sample commands', - 'voice_commands_feedback' => 'We\'re actively working to improve this feature, if there\'s a command you\'d like us to support please email us at :email.', + 'sample_commands' => 'Eksempel på kommandoer', + 'voice_commands_feedback' => 'Vi arbejder aktivt på at forbedre denne funktion. Hvis der er en kommando, du gerne vil have os til at understøtte, så send os e-mail på :email .', 'payment_type_Venmo' => 'Venmo', - 'payment_type_Money Order' => 'Money Order', - 'archived_products' => 'Successfully archived :count products', - 'recommend_on' => 'We recommend enabling this setting.', - 'recommend_off' => 'We recommend disabling this setting.', - 'notes_auto_billed' => 'Auto-billed', - 'surcharge_label' => 'Surcharge Label', - 'contact_fields' => 'Contact Fields', - 'custom_contact_fields_help' => 'Add a field when creating a contact and optionally display the label and value on the PDF.', + 'payment_type_Money Order' => 'Postanvisning', + 'archived_products' => 'Succesfuldt arkiveret :count produkter', + 'recommend_on' => 'Vi anbefaler at aktivere denne indstilling.', + 'recommend_off' => 'Vi anbefaler at deaktivere denne indstilling.', + 'notes_auto_billed' => 'Autofaktureret', + 'surcharge_label' => 'Tillægsmærke', + 'contact_fields' => 'kontakt felter', + 'custom_contact_fields_help' => 'Tilføj et felt ved oprettelse af en kontakt og vis eventuelt etiketten og værdien på PDF .', 'datatable_info' => 'Viser :start til :end af :total', - 'credit_total' => 'Credit Total', - 'mark_billable' => 'Mark billable', + 'credit_total' => 'Kredit Total', + 'mark_billable' => 'Marker fakturerbar', 'billed' => 'Faktureret', - 'company_variables' => 'Company Variables', - 'client_variables' => 'Client Variables', - 'invoice_variables' => 'Invoice Variables', - 'navigation_variables' => 'Navigation Variables', - 'custom_variables' => 'Custom Variables', - 'invalid_file' => 'Invalid file type', - 'add_documents_to_invoice' => 'Add Documents to Invoice', + 'company_variables' => 'Firmavariabler', + 'client_variables' => 'Klient', + 'invoice_variables' => 'Faktura Variabler', + 'navigation_variables' => 'Navigationsvariabler', + 'custom_variables' => 'Speciel variabler', + 'invalid_file' => 'Ugyldig filtype', + 'add_documents_to_invoice' => 'Tilføj dokumenter til Faktura', 'mark_expense_paid' => 'Markér som betalt', - 'white_label_license_error' => 'Failed to validate the license, either expired or excessive activations. Email contact@invoiceninja.com for more information.', - 'plan_price' => 'Plan Price', - 'wrong_confirmation' => 'Incorrect confirmation code', - 'oauth_taken' => 'The account is already registered', - 'emailed_payment' => 'Successfully emailed payment', - 'email_payment' => 'Email Payment', - 'invoiceplane_import' => 'Use :link to migrate your data from InvoicePlane.', - 'duplicate_expense_warning' => 'Warning: This :link may be a duplicate', - 'expense_link' => 'expense', - 'resume_task' => 'Resume Task', - 'resumed_task' => 'Successfully resumed task', - 'quote_design' => 'Quote Design', + 'white_label_license_error' => 'Kunne ikke validere licensen, enten udløbet eller overdrevne aktiveringer. e-mail kontakt @invoiceninja.com for mere information.', + 'plan_price' => 'Plan pris', + 'wrong_confirmation' => 'Forkert bekræftelseskode', + 'oauth_taken' => 'Kontoen er allerede registreret', + 'emailed_payment' => 'Succesfuldt mailet Betaling', + 'email_payment' => 'e-mail Betaling', + 'invoiceplane_import' => 'Brug :link til at migrere dine data fra InvoicePlane.', + 'duplicate_expense_warning' => 'Advarsel: Denne :link kan være en dublet', + 'expense_link' => 'Udgift', + 'resume_task' => 'Genoptag Opgave', + 'resumed_task' => 'Succesfuldt genoptog Opgave', + 'quote_design' => 'Citat design', 'default_design' => 'Standarddesign', 'custom_design1' => 'Brugerdefineret design 1', 'custom_design2' => 'Brugerdefineret design 2', 'custom_design3' => 'Brugerdefineret design 3', - 'empty' => 'Empty', + 'empty' => 'Tom', 'load_design' => 'Indlæs design', - 'accepted_card_logos' => 'Accepted Card Logos', - 'phantomjs_local_and_cloud' => 'Using local PhantomJS, falling back to phantomjscloud.com', + 'accepted_card_logos' => 'Accepterede kortlogoer', + 'phantomjs_local_and_cloud' => 'Ved at bruge lokale PhantomJS, falder tilbage til phantomjscloud.com', 'google_analytics' => 'Google Analytics', - 'analytics_key' => 'Analytics Key', - 'analytics_key_help' => 'Track payments using :link', - 'start_date_required' => 'The start date is required', - 'application_settings' => 'Application Settings', - 'database_connection' => 'Database Connection', - 'driver' => 'Driver', - 'host' => 'Host', + 'analytics_key' => 'Analytics nøgle', + 'analytics_key_help' => 'Spor Betalinger ved hjælp af :link', + 'start_date_required' => 'Startdatoen er påkrævet', + 'application_settings' => 'Ansøgning Indstillinger', + 'database_connection' => 'Database forbindelse', + 'driver' => 'Chauffør', + 'host' => 'Vært', 'database' => 'Database', - 'test_connection' => 'Test connection', - 'from_name' => 'From Name', - 'from_address' => 'From Address', + 'test_connection' => 'Test forbindelse', + 'from_name' => 'Fra Navn', + 'from_address' => 'Fra Adresse', 'port' => 'Port', 'encryption' => 'Kryptering', - 'mailgun_domain' => 'Mailgun Domain', - 'mailgun_private_key' => 'Mailgun Private Key', - 'send_test_email' => 'Send test email', - 'select_label' => 'Select Label', - 'label' => 'Label', + 'mailgun_domain' => 'Mailgun domæne', + 'mailgun_private_key' => 'Mailgun privat nøgle', + 'send_test_email' => 'Send test e-mail', + 'select_label' => 'Vælg Label', + 'label' => 'Etiket', 'service' => 'Service', - 'update_payment_details' => 'Update payment details', - 'updated_payment_details' => 'Successfully updated payment details', - 'update_credit_card' => 'Update Credit Card', - 'recurring_expenses' => 'Recurring Expenses', - 'recurring_expense' => 'Recurring Expense', - 'new_recurring_expense' => 'New Recurring Expense', - 'edit_recurring_expense' => 'Edit Recurring Expense', - 'archive_recurring_expense' => 'Archive Recurring Expense', - 'list_recurring_expense' => 'List Recurring Expenses', - 'updated_recurring_expense' => 'Successfully updated recurring expense', - 'created_recurring_expense' => 'Successfully created recurring expense', - 'archived_recurring_expense' => 'Successfully archived recurring expense', - 'restore_recurring_expense' => 'Restore Recurring Expense', - 'restored_recurring_expense' => 'Successfully restored recurring expense', - 'delete_recurring_expense' => 'Delete Recurring Expense', - 'deleted_recurring_expense' => 'Successfully deleted recurring expense', - 'view_recurring_expense' => 'View Recurring Expense', - 'taxes_and_fees' => 'Taxes and fees', - 'import_failed' => 'Import Failed', - 'recurring_prefix' => 'Recurring Prefix', - 'options' => 'Options', - 'credit_number_help' => 'Specify a prefix or use a custom pattern to dynamically set the credit number for negative invoices.', - 'next_credit_number' => 'The next credit number is :number.', - 'padding_help' => 'The number of zero\'s to pad the number.', - 'import_warning_invalid_date' => 'Warning: The date format appears to be invalid.', - 'product_notes' => 'Product Notes', - 'app_version' => 'App Version', - 'ofx_version' => 'OFX Version', - 'error_app_key_set_to_default' => 'Error: APP_KEY is set to a default value, to update it backup your database and then run php artisan ninja:update-key', - 'charge_late_fee' => 'Charge Late Fee', - 'late_fee_amount' => 'Late Fee Amount', - 'late_fee_percent' => 'Late Fee Percent', - 'late_fee_added' => 'Late fee added on :date', - 'download_invoice' => 'Download Invoice', - 'download_quote' => 'Download Quote', - 'invoices_are_attached' => 'Your invoice PDFs are attached.', - 'downloaded_invoice' => 'An email will be sent with the invoice PDF', - 'downloaded_quote' => 'An email will be sent with the quote PDF', - 'downloaded_invoices' => 'An email will be sent with the invoice PDFs', - 'downloaded_quotes' => 'An email will be sent with the quote PDFs', - 'clone_expense' => 'Clone Expense', - 'default_documents' => 'Default Documents', + 'update_payment_details' => 'Opdater Betaling', + 'updated_payment_details' => 'Succesfuldt opdateret Betaling', + 'update_credit_card' => 'Opdater kreditkort', + 'recurring_expenses' => 'Gentagen Udgifter', + 'recurring_expense' => 'Gentagen Udgift', + 'new_recurring_expense' => 'Ny Gentagen Udgift', + 'edit_recurring_expense' => 'Redigér Gentagen Udgift', + 'archive_recurring_expense' => 'Arkiv Gentagen Udgift', + 'list_recurring_expense' => 'Liste Gentagen Udgifter', + 'updated_recurring_expense' => 'Succesfuldt opdateret Gentagen Udgift', + 'created_recurring_expense' => 'Succesfuldt oprettet Gentagen Udgift', + 'archived_recurring_expense' => 'Succesfuldt arkiveret Gentagen Udgift', + 'restore_recurring_expense' => 'Genskab Gentagen Udgift', + 'restored_recurring_expense' => 'Succesfuldt genskabt Gentagen Udgift', + 'delete_recurring_expense' => 'Slet Gentagen Udgift', + 'deleted_recurring_expense' => 'Succesfuldt slettet Gentagen Udgift', + 'view_recurring_expense' => 'Vis Gentagen Udgift', + 'taxes_and_fees' => 'Skatter og afgifter', + 'import_failed' => 'Import mislykkedes', + 'recurring_prefix' => 'Gentagen præfiks', + 'options' => 'Muligheder', + 'credit_number_help' => 'Angiv et præfiks eller brug et Speciel mønster til dynamisk at indstille kreditnummeret for negative Fakturaer .', + 'next_credit_number' => 'Det næste kreditnummer er :number .', + 'padding_help' => 'Antallet af nuller for at udfylde tallet.', + 'import_warning_invalid_date' => 'Advarsel: Format ser ud til at være ugyldigt.', + 'product_notes' => 'Produktnoter', + 'app_version' => 'App version', + 'ofx_version' => 'OFX version', + 'error_app_key_set_to_default' => 'Fejl: APP_KEY er indstillet til en standardværdi, for at opdatere den sikkerhedskopiere din database og derefter køre php artisan ninja:update-key', + 'charge_late_fee' => 'Opkræve forsinkelsesgebyr', + 'late_fee_amount' => 'Sengebyr Beløb', + 'late_fee_percent' => 'Forsinket gebyr i procent', + 'late_fee_added' => 'Forsinket gebyr tilføjet på :date', + 'download_invoice' => 'Download Faktura', + 'download_quote' => 'Download citat', + 'invoices_are_attached' => 'Dine Faktura PDF'er er vedhæftet.', + 'downloaded_invoice' => 'Der sendes en e-mail med Faktura PDF', + 'downloaded_quote' => 'Der sendes en e-mail med tilbuds PDF', + 'downloaded_invoices' => 'Der sendes en e-mail med Faktura PDF'erne', + 'downloaded_quotes' => 'Der sendes en e-mail med tilbuds-pdf'erne', + 'clone_expense' => 'Klon Udgift', + 'default_documents' => 'Standarddokumenter', 'send_email_to_client' => 'Send email til kunden', - 'refund_subject' => 'Refund Processed', - 'refund_body' => 'You have been processed a refund of :amount for invoice :invoice_number.', + 'refund_subject' => 'Refusion behandlet', + 'refund_body' => 'Du har fået behandlet en refusion på :amount for Faktura :invoice _number.', - 'currency_us_dollar' => 'US Dollar', - 'currency_british_pound' => 'British Pound', + 'currency_us_dollar' => 'Amerikansk dollar', + 'currency_british_pound' => 'britiske pund', 'currency_euro' => 'Euro', - 'currency_south_african_rand' => 'South African Rand', + 'currency_south_african_rand' => 'Sydafrikanske Rand', 'currency_danish_krone' => 'Dansk Krone', - 'currency_israeli_shekel' => 'Israeli Shekel', - 'currency_swedish_krona' => 'Swedish Krona', - 'currency_kenyan_shilling' => 'Kenyan Shilling', - 'currency_canadian_dollar' => 'Canadian Dollar', - 'currency_philippine_peso' => 'Philippine Peso', - 'currency_indian_rupee' => 'Indian Rupee', - 'currency_australian_dollar' => 'Australian Dollar', + 'currency_israeli_shekel' => 'israelske shekel', + 'currency_swedish_krona' => 'svenske kroner', + 'currency_kenyan_shilling' => 'Kenyanske shilling', + 'currency_canadian_dollar' => 'canadiske dollar', + 'currency_philippine_peso' => 'filippinske peso', + 'currency_indian_rupee' => 'Indiske Rupee', + 'currency_australian_dollar' => 'australske dollar', 'currency_singapore_dollar' => 'Singapore Dollar', 'currency_norske_kroner' => 'Norske Kroner', - 'currency_new_zealand_dollar' => 'New Zealand Dollar', - 'currency_vietnamese_dong' => 'Vietnamese Dong', - 'currency_swiss_franc' => 'Swiss Franc', - 'currency_guatemalan_quetzal' => 'Guatemalan Quetzal', - 'currency_malaysian_ringgit' => 'Malaysian Ringgit', - 'currency_brazilian_real' => 'Brazilian Real', - 'currency_thai_baht' => 'Thai Baht', - 'currency_nigerian_naira' => 'Nigerian Naira', - 'currency_argentine_peso' => 'Argentine Peso', - 'currency_bangladeshi_taka' => 'Bangladeshi Taka', - 'currency_united_arab_emirates_dirham' => 'United Arab Emirates Dirham', + 'currency_new_zealand_dollar' => 'New Zealandske dollar', + 'currency_vietnamese_dong' => 'vietnamesisk dong', + 'currency_swiss_franc' => 'schweiziske franc', + 'currency_guatemalan_quetzal' => 'Guatemalansk Quetzal', + 'currency_malaysian_ringgit' => 'Malaysisk ringgit', + 'currency_brazilian_real' => 'brasilianske real', + 'currency_thai_baht' => 'thailandske baht', + 'currency_nigerian_naira' => 'nigerianske Naira', + 'currency_argentine_peso' => 'argentinske peso', + 'currency_bangladeshi_taka' => 'Bangladeshisk Taka', + 'currency_united_arab_emirates_dirham' => 'De Forenede Arabiske Emirater Dirham', 'currency_hong_kong_dollar' => 'Hong Kong Dollar', - 'currency_indonesian_rupiah' => 'Indonesian Rupiah', - 'currency_mexican_peso' => 'Mexican Peso', - 'currency_egyptian_pound' => 'Egyptian Pound', - 'currency_colombian_peso' => 'Colombian Peso', - 'currency_west_african_franc' => 'West African Franc', - 'currency_chinese_renminbi' => 'Chinese Renminbi', - 'currency_rwandan_franc' => 'Rwandan Franc', - 'currency_tanzanian_shilling' => 'Tanzanian Shilling', - 'currency_netherlands_antillean_guilder' => 'Netherlands Antillean Guilder', - 'currency_trinidad_and_tobago_dollar' => 'Trinidad and Tobago Dollar', - 'currency_east_caribbean_dollar' => 'East Caribbean Dollar', - 'currency_ghanaian_cedi' => 'Ghanaian Cedi', - 'currency_bulgarian_lev' => 'Bulgarian Lev', - 'currency_aruban_florin' => 'Aruban Florin', - 'currency_turkish_lira' => 'Turkish Lira', - 'currency_romanian_new_leu' => 'Romanian New Leu', - 'currency_croatian_kuna' => 'Croatian Kuna', + 'currency_indonesian_rupiah' => 'indonesisk rupiah', + 'currency_mexican_peso' => 'Mexicansk peso', + 'currency_egyptian_pound' => 'egyptiske pund', + 'currency_colombian_peso' => 'colombianske peso', + 'currency_west_african_franc' => 'vestafrikansk franc', + 'currency_chinese_renminbi' => 'kinesisk renminbi', + 'currency_rwandan_franc' => 'rwandiske franc', + 'currency_tanzanian_shilling' => 'Tanzanianske shilling', + 'currency_netherlands_antillean_guilder' => 'Hollandsk Antillianske gylden', + 'currency_trinidad_and_tobago_dollar' => 'Trinidad og Tobago Dollar', + 'currency_east_caribbean_dollar' => 'østcaribiske dollar', + 'currency_ghanaian_cedi' => 'Ghanesisk Cedi', + 'currency_bulgarian_lev' => 'Bulgarsk Lev', + 'currency_aruban_florin' => 'Arubanske florin', + 'currency_turkish_lira' => 'tyrkiske lira', + 'currency_romanian_new_leu' => 'Ny Rumænsk Leu', + 'currency_croatian_kuna' => 'kroatiske kuna', 'currency_saudi_riyal' => 'Saudi Riyal', - 'currency_japanese_yen' => 'Japanese Yen', - 'currency_maldivian_rufiyaa' => 'Maldivian Rufiyaa', - 'currency_costa_rican_colon' => 'Costa Rican Colón', - 'currency_pakistani_rupee' => 'Pakistani Rupee', - 'currency_polish_zloty' => 'Polish Zloty', - 'currency_sri_lankan_rupee' => 'Sri Lankan Rupee', - 'currency_czech_koruna' => 'Czech Koruna', - 'currency_uruguayan_peso' => 'Uruguayan Peso', - 'currency_namibian_dollar' => 'Namibian Dollar', - 'currency_tunisian_dinar' => 'Tunisian Dinar', - 'currency_russian_ruble' => 'Russian Ruble', + 'currency_japanese_yen' => 'japansk yen', + 'currency_maldivian_rufiyaa' => 'maldivisk rufiyaa', + 'currency_costa_rican_colon' => 'Costa Rica Colón', + 'currency_pakistani_rupee' => 'Pakistanske Rupee', + 'currency_polish_zloty' => 'polske zloty', + 'currency_sri_lankan_rupee' => 'Sri Lanka Rupee', + 'currency_czech_koruna' => 'tjekkiske koruna', + 'currency_uruguayan_peso' => 'Uruguayanske peso', + 'currency_namibian_dollar' => 'Namibiske dollar', + 'currency_tunisian_dinar' => 'tunesiske dinarer', + 'currency_russian_ruble' => 'russisk rubel', 'currency_mozambican_metical' => 'Mozambican Metical', - 'currency_omani_rial' => 'Omani Rial', - 'currency_ukrainian_hryvnia' => 'Ukrainian Hryvnia', - 'currency_macanese_pataca' => 'Macanese Pataca', - 'currency_taiwan_new_dollar' => 'Taiwan New Dollar', - 'currency_dominican_peso' => 'Dominican Peso', - 'currency_chilean_peso' => 'Chilean Peso', - 'currency_icelandic_krona' => 'Icelandic Króna', - 'currency_papua_new_guinean_kina' => 'Papua New Guinean Kina', - 'currency_jordanian_dinar' => 'Jordanian Dinar', + 'currency_omani_rial' => 'Omanske rial', + 'currency_ukrainian_hryvnia' => 'Ukrainsk Hryvnia', + 'currency_macanese_pataca' => 'Macanesisk Pataca', + 'currency_taiwan_new_dollar' => 'Taiwan ny dollar', + 'currency_dominican_peso' => 'Dominikanske peso', + 'currency_chilean_peso' => 'chilenske peso', + 'currency_icelandic_krona' => 'Islandsk krone', + 'currency_papua_new_guinean_kina' => 'Papua Ny Guinea Kina', + 'currency_jordanian_dinar' => 'jordanske dinarer', 'currency_myanmar_kyat' => 'Myanmar Kyat', - 'currency_peruvian_sol' => 'Peruvian Sol', + 'currency_peruvian_sol' => 'peruvianske sol', 'currency_botswana_pula' => 'Botswana Pula', - 'currency_hungarian_forint' => 'Hungarian Forint', - 'currency_ugandan_shilling' => 'Ugandan Shilling', - 'currency_barbadian_dollar' => 'Barbadian Dollar', + 'currency_hungarian_forint' => 'ungarske forint', + 'currency_ugandan_shilling' => 'ugandiske shilling', + 'currency_barbadian_dollar' => 'Barbadisk dollar', 'currency_brunei_dollar' => 'Brunei Dollar', - 'currency_georgian_lari' => 'Georgian Lari', - 'currency_qatari_riyal' => 'Qatari Riyal', - 'currency_honduran_lempira' => 'Honduran Lempira', - 'currency_surinamese_dollar' => 'Surinamese Dollar', - 'currency_bahraini_dinar' => 'Bahraini Dinar', - 'currency_venezuelan_bolivars' => 'Venezuelan Bolivars', - 'currency_south_korean_won' => 'South Korean Won', - 'currency_moroccan_dirham' => 'Moroccan Dirham', - 'currency_jamaican_dollar' => 'Jamaican Dollar', - 'currency_angolan_kwanza' => 'Angolan Kwanza', - 'currency_haitian_gourde' => 'Haitian Gourde', - 'currency_zambian_kwacha' => 'Zambian Kwacha', - 'currency_nepalese_rupee' => 'Nepalese Rupee', - 'currency_cfp_franc' => 'CFP Franc', - 'currency_mauritian_rupee' => 'Mauritian Rupee', - 'currency_cape_verdean_escudo' => 'Cape Verdean Escudo', - 'currency_kuwaiti_dinar' => 'Kuwaiti Dinar', - 'currency_algerian_dinar' => 'Algerian Dinar', - 'currency_macedonian_denar' => 'Macedonian Denar', - 'currency_fijian_dollar' => 'Fijian Dollar', - 'currency_bolivian_boliviano' => 'Bolivian Boliviano', - 'currency_albanian_lek' => 'Albanian Lek', - 'currency_serbian_dinar' => 'Serbian Dinar', - 'currency_lebanese_pound' => 'Lebanese Pound', - 'currency_armenian_dram' => 'Armenian Dram', - 'currency_azerbaijan_manat' => 'Azerbaijan Manat', - 'currency_bosnia_and_herzegovina_convertible_mark' => 'Bosnia and Herzegovina Convertible Mark', - 'currency_belarusian_ruble' => 'Belarusian Ruble', - 'currency_moldovan_leu' => 'Moldovan Leu', - 'currency_kazakhstani_tenge' => 'Kazakhstani Tenge', - 'currency_gibraltar_pound' => 'Gibraltar Pound', + 'currency_georgian_lari' => 'georgiske Lari', + 'currency_qatari_riyal' => 'Qatar Riyal', + 'currency_honduran_lempira' => 'Honduras Lempira', + 'currency_surinamese_dollar' => 'Surinamske dollar', + 'currency_bahraini_dinar' => 'Bahrainsk dinar', + 'currency_venezuelan_bolivars' => 'Venezuelanske bolivarer', + 'currency_south_korean_won' => 'Sydkoreanske Won', + 'currency_moroccan_dirham' => 'marokkansk dirham', + 'currency_jamaican_dollar' => 'Jamaicanske dollar', + 'currency_angolan_kwanza' => 'Angolansk Kwanza', + 'currency_haitian_gourde' => 'Haitiansk Gourde', + 'currency_zambian_kwacha' => 'Zambisk kwacha', + 'currency_nepalese_rupee' => 'nepalesiske rupier', + 'currency_cfp_franc' => 'CFP franc', + 'currency_mauritian_rupee' => 'Mauritiske Rupee', + 'currency_cape_verdean_escudo' => 'Kap Verdes Escudo', + 'currency_kuwaiti_dinar' => 'Kuwaitisk dinar', + 'currency_algerian_dinar' => 'algerisk dinar', + 'currency_macedonian_denar' => 'makedonske denarer', + 'currency_fijian_dollar' => 'fijianske dollar', + 'currency_bolivian_boliviano' => 'Boliviansk Boliviano', + 'currency_albanian_lek' => 'Albansk Lek', + 'currency_serbian_dinar' => 'serbiske dinarer', + 'currency_lebanese_pound' => 'libanesisk pund', + 'currency_armenian_dram' => 'Armenske Dram', + 'currency_azerbaijan_manat' => 'Aserbajdsjan Manat', + 'currency_bosnia_and_herzegovina_convertible_mark' => 'Bosnien-Hercegovina konvertible mark', + 'currency_belarusian_ruble' => 'Hviderussisk rubel', + 'currency_moldovan_leu' => 'Moldovisk Leu', + 'currency_kazakhstani_tenge' => 'Kasakhstansk Tenge', + 'currency_gibraltar_pound' => 'Gibraltar Pund', 'currency_gambia_dalasi' => 'Gambia Dalasi', - 'currency_paraguayan_guarani' => 'Paraguayan Guarani', + 'currency_paraguayan_guarani' => 'Paraguayanske Guarani', 'currency_malawi_kwacha' => 'Malawi Kwacha', - 'currency_zimbabwean_dollar' => 'Zimbabwean Dollar', - 'currency_cambodian_riel' => 'Cambodian Riel', + 'currency_zimbabwean_dollar' => 'Zimbabwes dollar', + 'currency_cambodian_riel' => 'Cambodjanske Riel', 'currency_vanuatu_vatu' => 'Vanuatu Vatu', - 'currency_cuban_peso' => 'Cuban Peso', + 'currency_cuban_peso' => 'cubanske peso', 'currency_bz_dollar' => 'BZ Dollar', - 'currency_libyan_dinar' => 'Libyan Dinar', - 'currency_silver_troy_ounce' => 'Silver Troy Ounce', - 'currency_gold_troy_ounce' => 'Gold Troy Ounce', + 'currency_libyan_dinar' => 'Libyske dinar', + 'currency_silver_troy_ounce' => 'Sølv Troy Ounce', + 'currency_gold_troy_ounce' => 'Guld Troy Ounce', + 'currency_nicaraguan_córdoba' => 'Nicaraguanske Córdoba', + 'currency_malagasy_ariary' => 'Madagaskars ariary', + "currency_tongan_pa_anga" => "tonganske paanga", - 'review_app_help' => 'We hope you\'re enjoying using the app.
If you\'d consider :link we\'d greatly appreciate it!', - 'writing_a_review' => 'writing a review', + 'review_app_help' => 'Vi håber, du nyder at bruge appen.
Hvis du ville overveje :link ville vi sætte stor pris på det!', + 'writing_a_review' => 'skrive en anmeldelse', - 'use_english_version' => 'Make sure to use the English version of the files.
We use the column headers to match the fields.', - 'tax1' => 'First Tax', - 'tax2' => 'Second Tax', - 'fee_help' => 'Gateway fees are the costs charged for access to the financial networks that handle the processing of online payments.', - 'format_export' => 'Exporting format', - 'custom1' => 'First Custom', - 'custom2' => 'Second Custom', - 'contact_first_name' => 'Contact First Name', - 'contact_last_name' => 'Contact Last Name', - 'contact_custom1' => 'Contact First Custom', - 'contact_custom2' => 'Contact Second Custom', - 'currency' => 'Currency', - 'ofx_help' => 'To troubleshoot check for comments on :ofxhome_link and test with :ofxget_link.', - 'comments' => 'comments', + 'use_english_version' => 'Sørg for at bruge den engelske version af filerne.
Vi bruger kolonneoverskrifterne til at matche felterne.', + 'tax1' => 'Første skat', + 'tax2' => 'Anden skat', + 'fee_help' => 'Gateway gebyrer er de omkostninger, der opkræves for adgang til de finansielle netværk, der varetager behandlingen af online Betalinger .', + 'format_export' => 'Eksporter Format', + 'custom1' => 'Første Speciel', + 'custom2' => 'Andet Speciel', + 'contact_first_name' => 'kontakt Fornavn', + 'contact_last_name' => 'kontakt Efternavn', + 'contact_custom1' => 'kontakt First Speciel', + 'contact_custom2' => 'kontakt Second Speciel', + 'currency' => 'betalingsmiddel', + 'ofx_help' => 'For at fejlfinde, tjek for kommentarer til :ofxhome_link og test med :ofxget_link .', + 'comments' => 'kommentarer', - 'item_product' => 'Item Product', - 'item_notes' => 'Item Notes', - 'item_cost' => 'Item Cost', - 'item_quantity' => 'Item Quantity', - 'item_tax_rate' => 'Item Tax Rate', - 'item_tax_name' => 'Item Tax Name', - 'item_tax1' => 'Item Tax1', - 'item_tax2' => 'Item Tax2', + 'item_product' => 'Vare Produkt', + 'item_notes' => 'Varebemærkninger', + 'item_cost' => 'Vareomkostninger', + 'item_quantity' => 'Varemængde', + 'item_tax_rate' => 'Vareafgiftssats', + 'item_tax_name' => 'Vareafgiftsnavn', + 'item_tax1' => 'Vareafgift 1', + 'item_tax2' => 'Vareafgift 2', - 'delete_company' => 'Delete Company', - 'delete_company_help' => 'Permanently delete the company along with all data and setting.', - 'delete_company_message' => 'Warning: This will permanently delete your company, there is no undo.', + 'delete_company' => 'Slet Selskab', + 'delete_company_help' => 'Permanent Slet virksomheden sammen med alle data og indstillinger.', + 'delete_company_message' => 'Advarsel: Dette vil permanent Slet din virksomhed, der er ingen fortrydelse.', - 'applied_discount' => 'The coupon has been applied, the plan price has been reduced by :discount%.', - 'applied_free_year' => 'The coupon has been applied, your account has been upgraded to pro for one year.', + 'applied_discount' => 'Kuponen er blevet anvendt, planprisen er reduceret med :discount %.', + 'applied_free_year' => 'Kuponen er blevet anvendt, din konto er blevet opgraderet til pro i et år.', - 'contact_us_help' => 'If you\'re reporting an error please include any relevant logs from storage/logs/laravel-error.log', - 'include_errors' => 'Include Errors', - 'include_errors_help' => 'Include :link from storage/logs/laravel-error.log', - 'recent_errors' => 'recent errors', - 'customer' => 'Customer', - 'customers' => 'Customers', - 'created_customer' => 'Successfully created customer', - 'created_customers' => 'Successfully created :count customers', + 'contact_us_help' => 'Hvis du rapporterer en fejl, bedes du inkludere eventuelle relevante logfiler fra storage/logs/laravel-error.log', + 'include_errors' => 'Inkluder fejl', + 'include_errors_help' => 'Inkluder :link fra storage/logs/laravel-error.log', + 'recent_errors' => 'seneste fejl', + 'customer' => 'Kunde', + 'customers' => 'Kunder', + 'created_customer' => 'Succesfuldt oprettet kunde', + 'created_customers' => 'Succesfuldt oprettet :count kunder', - 'purge_details' => 'The data in your company (:account) has been successfully purged.', - 'deleted_company' => 'Successfully deleted company', - 'deleted_account' => 'Successfully canceled account', - 'deleted_company_details' => 'Your company (:account) has been successfully deleted.', - 'deleted_account_details' => 'Your account (:account) has been successfully deleted.', + 'purge_details' => 'Dataene i din virksomhed ( :account ) er blevet Succesfuldt .', + 'deleted_company' => 'Succesfuldt slettet firma', + 'deleted_account' => 'Succesfuldt annulleret konto', + 'deleted_company_details' => 'Din virksomhed ( :account ) er blevet Succesfuldt slettet .', + 'deleted_account_details' => 'Din konto ( :account ) er slettet Succesfuldt', 'alipay' => 'Alipay', 'sofort' => 'Sofort', - 'sepa' => 'SEPA Direct Debit', - 'name_without_special_characters' => 'Please enter a name with only the letters a-z and whitespaces', - 'enable_alipay' => 'Accept Alipay', - 'enable_sofort' => 'Accept EU bank transfers', - 'stripe_alipay_help' => 'These gateways also need to be activated in :link.', - 'calendar' => 'Calendar', - 'pro_plan_calendar' => ':link to enable the calendar by joining the Pro Plan', + 'sepa' => 'SEPA direkte debitering', + 'name_without_special_characters' => 'Indtast venligst et navn med kun bogstaverne az og mellemrum', + 'enable_alipay' => 'Accepter Alipay', + 'enable_sofort' => 'Accepter EU-bankoverførsler', + 'stripe_alipay_help' => 'Disse gateways skal også aktiveres i :link .', + 'calendar' => 'Kalender', + 'pro_plan_calendar' => ':link for at aktivere kalenderen ved at tilmelde dig Pro Plan', - 'what_are_you_working_on' => 'What are you working on?', + 'what_are_you_working_on' => 'Hvad arbejder du på?', 'time_tracker' => 'Time Tracker', - 'refresh' => 'Refresh', - 'filter_sort' => 'Filter/Sort', - 'no_description' => 'No Description', - 'time_tracker_login' => 'Time Tracker Login', - 'save_or_discard' => 'Save or discard your changes', - 'discard_changes' => 'Discard Changes', - 'tasks_not_enabled' => 'Tasks are not enabled.', - 'started_task' => 'Successfully started task', - 'create_client' => 'Create Client', + 'refresh' => 'Opdater', + 'filter_sort' => 'Filter/Sortér', + 'no_description' => 'Ingen beskrivelse', + 'time_tracker_login' => 'Time Tracker login', + 'save_or_discard' => 'Gem eller kasser dine ændringer', + 'discard_changes' => 'Kassér ændringer', + 'tasks_not_enabled' => 'Opgaver er ikke aktiveret.', + 'started_task' => 'Succesfuldt startede Opgave', + 'create_client' => 'Opret Klient', - 'download_desktop_app' => 'Download the desktop app', - 'download_iphone_app' => 'Download the iPhone app', - 'download_android_app' => 'Download the Android app', - 'time_tracker_mobile_help' => 'Double tap a task to select it', - 'stopped' => 'Stopped', - 'ascending' => 'Ascending', - 'descending' => 'Descending', - 'sort_field' => 'Sort By', - 'sort_direction' => 'Direction', - 'discard' => 'Discard', - 'time_am' => 'AM', - 'time_pm' => 'PM', - 'time_mins' => 'mins', + 'download_desktop_app' => 'Download desktop-appen', + 'download_iphone_app' => 'Download iPhone-appen', + 'download_android_app' => 'Download Android-appen', + 'time_tracker_mobile_help' => 'Dobbelttryk på en Opgave for at vælge den', + 'stopped' => 'Holdt op', + 'ascending' => 'Stigende', + 'descending' => 'Aftagende', + 'sort_field' => 'Sorter efter', + 'sort_direction' => 'Retning', + 'discard' => 'Kassér', + 'time_am' => 'ER', + 'time_pm' => 'OM EFTERMIDDAGEN', + 'time_mins' => 'min', 'time_hr' => 'hr', - 'time_hrs' => 'hrs', - 'clear' => 'Clear', - 'warn_payment_gateway' => 'Note: accepting online payments requires a payment gateway, :link to add one.', - 'task_rate' => 'Task Rate', - 'task_rate_help' => 'Set the default rate for invoiced tasks.', - 'past_due' => 'Past Due', - 'document' => 'Document', - 'invoice_or_expense' => 'Invoice/Expense', - 'invoice_pdfs' => 'Invoice PDFs', - 'enable_sepa' => 'Accept SEPA', - 'enable_bitcoin' => 'Accept Bitcoin', + 'time_hrs' => 'timer', + 'clear' => 'Klar', + 'warn_payment_gateway' => 'Bemærk : at acceptere online Betalinger kræver en Betalingsgateway , :link for at Tilføj en.', + 'task_rate' => 'Opgave', + 'task_rate_help' => 'Indstil standardsatsen for fakturerede opgaver.', + 'past_due' => 'Ikke betalt til tiden', + 'document' => 'Dokument', + 'invoice_or_expense' => 'Faktura / Udgift', + 'invoice_pdfs' => 'Faktura PDF-filer', + 'enable_sepa' => 'Accepter SEPA', + 'enable_bitcoin' => 'Accepter Bitcoin', 'iban' => 'IBAN', - 'sepa_authorization' => 'By providing your IBAN and confirming this payment, you are authorizing :company and Stripe, our payment service provider, to send instructions to your bank to debit your account and your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.', - 'recover_license' => 'Recover License', - 'purchase' => 'Purchase', - 'recover' => 'Recover', - 'apply' => 'Apply', + 'sepa_authorization' => 'Ved at oplyse dit IBAN og bekræfte denne Betaling giver du :company og Stripe, vores Betaling , tilladelse til at sende instruktioner til din bank om at debitere din konto og din bank til at debitere din konto i overensstemmelse med disse instruktioner. Du er berettiget til refusion fra din bank i henhold til Betingelser og betingelserne i din aftale med din bank. En refusion skal kræves inden for 8 uger fra den dato, hvor din konto blev debiteret.', + 'recover_license' => 'Gendan licens', + 'purchase' => 'Køb', + 'recover' => 'Gendanne', + 'apply' => 'ansøge', 'recover_white_label_header' => 'Gendan hvidmærke-licens', 'apply_white_label_header' => 'Anvend hvidmærke-licens', - 'videos' => 'Videos', + 'videos' => 'Videoer', 'video' => 'Video', - 'return_to_invoice' => 'Return to Invoice', - 'partial_due_date' => 'Partial Due Date', - 'task_fields' => 'Task Fields', - 'product_fields_help' => 'Drag and drop fields to change their order', - 'custom_value1' => 'Custom Value 1', - 'custom_value2' => 'Custom Value 2', - 'enable_two_factor' => 'Two-Factor Authentication', - 'enable_two_factor_help' => 'Use your phone to confirm your identity when logging in', - 'two_factor_setup' => 'Two-Factor Setup', - 'two_factor_setup_help' => 'Scan the bar code with a :link compatible app.', - 'one_time_password' => 'One Time Password', - 'set_phone_for_two_factor' => 'Set your mobile phone number as a backup to enable.', - 'enabled_two_factor' => 'Successfully enabled Two-Factor Authentication', - 'add_product' => 'Add Product', - 'email_will_be_sent_on' => 'Note: the email will be sent on :date.', - 'invoice_product' => 'Invoice Product', - 'self_host_login' => 'Self-Host Login', + 'return_to_invoice' => 'Tilbage til Faktura', + 'partial_due_date' => 'Delvis forfaldsdato', + 'task_fields' => 'Opgave Fields', + 'product_fields_help' => 'Træk og slip felter for at ændre deres rækkefølge', + 'custom_value1' => 'Speciel 1', + 'custom_value2' => 'Speciel 2', + 'enable_two_factor' => 'To-faktor-godkendelse', + 'enable_two_factor_help' => 'Brug din Telefon til at bekræfte din identitet, når du logger ind', + 'two_factor_setup' => 'To-faktor opsætning', + 'two_factor_setup_help' => 'Scan stregkoden med en :link kompatibel app.', + 'one_time_password' => 'Engangskodeord', + 'set_phone_for_two_factor' => 'Indstil dit Telefon som en backup for at aktivere.', + 'enabled_two_factor' => 'Succesfuldt aktiveret to-faktor-godkendelse', + 'add_product' => 'Tilføj produkt', + 'email_will_be_sent_on' => 'Bemærk : e-mail vil blive sendt på :date .', + 'invoice_product' => 'Faktura produkt', + 'self_host_login' => 'Login til selvvært', 'set_self_hoat_url' => 'Self-Host URL', - 'local_storage_required' => 'Error: local storage is not available.', - 'your_password_reset_link' => 'Your Password Reset Link', - 'subdomain_taken' => 'The subdomain is already in use', + 'local_storage_required' => 'Fejl: lokal lagring er ikke tilgængelig.', + 'your_password_reset_link' => 'Dit link til nulstilling af adgangskode', + 'subdomain_taken' => 'Underdomænet er allerede i brug', 'client_login' => 'Client log ing', - 'converted_amount' => 'Converted Amount', - 'default' => 'Default', - 'shipping_address' => 'Shipping Address', - 'bllling_address' => 'Billing Address', + 'converted_amount' => 'Ombygget Beløb', + 'default' => 'Standard', + 'shipping_address' => 'Forsendelsesadresse', + 'bllling_address' => 'Betalingsadresse', 'billing_address1' => 'Billing Street', 'billing_address2' => 'Billing Apt/Suite', 'billing_city' => 'Billing City', - 'billing_state' => 'Billing State/Province', - 'billing_postal_code' => 'Billing Postal Code', - 'billing_country' => 'Billing Country', - 'shipping_address1' => 'Shipping Street', - 'shipping_address2' => 'Shipping Apt/Suite', - 'shipping_city' => 'Shipping City', - 'shipping_state' => 'Shipping State/Province', - 'shipping_postal_code' => 'Shipping Postal Code', - 'shipping_country' => 'Shipping Country', - 'classify' => 'Classify', - 'show_shipping_address_help' => 'Require client to provide their shipping address', - 'ship_to_billing_address' => 'Ship to billing address', - 'delivery_note' => 'Delivery Note', - 'show_tasks_in_portal' => 'Show tasks in the client portal', - 'cancel_schedule' => 'Cancel Schedule', - 'scheduled_report' => 'Scheduled Report', - 'scheduled_report_help' => 'Email the :report report as :format to :email', - 'created_scheduled_report' => 'Successfully scheduled report', - 'deleted_scheduled_report' => 'Successfully canceled scheduled report', - 'scheduled_report_attached' => 'Your scheduled :type report is attached.', - 'scheduled_report_error' => 'Failed to create schedule report', - 'invalid_one_time_password' => 'Invalid one time password', + 'billing_state' => 'Faktureringsstat/provins', + 'billing_postal_code' => 'Faktureringspostnummer', + 'billing_country' => 'Faktureringsland', + 'shipping_address1' => 'Skibsgade', + 'shipping_address2' => 'Forsendelseslejlighed/Suite', + 'shipping_city' => 'Forsendelsesby', + 'shipping_state' => 'Forsendelsesstat/provins', + 'shipping_postal_code' => 'Forsendelses postnummer', + 'shipping_country' => 'Forsendelsesland', + 'classify' => 'Klassificer', + 'show_shipping_address_help' => 'Kræv, at Klient oplyser deres leveringsadresse', + 'ship_to_billing_address' => 'Send til faktureringsadresse', + 'delivery_note' => 'Levering Bemærk', + 'show_tasks_in_portal' => 'Vis opgaver i Klient portalen', + 'cancel_schedule' => 'Afbryd Skema', + 'scheduled_report' => 'Planlagt rapport', + 'scheduled_report_help' => 'e-mail :report -rapporten som :format til :email', + 'created_scheduled_report' => 'Succesfuldt planlagt rapport', + 'deleted_scheduled_report' => 'Succesfuldt annulleret planlagt rapport', + 'scheduled_report_attached' => 'Din planlagte :type rapport er vedhæftet.', + 'scheduled_report_error' => 'Opret planlægningsrapport mislykkedes', + 'invalid_one_time_password' => 'Ugyldig engangsadgangskode', 'apple_pay' => 'Apple/Google Pay', - 'enable_apple_pay' => 'Accept Apple Pay and Pay with Google', - 'requires_subdomain' => 'This payment type requires that a :link.', - 'subdomain_is_set' => 'subdomain is set', - 'verification_file' => 'Verification File', - 'verification_file_missing' => 'The verification file is needed to accept payments.', - 'apple_pay_domain' => 'Use :domain as the domain in :link.', - 'apple_pay_not_supported' => 'Sorry, Apple/Google Pay isn\'t supported by your browser', - 'optional_payment_methods' => 'Optional Payment Methods', - 'add_subscription' => 'Add Subscription', - 'target_url' => 'Target', - 'target_url_help' => 'When the selected event occurs the app will post the entity to the target URL.', - 'event' => 'Event', - 'subscription_event_1' => 'Created Client', - 'subscription_event_2' => 'Created Invoice', - 'subscription_event_3' => 'Created Quote', - 'subscription_event_4' => 'Created Payment', - 'subscription_event_5' => 'Created Vendor', + 'enable_apple_pay' => 'Accepter Apple Pay og betal med Google', + 'requires_subdomain' => 'Denne Betaling kræver, at en :link .', + 'subdomain_is_set' => 'underdomæne er indstillet', + 'verification_file' => 'Bekræftelsesfil', + 'verification_file_missing' => 'Verifikationsfilen er nødvendig for at acceptere Betalinger .', + 'apple_pay_domain' => 'Brug :domain som domæne i :link .', + 'apple_pay_not_supported' => 'Beklager, Apple/Google Pay understøttes ikke af din browser', + 'optional_payment_methods' => 'Valgfri Betaling', + 'add_subscription' => 'Tilføj abonnement', + 'target_url' => 'Mål', + 'target_url_help' => 'Når den valgte hændelse indtræffer, vil appen sende enheden til mål-URL'en.', + 'event' => 'Begivenhed', + 'subscription_event_1' => 'oprettet Klient', + 'subscription_event_2' => 'oprettet Faktura', + 'subscription_event_3' => 'oprettet Citat', + 'subscription_event_4' => 'oprettet Betaling', + 'subscription_event_5' => 'oprettet Sælger', 'subscription_event_6' => 'Pristilbud blev opdateret', - 'subscription_event_7' => 'Deleted Quote', + 'subscription_event_7' => 'slettet Citat', 'subscription_event_8' => 'Faktura blev opdateret', - 'subscription_event_9' => 'Deleted Invoice', + 'subscription_event_9' => 'slettet Faktura', 'subscription_event_10' => 'Klient blev opdateret', - 'subscription_event_11' => 'Deleted Client', - 'subscription_event_12' => 'Deleted Payment', + 'subscription_event_11' => 'slettet Klient', + 'subscription_event_12' => 'slettet Betaling', 'subscription_event_13' => 'Sælger blev opdateret', - 'subscription_event_14' => 'Deleted Vendor', - 'subscription_event_15' => 'Created Expense', + 'subscription_event_14' => 'slettet Sælger', + 'subscription_event_15' => 'oprettet Udgift', 'subscription_event_16' => 'Udgift blev opdateret', - 'subscription_event_17' => 'Deleted Expense', - 'subscription_event_18' => 'Created Task', + 'subscription_event_17' => 'slettet Udgift', + 'subscription_event_18' => 'oprettet Opgave', 'subscription_event_19' => 'Opgave blev opdateret', - 'subscription_event_20' => 'Deleted Task', - 'subscription_event_21' => 'Approved Quote', - 'subscriptions' => 'Subscriptions', + 'subscription_event_20' => 'slettet Opgave', + 'subscription_event_21' => 'Godkendt citat', + 'subscriptions' => 'Abonnementer', 'updated_subscription' => 'Abonnementet blev opdateret', - 'created_subscription' => 'Successfully created subscription', - 'edit_subscription' => 'Edit Subscription', - 'archive_subscription' => 'Archive Subscription', - 'archived_subscription' => 'Successfully archived subscription', + 'created_subscription' => 'Succesfuldt oprettet abonnement', + 'edit_subscription' => 'Redigér Abonnement', + 'archive_subscription' => 'Arkiv Abonnement', + 'archived_subscription' => 'Succesfuldt arkiveret abonnement', 'project_error_multiple_clients' => 'Projekter kan ikke tilhøre flere klienter', 'invoice_project' => 'Fakturér projekt', - 'module_recurring_invoice' => 'Recurring Invoices', + 'module_recurring_invoice' => 'Gentagen Fakturaer', 'module_credit' => 'Credits', 'module_quote' => 'Pristilbud og projektforslag', 'module_task' => 'Opgaver & projekter', 'module_expense' => 'Udgifter og Leverandører', 'module_ticket' => 'Sager', - 'reminders' => 'Reminders', - 'send_client_reminders' => 'Send email reminders', - 'can_view_tasks' => 'Tasks are visible in the portal', - 'is_not_sent_reminders' => 'Reminders are not sent', - 'promotion_footer' => 'Your promotion will expire soon, :link to upgrade now.', - 'unable_to_delete_primary' => 'Note: to delete this company first delete all linked companies.', - 'please_register' => 'Please register your account', - 'processing_request' => 'Processing request', - 'mcrypt_warning' => 'Warning: Mcrypt is deprecated, run :command to update your cipher.', - 'edit_times' => 'Edit Times', - 'inclusive_taxes_help' => 'Include taxes in the cost', - 'inclusive_taxes_notice' => 'This setting can not be changed once an invoice has been created.', - 'inclusive_taxes_warning' => 'Warning: existing invoices will need to be resaved', - 'copy_shipping' => 'Copy Shipping', - 'copy_billing' => 'Copy Billing', - 'quote_has_expired' => 'The quote has expired, please contact the merchant.', + 'reminders' => 'Påmindelser', + 'send_client_reminders' => 'Send e-mail påmindelser', + 'can_view_tasks' => 'Opgaver er synlige i portalen', + 'is_not_sent_reminders' => 'Påmindelser sendes ikke', + 'promotion_footer' => 'Din kampagne udløber snart, :link for at opgradere nu.', + 'unable_to_delete_primary' => 'Bemærk : at Slet denne virksomhed først Slet alle tilknyttede virksomheder.', + 'please_register' => 'Registrer venligst din konto', + 'processing_request' => 'Behandler anmodning', + 'mcrypt_warning' => 'Advarsel: Mcrypt er forældet, kør :command for at opdatere din chiffer.', + 'edit_times' => 'Redigér Times', + 'inclusive_taxes_help' => 'Inkluder skatter i prisen', + 'inclusive_taxes_notice' => 'Denne indstilling kan ikke ændres, når først en Faktura er blevet oprettet .', + 'inclusive_taxes_warning' => 'Advarsel: eksisterende Fakturaer skal gemmes igen', + 'copy_shipping' => 'Kopi Forsendelse', + 'copy_billing' => 'Kopier fakturering', + 'quote_has_expired' => 'Tilbuddet er udløbet, kontakt venligst forretningen.', 'empty_table_footer' => 'Viser 0 til 0 af 0', - 'do_not_trust' => 'Do not remember this device', - 'trust_for_30_days' => 'Trust for 30 days', - 'trust_forever' => 'Trust forever', + 'do_not_trust' => 'Husk ikke denne enhed', + 'trust_for_30_days' => 'Tillid i 30 dage', + 'trust_forever' => 'Tro for evigt', 'kanban' => 'Kanban', - 'backlog' => 'Backlog', - 'ready_to_do' => 'Ready to do', - 'in_progress' => 'In progress', - 'add_status' => 'Add status', - 'archive_status' => 'Archive Status', - 'new_status' => 'New Status', - 'convert_products' => 'Convert Products', - 'convert_products_help' => 'Automatically convert product prices to the client\'s currency', - 'improve_client_portal_link' => 'Set a subdomain to shorten the client portal link.', - 'budgeted_hours' => 'Budgeted Hours', - 'progress' => 'Progress', + 'backlog' => 'Efterslæb', + 'ready_to_do' => 'Klar til at gøre', + 'in_progress' => 'I gang', + 'add_status' => 'Tilføj status', + 'archive_status' => 'Arkiv Status', + 'new_status' => 'Ny status', + 'convert_products' => 'Konverter produkter', + 'convert_products_help' => 'Konverter automatisk produktpriser til Klient valuta', + 'improve_client_portal_link' => 'Indstil et underdomæne for at forkorte Klient portallinket.', + 'budgeted_hours' => 'Budgetterede timer', + 'progress' => 'Fremskridt', 'view_project' => 'Vis projekt', - 'summary' => 'Summary', - 'endless_reminder' => 'Endless Reminder', - 'signature_on_invoice_help' => 'Add the following code to show your client\'s signature on the PDF.', - 'signature_on_pdf' => 'Show on PDF', - 'signature_on_pdf_help' => 'Show the client signature on the invoice/quote PDF.', + 'summary' => 'Resumé', + 'endless_reminder' => 'Uendelig påmindelse', + 'signature_on_invoice_help' => 'Tilføj følgende kode for at vise din Klient signatur på PDF .', + 'signature_on_pdf' => 'Vis på PDF', + 'signature_on_pdf_help' => 'Vis Klient på Faktura /citat PDF .', 'expired_white_label' => 'Hvidmærke-licens er udløbet', - 'return_to_login' => 'Return to Login', - 'convert_products_tip' => 'Note: add a :link named ":name" to see the exchange rate.', - 'amount_greater_than_balance' => 'The amount is greater than the invoice balance, a credit will be created with the remaining amount.', - 'custom_fields_tip' => 'Use Label|Option1,Option2 to show a select box.', - 'client_information' => 'Client Information', - 'updated_client_details' => 'Successfully updated client details', + 'return_to_login' => 'Vend tilbage til login', + 'convert_products_tip' => 'Bemærk : Tilføj en :link med navnet " :name " for at se valutakursen.', + 'amount_greater_than_balance' => 'Beløb er større end Faktura saldoen, en kredit vil blive oprettet med det resterende Beløb .', + 'custom_fields_tip' => 'Brug Label|Option1,Option2 for at vise en markeringsboks.', + 'client_information' => 'Klient', + 'updated_client_details' => 'Succesfuldt opdateret Klient', 'auto' => 'Auto', - 'tax_amount' => 'Tax Amount', - 'tax_paid' => 'Tax Paid', - 'none' => 'None', - 'proposal_message_button' => 'To view your proposal for :amount, click the button below.', - 'proposal' => 'Proposal', + 'tax_amount' => 'Skat Beløb', + 'tax_paid' => 'Skat betalt', + 'none' => 'Ingen', + 'proposal_message_button' => 'For at Vis din Tilbud for :amount skal du klikke på knappen nedenfor.', + 'proposal' => 'Tilbud', 'proposals' => 'Projektforslag', - 'list_proposals' => 'List Proposals', + 'list_proposals' => 'Listeforslag', 'new_proposal' => 'Nyt projektforslag', 'edit_proposal' => 'Rediger projektforslag', 'archive_proposal' => 'Arkivér projektforslag', @@ -2672,22 +2675,22 @@ $LANG = array( 'deleted_proposals' => ':count projektforslag blev arkiveret', 'restored_proposal' => 'Projektforslaget blev genskabt', 'restore_proposal' => 'Genskab projektforslag', - 'snippet' => 'Snippet', - 'snippets' => 'Snippets', - 'proposal_snippet' => 'Snippet', - 'proposal_snippets' => 'Snippets', - 'new_proposal_snippet' => 'New Snippet', - 'edit_proposal_snippet' => 'Edit Snippet', - 'archive_proposal_snippet' => 'Archive Snippet', - 'delete_proposal_snippet' => 'Delete Snippet', - 'created_proposal_snippet' => 'Successfully created snippet', - 'updated_proposal_snippet' => 'Successfully updated snippet', - 'archived_proposal_snippet' => 'Successfully archived snippet', - 'deleted_proposal_snippet' => 'Successfully archived snippet', - 'archived_proposal_snippets' => 'Successfully archived :count snippets', - 'deleted_proposal_snippets' => 'Successfully archived :count snippets', - 'restored_proposal_snippet' => 'Successfully restored snippet', - 'restore_proposal_snippet' => 'Restore Snippet', + 'snippet' => 'Uddrag', + 'snippets' => 'Uddrag', + 'proposal_snippet' => 'Uddrag', + 'proposal_snippets' => 'Uddrag', + 'new_proposal_snippet' => 'Nyt uddrag', + 'edit_proposal_snippet' => 'Redigér Snippet', + 'archive_proposal_snippet' => 'Arkiv Snippet', + 'delete_proposal_snippet' => 'Slet Snippet', + 'created_proposal_snippet' => 'Succesfuldt oprettet snippet', + 'updated_proposal_snippet' => 'Succesfuldt opdateret snippet', + 'archived_proposal_snippet' => 'Succesfuldt arkiveret snippet', + 'deleted_proposal_snippet' => 'Succesfuldt arkiveret snippet', + 'archived_proposal_snippets' => 'Succesfuldt arkiveret :count snippets', + 'deleted_proposal_snippets' => 'Succesfuldt arkiveret :count snippets', + 'restored_proposal_snippet' => 'Succesfuldt genskabt snippet', + 'restore_proposal_snippet' => 'Genskab Snippet', 'template' => 'Skabelon', 'templates' => 'Skabeloner', 'proposal_template' => 'Skabelon', @@ -2696,228 +2699,228 @@ $LANG = array( 'edit_proposal_template' => 'Rediger Skabelon', 'archive_proposal_template' => 'Arkiver Skabelon', 'delete_proposal_template' => 'Slet Skabelon', - 'created_proposal_template' => 'Successfully created template', - 'updated_proposal_template' => 'Successfully updated template', - 'archived_proposal_template' => 'Successfully archived template', - 'deleted_proposal_template' => 'Successfully archived template', - 'archived_proposal_templates' => 'Successfully archived :count templates', - 'deleted_proposal_templates' => 'Successfully archived :count templates', - 'restored_proposal_template' => 'Successfully restored template', - 'restore_proposal_template' => 'Restore Template', - 'proposal_category' => 'Category', - 'proposal_categories' => 'Categories', - 'new_proposal_category' => 'New Category', - 'edit_proposal_category' => 'Edit Category', - 'archive_proposal_category' => 'Archive Category', - 'delete_proposal_category' => 'Delete Category', - 'created_proposal_category' => 'Successfully created category', - 'updated_proposal_category' => 'Successfully updated category', - 'archived_proposal_category' => 'Successfully archived category', - 'deleted_proposal_category' => 'Successfully archived category', - 'archived_proposal_categories' => 'Successfully archived :count categories', - 'deleted_proposal_categories' => 'Successfully archived :count categories', - 'restored_proposal_category' => 'Successfully restored category', - 'restore_proposal_category' => 'Restore Category', - 'delete_status' => 'Delete Status', + 'created_proposal_template' => 'Succesfuldt oprettet skabelon', + 'updated_proposal_template' => 'Succesfuldt opdateret skabelon', + 'archived_proposal_template' => 'Succesfuldt arkiveret skabelon', + 'deleted_proposal_template' => 'Succesfuldt arkiveret skabelon', + 'archived_proposal_templates' => 'Succesfuldt arkiveret :count skabeloner', + 'deleted_proposal_templates' => 'Succesfuldt arkiveret :count skabeloner', + 'restored_proposal_template' => 'Succesfuldt genskabt skabelon', + 'restore_proposal_template' => 'Genskab skabelon', + 'proposal_category' => 'Kategori', + 'proposal_categories' => 'Kategorier', + 'new_proposal_category' => 'Ny kategori', + 'edit_proposal_category' => 'Redigér Kategori', + 'archive_proposal_category' => 'Arkiv Kategori', + 'delete_proposal_category' => 'Slet Kategori', + 'created_proposal_category' => 'Succesfuldt oprettet kategori', + 'updated_proposal_category' => 'Succesfuldt opdateret kategori', + 'archived_proposal_category' => 'Succesfuldt arkiveret kategori', + 'deleted_proposal_category' => 'Succesfuldt arkiveret kategori', + 'archived_proposal_categories' => 'Succesfuldt arkiveret :count kategorier', + 'deleted_proposal_categories' => 'Succesfuldt arkiveret :count kategorier', + 'restored_proposal_category' => 'Succesfuldt genskabt kategori', + 'restore_proposal_category' => 'Genskab Kategori', + 'delete_status' => 'Slet Status', 'standard' => 'Standard', - 'icon' => 'Icon', + 'icon' => 'Ikon', 'proposal_not_found' => 'Det ønskede projektforslag er ikke tilgængeligt', - 'create_proposal_category' => 'Create category', - 'clone_proposal_template' => 'Clone Template', + 'create_proposal_category' => 'Opret kategori', + 'clone_proposal_template' => 'Klon skabelon', 'proposal_email' => 'E-mail til projektforslag', 'proposal_subject' => 'Nyt projektforslag :number fra :account', 'proposal_message' => 'For at se projektforslaget som er estimeret til :amount, så klik på linket herunder.', 'emailed_proposal' => 'Projektforslaget er nu sendt!', - 'load_template' => 'Load Template', - 'no_assets' => 'No images, drag to upload', - 'add_image' => 'Add Image', - 'select_image' => 'Select Image', - 'upgrade_to_upload_images' => 'Upgrade to the enterprise plan to upload images', - 'delete_image' => 'Delete Image', - 'delete_image_help' => 'Warning: deleting the image will remove it from all proposals.', - 'amount_variable_help' => 'Note: the invoice $amount field will use the partial/deposit field if set otherwise it will use the invoice balance.', - 'taxes_are_included_help' => 'Note: Inclusive taxes have been enabled.', - 'taxes_are_not_included_help' => 'Note: Inclusive taxes are not enabled.', - 'change_requires_purge' => 'Changing this setting requires :link the account data.', - 'purging' => 'purging', - 'warning_local_refund' => 'The refund will be recorded in the app but will NOT be processed by the payment gateway.', - 'email_address_changed' => 'Email address has been changed', - 'email_address_changed_message' => 'The email address for your account has been changed from :old_email to :new_email.', - 'test' => 'Test', + 'load_template' => 'Indlæs skabelon', + 'no_assets' => 'Ingen billeder, træk for at uploade', + 'add_image' => 'Tilføj billede', + 'select_image' => 'Vælg Billede', + 'upgrade_to_upload_images' => 'Opgrader til virksomhedsplanen for at uploade billeder', + 'delete_image' => 'Slet billede', + 'delete_image_help' => 'Advarsel: Hvis du sletter billedet, fjernes det fra alle forslag.', + 'amount_variable_help' => 'Bemærk : Faktura $ Beløb feltet vil bruge del-/indbetalingsfeltet, hvis det er angivet, ellers vil det bruge Faktura saldoen.', + 'taxes_are_included_help' => 'Bemærk : Inklusiv skatter er blevet aktiveret.', + 'taxes_are_not_included_help' => 'Bemærk : Inklusiv afgifter er ikke aktiveret.', + 'change_requires_purge' => 'Ændring af denne indstilling kræver :link kontodataene.', + 'purging' => 'udrensning', + 'warning_local_refund' => 'Refusionen vil blive registreret i appen, men vil IKKE blive behandlet af Betalingsgateway .', + 'email_address_changed' => 'e-mail er blevet ændret', + 'email_address_changed_message' => 'e-mail for din konto er blevet ændret fra :old_email til :new_email .', + 'test' => 'Prøve', 'beta' => 'Beta', - 'gmp_required' => 'Exporting to ZIP requires the GMP extension', - 'email_history' => 'Email History', - 'loading' => 'Loading', - 'no_messages_found' => 'No messages found', - 'processing' => 'Processing', - 'reactivate' => 'Reactivate', - 'reactivated_email' => 'The email address has been reactivated', - 'emails' => 'Emails', - 'opened' => 'Opened', + 'gmp_required' => 'Eksport til ZIP kræver GMP-udvidelsen', + 'email_history' => 'e-mail historie', + 'loading' => 'Indlæser', + 'no_messages_found' => 'Ingen beskeder fundet', + 'processing' => 'Forarbejdning', + 'reactivate' => 'Genaktiver', + 'reactivated_email' => 'e-mail adressen er blevet genaktiveret', + 'emails' => 'E-mails', + 'opened' => 'Åbnet', 'bounced' => 'Bounced', - 'total_sent' => 'Total Sent', - 'total_opened' => 'Total Opened', - 'total_bounced' => 'Total Bounced', - 'total_spam' => 'Total Spam', - 'platforms' => 'Platforms', + 'total_sent' => 'Total sendt', + 'total_opened' => 'Total åbnet', + 'total_bounced' => 'Total afviste', + 'total_spam' => 'Total spam', + 'platforms' => 'Platforme', 'email_clients' => 'E-mail kunder', - 'mobile' => 'Mobile', + 'mobile' => 'Mobil', 'desktop' => 'Desktop', 'webmail' => 'Webmail', - 'group' => 'Group', - 'subgroup' => 'Subgroup', - 'unset' => 'Unset', - 'received_new_payment' => 'You\'ve received a new payment!', - 'slack_webhook_help' => 'Receive payment notifications using :link.', - 'slack_incoming_webhooks' => 'Slack incoming webhooks', - 'accept' => 'Accept', - 'accepted_terms' => 'Successfully accepted the latest terms of service', - 'invalid_url' => 'Invalid URL', - 'workflow_settings' => 'Workflow Settings', - 'auto_email_invoice' => 'Auto Email', - 'auto_email_invoice_help' => 'Automatically email recurring invoices when created.', - 'auto_archive_invoice' => 'Auto Archive', - 'auto_archive_invoice_help' => 'Automatically archive invoices when paid.', - 'auto_archive_quote' => 'Auto Archive', - 'auto_archive_quote_help' => 'Automatically archive quotes when converted to invoice.', - 'require_approve_quote' => 'Require approve quote', - 'require_approve_quote_help' => 'Require clients to approve quotes.', - 'allow_approve_expired_quote' => 'Allow approve expired quote', - 'allow_approve_expired_quote_help' => 'Allow clients to approve expired quotes.', - 'invoice_workflow' => 'Invoice Workflow', - 'quote_workflow' => 'Quote Workflow', - 'client_must_be_active' => 'Error: the client must be active', - 'purge_client' => 'Purge Client', - 'purged_client' => 'Successfully purged client', - 'purge_client_warning' => 'All related records (invoices, tasks, expenses, documents, etc) will also be deleted.', - 'clone_product' => 'Clone Product', - 'item_details' => 'Item Details', - 'send_item_details_help' => 'Send line item details to the payment gateway.', + 'group' => 'Gruppe', + 'subgroup' => 'Undergruppe', + 'unset' => 'Frakoblet', + 'received_new_payment' => 'Du har modtaget en ny Betaling !', + 'slack_webhook_help' => 'Modtag Betaling ved hjælp af :link .', + 'slack_incoming_webhooks' => 'Slap indgående webhooks', + 'accept' => 'Acceptere', + 'accepted_terms' => 'Succesfuldt accepterede de seneste Betingelser af tjeneste', + 'invalid_url' => 'ugyldig URL', + 'workflow_settings' => 'Workflow Indstillinger', + 'auto_email_invoice' => 'Automatisk e-mail', + 'auto_email_invoice_help' => 'Send automatisk e-mail Gentagen Fakturaer , når oprettet .', + 'auto_archive_invoice' => 'Auto Arkiv', + 'auto_archive_invoice_help' => 'Automatisk Arkiv Fakturaer ved betaling.', + 'auto_archive_quote' => 'Auto Arkiv', + 'auto_archive_quote_help' => 'Arkiv automatisk citater ved konvertering til Faktura .', + 'require_approve_quote' => 'Kræv godkend tilbud', + 'require_approve_quote_help' => 'Kræv, at Klienter godkender tilbud.', + 'allow_approve_expired_quote' => 'Tillad godkend udløbet tilbud', + 'allow_approve_expired_quote_help' => 'Tillad Klienter at godkende udløbne tilbud.', + 'invoice_workflow' => 'Faktura Workflow', + 'quote_workflow' => 'Citat Workflow', + 'client_must_be_active' => 'Fejl: Klient skal være aktiv', + 'purge_client' => 'Rens Klient', + 'purged_client' => 'Succesfuldt renset Klient', + 'purge_client_warning' => 'Alle relaterede poster ( Fakturaer , opgaver, udgifter, dokumenter osv.) vil også blive slettet .', + 'clone_product' => 'Klon produkt', + 'item_details' => 'Varedetaljer', + 'send_item_details_help' => 'Send linjepostoplysninger til Betalingsgateway .', 'view_proposal' => 'Se projektforslag', - 'view_in_portal' => 'View in Portal', - 'cookie_message' => 'This website uses cookies to ensure you get the best experience on our website.', - 'got_it' => 'Got it!', - 'vendor_will_create' => 'vendor will be created', - 'vendors_will_create' => 'vendors will be created', - 'created_vendors' => 'Successfully created :count vendor(s)', - 'import_vendors' => 'Import Vendors', - 'company' => 'Company', - 'client_field' => 'Client Field', - 'contact_field' => 'Contact Field', - 'product_field' => 'Product Field', - 'task_field' => 'Task Field', + 'view_in_portal' => 'Vis i Portal', + 'cookie_message' => 'Denne hjemmeside bruger cookies for at sikre, at du får den bedste oplevelse på vores hjemmeside.', + 'got_it' => 'Forstået!', + 'vendor_will_create' => 'Sælger bliver oprettet', + 'vendors_will_create' => 'leverandører vil blive oprettet', + 'created_vendors' => 'Succesfuldt oprettet :count Sælger (s)', + 'import_vendors' => 'Importer leverandører', + 'company' => 'Selskab', + 'client_field' => 'Klient Field', + 'contact_field' => 'kontakt felt', + 'product_field' => 'Produktfelt', + 'task_field' => 'Opgave Mark', 'project_field' => 'Projektfelt', - 'expense_field' => 'Expense Field', - 'vendor_field' => 'Vendor Field', + 'expense_field' => 'Udgift Mark', + 'vendor_field' => 'Sælger Mark', 'company_field' => 'Company Field', - 'invoice_field' => 'Invoice Field', - 'invoice_surcharge' => 'Invoice Surcharge', - 'custom_task_fields_help' => 'Add a field when creating a task.', + 'invoice_field' => 'Faktura Field', + 'invoice_surcharge' => 'Faktura Tillæg', + 'custom_task_fields_help' => 'Tilføj et felt ved oprettelse af en Opgave .', 'custom_project_fields_help' => 'Tilføj et felt når der oprettes et projekt', - 'custom_expense_fields_help' => 'Add a field when creating an expense.', - 'custom_vendor_fields_help' => 'Add a field when creating a vendor.', - 'messages' => 'Messages', - 'unpaid_invoice' => 'Unpaid Invoice', - 'paid_invoice' => 'Paid Invoice', - 'unapproved_quote' => 'Unapproved Quote', + 'custom_expense_fields_help' => 'Tilføj et felt ved oprettelse af en Udgift .', + 'custom_vendor_fields_help' => 'Tilføj et felt ved oprettelse af en Sælger .', + 'messages' => 'Beskeder', + 'unpaid_invoice' => 'Ubetalte Faktura', + 'paid_invoice' => 'Betalt Faktura', + 'unapproved_quote' => 'Ikke godkendt citat', 'unapproved_proposal' => 'Ikke-godkendte projektforslag', - 'autofills_city_state' => 'Auto-fills city/state', - 'no_match_found' => 'No match found', - 'password_strength' => 'Password Strength', - 'strength_weak' => 'Weak', - 'strength_good' => 'Good', - 'strength_strong' => 'Strong', - 'mark' => 'Mark', - 'updated_task_status' => 'Successfully update task status', - 'background_image' => 'Background Image', - 'background_image_help' => 'Use the :link to manage your images, we recommend using a small file.', - 'proposal_editor' => 'proposal editor', - 'background' => 'Background', + 'autofills_city_state' => 'Automatisk udfylder by/stat', + 'no_match_found' => 'Ingen match fundet', + 'password_strength' => 'adgangskodestyrke', + 'strength_weak' => 'Svag', + 'strength_good' => 'godt', + 'strength_strong' => 'Stærk', + 'mark' => 'Mærke', + 'updated_task_status' => 'Succesfuldt opdatere Opgave status', + 'background_image' => 'Baggrundsbillede', + 'background_image_help' => 'Brug :link til at administrere dine billeder, vi anbefaler at bruge en lille fil.', + 'proposal_editor' => 'Tilbud redaktør', + 'background' => 'Baggrund', 'guide' => 'Guide', - 'gateway_fee_item' => 'Gateway Fee Item', - 'gateway_fee_description' => 'Gateway Fee Surcharge', - 'gateway_fee_discount_description' => 'Gateway Fee Discount', - 'show_payments' => 'Show Payments', - 'show_aging' => 'Show Aging', + 'gateway_fee_item' => 'Gateway gebyrelement', + 'gateway_fee_description' => 'Gateway gebyrtillæg', + 'gateway_fee_discount_description' => 'Rabat på Gateway', + 'show_payments' => 'Vis Betalinger', + 'show_aging' => 'Vis aldring', 'reference' => 'Reference', - 'amount_paid' => 'Amount Paid', - 'send_notifications_for' => 'Send Notifications For', - 'all_invoices' => 'All Invoices', - 'my_invoices' => 'My Invoices', - 'payment_reference' => 'Payment Reference', - 'maximum' => 'Maximum', - 'sort' => 'Sort', - 'refresh_complete' => 'Refresh Complete', - 'please_enter_your_email' => 'Please enter your email', - 'please_enter_your_password' => 'Please enter your password', - 'please_enter_your_url' => 'Please enter your URL', - 'please_enter_a_product_key' => 'Please enter a product key', - 'an_error_occurred' => 'An error occurred', - 'overview' => 'Overview', - 'copied_to_clipboard' => 'Copied :value to the clipboard', - 'error' => 'Error', - 'could_not_launch' => 'Could not launch', - 'additional' => 'Additional', - 'ok' => 'Ok', - 'email_is_invalid' => 'Email is invalid', - 'items' => 'Items', - 'partial_deposit' => 'Partial/Deposit', - 'add_item' => 'Add Item', - 'total_amount' => 'Total Amount', + 'amount_paid' => 'Beløb Betalt', + 'send_notifications_for' => 'Send meddelelser til', + 'all_invoices' => 'Alle Fakturaer', + 'my_invoices' => 'Min Fakturaer', + 'payment_reference' => 'Betaling', + 'maximum' => 'Maksimum', + 'sort' => 'Sortere', + 'refresh_complete' => 'Opdater fuldført', + 'please_enter_your_email' => 'Indtast venligst din e-mail', + 'please_enter_your_password' => 'Indtast venligst din adgangskode', + 'please_enter_your_url' => 'Indtast venligst din URL', + 'please_enter_a_product_key' => 'Indtast venligst en produktnøgle', + 'an_error_occurred' => 'En fejl opstod', + 'overview' => 'Oversigt', + 'copied_to_clipboard' => 'Kopierede :value til udklipsholderen', + 'error' => 'Fejl', + 'could_not_launch' => 'Kunne ikke starte', + 'additional' => 'Ekstra', + 'ok' => 'Okay', + 'email_is_invalid' => 'e-mail er ugyldig', + 'items' => 'genstande', + 'partial_deposit' => 'Delvis/Depositum', + 'add_item' => 'Tilføj vare', + 'total_amount' => 'Total Beløb', 'pdf' => 'PDF', - 'invoice_status_id' => 'Invoice Status', - 'click_plus_to_add_item' => 'Click + to add an item', - 'count_selected' => ':count selected', - 'dismiss' => 'Dismiss', - 'please_select_a_date' => 'Please select a date', - 'please_select_a_client' => 'Please select a client', - 'language' => 'Language', + 'invoice_status_id' => 'Faktura Status', + 'click_plus_to_add_item' => 'Klik på + for at Tilføj et element', + 'count_selected' => ':count valgt', + 'dismiss' => 'Afskedige', + 'please_select_a_date' => 'Vælg venligst en dato', + 'please_select_a_client' => 'Vælg venligst en Klient', + 'language' => 'Sprog', 'updated_at' => 'Opdateret', - 'please_enter_an_invoice_number' => 'Please enter an invoice number', - 'please_enter_a_quote_number' => 'Please enter a quote number', - 'clients_invoices' => ':client\'s invoices', - 'viewed' => 'Viewed', - 'approved' => 'Approved', - 'invoice_status_1' => 'Draft', - 'invoice_status_2' => 'Sent', - 'invoice_status_3' => 'Viewed', - 'invoice_status_4' => 'Approved', - 'invoice_status_5' => 'Partial', + 'please_enter_an_invoice_number' => 'Indtast venligst et Faktura nummer', + 'please_enter_a_quote_number' => 'Indtast venligst et tilbudsnummer', + 'clients_invoices' => ':client 's Fakturaer', + 'viewed' => 'har set', + 'approved' => 'Godkendt', + 'invoice_status_1' => 'Udkast', + 'invoice_status_2' => 'Sendt', + 'invoice_status_3' => 'har set', + 'invoice_status_4' => 'Godkendt', + 'invoice_status_5' => 'Delvis', 'invoice_status_6' => 'Betalt', - 'marked_invoice_as_sent' => 'Successfully marked invoice as sent', - 'please_enter_a_client_or_contact_name' => 'Please enter a client or contact name', - 'restart_app_to_apply_change' => 'Restart the app to apply the change', - 'refresh_data' => 'Refresh Data', - 'blank_contact' => 'Blank Contact', - 'no_records_found' => 'No records found', - 'industry' => 'Industry', - 'size' => 'Size', + 'marked_invoice_as_sent' => 'Succesfuldt markeret Faktura som sendt', + 'please_enter_a_client_or_contact_name' => 'Indtast et Klient eller kontakt', + 'restart_app_to_apply_change' => 'Genstart appen for at anvende ændringen', + 'refresh_data' => 'Opdater data', + 'blank_contact' => 'Blank kontakt', + 'no_records_found' => 'Ingen registreringer fundet', + 'industry' => 'Industri', + 'size' => 'Størrelse', 'net' => 'Net', - 'show_tasks' => 'Show tasks', - 'email_reminders' => 'Email Reminders', - 'reminder1' => 'First Reminder', - 'reminder2' => 'Second Reminder', - 'reminder3' => 'Third Reminder', - 'send' => 'Send', - 'auto_billing' => 'Auto billing', - 'button' => 'Button', - 'more' => 'More', - 'edit_recurring_invoice' => 'Edit Recurring Invoice', - 'edit_recurring_quote' => 'Edit Recurring Quote', - 'quote_status' => 'Quote Status', - 'please_select_an_invoice' => 'Please select an invoice', - 'filtered_by' => 'Filtered by', - 'payment_status' => 'Payment Status', - 'payment_status_1' => 'Pending', - 'payment_status_2' => 'Voided', - 'payment_status_3' => 'Failed', - 'payment_status_4' => 'Completed', - 'payment_status_5' => 'Partially Refunded', - 'payment_status_6' => 'Refunded', - 'send_receipt_to_client' => 'Send receipt to the client', - 'refunded' => 'Refunded', - 'marked_quote_as_sent' => 'Successfully marked quote as sent', - 'custom_module_settings' => 'Custom Module Settings', + 'show_tasks' => 'Vis opgaver', + 'email_reminders' => 'e-mail påmindelser', + 'reminder1' => 'Første påmindelse', + 'reminder2' => 'Anden påmindelse', + 'reminder3' => 'Tredje påmindelse', + 'send' => 'Sende', + 'auto_billing' => 'Automatisk fakturering', + 'button' => 'Knap', + 'more' => 'Mere', + 'edit_recurring_invoice' => 'Redigér Gentagen Faktura', + 'edit_recurring_quote' => 'Redigér Gentagen citat', + 'quote_status' => 'Citatstatus', + 'please_select_an_invoice' => 'Vælg venligst en Faktura', + 'filtered_by' => 'Filtreret efter', + 'payment_status' => 'Betaling Status', + 'payment_status_1' => 'Verserende', + 'payment_status_2' => 'annulleret', + 'payment_status_3' => 'mislykkedes', + 'payment_status_4' => 'Afsluttet', + 'payment_status_5' => 'Delvist refunderet', + 'payment_status_6' => 'Refunderet', + 'send_receipt_to_client' => 'Send kvittering til Klient', + 'refunded' => 'Refunderet', + 'marked_quote_as_sent' => 'Succesfuldt markeret tilbud som sendt', + 'custom_module_settings' => 'Speciel Modul Indstillinger', 'ticket' => 'Sag', 'tickets' => 'Sager', 'ticket_number' => 'Sag #', @@ -2931,22 +2934,22 @@ $LANG = array( 'archived_tickets' => 'Sager blev arkiveret', 'restored_ticket' => 'Sag blev genskabt', 'deleted_ticket' => 'Sag blev slettet', - 'open' => 'Open', - 'new' => 'New', - 'closed' => 'Closed', - 'reopened' => 'Reopened', - 'priority' => 'Priority', + 'open' => 'Åben', + 'new' => 'Ny', + 'closed' => 'Lukket', + 'reopened' => 'Genåbnet', + 'priority' => 'Prioritet', 'last_updated' => 'Senest opdateret', - 'comment' => 'Comments', + 'comment' => 'Kommentarer', 'tags' => 'Tags', - 'linked_objects' => 'Linked Objects', - 'low' => 'Low', + 'linked_objects' => 'Sammenkædede objekter', + 'low' => 'Lav', 'medium' => 'Medium', - 'high' => 'High', + 'high' => 'Høj', 'no_due_date' => 'Ingen forfaldsdato angivet', - 'assigned_to' => 'Assigned to', - 'reply' => 'Reply', - 'awaiting_reply' => 'Awaiting reply', + 'assigned_to' => 'Tildelt', + 'reply' => 'Svar', + 'awaiting_reply' => 'Afventer svar', 'ticket_close' => 'Luk sag', 'ticket_reopen' => 'Genåbn sag', 'ticket_open' => 'Åbn sag', @@ -2955,23 +2958,23 @@ $LANG = array( 'ticket_update' => 'Opdatér sag', 'ticket_settings' => 'Sagsindstillinger', 'updated_ticket' => 'Sag blev opdateret', - 'mark_spam' => 'Mark as Spam', - 'local_part' => 'Local Part', - 'local_part_unavailable' => 'Name taken', - 'local_part_available' => 'Name available', - 'local_part_invalid' => 'Invalid name (alpha numeric only, no spaces', - 'local_part_help' => 'Customize the local part of your inbound support email, ie. YOUR_NAME@support.invoiceninja.com', - 'from_name_help' => 'From name is the recognizable sender which is displayed instead of the email address, ie Support Center', - 'local_part_placeholder' => 'YOUR_NAME', - 'from_name_placeholder' => 'Support Center', - 'attachments' => 'Attachments', - 'client_upload' => 'Client uploads', - 'enable_client_upload_help' => 'Allow clients to upload documents/attachments', - 'max_file_size_help' => 'Maximum file size (KB) is limited by your post_max_size and upload_max_filesize variables as set in your PHP.INI', - 'max_file_size' => 'Maximum file size', - 'mime_types' => 'Mime types', - 'mime_types_placeholder' => '.pdf , .docx, .jpg', - 'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all', + 'mark_spam' => 'Marker som spam', + 'local_part' => 'Lokal del', + 'local_part_unavailable' => 'Navn taget', + 'local_part_available' => 'Navn tilgængeligt', + 'local_part_invalid' => 'Ugyldigt navn (kun alfanumerisk, ingen mellemrum', + 'local_part_help' => 'Tilpas den lokale del af din indgående support- e-mail , dvs. DIT_NAVN@support.invoiceninja.com', + 'from_name_help' => 'Fra navn er den genkendelige afsender, som vises i stedet for e-mail , dvs. Supportcenter', + 'local_part_placeholder' => 'DIT NAVN', + 'from_name_placeholder' => 'Supportcenter', + 'attachments' => 'Vedhæftede filer', + 'client_upload' => 'Klient uploads', + 'enable_client_upload_help' => 'Tillad Klienter at uploade dokumenter/vedhæftede filer', + 'max_file_size_help' => 'Maksimal filstørrelse (KB) er begrænset af dine post_max_size og upload_max_filesize variabler som angivet i din PHP.INI', + 'max_file_size' => 'Maksimal filstørrelse', + 'mime_types' => 'Mime typer', + 'mime_types_placeholder' => '. PDF , .docx, .jpg', + 'mime_types_help' => 'Kommasepareret liste over tilladte mime-typer, lad tom for alle', 'ticket_number_start_help' => 'Sagsnummer skal være større end det nuværende sagsnummer', 'new_ticket_template_id' => 'Ny sag', 'new_ticket_autoresponder_help' => 'Valg af en skabelon vil sende et auto-svar til en klient/kontakt når en ny sag oprettes', @@ -2979,54 +2982,54 @@ $LANG = array( 'update_ticket_autoresponder_help' => 'Valg af en skabelon vil sende et auto-svar til en klient/kontakt når en sag bliver opdateret', 'close_ticket_template_id' => 'Sag blev lukket', 'close_ticket_autoresponder_help' => 'Valg af en skabelon vil sende et auto-svar til en klient/kontakt når en sag lukkes', - 'default_priority' => 'Default priority', - 'alert_new_comment_id' => 'New comment', - 'alert_comment_ticket_help' => 'Selecting a template will send a notification (to agent) when a comment is made.', - 'alert_comment_ticket_email_help' => 'Comma separated emails to bcc on new comment.', - 'new_ticket_notification_list' => 'Additional new ticket notifications', - 'update_ticket_notification_list' => 'Additional new comment notifications', + 'default_priority' => 'Standardprioritet', + 'alert_new_comment_id' => 'Ny kommentar', + 'alert_comment_ticket_help' => 'Hvis du vælger en skabelon, sendes der en meddelelse (til agent), når der kommer en kommentar.', + 'alert_comment_ticket_email_help' => 'Kommaseparerede e-mails til bcc ved ny kommentar.', + 'new_ticket_notification_list' => 'Yderligere nye Sag -meddelelser', + 'update_ticket_notification_list' => 'Yderligere meddelelser om nye kommentarer', 'comma_separated_values' => 'admin@example.com, supervisor@example.com', 'alert_ticket_assign_agent_id' => 'Tildeling af sag', - 'alert_ticket_assign_agent_id_hel' => 'Selecting a template will send a notification (to agent) when a ticket is assigned.', - 'alert_ticket_assign_agent_id_notifications' => 'Additional ticket assigned notifications', - 'alert_ticket_assign_agent_id_help' => 'Comma separated emails to bcc on ticket assignment.', - 'alert_ticket_transfer_email_help' => 'Comma separated emails to bcc on ticket transfer.', + 'alert_ticket_assign_agent_id_hel' => 'Valg af en skabelon vil sende en meddelelse (til agent), når en Sag er tildelt.', + 'alert_ticket_assign_agent_id_notifications' => 'Yderligere Sag tildelte meddelelser', + 'alert_ticket_assign_agent_id_help' => 'Kommaseparerede e-mails til bcc på Sag opgave.', + 'alert_ticket_transfer_email_help' => 'Kommaseparerede e-mails til bcc ved Sag overførsel.', 'alert_ticket_overdue_agent_id' => 'Sag er forfalden', - 'alert_ticket_overdue_email' => 'Additional overdue ticket notifications', - 'alert_ticket_overdue_email_help' => 'Comma separated emails to bcc on ticket overdue.', - 'alert_ticket_overdue_agent_id_help' => 'Selecting a template will send a notification (to agent) when a ticket becomes overdue.', - 'ticket_master' => 'Ticket Master', - 'ticket_master_help' => 'Has the ability to assign and transfer tickets. Assigned as the default agent for all tickets.', - 'default_agent' => 'Default Agent', - 'default_agent_help' => 'If selected will automatically be assigned to all inbound tickets', - 'show_agent_details' => 'Show agent details on responses', + 'alert_ticket_overdue_email' => 'Yderligere forfaldne Sag -meddelelser', + 'alert_ticket_overdue_email_help' => 'Kommaseparerede e-mails til bcc på Sag forsinket.', + 'alert_ticket_overdue_agent_id_help' => 'Valg af en skabelon vil sende en meddelelse (til agent), når en Sag bliver forsinket.', + 'ticket_master' => 'Sag Master', + 'ticket_master_help' => 'Har evnen til at tildele og overføre billetter. Tildelt som standardagent for alle billetter.', + 'default_agent' => 'Standardagent', + 'default_agent_help' => 'Hvis valgt vil det automatisk blive tildelt alle indgående billetter', + 'show_agent_details' => 'Vis agentoplysninger om svar', 'avatar' => 'Avatar', - 'remove_avatar' => 'Remove avatar', + 'remove_avatar' => 'Fjern avatar', 'ticket_not_found' => 'Sag blev ikke fundet', - 'add_template' => 'Add Template', + 'add_template' => 'Tilføj skabelon', 'ticket_template' => 'Sagsskabelon', 'ticket_templates' => 'Sagsskabeloner', 'updated_ticket_template' => 'Sagsskabelon blev opdateret', 'created_ticket_template' => 'Sagsskabelon blev oprettet', - 'archive_ticket_template' => 'Archive Template', - 'restore_ticket_template' => 'Restore Template', - 'archived_ticket_template' => 'Successfully archived template', - 'restored_ticket_template' => 'Successfully restored template', + 'archive_ticket_template' => 'Arkiv skabelon', + 'restore_ticket_template' => 'Genskab skabelon', + 'archived_ticket_template' => 'Succesfuldt arkiveret skabelon', + 'restored_ticket_template' => 'Succesfuldt genskabt skabelon', 'close_reason' => 'Fortæl os hvorfor du lukker denne sag', 'reopen_reason' => 'Fortæl os hvorfor du genåbner denne sag', 'enter_ticket_message' => 'Skriv venligst en besked for at opdatere denne sag', - 'show_hide_all' => 'Show / Hide all', - 'subject_required' => 'Subject required', - 'mobile_refresh_warning' => 'If you\'re using the mobile app you may need to do a full refresh.', - 'enable_proposals_for_background' => 'To upload a background image :link to enable the proposals module.', + 'show_hide_all' => 'Vis/skjul alle', + 'subject_required' => 'Emne påkrævet', + 'mobile_refresh_warning' => 'Hvis du bruger mobilappen, skal du muligvis foretage en fuld opdatering.', + 'enable_proposals_for_background' => 'For at uploade et baggrundsbillede :link for at aktivere modulet forslag.', 'ticket_assignment' => 'Sag :ticket_number er blevet tildelt til :agent', 'ticket_contact_reply' => 'Sag :ticket_number er blevet opdateret af klienten :contact', 'ticket_new_template_subject' => 'Sag :ticket_number blev oprettet', 'ticket_updated_template_subject' => 'Sag :ticket_number er blevet opdateret', 'ticket_closed_template_subject' => 'Sag :ticket_number er blevet lukket.', 'ticket_overdue_template_subject' => 'Sag :ticket_number er nu forfalden', - 'merge' => 'Merge', - 'merged' => 'Merged', + 'merge' => 'Fusionere', + 'merged' => 'Fusioneret', 'agent' => 'Agent', 'parent_ticket' => 'Overordnet sag', 'linked_tickets' => 'Sammenkædede sager', @@ -3041,2131 +3044,2150 @@ $LANG = array( 'create_ticket' => 'Opret sag', 'allow_inbound_email_tickets_external' => 'Nye sager per e-mail (klient)', 'allow_inbound_email_tickets_external_help' => 'Tillad at klienter opretter nye sager per e-mail', - 'include_in_filter' => 'Include in filter', - 'custom_client1' => ':VALUE', - 'custom_client2' => ':VALUE', - 'compare' => 'Compare', - 'hosted_login' => 'Hosted Login', + 'include_in_filter' => 'Inkluder i filter', + 'custom_client1' => ':VÆRDI', + 'custom_client2' => ':VÆRDI', + 'compare' => 'Sammenligne', + 'hosted_login' => 'Hostet login', 'selfhost_login' => 'Selfhost Login', - 'google_login' => 'Google Login', - 'thanks_for_patience' => 'Thank for your patience while we work to implement these features.\n\nWe hope to have them completed in the next few months.\n\nUntil then we\'ll continue to support the', - 'legacy_mobile_app' => 'legacy mobile app', - 'today' => 'Today', - 'current' => 'Current', - 'previous' => 'Previous', - 'current_period' => 'Current Period', - 'comparison_period' => 'Comparison Period', - 'previous_period' => 'Previous Period', - 'previous_year' => 'Previous Year', - 'compare_to' => 'Compare to', - 'last_week' => 'Last Week', - 'clone_to_invoice' => 'Clone to Invoice', - 'clone_to_quote' => 'Clone to Quote', - 'convert' => 'Convert', - 'last7_days' => 'Last 7 Days', - 'last30_days' => 'Last 30 Days', - 'custom_js' => 'Custom JS', - 'adjust_fee_percent_help' => 'Adjust percent to account for fee', - 'show_product_notes' => 'Show product details', - 'show_product_notes_help' => 'Include the description and cost in the product dropdown', - 'important' => 'Important', - 'thank_you_for_using_our_app' => 'Thank you for using our app!', - 'if_you_like_it' => 'If you like it please', - 'to_rate_it' => 'to rate it.', - 'average' => 'Average', - 'unapproved' => 'Unapproved', - 'authenticate_to_change_setting' => 'Please authenticate to change this setting', - 'locked' => 'Locked', - 'authenticate' => 'Authenticate', - 'please_authenticate' => 'Please authenticate', - 'biometric_authentication' => 'Biometric Authentication', - 'auto_start_tasks' => 'Auto Start Tasks', - 'budgeted' => 'Budgeted', - 'please_enter_a_name' => 'Please enter a name', - 'click_plus_to_add_time' => 'Click + to add time', + 'google_login' => 'Google login', + 'thanks_for_patience' => 'Tak for din tålmodighed, mens vi arbejder på at implementere disse funktioner.\n\nVi håber at få dem fuldført inden for de næste par måneder.\n\nIndtil da vil vi fortsætte med at understøtte', + 'legacy_mobile_app' => 'ældre mobilapp', + 'today' => 'I dag', + 'current' => 'Nuværende', + 'previous' => 'Tidligere', + 'current_period' => 'Nuværende periode', + 'comparison_period' => 'Sammenligningsperiode', + 'previous_period' => 'Tidligere periode', + 'previous_year' => 'Foregående år', + 'compare_to' => 'Sammenligne med', + 'last_week' => 'Sidste uge', + 'clone_to_invoice' => 'Klon til Faktura', + 'clone_to_quote' => 'Klon at citere', + 'convert' => 'Konvertere', + 'last7_days' => 'Sidste 7 dage', + 'last30_days' => 'Sidste 30 dage', + 'custom_js' => 'Speciel JS', + 'adjust_fee_percent_help' => 'Juster procent for at tage højde for gebyr', + 'show_product_notes' => 'Vis produktdetaljer', + 'show_product_notes_help' => 'Inkluder beskrivelse og pris i produktrullemenuen', + 'important' => 'Vigtig', + 'thank_you_for_using_our_app' => 'Tak fordi du bruger vores app!', + 'if_you_like_it' => 'Hvis du kan lide det venligst', + 'to_rate_it' => 'at bedømme det.', + 'average' => 'Gennemsnit', + 'unapproved' => 'Ikke godkendt', + 'authenticate_to_change_setting' => 'Godkend venligst for at ændre denne indstilling', + 'locked' => 'Låst', + 'authenticate' => 'Godkend', + 'please_authenticate' => 'Godkend venligst', + 'biometric_authentication' => 'Biometrisk autentificering', + 'auto_start_tasks' => 'Autostart opgaver', + 'budgeted' => 'Budgetteret', + 'please_enter_a_name' => 'Indtast venligst et navn', + 'click_plus_to_add_time' => 'Klik på + for at Tilføj tid', 'design' => 'Design', - 'password_is_too_short' => 'Password is too short', - 'failed_to_find_record' => 'Failed to find record', - 'valid_until_days' => 'Valid Until', - 'valid_until_days_help' => 'Automatically sets the Valid Until value on quotes to this many days in the future. Leave blank to disable.', - 'usually_pays_in_days' => 'Days', - 'requires_an_enterprise_plan' => 'Requires an enterprise plan', - 'take_picture' => 'Take Picture', - 'upload_file' => 'Upload File', - 'new_document' => 'New Document', - 'edit_document' => 'Edit Document', - 'uploaded_document' => 'Successfully uploaded document', - 'updated_document' => 'Successfully updated document', - 'archived_document' => 'Successfully archived document', - 'deleted_document' => 'Successfully deleted document', - 'restored_document' => 'Successfully restored document', - 'no_history' => 'No History', - 'expense_status_1' => 'Logged', - 'expense_status_2' => 'Pending', - 'expense_status_3' => 'Invoiced', - 'no_record_selected' => 'No record selected', - 'error_unsaved_changes' => 'Please save or cancel your changes', - 'thank_you_for_your_purchase' => 'Thank you for your purchase!', - 'redeem' => 'Redeem', - 'back' => 'Back', - 'past_purchases' => 'Past Purchases', - 'annual_subscription' => 'Annual Subscription', + 'password_is_too_short' => 'Adgangskoden er for kort', + 'failed_to_find_record' => 'Det lykkedes ikke at finde posten', + 'valid_until_days' => 'Gyldig indtil', + 'valid_until_days_help' => 'Indstiller automatisk værdien Gyldig indtil på tilbud til så mange dage i fremtiden. Lad stå tomt for at deaktivere.', + 'usually_pays_in_days' => 'Dage', + 'requires_an_enterprise_plan' => 'Kræver en virksomhedsplan', + 'take_picture' => 'Tage billede', + 'upload_file' => 'Upload fil', + 'new_document' => 'Nyt dokument', + 'edit_document' => 'Redigér Dokument', + 'uploaded_document' => 'Succesfuldt uploadet dokument', + 'updated_document' => 'Succesfuldt opdateret dokument', + 'archived_document' => 'Succesfuldt arkiveret dokument', + 'deleted_document' => 'Succesfuldt slettet dokument', + 'restored_document' => 'Succesfuldt genskabt dokument', + 'no_history' => 'Ingen historie', + 'expense_status_1' => 'Logget', + 'expense_status_2' => 'Verserende', + 'expense_status_3' => 'Faktureret', + 'no_record_selected' => 'Ingen post valgt', + 'error_unsaved_changes' => 'Venligst Gem eller Afbryd dine ændringer', + 'thank_you_for_your_purchase' => 'Tak for dit køb!', + 'redeem' => 'Indløs', + 'back' => 'Tilbage', + 'past_purchases' => 'Tidligere køb', + 'annual_subscription' => 'Årligt abonnement', 'pro_plan' => 'Pro Plan', 'enterprise_plan' => 'Enterprise Plan', - 'count_users' => ':count users', - 'upgrade' => 'Upgrade', - 'please_enter_a_first_name' => 'Please enter a first name', - 'please_enter_a_last_name' => 'Please enter a last name', - 'please_agree_to_terms_and_privacy' => 'Please agree to the terms of service and privacy policy to create an account.', - 'i_agree_to_the' => 'I agree to the', - 'terms_of_service_link' => 'terms of service', - 'privacy_policy_link' => 'privacy policy', - 'view_website' => 'View Website', - 'create_account' => 'Create Account', - 'email_login' => 'Email Login', - 'late_fees' => 'Late Fees', - 'payment_number' => 'Payment Number', - 'before_due_date' => 'Before the due date', - 'after_due_date' => 'After the due date', - 'after_invoice_date' => 'After the invoice date', - 'filtered_by_user' => 'Filtered by User', - 'created_user' => 'Successfully created user', - 'primary_font' => 'Primary Font', - 'secondary_font' => 'Secondary Font', - 'number_padding' => 'Number Padding', - 'general' => 'General', - 'surcharge_field' => 'Surcharge Field', - 'company_value' => 'Company Value', - 'credit_field' => 'Credit Field', - 'payment_field' => 'Payment Field', - 'group_field' => 'Group Field', - 'number_counter' => 'Number Counter', - 'number_pattern' => 'Number Pattern', - 'custom_javascript' => 'Custom JavaScript', - 'portal_mode' => 'Portal Mode', - 'attach_pdf' => 'Attach PDF', - 'attach_documents' => 'Attach Documents', - 'attach_ubl' => 'Attach UBL', - 'email_style' => 'Email Style', - 'processed' => 'Processed', - 'fee_amount' => 'Fee Amount', - 'fee_percent' => 'Fee Percent', - 'fee_cap' => 'Fee Cap', - 'limits_and_fees' => 'Limits/Fees', - 'credentials' => 'Credentials', - 'require_billing_address_help' => 'Require client to provide their billing address', - 'require_shipping_address_help' => 'Require client to provide their shipping address', - 'deleted_tax_rate' => 'Successfully deleted tax rate', - 'restored_tax_rate' => 'Successfully restored tax rate', - 'provider' => 'Provider', - 'company_gateway' => 'Payment Gateway', - 'company_gateways' => 'Payment Gateways', - 'new_company_gateway' => 'New Gateway', - 'edit_company_gateway' => 'Edit Gateway', - 'created_company_gateway' => 'Successfully created gateway', - 'updated_company_gateway' => 'Successfully updated gateway', - 'archived_company_gateway' => 'Successfully archived gateway', - 'deleted_company_gateway' => 'Successfully deleted gateway', - 'restored_company_gateway' => 'Successfully restored gateway', - 'continue_editing' => 'Continue Editing', - 'default_value' => 'Default value', - 'currency_format' => 'Currency Format', - 'first_day_of_the_week' => 'First Day of the Week', - 'first_month_of_the_year' => 'First Month of the Year', + 'count_users' => ':count brugere', + 'upgrade' => 'Opgrader', + 'please_enter_a_first_name' => 'Indtast venligst et fornavn', + 'please_enter_a_last_name' => 'Indtast venligst et efternavn', + 'please_agree_to_terms_and_privacy' => 'Acceptér venligst Betingelser af service og privatlivspolitik for at Opret en konto.', + 'i_agree_to_the' => 'Jeg er enig i', + 'terms_of_service_link' => 'Betingelser af tjeneste', + 'privacy_policy_link' => 'Fortrolighedspolitik', + 'view_website' => 'Vis hjemmeside', + 'create_account' => 'Opret konto', + 'email_login' => 'e-mail Login', + 'late_fees' => 'Forsinkede gebyrer', + 'payment_number' => 'Betaling', + 'before_due_date' => 'Inden forfaldsdatoen', + 'after_due_date' => 'Efter forfaldsdatoen', + 'after_invoice_date' => 'Efter Faktura datoen', + 'filtered_by_user' => 'Filtreret af Bruger', + 'created_user' => 'Succesfuldt oprettet Bruger', + 'primary_font' => 'Primær skrifttype', + 'secondary_font' => 'Sekundær skrifttype', + 'number_padding' => 'Nummerpolstring', + 'general' => 'Generel', + 'surcharge_field' => 'Tillægsfelt', + 'company_value' => 'Virksomhedens værdi', + 'credit_field' => 'Kreditfelt', + 'payment_field' => 'Betaling', + 'group_field' => 'Gruppefelt', + 'number_counter' => 'Nummertæller', + 'number_pattern' => 'Nummermønster', + 'custom_javascript' => 'Speciel JavaScript', + 'portal_mode' => 'Portaltilstand', + 'attach_pdf' => 'Vedhæft PDF', + 'attach_documents' => 'Vedhæft dokumenter', + 'attach_ubl' => 'Vedhæft UBL', + 'email_style' => 'e-mail stil', + 'processed' => 'Bearbejdet', + 'fee_amount' => 'Gebyr Beløb', + 'fee_percent' => 'Gebyr i procent', + 'fee_cap' => 'Gebyrloft', + 'limits_and_fees' => 'Grænser/gebyrer', + 'credentials' => 'Legitimationsoplysninger', + 'require_billing_address_help' => 'Kræv, at Klient oplyser deres faktureringsadresse', + 'require_shipping_address_help' => 'Kræv, at Klient oplyser deres leveringsadresse', + 'deleted_tax_rate' => 'Succesfuldt slettet skattesats', + 'restored_tax_rate' => 'Succesfuldt genskabt skattesats', + 'provider' => 'Udbyder', + 'company_gateway' => 'Betalingsgateway', + 'company_gateways' => 'Betaling Gateways', + 'new_company_gateway' => 'Ny Gateway', + 'edit_company_gateway' => 'Redigér Gateway', + 'created_company_gateway' => 'Succesfuldt oprettet Gateway', + 'updated_company_gateway' => 'Succesfuldt opdateret Gateway', + 'archived_company_gateway' => 'Succesfuldt arkiveret Gateway', + 'deleted_company_gateway' => 'Succesfuldt slettet Gateway', + 'restored_company_gateway' => 'Succesfuldt genskabt Gateway', + 'continue_editing' => 'Fortsæt redigering', + 'default_value' => 'Standard værdi', + 'currency_format' => 'Format', + 'first_day_of_the_week' => 'Ugens første dag', + 'first_month_of_the_year' => 'Årets første måned', 'symbol' => 'Symbol', - 'ocde' => 'Code', - 'date_format' => 'Date Format', - 'datetime_format' => 'Datetime Format', - 'send_reminders' => 'Send Reminders', - 'timezone' => 'Timezone', - 'filtered_by_group' => 'Filtered by Group', - 'filtered_by_invoice' => 'Filtered by Invoice', - 'filtered_by_client' => 'Filtered by Client', - 'filtered_by_vendor' => 'Filtered by Vendor', - 'group_settings' => 'Group Settings', - 'groups' => 'Groups', - 'new_group' => 'New Group', - 'edit_group' => 'Edit Group', - 'created_group' => 'Successfully created group', - 'updated_group' => 'Successfully updated group', - 'archived_group' => 'Successfully archived group', - 'deleted_group' => 'Successfully deleted group', - 'restored_group' => 'Successfully restored group', - 'upload_logo' => 'Upload Logo', - 'uploaded_logo' => 'Successfully uploaded logo', - 'saved_settings' => 'Successfully saved settings', - 'device_settings' => 'Device Settings', - 'credit_cards_and_banks' => 'Credit Cards & Banks', - 'price' => 'Price', - 'email_sign_up' => 'Email Sign Up', - 'google_sign_up' => 'Google Sign Up', - 'sign_up_with_google' => 'Sign Up With Google', - 'long_press_multiselect' => 'Long-press Multiselect', - 'migrate_to_next_version' => 'Migrate to the next version of Invoice Ninja', - 'migrate_intro_text' => 'We\'ve been working on next version of Invoice Ninja. Click the button bellow to start the migration.', - 'start_the_migration' => 'Start the migration', + 'ocde' => 'Kode', + 'date_format' => 'Format', + 'datetime_format' => 'Dato-tid Format', + 'send_reminders' => 'Send påmindelser', + 'timezone' => 'Tidszone', + 'filtered_by_group' => 'Filtreret efter gruppe', + 'filtered_by_invoice' => 'Filtreret efter Faktura', + 'filtered_by_client' => 'Filtreret af Klient', + 'filtered_by_vendor' => 'Filtreret af Sælger', + 'group_settings' => 'Gruppe Indstillinger', + 'groups' => 'Grupper', + 'new_group' => 'Ny gruppe', + 'edit_group' => 'Redigér Group', + 'created_group' => 'Succesfuldt oprettet gruppe', + 'updated_group' => 'Succesfuldt opdateret gruppe', + 'archived_group' => 'Succesfuldt arkiveret gruppe', + 'deleted_group' => 'Succesfuldt slettet gruppe', + 'restored_group' => 'Succesfuldt genskabt gruppe', + 'upload_logo' => 'Upload logo', + 'uploaded_logo' => 'Succesfuldt uploadet logo', + 'saved_settings' => 'Succesfuldt reddede Indstillinger', + 'device_settings' => 'Indstillinger', + 'credit_cards_and_banks' => 'Kreditkort og banker', + 'price' => 'Pris', + 'email_sign_up' => 'e-mail Tilmeld dig', + 'google_sign_up' => 'Google Tilmeld dig', + 'sign_up_with_google' => 'Tilmeld dig med Google', + 'long_press_multiselect' => 'Tryk længe på Multiselect', + 'migrate_to_next_version' => 'Migrer til den næste version af Faktura Ninja', + 'migrate_intro_text' => 'Vi har arbejdet på næste version af Faktura Ninja. Klik på knappen nedenfor for at starte migreringen.', + 'start_the_migration' => 'Start migreringen', 'migration' => 'Migration', - 'welcome_to_the_new_version' => 'Welcome to the new version of Invoice Ninja', - 'next_step_data_download' => 'At the next step, we\'ll let you download your data for the migration.', - 'download_data' => 'Press button below to download the data.', - 'migration_import' => 'Awesome! Now you are ready to import your migration. Go to your new installation to import your data', - 'continue' => 'Continue', - 'company1' => 'Custom Company 1', - 'company2' => 'Custom Company 2', - 'company3' => 'Custom Company 3', - 'company4' => 'Custom Company 4', - 'product1' => 'Custom Product 1', - 'product2' => 'Custom Product 2', - 'product3' => 'Custom Product 3', - 'product4' => 'Custom Product 4', - 'client1' => 'Custom Client 1', - 'client2' => 'Custom Client 2', - 'client3' => 'Custom Client 3', - 'client4' => 'Custom Client 4', - 'contact1' => 'Custom Contact 1', - 'contact2' => 'Custom Contact 2', - 'contact3' => 'Custom Contact 3', - 'contact4' => 'Custom Contact 4', - 'task1' => 'Custom Task 1', - 'task2' => 'Custom Task 2', - 'task3' => 'Custom Task 3', - 'task4' => 'Custom Task 4', - 'project1' => 'Custom Project 1', - 'project2' => 'Custom Project 2', - 'project3' => 'Custom Project 3', - 'project4' => 'Custom Project 4', - 'expense1' => 'Custom Expense 1', - 'expense2' => 'Custom Expense 2', - 'expense3' => 'Custom Expense 3', - 'expense4' => 'Custom Expense 4', - 'vendor1' => 'Custom Vendor 1', - 'vendor2' => 'Custom Vendor 2', - 'vendor3' => 'Custom Vendor 3', - 'vendor4' => 'Custom Vendor 4', - 'invoice1' => 'Custom Invoice 1', - 'invoice2' => 'Custom Invoice 2', - 'invoice3' => 'Custom Invoice 3', - 'invoice4' => 'Custom Invoice 4', - 'payment1' => 'Custom Payment 1', - 'payment2' => 'Custom Payment 2', - 'payment3' => 'Custom Payment 3', - 'payment4' => 'Custom Payment 4', - 'surcharge1' => 'Custom Surcharge 1', - 'surcharge2' => 'Custom Surcharge 2', - 'surcharge3' => 'Custom Surcharge 3', - 'surcharge4' => 'Custom Surcharge 4', - 'group1' => 'Custom Group 1', - 'group2' => 'Custom Group 2', - 'group3' => 'Custom Group 3', - 'group4' => 'Custom Group 4', - 'number' => 'Number', - 'count' => 'Count', - 'is_active' => 'Is Active', - 'contact_last_login' => 'Contact Last Login', - 'contact_full_name' => 'Contact Full Name', - 'contact_custom_value1' => 'Contact Custom Value 1', - 'contact_custom_value2' => 'Contact Custom Value 2', - 'contact_custom_value3' => 'Contact Custom Value 3', - 'contact_custom_value4' => 'Contact Custom Value 4', - 'assigned_to_id' => 'Assigned To Id', - 'created_by_id' => 'Created By Id', - 'add_column' => 'Add Column', - 'edit_columns' => 'Edit Columns', - 'to_learn_about_gogle_fonts' => 'to learn about Google Fonts', - 'refund_date' => 'Refund Date', + 'welcome_to_the_new_version' => 'Velkommen til den nye version af Faktura Ninja', + 'next_step_data_download' => 'På næste trin lader vi dig downloade dine data til migreringen.', + 'download_data' => 'Tryk på knappen nedenfor for at downloade dataene.', + 'migration_import' => 'Fantastisk! Nu er du klar til at importere din migrering. Gå til din nye installation for at importere dine data', + 'continue' => 'Blive ved', + 'company1' => 'Speciel 1', + 'company2' => 'Speciel 2', + 'company3' => 'Speciel 3', + 'company4' => 'Speciel 4', + 'product1' => 'Speciel produkt 1', + 'product2' => 'Speciel produkt 2', + 'product3' => 'Speciel produkt 3', + 'product4' => 'Speciel produkt 4', + 'client1' => 'Speciel Klient', + 'client2' => 'Speciel Klient 2', + 'client3' => 'Speciel Klient', + 'client4' => 'Speciel Klient', + 'contact1' => 'Speciel kontakt 1', + 'contact2' => 'Speciel kontakt 2', + 'contact3' => 'Speciel kontakt 3', + 'contact4' => 'Speciel kontakt 4', + 'task1' => 'Speciel Opgave 1', + 'task2' => 'Speciel Opgave 2', + 'task3' => 'Speciel Opgave 3', + 'task4' => 'Speciel Opgave 4', + 'project1' => 'Speciel 1', + 'project2' => 'Speciel 2', + 'project3' => 'Speciel 3', + 'project4' => 'Speciel 4', + 'expense1' => 'Speciel Udgift 1', + 'expense2' => 'Speciel Udgift 2', + 'expense3' => 'Speciel Udgift 3', + 'expense4' => 'Speciel Udgift 4', + 'vendor1' => 'Speciel Sælger 1', + 'vendor2' => 'Speciel Sælger 2', + 'vendor3' => 'Speciel Sælger 3', + 'vendor4' => 'Speciel Sælger 4', + 'invoice1' => 'Speciel Faktura 1', + 'invoice2' => 'Speciel Faktura 2', + 'invoice3' => 'Speciel Faktura 3', + 'invoice4' => 'Speciel Faktura 4', + 'payment1' => 'Speciel Betaling 1', + 'payment2' => 'Speciel Betaling 2', + 'payment3' => 'Speciel Betaling 3', + 'payment4' => 'Speciel Betaling 4', + 'surcharge1' => 'Speciel 1', + 'surcharge2' => 'Speciel 2', + 'surcharge3' => 'Speciel 3', + 'surcharge4' => 'Speciel 4', + 'group1' => 'Speciel 1', + 'group2' => 'Speciel 2', + 'group3' => 'Speciel 3', + 'group4' => 'Speciel 4', + 'number' => 'Nummer', + 'count' => 'Tælle', + 'is_active' => 'er aktiv', + 'contact_last_login' => 'kontakt Sidste login', + 'contact_full_name' => 'kontakt fulde navn', + 'contact_custom_value1' => 'kontakt Speciel 1', + 'contact_custom_value2' => 'kontakt Speciel Value 2', + 'contact_custom_value3' => 'kontakt Speciel Value 3', + 'contact_custom_value4' => 'kontakt Speciel Value 4', + 'assigned_to_id' => 'Tildelt til id', + 'created_by_id' => 'oprettet Af Id', + 'add_column' => 'Tilføj kolonne', + 'edit_columns' => 'Redigér kolonner', + 'to_learn_about_gogle_fonts' => 'for at lære om Google Fonts', + 'refund_date' => 'Refusionsdato', 'multiselect' => 'Multiselect', - 'verify_password' => 'Verify Password', - 'applied' => 'Applied', - 'include_recent_errors' => 'Include recent errors from the logs', - 'your_message_has_been_received' => 'We have received your message and will try to respond promptly.', - 'show_product_details' => 'Show Product Details', - 'show_product_details_help' => 'Include the description and cost in the product dropdown', - 'pdf_min_requirements' => 'The PDF renderer requires :version', - 'adjust_fee_percent' => 'Adjust Fee Percent', - 'configure_settings' => 'Configure Settings', - 'about' => 'About', - 'credit_email' => 'Credit Email', - 'domain_url' => 'Domain URL', - 'password_is_too_easy' => 'Password must contain an upper case character and a number', - 'client_portal_tasks' => 'Client Portal Tasks', - 'client_portal_dashboard' => 'Client Portal Dashboard', - 'please_enter_a_value' => 'Please enter a value', - 'deleted_logo' => 'Successfully deleted logo', - 'generate_number' => 'Generate Number', - 'when_saved' => 'When Saved', - 'when_sent' => 'When Sent', - 'select_company' => 'Select Company', - 'float' => 'Float', - 'collapse' => 'Collapse', - 'show_or_hide' => 'Show/hide', - 'menu_sidebar' => 'Menu Sidebar', - 'history_sidebar' => 'History Sidebar', + 'verify_password' => 'Bekræft adgangskode', + 'applied' => 'Anvendt', + 'include_recent_errors' => 'Medtag nylige fejl fra loggene', + 'your_message_has_been_received' => 'Vi har modtaget din Besked og vil forsøge at svare hurtigt.', + 'show_product_details' => 'Vis produktdetaljer', + 'show_product_details_help' => 'Inkluder beskrivelse og pris i produktrullemenuen', + 'pdf_min_requirements' => 'PDF rendereren kræver :version', + 'adjust_fee_percent' => 'Juster gebyrprocent', + 'configure_settings' => 'Konfigurer Indstillinger', + 'about' => 'Om', + 'credit_email' => 'Kredit e-mail', + 'domain_url' => 'Domæne-URL', + 'password_is_too_easy' => 'Adgangskoden skal indeholde et stort bogstav og et tal', + 'client_portal_tasks' => 'Klient', + 'client_portal_dashboard' => 'Klient Portal Dashboard', + 'please_enter_a_value' => 'Indtast venligst en værdi', + 'deleted_logo' => 'Succesfuldt slettet logo', + 'generate_number' => 'Generer nummer', + 'when_saved' => 'Når gemt', + 'when_sent' => 'Ved afsendelse', + 'select_company' => 'Vælg Firma', + 'float' => 'Flyde', + 'collapse' => 'Bryder sammen', + 'show_or_hide' => 'Vis/skjul', + 'menu_sidebar' => 'Sidebjælke i menuen', + 'history_sidebar' => 'Historie sidebjælke', 'tablet' => 'Tablet', 'layout' => 'Layout', - 'module' => 'Module', - 'first_custom' => 'First Custom', - 'second_custom' => 'Second Custom', - 'third_custom' => 'Third Custom', - 'show_cost' => 'Show Cost', - 'show_cost_help' => 'Display a product cost field to track the markup/profit', - 'show_product_quantity' => 'Show Product Quantity', - 'show_product_quantity_help' => 'Display a product quantity field, otherwise default to one', - 'show_invoice_quantity' => 'Show Invoice Quantity', - 'show_invoice_quantity_help' => 'Display a line item quantity field, otherwise default to one', - 'default_quantity' => 'Default Quantity', - 'default_quantity_help' => 'Automatically set the line item quantity to one', - 'one_tax_rate' => 'One Tax Rate', - 'two_tax_rates' => 'Two Tax Rates', - 'three_tax_rates' => 'Three Tax Rates', - 'default_tax_rate' => 'Default Tax Rate', - 'invoice_tax' => 'Invoice Tax', - 'line_item_tax' => 'Line Item Tax', - 'inclusive_taxes' => 'Inclusive Taxes', - 'invoice_tax_rates' => 'Invoice Tax Rates', - 'item_tax_rates' => 'Item Tax Rates', - 'configure_rates' => 'Configure rates', - 'tax_settings_rates' => 'Tax Rates', - 'accent_color' => 'Accent Color', - 'comma_sparated_list' => 'Comma separated list', - 'single_line_text' => 'Single-line text', - 'multi_line_text' => 'Multi-line text', + 'module' => 'modul', + 'first_custom' => 'Første Speciel', + 'second_custom' => 'Andet Speciel', + 'third_custom' => 'Tredje Speciel', + 'show_cost' => 'Vis pris', + 'show_cost_help' => 'Vis et produktprisfelt for at spore opmærkningen/fortjenesten', + 'show_product_quantity' => 'Vis produktmængde', + 'show_product_quantity_help' => 'Vis et felt for produktantal, ellers er der et som standard', + 'show_invoice_quantity' => 'Vis Faktura Antal', + 'show_invoice_quantity_help' => 'Vis et linjepostantal felt, ellers standard til ét', + 'default_quantity' => 'Standardmængde', + 'default_quantity_help' => 'Indstil automatisk linjepostantallet til én', + 'one_tax_rate' => 'Én skattesats', + 'two_tax_rates' => 'To skattesatser', + 'three_tax_rates' => 'Tre skattesatser', + 'default_tax_rate' => 'Standard afgiftssats', + 'invoice_tax' => 'Faktura Skat', + 'line_item_tax' => 'Linjepostafgift', + 'inclusive_taxes' => 'Inklusiv skatter', + 'invoice_tax_rates' => 'Faktura Skattesatser', + 'item_tax_rates' => 'Vareafgiftssatser', + 'configure_rates' => 'Konfigurer satser', + 'tax_settings_rates' => 'Skattesatser', + 'accent_color' => 'Accent farve', + 'comma_sparated_list' => 'Kommasepareret liste', + 'single_line_text' => 'Enkeltlinjetekst', + 'multi_line_text' => 'Tekst med flere linjer', 'dropdown' => 'Dropdown', - 'field_type' => 'Field Type', - 'recover_password_email_sent' => 'A password recovery email has been sent', - 'removed_user' => 'Successfully removed user', - 'freq_three_years' => 'Three Years', - 'military_time_help' => '24 Hour Display', - 'click_here_capital' => 'Click here', - 'marked_invoice_as_paid' => 'Successfully marked invoice as paid', - 'marked_invoices_as_sent' => 'Successfully marked invoices as sent', - 'marked_invoices_as_paid' => 'Successfully marked invoices as paid', - 'activity_57' => 'System failed to email invoice :invoice', - 'custom_value3' => 'Custom Value 3', - 'custom_value4' => 'Custom Value 4', - 'email_style_custom' => 'Custom Email Style', - 'custom_message_dashboard' => 'Custom Dashboard Message', - 'custom_message_unpaid_invoice' => 'Custom Unpaid Invoice Message', - 'custom_message_paid_invoice' => 'Custom Paid Invoice Message', - 'custom_message_unapproved_quote' => 'Custom Unapproved Quote Message', - 'lock_sent_invoices' => 'Lock Sent Invoices', - 'translations' => 'Translations', - 'task_number_pattern' => 'Task Number Pattern', - 'task_number_counter' => 'Task Number Counter', - 'expense_number_pattern' => 'Expense Number Pattern', - 'expense_number_counter' => 'Expense Number Counter', - 'vendor_number_pattern' => 'Vendor Number Pattern', - 'vendor_number_counter' => 'Vendor Number Counter', - 'ticket_number_pattern' => 'Ticket Number Pattern', - 'ticket_number_counter' => 'Ticket Number Counter', - 'payment_number_pattern' => 'Payment Number Pattern', - 'payment_number_counter' => 'Payment Number Counter', - 'invoice_number_pattern' => 'Invoice Number Pattern', - 'quote_number_pattern' => 'Quote Number Pattern', - 'client_number_pattern' => 'Credit Number Pattern', - 'client_number_counter' => 'Credit Number Counter', - 'credit_number_pattern' => 'Credit Number Pattern', - 'credit_number_counter' => 'Credit Number Counter', - 'reset_counter_date' => 'Reset Counter Date', - 'counter_padding' => 'Counter Padding', - 'shared_invoice_quote_counter' => 'Share Invoice Quote Counter', - 'default_tax_name_1' => 'Default Tax Name 1', - 'default_tax_rate_1' => 'Default Tax Rate 1', - 'default_tax_name_2' => 'Default Tax Name 2', - 'default_tax_rate_2' => 'Default Tax Rate 2', - 'default_tax_name_3' => 'Default Tax Name 3', - 'default_tax_rate_3' => 'Default Tax Rate 3', - 'email_subject_invoice' => 'Email Invoice Subject', - 'email_subject_quote' => 'Email Quote Subject', - 'email_subject_payment' => 'Email Payment Subject', - 'switch_list_table' => 'Switch List Table', - 'client_city' => 'Client City', - 'client_state' => 'Client State', - 'client_country' => 'Client Country', - 'client_is_active' => 'Client is Active', - 'client_balance' => 'Client Balance', - 'client_address1' => 'Client Street', - 'client_address2' => 'Client Apt/Suite', - 'client_shipping_address1' => 'Client Shipping Street', - 'client_shipping_address2' => 'Client Shipping Apt/Suite', - 'tax_rate1' => 'Tax Rate 1', - 'tax_rate2' => 'Tax Rate 2', - 'tax_rate3' => 'Tax Rate 3', - 'archived_at' => 'Archived At', - 'has_expenses' => 'Has Expenses', - 'custom_taxes1' => 'Custom Taxes 1', - 'custom_taxes2' => 'Custom Taxes 2', - 'custom_taxes3' => 'Custom Taxes 3', - 'custom_taxes4' => 'Custom Taxes 4', - 'custom_surcharge1' => 'Custom Surcharge 1', - 'custom_surcharge2' => 'Custom Surcharge 2', - 'custom_surcharge3' => 'Custom Surcharge 3', - 'custom_surcharge4' => 'Custom Surcharge 4', - 'is_deleted' => 'Is Deleted', - 'vendor_city' => 'Vendor City', - 'vendor_state' => 'Vendor State', - 'vendor_country' => 'Vendor Country', - 'credit_footer' => 'Credit Footer', - 'credit_terms' => 'Credit Terms', - 'untitled_company' => 'Untitled Company', - 'added_company' => 'Successfully added company', - 'supported_events' => 'Supported Events', - 'custom3' => 'Third Custom', - 'custom4' => 'Fourth Custom', - 'optional' => 'Optional', - 'license' => 'License', - 'invoice_balance' => 'Invoice Balance', - 'saved_design' => 'Successfully saved design', - 'client_details' => 'Client Details', - 'company_address' => 'Company Address', - 'quote_details' => 'Quote Details', - 'credit_details' => 'Credit Details', - 'product_columns' => 'Product Columns', - 'task_columns' => 'Task Columns', - 'add_field' => 'Add Field', - 'all_events' => 'All Events', - 'owned' => 'Owned', - 'payment_success' => 'Payment Success', - 'payment_failure' => 'Payment Failure', - 'quote_sent' => 'Quote Sent', - 'credit_sent' => 'Credit Sent', - 'invoice_viewed' => 'Invoice Viewed', - 'quote_viewed' => 'Quote Viewed', - 'credit_viewed' => 'Credit Viewed', - 'quote_approved' => 'Quote Approved', - 'receive_all_notifications' => 'Receive All Notifications', - 'purchase_license' => 'Purchase License', - 'enable_modules' => 'Enable Modules', - 'converted_quote' => 'Successfully converted quote', - 'credit_design' => 'Credit Design', - 'includes' => 'Includes', + 'field_type' => 'Felttype', + 'recover_password_email_sent' => 'En e-mail til gendannelse af adgangskode er blevet sendt', + 'removed_user' => 'Succesfuldt fjernet Bruger', + 'freq_three_years' => '3 år', + 'military_time_help' => '24 timers visning', + 'click_here_capital' => 'Klik her', + 'marked_invoice_as_paid' => 'Succesfuldt markeret Faktura som betalt', + 'marked_invoices_as_sent' => 'Succesfuldt markeret Fakturaer som sendt', + 'marked_invoices_as_paid' => 'Succesfuldt mærkede Fakturaer som betalt', + 'activity_57' => 'Systemet kunne ikke sende e-mail til Faktura :invoice', + 'custom_value3' => 'Speciel 3', + 'custom_value4' => 'Speciel 4', + 'email_style_custom' => 'Speciel e-mail stil', + 'custom_message_dashboard' => 'Speciel Dashboard Besked', + 'custom_message_unpaid_invoice' => 'Speciel Ubetalt Faktura Besked', + 'custom_message_paid_invoice' => 'Speciel Paid Faktura Besked', + 'custom_message_unapproved_quote' => 'Speciel Ugodkendt Citat Besked', + 'lock_sent_invoices' => 'Lås Sendt Fakturaer', + 'translations' => 'Oversættelser', + 'task_number_pattern' => 'Opgave nummermønster', + 'task_number_counter' => 'Opgave nummertæller', + 'expense_number_pattern' => 'Udgift Nummermønster', + 'expense_number_counter' => 'Udgift Antal Tæller', + 'vendor_number_pattern' => 'Sælger Talmønster', + 'vendor_number_counter' => 'Sælger Taltæller', + 'ticket_number_pattern' => 'Sag nummer mønster', + 'ticket_number_counter' => 'Sag nummer tæller', + 'payment_number_pattern' => 'Betaling', + 'payment_number_counter' => 'Betaling', + 'invoice_number_pattern' => 'Faktura nummermønster', + 'quote_number_pattern' => 'Citatnummermønster', + 'client_number_pattern' => 'Kreditnummermønster', + 'client_number_counter' => 'Kreditnummertæller', + 'credit_number_pattern' => 'Kreditnummermønster', + 'credit_number_counter' => 'Kreditnummertæller', + 'reset_counter_date' => 'Nulstil tællerdato', + 'counter_padding' => 'Bordpolstring', + 'shared_invoice_quote_counter' => 'Del Faktura Citat tæller', + 'default_tax_name_1' => 'Standard skattenavn 1', + 'default_tax_rate_1' => 'Standardafgiftssats 1', + 'default_tax_name_2' => 'Standard skattenavn 2', + 'default_tax_rate_2' => 'Standardafgiftssats 2', + 'default_tax_name_3' => 'Standard skattenavn 3', + 'default_tax_rate_3' => 'Standardafgiftssats 3', + 'email_subject_invoice' => 'e-mail Faktura Emne', + 'email_subject_quote' => 'e-mail Citat Emne', + 'email_subject_payment' => 'e-mail Betaling Emne', + 'switch_list_table' => 'Skift listetabel', + 'client_city' => 'Klient City', + 'client_state' => 'Klient', + 'client_country' => 'Klient', + 'client_is_active' => 'Klient er aktiv', + 'client_balance' => 'Klient balance', + 'client_address1' => 'Klient Street', + 'client_address2' => 'Klient Apt/Suite', + 'client_shipping_address1' => 'Klient Shipping Street', + 'client_shipping_address2' => 'Klient Shipping Apt/Suite', + 'tax_rate1' => 'Skattesats 1', + 'tax_rate2' => 'Skattesats 2', + 'tax_rate3' => 'Skattesats 3', + 'archived_at' => 'arkiveret Kl', + 'has_expenses' => 'Har Udgifter', + 'custom_taxes1' => 'Speciel 1', + 'custom_taxes2' => 'Speciel 2', + 'custom_taxes3' => 'Speciel 3', + 'custom_taxes4' => 'Speciel 4', + 'custom_surcharge1' => 'Speciel 1', + 'custom_surcharge2' => 'Speciel 2', + 'custom_surcharge3' => 'Speciel 3', + 'custom_surcharge4' => 'Speciel 4', + 'is_deleted' => 'Er slettet', + 'vendor_city' => 'Sælger By', + 'vendor_state' => 'Sælger Stat', + 'vendor_country' => 'Sælger Land', + 'credit_footer' => 'Kreditsidefod', + 'credit_terms' => 'Kredit Betingelser', + 'untitled_company' => 'Unavngivet firma', + 'added_company' => 'Succesfuldt tilføjet firma', + 'supported_events' => 'Understøttede begivenheder', + 'custom3' => 'Tredje Speciel', + 'custom4' => 'Fjerde Speciel', + 'optional' => 'Valgfri', + 'license' => 'Licens', + 'invoice_balance' => 'Faktura Balance', + 'saved_design' => 'Succesfuldt gemt design', + 'client_details' => 'Klient', + 'company_address' => 'Virksomhedens adresse', + 'quote_details' => 'Citat detaljer', + 'credit_details' => 'Kreditoplysninger', + 'product_columns' => 'Produktkolonner', + 'task_columns' => 'Opgave', + 'add_field' => 'Tilføj felt', + 'all_events' => 'Alle begivenheder', + 'owned' => 'Ejet', + 'payment_success' => 'Betaling succes', + 'payment_failure' => 'Betaling', + 'quote_sent' => 'Citat sendt', + 'credit_sent' => 'Kredit sendt', + 'invoice_viewed' => 'Faktura set', + 'quote_viewed' => 'Citat set', + 'credit_viewed' => 'Kredit set', + 'quote_approved' => 'Citat Godkendt', + 'receive_all_notifications' => 'Modtag alle meddelelser', + 'purchase_license' => 'Køb Licens', + 'enable_modules' => 'Aktiver moduler', + 'converted_quote' => 'Succesfuldt konverteret citat', + 'credit_design' => 'Kreditdesign', + 'includes' => 'Inkluderer', 'css_framework' => 'CSS Framework', - 'custom_designs' => 'Custom Designs', + 'custom_designs' => 'Speciel designs', 'designs' => 'Designs', - 'new_design' => 'New Design', - 'edit_design' => 'Edit Design', - 'created_design' => 'Successfully created design', - 'updated_design' => 'Successfully updated design', - 'archived_design' => 'Successfully archived design', - 'deleted_design' => 'Successfully deleted design', - 'removed_design' => 'Successfully removed design', - 'restored_design' => 'Successfully restored design', - 'recurring_tasks' => 'Recurring Tasks', - 'removed_credit' => 'Successfully removed credit', - 'latest_version' => 'Latest Version', - 'update_now' => 'Update Now', - 'a_new_version_is_available' => 'A new version of the web app is available', - 'update_available' => 'Update Available', - 'app_updated' => 'Update successfully completed', - 'integrations' => 'Integrations', - 'tracking_id' => 'Tracking Id', + 'new_design' => 'Nyt design', + 'edit_design' => 'Redigér Design', + 'created_design' => 'Succesfuldt oprettet design', + 'updated_design' => 'Succesfuldt opdateret design', + 'archived_design' => 'Succesfuldt arkiveret design', + 'deleted_design' => 'Succesfuldt slettet design', + 'removed_design' => 'Succesfuldt fjernet design', + 'restored_design' => 'Succesfuldt genskabt design', + 'recurring_tasks' => 'Gentagen opgaver', + 'removed_credit' => 'Succesfuldt fjernet kredit', + 'latest_version' => 'Nyeste version', + 'update_now' => 'Opdatere nu', + 'a_new_version_is_available' => 'En ny version af webappen er tilgængelig', + 'update_available' => 'Opdatering tilgængelig', + 'app_updated' => 'Opdatering Succesfuldt gennemført', + 'integrations' => 'Integrationer', + 'tracking_id' => 'Sporings-id', 'slack_webhook_url' => 'Slack Webhook URL', - 'partial_payment' => 'Partial Payment', - 'partial_payment_email' => 'Partial Payment Email', - 'clone_to_credit' => 'Clone to Credit', - 'emailed_credit' => 'Successfully emailed credit', - 'marked_credit_as_sent' => 'Successfully marked credit as sent', - 'email_subject_payment_partial' => 'Email Partial Payment Subject', - 'is_approved' => 'Is Approved', - 'migration_went_wrong' => 'Oops, something went wrong! Please make sure you have setup an Invoice Ninja v5 instance before starting the migration.', - 'cross_migration_message' => 'Cross account migration is not allowed. Please read more about it here: https://invoiceninja.github.io/docs/migration/#troubleshooting', - 'email_credit' => 'Email Credit', - 'client_email_not_set' => 'Client does not have an email address set', - 'ledger' => 'Ledger', - 'view_pdf' => 'View PDF', - 'all_records' => 'All records', - 'owned_by_user' => 'Owned by user', - 'credit_remaining' => 'Credit Remaining', - 'use_default' => 'Use default', - 'reminder_endless' => 'Endless Reminders', - 'number_of_days' => 'Number of days', - 'configure_payment_terms' => 'Configure Payment Terms', - 'payment_term' => 'Payment Term', - 'new_payment_term' => 'New Payment Term', - 'deleted_payment_term' => 'Successfully deleted payment term', - 'removed_payment_term' => 'Successfully removed payment term', - 'restored_payment_term' => 'Successfully restored payment term', - 'full_width_editor' => 'Full Width Editor', - 'full_height_filter' => 'Full Height Filter', - 'email_sign_in' => 'Sign in with email', - 'change' => 'Change', - 'change_to_mobile_layout' => 'Change to the mobile layout?', - 'change_to_desktop_layout' => 'Change to the desktop layout?', - 'send_from_gmail' => 'Send from Gmail', - 'reversed' => 'Reversed', - 'cancelled' => 'Cancelled', - 'quote_amount' => 'Quote Amount', - 'hosted' => 'Hosted', - 'selfhosted' => 'Self-Hosted', - 'hide_menu' => 'Hide Menu', - 'show_menu' => 'Show Menu', - 'partially_refunded' => 'Partially Refunded', - 'search_documents' => 'Search Documents', - 'search_designs' => 'Search Designs', - 'search_invoices' => 'Search Invoices', - 'search_clients' => 'Search Clients', - 'search_products' => 'Search Products', - 'search_quotes' => 'Search Quotes', - 'search_credits' => 'Search Credits', - 'search_vendors' => 'Search Vendors', - 'search_users' => 'Search Users', - 'search_tax_rates' => 'Search Tax Rates', - 'search_tasks' => 'Search Tasks', - 'search_settings' => 'Search Settings', - 'search_projects' => 'Search Projects', - 'search_expenses' => 'Search Expenses', - 'search_payments' => 'Search Payments', - 'search_groups' => 'Search Groups', - 'search_company' => 'Search Company', - 'cancelled_invoice' => 'Successfully cancelled invoice', - 'cancelled_invoices' => 'Successfully cancelled invoices', - 'reversed_invoice' => 'Successfully reversed invoice', - 'reversed_invoices' => 'Successfully reversed invoices', - 'reverse' => 'Reverse', - 'filtered_by_project' => 'Filtered by Project', - 'google_sign_in' => 'Sign in with Google', - 'activity_58' => ':user reversed invoice :invoice', - 'activity_59' => ':user cancelled invoice :invoice', - 'payment_reconciliation_failure' => 'Reconciliation Failure', - 'payment_reconciliation_success' => 'Reconciliation Success', - 'gateway_success' => 'Gateway Success', - 'gateway_failure' => 'Gateway Failure', - 'gateway_error' => 'Gateway Error', - 'email_send' => 'Email Send', - 'email_retry_queue' => 'Email Retry Queue', - 'failure' => 'Failure', - 'quota_exceeded' => 'Quota Exceeded', - 'upstream_failure' => 'Upstream Failure', - 'system_logs' => 'System Logs', - 'copy_link' => 'Copy Link', - 'welcome_to_invoice_ninja' => 'Welcome to Invoice Ninja', - 'optin' => 'Opt-In', - 'optout' => 'Opt-Out', - 'auto_convert' => 'Auto Convert', - 'reminder1_sent' => 'Reminder 1 Sent', - 'reminder2_sent' => 'Reminder 2 Sent', - 'reminder3_sent' => 'Reminder 3 Sent', - 'reminder_last_sent' => 'Reminder Last Sent', - 'pdf_page_info' => 'Page :current of :total', - 'emailed_credits' => 'Successfully emailed credits', - 'view_in_stripe' => 'View in Stripe', - 'rows_per_page' => 'Rows Per Page', - 'apply_payment' => 'Apply Payment', - 'unapplied' => 'Unapplied', - 'custom_labels' => 'Custom Labels', + 'partial_payment' => 'Delvis Betaling', + 'partial_payment_email' => 'Delvis Betaling e-mail', + 'clone_to_credit' => 'Klon til kredit', + 'emailed_credit' => 'Succesfuldt emailet kredit', + 'marked_credit_as_sent' => 'Succesfuldt markeret kredit som sendt', + 'email_subject_payment_partial' => 'e-mail Betaling Emne', + 'is_approved' => 'Er Godkendt', + 'migration_went_wrong' => 'Ups! Noget gik galt! Sørg for, at du har opsat en Faktura Ninja v5-instans, før du starter migreringen.', + 'cross_migration_message' => 'Migrering på tværs af konti er ikke tilladt. Læs mere om det her: https://invoiceninja.github.io/docs/migration/#troubleshooting', + 'email_credit' => 'e-mail Kredit', + 'client_email_not_set' => 'Klient har ikke angivet en e-mail', + 'ledger' => 'Hovedbog', + 'view_pdf' => 'Vis PDF', + 'all_records' => 'Alle optegnelser', + 'owned_by_user' => 'Ejes af Bruger', + 'credit_remaining' => 'Tilbageværende kredit', + 'use_default' => 'Brug standard', + 'reminder_endless' => 'Uendelige påmindelser', + 'number_of_days' => 'Antal dage', + 'configure_payment_terms' => 'Konfigurer Betaling Betingelser', + 'payment_term' => 'Betaling Term', + 'new_payment_term' => 'Ny Betaling', + 'deleted_payment_term' => 'Succesfuldt slettet Betaling termin', + 'removed_payment_term' => 'Succesfuldt fjernet Betaling', + 'restored_payment_term' => 'Succesfuldt genskabt Betaling termin', + 'full_width_editor' => 'Editor i fuld bredde', + 'full_height_filter' => 'Fuld højde filter', + 'email_sign_in' => 'Log ind med e-mail', + 'change' => 'Lave om', + 'change_to_mobile_layout' => 'Skift til mobillayoutet?', + 'change_to_desktop_layout' => 'Skift til skrivebordslayout?', + 'send_from_gmail' => 'Send fra Gmail', + 'reversed' => 'Omvendt', + 'cancelled' => 'Aflyst', + 'quote_amount' => 'Citat Beløb', + 'hosted' => 'Hostet', + 'selfhosted' => 'Selvvært', + 'hide_menu' => 'Skjul menu', + 'show_menu' => 'Vis menu', + 'partially_refunded' => 'Delvist refunderet', + 'search_documents' => 'Søg i dokumenter', + 'search_designs' => 'Søg designs', + 'search_invoices' => 'Søg Fakturaer', + 'search_clients' => 'Søg efter Klienter', + 'search_products' => 'Søg efter produkter', + 'search_quotes' => 'Søg citater', + 'search_credits' => 'Søg Credits', + 'search_vendors' => 'Søg efter leverandører', + 'search_users' => 'Søg efter brugere', + 'search_tax_rates' => 'Søg efter skattesatser', + 'search_tasks' => 'Søgeopgaver', + 'search_settings' => 'Søg Indstillinger', + 'search_projects' => 'Søg projekter', + 'search_expenses' => 'Søgeudgifter', + 'search_payments' => 'Søg Betalinger', + 'search_groups' => 'Søg i grupper', + 'search_company' => 'Søg efter firma', + 'cancelled_invoice' => 'Succesfuldt aflyst Faktura', + 'cancelled_invoices' => 'Succesfuldt aflyst Fakturaer', + 'reversed_invoice' => 'Succesfuldt vendt Faktura', + 'reversed_invoices' => 'Succesfuldt omvendt Fakturaer', + 'reverse' => 'Baglæns', + 'filtered_by_project' => 'Filtreret efter projekt', + 'google_sign_in' => 'Log ind med Google', + 'activity_58' => ':user omvendt Faktura :invoice', + 'activity_59' => ':user annulleret Faktura :invoice', + 'payment_reconciliation_failure' => 'Forsoningsfejl', + 'payment_reconciliation_success' => 'Forsoningssucces', + 'gateway_success' => 'Gateway succes', + 'gateway_failure' => 'Gateway -fejl', + 'gateway_error' => 'Gateway fejl', + 'email_send' => 'e-mail Send', + 'email_retry_queue' => 'e-mail Genforsøgskø', + 'failure' => 'Fiasko', + 'quota_exceeded' => 'Kvote overskredet', + 'upstream_failure' => 'Upstream fiasko', + 'system_logs' => 'Systemlogs', + 'copy_link' => 'Kopier link', + 'welcome_to_invoice_ninja' => 'Velkommen til Faktura Ninja', + 'optin' => 'Tilmeld', + 'optout' => 'Opt-out', + 'auto_convert' => 'Autokonvertering', + 'reminder1_sent' => 'Påmindelse 1 Sendt', + 'reminder2_sent' => 'Påmindelse 2 Sendt', + 'reminder3_sent' => 'Påmindelse 3 Sendt', + 'reminder_last_sent' => 'Påmindelse sidst sendt', + 'pdf_page_info' => 'Side :current af :total', + 'emailed_credits' => 'Succesfuldt e-mailede kreditter', + 'view_in_stripe' => 'Vis i Stripe', + 'rows_per_page' => 'Rækker pr. side', + 'apply_payment' => 'Ansøg Betaling', + 'unapplied' => 'Ikke anvendt', + 'custom_labels' => 'Speciel etiketter', 'record_type' => 'Record Type', - 'record_name' => 'Record Name', - 'file_type' => 'File Type', - 'height' => 'Height', - 'width' => 'Width', - 'health_check' => 'Health Check', - 'last_login_at' => 'Last Login At', - 'company_key' => 'Company Key', - 'storefront' => 'Storefront', - 'storefront_help' => 'Enable third-party apps to create invoices', - 'count_records_selected' => ':count records selected', - 'count_record_selected' => ':count record selected', - 'client_created' => 'Client Created', - 'online_payment_email' => 'Online Payment Email', - 'manual_payment_email' => 'Manual Payment Email', - 'completed' => 'Completed', - 'gross' => 'Gross', - 'net_amount' => 'Net Amount', - 'net_balance' => 'Net Balance', - 'client_settings' => 'Client Settings', - 'selected_invoices' => 'Selected Invoices', - 'selected_payments' => 'Selected Payments', - 'selected_quotes' => 'Selected Quotes', - 'selected_tasks' => 'Selected Tasks', - 'selected_expenses' => 'Selected Expenses', - 'past_due_invoices' => 'Past Due Invoices', - 'create_payment' => 'Create Payment', - 'update_quote' => 'Update Quote', - 'update_invoice' => 'Update Invoice', - 'update_client' => 'Update Client', - 'update_vendor' => 'Update Vendor', - 'create_expense' => 'Create Expense', - 'update_expense' => 'Update Expense', - 'update_task' => 'Update Task', - 'approve_quote' => 'Approve Quote', - 'when_paid' => 'When Paid', - 'expires_on' => 'Expires On', - 'show_sidebar' => 'Show Sidebar', - 'hide_sidebar' => 'Hide Sidebar', - 'event_type' => 'Event Type', - 'copy' => 'Copy', - 'must_be_online' => 'Please restart the app once connected to the internet', - 'crons_not_enabled' => 'The crons need to be enabled', + 'record_name' => 'Optegnelsesnavn', + 'file_type' => 'Filtype', + 'height' => 'Højde', + 'width' => 'Bredde', + 'health_check' => 'Sundhedstjek', + 'last_login_at' => 'Sidste login kl', + 'company_key' => 'Firmanøgle', + 'storefront' => 'Butiksfacade', + 'storefront_help' => 'Aktiver tredjepartsapps til Opret Fakturaer', + 'count_records_selected' => ':count poster valgt', + 'count_record_selected' => ':count post valgt', + 'client_created' => 'Klient oprettet', + 'online_payment_email' => 'Online Betaling e-mail', + 'manual_payment_email' => 'Manuel Betaling e-mail', + 'completed' => 'Afsluttet', + 'gross' => 'Brutto', + 'net_amount' => 'Net Beløb', + 'net_balance' => 'Nettobalance', + 'client_settings' => 'Klient Indstillinger', + 'selected_invoices' => 'Udvalgte Fakturaer', + 'selected_payments' => 'Valgte Betalinger', + 'selected_quotes' => 'Udvalgte citater', + 'selected_tasks' => 'Udvalgte opgaver', + 'selected_expenses' => 'Udvalgte Udgifter', + 'past_due_invoices' => 'Forfaldne Fakturaer', + 'create_payment' => 'Opret Betaling', + 'update_quote' => 'Opdater citat', + 'update_invoice' => 'Opdater Faktura', + 'update_client' => 'Opdater Klient', + 'update_vendor' => 'Opdater Sælger', + 'create_expense' => 'Opret Udgift', + 'update_expense' => 'Opdater Udgift', + 'update_task' => 'Opdater Opgave', + 'approve_quote' => 'Godkend citat', + 'when_paid' => 'Når betalt', + 'expires_on' => 'Udløber på', + 'show_sidebar' => 'Vis sidebjælke', + 'hide_sidebar' => 'Skjul sidebjælke', + 'event_type' => 'Begivenhedstype', + 'copy' => 'Kopi', + 'must_be_online' => 'Genstart appen, når du har forbindelse til internettet', + 'crons_not_enabled' => 'Crons skal aktiveres', 'api_webhooks' => 'API Webhooks', - 'search_webhooks' => 'Search :count Webhooks', - 'search_webhook' => 'Search 1 Webhook', + 'search_webhooks' => 'Søg efter :count Webhooks', + 'search_webhook' => 'Søg 1 Webhook', 'webhook' => 'Webhook', 'webhooks' => 'Webhooks', - 'new_webhook' => 'New Webhook', - 'edit_webhook' => 'Edit Webhook', - 'created_webhook' => 'Successfully created webhook', - 'updated_webhook' => 'Successfully updated webhook', - 'archived_webhook' => 'Successfully archived webhook', - 'deleted_webhook' => 'Successfully deleted webhook', - 'removed_webhook' => 'Successfully removed webhook', - 'restored_webhook' => 'Successfully restored webhook', - 'search_tokens' => 'Search :count Tokens', - 'search_token' => 'Search 1 Token', - 'new_token' => 'New Token', - 'removed_token' => 'Successfully removed token', - 'restored_token' => 'Successfully restored token', - 'client_registration' => 'Client Registration', - 'client_registration_help' => 'Enable clients to self register in the portal', - 'customize_and_preview' => 'Customize & Preview', - 'search_document' => 'Search 1 Document', - 'search_design' => 'Search 1 Design', - 'search_invoice' => 'Search 1 Invoice', - 'search_client' => 'Search 1 Client', - 'search_product' => 'Search 1 Product', - 'search_quote' => 'Search 1 Quote', - 'search_credit' => 'Search 1 Credit', - 'search_vendor' => 'Search 1 Vendor', - 'search_user' => 'Search 1 User', - 'search_tax_rate' => 'Search 1 Tax Rate', - 'search_task' => 'Search 1 Tasks', - 'search_project' => 'Search 1 Project', - 'search_expense' => 'Search 1 Expense', - 'search_payment' => 'Search 1 Payment', - 'search_group' => 'Search 1 Group', - 'created_on' => 'Created On', - 'payment_status_-1' => 'Unapplied', - 'lock_invoices' => 'Lock Invoices', - 'show_table' => 'Show Table', - 'show_list' => 'Show List', - 'view_changes' => 'View Changes', - 'force_update' => 'Force Update', - 'force_update_help' => 'You are running the latest version but there may be pending fixes available.', - 'mark_paid_help' => 'Track the expense has been paid', - 'mark_invoiceable_help' => 'Enable the expense to be invoiced', - 'add_documents_to_invoice_help' => 'Make the documents visible to client', - 'convert_currency_help' => 'Set an exchange rate', - 'expense_settings' => 'Expense Settings', - 'clone_to_recurring' => 'Clone to Recurring', - 'crypto' => 'Crypto', - 'user_field' => 'User Field', - 'variables' => 'Variables', - 'show_password' => 'Show Password', - 'hide_password' => 'Hide Password', - 'copy_error' => 'Copy Error', - 'capture_card' => 'Capture Card', - 'auto_bill_enabled' => 'Auto Bill Enabled', - 'total_taxes' => 'Total Taxes', - 'line_taxes' => 'Line Taxes', - 'total_fields' => 'Total Fields', - 'stopped_recurring_invoice' => 'Successfully stopped recurring invoice', - 'started_recurring_invoice' => 'Successfully started recurring invoice', - 'resumed_recurring_invoice' => 'Successfully resumed recurring invoice', - 'gateway_refund' => 'Gateway Refund', - 'gateway_refund_help' => 'Process the refund with the payment gateway', - 'due_date_days' => 'Due Date', - 'paused' => 'Paused', - 'day_count' => 'Day :count', - 'first_day_of_the_month' => 'First Day of the Month', - 'last_day_of_the_month' => 'Last Day of the Month', - 'use_payment_terms' => 'Use Payment Terms', - 'endless' => 'Endless', - 'next_send_date' => 'Next Send Date', - 'remaining_cycles' => 'Remaining Cycles', - 'created_recurring_invoice' => 'Successfully created recurring invoice', - 'updated_recurring_invoice' => 'Successfully updated recurring invoice', - 'removed_recurring_invoice' => 'Successfully removed recurring invoice', - 'search_recurring_invoice' => 'Search 1 Recurring Invoice', - 'search_recurring_invoices' => 'Search :count Recurring Invoices', - 'send_date' => 'Send Date', + 'new_webhook' => 'Ny Webhook', + 'edit_webhook' => 'Redigér Webhook', + 'created_webhook' => 'Succesfuldt oprettet webhook', + 'updated_webhook' => 'Succesfuldt opdateret webhook', + 'archived_webhook' => 'Succesfuldt arkiveret webhook', + 'deleted_webhook' => 'Succesfuldt slettet webhook', + 'removed_webhook' => 'Succesfuldt fjernet webhook', + 'restored_webhook' => 'Succesfuldt genskabt webhook', + 'search_tokens' => 'Søg :count Tokens', + 'search_token' => 'Søg efter 1 token', + 'new_token' => 'Ny token', + 'removed_token' => 'Succesfuldt fjernet token', + 'restored_token' => 'Succesfuldt genskabt token', + 'client_registration' => 'Klient', + 'client_registration_help' => 'Giv Klienter mulighed for selv at registrere sig i portalen', + 'customize_and_preview' => 'Tilpas & Preview', + 'search_document' => 'Søg i 1 dokument', + 'search_design' => 'Søg 1 Design', + 'search_invoice' => 'Søg 1 Faktura', + 'search_client' => 'Søg 1 Klient', + 'search_product' => 'Søg 1 produkt', + 'search_quote' => 'Søg 1 citat', + 'search_credit' => 'Søg 1 kredit', + 'search_vendor' => 'Søg 1 Sælger', + 'search_user' => 'Søg efter 1 Bruger', + 'search_tax_rate' => 'Søg 1 Skattesats', + 'search_task' => 'Søg 1 Opgaver', + 'search_project' => 'Søg 1 projekt', + 'search_expense' => 'Søg 1 Udgift', + 'search_payment' => 'Søg 1 Betaling', + 'search_group' => 'Søg 1 gruppe', + 'created_on' => 'oprettet On', + 'payment_status_-1' => 'Ikke anvendt', + 'lock_invoices' => 'Lock Fakturaer', + 'show_table' => 'Vis tabel', + 'show_list' => 'Vis liste', + 'view_changes' => 'Vis ændringer', + 'force_update' => 'Gennemtving opdatering', + 'force_update_help' => 'Du kører den seneste version, men der kan være afventende rettelser tilgængelige.', + 'mark_paid_help' => 'Spor Udgift er betalt', + 'mark_invoiceable_help' => 'Aktiver Udgift til at blive faktureret', + 'add_documents_to_invoice_help' => 'Gør dokumenterne synlige for Klient', + 'convert_currency_help' => 'Indstil en valutakurs', + 'expense_settings' => 'Udgift Indstillinger', + 'clone_to_recurring' => 'Klon til Gentagen', + 'crypto' => 'Krypto', + 'user_field' => 'Bruger Field', + 'variables' => 'Variabler', + 'show_password' => 'Vis adgangskode', + 'hide_password' => 'Skjul adgangskode', + 'copy_error' => 'Kopieringsfejl', + 'capture_card' => 'Capture kort', + 'auto_bill_enabled' => 'Automatisk fakturering aktiveret', + 'total_taxes' => 'Total skatter', + 'line_taxes' => 'Line Skatter', + 'total_fields' => 'Felter Total', + 'stopped_recurring_invoice' => 'Succesfuldt stoppede Gentagen Faktura', + 'started_recurring_invoice' => 'Succesfuldt startede Gentagen Faktura', + 'resumed_recurring_invoice' => 'Succesfuldt genoptog Gentagen Faktura', + 'gateway_refund' => 'Gateway refusion', + 'gateway_refund_help' => 'Behandle tilbagebetalingen med Betalingsgateway', + 'due_date_days' => 'Afleveringsdato', + 'paused' => 'Pause', + 'day_count' => 'Dag :count', + 'first_day_of_the_month' => 'Første dag i måneden', + 'last_day_of_the_month' => 'Sidste dag i måneden', + 'use_payment_terms' => 'Brug Betaling Betingelser', + 'endless' => 'Endeløs', + 'next_send_date' => 'Næste afsendelsesdato', + 'remaining_cycles' => 'Resterende cyklusser', + 'created_recurring_invoice' => 'Succesfuldt oprettet Gentagen Faktura', + 'updated_recurring_invoice' => 'Succesfuldt opdateret Gentagen Faktura', + 'removed_recurring_invoice' => 'Succesfuldt fjernet Gentagen Faktura', + 'search_recurring_invoice' => 'Søg 1 Gentagen Faktura', + 'search_recurring_invoices' => 'Søg :count Gentagen Fakturaer', + 'send_date' => 'Send dato', 'auto_bill_on' => 'Auto Bill On', - 'minimum_under_payment_amount' => 'Minimum Under Payment Amount', - 'allow_over_payment' => 'Allow Over Payment', - 'allow_over_payment_help' => 'Support paying extra to accept tips', - 'allow_under_payment' => 'Allow Under Payment', - 'allow_under_payment_help' => 'Support paying at minimum the partial/deposit amount', - 'test_mode' => 'Test Mode', - 'calculated_rate' => 'Calculated Rate', - 'default_task_rate' => 'Default Task Rate', - 'clear_cache' => 'Clear Cache', - 'sort_order' => 'Sort Order', + 'minimum_under_payment_amount' => 'Minimum Under Betaling Beløb', + 'allow_over_payment' => 'Tillad overbetaling', + 'allow_over_payment_help' => 'Support, der betaler ekstra for at modtage drikkepenge', + 'allow_under_payment' => 'Tillad underbetaling', + 'allow_under_payment_help' => 'Støtte betaling af minimum del-/depositum Beløb', + 'test_mode' => 'Test mode', + 'calculated_rate' => 'Beregnet rate', + 'default_task_rate' => 'Standard Opgave Rate', + 'clear_cache' => 'Ryd cache', + 'sort_order' => 'Sorteringsrækkefølge', 'task_status' => 'Status', - 'task_statuses' => 'Task Statuses', - 'new_task_status' => 'New Task Status', - 'edit_task_status' => 'Edit Task Status', - 'created_task_status' => 'Successfully created task status', - 'archived_task_status' => 'Successfully archived task status', - 'deleted_task_status' => 'Successfully deleted task status', - 'removed_task_status' => 'Successfully removed task status', - 'restored_task_status' => 'Successfully restored task status', - 'search_task_status' => 'Search 1 Task Status', - 'search_task_statuses' => 'Search :count Task Statuses', - 'show_tasks_table' => 'Show Tasks Table', - 'show_tasks_table_help' => 'Always show the tasks section when creating invoices', - 'invoice_task_timelog' => 'Invoice Task Timelog', - 'invoice_task_timelog_help' => 'Add time details to the invoice line items', - 'auto_start_tasks_help' => 'Start tasks before saving', - 'configure_statuses' => 'Configure Statuses', - 'task_settings' => 'Task Settings', - 'configure_categories' => 'Configure Categories', - 'edit_expense_category' => 'Edit Expense Category', - 'removed_expense_category' => 'Successfully removed expense category', - 'search_expense_category' => 'Search 1 Expense Category', - 'search_expense_categories' => 'Search :count Expense Categories', - 'use_available_credits' => 'Use Available Credits', - 'show_option' => 'Show Option', - 'negative_payment_error' => 'The credit amount cannot exceed the payment amount', - 'should_be_invoiced_help' => 'Enable the expense to be invoiced', - 'configure_gateways' => 'Configure Gateways', - 'payment_partial' => 'Partial Payment', - 'is_running' => 'Is Running', - 'invoice_currency_id' => 'Invoice Currency ID', - 'tax_name1' => 'Tax Name 1', - 'tax_name2' => 'Tax Name 2', - 'transaction_id' => 'Transaction ID', - 'invoice_late' => 'Invoice Late', - 'quote_expired' => 'Quote Expired', - 'recurring_invoice_total' => 'Invoice Total', - 'actions' => 'Actions', - 'expense_number' => 'Expense Number', - 'task_number' => 'Task Number', - 'project_number' => 'Project Number', - 'view_settings' => 'View Settings', - 'company_disabled_warning' => 'Warning: this company has not yet been activated', - 'late_invoice' => 'Late Invoice', - 'expired_quote' => 'Expired Quote', - 'remind_invoice' => 'Remind Invoice', - 'client_phone' => 'Client Phone', - 'required_fields' => 'Required Fields', - 'enabled_modules' => 'Enabled Modules', - 'activity_60' => ':contact viewed quote :quote', - 'activity_61' => ':user updated client :client', - 'activity_62' => ':user updated vendor :vendor', - 'activity_63' => ':user emailed first reminder for invoice :invoice to :contact', - 'activity_64' => ':user emailed second reminder for invoice :invoice to :contact', - 'activity_65' => ':user emailed third reminder for invoice :invoice to :contact', - 'activity_66' => ':user emailed endless reminder for invoice :invoice to :contact', - 'expense_category_id' => 'Expense Category ID', - 'view_licenses' => 'View Licenses', - 'fullscreen_editor' => 'Fullscreen Editor', + 'task_statuses' => 'Opgave Statusser', + 'new_task_status' => 'Ny Opgave Status', + 'edit_task_status' => 'Redigér Opgave Status', + 'created_task_status' => 'Succesfuldt oprettet Opgave status', + 'archived_task_status' => 'Succesfuldt arkiveret Opgave status', + 'deleted_task_status' => 'Succesfuldt slettet Opgave status', + 'removed_task_status' => 'Succesfuldt fjernet Opgave status', + 'restored_task_status' => 'Succesfuldt genskabt Opgave status', + 'search_task_status' => 'Søg 1 Opgave Status', + 'search_task_statuses' => 'Søg :count Opgave Statuss', + 'show_tasks_table' => 'Vis opgavetabellen', + 'show_tasks_table_help' => 'Vis altid opgaveafsnittet, når du opretter Fakturaer', + 'invoice_task_timelog' => 'Faktura Opgave Timelog', + 'invoice_task_timelog_help' => 'Tilføj tidsdetaljer til Faktura linjeposterne', + 'auto_start_tasks_help' => 'Start opgaver før du gemmer', + 'configure_statuses' => 'Konfigurer statusser', + 'task_settings' => 'Opgave Indstillinger', + 'configure_categories' => 'Konfigurer kategorier', + 'edit_expense_category' => 'Redigér Udgift Kategori', + 'removed_expense_category' => 'Succesfuldt fjernet Udgift kategori', + 'search_expense_category' => 'Søg 1 Udgift Kategori', + 'search_expense_categories' => 'Søg :count Udgift Kategorier', + 'use_available_credits' => 'Brug tilgængelige kreditter', + 'show_option' => 'Vis indstilling', + 'negative_payment_error' => 'Kreditten Beløb kan ikke overstige Betaling Beløb', + 'should_be_invoiced_help' => 'Aktiver Udgift til at blive faktureret', + 'configure_gateways' => 'Konfigurer gateways', + 'payment_partial' => 'Delvis Betaling', + 'is_running' => 'Løber', + 'invoice_currency_id' => 'Faktura Valuta ID', + 'tax_name1' => 'Skattenavn 1', + 'tax_name2' => 'Skattenavn 2', + 'transaction_id' => 'Transaktions ID', + 'invoice_late' => 'Faktura Sen', + 'quote_expired' => 'Citat udløbet', + 'recurring_invoice_total' => 'Faktura Total', + 'actions' => 'Handlinger', + 'expense_number' => 'Udgift', + 'task_number' => 'Opgave nummer', + 'project_number' => 'Projektnummer', + 'view_settings' => 'Vis Indstillinger', + 'company_disabled_warning' => 'Advarsel: dette firma er endnu ikke blevet aktiveret', + 'late_invoice' => 'Sen Faktura', + 'expired_quote' => 'Udløbet citat', + 'remind_invoice' => 'Mind Faktura', + 'client_phone' => 'Klient Telefon', + 'required_fields' => 'krævede felter', + 'enabled_modules' => 'Aktiverede moduler', + 'activity_60' => ':contact set citat :quote', + 'activity_61' => ':user opdateret Klient :client', + 'activity_62' => ':user opdateret Sælger :vendor', + 'activity_63' => ':user e-mailede den første påmindelse for Faktura :invoice til :contact', + 'activity_64' => ':user e-mailede anden påmindelse for Faktura :invoice til :contact', + 'activity_65' => ':user har sendt en tredje påmindelse til Faktura :invoice via e-mail til :contact', + 'activity_66' => ':user e-mailede en endeløs påmindelse om Faktura :invoice til :contact', + 'expense_category_id' => 'Udgift Kategori ID', + 'view_licenses' => 'Vis licenser', + 'fullscreen_editor' => 'Fuldskærms-editor', 'sidebar_editor' => 'Sidebar Editor', - 'please_type_to_confirm' => 'Please type ":value" to confirm', - 'purge' => 'Purge', - 'clone_to' => 'Clone To', - 'clone_to_other' => 'Clone to Other', - 'labels' => 'Labels', - 'add_custom' => 'Add Custom', - 'payment_tax' => 'Payment Tax', - 'white_label' => 'White Label', - 'sent_invoices_are_locked' => 'Sent invoices are locked', - 'paid_invoices_are_locked' => 'Paid invoices are locked', - 'source_code' => 'Source Code', - 'app_platforms' => 'App Platforms', - 'archived_task_statuses' => 'Successfully archived :value task statuses', - 'deleted_task_statuses' => 'Successfully deleted :value task statuses', - 'restored_task_statuses' => 'Successfully restored :value task statuses', - 'deleted_expense_categories' => 'Successfully deleted expense :value categories', - 'restored_expense_categories' => 'Successfully restored expense :value categories', - 'archived_recurring_invoices' => 'Successfully archived recurring :value invoices', - 'deleted_recurring_invoices' => 'Successfully deleted recurring :value invoices', - 'restored_recurring_invoices' => 'Successfully restored recurring :value invoices', - 'archived_webhooks' => 'Successfully archived :value webhooks', - 'deleted_webhooks' => 'Successfully deleted :value webhooks', - 'removed_webhooks' => 'Successfully removed :value webhooks', - 'restored_webhooks' => 'Successfully restored :value webhooks', - 'api_docs' => 'API Docs', - 'archived_tokens' => 'Successfully archived :value tokens', - 'deleted_tokens' => 'Successfully deleted :value tokens', - 'restored_tokens' => 'Successfully restored :value tokens', - 'archived_payment_terms' => 'Successfully archived :value payment terms', - 'deleted_payment_terms' => 'Successfully deleted :value payment terms', - 'restored_payment_terms' => 'Successfully restored :value payment terms', - 'archived_designs' => 'Successfully archived :value designs', - 'deleted_designs' => 'Successfully deleted :value designs', - 'restored_designs' => 'Successfully restored :value designs', - 'restored_credits' => 'Successfully restored :value credits', - 'archived_users' => 'Successfully archived :value users', - 'deleted_users' => 'Successfully deleted :value users', - 'removed_users' => 'Successfully removed :value users', - 'restored_users' => 'Successfully restored :value users', - 'archived_tax_rates' => 'Successfully archived :value tax rates', - 'deleted_tax_rates' => 'Successfully deleted :value tax rates', - 'restored_tax_rates' => 'Successfully restored :value tax rates', - 'archived_company_gateways' => 'Successfully archived :value gateways', - 'deleted_company_gateways' => 'Successfully deleted :value gateways', - 'restored_company_gateways' => 'Successfully restored :value gateways', - 'archived_groups' => 'Successfully archived :value groups', - 'deleted_groups' => 'Successfully deleted :value groups', - 'restored_groups' => 'Successfully restored :value groups', - 'archived_documents' => 'Successfully archived :value documents', - 'deleted_documents' => 'Successfully deleted :value documents', - 'restored_documents' => 'Successfully restored :value documents', - 'restored_vendors' => 'Successfully restored :value vendors', - 'restored_expenses' => 'Successfully restored :value expenses', - 'restored_tasks' => 'Successfully restored :value tasks', - 'restored_projects' => 'Successfully restored :value projects', - 'restored_products' => 'Successfully restored :value products', - 'restored_clients' => 'Successfully restored :value clients', - 'restored_invoices' => 'Successfully restored :value invoices', - 'restored_payments' => 'Successfully restored :value payments', - 'restored_quotes' => 'Successfully restored :value quotes', - 'update_app' => 'Update App', - 'started_import' => 'Successfully started import', - 'duplicate_column_mapping' => 'Duplicate column mapping', - 'uses_inclusive_taxes' => 'Uses Inclusive Taxes', - 'is_amount_discount' => 'Is Amount Discount', - 'map_to' => 'Map To', - 'first_row_as_column_names' => 'Use first row as column names', - 'no_file_selected' => 'No File Selected', - 'import_type' => 'Import Type', - 'draft_mode' => 'Draft Mode', - 'draft_mode_help' => 'Preview updates faster but is less accurate', - 'show_product_discount' => 'Show Product Discount', - 'show_product_discount_help' => 'Display a line item discount field', - 'tax_name3' => 'Tax Name 3', - 'debug_mode_is_enabled' => 'Debug mode is enabled', - 'debug_mode_is_enabled_help' => 'Warning: it is intended for use on local machines, it can leak credentials. Click to learn more.', - 'running_tasks' => 'Running Tasks', - 'recent_tasks' => 'Recent Tasks', - 'recent_expenses' => 'Recent Expenses', - 'upcoming_expenses' => 'Upcoming Expenses', - 'search_payment_term' => 'Search 1 Payment Term', - 'search_payment_terms' => 'Search :count Payment Terms', - 'save_and_preview' => 'Save and Preview', - 'save_and_email' => 'Save and Email', - 'converted_balance' => 'Converted Balance', - 'is_sent' => 'Is Sent', - 'document_upload' => 'Document Upload', - 'document_upload_help' => 'Enable clients to upload documents', - 'expense_total' => 'Expense Total', - 'enter_taxes' => 'Enter Taxes', - 'by_rate' => 'By Rate', - 'by_amount' => 'By Amount', - 'enter_amount' => 'Enter Amount', - 'before_taxes' => 'Before Taxes', - 'after_taxes' => 'After Taxes', - 'color' => 'Color', - 'show' => 'Show', - 'empty_columns' => 'Empty Columns', - 'project_name' => 'Project Name', - 'counter_pattern_error' => 'To use :client_counter please add either :client_number or :client_id_number to prevent conflicts', - 'this_quarter' => 'This Quarter', - 'to_update_run' => 'To update run', - 'registration_url' => 'Registration URL', - 'show_product_cost' => 'Show Product Cost', - 'complete' => 'Complete', - 'next' => 'Next', - 'next_step' => 'Next step', - 'notification_credit_sent_subject' => 'Credit :invoice was sent to :client', - 'notification_credit_viewed_subject' => 'Credit :invoice was viewed by :client', - 'notification_credit_sent' => 'The following client :client was emailed Credit :invoice for :amount.', - 'notification_credit_viewed' => 'The following client :client viewed Credit :credit for :amount.', - 'reset_password_text' => 'Enter your email to reset your password.', - 'password_reset' => 'Password reset', - 'account_login_text' => 'Welcome! Glad to see you.', - 'request_cancellation' => 'Request cancellation', - 'delete_payment_method' => 'Delete Payment Method', - 'about_to_delete_payment_method' => 'You are about to delete the payment method.', - 'action_cant_be_reversed' => 'Action can\'t be reversed', - 'profile_updated_successfully' => 'The profile has been updated successfully.', - 'currency_ethiopian_birr' => 'Ethiopian Birr', - 'client_information_text' => 'Use a permanent address where you can receive mail.', - 'status_id' => 'Invoice Status', - 'email_already_register' => 'This email is already linked to an account', - 'locations' => 'Locations', - 'freq_indefinitely' => 'Indefinitely', - 'cycles_remaining' => 'Cycles remaining', - 'i_understand_delete' => 'I understand, delete', - 'download_files' => 'Download Files', - 'download_timeframe' => 'Use this link to download your files, the link will expire in 1 hour.', - 'new_signup' => 'New Signup', - 'new_signup_text' => 'A new account has been created by :user - :email - from IP address: :ip', - 'notification_payment_paid_subject' => 'Payment was made by :client', - 'notification_partial_payment_paid_subject' => 'Partial payment was made by :client', - 'notification_payment_paid' => 'A payment of :amount was made by client :client towards :invoice', - 'notification_partial_payment_paid' => 'A partial payment of :amount was made by client :client towards :invoice', - 'notification_bot' => 'Notification Bot', - 'invoice_number_placeholder' => 'Invoice # :invoice', - 'entity_number_placeholder' => ':entity # :entity_number', - 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', - 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', - 'setup' => 'Setup', - 'quick_overview_statistics' => 'Quick overview & statistics', - 'update_your_personal_info' => 'Update your personal information', - 'name_website_logo' => 'Name, website & logo', - 'make_sure_use_full_link' => 'Make sure you use full link to your site', - 'personal_address' => 'Personal address', - 'enter_your_personal_address' => 'Enter your personal address', - 'enter_your_shipping_address' => 'Enter your shipping address', - 'list_of_invoices' => 'List of invoices', - 'with_selected' => 'With selected', - 'invoice_still_unpaid' => 'This invoice is still not paid. Click the button to complete the payment', - 'list_of_recurring_invoices' => 'List of recurring invoices', - 'details_of_recurring_invoice' => 'Here are some details about recurring invoice', - 'cancellation' => 'Cancellation', - 'about_cancellation' => 'In case you want to stop the recurring invoice, please click to request the cancellation.', - 'cancellation_warning' => 'Warning! You are requesting a cancellation of this service. Your service may be cancelled with no further notification to you.', - 'cancellation_pending' => 'Cancellation pending, we\'ll be in touch!', - 'list_of_payments' => 'List of payments', - 'payment_details' => 'Details of the payment', - 'list_of_payment_invoices' => 'List of invoices affected by the payment', - 'list_of_payment_methods' => 'List of payment methods', - 'payment_method_details' => 'Details of payment method', - 'permanently_remove_payment_method' => 'Permanently remove this payment method.', - 'warning_action_cannot_be_reversed' => 'Warning! This action can not be reversed!', - 'confirmation' => 'Confirmation', - 'list_of_quotes' => 'Quotes', - 'waiting_for_approval' => 'Waiting for approval', - 'quote_still_not_approved' => 'This quote is still not approved', + 'please_type_to_confirm' => 'Indtast venligst " :value " for at bekræfte', + 'purge' => 'Udrensning', + 'clone_to' => 'Klon Til', + 'clone_to_other' => 'Klon til Andet', + 'labels' => 'Etiketter', + 'add_custom' => 'Tilføj Speciel', + 'payment_tax' => 'Betaling Skat', + 'white_label' => 'Hvidmærke', + 'sent_invoices_are_locked' => 'Sendte Fakturaer er låst', + 'paid_invoices_are_locked' => 'Betalte Fakturaer er låst', + 'source_code' => 'Kildekode', + 'app_platforms' => 'App-platforme', + 'archived_task_statuses' => 'Succesfuldt arkiveret :value Opgave statusser', + 'deleted_task_statuses' => 'Succesfuldt slettet :value Opgave statusser', + 'restored_task_statuses' => 'Succesfuldt genskabt :value Opgave statusser', + 'deleted_expense_categories' => 'Succesfuldt slettet Udgift :value kategorier', + 'restored_expense_categories' => 'Succesfuldt genskabt Udgift :value kategorier', + 'archived_recurring_invoices' => 'Succesfuldt arkiveret Gentagen :value Fakturaer', + 'deleted_recurring_invoices' => 'Succesfuldt slettet Gentagen :value Fakturaer', + 'restored_recurring_invoices' => 'Succesfuldt genskabt Gentagen :value Fakturaer', + 'archived_webhooks' => 'Succesfuldt arkiveret :value webhooks', + 'deleted_webhooks' => 'Succesfuldt slettet :value webhooks', + 'removed_webhooks' => 'Succesfuldt fjernet :value webhooks', + 'restored_webhooks' => 'Succesfuldt genskabt :value webhooks', + 'api_docs' => 'API-dokumenter', + 'archived_tokens' => 'Succesfuldt arkiveret :value tokens', + 'deleted_tokens' => 'Succesfuldt slettet :value tokens', + 'restored_tokens' => 'Succesfuldt genskabt :value tokens', + 'archived_payment_terms' => 'Succesfuldt arkiveret :value Betaling Betingelser', + 'deleted_payment_terms' => 'Succesfuldt slettet :value Betaling Betingelser', + 'restored_payment_terms' => 'Succesfuldt genskabt :value Betaling Betingelser', + 'archived_designs' => 'Succesfuldt arkiveret :value designs', + 'deleted_designs' => 'Succesfuldt slettet :value designs', + 'restored_designs' => 'Succesfuldt genskabt :value designs', + 'restored_credits' => 'Succesfuldt genskabt :value credits', + 'archived_users' => 'Succesfuldt arkiveret :value brugere', + 'deleted_users' => 'Succesfuldt slettet :value brugere', + 'removed_users' => 'Succesfuldt fjernede :value brugere', + 'restored_users' => 'Succesfuldt genskabt :value brugere', + 'archived_tax_rates' => 'Succesfuldt arkiveret :value skattesatser', + 'deleted_tax_rates' => 'Succesfuldt slettet :value skattesatser', + 'restored_tax_rates' => 'Succesfuldt genskabt :value skattesatser', + 'archived_company_gateways' => 'Succesfuldt arkiveret :value gateways', + 'deleted_company_gateways' => 'Succesfuldt slettet :value gateways', + 'restored_company_gateways' => 'Succesfuldt genskabt :value gateways', + 'archived_groups' => 'Succesfuldt arkiveret :value grupper', + 'deleted_groups' => 'Succesfuldt slettet :value grupper', + 'restored_groups' => 'Succesfuldt genskabt :value grupper', + 'archived_documents' => 'Succesfuldt arkiveret :value dokumenter', + 'deleted_documents' => 'Succesfuldt slettet :value dokumenter', + 'restored_documents' => 'Succesfuldt genskabt :value dokumenter', + 'restored_vendors' => 'Succesfuldt genskabt :value sælgere', + 'restored_expenses' => 'Succesfuldt genskabt :value udgifter', + 'restored_tasks' => 'Succesfuldt genskabt :value opgaver', + 'restored_projects' => 'Succesfuldt genskabt :value projekter', + 'restored_products' => 'Succesfuldt genskabt :value produkter', + 'restored_clients' => 'Succesfuldt genskabt :value Klienter', + 'restored_invoices' => 'Succesfuldt genskabt :value Fakturaer', + 'restored_payments' => 'Succesfuldt genskabt :value Betalinger', + 'restored_quotes' => 'Succesfuldt genskabt :value citater', + 'update_app' => 'Opdater app', + 'started_import' => 'Succesfuldt startet import', + 'duplicate_column_mapping' => 'Dubleret kolonnetilknytning', + 'uses_inclusive_taxes' => 'Bruger inklusive skatter', + 'is_amount_discount' => 'Er Beløb Rabat', + 'map_to' => 'Kort til', + 'first_row_as_column_names' => 'Brug første række som kolonnenavne', + 'no_file_selected' => 'Ingen fil valgt', + 'import_type' => 'Importtype', + 'draft_mode' => 'Udkasttilstand', + 'draft_mode_help' => 'Forhåndsvisning opdateres hurtigere, men er mindre nøjagtig', + 'show_product_discount' => 'Vis produktrabat', + 'show_product_discount_help' => 'Vis et linjevarerabatfelt', + 'tax_name3' => 'Skattenavn 3', + 'debug_mode_is_enabled' => 'Debug-tilstand er aktiveret', + 'debug_mode_is_enabled_help' => 'Advarsel: det er beregnet til brug på lokale maskiner, det kan lække legitimationsoplysninger. Klik for at lære mere.', + 'running_tasks' => 'Løbende opgaver', + 'recent_tasks' => 'Seneste opgaver', + 'recent_expenses' => 'Seneste Udgifter', + 'upcoming_expenses' => 'Kommende Udgifter', + 'search_payment_term' => 'Søg 1 Betaling Term', + 'search_payment_terms' => 'Søg :count Betaling Betingelser', + 'save_and_preview' => 'Gem og Preview', + 'save_and_email' => 'Gem og e-mail', + 'converted_balance' => 'Konverteret saldo', + 'is_sent' => 'Er sendt', + 'document_upload' => 'Dokument upload', + 'document_upload_help' => 'Aktiver Klienter for at uploade dokumenter', + 'expense_total' => 'Udgift Total', + 'enter_taxes' => 'Indtast Skatter', + 'by_rate' => 'Efter sats', + 'by_amount' => 'Ved Beløb', + 'enter_amount' => 'Indtast Beløb', + 'before_taxes' => 'Før skat', + 'after_taxes' => 'Efter skat', + 'color' => 'Farve', + 'show' => 'At vise', + 'empty_columns' => 'Tomme kolonner', + 'project_name' => 'Projekt navn', + 'counter_pattern_error' => 'For at bruge :client _counter skal du Tilføj enten :client _number eller :client _id_number for at forhindre konflikter', + 'this_quarter' => 'Dette Kvartal', + 'to_update_run' => 'Kør for at opdatere', + 'registration_url' => 'Registrerings-URL', + 'show_product_cost' => 'Vis produktomkostninger', + 'complete' => 'Komplet', + 'next' => 'Næste', + 'next_step' => 'Næste skridt', + 'notification_credit_sent_subject' => 'Kredit :invoice blev sendt til :client', + 'notification_credit_viewed_subject' => 'Kredit :invoice blev set af :client', + 'notification_credit_sent' => 'Følgende Klient :client blev sendt via e-mail Kredit :invoice for :amount .', + 'notification_credit_viewed' => 'Følgende Klient :client så Kredit :credit for :amount .', + 'reset_password_text' => 'Indtast din e-mail for at nulstille din adgangskode.', + 'password_reset' => 'Nulstil kodeord', + 'account_login_text' => 'Velkommen! Glad for at se dig.', + 'request_cancellation' => 'Bede om afmeldelse', + 'delete_payment_method' => 'Slet Betaling Metode', + 'about_to_delete_payment_method' => 'Du er ved at Slet Betaling -metoden.', + 'action_cant_be_reversed' => 'Handlingen kan ikke vendes', + 'profile_updated_successfully' => 'Profilen er opdateret Succesfuldt .', + 'currency_ethiopian_birr' => 'Etiopisk Birr', + 'client_information_text' => 'Brug en fast adresse, hvor du kan modtage post.', + 'status_id' => 'Faktura Status', + 'email_already_register' => 'Denne e-mail er allerede knyttet til en konto', + 'locations' => 'Placeringer', + 'freq_indefinitely' => 'På ubestemt tid', + 'cycles_remaining' => 'Cykler tilbage', + 'i_understand_delete' => 'Jeg forstår det, Slet', + 'download_files' => 'Download filer', + 'download_timeframe' => 'Brug dette link til at downloade dine filer, linket udløber om 1 time.', + 'new_signup' => 'Ny tilmelding', + 'new_signup_text' => 'En ny konto er blevet oprettet af :user - :email - fra IP-adresse: :ip', + 'notification_payment_paid_subject' => 'Betaling blev foretaget af :client', + 'notification_partial_payment_paid_subject' => 'Delvis Betaling blev foretaget af :client', + 'notification_payment_paid' => 'En Betaling på :amount blev foretaget af Klient :client mod :invoice', + 'notification_partial_payment_paid' => 'En delvis Betaling på :amount blev foretaget af Klient :client mod :invoice', + 'notification_bot' => 'Notifikationsbot', + 'invoice_number_placeholder' => 'Faktura # :invoice', + 'entity_number_placeholder' => ':entity # :entity _nummer', + 'email_link_not_working' => 'Hvis knappen ovenfor ikke virker for dig, så klik venligst på linket', + 'display_log' => 'Vis log', + 'send_fail_logs_to_our_server' => 'Rapporter fejl i realtid', + 'setup' => 'Opsætning', + 'quick_overview_statistics' => 'Hurtigt overblik og statistik', + 'update_your_personal_info' => 'Opdater dine personlige oplysninger', + 'name_website_logo' => 'Navn, hjemmeside og logo', + 'make_sure_use_full_link' => 'Sørg for at bruge hele linket til dit websted', + 'personal_address' => 'Personlig adresse', + 'enter_your_personal_address' => 'Indtast din personlige adresse', + 'enter_your_shipping_address' => 'Indtast din leveringsadresse', + 'list_of_invoices' => 'Liste over Fakturaer', + 'with_selected' => 'Med valgt', + 'invoice_still_unpaid' => 'Denne Faktura er stadig ikke betalt. Klik på knappen for at gennemføre Betaling', + 'list_of_recurring_invoices' => 'Liste over Gentagen Fakturaer', + 'details_of_recurring_invoice' => 'Her er nogle detaljer om Gentagen Faktura', + 'cancellation' => 'Aflysning', + 'about_cancellation' => 'Hvis du ønsker at stoppe Gentagen Faktura , skal du klikke for at anmode om annullering.', + 'cancellation_warning' => 'Advarsel! Du anmoder om en annullering af denne service. Din tjeneste kan blive annulleret uden yderligere meddelelse til dig.', + 'cancellation_pending' => 'Aflysning afventer, vi kontakter dig!', + 'list_of_payments' => 'Liste over Betalinger', + 'payment_details' => 'Detaljer om Betaling', + 'list_of_payment_invoices' => 'Liste over Fakturaer berørt af Betaling', + 'list_of_payment_methods' => 'Liste over Betaling', + 'payment_method_details' => 'Detaljer om Betaling', + 'permanently_remove_payment_method' => 'Fjern denne Betaling permanent.', + 'warning_action_cannot_be_reversed' => 'Advarsel! Denne handling kan ikke vendes!', + 'confirmation' => 'Bekræftelse', + 'list_of_quotes' => 'Citater', + 'waiting_for_approval' => 'Venter på godkendelse', + 'quote_still_not_approved' => 'Dette citat er stadig ikke Godkendt', 'list_of_credits' => 'Credits', - 'required_extensions' => 'Required extensions', + 'required_extensions' => 'Nødvendige udvidelser', 'php_version' => 'PHP version', - 'writable_env_file' => 'Writable .env file', - 'env_not_writable' => '.env file is not writable by the current user.', + 'writable_env_file' => 'Skrivbar .env-fil', + 'env_not_writable' => '.env-filen kan ikke skrives af den aktuelle Bruger .', 'minumum_php_version' => 'Minimum PHP version', - 'satisfy_requirements' => 'Make sure all requirements are satisfied.', - 'oops_issues' => 'Oops, something does not look right!', - 'open_in_new_tab' => 'Open in new tab', - 'complete_your_payment' => 'Complete payment', - 'authorize_for_future_use' => 'Authorize payment method for future use', - 'page' => 'Page', - 'per_page' => 'Per page', - 'of' => 'Of', - 'view_credit' => 'View Credit', - 'to_view_entity_password' => 'To view the :entity you need to enter password.', - 'showing_x_of' => 'Showing :first to :last out of :total results', - 'no_results' => 'No results found.', - 'payment_failed_subject' => 'Payment failed for Client :client', - 'payment_failed_body' => 'A payment made by client :client failed with message :message', - 'register' => 'Register', - 'register_label' => 'Create your account in seconds', - 'password_confirmation' => 'Confirm your password', - 'verification' => 'Verification', - 'complete_your_bank_account_verification' => 'Before using a bank account it must be verified.', + 'satisfy_requirements' => 'Sørg for, at alle krav er opfyldt.', + 'oops_issues' => 'Ups, noget ser ikke rigtigt ud!', + 'open_in_new_tab' => 'Åbn i ny fane', + 'complete_your_payment' => 'Gennemfør Betaling', + 'authorize_for_future_use' => 'Godkend Betaling til fremtidig brug', + 'page' => 'Side', + 'per_page' => 'Per side', + 'of' => 'Af', + 'view_credit' => 'Vis kredit', + 'to_view_entity_password' => 'For at Vis :entity skal du Indtast adgangskoden.', + 'showing_x_of' => 'Viser resultater :first til :last ud af :total', + 'no_results' => 'Ingen resultater fundet.', + 'payment_failed_subject' => 'Betaling mislykkedes for Klient :client', + 'payment_failed_body' => 'En Betaling foretaget af Klient :client mislykkedes med Besked :message', + 'register' => 'Tilmeld', + 'register_label' => 'Opret din konto på få sekunder', + 'password_confirmation' => 'Bekræft dit kodeord', + 'verification' => 'Verifikation', + 'complete_your_bank_account_verification' => 'Før du bruger en bankkonto, skal den bekræftes.', 'checkout_com' => 'Checkout.com', - 'footer_label' => 'Copyright © :year :company.', - 'credit_card_invalid' => 'Provided credit card number is not valid.', - 'month_invalid' => 'Provided month is not valid.', - 'year_invalid' => 'Provided year is not valid.', - 'https_required' => 'HTTPS is required, form will fail', - 'if_you_need_help' => 'If you need help you can post to our', - 'update_password_on_confirm' => 'After updating password, your account will be confirmed.', - 'bank_account_not_linked' => 'To pay with a bank account, first you have to add it as payment method.', - 'application_settings_label' => 'Let\'s store basic information about your Invoice Ninja!', - 'recommended_in_production' => 'Highly recommended in production', - 'enable_only_for_development' => 'Enable only for development', + 'footer_label' => 'Copyright © :year :company .', + 'credit_card_invalid' => 'Det angivne kreditkortnummer er ikke gyldigt.', + 'month_invalid' => 'Forudsat måned er ikke gyldig.', + 'year_invalid' => 'Forudsat år er ikke gyldigt.', + 'https_required' => 'HTTPS er påkrævet, formularen mislykkes', + 'if_you_need_help' => 'Hvis du har brug for hjælp, kan du skrive til vores', + 'update_password_on_confirm' => 'Efter opdatering af adgangskoden vil din konto blive bekræftet.', + 'bank_account_not_linked' => 'For at betale med en bankkonto skal du først Tilføj den som Betaling .', + 'application_settings_label' => 'Lad os gemme grundlæggende oplysninger om din Faktura Ninja!', + 'recommended_in_production' => 'Kan varmt anbefales i produktionen', + 'enable_only_for_development' => 'Aktiver kun for udvikling', 'test_pdf' => 'Test PDF', - 'checkout_authorize_label' => 'Checkout.com can be can saved as payment method for future use, once you complete your first transaction. Don\'t forget to check "Store credit card details" during payment process.', - 'sofort_authorize_label' => 'Bank account (SOFORT) can be can saved as payment method for future use, once you complete your first transaction. Don\'t forget to check "Store payment details" during payment process.', + 'checkout_authorize_label' => 'Checkout.com kan gemmes som Betaling til fremtidig brug, når du har gennemført din første transaktion. Glem ikke at tjekke "Gem kreditkortoplysninger" under Betaling .', + 'sofort_authorize_label' => 'Bankkonto (SOFORT) kan gemmes som Betaling til fremtidig brug, når du har gennemført din første transaktion. Glem ikke at tjekke "Store Betaling detaljer" under Betaling .', 'node_status' => 'Node status', 'npm_status' => 'NPM status', - 'node_status_not_found' => 'I could not find Node anywhere. Is it installed?', - 'npm_status_not_found' => 'I could not find NPM anywhere. Is it installed?', - 'locked_invoice' => 'This invoice is locked and unable to be modified', + 'node_status_not_found' => 'Jeg kunne ikke finde Node nogen steder. Er det installeret?', + 'npm_status_not_found' => 'Jeg kunne ikke finde NPM nogen steder. Er det installeret?', + 'locked_invoice' => 'Denne Faktura er låst og kan ikke ændres', 'downloads' => 'Downloads', - 'resource' => 'Resource', - 'document_details' => 'Details about the document', + 'resource' => 'Ressource', + 'document_details' => 'Detaljer om dokumentet', 'hash' => 'Hash', - 'resources' => 'Resources', - 'allowed_file_types' => 'Allowed file types:', - 'common_codes' => 'Common codes and their meanings', - 'payment_error_code_20087' => '20087: Bad Track Data (invalid CVV and/or expiry date)', - 'download_selected' => 'Download selected', - 'to_pay_invoices' => 'To pay invoices, you have to', - 'add_payment_method_first' => 'add payment method', - 'no_items_selected' => 'No items selected.', - 'payment_due' => 'Payment due', - 'account_balance' => 'Account Balance', - 'thanks' => 'Thanks', - 'minimum_required_payment' => 'Minimum required payment is :amount', - 'under_payments_disabled' => 'Company doesn\'t support under payments.', - 'over_payments_disabled' => 'Company doesn\'t support over payments.', - 'saved_at' => 'Saved at :time', - 'credit_payment' => 'Credit applied to Invoice :invoice_number', - 'credit_subject' => 'New credit :number from :account', - 'credit_message' => 'To view your credit for :amount, click the link below.', - 'payment_type_Crypto' => 'Cryptocurrency', - 'payment_type_Credit' => 'Credit', - 'store_for_future_use' => 'Store for future use', - 'pay_with_credit' => 'Pay with credit', - 'payment_method_saving_failed' => 'Payment method can\'t be saved for future use.', - 'pay_with' => 'Pay with', + 'resources' => 'Ressourcer', + 'allowed_file_types' => 'Tilladte filtyper:', + 'common_codes' => 'Fælles koder og deres betydninger', + 'payment_error_code_20087' => '20087: Dårlige spordata (ugyldig CVV og/eller udløbsdato)', + 'download_selected' => 'Download valgt', + 'to_pay_invoices' => 'For at betale Fakturaer skal du', + 'add_payment_method_first' => 'Tilføj Betaling', + 'no_items_selected' => 'Ingen elementer er valgt.', + 'payment_due' => 'Betaling forfalder', + 'account_balance' => 'Kontosaldo', + 'thanks' => 'Tak', + 'minimum_required_payment' => 'Minimum påkrævet Betaling er :amount', + 'under_payments_disabled' => 'Virksomheden understøtter ikke underbetalinger.', + 'over_payments_disabled' => 'Virksomheden understøtter ikke overbetalinger.', + 'saved_at' => 'Gemt på :time', + 'credit_payment' => 'Kredit påført Faktura :invoice _nummer', + 'credit_subject' => 'Ny kredit :number fra :account', + 'credit_message' => 'For at Vis din kredit for :amount skal du klikke på linket nedenfor.', + 'payment_type_Crypto' => 'Kryptovaluta', + 'payment_type_Credit' => 'Kredit', + 'store_for_future_use' => 'Opbevares til fremtidig brug', + 'pay_with_credit' => 'Betal med kredit', + 'payment_method_saving_failed' => 'Betaling kan ikke gemmes til fremtidig brug.', + 'pay_with' => 'Betal med', 'n/a' => 'N/A', - 'by_clicking_next_you_accept_terms' => 'By clicking "Next step" you accept terms.', - 'not_specified' => 'Not specified', - 'before_proceeding_with_payment_warning' => 'Before proceeding with payment, you have to fill following fields', - 'after_completing_go_back_to_previous_page' => 'After completing, go back to previous page.', - 'pay' => 'Pay', - 'instructions' => 'Instructions', - 'notification_invoice_reminder1_sent_subject' => 'Reminder 1 for Invoice :invoice was sent to :client', - 'notification_invoice_reminder2_sent_subject' => 'Reminder 2 for Invoice :invoice was sent to :client', - 'notification_invoice_reminder3_sent_subject' => 'Reminder 3 for Invoice :invoice was sent to :client', - 'notification_invoice_custom_sent_subject' => 'Custom reminder for Invoice :invoice was sent to :client', - 'notification_invoice_reminder_endless_sent_subject' => 'Endless reminder for Invoice :invoice was sent to :client', - 'assigned_user' => 'Assigned User', - 'setup_steps_notice' => 'To proceed to next step, make sure you test each section.', - 'setup_phantomjs_note' => 'Note about Phantom JS. Read more.', - 'minimum_payment' => 'Minimum Payment', - 'no_action_provided' => 'No action provided. If you believe this is wrong, please contact the support.', - 'no_payable_invoices_selected' => 'No payable invoices selected. Make sure you are not trying to pay draft invoice or invoice with zero balance due.', - 'required_payment_information' => 'Required payment details', - 'required_payment_information_more' => 'To complete a payment we need more details about you.', - 'required_client_info_save_label' => 'We will save this, so you don\'t have to enter it next time.', - 'notification_credit_bounced' => 'We were unable to deliver Credit :invoice to :contact. \n :error', - 'notification_credit_bounced_subject' => 'Unable to deliver Credit :invoice', - 'save_payment_method_details' => 'Save payment method details', - 'new_card' => 'New card', - 'new_bank_account' => 'New bank account', - 'company_limit_reached' => 'Limit of :limit companies per account.', - 'credits_applied_validation' => 'Total credits applied cannot be MORE than total of invoices', - 'credit_number_taken' => 'Credit number already taken', - 'credit_not_found' => 'Credit not found', - 'invoices_dont_match_client' => 'Selected invoices are not from a single client', - 'duplicate_credits_submitted' => 'Duplicate credits submitted.', - 'duplicate_invoices_submitted' => 'Duplicate invoices submitted.', - 'credit_with_no_invoice' => 'You must have an invoice set when using a credit in a payment', - 'client_id_required' => 'Client id is required', - 'expense_number_taken' => 'Expense number already taken', - 'invoice_number_taken' => 'Invoice number already taken', - 'payment_id_required' => 'Payment `id` required.', - 'unable_to_retrieve_payment' => 'Unable to retrieve specified payment', - 'invoice_not_related_to_payment' => 'Invoice id :invoice is not related to this payment', - 'credit_not_related_to_payment' => 'Credit id :credit is not related to this payment', - 'max_refundable_invoice' => 'Attempting to refund more than allowed for invoice id :invoice, maximum refundable amount is :amount', - 'refund_without_invoices' => 'Attempting to refund a payment with invoices attached, please specify valid invoice/s to be refunded.', - 'refund_without_credits' => 'Attempting to refund a payment with credits attached, please specify valid credits/s to be refunded.', - 'max_refundable_credit' => 'Attempting to refund more than allowed for credit :credit, maximum refundable amount is :amount', - 'project_client_do_not_match' => 'Project client does not match entity client', - 'quote_number_taken' => 'Quote number already taken', - 'recurring_invoice_number_taken' => 'Recurring Invoice number :number already taken', - 'user_not_associated_with_account' => 'User not associated with this account', - 'amounts_do_not_balance' => 'Amounts do not balance correctly.', - 'insufficient_applied_amount_remaining' => 'Insufficient applied amount remaining to cover payment.', - 'insufficient_credit_balance' => 'Insufficient balance on credit.', - 'one_or_more_invoices_paid' => 'One or more of these invoices have been paid', - 'invoice_cannot_be_refunded' => 'Invoice id :number cannot be refunded', - 'attempted_refund_failed' => 'Attempting to refund :amount only :refundable_amount available for refund', - 'user_not_associated_with_this_account' => 'This user is unable to be attached to this company. Perhaps they have already registered a user on another account?', - 'migration_completed' => 'Migration completed', - 'migration_completed_description' => 'Your migration has completed, please review your data after logging in.', - 'api_404' => '404 | Nothing to see here!', - 'large_account_update_parameter' => 'Cannot load a large account without a updated_at parameter', - 'no_backup_exists' => 'No backup exists for this activity', - 'company_user_not_found' => 'Company User record not found', - 'no_credits_found' => 'No credits found.', - 'action_unavailable' => 'The requested action :action is not available.', - 'no_documents_found' => 'No Documents Found', - 'no_group_settings_found' => 'No group settings found', - 'access_denied' => 'Insufficient privileges to access/modify this resource', - 'invoice_cannot_be_marked_paid' => 'Invoice cannot be marked as paid', - 'invoice_license_or_environment' => 'Invalid license, or invalid environment :environment', - 'route_not_available' => 'Route not available', - 'invalid_design_object' => 'Invalid custom design object', - 'quote_not_found' => 'Quote/s not found', - 'quote_unapprovable' => 'Unable to approve this quote as it has expired.', - 'scheduler_has_run' => 'Scheduler has run', - 'scheduler_has_never_run' => 'Scheduler has never run', - 'self_update_not_available' => 'Self update not available on this system.', - 'user_detached' => 'User detached from company', - 'create_webhook_failure' => 'Failed to create Webhook', - 'payment_message_extended' => 'Thank you for your payment of :amount for :invoice', - 'online_payments_minimum_note' => 'Note: Online payments are supported only if amount is bigger than $1 or currency equivalent.', - 'payment_token_not_found' => 'Payment token not found, please try again. If an issue still persist, try with another payment method', - 'vendor_address1' => 'Vendor Street', - 'vendor_address2' => 'Vendor Apt/Suite', - 'partially_unapplied' => 'Partially Unapplied', - 'select_a_gmail_user' => 'Please select a user authenticated with Gmail', - 'list_long_press' => 'List Long Press', - 'show_actions' => 'Show Actions', + 'by_clicking_next_you_accept_terms' => 'Ved at klikke på "Næste trin" accepterer du Betingelser .', + 'not_specified' => 'Ikke specificeret', + 'before_proceeding_with_payment_warning' => 'Før du fortsætter med Betaling , skal du udfylde følgende felter', + 'after_completing_go_back_to_previous_page' => 'Når du er færdig, skal du gå tilbage til forrige side.', + 'pay' => 'Betale', + 'instructions' => 'Instruktioner', + 'notification_invoice_reminder1_sent_subject' => 'Påmindelse 1 for Faktura :invoice blev sendt til :client', + 'notification_invoice_reminder2_sent_subject' => 'Påmindelse 2 for Faktura :invoice blev sendt til :client', + 'notification_invoice_reminder3_sent_subject' => 'Påmindelse 3 for Faktura :invoice blev sendt til :client', + 'notification_invoice_custom_sent_subject' => 'Speciel påmindelse for Faktura :invoice blev sendt til :client', + 'notification_invoice_reminder_endless_sent_subject' => 'Uendelig påmindelse om Faktura :invoice blev sendt til :client', + 'assigned_user' => 'Tildelt Bruger', + 'setup_steps_notice' => 'For at fortsætte til næste trin skal du sørge for at teste hver sektion.', + 'setup_phantomjs_note' => 'Bemærk om Phantom JS. Læs mere.', + 'minimum_payment' => 'Minimum Betaling', + 'no_action_provided' => 'Ingen handling angivet. Hvis du mener, at dette er forkert, bedes du kontakt supporten.', + 'no_payable_invoices_selected' => 'Ingen betaling Faktura er valgt. Sørg for, at du ikke forsøger at betale Faktura eller Faktura med nul forfalden saldo.', + 'required_payment_information' => 'Nødvendige Betaling', + 'required_payment_information_more' => 'For at gennemføre en Betaling har vi brug for flere oplysninger om dig.', + 'required_client_info_save_label' => 'Vi vil Gem dette, så du ikke behøver at Indtast det næste gang.', + 'notification_credit_bounced' => 'Vi var ikke i stand til at levere kredit :invoice til :contact . \n :error', + 'notification_credit_bounced_subject' => 'Kan ikke levere kredit :invoice', + 'save_payment_method_details' => 'Gem Betaling detaljer', + 'new_card' => 'Nyt kort', + 'new_bank_account' => 'Ny bankkonto', + 'company_limit_reached' => 'Grænse på :limit virksomheder pr. konto.', + 'credits_applied_validation' => 'Total kreditter kan ikke være MERE end Total af Fakturaer', + 'credit_number_taken' => 'Kreditnummer er allerede taget', + 'credit_not_found' => 'Kredit blev ikke fundet', + 'invoices_dont_match_client' => 'Udvalgte Fakturaer er ikke fra en enkelt Klient', + 'duplicate_credits_submitted' => 'Dublerede kreditter indsendt.', + 'duplicate_invoices_submitted' => 'Duplikat Fakturaer indsendt.', + 'credit_with_no_invoice' => 'Du skal have en Faktura indstillet, når du bruger en kredit i en Betaling', + 'client_id_required' => 'Klient -id er påkrævet', + 'expense_number_taken' => 'Udgift nummer allerede taget', + 'invoice_number_taken' => 'Faktura -nummeret er allerede taget', + 'payment_id_required' => 'Betaling `id` påkrævet.', + 'unable_to_retrieve_payment' => 'Kan ikke hente specificeret Betaling', + 'invoice_not_related_to_payment' => 'Faktura id :invoice er ikke relateret til denne Betaling', + 'credit_not_related_to_payment' => 'Kredit-id :credit er ikke relateret til denne Betaling', + 'max_refundable_invoice' => 'Forsøg på at refundere mere end tilladt for Faktura id :invoice , maksimalt refunderbart Beløb er :amount', + 'refund_without_invoices' => 'Forsøg på at tilbagebetale en Betaling med Faktura er vedhæftet, bedes du angive gyldige Faktura /s, der skal refunderes.', + 'refund_without_credits' => 'Forsøg på at tilbagebetale en Betaling med vedhæftede kreditter, bedes du angive gyldige kreditter, der skal refunderes.', + 'max_refundable_credit' => 'Forsøg på at refundere mere end tilladt for kredit :credit , maksimalt refunderbart Beløb er :amount', + 'project_client_do_not_match' => 'Project Klient matcher ikke Klient', + 'quote_number_taken' => 'Citatnummer er allerede taget', + 'recurring_invoice_number_taken' => 'Gentagen Faktura nummer :number allerede taget', + 'user_not_associated_with_account' => 'Bruger er ikke tilknyttet denne konto', + 'amounts_do_not_balance' => 'Beløbene balancerer ikke korrekt.', + 'insufficient_applied_amount_remaining' => 'Utilstrækkeligt anvendt Beløb tilbage til at dække Betaling .', + 'insufficient_credit_balance' => 'Utilstrækkelig saldo på kredit.', + 'one_or_more_invoices_paid' => 'En eller flere af disse Fakturaer er betalt', + 'invoice_cannot_be_refunded' => 'Faktura id :number kan ikke refunderes', + 'attempted_refund_failed' => 'Forsøg på at refundere :amount kun :refundable_amount tilgængelig for refusion', + 'user_not_associated_with_this_account' => 'Denne Bruger kan ikke knyttes til denne virksomhed. Måske har de allerede registreret en Bruger på en anden konto?', + 'migration_completed' => 'Migration afsluttet', + 'migration_completed_description' => 'Din migrering er fuldført. Gennemgå venligst dine data efter at have logget ind.', + 'api_404' => '404 | Intet at se her!', + 'large_account_update_parameter' => 'Kan ikke indlæse en stor konto uden en updated_at-parameter', + 'no_backup_exists' => 'Der findes ingen backup for denne aktivitet', + 'company_user_not_found' => 'Firma Bruger record ikke fundet', + 'no_credits_found' => 'Ingen kreditter fundet.', + 'action_unavailable' => 'Den anmodede handling :action er ikke tilgængelig.', + 'no_documents_found' => 'Ingen dokumenter fundet', + 'no_group_settings_found' => 'Ingen Indstillinger fundet', + 'access_denied' => 'Utilstrækkelige rettigheder til at få adgang til/ændre denne ressource', + 'invoice_cannot_be_marked_paid' => 'Faktura kan ikke markeres som betalt', + 'invoice_license_or_environment' => 'Ugyldig licens eller ugyldigt miljø :environment', + 'route_not_available' => 'Rute ikke tilgængelig', + 'invalid_design_object' => 'Ugyldigt Speciel', + 'quote_not_found' => 'Citat/er ikke fundet', + 'quote_unapprovable' => 'Kunne ikke godkende dette tilbud, da det er udløbet.', + 'scheduler_has_run' => 'Scheduler er kørt', + 'scheduler_has_never_run' => 'Scheduler har aldrig kørt', + 'self_update_not_available' => 'Selvopdatering er ikke tilgængelig på dette system.', + 'user_detached' => 'Bruger løsrevet fra selskabet', + 'create_webhook_failure' => 'Opret Webhook mislykkedes', + 'payment_message_extended' => 'Tak for din Betaling på :amount for :invoice', + 'online_payments_minimum_note' => 'Bemærk : Online Betalinger understøttes kun, hvis Beløb er større end $1 eller tilsvarende i valuta.', + 'payment_token_not_found' => 'Betaling blev ikke fundet, prøv venligst igen. Hvis et problem stadig fortsætter, kan du prøve med en anden Betaling', + 'vendor_address1' => 'Sælger Gade', + 'vendor_address2' => 'Sælger Apt/Suite', + 'partially_unapplied' => 'Delvist ikke anvendt', + 'select_a_gmail_user' => 'Vælg venligst en Bruger , der er godkendt med Gmail', + 'list_long_press' => 'Liste Langt tryk', + 'show_actions' => 'Vis handlinger', 'start_multiselect' => 'Start Multiselect', - 'email_sent_to_confirm_email' => 'An email has been sent to confirm the email address', - 'converted_paid_to_date' => 'Converted Paid to Date', - 'converted_credit_balance' => 'Converted Credit Balance', - 'converted_total' => 'Converted Total', - 'reply_to_name' => 'Reply-To Name', - 'payment_status_-2' => 'Partially Unapplied', - 'color_theme' => 'Color Theme', - 'start_migration' => 'Start Migration', - 'recurring_cancellation_request' => 'Request for recurring invoice cancellation from :contact', - 'recurring_cancellation_request_body' => ':contact from Client :client requested to cancel Recurring Invoice :invoice', - 'hello' => 'Hello', - 'group_documents' => 'Group documents', - 'quote_approval_confirmation_label' => 'Are you sure you want to approve this quote?', - 'migration_select_company_label' => 'Select companies to migrate', - 'force_migration' => 'Force migration', - 'require_password_with_social_login' => 'Require Password with Social Login', - 'stay_logged_in' => 'Stay Logged In', - 'session_about_to_expire' => 'Warning: Your session is about to expire', - 'count_hours' => ':count Hours', - 'count_day' => '1 Day', - 'count_days' => ':count Days', - 'web_session_timeout' => 'Web Session Timeout', - 'security_settings' => 'Security Settings', - 'resend_email' => 'Resend Email', - 'confirm_your_email_address' => 'Please confirm your email address', - 'freshbooks' => 'FreshBooks', + 'email_sent_to_confirm_email' => 'Der er sendt en e-mail for at bekræfte e-mail', + 'converted_paid_to_date' => 'Konverteret betalt til dato', + 'converted_credit_balance' => 'Konverteret kreditsaldo', + 'converted_total' => 'Omregnet Total', + 'reply_to_name' => 'Svar-til-navn', + 'payment_status_-2' => 'Delvis ikke anvendt', + 'color_theme' => 'Farvetema', + 'start_migration' => 'Start migrering', + 'recurring_cancellation_request' => 'Anmodning om Gentagen Faktura annullering fra :contact', + 'recurring_cancellation_request_body' => ':contact fra Klient :client anmodet til Afbryd Gentagen Faktura :invoice', + 'hello' => 'Hej', + 'group_documents' => 'Gruppe dokumenter', + 'quote_approval_confirmation_label' => 'Er du sikker på, at du vil godkende dette tilbud?', + 'migration_select_company_label' => 'Vælg virksomheder, der skal migreres', + 'force_migration' => 'Tving migration', + 'require_password_with_social_login' => 'Kræv adgangskode med socialt login', + 'stay_logged_in' => 'Forbliv logget ind', + 'session_about_to_expire' => 'Advarsel: Din session er ved at udløbe', + 'count_hours' => ':count Timer', + 'count_day' => '1 dag', + 'count_days' => ':count dage', + 'web_session_timeout' => 'Websession timeout', + 'security_settings' => 'Indstillinger', + 'resend_email' => 'Send e-mail igen', + 'confirm_your_email_address' => 'Bekræft venligst din e-mail', + 'freshbooks' => 'Friske bøger', 'invoice2go' => 'Invoice2go', - 'invoicely' => 'Invoicely', - 'waveaccounting' => 'Wave Accounting', + 'invoicely' => 'Faktura', + 'waveaccounting' => 'Wave regnskab', 'zoho' => 'Zoho', - 'accounting' => 'Accounting', - 'required_files_missing' => 'Please provide all CSVs.', - 'migration_auth_label' => 'Let\'s continue by authenticating.', - 'api_secret' => 'API secret', - 'migration_api_secret_notice' => 'You can find API_SECRET in the .env file or Invoice Ninja v5. If property is missing, leave field blank.', - 'billing_coupon_notice' => 'Your discount will be applied on the checkout.', - 'use_last_email' => 'Use last email', - 'activate_company' => 'Activate Company', - 'activate_company_help' => 'Enable emails, recurring invoices and notifications', - 'an_error_occurred_try_again' => 'An error occurred, please try again', - 'please_first_set_a_password' => 'Please first set a password', - 'changing_phone_disables_two_factor' => 'Warning: Changing your phone number will disable 2FA', - 'help_translate' => 'Help Translate', - 'please_select_a_country' => 'Please select a country', - 'disabled_two_factor' => 'Successfully disabled 2FA', - 'connected_google' => 'Successfully connected account', - 'disconnected_google' => 'Successfully disconnected account', - 'delivered' => 'Delivered', + 'accounting' => 'Regnskab', + 'required_files_missing' => 'Angiv alle CSV'er.', + 'migration_auth_label' => 'Lad os fortsætte med at godkende.', + 'api_secret' => 'API-hemmelighed', + 'migration_api_secret_notice' => 'Du kan finde API_SECRET i .env-filen eller Faktura Ninja v5. Hvis ejendom mangler, lad feltet stå tomt.', + 'billing_coupon_notice' => 'Din rabat vil blive anvendt ved kassen.', + 'use_last_email' => 'Brug sidste e-mail', + 'activate_company' => 'Aktiver virksomheden', + 'activate_company_help' => 'Aktiver e-mails, Gentagen Fakturaer og meddelelser', + 'an_error_occurred_try_again' => 'Der opstod en fejl, prøv venligst igen', + 'please_first_set_a_password' => 'Indstil venligst først en adgangskode', + 'changing_phone_disables_two_factor' => 'Advarsel: Ændring af dit Telefon vil deaktivere 2FA', + 'help_translate' => 'Hjælp til at oversætte', + 'please_select_a_country' => 'Vælg venligst et land', + 'disabled_two_factor' => 'Succesfuldt deaktiveret 2FA', + 'connected_google' => 'Succesfuldt forbundet konto', + 'disconnected_google' => 'Succesfuldt afbrudt konto', + 'delivered' => 'Leveret', 'spam' => 'Spam', - 'view_docs' => 'View Docs', - 'enter_phone_to_enable_two_factor' => 'Please provide a mobile phone number to enable two factor authentication', + 'view_docs' => 'Vis Docs', + 'enter_phone_to_enable_two_factor' => 'Angiv venligst et Telefon for at aktivere tofaktorautentificering', 'send_sms' => 'Send SMS', - 'sms_code' => 'SMS Code', - 'connect_google' => 'Connect Google', - 'disconnect_google' => 'Disconnect Google', - 'disable_two_factor' => 'Disable Two Factor', - 'invoice_task_datelog' => 'Invoice Task Datelog', - 'invoice_task_datelog_help' => 'Add date details to the invoice line items', - 'promo_code' => 'Promo code', - 'recurring_invoice_issued_to' => 'Recurring invoice issued to', - 'subscription' => 'Subscription', - 'new_subscription' => 'New Subscription', - 'deleted_subscription' => 'Successfully deleted subscription', - 'removed_subscription' => 'Successfully removed subscription', - 'restored_subscription' => 'Successfully restored subscription', - 'search_subscription' => 'Search 1 Subscription', - 'search_subscriptions' => 'Search :count Subscriptions', - 'subdomain_is_not_available' => 'Subdomain is not available', - 'connect_gmail' => 'Connect Gmail', - 'disconnect_gmail' => 'Disconnect Gmail', - 'connected_gmail' => 'Successfully connected Gmail', - 'disconnected_gmail' => 'Successfully disconnected Gmail', - 'update_fail_help' => 'Changes to the codebase may be blocking the update, you can run this command to discard the changes:', - 'client_id_number' => 'Client ID Number', - 'count_minutes' => ':count Minutes', - 'password_timeout' => 'Password Timeout', - 'shared_invoice_credit_counter' => 'Share Invoice/Credit Counter', - 'activity_80' => ':user created subscription :subscription', - 'activity_81' => ':user updated subscription :subscription', - 'activity_82' => ':user archived subscription :subscription', - 'activity_83' => ':user deleted subscription :subscription', - 'activity_84' => ':user restored subscription :subscription', - 'amount_greater_than_balance_v5' => 'The amount is greater than the invoice balance. You cannot overpay an invoice.', - 'click_to_continue' => 'Click to continue', - 'notification_invoice_created_body' => 'The following invoice :invoice was created for client :client for :amount.', - 'notification_invoice_created_subject' => 'Invoice :invoice was created for :client', - 'notification_quote_created_body' => 'The following quote :invoice was created for client :client for :amount.', - 'notification_quote_created_subject' => 'Quote :invoice was created for :client', - 'notification_credit_created_body' => 'The following credit :invoice was created for client :client for :amount.', - 'notification_credit_created_subject' => 'Credit :invoice was created for :client', - 'max_companies' => 'Maximum companies migrated', - 'max_companies_desc' => 'You have reached your maximum number of companies. Delete existing companies to migrate new ones.', - 'migration_already_completed' => 'Company already migrated', - 'migration_already_completed_desc' => 'Looks like you already migrated :company_name to the V5 version of the Invoice Ninja. In case you want to start over, you can force migrate to wipe existing data.', - 'payment_method_cannot_be_authorized_first' => 'This payment method can be can saved for future use, once you complete your first transaction. Don\'t forget to check "Store details" during payment process.', - 'new_account' => 'New account', - 'activity_100' => ':user created recurring invoice :recurring_invoice', - 'activity_101' => ':user updated recurring invoice :recurring_invoice', - 'activity_102' => ':user archived recurring invoice :recurring_invoice', - 'activity_103' => ':user deleted recurring invoice :recurring_invoice', - 'activity_104' => ':user restored recurring invoice :recurring_invoice', - 'new_login_detected' => 'New login detected for your account.', - 'new_login_description' => 'You recently logged in to your Invoice Ninja account from a new location or device:

IP: :ip
Time: :time
Email: :email', - 'contact_details' => 'Contact Details', - 'download_backup_subject' => 'Your company backup is ready for download', - 'account_passwordless_login' => 'Account passwordless login', - 'user_duplicate_error' => 'Cannot add the same user to the same company', - 'user_cross_linked_error' => 'User exists but cannot be crossed linked to multiple accounts', - 'ach_verification_notification_label' => 'ACH verification', - 'ach_verification_notification' => 'Connecting bank accounts require verification. Payment gateway will automatically send two small deposits for this purpose. These deposits take 1-2 business days to appear on the customer\'s online statement.', - 'login_link_requested_label' => 'Login link requested', - 'login_link_requested' => 'There was a request to login using link. If you did not request this, it\'s safe to ignore it.', - 'invoices_backup_subject' => 'Your invoices are ready for download', - 'migration_failed_label' => 'Migration failed', - 'migration_failed' => 'Looks like something went wrong with the migration for the following company:', - 'client_email_company_contact_label' => 'If you have any questions please contact us, we\'re here to help!', - 'quote_was_approved_label' => 'Quote was approved', - 'quote_was_approved' => 'We would like to inform you that quote was approved.', - 'company_import_failure_subject' => 'Error importing :company', - 'company_import_failure_body' => 'There was an error importing the company data, the error message was:', - 'recurring_invoice_due_date' => 'Due Date', - 'amount_cents' => 'Amount in pennies,pence or cents. ie for $0.10 please enter 10', - 'default_payment_method_label' => 'Default Payment Method', - 'default_payment_method' => 'Make this your preferred way of paying.', - 'already_default_payment_method' => 'This is your preferred way of paying.', - 'auto_bill_disabled' => 'Auto Bill Disabled', - 'select_payment_method' => 'Select a payment method:', - 'login_without_password' => 'Log in without password', + 'sms_code' => 'SMS kode', + 'connect_google' => 'Tilslut Google', + 'disconnect_google' => 'Afbryd forbindelsen til Google', + 'disable_two_factor' => 'Deaktiver tofaktor', + 'invoice_task_datelog' => 'Faktura Opgave Datelog', + 'invoice_task_datelog_help' => 'Tilføj datodetaljer til Faktura linjeposterne', + 'promo_code' => 'Tilbudskode', + 'recurring_invoice_issued_to' => 'Gentagen Faktura udstedt til', + 'subscription' => 'Abonnement', + 'new_subscription' => 'Nyt abonnement', + 'deleted_subscription' => 'Succesfuldt slettet abonnement', + 'removed_subscription' => 'Succesfuldt fjernet abonnement', + 'restored_subscription' => 'Succesfuldt genskabt abonnement', + 'search_subscription' => 'Søg 1 abonnement', + 'search_subscriptions' => 'Søg :count abonnementer', + 'subdomain_is_not_available' => 'Underdomæne er ikke tilgængeligt', + 'connect_gmail' => 'Tilslut Gmail', + 'disconnect_gmail' => 'Afbryd forbindelsen til Gmail', + 'connected_gmail' => 'Succesfuldt forbundet Gmail', + 'disconnected_gmail' => 'Succesfuldt afbrudt Gmail', + 'update_fail_help' => 'Ændringer i kodebasen blokerer muligvis for opdateringen. Du kan køre denne kommando for at kassere ændringerne:', + 'client_id_number' => 'Klient ID-nummer', + 'count_minutes' => ':count Minutter', + 'password_timeout' => 'Adgangskode timeout', + 'shared_invoice_credit_counter' => 'Del Faktura /Kredittæller', + 'activity_80' => ':user oprettet abonnement :subscription', + 'activity_81' => ':user opdateret abonnement :subscription', + 'activity_82' => ':user arkiveret abonnement :subscription', + 'activity_83' => ':user slettet abonnement :subscription', + 'activity_84' => ':user genskabt abonnement :subscription', + 'amount_greater_than_balance_v5' => 'Beløb er større end Faktura balancen. Du kan ikke overbetale en Faktura .', + 'click_to_continue' => 'Klik for at fortsætte', + 'notification_invoice_created_body' => 'Følgende Faktura :invoice blev oprettet for Klient :client for :amount .', + 'notification_invoice_created_subject' => 'Faktura :invoice blev oprettet for :client', + 'notification_quote_created_body' => 'Følgende citat :invoice blev oprettet for Klient :client for :amount .', + 'notification_quote_created_subject' => 'Citat :invoice blev oprettet for :client', + 'notification_credit_created_body' => 'Følgende kredit :invoice blev oprettet for Klient :client for :amount .', + 'notification_credit_created_subject' => 'Kredit :invoice blev oprettet for :client', + 'max_companies' => 'Maksimal virksomheder migrerede', + 'max_companies_desc' => 'Du har nået dit maksimale antal virksomheder. Slet eksisterende virksomheder for at migrere nye.', + 'migration_already_completed' => 'Virksomheden er allerede migreret', + 'migration_already_completed_desc' => 'Det ser ud til, at du allerede har migreret :company _name til V5-versionen af Faktura Ninja. Hvis du vil starte forfra, kan du tvinge migrering for at slette eksisterende data.', + 'payment_method_cannot_be_authorized_first' => 'Denne Betaling kan gemmes til fremtidig brug, når du har gennemført din første transaktion. Glem ikke at tjekke "Butiksdetaljer" under Betaling .', + 'new_account' => 'Ny konto', + 'activity_100' => ':user oprettet Gentagen Faktura :recurring_invoice', + 'activity_101' => ':user opdateret Gentagen Faktura :recurring_invoice', + 'activity_102' => ':user arkiveret Gentagen Faktura :recurring_invoice', + 'activity_103' => ':user slettet Gentagen Faktura :recurring_invoice', + 'activity_104' => ':user genskabt Gentagen Faktura :recurring_invoice', + 'new_login_detected' => 'Nyt login fundet til din konto.', + 'new_login_description' => 'Du har for nylig logget ind på din Faktura Ninja-konto fra en ny placering eller enhed:

IP: :ip
Tid: :time
e-mail : :email', + 'contact_details' => 'kontakt detaljer', + 'download_backup_subject' => 'Din virksomheds backup er klar til download', + 'account_passwordless_login' => 'Login uden adgangskode til konto', + 'user_duplicate_error' => 'Kan ikke Tilføj den samme Bruger til samme virksomhed', + 'user_cross_linked_error' => 'Bruger findes, men kan ikke krydses knyttet til flere konti', + 'ach_verification_notification_label' => 'ACH verifikation', + 'ach_verification_notification' => 'Tilslutning af bankkonti kræver bekræftelse. Betalingsgateway sender automatisk to små indbetalinger til dette formål. Disse indbetalinger tager 1-2 hverdage, før de vises på kundens online kontoudtog.', + 'login_link_requested_label' => 'Login link anmodet', + 'login_link_requested' => 'Der var en anmodning om at logge ind med linket. Hvis du ikke har anmodet om dette, er det sikkert at ignorere det.', + 'invoices_backup_subject' => 'Din Fakturaer er klar til download', + 'migration_failed_label' => 'Migration mislykkedes', + 'migration_failed' => 'Det ser ud til, at noget gik galt med migreringen for følgende virksomhed:', + 'client_email_company_contact_label' => 'kontakt os, hvis du har spørgsmål, vi er her for at hjælpe!', + 'quote_was_approved_label' => 'Citat var Godkendt', + 'quote_was_approved' => 'Vi vil gerne oplyse dig om, at citatet var Godkendt .', + 'company_import_failure_subject' => 'Fejl ved import :company', + 'company_import_failure_body' => 'Der opstod en fejl ved import af virksomhedsdata, fejlen Besked var:', + 'recurring_invoice_due_date' => 'Afleveringsdato', + 'amount_cents' => 'Beløb i øre, øre eller øre. dvs. for $0,10 venligst Indtast 10', + 'default_payment_method_label' => 'Standard Betaling', + 'default_payment_method' => 'Gør dette til din foretrukne måde at betale på.', + 'already_default_payment_method' => 'Dette er din foretrukne måde at betale på.', + 'auto_bill_disabled' => 'Auto Bill deaktiveret', + 'select_payment_method' => 'Vælg en Betaling :', + 'login_without_password' => 'Log ind uden adgangskode', 'email_sent' => 'Notifikation når en faktura er sendt', - 'one_time_purchases' => 'One time purchases', - 'recurring_purchases' => 'Recurring purchases', - 'you_might_be_interested_in_following' => 'You might be interested in the following', - 'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.', - 'no_quotes_available_for_download' => 'No quotes available for download.', - 'copyright' => 'Copyright', - 'user_created_user' => ':user created :created_user at :time', - 'company_deleted' => 'Company deleted', - 'company_deleted_body' => 'Company [ :company ] was deleted by :user', - 'back_to' => 'Back to :url', - 'stripe_connect_migration_title' => 'Connect your Stripe Account', - 'stripe_connect_migration_desc' => 'Invoice Ninja v5 uses Stripe Connect to link your Stripe account to Invoice Ninja. This provides an additional layer of security for your account. Now that you data has migrated, you will need to Authorize Stripe to accept payments in v5.

To do this, navigate to Settings > Online Payments > Configure Gateways. Click on Stripe Connect and then under Settings click Setup Gateway. This will take you to Stripe to authorize Invoice Ninja and on your return your account will be successfully linked!', - 'email_quota_exceeded_subject' => 'Account email quota exceeded.', - 'email_quota_exceeded_body' => 'In a 24 hour period you have sent :quota emails.
We have paused your outbound emails.

Your email quota will reset at 23:00 UTC.', - 'auto_bill_option' => 'Opt in or out of having this invoice automatically charged.', - 'lang_Arabic' => 'Arabic', - 'lang_Persian' => 'Persian', - 'lang_Latvian' => 'Latvian', - 'expiry_date' => 'Expiry date', - 'cardholder_name' => 'Card holder name', - 'recurring_quote_number_taken' => 'Recurring Quote number :number already taken', - 'account_type' => 'Account type', - 'locality' => 'Locality', - 'checking' => 'Checking', - 'savings' => 'Savings', - 'unable_to_verify_payment_method' => 'Unable to verify payment method.', - 'generic_gateway_error' => 'Gateway configuration error. Please check your credentials.', - 'my_documents' => 'My documents', - 'payment_method_cannot_be_preauthorized' => 'This payment method cannot be preauthorized.', + 'one_time_purchases' => 'Engangskøb', + 'recurring_purchases' => 'Gentagen indkøb', + 'you_might_be_interested_in_following' => 'Du kan være interesseret i følgende', + 'quotes_with_status_sent_can_be_approved' => 'Kun citater med "Sendt"-status kan være Godkendt .', + 'no_quotes_available_for_download' => 'Ingen tilbud tilgængelige for download.', + 'copyright' => 'ophavsret', + 'user_created_user' => ':user oprettet :created_user på :time', + 'company_deleted' => 'Firma slettet', + 'company_deleted_body' => 'Virksomheden [ :company ] blev slettet af :user', + 'back_to' => 'Tilbage til :url', + 'stripe_connect_migration_title' => 'Tilslut din Stripe-konto', + 'stripe_connect_migration_desc' => 'Faktura Ninja v5 bruger Stripe Connect til at linke din Stripe-konto til Faktura Ninja. Dette giver et ekstra lag af sikkerhed for din konto. Nu hvor dine data er migreret, skal du godkende Stripe for at acceptere Betalinger i v5.

For at gøre dette skal du gå til Indstillinger > Online Betalinger > Konfigurer Gateway s. Klik på Stripe Connect og derefter under Indstillinger klik på Setup Gateway . Dette vil tage dig til Stripe for at autorisere Faktura Ninja, og ved din tilbagevenden vil din konto blive Succesfuldt linket!', + 'email_quota_exceeded_subject' => 'Kontoens e-mail -kvote er overskredet.', + 'email_quota_exceeded_body' => 'I løbet af en 24 timers periode har du sendt :quota e-mails.
Vi har sat dine udgående e-mails på pause.

Din e-mail kvote nulstilles kl. 23:00 UTC.', + 'auto_bill_option' => 'Til- eller fravælg at få denne Faktura automatisk opkrævet.', + 'lang_Arabic' => 'arabisk', + 'lang_Persian' => 'persisk', + 'lang_Latvian' => 'lettisk', + 'expiry_date' => 'Udløbsdato', + 'cardholder_name' => 'Kortholders navn', + 'recurring_quote_number_taken' => 'Gentagen citatnummer :number allerede taget', + 'account_type' => 'Kontotype', + 'locality' => 'Lokalitet', + 'checking' => 'Tjekker', + 'savings' => 'Opsparing', + 'unable_to_verify_payment_method' => 'Kan ikke bekræfte Betaling .', + 'generic_gateway_error' => 'Gateway konfigurationsfejl. Tjek venligst dine legitimationsoplysninger.', + 'my_documents' => 'Mine dokumenter', + 'payment_method_cannot_be_preauthorized' => 'Denne Betaling kan ikke forhåndsgodkendes.', 'kbc_cbc' => 'KBC/CBC', 'bancontact' => 'Bancontact', - 'sepa_mandat' => 'By providing your IBAN and confirming this payment, you are authorizing :company and Stripe, our payment service provider, to send instructions to your bank to debit your account and your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.', + 'sepa_mandat' => 'Ved at oplyse dit IBAN og bekræfte denne Betaling giver du :company og Stripe, vores Betaling , tilladelse til at sende instruktioner til din bank om at debitere din konto og din bank til at debitere din konto i overensstemmelse med disse instruktioner. Du har ret til refusion fra din bank i henhold til Betingelser og betingelserne i din aftale med din bank. En refusion skal kræves inden for 8 uger fra den dato, hvor din konto blev debiteret.', 'ideal' => 'iDEAL', - 'bank_account_holder' => 'Bank Account Holder', - 'aio_checkout' => 'All-in-one checkout', + 'bank_account_holder' => 'Bankkontoindehaver', + 'aio_checkout' => 'Alt-i-én kasse', 'przelewy24' => 'Przelewy24', - 'przelewy24_accept' => 'I declare that I have familiarized myself with the regulations and information obligation of the Przelewy24 service.', + 'przelewy24_accept' => 'Jeg erklærer, at jeg har gjort mig bekendt med reglerne og informationspligten for Przelewy24-tjenesten.', 'giropay' => 'GiroPay', - 'giropay_law' => 'By entering your Customer information (such as name, sort code and account number) you (the Customer) agree that this information is given voluntarily.', + 'giropay_law' => 'Ved at indtaste dine Kundeoplysninger (såsom navn, sorteringskode og kontonummer) accepterer du (Kunden) at disse oplysninger gives frivilligt.', 'klarna' => 'Klarna', 'eps' => 'EPS', - 'becs' => 'BECS Direct Debit', - 'bacs' => 'BACS Direct Debit', - 'payment_type_BACS' => 'BACS Direct Debit', - 'missing_payment_method' => 'Please add a payment method first, before trying to pay.', - 'becs_mandate' => 'By providing your bank account details, you agree to this Direct Debit Request and the Direct Debit Request service agreement, and authorise Stripe Payments Australia Pty Ltd ACN 160 180 343 Direct Debit User ID number 507156 (“Stripe”) to debit your account through the Bulk Electronic Clearing System (BECS) on behalf of :company (the “Merchant”) for any amounts separately communicated to you by the Merchant. You certify that you are either an account holder or an authorised signatory on the account listed above.', - 'you_need_to_accept_the_terms_before_proceeding' => 'You need to accept the terms before proceeding.', - 'direct_debit' => 'Direct Debit', - 'clone_to_expense' => 'Clone to Expense', + 'becs' => 'BECS direkte debitering', + 'bacs' => 'BACS direkte debitering', + 'payment_type_BACS' => 'BACS direkte debitering', + 'missing_payment_method' => 'Tilføj venligst en Betaling først, før du forsøger at betale.', + 'becs_mandate' => 'Ved at angive dine bankkontooplysninger accepterer du denne direkte debiteringsanmodning og serviceaftalen for direkte debitering og giver Stripe Betalinger Australia Pty Ltd ACN 160 180 343 Direct Debit Bruger ID-nummer 507156 ("Stripe") tilladelse til at debitere din konto via Bulk Electronic Clearing System (BECS) på vegne af :company (“Sælgeren”) for ethvert beløb, der er meddelt dig særskilt af Forretningen. Du bekræfter, at du enten er kontoindehaver eller underskriver på ovenstående konto.', + 'you_need_to_accept_the_terms_before_proceeding' => 'Du skal acceptere Betingelser før du fortsætter.', + 'direct_debit' => 'Direkte debitering', + 'clone_to_expense' => 'Klon til Udgift', 'checkout' => 'Checkout', - 'acss' => 'Pre-authorized debit payments', - 'invalid_amount' => 'Invalid amount. Number/Decimal values only.', - 'client_payment_failure_body' => 'Payment for Invoice :invoice for amount :amount failed.', + 'acss' => 'Forhåndsautoriseret debet Betalinger', + 'invalid_amount' => 'Ugyldigt Beløb . Kun tal/decimalværdier.', + 'client_payment_failure_body' => 'Betaling for Faktura :invoice for Beløb :amount mislykkedes.', 'browser_pay' => 'Google Pay, Apple Pay, Microsoft Pay', - 'no_available_methods' => 'We can\'t find any credit cards on your device. Read more about this.', - 'gocardless_mandate_not_ready' => 'Payment mandate is not ready. Please try again later.', - 'payment_type_instant_bank_pay' => 'Instant Bank Pay', + 'no_available_methods' => 'Vi kan ikke finde nogen kreditkort på din enhed. Læs mere om dette.', + 'gocardless_mandate_not_ready' => 'Betaling er ikke klar. Prøv igen senere.', + 'payment_type_instant_bank_pay' => 'Øjeblikkelig bankbetaling', 'payment_type_iDEAL' => 'iDEAL', 'payment_type_Przelewy24' => 'Przelewy24', - 'payment_type_Mollie Bank Transfer' => 'Mollie Bank Transfer', + 'payment_type_Mollie Bank Transfer' => 'Mollie Bankoverførsel', 'payment_type_KBC/CBC' => 'KBC/CBC', - 'payment_type_Instant Bank Pay' => 'Instant Bank Pay', - 'payment_type_Hosted Page' => 'Hosted Page', + 'payment_type_Instant Bank Pay' => 'Øjeblikkelig bankbetaling', + 'payment_type_Hosted Page' => 'Hostet side', 'payment_type_GiroPay' => 'GiroPay', 'payment_type_EPS' => 'EPS', - 'payment_type_Direct Debit' => 'Direct Debit', + 'payment_type_Direct Debit' => 'Direkte debitering', 'payment_type_Bancontact' => 'Bancontact', 'payment_type_BECS' => 'BECS', 'payment_type_ACSS' => 'ACSS', - 'gross_line_total' => 'Gross line total', - 'lang_Slovak' => 'Slovak', + 'gross_line_total' => 'Bruttolinje Total', + 'lang_Slovak' => 'slovakisk', 'normal' => 'Normal', - 'large' => 'Large', - 'extra_large' => 'Extra Large', - 'show_pdf_preview' => 'Show PDF Preview', - 'show_pdf_preview_help' => 'Display PDF preview while editing invoices', - 'print_pdf' => 'Print PDF', - 'remind_me' => 'Remind Me', - 'instant_bank_pay' => 'Instant Bank Pay', - 'click_selected' => 'Click Selected', - 'hide_preview' => 'Hide Preview', - 'edit_record' => 'Edit Record', - 'credit_is_more_than_invoice' => 'The credit amount can not be more than the invoice amount', - 'please_set_a_password' => 'Please set an account password', - 'recommend_desktop' => 'We recommend using the desktop app for the best performance', - 'recommend_mobile' => 'We recommend using the mobile app for the best performance', - 'disconnected_gateway' => 'Successfully disconnected gateway', - 'disconnect' => 'Disconnect', - 'add_to_invoices' => 'Add to Invoices', - 'bulk_download' => 'Download', - 'persist_data_help' => 'Save data locally to enable the app to start faster, disabling may improve performance in large accounts', - 'persist_ui' => 'Persist UI', - 'persist_ui_help' => 'Save UI state locally to enable the app to start at the last location, disabling may improve performance', - 'client_postal_code' => 'Client Postal Code', - 'client_vat_number' => 'Client VAT Number', - 'has_tasks' => 'Has Tasks', - 'registration' => 'Registration', - 'unauthorized_stripe_warning' => 'Please authorize Stripe to accept online payments.', - 'update_all_records' => 'Update all records', - 'set_default_company' => 'Set Default Company', - 'updated_company' => 'Successfully updated company', + 'large' => 'Stor', + 'extra_large' => 'Ekstra stor', + 'show_pdf_preview' => 'Vis PDF forhåndsvisning', + 'show_pdf_preview_help' => 'Vis PDF forhåndsvisning, mens du redigerer Fakturaer', + 'print_pdf' => 'Udskriv PDF', + 'remind_me' => 'Mind mig om', + 'instant_bank_pay' => 'Øjeblikkelig bankbetaling', + 'click_selected' => 'Klik på Valgt', + 'hide_preview' => 'Skjul forhåndsvisning', + 'edit_record' => 'Redigér Record', + 'credit_is_more_than_invoice' => 'Æren Beløb kan ikke være mere end Faktura Beløb', + 'please_set_a_password' => 'Indstil venligst en kontoadgangskode', + 'recommend_desktop' => 'Vi anbefaler at bruge desktop-appen for den bedste ydeevne', + 'recommend_mobile' => 'Vi anbefaler at bruge mobilappen for den bedste ydeevne', + 'disconnected_gateway' => 'Succesfuldt afbrudt Gateway', + 'disconnect' => 'Koble fra', + 'add_to_invoices' => 'Tilføj til Fakturaer', + 'bulk_download' => 'Hent', + 'persist_data_help' => 'Gem data lokalt for at gøre det muligt for appen at starte hurtigere. Deaktivering kan forbedre ydeevnen på store konti', + 'persist_ui' => 'Vedvarende UI', + 'persist_ui_help' => 'Gem UI-tilstand lokalt for at aktivere appen til at starte på den sidste placering, deaktivering kan forbedre ydeevnen', + 'client_postal_code' => 'Klient postnummer', + 'client_vat_number' => 'Klient momsnummer', + 'has_tasks' => 'Har opgaver', + 'registration' => 'Registrering', + 'unauthorized_stripe_warning' => 'Giv venligst Stripe tilladelse til at acceptere online Betalinger .', + 'update_all_records' => 'Opdater alle poster', + 'set_default_company' => 'Indstil standardfirma', + 'updated_company' => 'Succesfuldt opdateret virksomhed', 'kbc' => 'KBC', - 'why_are_you_leaving' => 'Help us improve by telling us why (optional)', - 'webhook_success' => 'Webhook Success', - 'error_cross_client_tasks' => 'Tasks must all belong to the same client', - 'error_cross_client_expenses' => 'Expenses must all belong to the same client', + 'why_are_you_leaving' => 'Hjælp os med at blive bedre ved at fortælle os hvorfor (valgfrit)', + 'webhook_success' => 'Webhook succes', + 'error_cross_client_tasks' => 'Opgaverne skal alle tilhøre den samme Klient', + 'error_cross_client_expenses' => 'Udgifter skal alle tilhøre samme Klient', 'app' => 'App', - 'for_best_performance' => 'For the best performance download the :app app', - 'bulk_email_invoice' => 'Email Invoice', - 'bulk_email_quote' => 'Email Quote', - 'bulk_email_credit' => 'Email Credit', - 'removed_recurring_expense' => 'Successfully removed recurring expense', - 'search_recurring_expense' => 'Search Recurring Expense', - 'search_recurring_expenses' => 'Search Recurring Expenses', - 'last_sent_date' => 'Last Sent Date', - 'include_drafts' => 'Include Drafts', - 'include_drafts_help' => 'Include draft records in reports', - 'is_invoiced' => 'Is Invoiced', - 'change_plan' => 'Manage Plan', - 'persist_data' => 'Persist Data', - 'customer_count' => 'Customer Count', - 'verify_customers' => 'Verify Customers', - 'google_analytics_tracking_id' => 'Google Analytics Tracking ID', - 'decimal_comma' => 'Decimal Comma', - 'use_comma_as_decimal_place' => 'Use comma as decimal place in forms', - 'select_method' => 'Select Method', - 'select_platform' => 'Select Platform', - 'use_web_app_to_connect_gmail' => 'Please use the web app to connect to Gmail', - 'expense_tax_help' => 'Item tax rates are disabled', - 'enable_markdown' => 'Enable Markdown', - 'enable_markdown_help' => 'Convert markdown to HTML on the PDF', - 'add_second_contact' => 'Add Second Contact', - 'previous_page' => 'Previous Page', - 'next_page' => 'Next Page', - 'export_colors' => 'Export Colors', - 'import_colors' => 'Import Colors', - 'clear_all' => 'Clear All', - 'contrast' => 'Contrast', - 'custom_colors' => 'Custom Colors', - 'colors' => 'Colors', - 'sidebar_active_background_color' => 'Sidebar Active Background Color', - 'sidebar_active_font_color' => 'Sidebar Active Font Color', - 'sidebar_inactive_background_color' => 'Sidebar Inactive Background Color', - 'sidebar_inactive_font_color' => 'Sidebar Inactive Font Color', - 'table_alternate_row_background_color' => 'Table Alternate Row Background Color', - 'invoice_header_background_color' => 'Invoice Header Background Color', - 'invoice_header_font_color' => 'Invoice Header Font Color', - 'review_app' => 'Review App', - 'check_status' => 'Check Status', - 'free_trial' => 'Free Trial', - 'free_trial_help' => 'All accounts receive a two week trial of the Pro plan, once the trial ends your account will automatically change to the free plan.', - 'free_trial_ends_in_days' => 'The Pro plan trial ends in :count days, click to upgrade.', - 'free_trial_ends_today' => 'Today is the last day of the Pro plan trial, click to upgrade.', - 'change_email' => 'Change Email', - 'client_portal_domain_hint' => 'Optionally configure a separate client portal domain', - 'tasks_shown_in_portal' => 'Tasks Shown in Portal', - 'uninvoiced' => 'Uninvoiced', - 'subdomain_guide' => 'The subdomain is used in the client portal to personalize links to match your brand. ie, https://your-brand.invoicing.co', - 'send_time' => 'Send Time', - 'import_settings' => 'Import Settings', - 'json_file_missing' => 'Please provide the JSON file', - 'json_option_missing' => 'Please select to import the settings and/or data', + 'for_best_performance' => 'For den bedste ydeevne skal du downloade :app -appen', + 'bulk_email_invoice' => 'e-mail Faktura', + 'bulk_email_quote' => 'e-mail tilbud', + 'bulk_email_credit' => 'e-mail Kredit', + 'removed_recurring_expense' => 'Succesfuldt fjernet Gentagen Udgift', + 'search_recurring_expense' => 'Søg Gentagen Udgift', + 'search_recurring_expenses' => 'Søg Gentagen Udgifter', + 'last_sent_date' => 'Sidste afsendelsesdato', + 'include_drafts' => 'Inkluder udkast', + 'include_drafts_help' => 'Medtag udkast til poster i rapporter', + 'is_invoiced' => 'Er faktureret', + 'change_plan' => 'Administrer plan', + 'persist_data' => 'Vedvarende data', + 'customer_count' => 'Kundeantal', + 'verify_customers' => 'Bekræft kunder', + 'google_analytics_tracking_id' => 'Google Analytics sporings-id', + 'decimal_comma' => 'Decimalkomma', + 'use_comma_as_decimal_place' => 'Brug komma som decimal i formularer', + 'select_method' => 'Vælg metode', + 'select_platform' => 'Vælg Platform', + 'use_web_app_to_connect_gmail' => 'Brug webappen til at oprette forbindelse til Gmail', + 'expense_tax_help' => 'Vareafgiftssatser er deaktiveret', + 'enable_markdown' => 'Aktiver Markdown', + 'enable_markdown_help' => 'Konverter markdown til HTML på PDF', + 'add_second_contact' => 'Tilføj anden kontakt', + 'previous_page' => 'Forrige side', + 'next_page' => 'Næste side', + 'export_colors' => 'Eksporter farver', + 'import_colors' => 'Importer farver', + 'clear_all' => 'Slet alt', + 'contrast' => 'Kontrast', + 'custom_colors' => 'Speciel farver', + 'colors' => 'Farver', + 'sidebar_active_background_color' => 'Sidebar aktiv baggrundsfarve', + 'sidebar_active_font_color' => 'Sidebar aktiv skrifttypefarve', + 'sidebar_inactive_background_color' => 'Sidebjælke inaktiv baggrundsfarve', + 'sidebar_inactive_font_color' => 'Sidebjælke inaktiv skrifttypefarve', + 'table_alternate_row_background_color' => 'Tabel Alternativ Række baggrundsfarve', + 'invoice_header_background_color' => 'Faktura Header Baggrundsfarve', + 'invoice_header_font_color' => 'Faktura Header Font Farve', + 'review_app' => 'Gennemgå app', + 'check_status' => 'Tjek Status', + 'free_trial' => 'Gratis prøveversion', + 'free_trial_help' => 'Alle konti modtager en to ugers prøveversion af Pro-planen, når prøveperioden slutter, vil din konto automatisk skifte til den gratis plan.', + 'free_trial_ends_in_days' => 'Prøveversionen af Pro-planen slutter om :count dage, klik for at opgradere.', + 'free_trial_ends_today' => 'I dag er den sidste dag af prøveversionen af Pro-planen, klik for at opgradere.', + 'change_email' => 'Skift e-mail', + 'client_portal_domain_hint' => 'Konfigurer eventuelt et separat Klient portaldomæne', + 'tasks_shown_in_portal' => 'Opgaver vist i portalen', + 'uninvoiced' => 'Ufaktureret', + 'subdomain_guide' => 'Underdomænet bruges i Klient portalen til at tilpasse links, så de matcher dit brand. dvs. https://dit-mærke. Fakturering .co', + 'send_time' => 'Send tid', + 'import_settings' => 'Import Indstillinger', + 'json_file_missing' => 'Angiv venligst JSON-filen', + 'json_option_missing' => 'Vælg venligst at importere Indstillinger og/eller data', 'json' => 'JSON', - 'no_payment_types_enabled' => 'No payment types enabled', - 'wait_for_data' => 'Please wait for the data to finish loading', - 'net_total' => 'Net Total', - 'has_taxes' => 'Has Taxes', - 'import_customers' => 'Import Customers', - 'imported_customers' => 'Successfully started importing customers', - 'login_success' => 'Successful Login', - 'login_failure' => 'Failed Login', - 'exported_data' => 'Once the file is ready you\'ll receive an email with a download link', - 'include_deleted_clients' => 'Include Deleted Clients', - 'include_deleted_clients_help' => 'Load records belonging to deleted clients', - 'step_1_sign_in' => 'Step 1: Sign In', - 'step_2_authorize' => 'Step 2: Authorize', - 'account_id' => 'Account ID', - 'migration_not_yet_completed' => 'The migration has not yet completed', - 'show_task_end_date' => 'Show Task End Date', - 'show_task_end_date_help' => 'Enable specifying the task end date', - 'gateway_setup' => 'Gateway Setup', - 'preview_sidebar' => 'Preview Sidebar', - 'years_data_shown' => 'Years Data Shown', - 'ended_all_sessions' => 'Successfully ended all sessions', - 'end_all_sessions' => 'End All Sessions', - 'count_session' => '1 Session', - 'count_sessions' => ':count Sessions', - 'invoice_created' => 'Invoice Created', - 'quote_created' => 'Quote Created', - 'credit_created' => 'Credit Created', + 'no_payment_types_enabled' => 'Ingen Betaling aktiveret', + 'wait_for_data' => 'Vent venligst på, at dataene er færdige med at indlæse', + 'net_total' => 'Netto Total', + 'has_taxes' => 'Har Skatter', + 'import_customers' => 'Importer kunder', + 'imported_customers' => 'Succesfuldt begyndte at importere kunder', + 'login_success' => 'Vellykket login', + 'login_failure' => 'Mislykket login', + 'exported_data' => 'Når filen er klar, modtager du en e-mail med et downloadlink', + 'include_deleted_clients' => 'Inkluder slettet Klienter', + 'include_deleted_clients_help' => 'Indlæs poster tilhørende slettet Klienter', + 'step_1_sign_in' => 'Trin 1: Log ind', + 'step_2_authorize' => 'Trin 2: Godkend', + 'account_id' => 'Konto-id', + 'migration_not_yet_completed' => 'Migreringen er endnu ikke afsluttet', + 'show_task_end_date' => 'Vis Opgave Slutdato', + 'show_task_end_date_help' => 'Aktiver angivelse af Opgave slutdatoen', + 'gateway_setup' => 'Gateway opsætning', + 'preview_sidebar' => 'Forhåndsvisning af sidebjælke', + 'years_data_shown' => 'Årsdata vist', + 'ended_all_sessions' => 'Succesfuldt afsluttede alle sessioner', + 'end_all_sessions' => 'Afslut alle sessioner', + 'count_session' => '1 session', + 'count_sessions' => ':count Sessioner', + 'invoice_created' => 'Faktura oprettet', + 'quote_created' => 'Citat oprettet', + 'credit_created' => 'Kredit oprettet', 'enterprise' => 'Enterprise', - 'invoice_item' => 'Invoice Item', - 'quote_item' => 'Quote Item', - 'order' => 'Order', - 'search_kanban' => 'Search Kanban', - 'search_kanbans' => 'Search Kanban', - 'move_top' => 'Move Top', - 'move_up' => 'Move Up', - 'move_down' => 'Move Down', - 'move_bottom' => 'Move Bottom', - 'body_variable_missing' => 'Error: the custom email must include a :body variable', - 'add_body_variable_message' => 'Make sure to include a :body variable', - 'view_date_formats' => 'View Date Formats', - 'is_viewed' => 'Is Viewed', - 'letter' => 'Letter', - 'legal' => 'Legal', - 'page_layout' => 'Page Layout', - 'portrait' => 'Portrait', - 'landscape' => 'Landscape', - 'owner_upgrade_to_paid_plan' => 'The account owner can upgrade to a paid plan to enable the advanced advanced settings', - 'upgrade_to_paid_plan' => 'Upgrade to a paid plan to enable the advanced settings', - 'invoice_payment_terms' => 'Invoice Payment Terms', - 'quote_valid_until' => 'Quote Valid Until', - 'no_headers' => 'No Headers', - 'add_header' => 'Add Header', - 'remove_header' => 'Remove Header', - 'return_url' => 'Return URL', - 'rest_method' => 'REST Method', - 'header_key' => 'Header Key', - 'header_value' => 'Header Value', - 'recurring_products' => 'Recurring Products', - 'promo_discount' => 'Promo Discount', - 'allow_cancellation' => 'Allow Cancellation', - 'per_seat_enabled' => 'Per Seat Enabled', - 'max_seats_limit' => 'Max Seats Limit', - 'trial_enabled' => 'Trial Enabled', - 'trial_duration' => 'Trial Duration', - 'allow_query_overrides' => 'Allow Query Overrides', - 'allow_plan_changes' => 'Allow Plan Changes', - 'plan_map' => 'Plan Map', - 'refund_period' => 'Refund Period', - 'webhook_configuration' => 'Webhook Configuration', - 'purchase_page' => 'Purchase Page', - 'email_bounced' => 'Email Bounced', - 'email_spam_complaint' => 'Spam Complaint', - 'email_delivery' => 'Email Delivery', - 'webhook_response' => 'Webhook Response', - 'pdf_response' => 'PDF Response', - 'authentication_failure' => 'Authentication Failure', - 'pdf_failed' => 'PDF Failed', - 'pdf_success' => 'PDF Success', - 'modified' => 'Modified', - 'html_mode' => 'HTML Mode', - 'html_mode_help' => 'Preview updates faster but is less accurate', - 'status_color_theme' => 'Status Color Theme', - 'load_color_theme' => 'Load Color Theme', - 'lang_Estonian' => 'Estonian', - 'marked_credit_as_paid' => 'Successfully marked credit as paid', - 'marked_credits_as_paid' => 'Successfully marked credits as paid', - 'wait_for_loading' => 'Data loading - please wait for it to complete', - 'wait_for_saving' => 'Data saving - please wait for it to complete', - 'html_preview_warning' => 'Note: changes made here are only previewed, they must be applied in the tabs above to be saved', - 'remaining' => 'Remaining', - 'invoice_paid' => 'Invoice Paid', - 'activity_120' => ':user created recurring expense :recurring_expense', - 'activity_121' => ':user updated recurring expense :recurring_expense', - 'activity_122' => ':user archived recurring expense :recurring_expense', - 'activity_123' => ':user deleted recurring expense :recurring_expense', - 'activity_124' => ':user restored recurring expense :recurring_expense', + 'invoice_item' => 'Faktura vare', + 'quote_item' => 'Citat vare', + 'order' => 'Bestille', + 'search_kanban' => 'Søg efter Kanban', + 'search_kanbans' => 'Søg efter Kanban', + 'move_top' => 'Flyt Top', + 'move_up' => 'Flyt op', + 'move_down' => 'Flyt ned', + 'move_bottom' => 'Flyt bund', + 'body_variable_missing' => 'Fejl: Speciel e-mail skal indeholde en :body variabel', + 'add_body_variable_message' => 'Sørg for at inkludere en :body -variabel', + 'view_date_formats' => 'Vis datoformater', + 'is_viewed' => 'Er set', + 'letter' => 'Brev', + 'legal' => 'gyldige', + 'page_layout' => 'Sidelayout', + 'portrait' => 'Portræt', + 'landscape' => 'Landskab', + 'owner_upgrade_to_paid_plan' => 'Kontoejeren kan opgradere til en betalt plan for at aktivere de avancerede avancerede Indstillinger', + 'upgrade_to_paid_plan' => 'Opgrader til en betalt plan for at aktivere de avancerede Indstillinger', + 'invoice_payment_terms' => 'Faktura Betaling Betingelser', + 'quote_valid_until' => 'Tilbud Gælder til', + 'no_headers' => 'Ingen overskrifter', + 'add_header' => 'Tilføj Header', + 'remove_header' => 'Fjern overskrift', + 'return_url' => 'Returner URL', + 'rest_method' => 'REST metode', + 'header_key' => 'Hovednøgle', + 'header_value' => 'Overskriftsværdi', + 'recurring_products' => 'Gentagen produkter', + 'promo_discount' => 'Kampagne rabat', + 'allow_cancellation' => 'Tillad annullering', + 'per_seat_enabled' => 'Per sæde aktiveret', + 'max_seats_limit' => 'Max sædergrænse', + 'trial_enabled' => 'Prøveversion aktiveret', + 'trial_duration' => 'Prøvens varighed', + 'allow_query_overrides' => 'Tillad tilsidesættelse af forespørgsler', + 'allow_plan_changes' => 'Tillad planændringer', + 'plan_map' => 'Plankort', + 'refund_period' => 'Tilbagebetalingsperiode', + 'webhook_configuration' => 'Webhook-konfiguration', + 'purchase_page' => 'Købsside', + 'email_bounced' => 'e-mail Bounced', + 'email_spam_complaint' => 'Spam klage', + 'email_delivery' => 'e-mail levering', + 'webhook_response' => 'Webhook-svar', + 'pdf_response' => 'PDF svar', + 'authentication_failure' => 'Godkendelsesfejl', + 'pdf_failed' => 'PDF mislykkedes', + 'pdf_success' => 'PDF succes', + 'modified' => 'Ændret', + 'html_mode' => 'HTML-tilstand', + 'html_mode_help' => 'Forhåndsvisning opdateres hurtigere, men er mindre nøjagtig', + 'status_color_theme' => 'Status farvetema', + 'load_color_theme' => 'Indlæs farvetema', + 'lang_Estonian' => 'estisk', + 'marked_credit_as_paid' => 'Succesfuldt markerede kredit som betalt', + 'marked_credits_as_paid' => 'Succesfuldt markerede kreditter som betalte', + 'wait_for_loading' => 'Dataindlæsning - vent venligst på, at det er fuldført', + 'wait_for_saving' => 'Datalagring - vent venligst på, at det er fuldført', + 'html_preview_warning' => 'Bemærk : ændringer foretaget her er kun forhåndsvist, de skal anvendes i fanerne ovenfor for at blive gemt', + 'remaining' => 'Tilbage', + 'invoice_paid' => 'Faktura Betalt', + 'activity_120' => ':user oprettet Gentagen Udgift :recurring_expense', + 'activity_121' => ':user opdateret Gentagen Udgift :recurring_expense', + 'activity_122' => ':user arkiveret Gentagen Udgift :recurring_expense', + 'activity_123' => ':user slettet Gentagen Udgift :recurring_expense', + 'activity_124' => ':user genskabt Gentagen Udgift :recurring_expense', 'fpx' => "FPX", - 'to_view_entity_set_password' => 'To view the :entity you need to set a password.', - 'unsubscribe' => 'Unsubscribe', - 'unsubscribed' => 'Unsubscribed', - 'unsubscribed_text' => 'You have been removed from notifications for this document', - 'client_shipping_state' => 'Client Shipping State', - 'client_shipping_city' => 'Client Shipping City', - 'client_shipping_postal_code' => 'Client Shipping Postal Code', - 'client_shipping_country' => 'Client Shipping Country', - 'load_pdf' => 'Load PDF', - 'start_free_trial' => 'Start Free Trial', - 'start_free_trial_message' => 'Start your FREE 14 day trial of the pro plan', - 'due_on_receipt' => 'Due on Receipt', - 'is_paid' => 'Is Paid', - 'age_group_paid' => 'Paid', + 'to_view_entity_set_password' => 'For at Vis :entity skal du angive en adgangskode.', + 'unsubscribe' => 'Opsige abonnement', + 'unsubscribed' => 'Afmeldt', + 'unsubscribed_text' => 'Du er blevet fjernet fra meddelelser for dette dokument', + 'client_shipping_state' => 'Klient Shipping State', + 'client_shipping_city' => 'Klient Shipping City', + 'client_shipping_postal_code' => 'Klient forsendelses postnummer', + 'client_shipping_country' => 'Klient forsendelsesland', + 'load_pdf' => 'Indlæs PDF', + 'start_free_trial' => 'Start gratis prøveperiode', + 'start_free_trial_message' => 'Start din GRATIS 14 dages prøveversion af pro-planen', + 'due_on_receipt' => 'Forfalder ved modtagelse', + 'is_paid' => 'Er betalt', + 'age_group_paid' => 'Betalt', 'id' => 'Id', - 'convert_to' => 'Convert To', - 'client_currency' => 'Client Currency', - 'company_currency' => 'Company Currency', - 'custom_emails_disabled_help' => 'To prevent spam we require upgrading to a paid account to customize the email', - 'upgrade_to_add_company' => 'Upgrade your plan to add companies', - 'file_saved_in_downloads_folder' => 'The file has been saved in the downloads folder', - 'small' => 'Small', - 'quotes_backup_subject' => 'Your quotes are ready for download', - 'credits_backup_subject' => 'Your credits are ready for download', - 'document_download_subject' => 'Your documents are ready for download', - 'reminder_message' => 'Reminder for invoice :number for :balance', - 'gmail_credentials_invalid_subject' => 'Send with GMail invalid credentials', - 'gmail_credentials_invalid_body' => 'Your GMail credentials are not correct, please log into the administrator portal and navigate to Settings > User Details and disconnect and reconnect your GMail account. We will send you this notification daily until this issue is resolved', - 'total_columns' => 'Total Fields', - 'view_task' => 'View Task', - 'cancel_invoice' => 'Cancel', - 'changed_status' => 'Successfully changed task status', - 'change_status' => 'Change Status', - 'enable_touch_events' => 'Enable Touch Events', - 'enable_touch_events_help' => 'Support drag events to scroll', - 'after_saving' => 'After Saving', - 'view_record' => 'View Record', - 'enable_email_markdown' => 'Enable Email Markdown', - 'enable_email_markdown_help' => 'Use visual markdown editor for emails', - 'enable_pdf_markdown' => 'Enable PDF Markdown', - 'json_help' => 'Note: JSON files generated by the v4 app are not supported', - 'release_notes' => 'Release Notes', - 'upgrade_to_view_reports' => 'Upgrade your plan to view reports', - 'started_tasks' => 'Successfully started :value tasks', - 'stopped_tasks' => 'Successfully stopped :value tasks', - 'approved_quote' => 'Successfully apporved quote', - 'approved_quotes' => 'Successfully :value approved quotes', - 'client_website' => 'Client Website', - 'invalid_time' => 'Invalid Time', - 'signed_in_as' => 'Signed in as', - 'total_results' => 'Total results', - 'restore_company_gateway' => 'Restore gateway', - 'archive_company_gateway' => 'Archive gateway', - 'delete_company_gateway' => 'Delete gateway', - 'exchange_currency' => 'Exchange currency', - 'tax_amount1' => 'Tax Amount 1', - 'tax_amount2' => 'Tax Amount 2', - 'tax_amount3' => 'Tax Amount 3', - 'update_project' => 'Update Project', - 'auto_archive_invoice_cancelled' => 'Auto Archive Cancelled Invoice', - 'auto_archive_invoice_cancelled_help' => 'Automatically archive invoices when cancelled', - 'no_invoices_found' => 'No invoices found', - 'created_record' => 'Successfully created record', - 'auto_archive_paid_invoices' => 'Auto Archive Paid', - 'auto_archive_paid_invoices_help' => 'Automatically archive invoices when they are paid.', - 'auto_archive_cancelled_invoices' => 'Auto Archive Cancelled', - 'auto_archive_cancelled_invoices_help' => 'Automatically archive invoices when cancelled.', - 'alternate_pdf_viewer' => 'Alternate PDF Viewer', - 'alternate_pdf_viewer_help' => 'Improve scrolling over the PDF preview [BETA]', + 'convert_to' => 'Konvertere til', + 'client_currency' => 'Klient valuta', + 'company_currency' => 'Virksomhedens valuta', + 'custom_emails_disabled_help' => 'For at forhindre spam kræver vi opgradering til en betalt konto for at tilpasse e-mail', + 'upgrade_to_add_company' => 'Opgrader din plan til Tilføj virksomheder', + 'file_saved_in_downloads_folder' => 'Filen er blevet gemt i download-mappen', + 'small' => 'Lille', + 'quotes_backup_subject' => 'Dine citater er klar til download', + 'credits_backup_subject' => 'Dine kreditter er klar til download', + 'document_download_subject' => 'Dine dokumenter er klar til download', + 'reminder_message' => 'Påmindelse til Faktura :number for :balance', + 'gmail_credentials_invalid_subject' => 'Send med Gmail ugyldige legitimationsoplysninger', + 'gmail_credentials_invalid_body' => 'Dine GMail-legitimationsoplysninger er ikke korrekte, log venligst ind på administratorportalen og naviger til Indstillinger > Bruger og afbryd og tilslut din Gmail-konto igen. Vi sender dig denne meddelelse dagligt, indtil dette problem er løst', + 'total_columns' => 'Felter Total', + 'view_task' => 'Vis Opgave', + 'cancel_invoice' => 'Afbryd', + 'changed_status' => 'Succesfuldt ændrede Opgave status', + 'change_status' => 'Skift status', + 'enable_touch_events' => 'Aktiver Touch Events', + 'enable_touch_events_help' => 'Understøtter træk begivenheder for at rulle', + 'after_saving' => 'Efter at have gemt', + 'view_record' => 'Vis Rekord', + 'enable_email_markdown' => 'Aktiver e-mail Markdown', + 'enable_email_markdown_help' => 'Brug visuel markdown-editor til e-mails', + 'enable_pdf_markdown' => 'Aktiver PDF Markdown', + 'json_help' => 'Bemærk : JSON-filer genereret af v4-appen understøttes ikke', + 'release_notes' => 'Udgivelses noter', + 'upgrade_to_view_reports' => 'Opgrader din plan til Vis rapporter', + 'started_tasks' => 'Succesfuldt startede :value opgaver', + 'stopped_tasks' => 'Succesfuldt stoppede :value opgaver', + 'approved_quote' => 'Succesfuldt godkendt citat', + 'approved_quotes' => 'Succesfuldt :value Godkendt citater', + 'client_website' => 'Klient hjemmeside', + 'invalid_time' => 'Ugyldig tid', + 'signed_in_as' => 'Logget ind som', + 'total_results' => 'Total resultater', + 'restore_company_gateway' => 'Genskab Gateway', + 'archive_company_gateway' => 'Arkiv Gateway', + 'delete_company_gateway' => 'Slet Gateway', + 'exchange_currency' => 'Veksle valuta', + 'tax_amount1' => 'Skat Beløb 1', + 'tax_amount2' => 'Skat Beløb 2', + 'tax_amount3' => 'Skat Beløb 3', + 'update_project' => 'Opdater projekt', + 'auto_archive_invoice_cancelled' => 'Auto Arkiv Annulleret Faktura', + 'auto_archive_invoice_cancelled_help' => 'Automatisk Arkiv Fakturaer ved opsigelse', + 'no_invoices_found' => 'Ingen Fakturaer fundet', + 'created_record' => 'Succesfuldt oprettet record', + 'auto_archive_paid_invoices' => 'Auto Arkiv Betalt', + 'auto_archive_paid_invoices_help' => 'Automatisk Arkiv Fakturaer når de er betalt.', + 'auto_archive_cancelled_invoices' => 'Arkiv annulleret', + 'auto_archive_cancelled_invoices_help' => 'Automatisk Arkiv Fakturaer ved aflysning.', + 'alternate_pdf_viewer' => 'Alternativ PDF fremviser', + 'alternate_pdf_viewer_help' => 'Forbedre rulning over PDF eksemplet [BETA]', 'currency_cayman_island_dollar' => 'Cayman Island Dollar', - 'download_report_description' => 'Please see attached file to check your report.', - 'left' => 'Left', - 'right' => 'Right', - 'center' => 'Center', - 'page_numbering' => 'Page Numbering', - 'page_numbering_alignment' => 'Page Numbering Alignment', - 'invoice_sent_notification_label' => 'Invoice Sent', - 'show_product_description' => 'Show Product Description', - 'show_product_description_help' => 'Include the description in the product dropdown', - 'invoice_items' => 'Invoice Items', - 'quote_items' => 'Quote Items', - 'profitloss' => 'Profit and Loss', - 'import_format' => 'Import Format', - 'export_format' => 'Export Format', - 'export_type' => 'Export Type', - 'stop_on_unpaid' => 'Stop On Unpaid', - 'stop_on_unpaid_help' => 'Stop creating recurring invoices if the last invoice is unpaid.', - 'use_quote_terms' => 'Use Quote Terms', - 'use_quote_terms_help' => 'When converting a quote to an invoice', - 'add_country' => 'Add Country', - 'enable_tooltips' => 'Enable Tooltips', - 'enable_tooltips_help' => 'Show tooltips when hovering the mouse', - 'multiple_client_error' => 'Error: records belong to more than one client', - 'login_label' => 'Login to an existing account', - 'purchase_order' => 'Purchase Order', - 'purchase_order_number' => 'Purchase Order Number', - 'purchase_order_number_short' => 'Purchase Order #', - 'inventory_notification_subject' => 'Inventory threshold notification for product: :product', - 'inventory_notification_body' => 'Threshold of :amount has been reached for product: :product', - 'activity_130' => ':user created purchase order :purchase_order', - 'activity_131' => ':user updated purchase order :purchase_order', - 'activity_132' => ':user archived purchase order :purchase_order', - 'activity_133' => ':user deleted purchase order :purchase_order', - 'activity_134' => ':user restored purchase order :purchase_order', - 'activity_135' => ':user emailed purchase order :purchase_order', - 'activity_136' => ':contact viewed purchase order :purchase_order', - 'purchase_order_subject' => 'New Purchase Order :number from :account', - 'purchase_order_message' => 'To view your purchase order for :amount, click the link below.', - 'view_purchase_order' => 'View Purchase Order', - 'purchase_orders_backup_subject' => 'Your purchase orders are ready for download', - 'notification_purchase_order_viewed_subject' => 'Purchase Order :invoice was viewed by :client', - 'notification_purchase_order_viewed' => 'The following vendor :client viewed Purchase Order :invoice for :amount.', - 'purchase_order_date' => 'Purchase Order Date', - 'purchase_orders' => 'Purchase Orders', - 'purchase_order_number_placeholder' => 'Purchase Order # :purchase_order', - 'accepted' => 'Accepted', - 'activity_137' => ':contact accepted purchase order :purchase_order', - 'vendor_information' => 'Vendor Information', - 'notification_purchase_order_accepted_subject' => 'Purchase Order :purchase_order was accepted by :vendor', - 'notification_purchase_order_accepted' => 'The following vendor :vendor accepted Purchase Order :purchase_order for :amount.', - 'amount_received' => 'Amount received', - 'purchase_order_already_expensed' => 'Already converted to an expense.', - 'convert_to_expense' => 'Convert to Expense', - 'add_to_inventory' => 'Add to Inventory', - 'added_purchase_order_to_inventory' => 'Successfully added purchase order to inventory', - 'added_purchase_orders_to_inventory' => 'Successfully added purchase orders to inventory', - 'client_document_upload' => 'Client Document Upload', - 'vendor_document_upload' => 'Vendor Document Upload', - 'vendor_document_upload_help' => 'Enable vendors to upload documents', - 'are_you_enjoying_the_app' => 'Are you enjoying the app?', - 'yes_its_great' => 'Yes, it\'s great!', - 'not_so_much' => 'Not so much', - 'would_you_rate_it' => 'Great to hear! Would you like to rate it?', - 'would_you_tell_us_more' => 'Sorry to hear it! Would you like to tell us more?', - 'sure_happy_to' => 'Sure, happy to', - 'no_not_now' => 'No, not now', - 'add' => 'Add', - 'last_sent_template' => 'Last Sent Template', - 'enable_flexible_search' => 'Enable Flexible Search', - 'enable_flexible_search_help' => 'Match non-contiguous characters, ie. "ct" matches "cat"', - 'vendor_details' => 'Vendor Details', - 'purchase_order_details' => 'Purchase Order Details', + 'download_report_description' => 'Se venligst vedhæftede fil for at kontrollere din rapport.', + 'left' => 'Venstre', + 'right' => 'Højre', + 'center' => 'Centrum', + 'page_numbering' => 'Sidenummerering', + 'page_numbering_alignment' => 'Sidenummereringsjustering', + 'invoice_sent_notification_label' => 'Faktura Sendt', + 'show_product_description' => 'Vis produktbeskrivelse', + 'show_product_description_help' => 'Inkluder beskrivelsen i produktrullemenuen', + 'invoice_items' => 'Faktura varer', + 'quote_items' => 'Citat varer', + 'profitloss' => 'Fortjeneste og tab', + 'import_format' => 'Format', + 'export_format' => 'Eksporter Format', + 'export_type' => 'Eksporttype', + 'stop_on_unpaid' => 'Stop ved ulønnet', + 'stop_on_unpaid_help' => 'Stop med at oprette Gentagen Faktura er, hvis den sidste Faktura er ubetalt.', + 'use_quote_terms' => 'Brug Citat Betingelser', + 'use_quote_terms_help' => 'Ved konvertering af et tilbud til en Faktura', + 'add_country' => 'Tilføj land', + 'enable_tooltips' => 'Aktiver Værktøjstip', + 'enable_tooltips_help' => 'Vis værktøjstip, når du holder musen over', + 'multiple_client_error' => 'Fejl: Optegnelser tilhører mere end én Klient', + 'login_label' => 'Log ind på en eksisterende konto', + 'purchase_order' => 'Købsordre', + 'purchase_order_number' => 'Købsordrenummer', + 'purchase_order_number_short' => 'Indkøbsordre #', + 'inventory_notification_subject' => 'Notifikation om lagertærskel for produkt: :product', + 'inventory_notification_body' => 'Tærsklen på :amount er nået for produkt: :product', + 'activity_130' => ':user oprettet indkøbsordre :purchase_order', + 'activity_131' => ':user opdateret indkøbsordre :purchase_order', + 'activity_132' => ':user arkiveret indkøbsordre :purchase_order', + 'activity_133' => ':user slettet indkøbsordre :purchase_order', + 'activity_134' => ':user genskabt indkøbsordre :purchase_order', + 'activity_135' => ':user e-mailet indkøbsordre :purchase_order', + 'activity_136' => ':contact set indkøbsordre :purchase_order', + 'purchase_order_subject' => 'Ny indkøbsordre :number fra :account', + 'purchase_order_message' => 'For at Vis din købsordre for :amount skal du klikke på linket nedenfor.', + 'view_purchase_order' => 'Vis Indkøbsordre', + 'purchase_orders_backup_subject' => 'Dine indkøbsordrer er klar til download', + 'notification_purchase_order_viewed_subject' => 'Indkøbsordre :invoice blev set af :client', + 'notification_purchase_order_viewed' => 'Følgende Sælger :client har set Indkøbsordre :invoice for :amount .', + 'purchase_order_date' => 'Dato for købsordre', + 'purchase_orders' => 'Indkøbsordre', + 'purchase_order_number_placeholder' => 'Indkøbsordre nr. :purchase_order', + 'accepted' => 'Accepteret', + 'activity_137' => ':contact accepteret indkøbsordre :purchase_order', + 'vendor_information' => 'Sælger Information', + 'notification_purchase_order_accepted_subject' => 'Indkøbsordre :purchase_order blev accepteret af :vendor', + 'notification_purchase_order_accepted' => 'Følgende Sælger :vendor accepterede Købsordre :purchase_order for :amount .', + 'amount_received' => 'Beløb modtaget', + 'purchase_order_already_expensed' => 'Allerede konverteret til en Udgift .', + 'convert_to_expense' => 'Konverter til Udgift', + 'add_to_inventory' => 'Tilføj til inventar', + 'added_purchase_order_to_inventory' => 'Succesfuldt tilføjede indkøbsordre til lagerbeholdningen', + 'added_purchase_orders_to_inventory' => 'Succesfuldt tilføjede indkøbsordrer til lagerbeholdningen', + 'client_document_upload' => 'Klient dokument upload', + 'vendor_document_upload' => 'Sælger Dokument Upload', + 'vendor_document_upload_help' => 'Gør det muligt for leverandører at uploade dokumenter', + 'are_you_enjoying_the_app' => 'Nyder du appen?', + 'yes_its_great' => 'Ja, det er fantastisk!', + 'not_so_much' => 'Ikke så meget', + 'would_you_rate_it' => 'Godt at høre! Vil du bedømme det?', + 'would_you_tell_us_more' => 'Ked af at høre det! Vil du fortælle os mere?', + 'sure_happy_to' => 'Selvfølgelig, glad for det', + 'no_not_now' => 'Nej, ikke nu', + 'add' => 'Tilføj', + 'last_sent_template' => 'Sidst sendt skabelon', + 'enable_flexible_search' => 'Aktiver fleksibel søgning', + 'enable_flexible_search_help' => 'Match ikke sammenhængende tegn, dvs. "ct" matcher "kat"', + 'vendor_details' => 'Sælger Detaljer', + 'purchase_order_details' => 'Købsordredetaljer', 'qr_iban' => 'QR IBAN', 'besr_id' => 'BESR ID', - 'clone_to_purchase_order' => 'Clone to PO', - 'vendor_email_not_set' => 'Vendor does not have an email address set', - 'bulk_send_email' => 'Send Email', - 'marked_purchase_order_as_sent' => 'Successfully marked purchase order as sent', - 'marked_purchase_orders_as_sent' => 'Successfully marked purchase orders as sent', - 'accepted_purchase_order' => 'Successfully accepted purchase order', - 'accepted_purchase_orders' => 'Successfully accepted purchase orders', - 'cancelled_purchase_order' => 'Successfully cancelled purchase order', - 'cancelled_purchase_orders' => 'Successfully cancelled purchase orders', - 'please_select_a_vendor' => 'Please select a vendor', - 'purchase_order_total' => 'Purchase Order Total', - 'email_purchase_order' => 'Email Purchase Order', - 'bulk_email_purchase_order' => 'Email Purchase Order', - 'disconnected_email' => 'Successfully disconnected email', - 'connect_email' => 'Connect Email', - 'disconnect_email' => 'Disconnect Email', - 'use_web_app_to_connect_microsoft' => 'Please use the web app to connect to Microsoft', - 'email_provider' => 'Email Provider', - 'connect_microsoft' => 'Connect Microsoft', - 'disconnect_microsoft' => 'Disconnect Microsoft', - 'connected_microsoft' => 'Successfully connected Microsoft', - 'disconnected_microsoft' => 'Successfully disconnected Microsoft', - 'microsoft_sign_in' => 'Login with Microsoft', - 'microsoft_sign_up' => 'Sign up with Microsoft', - 'emailed_purchase_order' => 'Successfully queued purchase order to be sent', - 'emailed_purchase_orders' => 'Successfully queued purchase orders to be sent', - 'enable_react_app' => 'Change to the React web app', - 'purchase_order_design' => 'Purchase Order Design', - 'purchase_order_terms' => 'Purchase Order Terms', - 'purchase_order_footer' => 'Purchase Order Footer', - 'require_purchase_order_signature' => 'Purchase Order Signature', - 'require_purchase_order_signature_help' => 'Require vendor to provide their signature.', - 'new_purchase_order' => 'New Purchase Order', - 'edit_purchase_order' => 'Edit Purchase Order', - 'created_purchase_order' => 'Successfully created purchase order', - 'updated_purchase_order' => 'Successfully updated purchase order', - 'archived_purchase_order' => 'Successfully archived purchase order', - 'deleted_purchase_order' => 'Successfully deleted purchase order', - 'removed_purchase_order' => 'Successfully removed purchase order', - 'restored_purchase_order' => 'Successfully restored purchase order', - 'search_purchase_order' => 'Search Purchase Order', - 'search_purchase_orders' => 'Search Purchase Orders', + 'clone_to_purchase_order' => 'Klon til PO', + 'vendor_email_not_set' => 'Sælger har ikke angivet en e-mail', + 'bulk_send_email' => 'Send e-mail', + 'marked_purchase_order_as_sent' => 'Succesfuldt markeret indkøbsordre som sendt', + 'marked_purchase_orders_as_sent' => 'Succesfuldt markerede indkøbsordrer som afsendt', + 'accepted_purchase_order' => 'Succesfuldt accepteret indkøbsordre', + 'accepted_purchase_orders' => 'Succesfuldt accepterede indkøbsordrer', + 'cancelled_purchase_order' => 'Succesfuldt annulleret indkøbsordre', + 'cancelled_purchase_orders' => 'Succesfuldt annullerede indkøbsordrer', + 'please_select_a_vendor' => 'Vælg venligst en Sælger', + 'purchase_order_total' => 'Købsordre Total', + 'email_purchase_order' => 'e-mail Indkøbsordre', + 'bulk_email_purchase_order' => 'e-mail Indkøbsordre', + 'disconnected_email' => 'Succesfuldt afbrudt e-mail', + 'connect_email' => 'Tilslut e-mail', + 'disconnect_email' => 'Afbryd forbindelsen e-mail', + 'use_web_app_to_connect_microsoft' => 'Brug venligst webappen til at oprette forbindelse til Microsoft', + 'email_provider' => 'e-mail udbyder', + 'connect_microsoft' => 'Tilslut Microsoft', + 'disconnect_microsoft' => 'Afbryd Microsoft', + 'connected_microsoft' => 'Succesfuldt forbundet Microsoft', + 'disconnected_microsoft' => 'Succesfuldt afbrudt Microsoft', + 'microsoft_sign_in' => 'Log ind med Microsoft', + 'microsoft_sign_up' => 'Tilmeld dig hos Microsoft', + 'emailed_purchase_order' => 'Succesfuldt købsordre i kø skal sendes', + 'emailed_purchase_orders' => 'Succesfuldt stillede indkøbsordrer i kø, der skulle sendes', + 'enable_react_app' => 'Skift til React-webappen', + 'purchase_order_design' => 'Indkøbsordre design', + 'purchase_order_terms' => 'Købsordre Betingelser', + 'purchase_order_footer' => 'Indkøbsordre sidefod', + 'require_purchase_order_signature' => 'Købsordresignatur', + 'require_purchase_order_signature_help' => 'Kræv Sælger om at give deres underskrift.', + 'new_purchase_order' => 'Ny indkøbsordre', + 'edit_purchase_order' => 'Redigér Indkøbsordre', + 'created_purchase_order' => 'Succesfuldt oprettet indkøbsordre', + 'updated_purchase_order' => 'Succesfuldt opdateret indkøbsordre', + 'archived_purchase_order' => 'Succesfuldt arkiveret indkøbsordre', + 'deleted_purchase_order' => 'Succesfuldt slettet indkøbsordre', + 'removed_purchase_order' => 'Succesfuldt fjernet indkøbsordre', + 'restored_purchase_order' => 'Succesfuldt genskabt indkøbsordre', + 'search_purchase_order' => 'Søg indkøbsordre', + 'search_purchase_orders' => 'Søg i indkøbsordrer', 'login_url' => 'Login URL', - 'enable_applying_payments' => 'Enable Applying Payments', - 'enable_applying_payments_help' => 'Support separately creating and applying payments', - 'stock_quantity' => 'Stock Quantity', - 'notification_threshold' => 'Notification Threshold', - 'track_inventory' => 'Track Inventory', - 'track_inventory_help' => 'Display a product stock field and update when invoices are sent', - 'stock_notifications' => 'Stock Notifications', - 'stock_notifications_help' => 'Send an email when the stock reaches the threshold', - 'vat' => 'VAT', - 'view_map' => 'View Map', - 'set_default_design' => 'Set Default Design', - 'purchase_order_issued_to' => 'Purchase Order issued to', - 'archive_task_status' => 'Archive Task Status', - 'delete_task_status' => 'Delete Task Status', - 'restore_task_status' => 'Restore Task Status', - 'lang_Hebrew' => 'Hebrew', - 'price_change_accepted' => 'Price change accepted', - 'price_change_failed' => 'Price change failed with code', - 'restore_purchases' => 'Restore Purchases', - 'activate' => 'Activate', - 'connect_apple' => 'Connect Apple', - 'disconnect_apple' => 'Disconnect Apple', - 'disconnected_apple' => 'Successfully disconnected Apple', - 'send_now' => 'Send Now', - 'received' => 'Received', - 'converted_to_expense' => 'Successfully converted to expense', - 'converted_to_expenses' => 'Successfully converted to expenses', - 'entity_removed' => 'This document has been removed, please contact the vendor for further information', - 'entity_removed_title' => 'Document no longer available', - 'field' => 'Field', - 'period' => 'Period', - 'fields_per_row' => 'Fields Per Row', - 'total_active_invoices' => 'Active Invoices', - 'total_outstanding_invoices' => 'Outstanding Invoices', - 'total_completed_payments' => 'Completed Payments', - 'total_refunded_payments' => 'Refunded Payments', - 'total_active_quotes' => 'Active Quotes', - 'total_approved_quotes' => 'Approved Quotes', - 'total_unapproved_quotes' => 'Unapproved Quotes', - 'total_logged_tasks' => 'Logged Tasks', - 'total_invoiced_tasks' => 'Invoiced Tasks', - 'total_paid_tasks' => 'Paid Tasks', - 'total_logged_expenses' => 'Logged Expenses', - 'total_pending_expenses' => 'Pending Expenses', - 'total_invoiced_expenses' => 'Invoiced Expenses', - 'total_invoice_paid_expenses' => 'Invoice Paid Expenses', - 'vendor_portal' => 'Vendor Portal', - 'send_code' => 'Send Code', - 'save_to_upload_documents' => 'Save the record to upload documents', - 'expense_tax_rates' => 'Expense Tax Rates', - 'invoice_item_tax_rates' => 'Invoice Item Tax Rates', - 'verified_phone_number' => 'Successfully verified phone number', - 'code_was_sent' => 'A code has been sent via SMS', - 'resend' => 'Resend', - 'verify' => 'Verify', - 'enter_phone_number' => 'Please provide a phone number', - 'invalid_phone_number' => 'Invalid phone number', - 'verify_phone_number' => 'Verify Phone Number', - 'verify_phone_number_help' => 'Please verify your phone number to send emails', - 'merged_clients' => 'Successfully merged clients', - 'merge_into' => 'Merge Into', - 'php81_required' => 'Note: v5.5 requires PHP 8.1', - 'bulk_email_purchase_orders' => 'Email Purchase Orders', - 'bulk_email_invoices' => 'Email Invoices', - 'bulk_email_quotes' => 'Email Quotes', - 'bulk_email_credits' => 'Email Credits', - 'archive_purchase_order' => 'Archive Purchase Order', - 'restore_purchase_order' => 'Restore Purchase Order', - 'delete_purchase_order' => 'Delete Purchase Order', - 'connect' => 'Connect', - 'mark_paid_payment_email' => 'Mark Paid Payment Email', - 'convert_to_project' => 'Convert to Project', - 'client_email' => 'Client Email', - 'invoice_task_project' => 'Invoice Task Project', - 'invoice_task_project_help' => 'Add the project to the invoice line items', + 'enable_applying_payments' => 'Manuelle overbetalinger', + 'enable_applying_payments_help' => 'Support til at tilføje en overbetaling Beløb manuelt på en Betaling', + 'stock_quantity' => 'Lagermængde', + 'notification_threshold' => 'Underretningstærskel', + 'track_inventory' => 'Spor inventar', + 'track_inventory_help' => 'Vis et produktlagerfelt og opdater, når Fakturaer sendes', + 'stock_notifications' => 'Aktiemeddelelser', + 'stock_notifications_help' => 'Send en e-mail , når beholdningen når tærsklen', + 'vat' => 'moms', + 'view_map' => 'Vis kort', + 'set_default_design' => 'Indstil standarddesign', + 'purchase_order_issued_to' => 'Købsordre udstedt til', + 'archive_task_status' => 'Arkiv Opgave Status', + 'delete_task_status' => 'Slet Opgave Status', + 'restore_task_status' => 'Genskab Opgave Status', + 'lang_Hebrew' => 'hebraisk', + 'price_change_accepted' => 'Prisændring accepteret', + 'price_change_failed' => 'Prisændring mislykkedes med kode', + 'restore_purchases' => 'Genskab Indkøb', + 'activate' => 'Aktiver', + 'connect_apple' => 'Tilslut Apple', + 'disconnect_apple' => 'Afbryd Apple', + 'disconnected_apple' => 'Succesfuldt afbrudt Apple', + 'send_now' => 'Send nu', + 'received' => 'Modtaget', + 'converted_to_expense' => 'Succesfuldt konverteret til Udgift', + 'converted_to_expenses' => 'Succesfuldt omregnet til udgifter', + 'entity_removed' => 'Dette dokument er fjernet, kontakt venligst Sælger for yderligere information', + 'entity_removed_title' => 'Dokumentet er ikke længere tilgængeligt', + 'field' => 'Mark', + 'period' => 'Periode', + 'fields_per_row' => 'Felter pr. række', + 'total_active_invoices' => 'Aktiv Fakturaer', + 'total_outstanding_invoices' => 'Fremragende Fakturaer', + 'total_completed_payments' => 'Gennemført Betalinger', + 'total_refunded_payments' => 'Refunderet Betalinger', + 'total_active_quotes' => 'Aktive citater', + 'total_approved_quotes' => 'Godkendt Citater', + 'total_unapproved_quotes' => 'Ikke-godkendte citater', + 'total_logged_tasks' => 'Loggede opgaver', + 'total_invoiced_tasks' => 'Fakturerede opgaver', + 'total_paid_tasks' => 'Betalte opgaver', + 'total_logged_expenses' => 'Loggede Udgifter', + 'total_pending_expenses' => 'Afventende udgifter', + 'total_invoiced_expenses' => 'Fakturerede udgifter', + 'total_invoice_paid_expenses' => 'Faktura Betalte Udgifter', + 'vendor_portal' => 'Sælger Portal', + 'send_code' => 'Send kode', + 'save_to_upload_documents' => 'Gem posten for at uploade dokumenter', + 'expense_tax_rates' => 'Udgift Skattesatser', + 'invoice_item_tax_rates' => 'Faktura Vareafgiftssatser', + 'verified_phone_number' => 'Succesfuldt verificeret Telefon', + 'code_was_sent' => 'En kode er sendt via SMS', + 'resend' => 'Send igen', + 'verify' => 'Verificere', + 'enter_phone_number' => 'Angiv venligst et Telefon', + 'invalid_phone_number' => 'Ugyldigt Telefon', + 'verify_phone_number' => 'Bekræft Telefon', + 'verify_phone_number_help' => 'Bekræft venligst dit Telefon for at sende e-mails', + 'merged_clients' => 'Succesfuldt fusionerede Klienter', + 'merge_into' => 'Flet ind i', + 'php81_required' => 'Bemærk : v5.5 kræver PHP 8.1', + 'bulk_email_purchase_orders' => 'e-mail Indkøbsordrer', + 'bulk_email_invoices' => 'e-mail Fakturaer', + 'bulk_email_quotes' => 'e-mail tilbud', + 'bulk_email_credits' => 'e-mail Credits', + 'archive_purchase_order' => 'Arkiv Indkøbsordre', + 'restore_purchase_order' => 'Genskab Indkøbsordre', + 'delete_purchase_order' => 'Slet Indkøbsordre', + 'connect' => 'Forbinde', + 'mark_paid_payment_email' => 'Mark Betalt Betaling e-mail', + 'convert_to_project' => 'Konverter til projekt', + 'client_email' => 'Klient e-mail', + 'invoice_task_project' => 'Faktura Opgave Projekt', + 'invoice_task_project_help' => 'Tilføj projektet til Faktura linjeposterne', 'bulk_action' => 'Bulk Action', - 'phone_validation_error' => 'This mobile (cell) phone number is not valid, please enter in E.164 format', - 'transaction' => 'Transaction', - 'disable_2fa' => 'Disable 2FA', - 'change_number' => 'Change Number', - 'resend_code' => 'Resend Code', + 'phone_validation_error' => 'Dette Telefon (celle) er ikke gyldigt. Indtast venligst i E.164 Format', + 'transaction' => 'Transaktion', + 'disable_2fa' => 'Deaktiver 2FA', + 'change_number' => 'Skift nummer', + 'resend_code' => 'Gensend kode', 'base_type' => 'Base Type', - 'category_type' => 'Category Type', - 'bank_transaction' => 'Transaction', - 'bulk_print' => 'Print PDF', - 'vendor_postal_code' => 'Vendor Postal Code', - 'preview_location' => 'Preview Location', - 'bottom' => 'Bottom', + 'category_type' => 'Kategori Type', + 'bank_transaction' => 'Transaktion', + 'bulk_print' => 'Udskriv PDF', + 'vendor_postal_code' => 'Sælger Postnummer', + 'preview_location' => 'Forhåndsvisning af placering', + 'bottom' => 'Bund', 'side' => 'Side', - 'pdf_preview' => 'PDF Preview', - 'long_press_to_select' => 'Long Press to Select', - 'purchase_order_item' => 'Purchase Order Item', - 'would_you_rate_the_app' => 'Would you like to rate the app?', - 'include_deleted' => 'Include Deleted', - 'include_deleted_help' => 'Include deleted records in reports', - 'due_on' => 'Due On', - 'browser_pdf_viewer' => 'Use Browser PDF Viewer', - 'browser_pdf_viewer_help' => 'Warning: Prevents interacting with app over the PDF', - 'converted_transactions' => 'Successfully converted transactions', - 'default_category' => 'Default Category', - 'connect_accounts' => 'Connect Accounts', - 'manage_rules' => 'Manage Rules', - 'search_category' => 'Search 1 Category', - 'search_categories' => 'Search :count Categories', - 'min_amount' => 'Min Amount', - 'max_amount' => 'Max Amount', - 'converted_transaction' => 'Successfully converted transaction', - 'convert_to_payment' => 'Convert to Payment', - 'deposit' => 'Deposit', - 'withdrawal' => 'Withdrawal', - 'deposits' => 'Deposits', - 'withdrawals' => 'Withdrawals', - 'matched' => 'Matched', - 'unmatched' => 'Unmatched', - 'create_credit' => 'Create Credit', - 'transactions' => 'Transactions', - 'new_transaction' => 'New Transaction', - 'edit_transaction' => 'Edit Transaction', - 'created_transaction' => 'Successfully created transaction', - 'updated_transaction' => 'Successfully updated transaction', - 'archived_transaction' => 'Successfully archived transaction', - 'deleted_transaction' => 'Successfully deleted transaction', - 'removed_transaction' => 'Successfully removed transaction', - 'restored_transaction' => 'Successfully restored transaction', - 'search_transaction' => 'Search Transaction', - 'search_transactions' => 'Search :count Transactions', - 'deleted_bank_account' => 'Successfully deleted bank account', - 'removed_bank_account' => 'Successfully removed bank account', - 'restored_bank_account' => 'Successfully restored bank account', - 'search_bank_account' => 'Search Bank Account', - 'search_bank_accounts' => 'Search :count Bank Accounts', - 'code_was_sent_to' => 'A code has been sent via SMS to :number', - 'verify_phone_number_2fa_help' => 'Please verify your phone number for 2FA backup', - 'enable_applying_payments_later' => 'Enable Applying Payments Later', - 'line_item_tax_rates' => 'Line Item Tax Rates', - 'show_tasks_in_client_portal' => 'Show Tasks in Client Portal', - 'notification_quote_expired_subject' => 'Quote :invoice has expired for :client', - 'notification_quote_expired' => 'The following Quote :invoice for client :client and :amount has now expired.', - 'auto_sync' => 'Auto Sync', - 'refresh_accounts' => 'Refresh Accounts', - 'upgrade_to_connect_bank_account' => 'Upgrade to Enterprise to connect your bank account', - 'click_here_to_connect_bank_account' => 'Click here to connect your bank account', - 'include_tax' => 'Include tax', - 'email_template_change' => 'E-mail template body can be changed on', - 'task_update_authorization_error' => 'Insufficient permissions, or task may be locked', - 'cash_vs_accrual' => 'Accrual accounting', - 'cash_vs_accrual_help' => 'Turn on for accrual reporting, turn off for cash basis reporting.', - 'expense_paid_report' => 'Expensed reporting', - 'expense_paid_report_help' => 'Turn on for reporting all expenses, turn off for reporting only paid expenses', - 'online_payment_email_help' => 'Send an email when an online payment is made', - 'manual_payment_email_help' => 'Send an email when manually entering a payment', - 'mark_paid_payment_email_help' => 'Send an email when marking an invoice as paid', - 'linked_transaction' => 'Successfully linked transaction', - 'link_payment' => 'Link Payment', - 'link_expense' => 'Link Expense', - 'lock_invoiced_tasks' => 'Lock Invoiced Tasks', - 'lock_invoiced_tasks_help' => 'Prevent tasks from being edited once invoiced', - 'registration_required_help' => 'Require clients to register', - 'use_inventory_management' => 'Use Inventory Management', - 'use_inventory_management_help' => 'Require products to be in stock', - 'optional_products' => 'Optional Products', - 'optional_recurring_products' => 'Optional Recurring Products', - 'convert_matched' => 'Convert', - 'auto_billed_invoice' => 'Successfully queued invoice to be auto-billed', - 'auto_billed_invoices' => 'Successfully queued invoices to be auto-billed', - 'operator' => 'Operator', - 'value' => 'Value', - 'is' => 'Is', - 'contains' => 'Contains', - 'starts_with' => 'Starts with', - 'is_empty' => 'Is empty', - 'add_rule' => 'Add Rule', - 'match_all_rules' => 'Match All Rules', - 'match_all_rules_help' => 'All criteria needs to match for the rule to be applied', - 'auto_convert_help' => 'Automatically convert matched transactions to expenses', - 'rules' => 'Rules', - 'transaction_rule' => 'Transaction Rule', - 'transaction_rules' => 'Transaction Rules', - 'new_transaction_rule' => 'New Transaction Rule', - 'edit_transaction_rule' => 'Edit Transaction Rule', - 'created_transaction_rule' => 'Successfully created rule', - 'updated_transaction_rule' => 'Successfully updated transaction rule', - 'archived_transaction_rule' => 'Successfully archived transaction rule', - 'deleted_transaction_rule' => 'Successfully deleted transaction rule', - 'removed_transaction_rule' => 'Successfully removed transaction rule', - 'restored_transaction_rule' => 'Successfully restored transaction rule', - 'search_transaction_rule' => 'Search Transaction Rule', - 'search_transaction_rules' => 'Search Transaction Rules', + 'pdf_preview' => 'PDF forhåndsvisning', + 'long_press_to_select' => 'Langt tryk for at vælge', + 'purchase_order_item' => 'Indkøbsordre vare', + 'would_you_rate_the_app' => 'Vil du bedømme appen?', + 'include_deleted' => 'Inkluder slettet', + 'include_deleted_help' => 'Inkluder slettet i rapporter', + 'due_on' => 'Forfalder', + 'browser_pdf_viewer' => 'Brug Browser PDF Viewer', + 'browser_pdf_viewer_help' => 'Advarsel: Forhindrer interaktion med app over PDF', + 'converted_transactions' => 'Succesfuldt konverterede transaktioner', + 'default_category' => 'Standard kategori', + 'connect_accounts' => 'Tilslut konti', + 'manage_rules' => 'Administrer regler', + 'search_category' => 'Søg 1 kategori', + 'search_categories' => 'Søg i :count Kategorier', + 'min_amount' => 'Min Beløb', + 'max_amount' => 'Max Beløb', + 'converted_transaction' => 'Succesfuldt konverteret transaktion', + 'convert_to_payment' => 'Konverter til Betaling', + 'deposit' => 'Depositum', + 'withdrawal' => 'Tilbagetrækning', + 'deposits' => 'Indskud', + 'withdrawals' => 'Udbetalinger', + 'matched' => 'Matchet', + 'unmatched' => 'Uovertruffen', + 'create_credit' => 'Opret Kredit', + 'transactions' => 'Transaktioner', + 'new_transaction' => 'Ny transaktion', + 'edit_transaction' => 'Redigér Transaktion', + 'created_transaction' => 'Succesfuldt oprettet transaktion', + 'updated_transaction' => 'Succesfuldt opdateret transaktion', + 'archived_transaction' => 'Succesfuldt arkiveret transaktion', + 'deleted_transaction' => 'Succesfuldt slettet transaktion', + 'removed_transaction' => 'Succesfuldt fjernet transaktion', + 'restored_transaction' => 'Succesfuldt genskabt transaktion', + 'search_transaction' => 'Søg transaktion', + 'search_transactions' => 'Søg :count Transaktioner', + 'deleted_bank_account' => 'Succesfuldt slettet bankkonto', + 'removed_bank_account' => 'Succesfuldt fjernet bankkonto', + 'restored_bank_account' => 'Succesfuldt genskabt bankkonto', + 'search_bank_account' => 'Søg bankkonto', + 'search_bank_accounts' => 'Søg på :count bankkonti', + 'code_was_sent_to' => 'En kode er sendt via SMS til :number', + 'verify_phone_number_2fa_help' => 'Bekræft venligst dit Telefon for 2FA backup', + 'enable_applying_payments_later' => 'Aktiver Anvendelse af Betalinger senere', + 'line_item_tax_rates' => 'Afgiftssatser for linjeposter', + 'show_tasks_in_client_portal' => 'Vis opgaver i Klient', + 'notification_quote_expired_subject' => 'Citat :invoice er udløbet for :client', + 'notification_quote_expired' => 'Følgende citat :invoice for Klient :client og :amount er nu udløbet.', + 'auto_sync' => 'Automatisk synkronisering', + 'refresh_accounts' => 'Opdater konti', + 'upgrade_to_connect_bank_account' => 'Opgrader til Enterprise for at tilknytte din bankkonto', + 'click_here_to_connect_bank_account' => 'Klik her for at tilknytte din bankkonto', + 'include_tax' => 'Inkluder skat', + 'email_template_change' => 'E-mail skabelontekst kan ændres på', + 'task_update_authorization_error' => 'Utilstrækkelige tilladelser, eller Opgave kan være låst', + 'cash_vs_accrual' => 'Periodiseringsregnskab', + 'cash_vs_accrual_help' => 'Slå til for periodiseringsrapportering, sluk for kontantbasisrapportering.', + 'expense_paid_report' => 'Udgiftsrapportering', + 'expense_paid_report_help' => 'Slå til for at rapportere alle udgifter, slå fra for kun at rapportere betalte udgifter', + 'online_payment_email_help' => 'Send en e-mail , når en online Betaling er lavet', + 'manual_payment_email_help' => 'Send en e-mail ved manuel indtastning af en Betaling', + 'mark_paid_payment_email_help' => 'Send en e-mail , når du markerer en Faktura som betalt', + 'linked_transaction' => 'Succesfuldt forbundet transaktion', + 'link_payment' => 'Link Betaling', + 'link_expense' => 'Link Udgift', + 'lock_invoiced_tasks' => 'Lås fakturerede opgaver', + 'lock_invoiced_tasks_help' => 'Undgå, at opgaver redigeres, når de er faktureret', + 'registration_required_help' => 'Kræv, at Klienter registrerer sig', + 'use_inventory_management' => 'Brug lagerstyring', + 'use_inventory_management_help' => 'Kræv produkter på lager', + 'optional_products' => 'Valgfrie produkter', + 'optional_recurring_products' => 'Valgfri Gentagen -produkter', + 'convert_matched' => 'Konvertere', + 'auto_billed_invoice' => 'Succesfuldt stillede Faktura i kø for at blive autofaktureret', + 'auto_billed_invoices' => 'Succesfuldt stillede Fakturaer i kø for at blive autofaktureret', + 'operator' => 'Operatør', + 'value' => 'Værdi', + 'is' => 'Er', + 'contains' => 'Indeholder', + 'starts_with' => 'Starter med', + 'is_empty' => 'Er tom', + 'add_rule' => 'Tilføj regel', + 'match_all_rules' => 'Match alle regler', + 'match_all_rules_help' => 'Alle kriterier skal matche, for at reglen kan anvendes', + 'auto_convert_help' => 'Konverter automatisk matchede transaktioner til udgifter', + 'rules' => 'Regler', + 'transaction_rule' => 'Transaktionsregel', + 'transaction_rules' => 'Transaktionsregler', + 'new_transaction_rule' => 'Ny transaktionsregel', + 'edit_transaction_rule' => 'Redigér Transaktionsregel', + 'created_transaction_rule' => 'Succesfuldt oprettet regel', + 'updated_transaction_rule' => 'Succesfuldt opdateret transaktionsregel', + 'archived_transaction_rule' => 'Succesfuldt arkiveret transaktionsregel', + 'deleted_transaction_rule' => 'Succesfuldt slettet transaktionsregel', + 'removed_transaction_rule' => 'Succesfuldt fjernet transaktionsregel', + 'restored_transaction_rule' => 'Succesfuldt genskabt transaktionsregel', + 'search_transaction_rule' => 'Søgetransaktionsregel', + 'search_transaction_rules' => 'Søgetransaktionsregler', 'payment_type_Interac E-Transfer' => 'Interac E-Transfer', - 'delete_bank_account' => 'Delete Bank Account', - 'archive_transaction' => 'Archive Transaction', - 'delete_transaction' => 'Delete Transaction', - 'otp_code_message' => 'We have sent a code to :email enter this code to proceed.', - 'otp_code_subject' => 'Your one time passcode code', - 'otp_code_body' => 'Your one time passcode is :code', - 'delete_tax_rate' => 'Delete Tax Rate', - 'restore_tax_rate' => 'Restore Tax Rate', - 'company_backup_file' => 'Select company backup file', - 'company_backup_file_help' => 'Please upload the .zip file used to create this backup.', - 'backup_restore' => 'Backup | Restore', - 'export_company' => 'Create company backup', + 'delete_bank_account' => 'Slet bankkonto', + 'archive_transaction' => 'Arkiv Transaktion', + 'delete_transaction' => 'Slet Transaktion', + 'otp_code_message' => 'Vi har sendt en kode til :email Indtast denne kode for at fortsætte.', + 'otp_code_subject' => 'Din engangskode', + 'otp_code_body' => 'Din engangskode er :code', + 'delete_tax_rate' => 'Slet Skattesats', + 'restore_tax_rate' => 'Genskab Skattesats', + 'company_backup_file' => 'Vælg virksomhedens backup-fil', + 'company_backup_file_help' => 'Upload venligst .zip-filen, der blev brugt til at Opret denne sikkerhedskopi.', + 'backup_restore' => 'Backup | Genskab', + 'export_company' => 'Opret firma backup', 'backup' => 'Backup', - 'notification_purchase_order_created_body' => 'The following purchase_order :purchase_order was created for vendor :vendor for :amount.', - 'notification_purchase_order_created_subject' => 'Purchase Order :purchase_order was created for :vendor', - 'notification_purchase_order_sent_subject' => 'Purchase Order :purchase_order was sent to :vendor', - 'notification_purchase_order_sent' => 'The following vendor :vendor was emailed Purchase Order :purchase_order for :amount.', - 'subscription_blocked' => 'This product is a restricted item, please contact the vendor for further information.', - 'subscription_blocked_title' => 'Product not available.', - 'purchase_order_created' => 'Purchase Order Created', - 'purchase_order_sent' => 'Purchase Order Sent', - 'purchase_order_viewed' => 'Purchase Order Viewed', - 'purchase_order_accepted' => 'Purchase Order Accepted', - 'credit_payment_error' => 'The credit amount can not be greater than the payment amount', - 'convert_payment_currency_help' => 'Set an exchange rate when entering a manual payment', - 'convert_expense_currency_help' => 'Set an exchange rate when creating an expense', + 'notification_purchase_order_created_body' => 'Følgende indkøbsordre :purchase_order blev oprettet for Sælger :vendor for :amount .', + 'notification_purchase_order_created_subject' => 'Indkøbsordre :purchase_order blev oprettet for :vendor', + 'notification_purchase_order_sent_subject' => 'Indkøbsordre :purchase_order blev sendt til :vendor', + 'notification_purchase_order_sent' => 'Følgende Sælger :vendor blev e-mailet med indkøbsordre :purchase_order for :amount .', + 'subscription_blocked' => 'Dette produkt er en begrænset vare, kontakt venligst Sælger for yderligere information.', + 'subscription_blocked_title' => 'Produktet er ikke tilgængeligt.', + 'purchase_order_created' => 'Købsordre oprettet', + 'purchase_order_sent' => 'Købsordre sendt', + 'purchase_order_viewed' => 'Købsordre set', + 'purchase_order_accepted' => 'Købsordre accepteret', + 'credit_payment_error' => 'Kreditten Beløb kan ikke være større end Betaling Beløb', + 'convert_payment_currency_help' => 'Indstil en valutakurs ved indtastning af en manuel Betaling', + 'convert_expense_currency_help' => 'Indstil en valutakurs, når du opretter en Udgift', 'matomo_url' => 'Matomo URL', 'matomo_id' => 'Matomo Id', - 'action_add_to_invoice' => 'Add To Invoice', - 'danger_zone' => 'Danger Zone', - 'import_completed' => 'Import completed', - 'client_statement_body' => 'Your statement from :start_date to :end_date is attached.', - 'email_queued' => 'Email queued', - 'clone_to_recurring_invoice' => 'Clone to Recurring Invoice', - 'inventory_threshold' => 'Inventory Threshold', - 'emailed_statement' => 'Successfully queued statement to be sent', - 'show_email_footer' => 'Show Email Footer', - 'invoice_task_hours' => 'Invoice Task Hours', - 'invoice_task_hours_help' => 'Add the hours to the invoice line items', - 'auto_bill_standard_invoices' => 'Auto Bill Standard Invoices', - 'auto_bill_recurring_invoices' => 'Auto Bill Recurring Invoices', - 'email_alignment' => 'Email Alignment', - 'pdf_preview_location' => 'PDF Preview Location', + 'action_add_to_invoice' => 'Tilføj til Faktura', + 'danger_zone' => 'Farezone', + 'import_completed' => 'Import afsluttet', + 'client_statement_body' => 'Din erklæring fra :start _date til :end _date er vedhæftet.', + 'email_queued' => 'e-mail i kø', + 'clone_to_recurring_invoice' => 'Klon til Gentagen Faktura', + 'inventory_threshold' => 'Beholdningstærskel', + 'emailed_statement' => 'Succesfuldt erklæring i kø skal sendes', + 'show_email_footer' => 'Vis e-mail -sidefod', + 'invoice_task_hours' => 'Faktura Opgave Timer', + 'invoice_task_hours_help' => 'Tilføj timerne til Faktura linjeposterne', + 'auto_bill_standard_invoices' => 'Auto Bill Standard Fakturaer', + 'auto_bill_recurring_invoices' => 'Auto Bill Gentagen Fakturaer', + 'email_alignment' => 'e-mail justering', + 'pdf_preview_location' => 'PDF eksempelplacering', 'mailgun' => 'Mailgun', - 'postmark' => 'Postmark', + 'postmark' => 'Poststempel', 'microsoft' => 'Microsoft', - 'click_plus_to_create_record' => 'Click + to create a record', - 'last365_days' => 'Last 365 Days', - 'import_design' => 'Import Design', - 'imported_design' => 'Successfully imported design', - 'invalid_design' => 'The design is invalid, the :value section is missing', - 'setup_wizard_logo' => 'Would you like to upload your logo?', - 'installed_version' => 'Installed Version', - 'notify_vendor_when_paid' => 'Notify Vendor When Paid', - 'notify_vendor_when_paid_help' => 'Send an email to the vendor when the expense is marked as paid', - 'update_payment' => 'Update Payment', + 'click_plus_to_create_record' => 'Klik på + for at Opret en post', + 'last365_days' => 'Sidste 365 dage', + 'import_design' => 'Import design', + 'imported_design' => 'Succesfuldt importeret design', + 'invalid_design' => 'Designet er ugyldigt, :value sektionen mangler', + 'setup_wizard_logo' => 'Vil du uploade dit logo?', + 'installed_version' => 'Installeret version', + 'notify_vendor_when_paid' => 'Giv Sælger besked ved betaling', + 'notify_vendor_when_paid_help' => 'Send en e-mail til Sælger , når Udgift er markeret som betalt', + 'update_payment' => 'Opdater Betaling', 'markup' => 'Markup', - 'unlock_pro' => 'Unlock Pro', - 'upgrade_to_paid_plan_to_schedule' => 'Upgrade to a paid plan to create schedules', - 'next_run' => 'Next Run', - 'all_clients' => 'All Clients', - 'show_aging_table' => 'Show Aging Table', - 'show_payments_table' => 'Show Payments Table', - 'only_clients_with_invoices' => 'Only Clients with Invoices', - 'email_statement' => 'Email Statement', - 'once' => 'Once', - 'schedules' => 'Schedules', - 'new_schedule' => 'New Schedule', - 'edit_schedule' => 'Edit Schedule', - 'created_schedule' => 'Successfully created schedule', - 'updated_schedule' => 'Successfully updated schedule', - 'archived_schedule' => 'Successfully archived schedule', - 'deleted_schedule' => 'Successfully deleted schedule', - 'removed_schedule' => 'Successfully removed schedule', - 'restored_schedule' => 'Successfully restored schedule', - 'search_schedule' => 'Search Schedule', - 'search_schedules' => 'Search Schedules', - 'update_product' => 'Update Product', - 'create_purchase_order' => 'Create Purchase Order', - 'update_purchase_order' => 'Update Purchase Order', - 'sent_invoice' => 'Sent Invoice', - 'sent_quote' => 'Sent Quote', - 'sent_credit' => 'Sent Credit', - 'sent_purchase_order' => 'Sent Purchase Order', - 'image_url' => 'Image URL', - 'max_quantity' => 'Max Quantity', + 'unlock_pro' => 'Lås Pro op', + 'upgrade_to_paid_plan_to_schedule' => 'Opgrader til en betalt plan til Opret planer', + 'next_run' => 'Næste løb', + 'all_clients' => 'Alle Klienter', + 'show_aging_table' => 'Vis aldringstabel', + 'show_payments_table' => 'Vis Betalinger Tabel', + 'only_clients_with_invoices' => 'Kun Klienter med Fakturaer', + 'email_statement' => 'e-mail erklæring', + 'once' => 'Enkelt gang', + 'schedules' => 'Tidsplaner', + 'new_schedule' => 'Nyt skema', + 'edit_schedule' => 'Redigér Tidsplan', + 'created_schedule' => 'Succesfuldt oprettet tidsplan', + 'updated_schedule' => 'Succesfuldt opdateret tidsplan', + 'archived_schedule' => 'Succesfuldt arkiveret tidsplan', + 'deleted_schedule' => 'Succesfuldt slettet tidsplan', + 'removed_schedule' => 'Succesfuldt fjernet tidsplan', + 'restored_schedule' => 'Succesfuldt genskabt skema', + 'search_schedule' => 'Søgeplan', + 'search_schedules' => 'Søg skemaer', + 'update_product' => 'Opdater produkt', + 'create_purchase_order' => 'Opret købsordre', + 'update_purchase_order' => 'Opdater indkøbsordre', + 'sent_invoice' => 'Sendt Faktura', + 'sent_quote' => 'Sendt tilbud', + 'sent_credit' => 'Sendt kredit', + 'sent_purchase_order' => 'Sendt indkøbsordre', + 'image_url' => 'Billed-URL', + 'max_quantity' => 'Max mængde', 'test_url' => 'Test URL', - 'auto_bill_help_off' => 'Option is not shown', - 'auto_bill_help_optin' => 'Option is shown but not selected', - 'auto_bill_help_optout' => 'Option is shown and selected', - 'auto_bill_help_always' => 'Option is not shown', - 'view_all' => 'View All', - 'edit_all' => 'Edit All', - 'accept_purchase_order_number' => 'Accept Purchase Order Number', - 'accept_purchase_order_number_help' => 'Enable clients to provide a PO number when approving a quote', - 'from_email' => 'From Email', - 'show_preview' => 'Show Preview', - 'show_paid_stamp' => 'Show Paid Stamp', - 'show_shipping_address' => 'Show Shipping Address', - 'no_documents_to_download' => 'There are no documents in the selected records to download', + 'auto_bill_help_off' => 'Indstillingen vises ikke', + 'auto_bill_help_optin' => 'Indstillingen vises, men er ikke valgt', + 'auto_bill_help_optout' => 'Indstillingen vises og vælges', + 'auto_bill_help_always' => 'Indstillingen vises ikke', + 'view_all' => 'Vis Alle', + 'edit_all' => 'Redigér Alle', + 'accept_purchase_order_number' => 'Accepter købsordrenummer', + 'accept_purchase_order_number_help' => 'Aktiver Klienter til at angive et PO-nummer, når du godkender et tilbud', + 'from_email' => 'Fra e-mail', + 'show_preview' => 'Vis forhåndsvisning', + 'show_paid_stamp' => 'Vis betalt stempel', + 'show_shipping_address' => 'Vis leveringsadresse', + 'no_documents_to_download' => 'Der er ingen dokumenter i de valgte poster at downloade', 'pixels' => 'Pixels', - 'logo_size' => 'Logo Size', - 'failed' => 'Failed', - 'client_contacts' => 'Client Contacts', - 'sync_from' => 'Sync From', - 'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client', - 'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client', - 'click_to_variables' => 'Click here to see all variables.', - 'ship_to' => 'Ship to', - 'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.', - 'branch_name' => 'Branch Name', - 'branch_code' => 'Branch Code', - 'bank_name' => 'Bank Name', - 'bank_code' => 'Bank Code', + 'logo_size' => 'Logo størrelse', + 'failed' => 'mislykkedes', + 'client_contacts' => 'Klient', + 'sync_from' => 'Synkroniser fra', + 'gateway_payment_text' => 'Fakturaer : :invoice s for :amount for Klient :client', + 'gateway_payment_text_no_invoice' => 'Betaling uden Faktura for Beløb :amount for Klient :client', + 'click_to_variables' => 'Klik her for at se alle variabler.', + 'ship_to' => 'Send til', + 'stripe_direct_debit_details' => 'Overfør venligst til den angivne bankkonto ovenfor.', + 'branch_name' => 'Afdelingsnavn', + 'branch_code' => 'Afdelingskode', + 'bank_name' => 'Bank-navn', + 'bank_code' => 'Bankkode', 'bic' => 'BIC', - 'change_plan_description' => 'Upgrade or downgrade your current plan.', - 'add_company_logo' => 'Add Logo', - 'add_stripe' => 'Add Stripe', - 'invalid_coupon' => 'Invalid Coupon', - 'no_assigned_tasks' => 'No billable tasks for this project', - 'authorization_failure' => 'Insufficient permissions to perform this action', - 'authorization_sms_failure' => 'Please verify your account to send emails.', - 'white_label_body' => 'Thank you for purchasing a white label license.

Your license key is:

:license_key', + 'change_plan_description' => 'Opgrader eller nedgrader din nuværende plan.', + 'add_company_logo' => 'Tilføj logo', + 'add_stripe' => 'Tilføj Stripe', + 'invalid_coupon' => 'Ugyldig kupon', + 'no_assigned_tasks' => 'Ingen fakturerbare opgaver for dette projekt', + 'authorization_failure' => 'Utilstrækkelige tilladelser til at udføre denne handling', + 'authorization_sms_failure' => 'Bekræft venligst din konto for at sende e-mails.', + 'white_label_body' => 'Tak fordi du har købt en Hvidmærke licens.

Din licensnøgle er:

:license_key', 'payment_type_Klarna' => 'Klarna', 'payment_type_Interac E Transfer' => 'Interac E Transfer', - 'xinvoice_payable' => 'Payable within :payeddue days net until :paydate', - 'xinvoice_no_buyers_reference' => "No buyer's reference given", - 'xinvoice_online_payment' => 'The invoice needs to be paid online via the provided link', + 'xinvoice_payable' => 'Betales inden for :payeddue dage netto indtil :paydate', + 'xinvoice_no_buyers_reference' => "Ingen købers reference angivet", + 'xinvoice_online_payment' => 'Faktura skal betales online via det angivne link', 'pre_payment' => 'Forudbetaling', - 'number_of_payments' => 'Number of payments', - 'number_of_payments_helper' => 'The number of times this payment will be made', - 'pre_payment_indefinitely' => 'Continue until cancelled', - 'notification_payment_emailed' => 'Payment :payment was emailed to :client', - 'notification_payment_emailed_subject' => 'Payment :payment was emailed', - 'record_not_found' => 'Record not found', - 'minimum_payment_amount' => 'Minimum Payment Amount', - 'client_initiated_payments' => 'Client Initiated Payments', - 'client_initiated_payments_help' => 'Support making a payment in the client portal without an invoice', - 'share_invoice_quote_columns' => 'Share Invoice/Quote Columns', - 'cc_email' => 'CC Email', - 'payment_balance' => 'Payment Balance', - 'view_report_permission' => 'Allow user to access the reports, data is limited to available permissions', - 'activity_138' => 'Payment :payment was emailed to :client', - 'one_time_products' => 'One-Time Products', - 'optional_one_time_products' => 'Optional One-Time Products', - 'required' => 'Required', - 'hidden' => 'Hidden', - 'payment_links' => 'Payment Links', - 'payment_link' => 'Payment Link', - 'new_payment_link' => 'New Payment Link', - 'edit_payment_link' => 'Edit Payment Link', - 'created_payment_link' => 'Successfully created payment link', - 'updated_payment_link' => 'Successfully updated payment link', - 'archived_payment_link' => 'Successfully archived payment link', - 'deleted_payment_link' => 'Successfully deleted payment link', - 'removed_payment_link' => 'Successfully removed payment link', - 'restored_payment_link' => 'Successfully restored payment link', - 'search_payment_link' => 'Search 1 Payment Link', - 'search_payment_links' => 'Search :count Payment Links', - 'increase_prices' => 'Increase Prices', - 'update_prices' => 'Update Prices', - 'incresed_prices' => 'Successfully queued prices to be increased', - 'updated_prices' => 'Successfully queued prices to be updated', - 'api_token' => 'API Token', - 'api_key' => 'API Key', - 'endpoint' => 'Endpoint', - 'not_billable' => 'Not Billable', - 'allow_billable_task_items' => 'Allow Billable Task Items', - 'allow_billable_task_items_help' => 'Enable configuring which task items are billed', - 'show_task_item_description' => 'Show Task Item Description', - 'show_task_item_description_help' => 'Enable specifying task item descriptions', - 'email_record' => 'Email Record', - 'invoice_product_columns' => 'Invoice Product Columns', - 'quote_product_columns' => 'Quote Product Columns', + 'number_of_payments' => 'Antal Betalinger', + 'number_of_payments_helper' => 'Antallet af gange denne Betaling vil blive gennemført', + 'pre_payment_indefinitely' => 'Fortsæt, indtil du annullerer', + 'notification_payment_emailed' => 'Betaling :payment blev sendt til :client', + 'notification_payment_emailed_subject' => 'Betaling :payment blev sendt på e-mail', + 'record_not_found' => 'Optegnelsen blev ikke fundet', + 'minimum_payment_amount' => 'Minimum Betaling Beløb', + 'client_initiated_payments' => 'Klient initieret Betalinger', + 'client_initiated_payments_help' => 'Støt at lave en Betaling i Klient uden Faktura', + 'share_invoice_quote_columns' => 'Del Faktura /Citatkolonner', + 'cc_email' => 'CC e-mail', + 'payment_balance' => 'Betaling Saldo', + 'view_report_permission' => 'Tillad Bruger at få adgang til rapporterne, data er begrænset til tilgængelige tilladelser', + 'activity_138' => 'Betaling :payment blev sendt til :client', + 'one_time_products' => 'Engangsprodukter', + 'optional_one_time_products' => 'Valgfri engangsprodukter', + 'required' => 'Påkrævet', + 'hidden' => 'Skjult', + 'payment_links' => 'Betaling Links', + 'payment_link' => 'Betaling Link', + 'new_payment_link' => 'Nyt Betaling', + 'edit_payment_link' => 'Redigér Betaling Link', + 'created_payment_link' => 'Succesfuldt oprettet Betaling link', + 'updated_payment_link' => 'Succesfuldt opdateret Betaling link', + 'archived_payment_link' => 'Succesfuldt arkiveret Betaling link', + 'deleted_payment_link' => 'Succesfuldt slettet Betaling link', + 'removed_payment_link' => 'Succesfuldt fjernet Betaling', + 'restored_payment_link' => 'Succesfuldt genskabt Betaling link', + 'search_payment_link' => 'Søg 1 Betaling Link', + 'search_payment_links' => 'Søg :count Betaling Links', + 'increase_prices' => 'Forøg priserne', + 'update_prices' => 'Opdater priser', + 'incresed_prices' => 'Succesfuldt køpriser skal hæves', + 'updated_prices' => 'Succesfuldt stillede priser i kø for at blive opdateret', + 'api_token' => 'API-token', + 'api_key' => 'API nøgle', + 'endpoint' => 'Slutpunkt', + 'not_billable' => 'Ikke fakturerbar', + 'allow_billable_task_items' => 'Tillad fakturerbare Opgave genstande', + 'allow_billable_task_items_help' => 'Aktiver konfiguration af, hvilke Opgave -varer der faktureres', + 'show_task_item_description' => 'Vis Opgave varebeskrivelse', + 'show_task_item_description_help' => 'Aktiver angivelse af Opgave varebeskrivelser', + 'email_record' => 'e-mail Record', + 'invoice_product_columns' => 'Faktura produktkolonner', + 'quote_product_columns' => 'Citat produktkolonner', 'vendors' => 'Sælgere', - 'product_sales' => 'Product Sales', - 'user_sales_report_header' => 'User sales report for client/s :client from :start_date to :end_date', - 'client_balance_report' => 'Customer balance report', - 'client_sales_report' => 'Customer sales report', - 'user_sales_report' => 'User sales report', - 'aged_receivable_detailed_report' => 'Aged Receivable Detailed Report', - 'aged_receivable_summary_report' => 'Aged Receivable Summary Report', - 'taxable_amount' => 'Taxable Amount', - 'tax_summary' => 'Tax Summary', + 'product_sales' => 'Produktsalg', + 'user_sales_report_header' => 'Bruger salgsrapport for Klient /s :client fra :start _date til :end _date', + 'client_balance_report' => 'Kundesaldorapport', + 'client_sales_report' => 'Kunde salgsrapport', + 'user_sales_report' => 'Bruger salgsrapport', + 'aged_receivable_detailed_report' => 'Ældrede Tilgodehavender Detaljeret Rapport', + 'aged_receivable_summary_report' => 'Ældrede Tilgodehavender Oversigtsrapport', + 'taxable_amount' => 'Skattepligtigt Beløb', + 'tax_summary' => 'Skatteoversigt', 'oauth_mail' => 'OAuth / Mail', - 'preferences' => 'Preferences', + 'preferences' => 'Præferencer', 'analytics' => 'Analytics', - 'reduced_rate' => 'Reduced Rate', - 'tax_all' => 'Tax All', - 'tax_selected' => 'Tax Selected', + 'reduced_rate' => 'Reduceret sats', + 'tax_all' => 'Skat alle', + 'tax_selected' => 'Skat valgt', 'version' => 'version', - 'seller_subregion' => 'Seller Subregion', - 'calculate_taxes' => 'Calculate Taxes', - 'calculate_taxes_help' => 'Automatically calculate taxes when saving invoices', - 'link_expenses' => 'Link Expenses', - 'converted_client_balance' => 'Converted Client Balance', - 'converted_payment_balance' => 'Converted Payment Balance', - 'total_hours' => 'Total Hours', - 'date_picker_hint' => 'Use +days to set the date in the future', - 'app_help_link' => 'More information ', - 'here' => 'here', - 'industry_Restaurant & Catering' => 'Restaurant & Catering', - 'show_credits_table' => 'Show Credits Table', - 'manual_payment' => 'Payment Manual', - 'tax_summary_report' => 'Tax Summary Report', - 'tax_category' => 'Tax Category', - 'physical_goods' => 'Physical Goods', - 'digital_products' => 'Digital Products', - 'services' => 'Services', - 'shipping' => 'Shipping', - 'tax_exempt' => 'Tax Exempt', - 'late_fee_added_locked_invoice' => 'Late fee for invoice :invoice added on :date', + 'seller_subregion' => 'Sælger Underregion', + 'calculate_taxes' => 'Beregn skatter', + 'calculate_taxes_help' => 'Beregn automatisk skat, når du gemmer Fakturaer', + 'link_expenses' => 'Linkudgifter', + 'converted_client_balance' => 'Konverteret Klient', + 'converted_payment_balance' => 'Konverteret Betaling', + 'total_hours' => 'Total timer', + 'date_picker_hint' => 'Brug +dage til at indstille datoen i fremtiden', + 'app_help_link' => 'Mere information', + 'here' => 'her', + 'industry_Restaurant & Catering' => 'Restaurant & Catering', + 'show_credits_table' => 'Vis kredittabel', + 'manual_payment' => 'Betaling', + 'tax_summary_report' => 'Skatteoversigt', + 'tax_category' => 'Skattekategori', + 'physical_goods' => 'Fysiske varer', + 'digital_products' => 'Digitale produkter', + 'services' => 'Tjenester', + 'shipping' => 'Forsendelse', + 'tax_exempt' => 'Skattefritaget', + 'late_fee_added_locked_invoice' => 'Forsinket gebyr for Faktura :invoice tilføjet på :date', 'lang_Khmer' => 'Khmer', 'routing_id' => 'Routing ID', - 'enable_e_invoice' => 'Enable E-Invoice', - 'e_invoice_type' => 'E-Invoice Type', - 'reduced_tax' => 'Reduced Tax', - 'override_tax' => 'Override Tax', - 'zero_rated' => 'Zero Rated', - 'reverse_tax' => 'Reverse Tax', - 'updated_tax_category' => 'Successfully updated the tax category', - 'updated_tax_categories' => 'Successfully updated the tax categories', - 'set_tax_category' => 'Set Tax Category', - 'payment_manual' => 'Payment Manual', - 'expense_payment_type' => 'Expense Payment Type', - 'payment_type_Cash App' => 'Cash App', - 'rename' => 'Rename', - 'renamed_document' => 'Successfully renamed document', - 'e_invoice' => 'E-Invoice', - 'light_dark_mode' => 'Light/Dark Mode', - 'activities' => 'Activities', - 'recent_transactions' => "Here are your company's most recent transactions:", - 'country_Palestine' => "Palestine", + 'enable_e_invoice' => 'Aktiver E- Faktura', + 'e_invoice_type' => 'E- Faktura Type', + 'reduced_tax' => 'Nedsat skat', + 'override_tax' => 'Tilsidesæt skat', + 'zero_rated' => 'Nul vurderet', + 'reverse_tax' => 'Omvendt skat', + 'updated_tax_category' => 'Succesfuldt opdateret skattekategorien', + 'updated_tax_categories' => 'Succesfuldt opdateret skattekategorierne', + 'set_tax_category' => 'Indstil skattekategori', + 'payment_manual' => 'Betaling', + 'expense_payment_type' => 'Udgift Betaling Type', + 'payment_type_Cash App' => 'Kontant app', + 'rename' => 'Omdøb', + 'renamed_document' => 'Succesfuldt omdøbt dokument', + 'e_invoice' => 'E- Faktura', + 'light_dark_mode' => 'Lys/Mørk tilstand', + 'activities' => 'Aktiviteter', + 'recent_transactions' => "Her er din virksomheds seneste transaktioner:", + 'country_Palestine' => "Palæstina", 'country_Taiwan' => 'Taiwan', - 'duties' => 'Duties', - 'order_number' => 'Order Number', - 'order_id' => 'Order', - 'total_invoices_outstanding' => 'Total Invoices Outstanding', - 'recent_activity' => 'Recent Activity', - 'enable_auto_bill' => 'Enable auto billing', - 'email_count_invoices' => 'Email :count invoices', - 'invoice_task_item_description' => 'Invoice Task Item Description', - 'invoice_task_item_description_help' => 'Add the item description to the invoice line items', - 'next_send_time' => 'Next Send Time', - 'uploaded_certificate' => 'Successfully uploaded certificate', - 'certificate_set' => 'Certificate set', - 'certificate_not_set' => 'Certificate not set', - 'passphrase_set' => 'Passphrase set', - 'passphrase_not_set' => 'Passphrase not set', - 'upload_certificate' => 'Upload Certificate', - 'certificate_passphrase' => 'Certificate Passphrase', - 'valid_vat_number' => 'Valid VAT Number', - 'react_notification_link' => 'React Notification Links', - 'react_notification_link_help' => 'Admin emails will contain links to the react application', - 'show_task_billable' => 'Show Task Billable', - 'credit_item' => 'Credit Item', - 'drop_file_here' => 'Drop file here', - 'files' => 'Files', - 'camera' => 'Camera', - 'gallery' => 'Gallery', - 'project_location' => 'Project Location', - 'add_gateway_help_message' => 'Add a payment gateway (ie. Stripe, WePay or PayPal) to accept online payments', - 'lang_Hungarian' => 'Hungarian', - 'use_mobile_to_manage_plan' => 'Use your phone subscription settings to manage your plan', - 'item_tax3' => 'Item Tax3', - 'item_tax_rate1' => 'Item Tax Rate 1', - 'item_tax_rate2' => 'Item Tax Rate 2', - 'item_tax_rate3' => 'Item Tax Rate 3', - 'buy_price' => 'Buy Price', - 'country_Macedonia' => 'Macedonia', - 'admin_initiated_payments' => 'Admin Initiated Payments', - 'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice', - 'paid_date' => 'Paid Date', - 'downloaded_entities' => 'An email will be sent with the PDFs', - 'lang_French - Swiss' => 'French - Swiss', + 'duties' => 'Pligter', + 'order_number' => 'Ordrenummer', + 'order_id' => 'Bestille', + 'total_invoices_outstanding' => 'Total Fakturaer Udestående', + 'recent_activity' => 'Seneste aktivitet', + 'enable_auto_bill' => 'Aktiver automatisk fakturering', + 'email_count_invoices' => 'e-mail :count Fakturaer', + 'invoice_task_item_description' => 'Faktura Opgave Varebeskrivelse', + 'invoice_task_item_description_help' => 'Tilføj varebeskrivelsen til Faktura linjeposterne', + 'next_send_time' => 'Næste sendetid', + 'uploaded_certificate' => 'Succesfuldt uploadet certifikat', + 'certificate_set' => 'Certifikat sæt', + 'certificate_not_set' => 'Certifikatet ikke indstillet', + 'passphrase_set' => 'Adgangssætning sæt', + 'passphrase_not_set' => 'Adgangssætning ikke angivet', + 'upload_certificate' => 'Upload certifikat', + 'certificate_passphrase' => 'Certifikatadgangssætning', + 'valid_vat_number' => 'Gyldigt momsnummer', + 'react_notification_link' => 'Reaktionsmeddelelseslinks', + 'react_notification_link_help' => 'Admin-e-mails vil indeholde links til React-applikationen', + 'show_task_billable' => 'Vis Opgave fakturerbar', + 'credit_item' => 'Kreditting', + 'drop_file_here' => 'Drop filen her', + 'files' => 'Filer', + 'camera' => 'Kamera', + 'gallery' => 'Galleri', + 'project_location' => 'Projektets placering', + 'add_gateway_help_message' => 'Tilføj en Betalingsgateway (dvs. Stripe, WePay eller PayPal) for at acceptere online Betalinger', + 'lang_Hungarian' => 'ungarsk', + 'use_mobile_to_manage_plan' => 'Brug dit Telefon abonnement Indstillinger til at administrere din plan', + 'item_tax3' => 'Vareafgift 3', + 'item_tax_rate1' => 'Vareafgiftssats 1', + 'item_tax_rate2' => 'Vareafgiftssats 2', + 'item_tax_rate3' => 'Vareafgiftssats 3', + 'buy_price' => 'Køb pris', + 'country_Macedonia' => 'Makedonien', + 'admin_initiated_payments' => 'Admin Påbegyndt Betalinger', + 'admin_initiated_payments_help' => 'Support til at indtaste en Betaling i adminportalen uden Faktura', + 'paid_date' => 'Betalt dato', + 'downloaded_entities' => 'Der sendes en e-mail med PDF'erne', + 'lang_French - Swiss' => 'fransk - schweizisk', 'currency_swazi_lilangeni' => 'Swazi Lilangeni', - 'income' => 'Income', - 'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.', - 'vendor_phone' => 'Vendor Phone', + 'income' => 'Indkomst', + 'amount_received_help' => 'Indtast en værdi her, hvis det Total modtagne Beløb var MERE end Faktura Beløb , eller ved optagelse af en Betaling uden Faktura er . Ellers skal dette felt stå tomt.', + 'vendor_phone' => 'Sælger Telefon', 'mercado_pago' => 'Mercado Pago', 'mybank' => 'MyBank', - 'paypal_paylater' => 'Pay in 4', - 'paid_date' => 'Paid Date', - 'district' => 'District', - 'region' => 'Region', - 'county' => 'County', - 'tax_details' => 'Tax Details', - 'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client', - 'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client', - 'default_payment_type' => 'Default Payment Type', - 'number_precision' => 'Number precision', - 'number_precision_help' => 'Controls the number of decimals supported in the interface', - 'is_tax_exempt' => 'Tax Exempt', - 'drop_files_here' => 'Drop files here', - 'upload_files' => 'Upload Files', - 'download_e_invoice' => 'Download E-Invoice', - 'triangular_tax_info' => 'Intra-community triangular transaction', - 'intracommunity_tax_info' => 'Tax-free intra-community delivery', - 'reverse_tax_info' => 'Please note that this supply is subject to reverse charge', - 'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba', - 'public' => 'Public', - 'private' => 'Private', - 'image' => 'Image', - 'other' => 'Other', - 'linked_to' => 'Linked To', - 'file_saved_in_path' => 'The file has been saved in :path', - 'unlinked_transactions' => 'Successfully unlinked :count transactions', - 'unlinked_transaction' => 'Successfully unlinked transaction', - 'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions', - 'marked_sent_credits' => 'Successfully marked credits sent', - 'show_document_preview' => 'Show Document Preview', - 'cash_accounting' => 'Cash accounting', - 'click_or_drop_files_here' => 'Click or drop files here', - 'set_public' => 'Set public', - 'set_private' => 'Set private', - 'individual' => 'Individual', - 'business' => 'Business', - 'partnership' => 'partnership', - 'trust' => 'Trust', - 'charity' => 'Charity', - 'government' => 'Government', - 'in_stock_quantity' => 'Stock quantity', - 'vendor_contact' => 'Vendor Contact', - + 'paypal_paylater' => 'Indbetal 4', + 'paid_date' => 'Betalt dato', + 'district' => 'Distrikt', + 'region' => 'Område', + 'county' => 'Amt', + 'tax_details' => 'Skatteoplysninger', + 'activity_10_online' => ':contact indtastet Betaling :payment for Faktura :invoice for :client', + 'activity_10_manual' => ':user indtastet Betaling :payment for Faktura :invoice for :client', + 'default_payment_type' => 'Standard Betaling', + 'number_precision' => 'Nummerpræcision', + 'number_precision_help' => 'Styrer antallet af decimaler, der understøttes i grænsefladen', + 'is_tax_exempt' => 'Skattefritaget', + 'drop_files_here' => 'Slip filer her', + 'upload_files' => 'Upload filer', + 'download_e_invoice' => 'Download E- Faktura', + 'triangular_tax_info' => 'Trekantet transaktion inden for fællesskabet', + 'intracommunity_tax_info' => 'Skattefri levering inden for samfundet', + 'reverse_tax_info' => 'Bemærk venligst, at denne levering er underlagt omvendt betalingspligt', + 'currency_nicaraguan_cordoba' => 'Nicaraguanske Córdoba', + 'public' => 'Offentlig', + 'private' => 'Privat', + 'image' => 'Billede', + 'other' => 'Andet', + 'linked_to' => 'Knyttet til', + 'file_saved_in_path' => 'Filen er blevet gemt i :sti', + 'unlinked_transactions' => 'Succesfuldt ulinkede :count transaktioner', + 'unlinked_transaction' => 'Succesfuldt ulinket transaktion', + 'view_dashboard_permission' => 'Tillad Bruger at få adgang til dashboardet, data er begrænset til tilgængelige tilladelser', + 'marked_sent_credits' => 'Succesfuldt markerede kreditter sendt', + 'show_document_preview' => 'Vis dokumenteksempel', + 'cash_accounting' => 'Kontantregnskab', + 'click_or_drop_files_here' => 'Klik eller slip filer her', + 'set_public' => 'Angiv offentlig', + 'set_private' => 'Indstil privat', + 'individual' => 'Individuel', + 'business' => 'Forretning', + 'partnership' => 'partnerskab', + 'trust' => 'Tillid', + 'charity' => 'Velgørenhed', + 'government' => 'Regering', + 'in_stock_quantity' => 'Lagermængde', + 'vendor_contact' => 'Sælger kontakt', + 'expense_status_4' => 'Ubetalt', + 'expense_status_5' => 'Betalt', + 'ziptax_help' => 'Bemærk : denne funktion kræver en Zip-Tax API-nøgle for at slå amerikansk moms efter adresse', + 'cache_data' => 'Cache data', + 'unknown' => 'Ukendt', + 'webhook_failure' => 'Webhook-fejl', + 'email_opened' => 'e-mail åbnet', + 'email_delivered' => 'e-mail leveret', + 'log' => 'Log', + 'classification' => 'Klassifikation', + 'stock_quantity_number' => 'Lager: mængde', + 'upcoming' => 'Kommende', + 'client_contact' => 'Klient kontakt', + 'uncategorized' => 'Ikke kategoriseret', + 'login_notification' => 'Login meddelelse', + 'login_notification_help' => 'Sender en e-mail med besked om, at et login har fundet sted.', + 'payment_refund_receipt' => 'Betaling Refusion Kvittering # :number', + 'payment_receipt' => 'Betaling # :number', + 'load_template_description' => 'Skabelonen vil blive anvendt på følgende:', + 'run_template' => 'Kør skabelon', ); return $LANG; diff --git a/lang/de/texts.php b/lang/de/texts.php index c1b62d6a1b69..ce76b57d2167 100644 --- a/lang/de/texts.php +++ b/lang/de/texts.php @@ -1127,7 +1127,7 @@ $LANG = array( 'documents_from_expenses' => 'Von Kosten:', 'dropzone_default_message' => 'Dateien hierhin ziehen oder klicken, um Dateien hochzuladen', 'dropzone_default_message_disabled' => 'Uploads deaktiviert', - 'dropzone_fallback_message' => 'Ihr Browser unterstützt keine "Drag \'n Drop" Datei-Uploads.', + 'dropzone_fallback_message' => 'Ihr Browser unterstützt keine "Drag and Drop"-Datei-Uploads.', 'dropzone_fallback_text' => 'Bitte verwenden Sie das untere Formular als Ausweichlösung, um Ihre Dateien wie in alten Zeiten hochladen zu können.', 'dropzone_file_too_big' => 'Die Datei ist zu groß ({{filesize}}MiB). max. Dateigröße: {{maxFilesize}}MiB.', 'dropzone_invalid_file_type' => 'Du kannst Dateien von diesem Typ nicht hochladen.', @@ -2403,9 +2403,9 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese 'currency_libyan_dinar' => 'Libyscher Dinar', 'currency_silver_troy_ounce' => 'Silberne Feinunze', 'currency_gold_troy_ounce' => 'Goldene Feinunze', - 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', - 'currency_malagasy_ariary' => 'Malagasy ariary', - "currency_tongan_pa_anga" => "Tongan Pa'anga", + 'currency_nicaraguan_córdoba' => 'Nicaraguanischer Córdoba', + 'currency_malagasy_ariary' => 'Madagassischer Ariary', + "currency_tongan_pa_anga" => "Tongaischer Paʻanga", 'review_app_help' => 'Wir hoffen, dass Ihnen die App gefällt. Wenn Sie :link in Betracht ziehen würden, wären wir Ihnen sehr dankbar!', 'writing_a_review' => 'Schreiben einer Rezension', @@ -3072,7 +3072,7 @@ Sobald Sie die Beträge erhalten haben, kommen Sie bitte wieder zurück zu diese 'custom_js' => 'Benutzerdefiniert JS', 'adjust_fee_percent_help' => 'Gebühren Prozentsatz an das Konto anpassen', 'show_product_notes' => 'Produktdetails anzeigen', - 'show_product_notes_help' => 'Fügt die Beschreibung und die Kosten in die Produkt-Dropdown-Liste ein', + 'show_product_notes_help' => 'Fügt die Beschreibung und Kosten in die Produkt-Dropdown-Liste ein', 'important' => 'Wichtig', 'thank_you_for_using_our_app' => 'Vielen Dank, dass Sie unsere App nutzen!', 'if_you_like_it' => 'Wenn es dir gefällt, bitte', @@ -3690,7 +3690,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'allow_under_payment_help' => 'Teilzahlungen zulassen', 'test_mode' => 'Test Modus', 'calculated_rate' => 'Berechneter Satz', - 'default_task_rate' => 'Standard Stundenlohn', + 'default_task_rate' => 'Standard-Stundenlohn', 'clear_cache' => 'Zwischenspeicher leeren', 'sort_order' => 'Sortierreihenfolge', 'task_status' => 'Status', @@ -3706,8 +3706,8 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'search_task_statuses' => 'Suche :count Aufgaben Status', 'show_tasks_table' => 'Zeige Aufgaben Tabelle', 'show_tasks_table_help' => 'Beim Erstellen von Rechnungen immer die Aufgabenauswahl anzeigen', - 'invoice_task_timelog' => 'Aufgaben Zeiterfassung in Rechnung stellen', - 'invoice_task_timelog_help' => 'Zeitdetails in der Rechnungsposition ausweisen', + 'invoice_task_timelog' => 'In Aufgabe erfasste Zeiten in Rechnungen ausweisen', + 'invoice_task_timelog_help' => 'Zeigt Zeitdetails in den Rechnungspositionen an', 'auto_start_tasks_help' => 'Beginne Aufgabe vor dem Speichern', 'configure_statuses' => 'Status bearbeiten', 'task_settings' => 'Aufgaben-Einstellungen', @@ -4139,8 +4139,8 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'connect_google' => 'Google-Konto verbinden', 'disconnect_google' => 'Google-Konto entfernen', 'disable_two_factor' => 'Zwei-Faktor-Authentifizierung deaktivieren', - 'invoice_task_datelog' => 'Aufgabenzeiterfassung in Rechnung stellen', - 'invoice_task_datelog_help' => 'Datumsdetails zu den Rechnungsposten hinzufügen', + 'invoice_task_datelog' => 'In Aufgabe erfasste Daten in Rechnungen ausweisen', + 'invoice_task_datelog_help' => 'Zeigt Datumsdetails in den Rechnungspositionen an', 'promo_code' => 'Gutscheincode', 'recurring_invoice_issued_to' => 'Wiederkehrende Rechnung ausgestellt an', 'subscription' => 'Abonnement', @@ -4732,8 +4732,8 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'mark_paid_payment_email' => 'E-Mail bei Zahlungsmarkierung', 'convert_to_project' => 'In Projekt umwandeln', 'client_email' => 'Kunden E-Mail', - 'invoice_task_project' => 'Rechnung Aufgabe Projekt', - 'invoice_task_project_help' => 'Fügen Sie das Projekt zu den Rechnungspositionen hinzu', + 'invoice_task_project' => 'In Aufgabe erfasstes Projekt in Rechnungen ausweisen', + 'invoice_task_project_help' => 'Zeigt den Projektnamen in den Rechnungspositionen an', 'bulk_action' => 'Massenaktion', 'phone_validation_error' => 'Diese Handynummer ist ungültig, bitte im E.164-Format eingeben', 'transaction' => 'Transaktion', @@ -4885,8 +4885,8 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'inventory_threshold' => 'Inventargrenzwert', 'emailed_statement' => 'Erfolgreich in die Versandwarteschlange eingereiht', 'show_email_footer' => 'E-Mail Fußzeile anzeigen', - 'invoice_task_hours' => 'Aufgabenstunden in Rechnung stellen', - 'invoice_task_hours_help' => 'Fügen Sie die Stunden zu den Rechnungspositionen hinzu.', + 'invoice_task_hours' => 'In Aufgabe erfasste Stunden in Rechnungen ausweisen', + 'invoice_task_hours_help' => 'Zeigt die Stunden in den Rechnungspositionen an', 'auto_bill_standard_invoices' => 'Auto Bill Standardrechnungen', 'auto_bill_recurring_invoices' => 'Wiederkehrende Rechnungen automatisch abrechnen', 'email_alignment' => 'E-Mail Ausrichtung', @@ -5108,7 +5108,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'files' => 'Dateien', 'camera' => 'Kamera', 'gallery' => 'Gallerie', - 'project_location' => 'Projektstandort', + 'project_location' => 'Feld, in dem das Projekt genannt wird', 'add_gateway_help_message' => 'Payment-Gateway hinzufügen (z. B. Stripe, WePay oder PayPal), um Online-Zahlungen anbieten zu können', 'lang_Hungarian' => 'Ungarisch', 'use_mobile_to_manage_plan' => 'Verwenden der Telefon-Abonnementeinstellungen, um Ihren Tarif zu verwalten', @@ -5125,7 +5125,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'lang_French - Swiss' => 'Französisch - Schweiz', 'currency_swazi_lilangeni' => 'Lilangeni', 'income' => 'Einnahmen', - 'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.', + 'amount_received_help' => 'Geben Sie hier einen Wert ein, wenn der erhaltene Gesamtbetrag MEHR als der Rechnungsbetrag war oder wenn Sie eine Zahlung ohne Rechnungen erfassen. Andernfalls sollte dieses Feld leer bleiben.', 'vendor_phone' => 'Lieferanten-Telefonnummer', 'mercado_pago' => 'Mercado Pago', 'mybank' => 'MeineBank', @@ -5166,33 +5166,33 @@ Leistungsempfängers', 'set_public' => 'Als "öffentlich" setzen', 'set_private' => 'Als "privat" setzen', 'individual' => 'Indiviuell', - 'business' => 'Business', + 'business' => 'Unternehmen', 'partnership' => 'Partnerschaft', - 'trust' => 'Vertrauen', - 'charity' => 'Charity', - 'government' => 'Regierung', + 'trust' => 'Treuhand/Stiftung', + 'charity' => 'Wohltätigkeitsorganisation', + 'government' => 'Regierungsbehörde', 'in_stock_quantity' => 'Lagerbestand', 'vendor_contact' => 'Lieferantenkontakt', 'expense_status_4' => 'Unbezahlt', 'expense_status_5' => 'Bezahlt', - 'ziptax_help' => 'Note: this feature requires a Zip-Tax API key to lookup US sales tax by address', - 'cache_data' => 'Cache Data', + 'ziptax_help' => 'Hinweis: Für diese Funktion ist ein "Zip-Tax"-API-Schlüssel erforderlich, um die US-Umsatzsteuer anhand der Adresse zu ermitteln', + 'cache_data' => 'Cache Daten', 'unknown' => 'Unbekannt', 'webhook_failure' => 'Webhook-Fehler', 'email_opened' => 'E-Mail geöffnet', 'email_delivered' => 'E-Mail zugestellt', 'log' => 'Log', 'classification' => 'Klassifizierung', - 'stock_quantity_number' => 'Stock :quantity', + 'stock_quantity_number' => 'Lagerbestand :quantity', 'upcoming' => 'Bevorstehend', 'client_contact' => 'Kundenkontakt', 'uncategorized' => 'Unkategorisiert', - 'login_notification' => 'Login Notification', - 'login_notification_help' => 'Sends an email notifying that a login has taken place.', - 'payment_refund_receipt' => 'Payment Refund Receipt # :number', - 'payment_receipt' => 'Payment Receipt # :number', - 'load_template_description' => 'The template will be applied to following:', - 'run_template' => 'Run template', + 'login_notification' => 'Anmelde-Benachrichtigung', + 'login_notification_help' => 'Sendet eine Benachrichtigungs-Mail, sobald eine Anmeldung erfolgt ist.', + 'payment_refund_receipt' => 'Zahlungs-Rückerstattungsbeleg #:number', + 'payment_receipt' => 'Zahlungsbeleg #:number', + 'load_template_description' => 'Das Template wird auf Folgendes angewendet:', + 'run_template' => 'Template anwenden', ); return $LANG; diff --git a/lang/es/texts.php b/lang/es/texts.php index ca628f299eee..449457bc2997 100644 --- a/lang/es/texts.php +++ b/lang/es/texts.php @@ -657,7 +657,7 @@ $LANG = array( 'primary_user' => 'Usuario Principal', 'help' => 'Ayuda', 'playground' => 'playground', - 'support_forum' => 'Support Forums', + 'support_forum' => 'Foros de soporte', 'invoice_due_date' => 'Fecha de Vencimiento', 'quote_due_date' => 'Válida Hasta', 'valid_until' => 'Válida Hasta', @@ -1146,7 +1146,7 @@ $LANG = array( 'plan_status' => 'Plan Status', 'plan_upgrade' => 'Upgrade', - 'plan_change' => 'Manage Plan', + 'plan_change' => 'Gestionar plan', 'pending_change_to' => 'Changes To', 'plan_changes_to' => ':plan on :date', 'plan_term_changes_to' => ':plan (:term) on :date', @@ -2400,6 +2400,9 @@ $LANG = array( 'currency_libyan_dinar' => 'dinar libio', 'currency_silver_troy_ounce' => 'Onza troy de plata', 'currency_gold_troy_ounce' => 'Onza troy de oro', + 'currency_nicaraguan_córdoba' => 'Córdoba nicaragüense', + 'currency_malagasy_ariary' => 'ariary malgache', + "currency_tongan_pa_anga" => "Pa'anga tongano", 'review_app_help' => 'Esperamos que estés disfrutando de usar la aplicación.
Si consideras :link lo apreciaremos mucho!', 'writing_a_review' => 'escribiendo una reseña', @@ -3335,9 +3338,9 @@ $LANG = array( 'freq_three_years' => 'Tres años', 'military_time_help' => 'Pantalla de 24 horas', 'click_here_capital' => 'haga clic aquí', - 'marked_invoice_as_paid' => 'Successfully marked invoice as paid', + 'marked_invoice_as_paid' => 'Factura marcada correctamente como pagada', 'marked_invoices_as_sent' => 'Facturas marcadas correctamente como enviadas', - 'marked_invoices_as_paid' => 'Successfully marked invoices as paid', + 'marked_invoices_as_paid' => 'Facturas marcadas correctamente como pagadas', 'activity_57' => 'El sistema no envió la factura por correo electrónico :invoice', 'custom_value3' => 'Valor personalizado 3', 'custom_value4' => 'Valor personalizado 4', @@ -3677,9 +3680,9 @@ $LANG = array( 'send_date' => 'Fecha de envio', 'auto_bill_on' => 'Factura automática activada', 'minimum_under_payment_amount' => 'Cantidad mínima de pago inferior', - 'allow_over_payment' => 'Permitir sobrepago', + 'allow_over_payment' => 'Permitir pago en exceso', 'allow_over_payment_help' => 'Admite pagar extra para aceptar propinas', - 'allow_under_payment' => 'Permitir bajo pago', + 'allow_under_payment' => 'Permitir pago insuficiente', 'allow_under_payment_help' => 'Soporte pagando como mínimo el monto parcial/depósito', 'test_mode' => 'Modo de prueba', 'calculated_rate' => 'Tasa calculada', @@ -3976,8 +3979,8 @@ $LANG = array( 'account_balance' => 'Saldo de la cuenta', 'thanks' => 'Gracias', 'minimum_required_payment' => 'El pago mínimo requerido es :amount', - 'under_payments_disabled' => 'La empresa no admite pagos inferiores.', - 'over_payments_disabled' => 'La empresa no admite pagos excesivos.', + 'under_payments_disabled' => 'La empresa no admite pagos insuficientes.', + 'over_payments_disabled' => 'La empresa no admite pagos en exceso.', 'saved_at' => 'Guardado en :time', 'credit_payment' => 'Crédito aplicado a Factura :invoice_number', 'credit_subject' => 'Nuevo crédito :number de :account', @@ -4323,7 +4326,7 @@ $LANG = array( 'include_drafts' => 'Incluir borradores', 'include_drafts_help' => 'Incluir borradores de registros en informes', 'is_invoiced' => 'es facturado', - 'change_plan' => 'Manage Plan', + 'change_plan' => 'Gestionar plan', 'persist_data' => 'Persistir datos', 'customer_count' => 'Número de clientes', 'verify_customers' => 'Verificar clientes', @@ -4652,8 +4655,8 @@ $LANG = array( 'search_purchase_order' => 'Buscar orden de compra', 'search_purchase_orders' => 'Buscar órdenes de compra', 'login_url' => 'URL de inicio de sesión', - 'enable_applying_payments' => 'Habilitar la aplicación de pagos', - 'enable_applying_payments_help' => 'Admite la creación y aplicación de pagos por separado', + 'enable_applying_payments' => 'Sobrepagos manuales', + 'enable_applying_payments_help' => 'Admite agregar un monto de sobrepago manualmente en un pago', 'stock_quantity' => 'Cantidad de stock', 'notification_threshold' => 'Umbral de notificación', 'track_inventory' => 'Seguimiento de inventario', @@ -5136,35 +5139,54 @@ $LANG = array( 'is_tax_exempt' => 'Exento de Impuestos', 'drop_files_here' => 'Suelte archivos aquí', 'upload_files' => 'Subir archivos', - 'download_e_invoice' => 'Download E-Invoice', - 'triangular_tax_info' => 'Intra-community triangular transaction', - 'intracommunity_tax_info' => 'Tax-free intra-community delivery', - 'reverse_tax_info' => 'Please note that this supply is subject to reverse charge', - 'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba', - 'public' => 'Public', - 'private' => 'Private', - 'image' => 'Image', - 'other' => 'Other', - 'linked_to' => 'Linked To', - 'file_saved_in_path' => 'The file has been saved in :path', - 'unlinked_transactions' => 'Successfully unlinked :count transactions', - 'unlinked_transaction' => 'Successfully unlinked transaction', - 'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions', - 'marked_sent_credits' => 'Successfully marked credits sent', - 'show_document_preview' => 'Show Document Preview', - 'cash_accounting' => 'Cash accounting', - 'click_or_drop_files_here' => 'Click or drop files here', - 'set_public' => 'Set public', - 'set_private' => 'Set private', + 'download_e_invoice' => 'Descargar factura electrónica', + 'triangular_tax_info' => 'Transacción triangular intracomunitaria', + 'intracommunity_tax_info' => 'Entrega intracomunitaria libre de impuestos', + 'reverse_tax_info' => 'Tenga en cuenta que este suministro está sujeto a inversión de cargo.', + 'currency_nicaraguan_cordoba' => 'Córdoba nicaragüense', + 'public' => 'Público', + 'private' => 'Privado', + 'image' => 'Imagen', + 'other' => 'Otro', + 'linked_to' => 'Vinculado a', + 'file_saved_in_path' => 'El archivo se ha guardado en: ruta', + 'unlinked_transactions' => 'Transacciones :count desvinculadas correctamente', + 'unlinked_transaction' => 'Transacción desvinculada exitosamente', + 'view_dashboard_permission' => 'Permitir que el usuario acceda al panel, los datos están limitados a los permisos disponibles', + 'marked_sent_credits' => 'Créditos marcados exitosamente enviados', + 'show_document_preview' => 'Mostrar vista previa del documento', + 'cash_accounting' => 'contabilidad de caja', + 'click_or_drop_files_here' => 'Haga clic o suelte archivos aquí', + 'set_public' => 'Establecer público', + 'set_private' => 'Establecer privado', 'individual' => 'Individual', - 'business' => 'Business', - 'partnership' => 'partnership', - 'trust' => 'Trust', - 'charity' => 'Charity', - 'government' => 'Government', - 'in_stock_quantity' => 'Stock quantity', - 'vendor_contact' => 'Vendor Contact', - + 'business' => 'Negocio', + 'partnership' => 'camaradería', + 'trust' => 'Confianza', + 'charity' => 'Caridad', + 'government' => 'Gobierno', + 'in_stock_quantity' => 'Cantidad de stock', + 'vendor_contact' => 'Contacto del proveedor', + 'expense_status_4' => 'No pagado', + 'expense_status_5' => 'Pagado', + 'ziptax_help' => 'Nota: esta función requiere una clave API Zip-Tax para buscar impuestos sobre las ventas de EE. UU. por dirección', + 'cache_data' => 'Datos de caché', + 'unknown' => 'Desconocido', + 'webhook_failure' => 'Fallo del webhook', + 'email_opened' => 'Correo electrónico abierto', + 'email_delivered' => 'Correo electrónico entregado', + 'log' => 'Registro', + 'classification' => 'Clasificación', + 'stock_quantity_number' => 'Cantidad de stock', + 'upcoming' => 'Próximo', + 'client_contact' => 'Contacto con el cliente', + 'uncategorized' => 'Sin categoría', + 'login_notification' => 'Notificación de inicio de sesión', + 'login_notification_help' => 'Envía un correo electrónico notificando que se ha realizado un inicio de sesión.', + 'payment_refund_receipt' => 'Recibo de reembolso de pago n.° :number', + 'payment_receipt' => 'Recibo de pago # :number', + 'load_template_description' => 'La plantilla se aplicará a lo siguiente:', + 'run_template' => 'Ejecutar plantilla', ); return $LANG; diff --git a/lang/fr/texts.php b/lang/fr/texts.php index e78f9a319515..01965074c9df 100644 --- a/lang/fr/texts.php +++ b/lang/fr/texts.php @@ -652,7 +652,7 @@ $LANG = array( 'primary_user' => 'Utilisateur principal', 'help' => 'Aide', 'playground' => 'cour de récréation', - 'support_forum' => 'Support Forums', + 'support_forum' => 'Forums d'assistance', 'invoice_due_date' => 'Date limite', 'quote_due_date' => 'Date limite', 'valid_until' => 'Valide jusqu\'au', @@ -1142,7 +1142,7 @@ $LANG = array( 'plan_status' => 'Statut du Plan', 'plan_upgrade' => 'Mettre à niveau', - 'plan_change' => 'Manage Plan', + 'plan_change' => 'Gérer le forfait', 'pending_change_to' => 'Change vers', 'plan_changes_to' => ':plan au :date', 'plan_term_changes_to' => ':plan (:term) le :date', @@ -2396,6 +2396,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'currency_libyan_dinar' => 'Dinar libyen', 'currency_silver_troy_ounce' => 'Once troy d'argent', 'currency_gold_troy_ounce' => 'Once troy d'or', + 'currency_nicaraguan_córdoba' => 'Cordoue nicaraguayenne', + 'currency_malagasy_ariary' => 'Ariary malgache', + "currency_tongan_pa_anga" => "Pa'anga tongien", 'review_app_help' => 'Nous espérons que votre utilisation de cette application vous est agréable.
Un commentaire de votre part serait grandement apprécié!', 'writing_a_review' => 'écrire un commentaire', @@ -3331,9 +3334,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'freq_three_years' => 'Trois ans', 'military_time_help' => 'Affichage sur 24h', 'click_here_capital' => 'Cliquer ici', - 'marked_invoice_as_paid' => 'Successfully marked invoice as paid', + 'marked_invoice_as_paid' => 'Facture marquée avec succès comme payée', 'marked_invoices_as_sent' => 'Les factures ont été marquées envoyées', - 'marked_invoices_as_paid' => 'Successfully marked invoices as paid', + 'marked_invoices_as_paid' => 'Factures marquées avec succès comme payées', 'activity_57' => 'La facture :invoice n\'a pu être envoyée', 'custom_value3' => 'Valeur personnalisée 3', 'custom_value4' => 'Valeur personnalisée 4', @@ -3673,9 +3676,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'send_date' => 'Date d\'envoi', 'auto_bill_on' => 'Autofacturer le', 'minimum_under_payment_amount' => 'Montant minimum de sous-paiement', - 'allow_over_payment' => 'Accepter Sur-paiement', + 'allow_over_payment' => 'Autoriser le trop-payé', 'allow_over_payment_help' => 'Accepter le paiement supplémentaire pour pourboire', - 'allow_under_payment' => 'Accepter Sous-paiement', + 'allow_under_payment' => 'Autoriser le sous-paiement', 'allow_under_payment_help' => 'Supporter le paiement au minimum du montant de l\'acompte', 'test_mode' => 'Mode test', 'calculated_rate' => 'Taux Calculé', @@ -3972,8 +3975,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'account_balance' => 'Solde du compte', 'thanks' => 'Merci', 'minimum_required_payment' => 'Le paiement minimum requis est :amount', - 'under_payments_disabled' => 'La société ne prend pas en charge les sous-paiements.', - 'over_payments_disabled' => 'La société ne prend pas en charge les paiements excessifs.', + 'under_payments_disabled' => 'L'entreprise ne prend pas en charge les sous-paiements.', + 'over_payments_disabled' => 'L'entreprise ne prend pas en charge les trop-payés.', 'saved_at' => 'Enregistré à :time', 'credit_payment' => 'Crédit appliqué à la facture :invoice_number', 'credit_subject' => 'Nouveau crédit :number de :account', @@ -4319,7 +4322,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'include_drafts' => 'Inclure les brouillons', 'include_drafts_help' => 'Inclure les brouillons d\'enregistrements dans les rapports', 'is_invoiced' => 'Est facturé', - 'change_plan' => 'Manage Plan', + 'change_plan' => 'Gérer le forfait', 'persist_data' => 'Mémoriser les données', 'customer_count' => 'Nombre de clients', 'verify_customers' => 'Vérifier les clients', @@ -4648,8 +4651,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'search_purchase_order' => 'Rechercher un bon de commande', 'search_purchase_orders' => 'Rechercher des bons de commande', 'login_url' => 'URL de connexion', - 'enable_applying_payments' => 'Active la fonction \'Appliquer les paiements\'', - 'enable_applying_payments_help' => 'Permet de créer et d\'appliquer les paiements séparément', + 'enable_applying_payments' => 'Trop-payés manuels', + 'enable_applying_payments_help' => 'Prise en charge de l'ajout manuel d'un montant de trop-payé sur un paiement', 'stock_quantity' => 'Quantité en stock', 'notification_threshold' => 'Seuil de notification', 'track_inventory' => 'Gérer l\'inventaire', @@ -5132,7 +5135,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'is_tax_exempt' => 'Exonéré d'impôt', 'drop_files_here' => 'Déposez les fichiers ici', 'upload_files' => 'Télécharger des fichiers', - 'download_e_invoice' => 'Download E-Invoice', + 'download_e_invoice' => 'Télécharger la facture électronique', 'triangular_tax_info' => 'Article 141 de la directive 2006/112/CE – opération triangulaire', 'intracommunity_tax_info' => 'Livraison désignée à l\'article 262 ter du CGI – TVA due par le preneur', 'reverse_tax_info' => 'Exonération des TVA article 283-2 du CGI – TVA due par le preneur', @@ -5146,21 +5149,40 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'unlinked_transactions' => 'Transactions :count dissociées avec succès', 'unlinked_transaction' => 'Transaction dissociée avec succès', 'view_dashboard_permission' => 'Autoriser l'utilisateur à accéder au tableau de bord, les données sont limitées aux autorisations disponibles', - 'marked_sent_credits' => 'Successfully marked credits sent', - 'show_document_preview' => 'Show Document Preview', - 'cash_accounting' => 'Cash accounting', - 'click_or_drop_files_here' => 'Click or drop files here', - 'set_public' => 'Set public', - 'set_private' => 'Set private', - 'individual' => 'Individual', - 'business' => 'Business', - 'partnership' => 'partnership', - 'trust' => 'Trust', - 'charity' => 'Charity', - 'government' => 'Government', - 'in_stock_quantity' => 'Stock quantity', - 'vendor_contact' => 'Vendor Contact', - + 'marked_sent_credits' => 'Crédits marqués avec succès envoyés', + 'show_document_preview' => 'Afficher l'aperçu du document', + 'cash_accounting' => 'Comptabilité de trésorerie', + 'click_or_drop_files_here' => 'Cliquez ou déposez les fichiers ici', + 'set_public' => 'Définir comme public', + 'set_private' => 'Définir comme privé', + 'individual' => 'Individuel', + 'business' => 'Entreprise', + 'partnership' => 'Partenariat', + 'trust' => 'Confiance', + 'charity' => 'Charité', + 'government' => 'Gouvernement', + 'in_stock_quantity' => 'Quantité en stock', + 'vendor_contact' => 'Contacter le fournisseur', + 'expense_status_4' => 'Non payé', + 'expense_status_5' => 'Payé', + 'ziptax_help' => 'Remarque : cette fonctionnalité nécessite une clé API Zip-Tax pour rechercher la taxe de vente américaine par adresse.', + 'cache_data' => 'Données en cache', + 'unknown' => 'Inconnu', + 'webhook_failure' => 'Échec du webhook', + 'email_opened' => 'E-mail ouvert', + 'email_delivered' => 'E-mail livré', + 'log' => 'Enregistrer', + 'classification' => 'Classification', + 'stock_quantity_number' => 'Quantité en stock', + 'upcoming' => 'A venir', + 'client_contact' => 'Contact client', + 'uncategorized' => 'Non classé', + 'login_notification' => 'Notification de connexion', + 'login_notification_help' => 'Envoie un e-mail informant qu'une connexion a eu lieu.', + 'payment_refund_receipt' => 'Reçu de remboursement de paiement # :number', + 'payment_receipt' => 'Reçu de paiement # :number', + 'load_template_description' => 'Le modèle sera appliqué aux éléments suivants :', + 'run_template' => 'Exécuter le modèle', ); return $LANG; diff --git a/lang/fr_CH/texts.php b/lang/fr_CH/texts.php index 5da5be7026bc..9b252b100a86 100644 --- a/lang/fr_CH/texts.php +++ b/lang/fr_CH/texts.php @@ -652,7 +652,7 @@ $LANG = array( 'primary_user' => 'Utilisateur principal', 'help' => 'Aide', 'playground' => 'environnement', - 'support_forum' => 'Support Forums', + 'support_forum' => 'Forums d'assistance', 'invoice_due_date' => 'Échéance', 'quote_due_date' => 'Valide jusqu\'au', 'valid_until' => 'Valide jusqu\'au', @@ -1139,7 +1139,7 @@ $LANG = array( 'plan_status' => 'État du plan', 'plan_upgrade' => 'Mise à jour', - 'plan_change' => 'Manage Plan', + 'plan_change' => 'Gérer le forfait', 'pending_change_to' => 'Changer pour', 'plan_changes_to' => ':plan le :date', 'plan_term_changes_to' => ':plan (:term) le :date', @@ -2391,9 +2391,12 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'currency_cuban_peso' => 'Cuban Peso', 'currency_bz_dollar' => 'BZ Dollar', - 'currency_libyan_dinar' => 'Libyan Dinar', - 'currency_silver_troy_ounce' => 'Silver Troy Ounce', - 'currency_gold_troy_ounce' => 'Gold Troy Ounce', + 'currency_libyan_dinar' => 'Dinar libyen', + 'currency_silver_troy_ounce' => 'Once Troy d'argent', + 'currency_gold_troy_ounce' => 'Once troy d'or', + 'currency_nicaraguan_córdoba' => 'Cordoue nicaraguayenne', + 'currency_malagasy_ariary' => 'Ariary malgache', + "currency_tongan_pa_anga" => "Pa'anga tongien", 'review_app_help' => 'Nous espérons que votre utilisation de cette application vous est agréable.
Un commentaire de votre part serait grandement apprécié!', 'writing_a_review' => 'rédiger un commentaire', @@ -3329,9 +3332,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'freq_three_years' => 'Trois ans', 'military_time_help' => 'Affichage 24h', 'click_here_capital' => 'Cliquez ici', - 'marked_invoice_as_paid' => 'Successfully marked invoice as paid', + 'marked_invoice_as_paid' => 'La facture a été marquée comme payée', 'marked_invoices_as_sent' => 'Les factures ont été marquées comme envoyées avec succès', - 'marked_invoices_as_paid' => 'Successfully marked invoices as paid', + 'marked_invoices_as_paid' => 'Les factures ont été marquées comme payées', 'activity_57' => 'Le système n\'a pas pu envoyer le courriel de la facture :invoice', 'custom_value3' => 'Valeur personnalisée 3', 'custom_value4' => 'Valeur personnalisée 4', @@ -3671,9 +3674,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'send_date' => 'Date d\'envoi', 'auto_bill_on' => 'Autofacturer le', 'minimum_under_payment_amount' => 'Montant minimum de sous-paiement', - 'allow_over_payment' => 'Accepter Sur-paiement', + 'allow_over_payment' => 'Autoriser le surpaiement', 'allow_over_payment_help' => 'Accepter paiement supplémentaire pour pourboire', - 'allow_under_payment' => 'Accepter Sous-paiement', + 'allow_under_payment' => 'Autoriser le souspaiement', 'allow_under_payment_help' => 'Accepter paiement au minimum le montant partiel/dépôt', 'test_mode' => 'Mode test', 'calculated_rate' => 'Taux calculé', @@ -3970,8 +3973,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'account_balance' => 'Solde du compte', 'thanks' => 'Merci', 'minimum_required_payment' => 'Le paiement minimum requis est :amount', - 'under_payments_disabled' => 'La société ne tolère pas le sous-paiement.', - 'over_payments_disabled' => 'La société ne tolère pas le sur-paiement.', + 'under_payments_disabled' => 'L\'entreprise d\'autorise pas les surpaiements.', + 'over_payments_disabled' => 'L\'entreprise d\'autorise pas les souspaiements.', 'saved_at' => 'Enregistré à :time', 'credit_payment' => 'Le crédit a été appliqué à la facture :invoice_number', 'credit_subject' => 'Nouveau crédit :credit de :account', @@ -4317,7 +4320,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'include_drafts' => 'Include Drafts', 'include_drafts_help' => 'Include draft records in reports', 'is_invoiced' => 'Is Invoiced', - 'change_plan' => 'Manage Plan', + 'change_plan' => 'Gérer le forfait', 'persist_data' => 'Persist Data', 'customer_count' => 'Customer Count', 'verify_customers' => 'Verify Customers', @@ -4646,8 +4649,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'search_purchase_order' => 'Rechercher un bon de commande', 'search_purchase_orders' => 'Rechercher des bons de commande', 'login_url' => 'Login URL', - 'enable_applying_payments' => 'Active la fonction \'Appliquer les paiements\'', - 'enable_applying_payments_help' => 'Permet de créer et d\'appliquer les paiements séparément', + 'enable_applying_payments' => 'Trop-payés manuels', + 'enable_applying_payments_help' => 'Prise en charge de l'ajout manuel d'un montant de trop-payé sur un paiement', 'stock_quantity' => 'Stock Quantity', 'notification_threshold' => 'Notification Threshold', 'track_inventory' => 'Suivre l\'inventaire', @@ -4942,7 +4945,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'sync_from' => 'Sync From', 'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client', 'gateway_payment_text_no_invoice' => 'Paiement sans facture d\'un montant de :amount pour le client :client', - 'click_to_variables' => 'Click here to see all variables.', + 'click_to_variables' => 'Cliquez ici pour voir toutes les variables.', 'ship_to' => 'Ship to', 'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.', 'branch_name' => 'Branch Name', @@ -5115,50 +5118,69 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'amount_received_help' => 'Saisissez une valeur si le montant total reçu été PLUS élevé que le montant de la facture, ou lors de l\'enregistrement d\'un paiement sans factures. Sinon, ce champ devrait rester vide.', 'vendor_phone' => 'Téléphone du fournisseur', 'mercado_pago' => 'Mercado Pago', - 'mybank' => 'MyBank', - 'paypal_paylater' => 'Pay in 4', + 'mybank' => 'Ma banque', + 'paypal_paylater' => 'Payez en 4', 'paid_date' => 'La date de paiement', - 'district' => 'District', - 'region' => 'Region', - 'county' => 'County', - 'tax_details' => 'Tax Details', - 'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client', - 'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client', - 'default_payment_type' => 'Default Payment Type', - 'number_precision' => 'Number precision', - 'number_precision_help' => 'Controls the number of decimals supported in the interface', - 'is_tax_exempt' => 'Tax Exempt', - 'drop_files_here' => 'Drop files here', - 'upload_files' => 'Upload Files', - 'download_e_invoice' => 'Download E-Invoice', - 'triangular_tax_info' => 'Intra-community triangular transaction', - 'intracommunity_tax_info' => 'Tax-free intra-community delivery', - 'reverse_tax_info' => 'Please note that this supply is subject to reverse charge', - 'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba', - 'public' => 'Public', - 'private' => 'Private', + 'district' => 'Canton', + 'region' => 'Région', + 'county' => 'Pays', + 'tax_details' => 'Détails de la TVA', + 'activity_10_online' => ':contact paiement saisi :payment pour facture :invoice pour :client', + 'activity_10_manual' => ':user paiement saisi :payment pour facture :invoice pour :client', + 'default_payment_type' => 'Type de paiement par défaut', + 'number_precision' => 'Précision du nombre', + 'number_precision_help' => 'Contrôle le nombre de décimales prises en charge dans l'interface', + 'is_tax_exempt' => 'TVA non applicable', + 'drop_files_here' => 'Déposez les fichiers ici', + 'upload_files' => 'Téléverser les fichiers', + 'download_e_invoice' => 'Télécharger la facture électronique', + 'triangular_tax_info' => 'Transaction triangulaire intracommunautaire', + 'intracommunity_tax_info' => 'Livraison intracommunautaire hors taxes', + 'reverse_tax_info' => 'Veuillez noter que cette fourniture est soumise à l'autoliquidation', + 'currency_nicaraguan_cordoba' => 'Cordoue nicaraguayenne', + 'public' => 'Publique', + 'private' => 'Privé', 'image' => 'Image', - 'other' => 'Other', - 'linked_to' => 'Linked To', - 'file_saved_in_path' => 'The file has been saved in :path', - 'unlinked_transactions' => 'Successfully unlinked :count transactions', - 'unlinked_transaction' => 'Successfully unlinked transaction', - 'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions', - 'marked_sent_credits' => 'Successfully marked credits sent', - 'show_document_preview' => 'Show Document Preview', - 'cash_accounting' => 'Cash accounting', - 'click_or_drop_files_here' => 'Click or drop files here', - 'set_public' => 'Set public', - 'set_private' => 'Set private', - 'individual' => 'Individual', - 'business' => 'Business', - 'partnership' => 'partnership', - 'trust' => 'Trust', - 'charity' => 'Charity', - 'government' => 'Government', - 'in_stock_quantity' => 'Stock quantity', - 'vendor_contact' => 'Vendor Contact', - + 'other' => 'Autre', + 'linked_to' => 'Lié à', + 'file_saved_in_path' => 'Le fichier a été enregistré dans :path', + 'unlinked_transactions' => 'Transactions :count dissociées avec succès', + 'unlinked_transaction' => 'Transaction dissociée avec succès', + 'view_dashboard_permission' => 'Autoriser l'utilisateur à accéder au tableau de bord, les données sont limitées aux autorisations disponibles', + 'marked_sent_credits' => 'Crédits marqués avec succès envoyés', + 'show_document_preview' => 'Afficher l'aperçu du document', + 'cash_accounting' => 'Comptabilité de trésorerie', + 'click_or_drop_files_here' => 'Cliquez ou déposez les fichiers ici', + 'set_public' => 'Définir comme public', + 'set_private' => 'Définir comme privé', + 'individual' => 'Individuel', + 'business' => 'Entreprise', + 'partnership' => 'partenaire', + 'trust' => 'Confiance', + 'charity' => 'Charité', + 'government' => 'Gouvernement', + 'in_stock_quantity' => 'Quantité en stock', + 'vendor_contact' => 'Contact du fournisseur', + 'expense_status_4' => 'Non payé', + 'expense_status_5' => 'Payé', + 'ziptax_help' => 'Remarque : cette fonctionnalité nécessite une clé API Zip-Tax pour rechercher la taxe de vente américaine par adresse.', + 'cache_data' => 'Données en cache', + 'unknown' => 'Inconnu', + 'webhook_failure' => 'Échec du webhook', + 'email_opened' => 'E-mail ouvert', + 'email_delivered' => 'E-mail livré', + 'log' => 'Enregistrer', + 'classification' => 'Classification', + 'stock_quantity_number' => 'Quantité en stock', + 'upcoming' => 'A venir', + 'client_contact' => 'Contact client', + 'uncategorized' => 'Non classé', + 'login_notification' => 'Notification de connexion', + 'login_notification_help' => 'Envoie un e-mail informant qu'une connexion a eu lieu.', + 'payment_refund_receipt' => 'Reçu de remboursement de paiement # :number', + 'payment_receipt' => 'Reçu de paiement # :number', + 'load_template_description' => 'Le modèle sera appliqué aux éléments suivants :', + 'run_template' => 'Exécuter le modèle', ); return $LANG; diff --git a/lang/zh_TW/texts.php b/lang/zh_TW/texts.php index 25855c2225dc..73ab17b7262f 100644 --- a/lang/zh_TW/texts.php +++ b/lang/zh_TW/texts.php @@ -199,9 +199,9 @@ $LANG = array( 'removed_logo' => '移除標誌成功', 'sent_message' => '寄出訊息成功', 'invoice_error' => '請確認選取一個用戶並更正任何錯誤', - 'limit_clients' => 'Sorry, this will exceed the limit of :count clients. Please upgrade to a paid plan.', + 'limit_clients' => '抱歉,這將超出:count客戶端的限制。請升級到付費方案。', 'payment_error' => '您的付款處理過程有誤。請稍後重試。', - 'registration_required' => 'Registration Required', + 'registration_required' => '需要註冊', 'confirmation_required' => '請確認您的電子郵件地址 :link ,以重寄確認函。', 'updated_client' => '更新用戶資料成功', 'archived_client' => '歸檔用戶資料成功', @@ -253,8 +253,8 @@ $LANG = array( 'notification_invoice_paid' => '用戶 :client 對發票 :invoice 支付 :amount 的金額。', 'notification_invoice_sent' => '以下用戶 :client 透過電子郵件傳送 :amount 的發票 :invoice。', 'notification_invoice_viewed' => '以下用戶 :client 檢視 :amount 的發票 :invoice。', - 'stripe_payment_text' => 'Invoice :invoicenumber for :amount for client :client', - 'stripe_payment_text_without_invoice' => 'Payment with no invoice for amount :amount for client :client', + 'stripe_payment_text' => '客戶:client的:amount的發票:invoice號碼', + 'stripe_payment_text_without_invoice' => '客戶:client金額為:amount的無發票付款', 'reset_password' => '您可重新點選以下按鈕來重新設定您的帳戶密碼:', 'secure_payment' => '安全付款', 'card_number' => '卡號', @@ -655,7 +655,7 @@ $LANG = array( 'primary_user' => '首要的使用者', 'help' => '說明', 'playground' => 'playground', - 'support_forum' => 'Support Forums', + 'support_forum' => '支援論壇', 'invoice_due_date' => '應付款日期', 'quote_due_date' => '有效至', 'valid_until' => '有效至', @@ -749,7 +749,7 @@ $LANG = array( 'activity_7' => ':contact viewed invoice :invoice for :client', 'activity_8' => ':user 已將發票 :invoice 歸檔', 'activity_9' => ':user 已刪除發票 :invoice', - 'activity_10' => ':user entered payment :payment for :payment_amount on invoice :invoice for :client', + 'activity_10' => ':user輸入了:payment的付款:payment發票上的金額:invoice的:client', 'activity_11' => ':user 已更新付款資料 :payment', 'activity_12' => ':user 已將付款資料 :payment 歸檔', 'activity_13' => ':user 已刪除付款資料 :payment', @@ -783,13 +783,13 @@ $LANG = array( 'activity_45' => ':user 已刪除任務 :task', 'activity_46' => ':user 已將任務 :task復原', 'activity_47' => ':user 已將支出 :expense 更新', - 'activity_48' => ':user created user :user', - 'activity_49' => ':user updated user :user', - 'activity_50' => ':user archived user :user', - 'activity_51' => ':user deleted user :user', - 'activity_52' => ':user restored user :user', - 'activity_53' => ':user marked sent :invoice', - 'activity_54' => ':user paid invoice :invoice', + 'activity_48' => ':user建立使用者:user', + 'activity_49' => ':user更新用戶:user', + 'activity_50' => ':user存檔用戶:user', + 'activity_51' => ':user已刪除使用者:user', + 'activity_52' => ':user恢復用戶:user', + 'activity_53' => ':user標記已發送:invoice', + 'activity_54' => ':user已付款發票:invoice', 'activity_55' => ':contact 已回覆票證 :ticket', 'activity_56' => ':user 已檢視票證 :ticket', @@ -877,7 +877,7 @@ $LANG = array( 'custom_invoice_charges_helps' => '該欄位的在建立一筆客戶資料時新增欄位,且在發票小計中加入費用。', 'token_expired' => '認證用的安全代碼已過期。 請再試一遍。', 'invoice_link' => '發票的連結', - 'button_confirmation_message' => 'Confirm your email.', + 'button_confirmation_message' => '確認您的電子郵件。', 'confirm' => '確認', 'email_preferences' => '電子郵件偏好設定', 'created_invoices' => '建立 :count 筆發票成功', @@ -991,7 +991,7 @@ $LANG = array( 'status_approved' => '已核准', 'quote_settings' => '報價單設定', 'auto_convert_quote' => '自動轉換', - 'auto_convert_quote_help' => 'Automatically convert a quote to an invoice when approved.', + 'auto_convert_quote_help' => '批准後自動將報價轉換為發票。', 'validate' => '有效的', 'info' => '資訊', 'imported_expenses' => '已成功建立 :count_vendors (筆) 供應商資料以及 :count_expenses (筆) 支出資料', @@ -1145,7 +1145,7 @@ $LANG = array( 'plan_status' => '訂用的合約狀態', 'plan_upgrade' => '升級', - 'plan_change' => 'Manage Plan', + 'plan_change' => '管理計劃', 'pending_change_to' => '改為', 'plan_changes_to' => ':plan 於 :date', 'plan_term_changes_to' => ':plan (:term) 於 :date', @@ -1174,7 +1174,7 @@ $LANG = array( 'plan_started' => '選用版本的效期開始於', 'plan_expires' => '選用版本的效期開始於', - 'white_label_button' => 'Purchase White Label', + 'white_label_button' => '購買白標', 'pro_plan_year_description' => '訂用 Invoice Ninja 專業版一年方案。', 'pro_plan_month_description' => '訂用 Invoice Ninja 專業版一個月方案。', @@ -1846,7 +1846,7 @@ $LANG = array( 'task' => '任務', 'contact_name' => '聯絡人姓名', 'city_state_postal' => '城市/州省/郵遞區號', - 'postal_city' => 'Postal/City', + 'postal_city' => '郵政/城市', 'custom_field' => '自訂欄位', 'account_fields' => '公司欄位', 'facebook_and_twitter' => 'Facebook 和 Twitter', @@ -1992,7 +1992,7 @@ $LANG = array( 'current_quarter' => 'Current Quarter', 'last_quarter' => 'Last Quarter', 'last_year' => '下個月', - 'all_time' => 'All Time', + 'all_time' => '整天', 'custom_range' => '自訂範圍', 'url' => 'URL', 'debug' => '偵錯', @@ -2195,9 +2195,9 @@ $LANG = array( 'navigation_variables' => '導覽變數', 'custom_variables' => '客戶變項', 'invalid_file' => '無效的檔案類型', - 'add_documents_to_invoice' => 'Add Documents to Invoice', + 'add_documents_to_invoice' => '將文件新增至發票', 'mark_expense_paid' => '標記已付', - 'white_label_license_error' => 'Failed to validate the license, either expired or excessive activations. Email contact@invoiceninja.com for more information.', + 'white_label_license_error' => '無法驗證許可證,可能已過期或啟用次數過多。發送電子郵件至 contact@invoiceninja.com 以了解更多資訊。', 'plan_price' => '方案價格', 'wrong_confirmation' => '不正確的認證碼', 'oauth_taken' => '這個帳號已被登記', @@ -2252,7 +2252,7 @@ $LANG = array( 'restore_recurring_expense' => '復原週期性支出', 'restored_recurring_expense' => '復原週期性支出成功', 'delete_recurring_expense' => '刪除週期性支出', - 'deleted_recurring_expense' => 'Successfully deleted recurring expense', + 'deleted_recurring_expense' => '已成功刪除經常性費用', 'view_recurring_expense' => '檢視週期性支出', 'taxes_and_fees' => '稅金與費用', 'import_failed' => '匯入失敗', @@ -2395,10 +2395,13 @@ $LANG = array( 'currency_vanuatu_vatu' => '瓦努阿圖瓦圖', 'currency_cuban_peso' => '古巴披索', - 'currency_bz_dollar' => 'BZ Dollar', - 'currency_libyan_dinar' => 'Libyan Dinar', - 'currency_silver_troy_ounce' => 'Silver Troy Ounce', - 'currency_gold_troy_ounce' => 'Gold Troy Ounce', + 'currency_bz_dollar' => 'BZ美元', + 'currency_libyan_dinar' => '利比亞第納爾', + 'currency_silver_troy_ounce' => '銀金衡盎司', + 'currency_gold_troy_ounce' => '金金衡盎司', + 'currency_nicaraguan_córdoba' => '尼加拉瓜科爾多瓦', + 'currency_malagasy_ariary' => '馬達加斯加阿里阿里', + "currency_tongan_pa_anga" => "東加潘加", 'review_app_help' => '我們希望您喜歡使用這個程式。
若您考慮 :link,我們會非常感謝!', 'writing_a_review' => '撰寫評語', @@ -2452,7 +2455,7 @@ $LANG = array( 'alipay' => 'Alipay', 'sofort' => 'Sofort', 'sepa' => 'SEPA Direct Debit', - 'name_without_special_characters' => 'Please enter a name with only the letters a-z and whitespaces', + 'name_without_special_characters' => '請輸入僅包含字母 az 和空格的名稱', 'enable_alipay' => '接受 Alipay', 'enable_sofort' => '接受歐盟銀行轉帳', 'stripe_alipay_help' => '這些閘道也需要以 :link 開通。', @@ -2510,8 +2513,8 @@ $LANG = array( 'partial_due_date' => '部分截止日期', 'task_fields' => '任務欄位', 'product_fields_help' => '拖放欄位以來改變其順序', - 'custom_value1' => 'Custom Value 1', - 'custom_value2' => 'Custom Value 2', + 'custom_value1' => '自訂值1', + 'custom_value2' => '自訂值2', 'enable_two_factor' => '兩步驟驗證', 'enable_two_factor_help' => '在登入時使用您的手機來確認您的身份', 'two_factor_setup' => '兩步驟驗證設定', @@ -2773,11 +2776,11 @@ $LANG = array( 'invalid_url' => '無效的 URL', 'workflow_settings' => '工作流程設定', 'auto_email_invoice' => '自動電子郵件', - 'auto_email_invoice_help' => 'Automatically email recurring invoices when created.', + 'auto_email_invoice_help' => '建立後自動透過電子郵件發送定期發票。', 'auto_archive_invoice' => '自動歸檔', - 'auto_archive_invoice_help' => 'Automatically archive invoices when paid.', + 'auto_archive_invoice_help' => '付款後自動存檔發票。', 'auto_archive_quote' => '自動歸檔', - 'auto_archive_quote_help' => 'Automatically archive quotes when converted to invoice.', + 'auto_archive_quote_help' => '轉換為發票後自動存檔報價。', 'require_approve_quote' => 'Require approve quote', 'require_approve_quote_help' => 'Require clients to approve quotes.', 'allow_approve_expired_quote' => '允許核准過期的報價單', @@ -3212,1958 +3215,1977 @@ $LANG = array( 'company2' => '自訂公司2', 'company3' => '自訂公司3', 'company4' => '自訂公司4', - 'product1' => 'Custom Product 1', - 'product2' => 'Custom Product 2', - 'product3' => 'Custom Product 3', - 'product4' => 'Custom Product 4', - 'client1' => 'Custom Client 1', - 'client2' => 'Custom Client 2', - 'client3' => 'Custom Client 3', - 'client4' => 'Custom Client 4', - 'contact1' => 'Custom Contact 1', - 'contact2' => 'Custom Contact 2', - 'contact3' => 'Custom Contact 3', - 'contact4' => 'Custom Contact 4', - 'task1' => 'Custom Task 1', - 'task2' => 'Custom Task 2', - 'task3' => 'Custom Task 3', - 'task4' => 'Custom Task 4', - 'project1' => 'Custom Project 1', - 'project2' => 'Custom Project 2', - 'project3' => 'Custom Project 3', - 'project4' => 'Custom Project 4', - 'expense1' => 'Custom Expense 1', - 'expense2' => 'Custom Expense 2', - 'expense3' => 'Custom Expense 3', - 'expense4' => 'Custom Expense 4', - 'vendor1' => 'Custom Vendor 1', - 'vendor2' => 'Custom Vendor 2', - 'vendor3' => 'Custom Vendor 3', - 'vendor4' => 'Custom Vendor 4', - 'invoice1' => 'Custom Invoice 1', - 'invoice2' => 'Custom Invoice 2', - 'invoice3' => 'Custom Invoice 3', - 'invoice4' => 'Custom Invoice 4', - 'payment1' => 'Custom Payment 1', - 'payment2' => 'Custom Payment 2', - 'payment3' => 'Custom Payment 3', - 'payment4' => 'Custom Payment 4', - 'surcharge1' => 'Custom Surcharge 1', - 'surcharge2' => 'Custom Surcharge 2', - 'surcharge3' => 'Custom Surcharge 3', - 'surcharge4' => 'Custom Surcharge 4', - 'group1' => 'Custom Group 1', - 'group2' => 'Custom Group 2', - 'group3' => 'Custom Group 3', - 'group4' => 'Custom Group 4', - 'number' => 'Number', - 'count' => 'Count', - 'is_active' => 'Is Active', - 'contact_last_login' => 'Contact Last Login', - 'contact_full_name' => 'Contact Full Name', - 'contact_custom_value1' => 'Contact Custom Value 1', - 'contact_custom_value2' => 'Contact Custom Value 2', - 'contact_custom_value3' => 'Contact Custom Value 3', - 'contact_custom_value4' => 'Contact Custom Value 4', - 'assigned_to_id' => 'Assigned To Id', - 'created_by_id' => 'Created By Id', - 'add_column' => 'Add Column', - 'edit_columns' => 'Edit Columns', - 'to_learn_about_gogle_fonts' => 'to learn about Google Fonts', - 'refund_date' => 'Refund Date', - 'multiselect' => 'Multiselect', - 'verify_password' => 'Verify Password', - 'applied' => 'Applied', - 'include_recent_errors' => 'Include recent errors from the logs', - 'your_message_has_been_received' => 'We have received your message and will try to respond promptly.', - 'show_product_details' => 'Show Product Details', - 'show_product_details_help' => 'Include the description and cost in the product dropdown', - 'pdf_min_requirements' => 'The PDF renderer requires :version', - 'adjust_fee_percent' => 'Adjust Fee Percent', - 'configure_settings' => 'Configure Settings', - 'about' => 'About', - 'credit_email' => 'Credit Email', - 'domain_url' => 'Domain URL', - 'password_is_too_easy' => 'Password must contain an upper case character and a number', - 'client_portal_tasks' => 'Client Portal Tasks', - 'client_portal_dashboard' => 'Client Portal Dashboard', - 'please_enter_a_value' => 'Please enter a value', - 'deleted_logo' => 'Successfully deleted logo', - 'generate_number' => 'Generate Number', - 'when_saved' => 'When Saved', - 'when_sent' => 'When Sent', - 'select_company' => 'Select Company', - 'float' => 'Float', - 'collapse' => 'Collapse', - 'show_or_hide' => 'Show/hide', - 'menu_sidebar' => 'Menu Sidebar', - 'history_sidebar' => 'History Sidebar', - 'tablet' => 'Tablet', - 'layout' => 'Layout', - 'module' => 'Module', - 'first_custom' => 'First Custom', - 'second_custom' => 'Second Custom', - 'third_custom' => 'Third Custom', - 'show_cost' => 'Show Cost', - 'show_cost_help' => 'Display a product cost field to track the markup/profit', - 'show_product_quantity' => 'Show Product Quantity', - 'show_product_quantity_help' => 'Display a product quantity field, otherwise default to one', - 'show_invoice_quantity' => 'Show Invoice Quantity', - 'show_invoice_quantity_help' => 'Display a line item quantity field, otherwise default to one', - 'default_quantity' => 'Default Quantity', - 'default_quantity_help' => 'Automatically set the line item quantity to one', - 'one_tax_rate' => 'One Tax Rate', - 'two_tax_rates' => 'Two Tax Rates', - 'three_tax_rates' => 'Three Tax Rates', - 'default_tax_rate' => 'Default Tax Rate', - 'invoice_tax' => 'Invoice Tax', - 'line_item_tax' => 'Line Item Tax', - 'inclusive_taxes' => 'Inclusive Taxes', - 'invoice_tax_rates' => 'Invoice Tax Rates', - 'item_tax_rates' => 'Item Tax Rates', - 'configure_rates' => 'Configure rates', - 'tax_settings_rates' => 'Tax Rates', - 'accent_color' => 'Accent Color', - 'comma_sparated_list' => 'Comma separated list', - 'single_line_text' => 'Single-line text', - 'multi_line_text' => 'Multi-line text', - 'dropdown' => 'Dropdown', - 'field_type' => 'Field Type', - 'recover_password_email_sent' => 'A password recovery email has been sent', - 'removed_user' => 'Successfully removed user', - 'freq_three_years' => 'Three Years', - 'military_time_help' => '24 Hour Display', - 'click_here_capital' => 'Click here', - 'marked_invoice_as_paid' => 'Successfully marked invoice as paid', - 'marked_invoices_as_sent' => 'Successfully marked invoices as sent', - 'marked_invoices_as_paid' => 'Successfully marked invoices as paid', - 'activity_57' => 'System failed to email invoice :invoice', - 'custom_value3' => 'Custom Value 3', - 'custom_value4' => 'Custom Value 4', - 'email_style_custom' => 'Custom Email Style', - 'custom_message_dashboard' => 'Custom Dashboard Message', - 'custom_message_unpaid_invoice' => 'Custom Unpaid Invoice Message', - 'custom_message_paid_invoice' => 'Custom Paid Invoice Message', - 'custom_message_unapproved_quote' => 'Custom Unapproved Quote Message', - 'lock_sent_invoices' => 'Lock Sent Invoices', - 'translations' => 'Translations', - 'task_number_pattern' => 'Task Number Pattern', - 'task_number_counter' => 'Task Number Counter', - 'expense_number_pattern' => 'Expense Number Pattern', - 'expense_number_counter' => 'Expense Number Counter', - 'vendor_number_pattern' => 'Vendor Number Pattern', - 'vendor_number_counter' => 'Vendor Number Counter', - 'ticket_number_pattern' => 'Ticket Number Pattern', - 'ticket_number_counter' => 'Ticket Number Counter', - 'payment_number_pattern' => 'Payment Number Pattern', - 'payment_number_counter' => 'Payment Number Counter', - 'invoice_number_pattern' => 'Invoice Number Pattern', - 'quote_number_pattern' => 'Quote Number Pattern', - 'client_number_pattern' => 'Credit Number Pattern', - 'client_number_counter' => 'Credit Number Counter', - 'credit_number_pattern' => 'Credit Number Pattern', - 'credit_number_counter' => 'Credit Number Counter', - 'reset_counter_date' => 'Reset Counter Date', - 'counter_padding' => 'Counter Padding', - 'shared_invoice_quote_counter' => 'Share Invoice Quote Counter', - 'default_tax_name_1' => 'Default Tax Name 1', - 'default_tax_rate_1' => 'Default Tax Rate 1', - 'default_tax_name_2' => 'Default Tax Name 2', - 'default_tax_rate_2' => 'Default Tax Rate 2', - 'default_tax_name_3' => 'Default Tax Name 3', - 'default_tax_rate_3' => 'Default Tax Rate 3', - 'email_subject_invoice' => 'Email Invoice Subject', - 'email_subject_quote' => 'Email Quote Subject', - 'email_subject_payment' => 'Email Payment Subject', - 'switch_list_table' => 'Switch List Table', - 'client_city' => 'Client City', - 'client_state' => 'Client State', - 'client_country' => 'Client Country', - 'client_is_active' => 'Client is Active', - 'client_balance' => 'Client Balance', - 'client_address1' => 'Client Street', - 'client_address2' => 'Client Apt/Suite', - 'client_shipping_address1' => 'Client Shipping Street', - 'client_shipping_address2' => 'Client Shipping Apt/Suite', - 'tax_rate1' => 'Tax Rate 1', - 'tax_rate2' => 'Tax Rate 2', - 'tax_rate3' => 'Tax Rate 3', - 'archived_at' => 'Archived At', - 'has_expenses' => 'Has Expenses', - 'custom_taxes1' => 'Custom Taxes 1', - 'custom_taxes2' => 'Custom Taxes 2', - 'custom_taxes3' => 'Custom Taxes 3', - 'custom_taxes4' => 'Custom Taxes 4', - 'custom_surcharge1' => 'Custom Surcharge 1', - 'custom_surcharge2' => 'Custom Surcharge 2', - 'custom_surcharge3' => 'Custom Surcharge 3', - 'custom_surcharge4' => 'Custom Surcharge 4', - 'is_deleted' => 'Is Deleted', - 'vendor_city' => 'Vendor City', - 'vendor_state' => 'Vendor State', - 'vendor_country' => 'Vendor Country', - 'credit_footer' => 'Credit Footer', - 'credit_terms' => 'Credit Terms', - 'untitled_company' => 'Untitled Company', - 'added_company' => 'Successfully added company', - 'supported_events' => 'Supported Events', - 'custom3' => 'Third Custom', - 'custom4' => 'Fourth Custom', - 'optional' => 'Optional', - 'license' => 'License', - 'invoice_balance' => 'Invoice Balance', - 'saved_design' => 'Successfully saved design', - 'client_details' => 'Client Details', - 'company_address' => 'Company Address', - 'quote_details' => 'Quote Details', - 'credit_details' => 'Credit Details', - 'product_columns' => 'Product Columns', - 'task_columns' => 'Task Columns', - 'add_field' => 'Add Field', - 'all_events' => 'All Events', - 'owned' => 'Owned', - 'payment_success' => 'Payment Success', - 'payment_failure' => 'Payment Failure', - 'quote_sent' => 'Quote Sent', - 'credit_sent' => 'Credit Sent', - 'invoice_viewed' => 'Invoice Viewed', - 'quote_viewed' => 'Quote Viewed', - 'credit_viewed' => 'Credit Viewed', - 'quote_approved' => 'Quote Approved', - 'receive_all_notifications' => 'Receive All Notifications', - 'purchase_license' => 'Purchase License', - 'enable_modules' => 'Enable Modules', - 'converted_quote' => 'Successfully converted quote', - 'credit_design' => 'Credit Design', - 'includes' => 'Includes', - 'css_framework' => 'CSS Framework', - 'custom_designs' => 'Custom Designs', - 'designs' => 'Designs', - 'new_design' => 'New Design', - 'edit_design' => 'Edit Design', - 'created_design' => 'Successfully created design', - 'updated_design' => 'Successfully updated design', - 'archived_design' => 'Successfully archived design', - 'deleted_design' => 'Successfully deleted design', - 'removed_design' => 'Successfully removed design', - 'restored_design' => 'Successfully restored design', - 'recurring_tasks' => 'Recurring Tasks', - 'removed_credit' => 'Successfully removed credit', - 'latest_version' => 'Latest Version', - 'update_now' => 'Update Now', - 'a_new_version_is_available' => 'A new version of the web app is available', - 'update_available' => 'Update Available', - 'app_updated' => 'Update successfully completed', - 'integrations' => 'Integrations', - 'tracking_id' => 'Tracking Id', + 'product1' => '客製化產品1', + 'product2' => '客製化產品2', + 'product3' => '客製化產品3', + 'product4' => '客製化產品4', + 'client1' => '客製化客戶端1', + 'client2' => '客製化客戶端2', + 'client3' => '客製化客戶端3', + 'client4' => '客製化客戶端4', + 'contact1' => '客製化聯絡方式 1', + 'contact2' => '客製化聯絡方式2', + 'contact3' => '客製化聯絡方式 3', + 'contact4' => '客製化聯絡方式 4', + 'task1' => '自訂任務1', + 'task2' => '自訂任務2', + 'task3' => '自訂任務3', + 'task4' => '自訂任務 4', + 'project1' => '客製化項目1', + 'project2' => '客製化項目2', + 'project3' => '客製化項目3', + 'project4' => '客製化項目4', + 'expense1' => '客製費用1', + 'expense2' => '客製費用2', + 'expense3' => '客製化費用3', + 'expense4' => '客製化費用 4', + 'vendor1' => '客製化供應商 1', + 'vendor2' => '客製化供應商 2', + 'vendor3' => '客製化供應商 3', + 'vendor4' => '客製化供應商 4', + 'invoice1' => '定制發票1', + 'invoice2' => '定制發票2', + 'invoice3' => '定制發票3', + 'invoice4' => '定制發票 4', + 'payment1' => '客製支付1', + 'payment2' => '客製化支付2', + 'payment3' => '客製支付3', + 'payment4' => '客製支付4', + 'surcharge1' => '客製化附加費 1', + 'surcharge2' => '客製化附加費2', + 'surcharge3' => '客製化附加費3', + 'surcharge4' => '客製化附加費 4', + 'group1' => '自訂組 1', + 'group2' => '自訂組 2', + 'group3' => '自訂組 3', + 'group4' => '自訂組 4', + 'number' => '數位', + 'count' => '數數', + 'is_active' => '活躍', + 'contact_last_login' => '聯絡方式 上次登入', + 'contact_full_name' => '聯絡全名', + 'contact_custom_value1' => '聯繫客製化價值 1', + 'contact_custom_value2' => '聯繫客製化價值 2', + 'contact_custom_value3' => '聯繫客製化價值 3', + 'contact_custom_value4' => '聯繫客製化價值 4', + 'assigned_to_id' => '分配給 ID', + 'created_by_id' => '創建者: ID', + 'add_column' => '新增列', + 'edit_columns' => '編輯列', + 'to_learn_about_gogle_fonts' => '了解 Google 字體', + 'refund_date' => '退款日期', + 'multiselect' => '多選', + 'verify_password' => '驗證密碼', + 'applied' => '應用', + 'include_recent_errors' => '包括日誌中的最近錯誤', + 'your_message_has_been_received' => '我們已收到您的留言,並將盡力及時回覆。', + 'show_product_details' => '顯示產品詳情', + 'show_product_details_help' => '在產品下拉清單中包含描述和成本', + 'pdf_min_requirements' => 'PDF 渲染器需要:version', + 'adjust_fee_percent' => '調整費用百分比', + 'configure_settings' => '配置設定', + 'about' => '關於', + 'credit_email' => '信用電子郵件', + 'domain_url' => '網域網址', + 'password_is_too_easy' => '密碼必須包含大寫字元和數字', + 'client_portal_tasks' => '客戶端任務', + 'client_portal_dashboard' => '客戶入口網站儀表板', + 'please_enter_a_value' => '請輸入一個值', + 'deleted_logo' => '成功刪除標誌', + 'generate_number' => '產生號碼', + 'when_saved' => '保存時', + 'when_sent' => '發送時', + 'select_company' => '選擇公司', + 'float' => '漂浮', + 'collapse' => '坍塌', + 'show_or_hide' => '顯示隱藏', + 'menu_sidebar' => '選單側邊欄', + 'history_sidebar' => '歷史側邊欄', + 'tablet' => '藥片', + 'layout' => '佈局', + 'module' => '模組', + 'first_custom' => '第一次客製化', + 'second_custom' => '第二個客製化', + 'third_custom' => '第三個習慣', + 'show_cost' => '顯示費用', + 'show_cost_help' => '顯示產品成本欄位以追蹤加價/利潤', + 'show_product_quantity' => '顯示產品數量', + 'show_product_quantity_help' => '顯示產品數量字段,否則預設為 1', + 'show_invoice_quantity' => '顯示發票數量', + 'show_invoice_quantity_help' => '顯示行項目數量字段,否則預設為 1', + 'default_quantity' => '預設數量', + 'default_quantity_help' => '自動將行項目數量設定為 1', + 'one_tax_rate' => '一種稅率', + 'two_tax_rates' => '兩種稅率', + 'three_tax_rates' => '三種稅率', + 'default_tax_rate' => '預設稅率', + 'invoice_tax' => '發票稅', + 'line_item_tax' => '行項目稅', + 'inclusive_taxes' => '普惠稅', + 'invoice_tax_rates' => '發票稅率', + 'item_tax_rates' => '項目稅率', + 'configure_rates' => '配置費率', + 'tax_settings_rates' => '稅率', + 'accent_color' => '強調色', + 'comma_sparated_list' => '逗號分隔列表', + 'single_line_text' => '單行文字', + 'multi_line_text' => '多行文字', + 'dropdown' => '落下', + 'field_type' => '字段類型', + 'recover_password_email_sent' => '密碼恢復電子郵件已發送', + 'removed_user' => '成功刪除用戶', + 'freq_three_years' => '三年', + 'military_time_help' => '24小時顯示', + 'click_here_capital' => '點這裡', + 'marked_invoice_as_paid' => '已成功將發票標記為已付款', + 'marked_invoices_as_sent' => '已成功將發票標記為已發送', + 'marked_invoices_as_paid' => '已成功將發票標記為已付款', + 'activity_57' => '系統無法透過電子郵件發送發票:invoice', + 'custom_value3' => '自訂值3', + 'custom_value4' => '定制值4', + 'email_style_custom' => '自訂電子郵件樣式', + 'custom_message_dashboard' => '自訂儀表板訊息', + 'custom_message_unpaid_invoice' => '自訂未付發票訊息', + 'custom_message_paid_invoice' => '自訂付費發票訊息', + 'custom_message_unapproved_quote' => '自訂未經批准的報價訊息', + 'lock_sent_invoices' => '鎖定發送的發票', + 'translations' => '翻譯', + 'task_number_pattern' => '任務編號模式', + 'task_number_counter' => '任務數量計數器', + 'expense_number_pattern' => '費用數字模式', + 'expense_number_counter' => '費用計數器', + 'vendor_number_pattern' => '供應商編號模式', + 'vendor_number_counter' => '供應商編號計數器', + 'ticket_number_pattern' => '票號圖案', + 'ticket_number_counter' => '票號櫃檯', + 'payment_number_pattern' => '付款號碼模式', + 'payment_number_counter' => '付款號碼櫃檯', + 'invoice_number_pattern' => '發票號碼模式', + 'quote_number_pattern' => '報價號碼模式', + 'client_number_pattern' => '信用號模式', + 'client_number_counter' => '信用號碼櫃檯', + 'credit_number_pattern' => '信用號模式', + 'credit_number_counter' => '信用號碼櫃檯', + 'reset_counter_date' => '重置計數器日期', + 'counter_padding' => '計數器填充', + 'shared_invoice_quote_counter' => '共享發票報價櫃檯', + 'default_tax_name_1' => '預設稅名 1', + 'default_tax_rate_1' => '預設稅率 1', + 'default_tax_name_2' => '預設稅名 2', + 'default_tax_rate_2' => '預設稅率2', + 'default_tax_name_3' => '預設稅名 3', + 'default_tax_rate_3' => '預設稅率3', + 'email_subject_invoice' => '電子郵件發票主題', + 'email_subject_quote' => '電子郵件報價主題', + 'email_subject_payment' => '郵件付款主題', + 'switch_list_table' => '開關列表表', + 'client_city' => '客戶城市', + 'client_state' => '客戶狀態', + 'client_country' => '客戶國家', + 'client_is_active' => '客戶端處於活動狀態', + 'client_balance' => '客戶餘額', + 'client_address1' => '客戶街', + 'client_address2' => '客戶公寓/套房', + 'client_shipping_address1' => '客戶航運街', + 'client_shipping_address2' => '客戶運送公寓/套房', + 'tax_rate1' => '稅率1', + 'tax_rate2' => '稅率2', + 'tax_rate3' => '稅率3', + 'archived_at' => '存檔於', + 'has_expenses' => '有費用', + 'custom_taxes1' => '關稅 1', + 'custom_taxes2' => '關稅 2', + 'custom_taxes3' => '關稅 3', + 'custom_taxes4' => '關稅 4', + 'custom_surcharge1' => '客製化附加費1', + 'custom_surcharge2' => '客製化附加費2', + 'custom_surcharge3' => '客製化附加費3', + 'custom_surcharge4' => '客製化附加費 4', + 'is_deleted' => '已刪除', + 'vendor_city' => '供應商城市', + 'vendor_state' => '供應商狀態', + 'vendor_country' => '供應商國家/地區', + 'credit_footer' => '信用頁腳', + 'credit_terms' => '信用條款', + 'untitled_company' => '無標題公司', + 'added_company' => '添加公司成功', + 'supported_events' => '支持的活動', + 'custom3' => '第三個習慣', + 'custom4' => '第四個習慣', + 'optional' => '選修的', + 'license' => '執照', + 'invoice_balance' => '發票餘額', + 'saved_design' => '成功保存設計', + 'client_details' => '客戶詳情', + 'company_address' => '公司地址', + 'quote_details' => '報價詳情', + 'credit_details' => '信用詳情', + 'product_columns' => '產品專欄', + 'task_columns' => '工作列', + 'add_field' => '新增字段', + 'all_events' => '所有活動', + 'owned' => '擁有', + 'payment_success' => '支付成功', + 'payment_failure' => '付款失敗', + 'quote_sent' => '報價已發送', + 'credit_sent' => '信用已發送', + 'invoice_viewed' => '已查看發票', + 'quote_viewed' => '已查看報價', + 'credit_viewed' => '信用查看', + 'quote_approved' => '報價已獲批准', + 'receive_all_notifications' => '接收所有通知', + 'purchase_license' => '購買許可證', + 'enable_modules' => '啟用模組', + 'converted_quote' => '報價轉換成功', + 'credit_design' => '信用設計', + 'includes' => '包括', + 'css_framework' => 'CSS框架', + 'custom_designs' => '客製化設計', + 'designs' => '設計', + 'new_design' => '新設計', + 'edit_design' => '編輯設計', + 'created_design' => '成功創建設計', + 'updated_design' => '成功更新設計', + 'archived_design' => '成功歸檔設計', + 'deleted_design' => '成功刪除設計', + 'removed_design' => '成功刪除設計', + 'restored_design' => '成功恢復設計', + 'recurring_tasks' => '重複任務', + 'removed_credit' => '已成功刪除信用', + 'latest_version' => '最新版本', + 'update_now' => '現在更新', + 'a_new_version_is_available' => '新版本的網路應用程式現已推出', + 'update_available' => '可用更新', + 'app_updated' => '更新成功完成', + 'integrations' => '整合', + 'tracking_id' => '追蹤號碼', 'slack_webhook_url' => 'Slack Webhook URL', - 'partial_payment' => 'Partial Payment', - 'partial_payment_email' => 'Partial Payment Email', - 'clone_to_credit' => 'Clone to Credit', - 'emailed_credit' => 'Successfully emailed credit', - 'marked_credit_as_sent' => 'Successfully marked credit as sent', - 'email_subject_payment_partial' => 'Email Partial Payment Subject', - 'is_approved' => 'Is Approved', - 'migration_went_wrong' => 'Oops, something went wrong! Please make sure you have setup an Invoice Ninja v5 instance before starting the migration.', - 'cross_migration_message' => 'Cross account migration is not allowed. Please read more about it here: https://invoiceninja.github.io/docs/migration/#troubleshooting', - 'email_credit' => 'Email Credit', - 'client_email_not_set' => 'Client does not have an email address set', - 'ledger' => 'Ledger', - 'view_pdf' => 'View PDF', - 'all_records' => 'All records', - 'owned_by_user' => 'Owned by user', - 'credit_remaining' => 'Credit Remaining', - 'use_default' => 'Use default', - 'reminder_endless' => 'Endless Reminders', - 'number_of_days' => 'Number of days', - 'configure_payment_terms' => 'Configure Payment Terms', - 'payment_term' => 'Payment Term', - 'new_payment_term' => 'New Payment Term', - 'deleted_payment_term' => 'Successfully deleted payment term', - 'removed_payment_term' => 'Successfully removed payment term', - 'restored_payment_term' => 'Successfully restored payment term', - 'full_width_editor' => 'Full Width Editor', - 'full_height_filter' => 'Full Height Filter', - 'email_sign_in' => 'Sign in with email', - 'change' => 'Change', - 'change_to_mobile_layout' => 'Change to the mobile layout?', - 'change_to_desktop_layout' => 'Change to the desktop layout?', - 'send_from_gmail' => 'Send from Gmail', - 'reversed' => 'Reversed', - 'cancelled' => 'Cancelled', - 'quote_amount' => 'Quote Amount', - 'hosted' => 'Hosted', - 'selfhosted' => 'Self-Hosted', - 'hide_menu' => 'Hide Menu', - 'show_menu' => 'Show Menu', - 'partially_refunded' => 'Partially Refunded', - 'search_documents' => 'Search Documents', - 'search_designs' => 'Search Designs', - 'search_invoices' => 'Search Invoices', - 'search_clients' => 'Search Clients', - 'search_products' => 'Search Products', - 'search_quotes' => 'Search Quotes', - 'search_credits' => 'Search Credits', - 'search_vendors' => 'Search Vendors', - 'search_users' => 'Search Users', - 'search_tax_rates' => 'Search Tax Rates', - 'search_tasks' => 'Search Tasks', - 'search_settings' => 'Search Settings', - 'search_projects' => 'Search Projects', - 'search_expenses' => 'Search Expenses', - 'search_payments' => 'Search Payments', - 'search_groups' => 'Search Groups', - 'search_company' => 'Search Company', - 'cancelled_invoice' => 'Successfully cancelled invoice', - 'cancelled_invoices' => 'Successfully cancelled invoices', - 'reversed_invoice' => 'Successfully reversed invoice', - 'reversed_invoices' => 'Successfully reversed invoices', - 'reverse' => 'Reverse', - 'filtered_by_project' => 'Filtered by Project', - 'google_sign_in' => 'Sign in with Google', - 'activity_58' => ':user reversed invoice :invoice', - 'activity_59' => ':user cancelled invoice :invoice', - 'payment_reconciliation_failure' => 'Reconciliation Failure', - 'payment_reconciliation_success' => 'Reconciliation Success', - 'gateway_success' => 'Gateway Success', - 'gateway_failure' => 'Gateway Failure', - 'gateway_error' => 'Gateway Error', - 'email_send' => 'Email Send', - 'email_retry_queue' => 'Email Retry Queue', - 'failure' => 'Failure', - 'quota_exceeded' => 'Quota Exceeded', - 'upstream_failure' => 'Upstream Failure', - 'system_logs' => 'System Logs', - 'copy_link' => 'Copy Link', - 'welcome_to_invoice_ninja' => 'Welcome to Invoice Ninja', - 'optin' => 'Opt-In', - 'optout' => 'Opt-Out', - 'auto_convert' => 'Auto Convert', - 'reminder1_sent' => 'Reminder 1 Sent', - 'reminder2_sent' => 'Reminder 2 Sent', - 'reminder3_sent' => 'Reminder 3 Sent', - 'reminder_last_sent' => 'Reminder Last Sent', - 'pdf_page_info' => 'Page :current of :total', - 'emailed_credits' => 'Successfully emailed credits', - 'view_in_stripe' => 'View in Stripe', - 'rows_per_page' => 'Rows Per Page', - 'apply_payment' => 'Apply Payment', - 'unapplied' => 'Unapplied', - 'custom_labels' => 'Custom Labels', - 'record_type' => 'Record Type', - 'record_name' => 'Record Name', - 'file_type' => 'File Type', - 'height' => 'Height', - 'width' => 'Width', - 'health_check' => 'Health Check', - 'last_login_at' => 'Last Login At', - 'company_key' => 'Company Key', - 'storefront' => 'Storefront', - 'storefront_help' => 'Enable third-party apps to create invoices', - 'count_records_selected' => ':count records selected', - 'count_record_selected' => ':count record selected', - 'client_created' => 'Client Created', - 'online_payment_email' => 'Online Payment Email', - 'manual_payment_email' => 'Manual Payment Email', - 'completed' => 'Completed', - 'gross' => 'Gross', - 'net_amount' => 'Net Amount', - 'net_balance' => 'Net Balance', - 'client_settings' => 'Client Settings', - 'selected_invoices' => 'Selected Invoices', - 'selected_payments' => 'Selected Payments', - 'selected_quotes' => 'Selected Quotes', - 'selected_tasks' => 'Selected Tasks', - 'selected_expenses' => 'Selected Expenses', - 'past_due_invoices' => 'Past Due Invoices', - 'create_payment' => 'Create Payment', - 'update_quote' => 'Update Quote', - 'update_invoice' => 'Update Invoice', - 'update_client' => 'Update Client', - 'update_vendor' => 'Update Vendor', - 'create_expense' => 'Create Expense', - 'update_expense' => 'Update Expense', - 'update_task' => 'Update Task', - 'approve_quote' => 'Approve Quote', - 'when_paid' => 'When Paid', - 'expires_on' => 'Expires On', - 'show_sidebar' => 'Show Sidebar', - 'hide_sidebar' => 'Hide Sidebar', - 'event_type' => 'Event Type', - 'copy' => 'Copy', - 'must_be_online' => 'Please restart the app once connected to the internet', - 'crons_not_enabled' => 'The crons need to be enabled', - 'api_webhooks' => 'API Webhooks', - 'search_webhooks' => 'Search :count Webhooks', - 'search_webhook' => 'Search 1 Webhook', - 'webhook' => 'Webhook', - 'webhooks' => 'Webhooks', - 'new_webhook' => 'New Webhook', - 'edit_webhook' => 'Edit Webhook', - 'created_webhook' => 'Successfully created webhook', - 'updated_webhook' => 'Successfully updated webhook', - 'archived_webhook' => 'Successfully archived webhook', - 'deleted_webhook' => 'Successfully deleted webhook', - 'removed_webhook' => 'Successfully removed webhook', - 'restored_webhook' => 'Successfully restored webhook', - 'search_tokens' => 'Search :count Tokens', - 'search_token' => 'Search 1 Token', - 'new_token' => 'New Token', - 'removed_token' => 'Successfully removed token', - 'restored_token' => 'Successfully restored token', - 'client_registration' => 'Client Registration', - 'client_registration_help' => 'Enable clients to self register in the portal', - 'customize_and_preview' => 'Customize & Preview', - 'search_document' => 'Search 1 Document', - 'search_design' => 'Search 1 Design', - 'search_invoice' => 'Search 1 Invoice', - 'search_client' => 'Search 1 Client', - 'search_product' => 'Search 1 Product', - 'search_quote' => 'Search 1 Quote', - 'search_credit' => 'Search 1 Credit', - 'search_vendor' => 'Search 1 Vendor', - 'search_user' => 'Search 1 User', - 'search_tax_rate' => 'Search 1 Tax Rate', - 'search_task' => 'Search 1 Tasks', - 'search_project' => 'Search 1 Project', - 'search_expense' => 'Search 1 Expense', - 'search_payment' => 'Search 1 Payment', - 'search_group' => 'Search 1 Group', - 'created_on' => 'Created On', - 'payment_status_-1' => 'Unapplied', - 'lock_invoices' => 'Lock Invoices', - 'show_table' => 'Show Table', - 'show_list' => 'Show List', - 'view_changes' => 'View Changes', - 'force_update' => 'Force Update', - 'force_update_help' => 'You are running the latest version but there may be pending fixes available.', - 'mark_paid_help' => 'Track the expense has been paid', - 'mark_invoiceable_help' => 'Enable the expense to be invoiced', - 'add_documents_to_invoice_help' => 'Make the documents visible to client', - 'convert_currency_help' => 'Set an exchange rate', - 'expense_settings' => 'Expense Settings', - 'clone_to_recurring' => 'Clone to Recurring', - 'crypto' => 'Crypto', - 'user_field' => 'User Field', - 'variables' => 'Variables', - 'show_password' => 'Show Password', - 'hide_password' => 'Hide Password', - 'copy_error' => 'Copy Error', - 'capture_card' => 'Capture Card', - 'auto_bill_enabled' => 'Auto Bill Enabled', - 'total_taxes' => 'Total Taxes', - 'line_taxes' => 'Line Taxes', - 'total_fields' => 'Total Fields', - 'stopped_recurring_invoice' => 'Successfully stopped recurring invoice', - 'started_recurring_invoice' => 'Successfully started recurring invoice', - 'resumed_recurring_invoice' => 'Successfully resumed recurring invoice', - 'gateway_refund' => 'Gateway Refund', - 'gateway_refund_help' => 'Process the refund with the payment gateway', - 'due_date_days' => 'Due Date', - 'paused' => 'Paused', - 'day_count' => 'Day :count', - 'first_day_of_the_month' => 'First Day of the Month', - 'last_day_of_the_month' => 'Last Day of the Month', - 'use_payment_terms' => 'Use Payment Terms', - 'endless' => 'Endless', - 'next_send_date' => 'Next Send Date', - 'remaining_cycles' => 'Remaining Cycles', - 'created_recurring_invoice' => 'Successfully created recurring invoice', - 'updated_recurring_invoice' => 'Successfully updated recurring invoice', - 'removed_recurring_invoice' => 'Successfully removed recurring invoice', - 'search_recurring_invoice' => 'Search 1 Recurring Invoice', - 'search_recurring_invoices' => 'Search :count Recurring Invoices', - 'send_date' => 'Send Date', - 'auto_bill_on' => 'Auto Bill On', - 'minimum_under_payment_amount' => 'Minimum Under Payment Amount', - 'allow_over_payment' => 'Allow Over Payment', - 'allow_over_payment_help' => 'Support paying extra to accept tips', - 'allow_under_payment' => 'Allow Under Payment', - 'allow_under_payment_help' => 'Support paying at minimum the partial/deposit amount', - 'test_mode' => 'Test Mode', - 'calculated_rate' => 'Calculated Rate', - 'default_task_rate' => 'Default Task Rate', - 'clear_cache' => 'Clear Cache', - 'sort_order' => 'Sort Order', - 'task_status' => 'Status', - 'task_statuses' => 'Task Statuses', - 'new_task_status' => 'New Task Status', - 'edit_task_status' => 'Edit Task Status', - 'created_task_status' => 'Successfully created task status', - 'archived_task_status' => 'Successfully archived task status', - 'deleted_task_status' => 'Successfully deleted task status', - 'removed_task_status' => 'Successfully removed task status', - 'restored_task_status' => 'Successfully restored task status', - 'search_task_status' => 'Search 1 Task Status', - 'search_task_statuses' => 'Search :count Task Statuses', - 'show_tasks_table' => 'Show Tasks Table', - 'show_tasks_table_help' => 'Always show the tasks section when creating invoices', - 'invoice_task_timelog' => 'Invoice Task Timelog', - 'invoice_task_timelog_help' => 'Add time details to the invoice line items', - 'auto_start_tasks_help' => 'Start tasks before saving', - 'configure_statuses' => 'Configure Statuses', - 'task_settings' => 'Task Settings', - 'configure_categories' => 'Configure Categories', - 'edit_expense_category' => 'Edit Expense Category', - 'removed_expense_category' => 'Successfully removed expense category', - 'search_expense_category' => 'Search 1 Expense Category', - 'search_expense_categories' => 'Search :count Expense Categories', - 'use_available_credits' => 'Use Available Credits', - 'show_option' => 'Show Option', - 'negative_payment_error' => 'The credit amount cannot exceed the payment amount', - 'should_be_invoiced_help' => 'Enable the expense to be invoiced', - 'configure_gateways' => 'Configure Gateways', - 'payment_partial' => 'Partial Payment', - 'is_running' => 'Is Running', - 'invoice_currency_id' => 'Invoice Currency ID', - 'tax_name1' => 'Tax Name 1', - 'tax_name2' => 'Tax Name 2', - 'transaction_id' => 'Transaction ID', - 'invoice_late' => 'Invoice Late', - 'quote_expired' => 'Quote Expired', - 'recurring_invoice_total' => 'Invoice Total', - 'actions' => 'Actions', - 'expense_number' => 'Expense Number', - 'task_number' => 'Task Number', - 'project_number' => 'Project Number', - 'view_settings' => 'View Settings', - 'company_disabled_warning' => 'Warning: this company has not yet been activated', - 'late_invoice' => 'Late Invoice', - 'expired_quote' => 'Expired Quote', - 'remind_invoice' => 'Remind Invoice', - 'client_phone' => 'Client Phone', - 'required_fields' => 'Required Fields', - 'enabled_modules' => 'Enabled Modules', - 'activity_60' => ':contact viewed quote :quote', - 'activity_61' => ':user updated client :client', - 'activity_62' => ':user updated vendor :vendor', - 'activity_63' => ':user emailed first reminder for invoice :invoice to :contact', - 'activity_64' => ':user emailed second reminder for invoice :invoice to :contact', - 'activity_65' => ':user emailed third reminder for invoice :invoice to :contact', - 'activity_66' => ':user emailed endless reminder for invoice :invoice to :contact', - 'expense_category_id' => 'Expense Category ID', - 'view_licenses' => 'View Licenses', - 'fullscreen_editor' => 'Fullscreen Editor', - 'sidebar_editor' => 'Sidebar Editor', - 'please_type_to_confirm' => 'Please type ":value" to confirm', - 'purge' => 'Purge', - 'clone_to' => 'Clone To', - 'clone_to_other' => 'Clone to Other', - 'labels' => 'Labels', - 'add_custom' => 'Add Custom', - 'payment_tax' => 'Payment Tax', - 'white_label' => 'White Label', - 'sent_invoices_are_locked' => 'Sent invoices are locked', - 'paid_invoices_are_locked' => 'Paid invoices are locked', - 'source_code' => 'Source Code', - 'app_platforms' => 'App Platforms', - 'archived_task_statuses' => 'Successfully archived :value task statuses', - 'deleted_task_statuses' => 'Successfully deleted :value task statuses', - 'restored_task_statuses' => 'Successfully restored :value task statuses', - 'deleted_expense_categories' => 'Successfully deleted expense :value categories', - 'restored_expense_categories' => 'Successfully restored expense :value categories', - 'archived_recurring_invoices' => 'Successfully archived recurring :value invoices', - 'deleted_recurring_invoices' => 'Successfully deleted recurring :value invoices', - 'restored_recurring_invoices' => 'Successfully restored recurring :value invoices', - 'archived_webhooks' => 'Successfully archived :value webhooks', - 'deleted_webhooks' => 'Successfully deleted :value webhooks', - 'removed_webhooks' => 'Successfully removed :value webhooks', - 'restored_webhooks' => 'Successfully restored :value webhooks', - 'api_docs' => 'API Docs', - 'archived_tokens' => 'Successfully archived :value tokens', - 'deleted_tokens' => 'Successfully deleted :value tokens', - 'restored_tokens' => 'Successfully restored :value tokens', - 'archived_payment_terms' => 'Successfully archived :value payment terms', - 'deleted_payment_terms' => 'Successfully deleted :value payment terms', - 'restored_payment_terms' => 'Successfully restored :value payment terms', - 'archived_designs' => 'Successfully archived :value designs', - 'deleted_designs' => 'Successfully deleted :value designs', - 'restored_designs' => 'Successfully restored :value designs', - 'restored_credits' => 'Successfully restored :value credits', - 'archived_users' => 'Successfully archived :value users', - 'deleted_users' => 'Successfully deleted :value users', - 'removed_users' => 'Successfully removed :value users', - 'restored_users' => 'Successfully restored :value users', - 'archived_tax_rates' => 'Successfully archived :value tax rates', - 'deleted_tax_rates' => 'Successfully deleted :value tax rates', - 'restored_tax_rates' => 'Successfully restored :value tax rates', - 'archived_company_gateways' => 'Successfully archived :value gateways', - 'deleted_company_gateways' => 'Successfully deleted :value gateways', - 'restored_company_gateways' => 'Successfully restored :value gateways', - 'archived_groups' => 'Successfully archived :value groups', - 'deleted_groups' => 'Successfully deleted :value groups', - 'restored_groups' => 'Successfully restored :value groups', - 'archived_documents' => 'Successfully archived :value documents', - 'deleted_documents' => 'Successfully deleted :value documents', - 'restored_documents' => 'Successfully restored :value documents', - 'restored_vendors' => 'Successfully restored :value vendors', - 'restored_expenses' => 'Successfully restored :value expenses', - 'restored_tasks' => 'Successfully restored :value tasks', - 'restored_projects' => 'Successfully restored :value projects', - 'restored_products' => 'Successfully restored :value products', - 'restored_clients' => 'Successfully restored :value clients', - 'restored_invoices' => 'Successfully restored :value invoices', - 'restored_payments' => 'Successfully restored :value payments', - 'restored_quotes' => 'Successfully restored :value quotes', - 'update_app' => 'Update App', - 'started_import' => 'Successfully started import', - 'duplicate_column_mapping' => 'Duplicate column mapping', - 'uses_inclusive_taxes' => 'Uses Inclusive Taxes', - 'is_amount_discount' => 'Is Amount Discount', - 'map_to' => 'Map To', - 'first_row_as_column_names' => 'Use first row as column names', - 'no_file_selected' => 'No File Selected', - 'import_type' => 'Import Type', - 'draft_mode' => 'Draft Mode', - 'draft_mode_help' => 'Preview updates faster but is less accurate', - 'show_product_discount' => 'Show Product Discount', - 'show_product_discount_help' => 'Display a line item discount field', - 'tax_name3' => 'Tax Name 3', - 'debug_mode_is_enabled' => 'Debug mode is enabled', - 'debug_mode_is_enabled_help' => 'Warning: it is intended for use on local machines, it can leak credentials. Click to learn more.', - 'running_tasks' => 'Running Tasks', - 'recent_tasks' => 'Recent Tasks', - 'recent_expenses' => 'Recent Expenses', - 'upcoming_expenses' => 'Upcoming Expenses', - 'search_payment_term' => 'Search 1 Payment Term', - 'search_payment_terms' => 'Search :count Payment Terms', - 'save_and_preview' => 'Save and Preview', - 'save_and_email' => 'Save and Email', - 'converted_balance' => 'Converted Balance', - 'is_sent' => 'Is Sent', - 'document_upload' => 'Document Upload', - 'document_upload_help' => 'Enable clients to upload documents', - 'expense_total' => 'Expense Total', - 'enter_taxes' => 'Enter Taxes', - 'by_rate' => 'By Rate', - 'by_amount' => 'By Amount', - 'enter_amount' => 'Enter Amount', - 'before_taxes' => 'Before Taxes', - 'after_taxes' => 'After Taxes', - 'color' => 'Color', - 'show' => 'Show', - 'empty_columns' => 'Empty Columns', - 'project_name' => 'Project Name', - 'counter_pattern_error' => 'To use :client_counter please add either :client_number or :client_id_number to prevent conflicts', - 'this_quarter' => 'This Quarter', - 'to_update_run' => 'To update run', - 'registration_url' => 'Registration URL', - 'show_product_cost' => 'Show Product Cost', - 'complete' => 'Complete', - 'next' => 'Next', - 'next_step' => 'Next step', - 'notification_credit_sent_subject' => 'Credit :invoice was sent to :client', - 'notification_credit_viewed_subject' => 'Credit :invoice was viewed by :client', - 'notification_credit_sent' => 'The following client :client was emailed Credit :invoice for :amount.', - 'notification_credit_viewed' => 'The following client :client viewed Credit :credit for :amount.', - 'reset_password_text' => 'Enter your email to reset your password.', - 'password_reset' => 'Password reset', - 'account_login_text' => 'Welcome! Glad to see you.', - 'request_cancellation' => 'Request cancellation', - 'delete_payment_method' => 'Delete Payment Method', - 'about_to_delete_payment_method' => 'You are about to delete the payment method.', - 'action_cant_be_reversed' => 'Action can\'t be reversed', - 'profile_updated_successfully' => 'The profile has been updated successfully.', - 'currency_ethiopian_birr' => 'Ethiopian Birr', - 'client_information_text' => 'Use a permanent address where you can receive mail.', - 'status_id' => 'Invoice Status', - 'email_already_register' => 'This email is already linked to an account', - 'locations' => 'Locations', - 'freq_indefinitely' => 'Indefinitely', - 'cycles_remaining' => 'Cycles remaining', - 'i_understand_delete' => 'I understand, delete', - 'download_files' => 'Download Files', - 'download_timeframe' => 'Use this link to download your files, the link will expire in 1 hour.', - 'new_signup' => 'New Signup', - 'new_signup_text' => 'A new account has been created by :user - :email - from IP address: :ip', - 'notification_payment_paid_subject' => 'Payment was made by :client', - 'notification_partial_payment_paid_subject' => 'Partial payment was made by :client', - 'notification_payment_paid' => 'A payment of :amount was made by client :client towards :invoice', - 'notification_partial_payment_paid' => 'A partial payment of :amount was made by client :client towards :invoice', - 'notification_bot' => 'Notification Bot', - 'invoice_number_placeholder' => 'Invoice # :invoice', - 'entity_number_placeholder' => ':entity # :entity_number', - 'email_link_not_working' => 'If the button above isn\'t working for you, please click on the link', - 'display_log' => 'Display Log', - 'send_fail_logs_to_our_server' => 'Report errors in realtime', - 'setup' => 'Setup', - 'quick_overview_statistics' => 'Quick overview & statistics', - 'update_your_personal_info' => 'Update your personal information', - 'name_website_logo' => 'Name, website & logo', - 'make_sure_use_full_link' => 'Make sure you use full link to your site', - 'personal_address' => 'Personal address', - 'enter_your_personal_address' => 'Enter your personal address', - 'enter_your_shipping_address' => 'Enter your shipping address', - 'list_of_invoices' => 'List of invoices', - 'with_selected' => 'With selected', - 'invoice_still_unpaid' => 'This invoice is still not paid. Click the button to complete the payment', - 'list_of_recurring_invoices' => 'List of recurring invoices', - 'details_of_recurring_invoice' => 'Here are some details about recurring invoice', - 'cancellation' => 'Cancellation', - 'about_cancellation' => 'In case you want to stop the recurring invoice, please click to request the cancellation.', - 'cancellation_warning' => 'Warning! You are requesting a cancellation of this service. Your service may be cancelled with no further notification to you.', - 'cancellation_pending' => 'Cancellation pending, we\'ll be in touch!', - 'list_of_payments' => 'List of payments', - 'payment_details' => 'Details of the payment', - 'list_of_payment_invoices' => 'List of invoices affected by the payment', - 'list_of_payment_methods' => 'List of payment methods', - 'payment_method_details' => 'Details of payment method', - 'permanently_remove_payment_method' => 'Permanently remove this payment method.', - 'warning_action_cannot_be_reversed' => 'Warning! This action can not be reversed!', - 'confirmation' => 'Confirmation', - 'list_of_quotes' => 'Quotes', - 'waiting_for_approval' => 'Waiting for approval', - 'quote_still_not_approved' => 'This quote is still not approved', - 'list_of_credits' => 'Credits', - 'required_extensions' => 'Required extensions', - 'php_version' => 'PHP version', - 'writable_env_file' => 'Writable .env file', - 'env_not_writable' => '.env file is not writable by the current user.', - 'minumum_php_version' => 'Minimum PHP version', - 'satisfy_requirements' => 'Make sure all requirements are satisfied.', - 'oops_issues' => 'Oops, something does not look right!', - 'open_in_new_tab' => 'Open in new tab', - 'complete_your_payment' => 'Complete payment', - 'authorize_for_future_use' => 'Authorize payment method for future use', - 'page' => 'Page', - 'per_page' => 'Per page', - 'of' => 'Of', - 'view_credit' => 'View Credit', - 'to_view_entity_password' => 'To view the :entity you need to enter password.', - 'showing_x_of' => 'Showing :first to :last out of :total results', - 'no_results' => 'No results found.', - 'payment_failed_subject' => 'Payment failed for Client :client', - 'payment_failed_body' => 'A payment made by client :client failed with message :message', - 'register' => 'Register', - 'register_label' => 'Create your account in seconds', - 'password_confirmation' => 'Confirm your password', - 'verification' => 'Verification', - 'complete_your_bank_account_verification' => 'Before using a bank account it must be verified.', - 'checkout_com' => 'Checkout.com', - 'footer_label' => 'Copyright © :year :company.', - 'credit_card_invalid' => 'Provided credit card number is not valid.', - 'month_invalid' => 'Provided month is not valid.', - 'year_invalid' => 'Provided year is not valid.', - 'https_required' => 'HTTPS is required, form will fail', - 'if_you_need_help' => 'If you need help you can post to our', - 'update_password_on_confirm' => 'After updating password, your account will be confirmed.', - 'bank_account_not_linked' => 'To pay with a bank account, first you have to add it as payment method.', - 'application_settings_label' => 'Let\'s store basic information about your Invoice Ninja!', - 'recommended_in_production' => 'Highly recommended in production', - 'enable_only_for_development' => 'Enable only for development', - 'test_pdf' => 'Test PDF', - 'checkout_authorize_label' => 'Checkout.com can be can saved as payment method for future use, once you complete your first transaction. Don\'t forget to check "Store credit card details" during payment process.', - 'sofort_authorize_label' => 'Bank account (SOFORT) can be can saved as payment method for future use, once you complete your first transaction. Don\'t forget to check "Store payment details" during payment process.', - 'node_status' => 'Node status', - 'npm_status' => 'NPM status', - 'node_status_not_found' => 'I could not find Node anywhere. Is it installed?', - 'npm_status_not_found' => 'I could not find NPM anywhere. Is it installed?', - 'locked_invoice' => 'This invoice is locked and unable to be modified', - 'downloads' => 'Downloads', - 'resource' => 'Resource', - 'document_details' => 'Details about the document', - 'hash' => 'Hash', - 'resources' => 'Resources', - 'allowed_file_types' => 'Allowed file types:', - 'common_codes' => 'Common codes and their meanings', - 'payment_error_code_20087' => '20087: Bad Track Data (invalid CVV and/or expiry date)', - 'download_selected' => 'Download selected', - 'to_pay_invoices' => 'To pay invoices, you have to', - 'add_payment_method_first' => 'add payment method', - 'no_items_selected' => 'No items selected.', - 'payment_due' => 'Payment due', - 'account_balance' => 'Account Balance', - 'thanks' => 'Thanks', - 'minimum_required_payment' => 'Minimum required payment is :amount', - 'under_payments_disabled' => 'Company doesn\'t support under payments.', - 'over_payments_disabled' => 'Company doesn\'t support over payments.', - 'saved_at' => 'Saved at :time', - 'credit_payment' => 'Credit applied to Invoice :invoice_number', - 'credit_subject' => 'New credit :number from :account', - 'credit_message' => 'To view your credit for :amount, click the link below.', - 'payment_type_Crypto' => 'Cryptocurrency', - 'payment_type_Credit' => 'Credit', - 'store_for_future_use' => 'Store for future use', - 'pay_with_credit' => 'Pay with credit', - 'payment_method_saving_failed' => 'Payment method can\'t be saved for future use.', - 'pay_with' => 'Pay with', - 'n/a' => 'N/A', - 'by_clicking_next_you_accept_terms' => 'By clicking "Next step" you accept terms.', - 'not_specified' => 'Not specified', - 'before_proceeding_with_payment_warning' => 'Before proceeding with payment, you have to fill following fields', - 'after_completing_go_back_to_previous_page' => 'After completing, go back to previous page.', - 'pay' => 'Pay', - 'instructions' => 'Instructions', - 'notification_invoice_reminder1_sent_subject' => 'Reminder 1 for Invoice :invoice was sent to :client', - 'notification_invoice_reminder2_sent_subject' => 'Reminder 2 for Invoice :invoice was sent to :client', - 'notification_invoice_reminder3_sent_subject' => 'Reminder 3 for Invoice :invoice was sent to :client', - 'notification_invoice_custom_sent_subject' => 'Custom reminder for Invoice :invoice was sent to :client', - 'notification_invoice_reminder_endless_sent_subject' => 'Endless reminder for Invoice :invoice was sent to :client', - 'assigned_user' => 'Assigned User', - 'setup_steps_notice' => 'To proceed to next step, make sure you test each section.', - 'setup_phantomjs_note' => 'Note about Phantom JS. Read more.', - 'minimum_payment' => 'Minimum Payment', - 'no_action_provided' => 'No action provided. If you believe this is wrong, please contact the support.', - 'no_payable_invoices_selected' => 'No payable invoices selected. Make sure you are not trying to pay draft invoice or invoice with zero balance due.', - 'required_payment_information' => 'Required payment details', - 'required_payment_information_more' => 'To complete a payment we need more details about you.', - 'required_client_info_save_label' => 'We will save this, so you don\'t have to enter it next time.', - 'notification_credit_bounced' => 'We were unable to deliver Credit :invoice to :contact. \n :error', - 'notification_credit_bounced_subject' => 'Unable to deliver Credit :invoice', - 'save_payment_method_details' => 'Save payment method details', - 'new_card' => 'New card', - 'new_bank_account' => 'New bank account', - 'company_limit_reached' => 'Limit of :limit companies per account.', - 'credits_applied_validation' => 'Total credits applied cannot be MORE than total of invoices', - 'credit_number_taken' => 'Credit number already taken', - 'credit_not_found' => 'Credit not found', - 'invoices_dont_match_client' => 'Selected invoices are not from a single client', - 'duplicate_credits_submitted' => 'Duplicate credits submitted.', - 'duplicate_invoices_submitted' => 'Duplicate invoices submitted.', - 'credit_with_no_invoice' => 'You must have an invoice set when using a credit in a payment', - 'client_id_required' => 'Client id is required', - 'expense_number_taken' => 'Expense number already taken', - 'invoice_number_taken' => 'Invoice number already taken', - 'payment_id_required' => 'Payment `id` required.', - 'unable_to_retrieve_payment' => 'Unable to retrieve specified payment', - 'invoice_not_related_to_payment' => 'Invoice id :invoice is not related to this payment', - 'credit_not_related_to_payment' => 'Credit id :credit is not related to this payment', - 'max_refundable_invoice' => 'Attempting to refund more than allowed for invoice id :invoice, maximum refundable amount is :amount', - 'refund_without_invoices' => 'Attempting to refund a payment with invoices attached, please specify valid invoice/s to be refunded.', - 'refund_without_credits' => 'Attempting to refund a payment with credits attached, please specify valid credits/s to be refunded.', - 'max_refundable_credit' => 'Attempting to refund more than allowed for credit :credit, maximum refundable amount is :amount', - 'project_client_do_not_match' => 'Project client does not match entity client', - 'quote_number_taken' => 'Quote number already taken', - 'recurring_invoice_number_taken' => 'Recurring Invoice number :number already taken', - 'user_not_associated_with_account' => 'User not associated with this account', - 'amounts_do_not_balance' => 'Amounts do not balance correctly.', - 'insufficient_applied_amount_remaining' => 'Insufficient applied amount remaining to cover payment.', - 'insufficient_credit_balance' => 'Insufficient balance on credit.', - 'one_or_more_invoices_paid' => 'One or more of these invoices have been paid', - 'invoice_cannot_be_refunded' => 'Invoice id :number cannot be refunded', - 'attempted_refund_failed' => 'Attempting to refund :amount only :refundable_amount available for refund', - 'user_not_associated_with_this_account' => 'This user is unable to be attached to this company. Perhaps they have already registered a user on another account?', - 'migration_completed' => 'Migration completed', - 'migration_completed_description' => 'Your migration has completed, please review your data after logging in.', - 'api_404' => '404 | Nothing to see here!', - 'large_account_update_parameter' => 'Cannot load a large account without a updated_at parameter', - 'no_backup_exists' => 'No backup exists for this activity', - 'company_user_not_found' => 'Company User record not found', - 'no_credits_found' => 'No credits found.', - 'action_unavailable' => 'The requested action :action is not available.', - 'no_documents_found' => 'No Documents Found', - 'no_group_settings_found' => 'No group settings found', - 'access_denied' => 'Insufficient privileges to access/modify this resource', - 'invoice_cannot_be_marked_paid' => 'Invoice cannot be marked as paid', - 'invoice_license_or_environment' => 'Invalid license, or invalid environment :environment', - 'route_not_available' => 'Route not available', - 'invalid_design_object' => 'Invalid custom design object', - 'quote_not_found' => 'Quote/s not found', - 'quote_unapprovable' => 'Unable to approve this quote as it has expired.', - 'scheduler_has_run' => 'Scheduler has run', - 'scheduler_has_never_run' => 'Scheduler has never run', - 'self_update_not_available' => 'Self update not available on this system.', - 'user_detached' => 'User detached from company', - 'create_webhook_failure' => 'Failed to create Webhook', - 'payment_message_extended' => 'Thank you for your payment of :amount for :invoice', - 'online_payments_minimum_note' => 'Note: Online payments are supported only if amount is bigger than $1 or currency equivalent.', - 'payment_token_not_found' => 'Payment token not found, please try again. If an issue still persist, try with another payment method', - 'vendor_address1' => 'Vendor Street', - 'vendor_address2' => 'Vendor Apt/Suite', - 'partially_unapplied' => 'Partially Unapplied', - 'select_a_gmail_user' => 'Please select a user authenticated with Gmail', - 'list_long_press' => 'List Long Press', - 'show_actions' => 'Show Actions', - 'start_multiselect' => 'Start Multiselect', - 'email_sent_to_confirm_email' => 'An email has been sent to confirm the email address', - 'converted_paid_to_date' => 'Converted Paid to Date', - 'converted_credit_balance' => 'Converted Credit Balance', - 'converted_total' => 'Converted Total', - 'reply_to_name' => 'Reply-To Name', - 'payment_status_-2' => 'Partially Unapplied', - 'color_theme' => 'Color Theme', - 'start_migration' => 'Start Migration', - 'recurring_cancellation_request' => 'Request for recurring invoice cancellation from :contact', - 'recurring_cancellation_request_body' => ':contact from Client :client requested to cancel Recurring Invoice :invoice', - 'hello' => 'Hello', - 'group_documents' => 'Group documents', - 'quote_approval_confirmation_label' => 'Are you sure you want to approve this quote?', - 'migration_select_company_label' => 'Select companies to migrate', - 'force_migration' => 'Force migration', - 'require_password_with_social_login' => 'Require Password with Social Login', - 'stay_logged_in' => 'Stay Logged In', - 'session_about_to_expire' => 'Warning: Your session is about to expire', - 'count_hours' => ':count Hours', - 'count_day' => '1 Day', - 'count_days' => ':count Days', - 'web_session_timeout' => 'Web Session Timeout', - 'security_settings' => 'Security Settings', - 'resend_email' => 'Resend Email', - 'confirm_your_email_address' => 'Please confirm your email address', - 'freshbooks' => 'FreshBooks', - 'invoice2go' => 'Invoice2go', - 'invoicely' => 'Invoicely', - 'waveaccounting' => 'Wave Accounting', - 'zoho' => 'Zoho', - 'accounting' => 'Accounting', - 'required_files_missing' => 'Please provide all CSVs.', - 'migration_auth_label' => 'Let\'s continue by authenticating.', - 'api_secret' => 'API secret', - 'migration_api_secret_notice' => 'You can find API_SECRET in the .env file or Invoice Ninja v5. If property is missing, leave field blank.', - 'billing_coupon_notice' => 'Your discount will be applied on the checkout.', - 'use_last_email' => 'Use last email', - 'activate_company' => 'Activate Company', - 'activate_company_help' => 'Enable emails, recurring invoices and notifications', - 'an_error_occurred_try_again' => 'An error occurred, please try again', - 'please_first_set_a_password' => 'Please first set a password', - 'changing_phone_disables_two_factor' => 'Warning: Changing your phone number will disable 2FA', - 'help_translate' => 'Help Translate', - 'please_select_a_country' => 'Please select a country', - 'disabled_two_factor' => 'Successfully disabled 2FA', - 'connected_google' => 'Successfully connected account', - 'disconnected_google' => 'Successfully disconnected account', - 'delivered' => 'Delivered', - 'spam' => 'Spam', - 'view_docs' => 'View Docs', - 'enter_phone_to_enable_two_factor' => 'Please provide a mobile phone number to enable two factor authentication', - 'send_sms' => 'Send SMS', - 'sms_code' => 'SMS Code', - 'connect_google' => 'Connect Google', - 'disconnect_google' => 'Disconnect Google', - 'disable_two_factor' => 'Disable Two Factor', - 'invoice_task_datelog' => 'Invoice Task Datelog', - 'invoice_task_datelog_help' => 'Add date details to the invoice line items', - 'promo_code' => 'Promo code', - 'recurring_invoice_issued_to' => 'Recurring invoice issued to', - 'subscription' => 'Subscription', - 'new_subscription' => 'New Subscription', - 'deleted_subscription' => 'Successfully deleted subscription', - 'removed_subscription' => 'Successfully removed subscription', - 'restored_subscription' => 'Successfully restored subscription', - 'search_subscription' => 'Search 1 Subscription', - 'search_subscriptions' => 'Search :count Subscriptions', - 'subdomain_is_not_available' => 'Subdomain is not available', - 'connect_gmail' => 'Connect Gmail', - 'disconnect_gmail' => 'Disconnect Gmail', - 'connected_gmail' => 'Successfully connected Gmail', - 'disconnected_gmail' => 'Successfully disconnected Gmail', - 'update_fail_help' => 'Changes to the codebase may be blocking the update, you can run this command to discard the changes:', - 'client_id_number' => 'Client ID Number', - 'count_minutes' => ':count Minutes', - 'password_timeout' => 'Password Timeout', - 'shared_invoice_credit_counter' => 'Share Invoice/Credit Counter', - 'activity_80' => ':user created subscription :subscription', - 'activity_81' => ':user updated subscription :subscription', - 'activity_82' => ':user archived subscription :subscription', - 'activity_83' => ':user deleted subscription :subscription', - 'activity_84' => ':user restored subscription :subscription', - 'amount_greater_than_balance_v5' => 'The amount is greater than the invoice balance. You cannot overpay an invoice.', - 'click_to_continue' => 'Click to continue', - 'notification_invoice_created_body' => 'The following invoice :invoice was created for client :client for :amount.', - 'notification_invoice_created_subject' => 'Invoice :invoice was created for :client', - 'notification_quote_created_body' => 'The following quote :invoice was created for client :client for :amount.', - 'notification_quote_created_subject' => 'Quote :invoice was created for :client', - 'notification_credit_created_body' => 'The following credit :invoice was created for client :client for :amount.', - 'notification_credit_created_subject' => 'Credit :invoice was created for :client', - 'max_companies' => 'Maximum companies migrated', - 'max_companies_desc' => 'You have reached your maximum number of companies. Delete existing companies to migrate new ones.', - 'migration_already_completed' => 'Company already migrated', - 'migration_already_completed_desc' => 'Looks like you already migrated :company_name to the V5 version of the Invoice Ninja. In case you want to start over, you can force migrate to wipe existing data.', - 'payment_method_cannot_be_authorized_first' => 'This payment method can be can saved for future use, once you complete your first transaction. Don\'t forget to check "Store details" during payment process.', - 'new_account' => 'New account', - 'activity_100' => ':user created recurring invoice :recurring_invoice', - 'activity_101' => ':user updated recurring invoice :recurring_invoice', - 'activity_102' => ':user archived recurring invoice :recurring_invoice', - 'activity_103' => ':user deleted recurring invoice :recurring_invoice', - 'activity_104' => ':user restored recurring invoice :recurring_invoice', - 'new_login_detected' => 'New login detected for your account.', - 'new_login_description' => 'You recently logged in to your Invoice Ninja account from a new location or device:

IP: :ip
Time: :time
Email: :email', - 'contact_details' => 'Contact Details', - 'download_backup_subject' => 'Your company backup is ready for download', - 'account_passwordless_login' => 'Account passwordless login', - 'user_duplicate_error' => 'Cannot add the same user to the same company', - 'user_cross_linked_error' => 'User exists but cannot be crossed linked to multiple accounts', - 'ach_verification_notification_label' => 'ACH verification', - 'ach_verification_notification' => 'Connecting bank accounts require verification. Payment gateway will automatically send two small deposits for this purpose. These deposits take 1-2 business days to appear on the customer\'s online statement.', - 'login_link_requested_label' => 'Login link requested', - 'login_link_requested' => 'There was a request to login using link. If you did not request this, it\'s safe to ignore it.', - 'invoices_backup_subject' => 'Your invoices are ready for download', - 'migration_failed_label' => 'Migration failed', - 'migration_failed' => 'Looks like something went wrong with the migration for the following company:', - 'client_email_company_contact_label' => 'If you have any questions please contact us, we\'re here to help!', - 'quote_was_approved_label' => 'Quote was approved', - 'quote_was_approved' => 'We would like to inform you that quote was approved.', - 'company_import_failure_subject' => 'Error importing :company', - 'company_import_failure_body' => 'There was an error importing the company data, the error message was:', - 'recurring_invoice_due_date' => 'Due Date', - 'amount_cents' => 'Amount in pennies,pence or cents. ie for $0.10 please enter 10', - 'default_payment_method_label' => 'Default Payment Method', - 'default_payment_method' => 'Make this your preferred way of paying.', - 'already_default_payment_method' => 'This is your preferred way of paying.', - 'auto_bill_disabled' => 'Auto Bill Disabled', - 'select_payment_method' => 'Select a payment method:', - 'login_without_password' => 'Log in without password', + 'partial_payment' => '部分付款', + 'partial_payment_email' => '部分付款電子郵件', + 'clone_to_credit' => '克隆到信用', + 'emailed_credit' => '已成功透過電子郵件發送信用證', + 'marked_credit_as_sent' => '已成功將信用標記為已發送', + 'email_subject_payment_partial' => '電子郵件部分付款主題', + 'is_approved' => '被批准', + 'migration_went_wrong' => '哎呀!出事了!在開始遷移之前,請確保您已設定 Invoice Ninja v5 實例。', + 'cross_migration_message' => '不允許跨帳戶遷移。請在此閱讀更多相關資訊: https ://invoiceninja.github.io/docs/migration/#troubleshooting', + 'email_credit' => '電子郵件信用', + 'client_email_not_set' => '客戶沒有設定電子郵件地址', + 'ledger' => '分類帳', + 'view_pdf' => '查看PDF', + 'all_records' => '所有記錄', + 'owned_by_user' => '歸用戶所有', + 'credit_remaining' => '剩餘信用', + 'use_default' => '預設使用', + 'reminder_endless' => '無盡的提醒', + 'number_of_days' => '天數', + 'configure_payment_terms' => '配置付款條件', + 'payment_term' => '付款期限', + 'new_payment_term' => '新的付款期限', + 'deleted_payment_term' => '已成功刪除付款條件', + 'removed_payment_term' => '已成功刪除付款條件', + 'restored_payment_term' => '成功恢復付款期限', + 'full_width_editor' => '全寬編輯器', + 'full_height_filter' => '全高過濾器', + 'email_sign_in' => '使用電子郵件登入', + 'change' => '改變', + 'change_to_mobile_layout' => '更改移動佈局?', + 'change_to_desktop_layout' => '更改桌面佈局?', + 'send_from_gmail' => '從 Gmail 傳送', + 'reversed' => '反轉', + 'cancelled' => '取消', + 'quote_amount' => '報價金額', + 'hosted' => '主辦', + 'selfhosted' => '自託管', + 'hide_menu' => '隱藏選單', + 'show_menu' => '顯示選單', + 'partially_refunded' => '部分退款', + 'search_documents' => '搜尋文件', + 'search_designs' => '搜尋設計', + 'search_invoices' => '搜尋發票', + 'search_clients' => '搜尋客戶', + 'search_products' => '搜尋產品', + 'search_quotes' => '搜尋行情', + 'search_credits' => '搜尋製作人員', + 'search_vendors' => '搜尋供應商', + 'search_users' => '搜尋用戶', + 'search_tax_rates' => '搜尋稅率', + 'search_tasks' => '搜尋任務', + 'search_settings' => '搜尋設定', + 'search_projects' => '搜尋項目', + 'search_expenses' => '搜尋費用', + 'search_payments' => '搜尋付款', + 'search_groups' => '搜尋組', + 'search_company' => '搜尋公司', + 'cancelled_invoice' => '已成功取消發票', + 'cancelled_invoices' => '已成功取消發票', + 'reversed_invoice' => '成功沖銷發票', + 'reversed_invoices' => '已成功沖銷發票', + 'reverse' => '反向', + 'filtered_by_project' => '按項目過濾', + 'google_sign_in' => '使用 Google 登入', + 'activity_58' => ':user沖銷發票:invoice', + 'activity_59' => ':user取消的發票:invoice', + 'payment_reconciliation_failure' => '協調失敗', + 'payment_reconciliation_success' => '和解成功', + 'gateway_success' => '成功之路', + 'gateway_failure' => '網關故障', + 'gateway_error' => '網關錯誤', + 'email_send' => '電子郵件發送', + 'email_retry_queue' => '電子郵件重試佇列', + 'failure' => '失敗', + 'quota_exceeded' => '超過配額', + 'upstream_failure' => '上游故障', + 'system_logs' => '系統日誌', + 'copy_link' => '複製連結', + 'welcome_to_invoice_ninja' => '歡迎來到發票忍者', + 'optin' => '選擇參加', + 'optout' => '選擇退出', + 'auto_convert' => '自動轉換', + 'reminder1_sent' => '提醒 1 已發送', + 'reminder2_sent' => '提醒 2 已發送', + 'reminder3_sent' => '提醒 3 已發送', + 'reminder_last_sent' => '上次發送提醒', + 'pdf_page_info' => ':total的頁面:current', + 'emailed_credits' => '已成功透過電子郵件發送積分', + 'view_in_stripe' => '條紋視圖', + 'rows_per_page' => '每頁行數', + 'apply_payment' => '申請付款', + 'unapplied' => '未應用', + 'custom_labels' => '客製化標籤', + 'record_type' => '記錄類型', + 'record_name' => '記錄名稱', + 'file_type' => '文件類型', + 'height' => '高度', + 'width' => '寬度', + 'health_check' => '健康檢查', + 'last_login_at' => '上次登入時間', + 'company_key' => '公司金鑰', + 'storefront' => '店面', + 'storefront_help' => '允許第三方應用程式建立發票', + 'count_records_selected' => ':count筆記錄已選擇', + 'count_record_selected' => ':count記錄已選擇', + 'client_created' => '客戶已創建', + 'online_payment_email' => '網上支付郵箱', + 'manual_payment_email' => '手動付款電子郵件', + 'completed' => '完全的', + 'gross' => '總的', + 'net_amount' => '淨額', + 'net_balance' => '淨餘額', + 'client_settings' => '客戶端設定', + 'selected_invoices' => '選定的發票', + 'selected_payments' => '選定的付款方式', + 'selected_quotes' => '精選行情', + 'selected_tasks' => '選定的任務', + 'selected_expenses' => '選定的費用', + 'past_due_invoices' => '逾期發票', + 'create_payment' => '建立付款', + 'update_quote' => '更新報價', + 'update_invoice' => '更新發票', + 'update_client' => '更新客戶端', + 'update_vendor' => '更新供應商', + 'create_expense' => '創建費用', + 'update_expense' => '更新費用', + 'update_task' => '更新任務', + 'approve_quote' => '批准報價', + 'when_paid' => '付款時', + 'expires_on' => '到期', + 'show_sidebar' => '顯示側邊欄', + 'hide_sidebar' => '隱藏側邊欄', + 'event_type' => '事件類型', + 'copy' => '複製', + 'must_be_online' => '連接到互聯網後請重新啟動應用程式', + 'crons_not_enabled' => '需要啟用 crons', + 'api_webhooks' => 'API 網路鉤子', + 'search_webhooks' => '搜尋:count Webhooks', + 'search_webhook' => '搜尋 1 個 Webhook', + 'webhook' => '網路鉤子', + 'webhooks' => '網路鉤子', + 'new_webhook' => '新的Webhook', + 'edit_webhook' => '編輯網路鉤子', + 'created_webhook' => '成功創建網路鉤子', + 'updated_webhook' => '已成功更新網路鉤子', + 'archived_webhook' => '成功歸檔 webhook', + 'deleted_webhook' => '成功刪除網路鉤子', + 'removed_webhook' => '已成功刪除網路鉤子', + 'restored_webhook' => '成功恢復網路鉤子', + 'search_tokens' => '搜尋:count代幣', + 'search_token' => '搜尋 1 代幣', + 'new_token' => '新代幣', + 'removed_token' => '成功刪除令牌', + 'restored_token' => '成功恢復令牌', + 'client_registration' => '客戶註冊', + 'client_registration_help' => '使客戶能夠在入口網站中自行註冊', + 'customize_and_preview' => '客製化和預覽', + 'search_document' => '搜尋 1 個文檔', + 'search_design' => '搜尋 1 設計', + 'search_invoice' => '搜尋 1 份發票', + 'search_client' => '搜尋 1 客戶', + 'search_product' => '搜尋 1 個產品', + 'search_quote' => '搜尋 1 個報價', + 'search_credit' => '搜尋 1 點', + 'search_vendor' => '搜尋 1 供應商', + 'search_user' => '搜尋 1 用戶', + 'search_tax_rate' => '搜尋 1 稅率', + 'search_task' => '搜尋 1 任務', + 'search_project' => '搜尋 1 個項目', + 'search_expense' => '搜尋 1 費用', + 'search_payment' => '搜尋 1 付款', + 'search_group' => '搜尋 1 組', + 'created_on' => '創建於', + 'payment_status_-1' => '未應用', + 'lock_invoices' => '鎖定發票', + 'show_table' => '顯示表', + 'show_list' => '顯示清單', + 'view_changes' => '查看變更', + 'force_update' => '強制性升級', + 'force_update_help' => '您正在運行最新版本,但可能有待修復的可用補丁。', + 'mark_paid_help' => '追蹤已支付的費用', + 'mark_invoiceable_help' => '啟用費用發票', + 'add_documents_to_invoice_help' => '使文件對客戶可見', + 'convert_currency_help' => '設定匯率', + 'expense_settings' => '費用設定', + 'clone_to_recurring' => '克隆到重複', + 'crypto' => '加密貨幣', + 'user_field' => '使用者欄位', + 'variables' => '變數', + 'show_password' => '顯示密碼', + 'hide_password' => '隱藏密碼', + 'copy_error' => '複製錯誤', + 'capture_card' => '採集卡', + 'auto_bill_enabled' => '自動計費已啟用', + 'total_taxes' => '總稅金', + 'line_taxes' => '行稅', + 'total_fields' => '總字段數', + 'stopped_recurring_invoice' => '已成功停止定期發票', + 'started_recurring_invoice' => '已成功開始定期發票', + 'resumed_recurring_invoice' => '已成功恢復定期發票', + 'gateway_refund' => '網關退款', + 'gateway_refund_help' => '透過支付網關處理退款', + 'due_date_days' => '到期日', + 'paused' => '已暫停', + 'day_count' => '日:count', + 'first_day_of_the_month' => '該月的第一天', + 'last_day_of_the_month' => '本月最後一天', + 'use_payment_terms' => '使用付款條件', + 'endless' => '無盡', + 'next_send_date' => '下次發送日期', + 'remaining_cycles' => '剩餘週期', + 'created_recurring_invoice' => '已成功建立定期發票', + 'updated_recurring_invoice' => '已成功更新定期發票', + 'removed_recurring_invoice' => '已成功刪除定期發票', + 'search_recurring_invoice' => '搜尋 1 份經常性發票', + 'search_recurring_invoices' => '搜尋:count經常性發票', + 'send_date' => '發送日期', + 'auto_bill_on' => '自動計費開啟', + 'minimum_under_payment_amount' => '最低付款金額', + 'allow_over_payment' => '允許超額支付', + 'allow_over_payment_help' => '支持額外付費接受小費', + 'allow_under_payment' => '允許少付', + 'allow_under_payment_help' => '支持至少支付部分/存款金額', + 'test_mode' => '測試模式', + 'calculated_rate' => '計算費率', + 'default_task_rate' => '預設任務率', + 'clear_cache' => '清除快取', + 'sort_order' => '排序', + 'task_status' => '地位', + 'task_statuses' => '任務狀態', + 'new_task_status' => '新任務狀態', + 'edit_task_status' => '編輯任務狀態', + 'created_task_status' => '建立成功任務狀態', + 'archived_task_status' => '成功歸檔任務狀態', + 'deleted_task_status' => '成功刪除任務狀態', + 'removed_task_status' => '已成功刪除任務狀態', + 'restored_task_status' => '成功恢復任務狀態', + 'search_task_status' => '搜尋 1 任務狀態', + 'search_task_statuses' => '搜尋:count任務狀態', + 'show_tasks_table' => '顯示任務表', + 'show_tasks_table_help' => '建立發票時始終顯示任務部分', + 'invoice_task_timelog' => '發票任務時間日誌', + 'invoice_task_timelog_help' => '將時間詳細資料新增至發票行項目', + 'auto_start_tasks_help' => '儲存前啟動任務', + 'configure_statuses' => '配置狀態', + 'task_settings' => '任務設定', + 'configure_categories' => '配置類別', + 'edit_expense_category' => '編輯費用類別', + 'removed_expense_category' => '已成功刪除費用類別', + 'search_expense_category' => '搜尋 1 費用類別', + 'search_expense_categories' => '搜尋:count費用類別', + 'use_available_credits' => '使用可用積分', + 'show_option' => '顯示選項', + 'negative_payment_error' => '信用金額不能超過付款金額', + 'should_be_invoiced_help' => '啟用費用發票', + 'configure_gateways' => '設定網關', + 'payment_partial' => '部分付款', + 'is_running' => '在跑', + 'invoice_currency_id' => '發票貨幣 ID', + 'tax_name1' => '稅名 1', + 'tax_name2' => '稅名2', + 'transaction_id' => '交易ID', + 'invoice_late' => '發票遲到', + 'quote_expired' => '報價已過期', + 'recurring_invoice_total' => '發票總計', + 'actions' => '行動', + 'expense_number' => '費用號碼', + 'task_number' => '任務編號', + 'project_number' => '項目編號', + 'view_settings' => '查看設定', + 'company_disabled_warning' => '警告:該公司尚未激活', + 'late_invoice' => '逾期發票', + 'expired_quote' => '過期報價', + 'remind_invoice' => '提醒發票', + 'client_phone' => '客戶電話', + 'required_fields' => '必填字段', + 'enabled_modules' => '啟用的模組', + 'activity_60' => ':contact查看報價:quote', + 'activity_61' => ':user更新客戶端:client', + 'activity_62' => ':user更新供應商:vendor', + 'activity_63' => ':user透過電子郵件將發票:invoice的第一次提醒發送至:contact', + 'activity_64' => ':user透過電子郵件將發票:invoice的第二次提醒發送至:contact', + 'activity_65' => ':user透過電子郵件將發票:invoice的第三次提醒發送至:contact', + 'activity_66' => ':user透過電子郵件發送了發票:invoice的無盡提醒至:contact', + 'expense_category_id' => '費用類別 ID', + 'view_licenses' => '查看許可證', + 'fullscreen_editor' => '全螢幕編輯器', + 'sidebar_editor' => '側邊欄編輯器', + 'please_type_to_confirm' => '請輸入「 :value 」確認', + 'purge' => '清除', + 'clone_to' => '克隆到', + 'clone_to_other' => '克隆到其他', + 'labels' => '標籤', + 'add_custom' => '新增自訂', + 'payment_tax' => '繳稅', + 'white_label' => '白色標籤', + 'sent_invoices_are_locked' => '發送的發票已鎖定', + 'paid_invoices_are_locked' => '已付款發票已鎖定', + 'source_code' => '原始碼', + 'app_platforms' => '應用程式平台', + 'archived_task_statuses' => '已成功存檔:value任務狀態', + 'deleted_task_statuses' => '已成功刪除:value任務狀態', + 'restored_task_statuses' => '成功恢復:value任務狀態', + 'deleted_expense_categories' => '已成功刪除費用:value類別', + 'restored_expense_categories' => '成功恢復費用:value類別', + 'archived_recurring_invoices' => '已成功存檔定期:value發票', + 'deleted_recurring_invoices' => '已成功刪除定期:value發票', + 'restored_recurring_invoices' => '已成功恢復定期:value發票', + 'archived_webhooks' => '已成功存檔:value webhooks', + 'deleted_webhooks' => '已成功刪除:value webhooks', + 'removed_webhooks' => '已成功刪除:value webhooks', + 'restored_webhooks' => '已成功恢復:value webhooks', + 'api_docs' => 'API文件', + 'archived_tokens' => '已成功存檔:value令牌', + 'deleted_tokens' => '已成功刪除:value令牌', + 'restored_tokens' => '已成功恢復:value令牌', + 'archived_payment_terms' => '已成功存檔:value付款條件', + 'deleted_payment_terms' => '已成功刪除:value付款條件', + 'restored_payment_terms' => '已成功恢復:value付款條件', + 'archived_designs' => '成功存檔:value設計', + 'deleted_designs' => '成功刪除:value設計', + 'restored_designs' => '成功恢復:value設計', + 'restored_credits' => '已成功恢復:value積分', + 'archived_users' => '已成功歸檔:value用戶', + 'deleted_users' => '已成功刪除:value用戶', + 'removed_users' => '已成功刪除:value用戶', + 'restored_users' => '成功恢復:value用戶', + 'archived_tax_rates' => '成功存檔:value稅率', + 'deleted_tax_rates' => '已成功刪除:value稅率', + 'restored_tax_rates' => '成功恢復:value稅率', + 'archived_company_gateways' => '已成功存檔:value網關', + 'deleted_company_gateways' => '已成功刪除:value網關', + 'restored_company_gateways' => '成功恢復:value網關', + 'archived_groups' => '已成功存檔:value組', + 'deleted_groups' => '已成功刪除:value組', + 'restored_groups' => '成功恢復:value組', + 'archived_documents' => '已成功歸檔:value文檔', + 'deleted_documents' => '成功刪除:value文檔', + 'restored_documents' => '成功恢復:value文檔', + 'restored_vendors' => '成功恢復:value供應商', + 'restored_expenses' => '成功恢復:value費用', + 'restored_tasks' => '成功恢復:value任務', + 'restored_projects' => '成功恢復:value項目', + 'restored_products' => '成功恢復:value產品', + 'restored_clients' => '成功恢復:value客戶端', + 'restored_invoices' => '已成功恢復:value發票', + 'restored_payments' => '已成功恢復:value付款', + 'restored_quotes' => '成功恢復:value報價', + 'update_app' => '更新應用程式', + 'started_import' => '成功開始導入', + 'duplicate_column_mapping' => '重複列映射', + 'uses_inclusive_taxes' => '使用包容性稅收', + 'is_amount_discount' => '是金額折扣', + 'map_to' => '地圖至', + 'first_row_as_column_names' => '使用第一行作為列名稱', + 'no_file_selected' => '未選擇文件', + 'import_type' => '進口類型', + 'draft_mode' => '草稿模式', + 'draft_mode_help' => '預覽更新速度較快,但準確性較差', + 'show_product_discount' => '顯示產品折扣', + 'show_product_discount_help' => '顯示訂單項目折扣字段', + 'tax_name3' => '稅名 3', + 'debug_mode_is_enabled' => '調試模式已啟用', + 'debug_mode_is_enabled_help' => '警告:它適用於本機計算機,它可能會洩漏憑證。點擊了解更多。', + 'running_tasks' => '運行任務', + 'recent_tasks' => '最近的任務', + 'recent_expenses' => '近期開支', + 'upcoming_expenses' => '即將發生的費用', + 'search_payment_term' => '搜尋 1 付款條件', + 'search_payment_terms' => '搜尋:count付款條件', + 'save_and_preview' => '儲存並預覽', + 'save_and_email' => '儲存並透過電子郵件發送', + 'converted_balance' => '換算餘額', + 'is_sent' => '已發送', + 'document_upload' => '文件上傳', + 'document_upload_help' => '允許客戶上傳文檔', + 'expense_total' => '費用總計', + 'enter_taxes' => '輸入稅費', + 'by_rate' => '按費率', + 'by_amount' => '按金額', + 'enter_amount' => '輸入金額', + 'before_taxes' => '稅前', + 'after_taxes' => '稅後', + 'color' => '顏色', + 'show' => '展示', + 'empty_columns' => '空列', + 'project_name' => '專案名', + 'counter_pattern_error' => '要使用:client _counter,請新增:client _number 或:client _id_number 以防止衝突', + 'this_quarter' => '本季', + 'to_update_run' => '更新運行', + 'registration_url' => '註冊網址', + 'show_product_cost' => '顯示產品成本', + 'complete' => '完全的', + 'next' => '下一個', + 'next_step' => '下一步', + 'notification_credit_sent_subject' => '信用:invoice已發送至:client', + 'notification_credit_viewed_subject' => ':client查看了信用:invoice', + 'notification_credit_sent' => '以下客戶:client已透過電子郵件發送至:amount的信用:invoice 。', + 'notification_credit_viewed' => '以下客戶端:client查看了:amount的信用:credit 。', + 'reset_password_text' => '輸入您的電子郵件以重設您的密碼。', + 'password_reset' => '重新設密碼', + 'account_login_text' => '歡迎!很高興見到你。', + 'request_cancellation' => '取消請求', + 'delete_payment_method' => '刪除付款方式', + 'about_to_delete_payment_method' => '您即將刪除付款方式。', + 'action_cant_be_reversed' => '行動無法逆轉', + 'profile_updated_successfully' => '個人資料已成功更新。', + 'currency_ethiopian_birr' => '衣索比亞比爾', + 'client_information_text' => '使用可以接收郵件的永久地址。', + 'status_id' => '發票狀態', + 'email_already_register' => '此電子郵件已連結至一個帳戶', + 'locations' => '地點', + 'freq_indefinitely' => '無限期', + 'cycles_remaining' => '剩餘週期', + 'i_understand_delete' => '我明白了,刪除', + 'download_files' => '下載文件', + 'download_timeframe' => '使用此連結下載您的文件,該連結將在 1 小時後過期。', + 'new_signup' => '新註冊', + 'new_signup_text' => ':user - :email已建立一個新帳戶 - 來自 IP 位址: :ip', + 'notification_payment_paid_subject' => '付款人為:client', + 'notification_partial_payment_paid_subject' => '部分付款由:client支付', + 'notification_payment_paid' => '客戶:client向:invoice支付了:amount', + 'notification_partial_payment_paid' => '客戶:client向:invoice支付了部分:amount', + 'notification_bot' => '通知機器人', + 'invoice_number_placeholder' => '發票 # :invoice', + 'entity_number_placeholder' => ':entity # :entity _number', + 'email_link_not_working' => '如果上面的按鈕不適合您,請點擊連結', + 'display_log' => '顯示日誌', + 'send_fail_logs_to_our_server' => '即時報告錯誤', + 'setup' => '設定', + 'quick_overview_statistics' => '快速概覽和統計', + 'update_your_personal_info' => '更新您的個人資訊', + 'name_website_logo' => '名稱、網站和徽標', + 'make_sure_use_full_link' => '確保使用指向您網站的完整鏈接', + 'personal_address' => '個人地址', + 'enter_your_personal_address' => '輸入您的個人地址', + 'enter_your_shipping_address' => '輸入您的送貨地址', + 'list_of_invoices' => '發票清單', + 'with_selected' => '與選定的', + 'invoice_still_unpaid' => '該發票仍未支付。點擊按鈕完成付款', + 'list_of_recurring_invoices' => '經常性發票清單', + 'details_of_recurring_invoice' => '以下是有關定期發票的一些詳細信息', + 'cancellation' => '消除', + 'about_cancellation' => '如果您想停止定期發票,請點選請求取消。', + 'cancellation_warning' => '警告!您請求取消此服務。您的服務可能會被取消,恕不另行通知。', + 'cancellation_pending' => '取消待定,我們會聯絡您!', + 'list_of_payments' => '付款清單', + 'payment_details' => '付款詳情', + 'list_of_payment_invoices' => '受付款影響的發票列表', + 'list_of_payment_methods' => '付款方式一覽', + 'payment_method_details' => '付款方式詳情', + 'permanently_remove_payment_method' => '永久刪除此付款方式。', + 'warning_action_cannot_be_reversed' => '警告!此操作不可逆轉!', + 'confirmation' => '確認', + 'list_of_quotes' => '引號', + 'waiting_for_approval' => '等待批准', + 'quote_still_not_approved' => '此報價尚未獲得批准', + 'list_of_credits' => '製作人員', + 'required_extensions' => '所需的擴展', + 'php_version' => 'PHP版本', + 'writable_env_file' => '可寫.env 文件', + 'env_not_writable' => '目前使用者無法寫入.env 檔案。', + 'minumum_php_version' => '最低 PHP 版本', + 'satisfy_requirements' => '確保滿足所有要求。', + 'oops_issues' => '糟糕,有些事情看起來不太對勁!', + 'open_in_new_tab' => '在新分頁中開啟', + 'complete_your_payment' => '完成支付', + 'authorize_for_future_use' => '授權付款方式以供將來使用', + 'page' => '頁', + 'per_page' => '每頁', + 'of' => '的', + 'view_credit' => '查看信用', + 'to_view_entity_password' => '要查看:entity您需要輸入密碼。', + 'showing_x_of' => '顯示:total結果中的:first到:last', + 'no_results' => '未找到結果。', + 'payment_failed_subject' => '客戶:client付款失敗', + 'payment_failed_body' => '客戶端:client付款失敗,訊息為:message', + 'register' => '登記', + 'register_label' => '在幾秒鐘內建立您的帳戶', + 'password_confirmation' => '確認你的密碼', + 'verification' => '確認', + 'complete_your_bank_account_verification' => '在使用銀行帳戶之前,必須對其進行驗證。', + 'checkout_com' => '結帳網', + 'footer_label' => '版權所有 © :year :company 。', + 'credit_card_invalid' => '提供的信用卡號碼無效。', + 'month_invalid' => '提供的月份無效。', + 'year_invalid' => '提供的年份無效。', + 'https_required' => '需要 HTTPS,表單將失敗', + 'if_you_need_help' => '如果您需要協助,您可以發佈到我們的', + 'update_password_on_confirm' => '更新密碼後,您的帳戶將被確認。', + 'bank_account_not_linked' => '若要使用銀行帳戶付款,首先您必須將其新增為付款方式。', + 'application_settings_label' => '讓我們儲存有關您的 Invoice Ninja 的基本資訊!', + 'recommended_in_production' => '強烈建議在生產中使用', + 'enable_only_for_development' => '僅為開發啟用', + 'test_pdf' => '測試PDF', + 'checkout_authorize_label' => '完成第一筆交易後,Checkout.com 可以儲存為付款方式以供將來使用。不要忘記在付款過程中檢查「商店信用卡詳細資料」。', + 'sofort_authorize_label' => '完成第一筆交易後,銀行帳戶 (SOFORT) 可以儲存為付款方式以供將來使用。不要忘記在付款過程中檢查“商店付款詳細資訊”。', + 'node_status' => '節點狀態', + 'npm_status' => '國家公共管理狀況', + 'node_status_not_found' => '我在任何地方都找不到節點。安裝了嗎?', + 'npm_status_not_found' => '我在任何地方都找不到 NPM。安裝了嗎?', + 'locked_invoice' => '此發票已被鎖定且無法修改', + 'downloads' => '下載', + 'resource' => '資源', + 'document_details' => '有關文件的詳細信息', + 'hash' => '哈希值', + 'resources' => '資源', + 'allowed_file_types' => '允許的文件類型:', + 'common_codes' => '常用代碼及其意義', + 'payment_error_code_20087' => '20087:壞道資料(無效的 CVV 和/或到期日期)', + 'download_selected' => '下載選定的', + 'to_pay_invoices' => '要支付發票,您必須', + 'add_payment_method_first' => '新增付款方式', + 'no_items_selected' => '沒有選擇任何項目。', + 'payment_due' => '薪資稅', + 'account_balance' => '帳戶餘額', + 'thanks' => '謝謝', + 'minimum_required_payment' => '最低付款要求為:amount', + 'under_payments_disabled' => '本公司不支援少付款。', + 'over_payments_disabled' => '本公司不支援超額付款。', + 'saved_at' => '保存於:time', + 'credit_payment' => '貸記應用於發票:invoice _number', + 'credit_subject' => '來自:account的新信用:number', + 'credit_message' => '要查看:amount的積分,請點擊下面的連結。', + 'payment_type_Crypto' => '加密貨幣', + 'payment_type_Credit' => '信用', + 'store_for_future_use' => '儲備', + 'pay_with_credit' => '信用支付', + 'payment_method_saving_failed' => '付款方式無法保存以供將來使用。', + 'pay_with' => '使用。。。支付', + 'n/a' => '不適用', + 'by_clicking_next_you_accept_terms' => '按一下「下一步」即表示您接受條款。', + 'not_specified' => '未指定', + 'before_proceeding_with_payment_warning' => '在繼續付款之前,您必須填寫以下字段', + 'after_completing_go_back_to_previous_page' => '完成後,返回上一頁。', + 'pay' => '支付', + 'instructions' => '指示', + 'notification_invoice_reminder1_sent_subject' => '發票:invoice的提醒 1 已寄至:client', + 'notification_invoice_reminder2_sent_subject' => '發票:invoice的提醒 2 已寄至:client', + 'notification_invoice_reminder3_sent_subject' => '發票:invoice的提醒 3 已寄至:client', + 'notification_invoice_custom_sent_subject' => '發票:invoice的自訂提醒已發送至:client', + 'notification_invoice_reminder_endless_sent_subject' => '發票:invoice的無盡提醒已發送至:client', + 'assigned_user' => '指定用戶', + 'setup_steps_notice' => '要繼續下一步,請確保測試每個部分。', + 'setup_phantomjs_note' => '關於 Phantom JS 的注意事項。閱讀更多。', + 'minimum_payment' => '最低付費', + 'no_action_provided' => '沒有提供任何操作。如果您認為這是錯誤的,請聯絡支援人員。', + 'no_payable_invoices_selected' => '未選擇應付發票。確保您沒有嘗試支付草稿發票或應付餘額為零的發票。', + 'required_payment_information' => '所需的付款詳細信息', + 'required_payment_information_more' => '為了完成付款,我們需要有關您的更多詳細資訊。', + 'required_client_info_save_label' => '我們將保存此信息,以便您下次不必輸入。', + 'notification_credit_bounced' => '我們無法將信用:invoice交付給:contact 。 \n :error', + 'notification_credit_bounced_subject' => '無法提供信用:invoice', + 'save_payment_method_details' => '儲存付款方式詳細信息', + 'new_card' => '新卡', + 'new_bank_account' => '新銀行帳戶', + 'company_limit_reached' => '每個帳戶最多可容納:limit家公司。', + 'credits_applied_validation' => '申請的總積分不能多於發票總數', + 'credit_number_taken' => '信用號已被佔用', + 'credit_not_found' => '未找到信用證', + 'invoices_dont_match_client' => '所選發票並非來自單一客戶', + 'duplicate_credits_submitted' => '提交重複的學分。', + 'duplicate_invoices_submitted' => '提交了重複的發票。', + 'credit_with_no_invoice' => '使用信用付款時,您必須有發票', + 'client_id_required' => '客戶 ID 為必填項', + 'expense_number_taken' => '費用號碼已被佔用', + 'invoice_number_taken' => '發票號碼已取', + 'payment_id_required' => '需要付款“id”。', + 'unable_to_retrieve_payment' => '無法檢索指定的付款', + 'invoice_not_related_to_payment' => '發票 ID :invoice與此付款無關', + 'credit_not_related_to_payment' => '信用 ID :credit與此付款無關', + 'max_refundable_invoice' => '嘗試退款超過發票 ID :invoice允許的金額,最大可退款金額為:amount', + 'refund_without_invoices' => '如果嘗試退還附有發票的付款,請指定要退款的有效發票。', + 'refund_without_credits' => '嘗試退還帶有積分的付款,請指定要退款的有效積分。', + 'max_refundable_credit' => '嘗試退款超過允許的信用額:credit ,最大可退款金額為:amount', + 'project_client_do_not_match' => '專案客戶與實體客戶不匹配', + 'quote_number_taken' => '報價單號碼已被佔用', + 'recurring_invoice_number_taken' => '經常性發票編號:number已使用', + 'user_not_associated_with_account' => '使用者未與此帳戶關聯', + 'amounts_do_not_balance' => '金額未正確平衡。', + 'insufficient_applied_amount_remaining' => '剩餘申請金額不足以支付付款。', + 'insufficient_credit_balance' => '信用餘額不足。', + 'one_or_more_invoices_paid' => '其中一張或多張發票已支付', + 'invoice_cannot_be_refunded' => '發票 ID :number無法退款', + 'attempted_refund_failed' => '嘗試退款:amount僅:refundable_amount可退款', + 'user_not_associated_with_this_account' => '該用戶無法加入該公司。也許他們已經在另一個帳戶上註冊了用戶?', + 'migration_completed' => '遷移完成', + 'migration_completed_description' => '您的遷移已完成,請登入後查看您的資料。', + 'api_404' => '404 | 404這沒東西看!', + 'large_account_update_parameter' => '如果沒有 update_at 參數,則無法載入大型帳戶', + 'no_backup_exists' => '此活動不存在備份', + 'company_user_not_found' => '未找到公司用戶記錄', + 'no_credits_found' => '沒有找到學分。', + 'action_unavailable' => '請求的操作:action不可用。', + 'no_documents_found' => '沒有找到文件', + 'no_group_settings_found' => '未找到組設定', + 'access_denied' => '沒有足夠的權限來存取/修改此資源', + 'invoice_cannot_be_marked_paid' => '發票不能標記為已付款', + 'invoice_license_or_environment' => '許可證無效或環境無效:environment', + 'route_not_available' => '路線不可用', + 'invalid_design_object' => '無效的自訂設計對象', + 'quote_not_found' => '未找到報價', + 'quote_unapprovable' => '無法批准此報價,因為它已過期。', + 'scheduler_has_run' => '調度程序已運行', + 'scheduler_has_never_run' => '調度程序從未運行過', + 'self_update_not_available' => '自我更新在此系統上不可用。', + 'user_detached' => '用戶脫離公司', + 'create_webhook_failure' => '建立 Webhook 失敗', + 'payment_message_extended' => '感謝您為:amount支付:invoice', + 'online_payments_minimum_note' => '注意:僅當金額大於 1 美元或等值貨幣時才支援線上付款。', + 'payment_token_not_found' => '未找到支付令牌,請重試。如果問題仍然存在,請嘗試使用其他付款方式', + 'vendor_address1' => '供應商街', + 'vendor_address2' => '供應商 公寓/套房', + 'partially_unapplied' => '部分未應用', + 'select_a_gmail_user' => '請選擇透過 Gmail 驗證的用戶', + 'list_long_press' => '列表長按', + 'show_actions' => '顯示動作', + 'start_multiselect' => '開始多選', + 'email_sent_to_confirm_email' => '已發送一封電子郵件以確認電子郵件地址', + 'converted_paid_to_date' => '轉換為付費日期', + 'converted_credit_balance' => '轉換後的貸方餘額', + 'converted_total' => '換算總計', + 'reply_to_name' => '回覆名稱', + 'payment_status_-2' => '部分未應用', + 'color_theme' => '顏色主題', + 'start_migration' => '開始遷移', + 'recurring_cancellation_request' => ':contact請求取消定期發票', + 'recurring_cancellation_request_body' => '客戶:contact請求取消經常:client發票:invoice', + 'hello' => '你好', + 'group_documents' => '集團文件', + 'quote_approval_confirmation_label' => '您確定要批准此報價嗎?', + 'migration_select_company_label' => '選擇要遷移的公司', + 'force_migration' => '強制遷移', + 'require_password_with_social_login' => '社群登入需要密碼', + 'stay_logged_in' => '保持登入狀態', + 'session_about_to_expire' => '警告:您的會話即將過期', + 'count_hours' => ':count小時', + 'count_day' => '1天', + 'count_days' => ':count天', + 'web_session_timeout' => '網路會話逾時', + 'security_settings' => '安全設定', + 'resend_email' => '重發電子郵件', + 'confirm_your_email_address' => '請確認您的電子郵件地址', + 'freshbooks' => '新書', + 'invoice2go' => '發票2go', + 'invoicely' => '開立發票', + 'waveaccounting' => '波浪會計', + 'zoho' => '佐霍', + 'accounting' => '會計', + 'required_files_missing' => '請提供所有 CSV。', + 'migration_auth_label' => '讓我們繼續進行身份驗證。', + 'api_secret' => 'API機密', + 'migration_api_secret_notice' => '您可以在 .env 檔案或 Invoice Ninja v5 中找到 API_SECRET。如果缺少屬性,請將欄位留空。', + 'billing_coupon_notice' => '您的折扣將在結帳時套用。', + 'use_last_email' => '使用最後的電子郵件', + 'activate_company' => '啟動公司', + 'activate_company_help' => '啟用電子郵件、定期發票和通知', + 'an_error_occurred_try_again' => '發生錯誤,請重試', + 'please_first_set_a_password' => '請先設定密碼', + 'changing_phone_disables_two_factor' => '警告:更改您的電話號碼將停用 2FA', + 'help_translate' => '幫助翻譯', + 'please_select_a_country' => '請選擇一個國家', + 'disabled_two_factor' => '已成功停用 2FA', + 'connected_google' => '帳號關聯成功', + 'disconnected_google' => '帳號註銷成功', + 'delivered' => '發表', + 'spam' => '垃圾郵件', + 'view_docs' => '查看文件', + 'enter_phone_to_enable_two_factor' => '請提供手機號碼以啟用兩步驟驗證', + 'send_sms' => '發簡訊', + 'sms_code' => '簡訊代碼', + 'connect_google' => '連接谷歌', + 'disconnect_google' => '斷開與Google的連接', + 'disable_two_factor' => '禁用二因素', + 'invoice_task_datelog' => '發票任務日期日誌', + 'invoice_task_datelog_help' => '將日期詳細資料新增至發票行項目', + 'promo_code' => '促銷代碼', + 'recurring_invoice_issued_to' => '定期發票開立至', + 'subscription' => '訂閱', + 'new_subscription' => '新訂閱', + 'deleted_subscription' => '已成功刪除訂閱', + 'removed_subscription' => '已成功刪除訂閱', + 'restored_subscription' => '已成功恢復訂閱', + 'search_subscription' => '搜尋 1 訂閱', + 'search_subscriptions' => '搜尋:count訂閱', + 'subdomain_is_not_available' => '子網域不可用', + 'connect_gmail' => '連接 Gmail', + 'disconnect_gmail' => '斷開 Gmail 連接', + 'connected_gmail' => '已成功連接 Gmail', + 'disconnected_gmail' => '已成功斷開 Gmail 連接', + 'update_fail_help' => '對程式碼庫的變更可能會阻止更新,您可以執行以下命令來放棄變更:', + 'client_id_number' => '客戶 ID 號碼', + 'count_minutes' => ':count分鐘', + 'password_timeout' => '密碼超時', + 'shared_invoice_credit_counter' => '共享發票/信用櫃檯', + 'activity_80' => ':user建立訂閱:subscription', + 'activity_81' => ':user更新訂閱:subscription', + 'activity_82' => ':user存檔訂閱:subscription', + 'activity_83' => ':user已刪除訂閱:subscription', + 'activity_84' => ':user恢復訂閱:subscription', + 'amount_greater_than_balance_v5' => '金額大於發票餘額。您不能多付發票費用。', + 'click_to_continue' => '點擊繼續', + 'notification_invoice_created_body' => '以下發票:invoice是為:amount的客戶:client創建的。', + 'notification_invoice_created_subject' => '發票:invoice是為:client創建的', + 'notification_quote_created_body' => '以下引用:invoice是為:amount的客戶端:client創建的。', + 'notification_quote_created_subject' => '報價:invoice是為:client創建的', + 'notification_credit_created_body' => '以下信用:invoice是為:amount的客戶端:client創建的。', + 'notification_credit_created_subject' => '為:client創建了信用:invoice', + 'max_companies' => '最大的公司遷移', + 'max_companies_desc' => '您已達到公司數量上限。刪除現有公司以遷移新公司。', + 'migration_already_completed' => '公司已遷移', + 'migration_already_completed_desc' => '看起來您已經將:company _name遷移到 Invoice Ninja 的 V5 版本了。如果您想重新開始,可以強制遷移以擦除現有資料。', + 'payment_method_cannot_be_authorized_first' => '完成第一筆交易後,可以儲存此付款方式以供將來使用。不要忘記在付款過程中檢查“商店詳細資料”。', + 'new_account' => '新帳戶', + 'activity_100' => ':user創建了定期發票:recurring_invoice', + 'activity_101' => ':user更新的經常性發票:recurring_invoice', + 'activity_102' => ':user存檔的經常性發票:recurring_invoice', + 'activity_103' => ':user刪除定期發票:recurring_invoice', + 'activity_104' => ':user恢復定期發票:recurring_invoice', + 'new_login_detected' => '偵測到您的帳戶有新的登入資訊。', + 'new_login_description' => '您最近從新位置或裝置登入了您的 Invoice Ninja 帳戶:

IP: :ip
時間: :time
電子郵件: :email', + 'contact_details' => '聯絡方式', + 'download_backup_subject' => '您公司的備份已可供下載', + 'account_passwordless_login' => '帳號無密碼登入', + 'user_duplicate_error' => '無法將同一用戶新增至同一家公司', + 'user_cross_linked_error' => '用戶存在但不能交叉連結到多個帳戶', + 'ach_verification_notification_label' => 'ACH驗證', + 'ach_verification_notification' => '連接銀行帳戶需要驗證。為此,支付網關將自動發送兩筆小額存款。這些存款需要 1-2 個工作天才能顯示在客戶的線上對帳單上。', + 'login_link_requested_label' => '請求登入連結', + 'login_link_requested' => '有一個使用連結登入的請求。如果您沒有請求此操作,則可以安全地忽略它。', + 'invoices_backup_subject' => '您的發票已可供下載', + 'migration_failed_label' => '遷移失敗', + 'migration_failed' => '以下公司的遷移似乎出了問題:', + 'client_email_company_contact_label' => '如果您有任何疑問,請聯絡我們,我們隨時為您提供協助!', + 'quote_was_approved_label' => '報價已獲批准', + 'quote_was_approved' => '我們謹通知您報價已獲得批准。', + 'company_import_failure_subject' => '導入:company時發生錯誤', + 'company_import_failure_body' => '匯入公司資料時出錯,錯誤訊息為:', + 'recurring_invoice_due_date' => '到期日', + 'amount_cents' => '金額以便士、便士或美分為單位。即 0.10 美元請輸入 10', + 'default_payment_method_label' => '預設付款方式', + 'default_payment_method' => '使其成為您的首選付款方式。', + 'already_default_payment_method' => '這是您首選的付款方式。', + 'auto_bill_disabled' => '自動帳單已停用', + 'select_payment_method' => '選擇付款方式:', + 'login_without_password' => '無需密碼登入', 'email_sent' => '當發票寄出後,以電子郵件通知我', - 'one_time_purchases' => 'One time purchases', - 'recurring_purchases' => 'Recurring purchases', - 'you_might_be_interested_in_following' => 'You might be interested in the following', - 'quotes_with_status_sent_can_be_approved' => 'Only quotes with "Sent" status can be approved.', - 'no_quotes_available_for_download' => 'No quotes available for download.', - 'copyright' => 'Copyright', - 'user_created_user' => ':user created :created_user at :time', - 'company_deleted' => 'Company deleted', - 'company_deleted_body' => 'Company [ :company ] was deleted by :user', - 'back_to' => 'Back to :url', - 'stripe_connect_migration_title' => 'Connect your Stripe Account', - 'stripe_connect_migration_desc' => 'Invoice Ninja v5 uses Stripe Connect to link your Stripe account to Invoice Ninja. This provides an additional layer of security for your account. Now that you data has migrated, you will need to Authorize Stripe to accept payments in v5.

To do this, navigate to Settings > Online Payments > Configure Gateways. Click on Stripe Connect and then under Settings click Setup Gateway. This will take you to Stripe to authorize Invoice Ninja and on your return your account will be successfully linked!', - 'email_quota_exceeded_subject' => 'Account email quota exceeded.', - 'email_quota_exceeded_body' => 'In a 24 hour period you have sent :quota emails.
We have paused your outbound emails.

Your email quota will reset at 23:00 UTC.', - 'auto_bill_option' => 'Opt in or out of having this invoice automatically charged.', - 'lang_Arabic' => 'Arabic', - 'lang_Persian' => 'Persian', - 'lang_Latvian' => 'Latvian', - 'expiry_date' => 'Expiry date', - 'cardholder_name' => 'Card holder name', - 'recurring_quote_number_taken' => 'Recurring Quote number :number already taken', - 'account_type' => 'Account type', - 'locality' => 'Locality', - 'checking' => 'Checking', - 'savings' => 'Savings', - 'unable_to_verify_payment_method' => 'Unable to verify payment method.', - 'generic_gateway_error' => 'Gateway configuration error. Please check your credentials.', - 'my_documents' => 'My documents', - 'payment_method_cannot_be_preauthorized' => 'This payment method cannot be preauthorized.', - 'kbc_cbc' => 'KBC/CBC', - 'bancontact' => 'Bancontact', - 'sepa_mandat' => 'By providing your IBAN and confirming this payment, you are authorizing :company and Stripe, our payment service provider, to send instructions to your bank to debit your account and your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.', - 'ideal' => 'iDEAL', - 'bank_account_holder' => 'Bank Account Holder', - 'aio_checkout' => 'All-in-one checkout', - 'przelewy24' => 'Przelewy24', - 'przelewy24_accept' => 'I declare that I have familiarized myself with the regulations and information obligation of the Przelewy24 service.', - 'giropay' => 'GiroPay', - 'giropay_law' => 'By entering your Customer information (such as name, sort code and account number) you (the Customer) agree that this information is given voluntarily.', - 'klarna' => 'Klarna', - 'eps' => 'EPS', - 'becs' => 'BECS Direct Debit', - 'bacs' => 'BACS Direct Debit', - 'payment_type_BACS' => 'BACS Direct Debit', - 'missing_payment_method' => 'Please add a payment method first, before trying to pay.', - 'becs_mandate' => 'By providing your bank account details, you agree to this Direct Debit Request and the Direct Debit Request service agreement, and authorise Stripe Payments Australia Pty Ltd ACN 160 180 343 Direct Debit User ID number 507156 (“Stripe”) to debit your account through the Bulk Electronic Clearing System (BECS) on behalf of :company (the “Merchant”) for any amounts separately communicated to you by the Merchant. You certify that you are either an account holder or an authorised signatory on the account listed above.', - 'you_need_to_accept_the_terms_before_proceeding' => 'You need to accept the terms before proceeding.', - 'direct_debit' => 'Direct Debit', - 'clone_to_expense' => 'Clone to Expense', - 'checkout' => 'Checkout', - 'acss' => 'Pre-authorized debit payments', - 'invalid_amount' => 'Invalid amount. Number/Decimal values only.', - 'client_payment_failure_body' => 'Payment for Invoice :invoice for amount :amount failed.', - 'browser_pay' => 'Google Pay, Apple Pay, Microsoft Pay', - 'no_available_methods' => 'We can\'t find any credit cards on your device. Read more about this.', - 'gocardless_mandate_not_ready' => 'Payment mandate is not ready. Please try again later.', - 'payment_type_instant_bank_pay' => 'Instant Bank Pay', - 'payment_type_iDEAL' => 'iDEAL', - 'payment_type_Przelewy24' => 'Przelewy24', - 'payment_type_Mollie Bank Transfer' => 'Mollie Bank Transfer', - 'payment_type_KBC/CBC' => 'KBC/CBC', - 'payment_type_Instant Bank Pay' => 'Instant Bank Pay', - 'payment_type_Hosted Page' => 'Hosted Page', - 'payment_type_GiroPay' => 'GiroPay', - 'payment_type_EPS' => 'EPS', - 'payment_type_Direct Debit' => 'Direct Debit', - 'payment_type_Bancontact' => 'Bancontact', + 'one_time_purchases' => '一次性購買', + 'recurring_purchases' => '經常性購買', + 'you_might_be_interested_in_following' => '您可能對以下內容感興趣', + 'quotes_with_status_sent_can_be_approved' => '只有狀態為「已發送」的報價才能獲得批准。', + 'no_quotes_available_for_download' => '沒有可供下載的報價。', + 'copyright' => '版權', + 'user_created_user' => ':user在:time創建了:created_user', + 'company_deleted' => '公司已刪除', + 'company_deleted_body' => '公司 [ :company ] 已被:user刪除', + 'back_to' => '返回:url', + 'stripe_connect_migration_title' => '連結您的 Stripe 帳戶', + 'stripe_connect_migration_desc' => 'Invoice Ninja v5 使用 Stripe Connect 將您的 Stripe 帳戶連結到 Invoice Ninja。這為您的帳戶提供了額外的安全保障。現在您的資料已遷移,您需要授權 Stripe 在 v5 中接受付款。

為此,請導覽至設定 > 線上付款 > 設定網關。按一下 Stripe Connect,然後在「設定」下按一下「設定網關」。這將帶您到 Stripe 授權 Invoice Ninja,返回後您的帳戶將成功連結!', + 'email_quota_exceeded_subject' => '帳戶電子郵件配額超出。', + 'email_quota_exceeded_body' => '在 24 小時內,您已發送了:quota封電子郵件。
我們已暫停您的出站電子郵件。

您的電子郵件配額將於 23:00 UTC 重設。', + 'auto_bill_option' => '選擇啟用或不啟用此發票自動收費。', + 'lang_Arabic' => '阿拉伯', + 'lang_Persian' => '波斯語', + 'lang_Latvian' => '拉脫維亞語', + 'expiry_date' => '到期日', + 'cardholder_name' => '持卡人姓名', + 'recurring_quote_number_taken' => '重複報價編號:number已被佔用', + 'account_type' => '帳戶類型', + 'locality' => '地點', + 'checking' => '檢查', + 'savings' => '儲蓄', + 'unable_to_verify_payment_method' => '無法驗證付款方式。', + 'generic_gateway_error' => '網關配置錯誤。請檢查您的憑證。', + 'my_documents' => '我的文件', + 'payment_method_cannot_be_preauthorized' => '此付款方式無法預先授權。', + 'kbc_cbc' => '韓國廣播公司/加拿大廣播公司', + 'bancontact' => '聯繫銀行', + 'sepa_mandat' => '透過提供您的 IBAN 並確認此付款,即表示您授權:company和我們的支付服務提供者 Stripe 向您的銀行發送扣款指令,並由您的銀行根據這些指令從您的帳戶中扣款。根據您與銀行簽訂的協議的條款和條件,您有權從銀行獲得退款。退款必須在您的帳戶被扣款之日起 8 週內申請。', + 'ideal' => '理想的', + 'bank_account_holder' => '銀行帳戶持有人', + 'aio_checkout' => '一站式結帳', + 'przelewy24' => '普澤萊維24', + 'przelewy24_accept' => '我聲明我已熟悉 Przelewy24 服務的規定和資訊義務。', + 'giropay' => '匯路支付', + 'giropay_law' => '輸入您的客戶資訊(例如姓名、分類代碼和帳號),即表示您(客戶)同意自願提供此資訊。', + 'klarna' => '克拉納', + 'eps' => '每股盈餘', + 'becs' => 'BECS 直接扣記', + 'bacs' => 'BACS 直接借記', + 'payment_type_BACS' => 'BACS 直接借記', + 'missing_payment_method' => '請先新增付款方式,然後再嘗試付款。', + 'becs_mandate' => '提供您的銀行帳戶詳細信息,即表示您同意本直接借記請求和直接借記請求服務協議,並授權 Stripe Payments Australia Pty Ltd ACN 160 180 343 直接借記用戶 ID 號 507156(「Stripe」)透過代表:company (「商家」)的大量電子清算系統 (BECS) 處理商家單獨向您傳達的任何金額。您證明您是上述帳戶的帳戶持有人或授權簽署人。', + 'you_need_to_accept_the_terms_before_proceeding' => '您需要先接受條款才能繼續。', + 'direct_debit' => '直接借記', + 'clone_to_expense' => '克隆到費用', + 'checkout' => '查看', + 'acss' => '預授權扣款付款', + 'invalid_amount' => '金額無效。僅限數字/小數值。', + 'client_payment_failure_body' => '發票:invoice金額:amount的付款失敗。', + 'browser_pay' => 'Google支付、蘋果支付、微軟支付', + 'no_available_methods' => '我們在您的裝置上找不到任何信用卡。 閱讀更多相關內容。', + 'gocardless_mandate_not_ready' => '付款授權尚未準備好。請稍後再試。', + 'payment_type_instant_bank_pay' => '即時銀行支付', + 'payment_type_iDEAL' => '理想的', + 'payment_type_Przelewy24' => '普澤萊維24', + 'payment_type_Mollie Bank Transfer' => '莫莉銀行轉賬', + 'payment_type_KBC/CBC' => '韓國廣播公司/加拿大廣播公司', + 'payment_type_Instant Bank Pay' => '即時銀行支付', + 'payment_type_Hosted Page' => '託管頁面', + 'payment_type_GiroPay' => '匯路支付', + 'payment_type_EPS' => '每股盈餘', + 'payment_type_Direct Debit' => '直接借記', + 'payment_type_Bancontact' => '聯繫銀行', 'payment_type_BECS' => 'BECS', 'payment_type_ACSS' => 'ACSS', - 'gross_line_total' => 'Gross line total', - 'lang_Slovak' => 'Slovak', - 'normal' => 'Normal', - 'large' => 'Large', - 'extra_large' => 'Extra Large', - 'show_pdf_preview' => 'Show PDF Preview', - 'show_pdf_preview_help' => 'Display PDF preview while editing invoices', - 'print_pdf' => 'Print PDF', - 'remind_me' => 'Remind Me', - 'instant_bank_pay' => 'Instant Bank Pay', - 'click_selected' => 'Click Selected', - 'hide_preview' => 'Hide Preview', - 'edit_record' => 'Edit Record', - 'credit_is_more_than_invoice' => 'The credit amount can not be more than the invoice amount', - 'please_set_a_password' => 'Please set an account password', - 'recommend_desktop' => 'We recommend using the desktop app for the best performance', - 'recommend_mobile' => 'We recommend using the mobile app for the best performance', - 'disconnected_gateway' => 'Successfully disconnected gateway', - 'disconnect' => 'Disconnect', - 'add_to_invoices' => 'Add to Invoices', - 'bulk_download' => 'Download', - 'persist_data_help' => 'Save data locally to enable the app to start faster, disabling may improve performance in large accounts', - 'persist_ui' => 'Persist UI', - 'persist_ui_help' => 'Save UI state locally to enable the app to start at the last location, disabling may improve performance', - 'client_postal_code' => 'Client Postal Code', - 'client_vat_number' => 'Client VAT Number', - 'has_tasks' => 'Has Tasks', - 'registration' => 'Registration', - 'unauthorized_stripe_warning' => 'Please authorize Stripe to accept online payments.', - 'update_all_records' => 'Update all records', - 'set_default_company' => 'Set Default Company', - 'updated_company' => 'Successfully updated company', - 'kbc' => 'KBC', - 'why_are_you_leaving' => 'Help us improve by telling us why (optional)', - 'webhook_success' => 'Webhook Success', - 'error_cross_client_tasks' => 'Tasks must all belong to the same client', - 'error_cross_client_expenses' => 'Expenses must all belong to the same client', - 'app' => 'App', - 'for_best_performance' => 'For the best performance download the :app app', - 'bulk_email_invoice' => 'Email Invoice', - 'bulk_email_quote' => 'Email Quote', - 'bulk_email_credit' => 'Email Credit', - 'removed_recurring_expense' => 'Successfully removed recurring expense', - 'search_recurring_expense' => 'Search Recurring Expense', - 'search_recurring_expenses' => 'Search Recurring Expenses', - 'last_sent_date' => 'Last Sent Date', - 'include_drafts' => 'Include Drafts', - 'include_drafts_help' => 'Include draft records in reports', - 'is_invoiced' => 'Is Invoiced', - 'change_plan' => 'Manage Plan', - 'persist_data' => 'Persist Data', - 'customer_count' => 'Customer Count', - 'verify_customers' => 'Verify Customers', - 'google_analytics_tracking_id' => 'Google Analytics Tracking ID', - 'decimal_comma' => 'Decimal Comma', - 'use_comma_as_decimal_place' => 'Use comma as decimal place in forms', - 'select_method' => 'Select Method', - 'select_platform' => 'Select Platform', - 'use_web_app_to_connect_gmail' => 'Please use the web app to connect to Gmail', - 'expense_tax_help' => 'Item tax rates are disabled', - 'enable_markdown' => 'Enable Markdown', - 'enable_markdown_help' => 'Convert markdown to HTML on the PDF', - 'add_second_contact' => 'Add Second Contact', - 'previous_page' => 'Previous Page', - 'next_page' => 'Next Page', - 'export_colors' => 'Export Colors', - 'import_colors' => 'Import Colors', - 'clear_all' => 'Clear All', - 'contrast' => 'Contrast', - 'custom_colors' => 'Custom Colors', - 'colors' => 'Colors', - 'sidebar_active_background_color' => 'Sidebar Active Background Color', - 'sidebar_active_font_color' => 'Sidebar Active Font Color', - 'sidebar_inactive_background_color' => 'Sidebar Inactive Background Color', - 'sidebar_inactive_font_color' => 'Sidebar Inactive Font Color', - 'table_alternate_row_background_color' => 'Table Alternate Row Background Color', - 'invoice_header_background_color' => 'Invoice Header Background Color', - 'invoice_header_font_color' => 'Invoice Header Font Color', - 'review_app' => 'Review App', - 'check_status' => 'Check Status', - 'free_trial' => 'Free Trial', - 'free_trial_help' => 'All accounts receive a two week trial of the Pro plan, once the trial ends your account will automatically change to the free plan.', - 'free_trial_ends_in_days' => 'The Pro plan trial ends in :count days, click to upgrade.', - 'free_trial_ends_today' => 'Today is the last day of the Pro plan trial, click to upgrade.', - 'change_email' => 'Change Email', - 'client_portal_domain_hint' => 'Optionally configure a separate client portal domain', - 'tasks_shown_in_portal' => 'Tasks Shown in Portal', - 'uninvoiced' => 'Uninvoiced', - 'subdomain_guide' => 'The subdomain is used in the client portal to personalize links to match your brand. ie, https://your-brand.invoicing.co', - 'send_time' => 'Send Time', - 'import_settings' => 'Import Settings', - 'json_file_missing' => 'Please provide the JSON file', - 'json_option_missing' => 'Please select to import the settings and/or data', + 'gross_line_total' => '總行總計', + 'lang_Slovak' => '斯洛伐克語', + 'normal' => '普通的', + 'large' => '大的', + 'extra_large' => '特大號', + 'show_pdf_preview' => '顯示 PDF 預覽', + 'show_pdf_preview_help' => '編輯發票時顯示 PDF 預覽', + 'print_pdf' => '列印 PDF', + 'remind_me' => '提醒我', + 'instant_bank_pay' => '即時銀行支付', + 'click_selected' => '按一下選定', + 'hide_preview' => '隱藏預覽', + 'edit_record' => '編輯記錄', + 'credit_is_more_than_invoice' => '信用金額不能超過發票金額', + 'please_set_a_password' => '請設定帳戶密碼', + 'recommend_desktop' => '我們建議使用桌面應用程式以獲得最佳效能', + 'recommend_mobile' => '我們建議使用行動應用程式以獲得最佳效能', + 'disconnected_gateway' => '成功斷開網關', + 'disconnect' => '斷開', + 'add_to_invoices' => '新增到發票', + 'bulk_download' => '下載', + 'persist_data_help' => '在本地保存資料以使應用程式能夠更快地啟動,禁用可能會提高大型帳戶的效能', + 'persist_ui' => '保留使用者介面', + 'persist_ui_help' => '在本機上保存 UI 狀態以使應用程式能夠在上次位置啟動,停用可能會提高效能', + 'client_postal_code' => '客戶郵遞區號', + 'client_vat_number' => '客戶增值稅號', + 'has_tasks' => '有任務', + 'registration' => '登記', + 'unauthorized_stripe_warning' => '請授權 Stripe 接受線上付款。', + 'update_all_records' => '更新所有記錄', + 'set_default_company' => '設定預設公司', + 'updated_company' => '公司更新成功', + 'kbc' => '韓國廣播公司', + 'why_are_you_leaving' => '告訴我們原因,幫助我們改進(可選)', + 'webhook_success' => 'Webhook 成功', + 'error_cross_client_tasks' => '任務必須全部屬於同一個客戶端', + 'error_cross_client_expenses' => '費用必須全部屬於同一客戶', + 'app' => '應用程式', + 'for_best_performance' => '為了獲得最佳性能,請下載:app應用程式', + 'bulk_email_invoice' => '電子郵件發票', + 'bulk_email_quote' => '電子郵件報價', + 'bulk_email_credit' => '電子郵件信用', + 'removed_recurring_expense' => '成功消除經常性費用', + 'search_recurring_expense' => '搜尋經常性費用', + 'search_recurring_expenses' => '搜尋經常性費用', + 'last_sent_date' => '最後發送日期', + 'include_drafts' => '包括草稿', + 'include_drafts_help' => '在報告中包含草稿記錄', + 'is_invoiced' => '已開立發票', + 'change_plan' => '管理計劃', + 'persist_data' => '保留資料', + 'customer_count' => '顧客數量', + 'verify_customers' => '驗證客戶', + 'google_analytics_tracking_id' => 'Google分析追蹤ID', + 'decimal_comma' => '十進制逗號', + 'use_comma_as_decimal_place' => '在表格中使用逗號作為小數位', + 'select_method' => '選擇方法', + 'select_platform' => '選擇平台', + 'use_web_app_to_connect_gmail' => '請使用網頁應用程式連接到 Gmail', + 'expense_tax_help' => '商品稅率已禁用', + 'enable_markdown' => '啟用降價', + 'enable_markdown_help' => '將 PDF 上的 Markdown 轉換為 HTML', + 'add_second_contact' => '增加第二個聯絡人', + 'previous_page' => '上一頁', + 'next_page' => '下一頁', + 'export_colors' => '匯出顏色', + 'import_colors' => '導入顏色', + 'clear_all' => '全部清除', + 'contrast' => '對比', + 'custom_colors' => '客製化顏色', + 'colors' => '顏色', + 'sidebar_active_background_color' => '側邊欄活動背景顏色', + 'sidebar_active_font_color' => '側邊欄活動字體顏色', + 'sidebar_inactive_background_color' => '側邊欄非活動背景顏色', + 'sidebar_inactive_font_color' => '側邊欄非活動字體顏色', + 'table_alternate_row_background_color' => '表備用行背景顏色', + 'invoice_header_background_color' => '發票標題背景顏色', + 'invoice_header_font_color' => '發票標題字體顏色', + 'review_app' => '評論應用程式', + 'check_status' => '檢查狀態', + 'free_trial' => '免費試用', + 'free_trial_help' => '所有帳戶都會收到為期兩週的專業計畫試用期,試用結束後,您的帳戶將自動變更為免費方案。', + 'free_trial_ends_in_days' => 'Pro 計畫試用期將於:count天後結束,點選升級。', + 'free_trial_ends_today' => '今天是Pro計畫試用的最後一天,點選升級。', + 'change_email' => '更改電子郵件', + 'client_portal_domain_hint' => '可以選擇配置單獨的客戶端入口網站網域', + 'tasks_shown_in_portal' => '門戶中顯示的任務', + 'uninvoiced' => '未開發票', + 'subdomain_guide' => '子網域在客戶端入口網站中用於個性化連結以匹配您的品牌。即,https://your-brand.invoicing.co', + 'send_time' => '發送時間', + 'import_settings' => '導入設定', + 'json_file_missing' => '請提供 JSON 文件', + 'json_option_missing' => '請選擇匯入設定和/或數據', 'json' => 'JSON', - 'no_payment_types_enabled' => 'No payment types enabled', - 'wait_for_data' => 'Please wait for the data to finish loading', - 'net_total' => 'Net Total', - 'has_taxes' => 'Has Taxes', - 'import_customers' => 'Import Customers', - 'imported_customers' => 'Successfully started importing customers', - 'login_success' => 'Successful Login', - 'login_failure' => 'Failed Login', - 'exported_data' => 'Once the file is ready you\'ll receive an email with a download link', - 'include_deleted_clients' => 'Include Deleted Clients', - 'include_deleted_clients_help' => 'Load records belonging to deleted clients', - 'step_1_sign_in' => 'Step 1: Sign In', - 'step_2_authorize' => 'Step 2: Authorize', - 'account_id' => 'Account ID', - 'migration_not_yet_completed' => 'The migration has not yet completed', - 'show_task_end_date' => 'Show Task End Date', - 'show_task_end_date_help' => 'Enable specifying the task end date', - 'gateway_setup' => 'Gateway Setup', - 'preview_sidebar' => 'Preview Sidebar', - 'years_data_shown' => 'Years Data Shown', - 'ended_all_sessions' => 'Successfully ended all sessions', - 'end_all_sessions' => 'End All Sessions', - 'count_session' => '1 Session', - 'count_sessions' => ':count Sessions', - 'invoice_created' => 'Invoice Created', - 'quote_created' => 'Quote Created', - 'credit_created' => 'Credit Created', - 'enterprise' => 'Enterprise', - 'invoice_item' => 'Invoice Item', - 'quote_item' => 'Quote Item', - 'order' => 'Order', - 'search_kanban' => 'Search Kanban', - 'search_kanbans' => 'Search Kanban', - 'move_top' => 'Move Top', - 'move_up' => 'Move Up', - 'move_down' => 'Move Down', - 'move_bottom' => 'Move Bottom', - 'body_variable_missing' => 'Error: the custom email must include a :body variable', - 'add_body_variable_message' => 'Make sure to include a :body variable', - 'view_date_formats' => 'View Date Formats', - 'is_viewed' => 'Is Viewed', - 'letter' => 'Letter', - 'legal' => 'Legal', - 'page_layout' => 'Page Layout', - 'portrait' => 'Portrait', - 'landscape' => 'Landscape', - 'owner_upgrade_to_paid_plan' => 'The account owner can upgrade to a paid plan to enable the advanced advanced settings', - 'upgrade_to_paid_plan' => 'Upgrade to a paid plan to enable the advanced settings', - 'invoice_payment_terms' => 'Invoice Payment Terms', - 'quote_valid_until' => 'Quote Valid Until', - 'no_headers' => 'No Headers', - 'add_header' => 'Add Header', - 'remove_header' => 'Remove Header', - 'return_url' => 'Return URL', - 'rest_method' => 'REST Method', - 'header_key' => 'Header Key', - 'header_value' => 'Header Value', - 'recurring_products' => 'Recurring Products', - 'promo_discount' => 'Promo Discount', - 'allow_cancellation' => 'Allow Cancellation', - 'per_seat_enabled' => 'Per Seat Enabled', - 'max_seats_limit' => 'Max Seats Limit', - 'trial_enabled' => 'Trial Enabled', - 'trial_duration' => 'Trial Duration', - 'allow_query_overrides' => 'Allow Query Overrides', - 'allow_plan_changes' => 'Allow Plan Changes', - 'plan_map' => 'Plan Map', - 'refund_period' => 'Refund Period', - 'webhook_configuration' => 'Webhook Configuration', - 'purchase_page' => 'Purchase Page', - 'email_bounced' => 'Email Bounced', - 'email_spam_complaint' => 'Spam Complaint', - 'email_delivery' => 'Email Delivery', - 'webhook_response' => 'Webhook Response', - 'pdf_response' => 'PDF Response', - 'authentication_failure' => 'Authentication Failure', - 'pdf_failed' => 'PDF Failed', - 'pdf_success' => 'PDF Success', - 'modified' => 'Modified', - 'html_mode' => 'HTML Mode', - 'html_mode_help' => 'Preview updates faster but is less accurate', - 'status_color_theme' => 'Status Color Theme', - 'load_color_theme' => 'Load Color Theme', - 'lang_Estonian' => 'Estonian', - 'marked_credit_as_paid' => 'Successfully marked credit as paid', - 'marked_credits_as_paid' => 'Successfully marked credits as paid', - 'wait_for_loading' => 'Data loading - please wait for it to complete', - 'wait_for_saving' => 'Data saving - please wait for it to complete', - 'html_preview_warning' => 'Note: changes made here are only previewed, they must be applied in the tabs above to be saved', - 'remaining' => 'Remaining', - 'invoice_paid' => 'Invoice Paid', - 'activity_120' => ':user created recurring expense :recurring_expense', - 'activity_121' => ':user updated recurring expense :recurring_expense', - 'activity_122' => ':user archived recurring expense :recurring_expense', - 'activity_123' => ':user deleted recurring expense :recurring_expense', - 'activity_124' => ':user restored recurring expense :recurring_expense', + 'no_payment_types_enabled' => '未啟用付款類型', + 'wait_for_data' => '請等待資料載入完成', + 'net_total' => '淨總值', + 'has_taxes' => '有稅', + 'import_customers' => '進口客戶', + 'imported_customers' => '成功開始導入客戶', + 'login_success' => '登入成功', + 'login_failure' => '登入失敗', + 'exported_data' => '文件準備好後,您將收到一封包含下載連結的電子郵件', + 'include_deleted_clients' => '包括已刪除的客戶', + 'include_deleted_clients_help' => '載入屬於已刪除客戶端的記錄', + 'step_1_sign_in' => '第 1 步:登入', + 'step_2_authorize' => '第 2 步:授權', + 'account_id' => '帳戶ID', + 'migration_not_yet_completed' => '遷移尚未完成', + 'show_task_end_date' => '顯示任務結束日期', + 'show_task_end_date_help' => '啟用指定任務結束日期', + 'gateway_setup' => '網關設定', + 'preview_sidebar' => '預覽側邊欄', + 'years_data_shown' => '顯示的年份數據', + 'ended_all_sessions' => '成功結束所有會話', + 'end_all_sessions' => '結束所有會話', + 'count_session' => '1 節課', + 'count_sessions' => ':count會話', + 'invoice_created' => '發票已建立', + 'quote_created' => '報價已創建', + 'credit_created' => '創造信用', + 'enterprise' => '企業', + 'invoice_item' => '發票項目', + 'quote_item' => '報價項目', + 'order' => '命令', + 'search_kanban' => '搜尋看板', + 'search_kanbans' => '搜尋看板', + 'move_top' => '移至頂部', + 'move_up' => '提升', + 'move_down' => '下移', + 'move_bottom' => '移動底部', + 'body_variable_missing' => '錯誤:自訂電子郵件必須包含:body變量', + 'add_body_variable_message' => '確保包含:body變量', + 'view_date_formats' => '查看日期格式', + 'is_viewed' => '已瀏覽', + 'letter' => '信', + 'legal' => '合法的', + 'page_layout' => '頁面佈局', + 'portrait' => '肖像', + 'landscape' => '景觀', + 'owner_upgrade_to_paid_plan' => '帳戶所有者可以升級到付費計劃以啟用高級高級設置', + 'upgrade_to_paid_plan' => '升級到付費計劃以啟用高級設置', + 'invoice_payment_terms' => '發票付款條款', + 'quote_valid_until' => '報價有效期限至', + 'no_headers' => '無標題', + 'add_header' => '新增標題', + 'remove_header' => '刪除標題', + 'return_url' => '返回網址', + 'rest_method' => '休息法', + 'header_key' => '標題鍵', + 'header_value' => '標頭值', + 'recurring_products' => '重複產品', + 'promo_discount' => '促銷折扣', + 'allow_cancellation' => '允許取消', + 'per_seat_enabled' => '每個席位已啟用', + 'max_seats_limit' => '最大座位數限制', + 'trial_enabled' => '試用已啟用', + 'trial_duration' => '試用時間', + 'allow_query_overrides' => '允許查詢覆蓋', + 'allow_plan_changes' => '允許計劃變更', + 'plan_map' => '平面圖', + 'refund_period' => '退款期限', + 'webhook_configuration' => 'Webhook 配置', + 'purchase_page' => '購買頁面', + 'email_bounced' => '電子郵件被退回', + 'email_spam_complaint' => '垃圾郵件投訴', + 'email_delivery' => '電子郵件傳送', + 'webhook_response' => 'Webhook 回應', + 'pdf_response' => 'PDF 回覆', + 'authentication_failure' => '驗證失敗', + 'pdf_failed' => 'PDF 失敗', + 'pdf_success' => 'PDF 成功', + 'modified' => '修改的', + 'html_mode' => 'HTML模式', + 'html_mode_help' => '預覽更新速度較快,但準確性較差', + 'status_color_theme' => '狀態顏色主題', + 'load_color_theme' => '載入顏色主題', + 'lang_Estonian' => '愛沙尼亞語', + 'marked_credit_as_paid' => '已成功將信用標記為已付款', + 'marked_credits_as_paid' => '已成功將積分標記為已付款', + 'wait_for_loading' => '資料載入 - 請等待完成', + 'wait_for_saving' => '資料保存 - 請等待完成', + 'html_preview_warning' => '注意:此處所做的更改只能預覽,必須在上面的選項卡中應用才能保存', + 'remaining' => '其餘的', + 'invoice_paid' => '發票已付', + 'activity_120' => ':user創建經常性費用:recurring_expense', + 'activity_121' => ':user更新經常性費用:recurring_expense', + 'activity_122' => ':user存檔的經常性費用:recurring_expense', + 'activity_123' => ':user刪除經常性費用:recurring_expense', + 'activity_124' => ':user恢復經常性費用:recurring_expense', 'fpx' => "FPX", - 'to_view_entity_set_password' => 'To view the :entity you need to set a password.', - 'unsubscribe' => 'Unsubscribe', - 'unsubscribed' => 'Unsubscribed', - 'unsubscribed_text' => 'You have been removed from notifications for this document', - 'client_shipping_state' => 'Client Shipping State', - 'client_shipping_city' => 'Client Shipping City', - 'client_shipping_postal_code' => 'Client Shipping Postal Code', - 'client_shipping_country' => 'Client Shipping Country', - 'load_pdf' => 'Load PDF', - 'start_free_trial' => 'Start Free Trial', - 'start_free_trial_message' => 'Start your FREE 14 day trial of the pro plan', - 'due_on_receipt' => 'Due on Receipt', - 'is_paid' => 'Is Paid', - 'age_group_paid' => 'Paid', - 'id' => 'Id', - 'convert_to' => 'Convert To', - 'client_currency' => 'Client Currency', - 'company_currency' => 'Company Currency', - 'custom_emails_disabled_help' => 'To prevent spam we require upgrading to a paid account to customize the email', - 'upgrade_to_add_company' => 'Upgrade your plan to add companies', - 'file_saved_in_downloads_folder' => 'The file has been saved in the downloads folder', - 'small' => 'Small', - 'quotes_backup_subject' => 'Your quotes are ready for download', - 'credits_backup_subject' => 'Your credits are ready for download', - 'document_download_subject' => 'Your documents are ready for download', - 'reminder_message' => 'Reminder for invoice :number for :balance', - 'gmail_credentials_invalid_subject' => 'Send with GMail invalid credentials', - 'gmail_credentials_invalid_body' => 'Your GMail credentials are not correct, please log into the administrator portal and navigate to Settings > User Details and disconnect and reconnect your GMail account. We will send you this notification daily until this issue is resolved', - 'total_columns' => 'Total Fields', - 'view_task' => 'View Task', - 'cancel_invoice' => 'Cancel', - 'changed_status' => 'Successfully changed task status', - 'change_status' => 'Change Status', - 'enable_touch_events' => 'Enable Touch Events', - 'enable_touch_events_help' => 'Support drag events to scroll', - 'after_saving' => 'After Saving', - 'view_record' => 'View Record', - 'enable_email_markdown' => 'Enable Email Markdown', - 'enable_email_markdown_help' => 'Use visual markdown editor for emails', - 'enable_pdf_markdown' => 'Enable PDF Markdown', - 'json_help' => 'Note: JSON files generated by the v4 app are not supported', - 'release_notes' => 'Release Notes', - 'upgrade_to_view_reports' => 'Upgrade your plan to view reports', - 'started_tasks' => 'Successfully started :value tasks', - 'stopped_tasks' => 'Successfully stopped :value tasks', - 'approved_quote' => 'Successfully apporved quote', - 'approved_quotes' => 'Successfully :value approved quotes', - 'client_website' => 'Client Website', - 'invalid_time' => 'Invalid Time', - 'signed_in_as' => 'Signed in as', - 'total_results' => 'Total results', - 'restore_company_gateway' => 'Restore gateway', - 'archive_company_gateway' => 'Archive gateway', - 'delete_company_gateway' => 'Delete gateway', - 'exchange_currency' => 'Exchange currency', - 'tax_amount1' => 'Tax Amount 1', - 'tax_amount2' => 'Tax Amount 2', - 'tax_amount3' => 'Tax Amount 3', - 'update_project' => 'Update Project', - 'auto_archive_invoice_cancelled' => 'Auto Archive Cancelled Invoice', - 'auto_archive_invoice_cancelled_help' => 'Automatically archive invoices when cancelled', - 'no_invoices_found' => 'No invoices found', - 'created_record' => 'Successfully created record', - 'auto_archive_paid_invoices' => 'Auto Archive Paid', - 'auto_archive_paid_invoices_help' => 'Automatically archive invoices when they are paid.', - 'auto_archive_cancelled_invoices' => 'Auto Archive Cancelled', - 'auto_archive_cancelled_invoices_help' => 'Automatically archive invoices when cancelled.', - 'alternate_pdf_viewer' => 'Alternate PDF Viewer', - 'alternate_pdf_viewer_help' => 'Improve scrolling over the PDF preview [BETA]', - 'currency_cayman_island_dollar' => 'Cayman Island Dollar', - 'download_report_description' => 'Please see attached file to check your report.', - 'left' => 'Left', - 'right' => 'Right', - 'center' => 'Center', - 'page_numbering' => 'Page Numbering', - 'page_numbering_alignment' => 'Page Numbering Alignment', - 'invoice_sent_notification_label' => 'Invoice Sent', - 'show_product_description' => 'Show Product Description', - 'show_product_description_help' => 'Include the description in the product dropdown', - 'invoice_items' => 'Invoice Items', - 'quote_items' => 'Quote Items', - 'profitloss' => 'Profit and Loss', - 'import_format' => 'Import Format', - 'export_format' => 'Export Format', - 'export_type' => 'Export Type', - 'stop_on_unpaid' => 'Stop On Unpaid', - 'stop_on_unpaid_help' => 'Stop creating recurring invoices if the last invoice is unpaid.', - 'use_quote_terms' => 'Use Quote Terms', - 'use_quote_terms_help' => 'When converting a quote to an invoice', - 'add_country' => 'Add Country', - 'enable_tooltips' => 'Enable Tooltips', - 'enable_tooltips_help' => 'Show tooltips when hovering the mouse', - 'multiple_client_error' => 'Error: records belong to more than one client', - 'login_label' => 'Login to an existing account', - 'purchase_order' => 'Purchase Order', - 'purchase_order_number' => 'Purchase Order Number', - 'purchase_order_number_short' => 'Purchase Order #', - 'inventory_notification_subject' => 'Inventory threshold notification for product: :product', - 'inventory_notification_body' => 'Threshold of :amount has been reached for product: :product', - 'activity_130' => ':user created purchase order :purchase_order', - 'activity_131' => ':user updated purchase order :purchase_order', - 'activity_132' => ':user archived purchase order :purchase_order', - 'activity_133' => ':user deleted purchase order :purchase_order', - 'activity_134' => ':user restored purchase order :purchase_order', - 'activity_135' => ':user emailed purchase order :purchase_order', - 'activity_136' => ':contact viewed purchase order :purchase_order', - 'purchase_order_subject' => 'New Purchase Order :number from :account', - 'purchase_order_message' => 'To view your purchase order for :amount, click the link below.', - 'view_purchase_order' => 'View Purchase Order', - 'purchase_orders_backup_subject' => 'Your purchase orders are ready for download', - 'notification_purchase_order_viewed_subject' => 'Purchase Order :invoice was viewed by :client', - 'notification_purchase_order_viewed' => 'The following vendor :client viewed Purchase Order :invoice for :amount.', - 'purchase_order_date' => 'Purchase Order Date', - 'purchase_orders' => 'Purchase Orders', - 'purchase_order_number_placeholder' => 'Purchase Order # :purchase_order', - 'accepted' => 'Accepted', - 'activity_137' => ':contact accepted purchase order :purchase_order', - 'vendor_information' => 'Vendor Information', - 'notification_purchase_order_accepted_subject' => 'Purchase Order :purchase_order was accepted by :vendor', - 'notification_purchase_order_accepted' => 'The following vendor :vendor accepted Purchase Order :purchase_order for :amount.', - 'amount_received' => 'Amount received', - 'purchase_order_already_expensed' => 'Already converted to an expense.', - 'convert_to_expense' => 'Convert to Expense', - 'add_to_inventory' => 'Add to Inventory', - 'added_purchase_order_to_inventory' => 'Successfully added purchase order to inventory', - 'added_purchase_orders_to_inventory' => 'Successfully added purchase orders to inventory', - 'client_document_upload' => 'Client Document Upload', - 'vendor_document_upload' => 'Vendor Document Upload', - 'vendor_document_upload_help' => 'Enable vendors to upload documents', - 'are_you_enjoying_the_app' => 'Are you enjoying the app?', - 'yes_its_great' => 'Yes, it\'s great!', - 'not_so_much' => 'Not so much', - 'would_you_rate_it' => 'Great to hear! Would you like to rate it?', - 'would_you_tell_us_more' => 'Sorry to hear it! Would you like to tell us more?', - 'sure_happy_to' => 'Sure, happy to', - 'no_not_now' => 'No, not now', - 'add' => 'Add', - 'last_sent_template' => 'Last Sent Template', - 'enable_flexible_search' => 'Enable Flexible Search', - 'enable_flexible_search_help' => 'Match non-contiguous characters, ie. "ct" matches "cat"', - 'vendor_details' => 'Vendor Details', - 'purchase_order_details' => 'Purchase Order Details', - 'qr_iban' => 'QR IBAN', + 'to_view_entity_set_password' => '要查看:entity您需要設定密碼。', + 'unsubscribe' => '退訂', + 'unsubscribed' => '取消訂閱', + 'unsubscribed_text' => '您已從該文件的通知中刪除', + 'client_shipping_state' => '客戶運輸狀態', + 'client_shipping_city' => '客戶出貨城市', + 'client_shipping_postal_code' => '客戶出貨郵遞區號', + 'client_shipping_country' => '客戶出貨國家/地區', + 'load_pdf' => '載入 PDF', + 'start_free_trial' => '開啟免費體驗', + 'start_free_trial_message' => '開始 14 天免費試用專業計劃', + 'due_on_receipt' => '收據到期', + 'is_paid' => '已經付款了', + 'age_group_paid' => '有薪資的', + 'id' => 'ID', + 'convert_to' => '轉換成', + 'client_currency' => '客戶貨幣', + 'company_currency' => '公司貨幣', + 'custom_emails_disabled_help' => '為了防止垃圾郵件,我們需要升級到付費帳戶來自訂電子郵件', + 'upgrade_to_add_company' => '升級您的計劃以添加公司', + 'file_saved_in_downloads_folder' => '該文件已保存在下載資料夾中', + 'small' => '小的', + 'quotes_backup_subject' => '您的報價可供下載', + 'credits_backup_subject' => '您的積分已準備好下載', + 'document_download_subject' => '您的文件已可供下載', + 'reminder_message' => ':balance的發票:number提醒', + 'gmail_credentials_invalid_subject' => '使用 GMail 傳送無效憑證', + 'gmail_credentials_invalid_body' => '您的 GMail 憑證不正確,請登入管理員入口網站並導航至“設定”>“使用者詳細資料”,然後中斷並重新連接您的 GMail 帳戶。我們將每天向您發送此通知,直到此問題解決', + 'total_columns' => '總字段數', + 'view_task' => '查看任務', + 'cancel_invoice' => '取消', + 'changed_status' => '已成功更改任務狀態', + 'change_status' => '更改狀態', + 'enable_touch_events' => '啟用觸控事件', + 'enable_touch_events_help' => '支援拖曳事件滾動', + 'after_saving' => '儲存後', + 'view_record' => '查看記錄', + 'enable_email_markdown' => '啟用電子郵件 Markdown', + 'enable_email_markdown_help' => '使用視覺化 Markdown 編輯器處理電子郵件', + 'enable_pdf_markdown' => '啟用 PDF Markdown', + 'json_help' => '注意:不支援 v4 應用程式產生的 JSON 文件', + 'release_notes' => '發行說明', + 'upgrade_to_view_reports' => '升級您的計劃以查看報告', + 'started_tasks' => '成功啟動:value任務', + 'stopped_tasks' => '成功停止:value任務', + 'approved_quote' => '報價已成功批准', + 'approved_quotes' => '已成功:value核准報價', + 'client_website' => '客戶網站', + 'invalid_time' => '無效時間', + 'signed_in_as' => '登入身份', + 'total_results' => '總結果', + 'restore_company_gateway' => '恢復網關', + 'archive_company_gateway' => '存檔網關', + 'delete_company_gateway' => '刪除網關', + 'exchange_currency' => '貨幣兌換', + 'tax_amount1' => '稅額1', + 'tax_amount2' => '稅額2', + 'tax_amount3' => '稅額3', + 'update_project' => '更新項目', + 'auto_archive_invoice_cancelled' => '自動存檔已取消的發票', + 'auto_archive_invoice_cancelled_help' => '取消時自動存檔發票', + 'no_invoices_found' => '沒有找到發票', + 'created_record' => '記錄創建成功', + 'auto_archive_paid_invoices' => '自動存檔付費', + 'auto_archive_paid_invoices_help' => '付款後自動存檔發票。', + 'auto_archive_cancelled_invoices' => '自動存檔已取消', + 'auto_archive_cancelled_invoices_help' => '取消時自動存檔發票。', + 'alternate_pdf_viewer' => '備用 PDF 檢視器', + 'alternate_pdf_viewer_help' => '改進 PDF 預覽的滾動功能 [BETA]', + 'currency_cayman_island_dollar' => '開曼群島元', + 'download_report_description' => '請參閱附件來檢查您的報告。', + 'left' => '左邊', + 'right' => '正確的', + 'center' => '中心', + 'page_numbering' => '頁碼', + 'page_numbering_alignment' => '頁碼對齊', + 'invoice_sent_notification_label' => '發票已發送', + 'show_product_description' => '顯示產品說明', + 'show_product_description_help' => '在產品下拉清單中包含描述', + 'invoice_items' => '發票項目', + 'quote_items' => '報價項目', + 'profitloss' => '收益與損失', + 'import_format' => '導入格式', + 'export_format' => '導出格式', + 'export_type' => '出口類型', + 'stop_on_unpaid' => '停止未付款', + 'stop_on_unpaid_help' => '如果最後一張發票未付款,請停止建立定期發票。', + 'use_quote_terms' => '使用報價條款', + 'use_quote_terms_help' => '將報價單轉換為發票時', + 'add_country' => '新增國家/地區', + 'enable_tooltips' => '啟用工具提示', + 'enable_tooltips_help' => '滑鼠懸停時顯示工具提示', + 'multiple_client_error' => '錯誤:記錄屬於多個客戶', + 'login_label' => '登入現有帳戶', + 'purchase_order' => '採購訂單', + 'purchase_order_number' => '訂購單號', + 'purchase_order_number_short' => '採購訂單 #', + 'inventory_notification_subject' => '產品庫存閾值通知: :product', + 'inventory_notification_body' => '產品已達到:amount的門檻: :product', + 'activity_130' => ':user建立採購訂單:purchase_order', + 'activity_131' => ':user更新的採購訂單:purchase_order', + 'activity_132' => ':user已歸檔採購訂單:purchase_order', + 'activity_133' => ':user已刪除採購訂單:purchase_order', + 'activity_134' => ':user恢復採購訂單:purchase_order', + 'activity_135' => ':user透過電子郵件發送採購訂單:purchase_order', + 'activity_136' => ':contact查看採購訂單:purchase_order', + 'purchase_order_subject' => '來自:account的新採購訂單:number', + 'purchase_order_message' => '要查看:amount的採購訂單,請點擊下面的連結。', + 'view_purchase_order' => '查看採購訂單', + 'purchase_orders_backup_subject' => '您的採購訂單已可供下載', + 'notification_purchase_order_viewed_subject' => ':client查看了採購訂單:invoice', + 'notification_purchase_order_viewed' => '以下供應商:client查看了:amount的採購訂單:invoice 。', + 'purchase_order_date' => '採購訂單日期', + 'purchase_orders' => '訂單', + 'purchase_order_number_placeholder' => '採購訂單# :purchase_order', + 'accepted' => '公認', + 'activity_137' => ':contact已接受採購訂單:purchase_order', + 'vendor_information' => '供應商資訊', + 'notification_purchase_order_accepted_subject' => '採購訂單:purchase_order已被:vendor接受', + 'notification_purchase_order_accepted' => '以下供應商:vendor接受了:amount的採購訂單:purchase_order 。', + 'amount_received' => '收到金額', + 'purchase_order_already_expensed' => '已經轉化為費用。', + 'convert_to_expense' => '轉換為費用', + 'add_to_inventory' => '新增到庫存', + 'added_purchase_order_to_inventory' => '已成功將採購訂單新增至庫存', + 'added_purchase_orders_to_inventory' => '已成功將採購訂單新增至庫存', + 'client_document_upload' => '客戶文件上傳', + 'vendor_document_upload' => '供應商文件上傳', + 'vendor_document_upload_help' => '允許供應商上傳文檔', + 'are_you_enjoying_the_app' => '您喜歡這個應用程式嗎?', + 'yes_its_great' => '是的這很好!', + 'not_so_much' => '沒那麼多', + 'would_you_rate_it' => '很高興聽到!您願意評價一下嗎?', + 'would_you_tell_us_more' => '很抱歉聽到這個消息!您願意告訴我們更多嗎?', + 'sure_happy_to' => '當然,很高興', + 'no_not_now' => '不,現在不行', + 'add' => '添加', + 'last_sent_template' => '最後發送的模板', + 'enable_flexible_search' => '啟用靈活搜尋', + 'enable_flexible_search_help' => '匹配不連續的字符,即。 “ct”匹配“貓”', + 'vendor_details' => '供應商詳情', + 'purchase_order_details' => '採購訂單詳細信息', + 'qr_iban' => 'QR 圖碼 IBAN', 'besr_id' => 'BESR ID', - 'clone_to_purchase_order' => 'Clone to PO', - 'vendor_email_not_set' => 'Vendor does not have an email address set', - 'bulk_send_email' => 'Send Email', - 'marked_purchase_order_as_sent' => 'Successfully marked purchase order as sent', - 'marked_purchase_orders_as_sent' => 'Successfully marked purchase orders as sent', - 'accepted_purchase_order' => 'Successfully accepted purchase order', - 'accepted_purchase_orders' => 'Successfully accepted purchase orders', - 'cancelled_purchase_order' => 'Successfully cancelled purchase order', - 'cancelled_purchase_orders' => 'Successfully cancelled purchase orders', - 'please_select_a_vendor' => 'Please select a vendor', - 'purchase_order_total' => 'Purchase Order Total', - 'email_purchase_order' => 'Email Purchase Order', - 'bulk_email_purchase_order' => 'Email Purchase Order', - 'disconnected_email' => 'Successfully disconnected email', - 'connect_email' => 'Connect Email', - 'disconnect_email' => 'Disconnect Email', - 'use_web_app_to_connect_microsoft' => 'Please use the web app to connect to Microsoft', - 'email_provider' => 'Email Provider', - 'connect_microsoft' => 'Connect Microsoft', - 'disconnect_microsoft' => 'Disconnect Microsoft', - 'connected_microsoft' => 'Successfully connected Microsoft', - 'disconnected_microsoft' => 'Successfully disconnected Microsoft', - 'microsoft_sign_in' => 'Login with Microsoft', - 'microsoft_sign_up' => 'Sign up with Microsoft', - 'emailed_purchase_order' => 'Successfully queued purchase order to be sent', - 'emailed_purchase_orders' => 'Successfully queued purchase orders to be sent', - 'enable_react_app' => 'Change to the React web app', - 'purchase_order_design' => 'Purchase Order Design', - 'purchase_order_terms' => 'Purchase Order Terms', - 'purchase_order_footer' => 'Purchase Order Footer', - 'require_purchase_order_signature' => 'Purchase Order Signature', - 'require_purchase_order_signature_help' => 'Require vendor to provide their signature.', - 'new_purchase_order' => 'New Purchase Order', - 'edit_purchase_order' => 'Edit Purchase Order', - 'created_purchase_order' => 'Successfully created purchase order', - 'updated_purchase_order' => 'Successfully updated purchase order', - 'archived_purchase_order' => 'Successfully archived purchase order', - 'deleted_purchase_order' => 'Successfully deleted purchase order', - 'removed_purchase_order' => 'Successfully removed purchase order', - 'restored_purchase_order' => 'Successfully restored purchase order', - 'search_purchase_order' => 'Search Purchase Order', - 'search_purchase_orders' => 'Search Purchase Orders', - 'login_url' => 'Login URL', - 'enable_applying_payments' => 'Enable Applying Payments', - 'enable_applying_payments_help' => 'Support separately creating and applying payments', - 'stock_quantity' => 'Stock Quantity', - 'notification_threshold' => 'Notification Threshold', - 'track_inventory' => 'Track Inventory', - 'track_inventory_help' => 'Display a product stock field and update when invoices are sent', - 'stock_notifications' => 'Stock Notifications', - 'stock_notifications_help' => 'Send an email when the stock reaches the threshold', - 'vat' => 'VAT', - 'view_map' => 'View Map', - 'set_default_design' => 'Set Default Design', - 'purchase_order_issued_to' => 'Purchase Order issued to', - 'archive_task_status' => 'Archive Task Status', - 'delete_task_status' => 'Delete Task Status', - 'restore_task_status' => 'Restore Task Status', - 'lang_Hebrew' => 'Hebrew', - 'price_change_accepted' => 'Price change accepted', - 'price_change_failed' => 'Price change failed with code', - 'restore_purchases' => 'Restore Purchases', - 'activate' => 'Activate', - 'connect_apple' => 'Connect Apple', - 'disconnect_apple' => 'Disconnect Apple', - 'disconnected_apple' => 'Successfully disconnected Apple', - 'send_now' => 'Send Now', - 'received' => 'Received', - 'converted_to_expense' => 'Successfully converted to expense', - 'converted_to_expenses' => 'Successfully converted to expenses', - 'entity_removed' => 'This document has been removed, please contact the vendor for further information', - 'entity_removed_title' => 'Document no longer available', - 'field' => 'Field', - 'period' => 'Period', - 'fields_per_row' => 'Fields Per Row', - 'total_active_invoices' => 'Active Invoices', - 'total_outstanding_invoices' => 'Outstanding Invoices', - 'total_completed_payments' => 'Completed Payments', - 'total_refunded_payments' => 'Refunded Payments', - 'total_active_quotes' => 'Active Quotes', - 'total_approved_quotes' => 'Approved Quotes', - 'total_unapproved_quotes' => 'Unapproved Quotes', - 'total_logged_tasks' => 'Logged Tasks', - 'total_invoiced_tasks' => 'Invoiced Tasks', - 'total_paid_tasks' => 'Paid Tasks', - 'total_logged_expenses' => 'Logged Expenses', - 'total_pending_expenses' => 'Pending Expenses', - 'total_invoiced_expenses' => 'Invoiced Expenses', - 'total_invoice_paid_expenses' => 'Invoice Paid Expenses', - 'vendor_portal' => 'Vendor Portal', - 'send_code' => 'Send Code', - 'save_to_upload_documents' => 'Save the record to upload documents', - 'expense_tax_rates' => 'Expense Tax Rates', - 'invoice_item_tax_rates' => 'Invoice Item Tax Rates', - 'verified_phone_number' => 'Successfully verified phone number', - 'code_was_sent' => 'A code has been sent via SMS', - 'resend' => 'Resend', - 'verify' => 'Verify', - 'enter_phone_number' => 'Please provide a phone number', - 'invalid_phone_number' => 'Invalid phone number', - 'verify_phone_number' => 'Verify Phone Number', - 'verify_phone_number_help' => 'Please verify your phone number to send emails', - 'merged_clients' => 'Successfully merged clients', - 'merge_into' => 'Merge Into', - 'php81_required' => 'Note: v5.5 requires PHP 8.1', - 'bulk_email_purchase_orders' => 'Email Purchase Orders', - 'bulk_email_invoices' => 'Email Invoices', - 'bulk_email_quotes' => 'Email Quotes', - 'bulk_email_credits' => 'Email Credits', - 'archive_purchase_order' => 'Archive Purchase Order', - 'restore_purchase_order' => 'Restore Purchase Order', - 'delete_purchase_order' => 'Delete Purchase Order', - 'connect' => 'Connect', - 'mark_paid_payment_email' => 'Mark Paid Payment Email', - 'convert_to_project' => 'Convert to Project', - 'client_email' => 'Client Email', - 'invoice_task_project' => 'Invoice Task Project', - 'invoice_task_project_help' => 'Add the project to the invoice line items', - 'bulk_action' => 'Bulk Action', - 'phone_validation_error' => 'This mobile (cell) phone number is not valid, please enter in E.164 format', - 'transaction' => 'Transaction', - 'disable_2fa' => 'Disable 2FA', - 'change_number' => 'Change Number', - 'resend_code' => 'Resend Code', - 'base_type' => 'Base Type', - 'category_type' => 'Category Type', - 'bank_transaction' => 'Transaction', - 'bulk_print' => 'Print PDF', - 'vendor_postal_code' => 'Vendor Postal Code', - 'preview_location' => 'Preview Location', - 'bottom' => 'Bottom', - 'side' => 'Side', - 'pdf_preview' => 'PDF Preview', - 'long_press_to_select' => 'Long Press to Select', - 'purchase_order_item' => 'Purchase Order Item', - 'would_you_rate_the_app' => 'Would you like to rate the app?', - 'include_deleted' => 'Include Deleted', - 'include_deleted_help' => 'Include deleted records in reports', - 'due_on' => 'Due On', - 'browser_pdf_viewer' => 'Use Browser PDF Viewer', - 'browser_pdf_viewer_help' => 'Warning: Prevents interacting with app over the PDF', - 'converted_transactions' => 'Successfully converted transactions', - 'default_category' => 'Default Category', - 'connect_accounts' => 'Connect Accounts', - 'manage_rules' => 'Manage Rules', - 'search_category' => 'Search 1 Category', - 'search_categories' => 'Search :count Categories', - 'min_amount' => 'Min Amount', - 'max_amount' => 'Max Amount', - 'converted_transaction' => 'Successfully converted transaction', - 'convert_to_payment' => 'Convert to Payment', - 'deposit' => 'Deposit', - 'withdrawal' => 'Withdrawal', - 'deposits' => 'Deposits', - 'withdrawals' => 'Withdrawals', - 'matched' => 'Matched', - 'unmatched' => 'Unmatched', - 'create_credit' => 'Create Credit', - 'transactions' => 'Transactions', - 'new_transaction' => 'New Transaction', - 'edit_transaction' => 'Edit Transaction', - 'created_transaction' => 'Successfully created transaction', - 'updated_transaction' => 'Successfully updated transaction', - 'archived_transaction' => 'Successfully archived transaction', - 'deleted_transaction' => 'Successfully deleted transaction', - 'removed_transaction' => 'Successfully removed transaction', - 'restored_transaction' => 'Successfully restored transaction', - 'search_transaction' => 'Search Transaction', - 'search_transactions' => 'Search :count Transactions', - 'deleted_bank_account' => 'Successfully deleted bank account', - 'removed_bank_account' => 'Successfully removed bank account', - 'restored_bank_account' => 'Successfully restored bank account', - 'search_bank_account' => 'Search Bank Account', - 'search_bank_accounts' => 'Search :count Bank Accounts', - 'code_was_sent_to' => 'A code has been sent via SMS to :number', - 'verify_phone_number_2fa_help' => 'Please verify your phone number for 2FA backup', - 'enable_applying_payments_later' => 'Enable Applying Payments Later', - 'line_item_tax_rates' => 'Line Item Tax Rates', - 'show_tasks_in_client_portal' => 'Show Tasks in Client Portal', - 'notification_quote_expired_subject' => 'Quote :invoice has expired for :client', - 'notification_quote_expired' => 'The following Quote :invoice for client :client and :amount has now expired.', - 'auto_sync' => 'Auto Sync', - 'refresh_accounts' => 'Refresh Accounts', - 'upgrade_to_connect_bank_account' => 'Upgrade to Enterprise to connect your bank account', - 'click_here_to_connect_bank_account' => 'Click here to connect your bank account', - 'include_tax' => 'Include tax', - 'email_template_change' => 'E-mail template body can be changed on', - 'task_update_authorization_error' => 'Insufficient permissions, or task may be locked', - 'cash_vs_accrual' => 'Accrual accounting', - 'cash_vs_accrual_help' => 'Turn on for accrual reporting, turn off for cash basis reporting.', - 'expense_paid_report' => 'Expensed reporting', - 'expense_paid_report_help' => 'Turn on for reporting all expenses, turn off for reporting only paid expenses', - 'online_payment_email_help' => 'Send an email when an online payment is made', - 'manual_payment_email_help' => 'Send an email when manually entering a payment', - 'mark_paid_payment_email_help' => 'Send an email when marking an invoice as paid', - 'linked_transaction' => 'Successfully linked transaction', - 'link_payment' => 'Link Payment', - 'link_expense' => 'Link Expense', - 'lock_invoiced_tasks' => 'Lock Invoiced Tasks', - 'lock_invoiced_tasks_help' => 'Prevent tasks from being edited once invoiced', - 'registration_required_help' => 'Require clients to register', - 'use_inventory_management' => 'Use Inventory Management', - 'use_inventory_management_help' => 'Require products to be in stock', - 'optional_products' => 'Optional Products', - 'optional_recurring_products' => 'Optional Recurring Products', - 'convert_matched' => 'Convert', - 'auto_billed_invoice' => 'Successfully queued invoice to be auto-billed', - 'auto_billed_invoices' => 'Successfully queued invoices to be auto-billed', - 'operator' => 'Operator', - 'value' => 'Value', - 'is' => 'Is', - 'contains' => 'Contains', - 'starts_with' => 'Starts with', - 'is_empty' => 'Is empty', - 'add_rule' => 'Add Rule', - 'match_all_rules' => 'Match All Rules', - 'match_all_rules_help' => 'All criteria needs to match for the rule to be applied', - 'auto_convert_help' => 'Automatically convert matched transactions to expenses', - 'rules' => 'Rules', - 'transaction_rule' => 'Transaction Rule', - 'transaction_rules' => 'Transaction Rules', - 'new_transaction_rule' => 'New Transaction Rule', - 'edit_transaction_rule' => 'Edit Transaction Rule', - 'created_transaction_rule' => 'Successfully created rule', - 'updated_transaction_rule' => 'Successfully updated transaction rule', - 'archived_transaction_rule' => 'Successfully archived transaction rule', - 'deleted_transaction_rule' => 'Successfully deleted transaction rule', - 'removed_transaction_rule' => 'Successfully removed transaction rule', - 'restored_transaction_rule' => 'Successfully restored transaction rule', - 'search_transaction_rule' => 'Search Transaction Rule', - 'search_transaction_rules' => 'Search Transaction Rules', - 'payment_type_Interac E-Transfer' => 'Interac E-Transfer', - 'delete_bank_account' => 'Delete Bank Account', - 'archive_transaction' => 'Archive Transaction', - 'delete_transaction' => 'Delete Transaction', - 'otp_code_message' => 'We have sent a code to :email enter this code to proceed.', - 'otp_code_subject' => 'Your one time passcode code', - 'otp_code_body' => 'Your one time passcode is :code', - 'delete_tax_rate' => 'Delete Tax Rate', - 'restore_tax_rate' => 'Restore Tax Rate', - 'company_backup_file' => 'Select company backup file', - 'company_backup_file_help' => 'Please upload the .zip file used to create this backup.', - 'backup_restore' => 'Backup | Restore', - 'export_company' => 'Create company backup', - 'backup' => 'Backup', - 'notification_purchase_order_created_body' => 'The following purchase_order :purchase_order was created for vendor :vendor for :amount.', - 'notification_purchase_order_created_subject' => 'Purchase Order :purchase_order was created for :vendor', - 'notification_purchase_order_sent_subject' => 'Purchase Order :purchase_order was sent to :vendor', - 'notification_purchase_order_sent' => 'The following vendor :vendor was emailed Purchase Order :purchase_order for :amount.', - 'subscription_blocked' => 'This product is a restricted item, please contact the vendor for further information.', - 'subscription_blocked_title' => 'Product not available.', - 'purchase_order_created' => 'Purchase Order Created', - 'purchase_order_sent' => 'Purchase Order Sent', - 'purchase_order_viewed' => 'Purchase Order Viewed', - 'purchase_order_accepted' => 'Purchase Order Accepted', - 'credit_payment_error' => 'The credit amount can not be greater than the payment amount', - 'convert_payment_currency_help' => 'Set an exchange rate when entering a manual payment', - 'convert_expense_currency_help' => 'Set an exchange rate when creating an expense', - 'matomo_url' => 'Matomo URL', - 'matomo_id' => 'Matomo Id', - 'action_add_to_invoice' => 'Add To Invoice', - 'danger_zone' => 'Danger Zone', - 'import_completed' => 'Import completed', - 'client_statement_body' => 'Your statement from :start_date to :end_date is attached.', - 'email_queued' => 'Email queued', - 'clone_to_recurring_invoice' => 'Clone to Recurring Invoice', - 'inventory_threshold' => 'Inventory Threshold', - 'emailed_statement' => 'Successfully queued statement to be sent', - 'show_email_footer' => 'Show Email Footer', - 'invoice_task_hours' => 'Invoice Task Hours', - 'invoice_task_hours_help' => 'Add the hours to the invoice line items', - 'auto_bill_standard_invoices' => 'Auto Bill Standard Invoices', - 'auto_bill_recurring_invoices' => 'Auto Bill Recurring Invoices', - 'email_alignment' => 'Email Alignment', - 'pdf_preview_location' => 'PDF Preview Location', - 'mailgun' => 'Mailgun', - 'postmark' => 'Postmark', - 'microsoft' => 'Microsoft', - 'click_plus_to_create_record' => 'Click + to create a record', - 'last365_days' => 'Last 365 Days', - 'import_design' => 'Import Design', - 'imported_design' => 'Successfully imported design', - 'invalid_design' => 'The design is invalid, the :value section is missing', - 'setup_wizard_logo' => 'Would you like to upload your logo?', - 'installed_version' => 'Installed Version', - 'notify_vendor_when_paid' => 'Notify Vendor When Paid', - 'notify_vendor_when_paid_help' => 'Send an email to the vendor when the expense is marked as paid', - 'update_payment' => 'Update Payment', - 'markup' => 'Markup', - 'unlock_pro' => 'Unlock Pro', - 'upgrade_to_paid_plan_to_schedule' => 'Upgrade to a paid plan to create schedules', - 'next_run' => 'Next Run', - 'all_clients' => 'All Clients', - 'show_aging_table' => 'Show Aging Table', - 'show_payments_table' => 'Show Payments Table', - 'only_clients_with_invoices' => 'Only Clients with Invoices', - 'email_statement' => 'Email Statement', - 'once' => 'Once', - 'schedules' => 'Schedules', - 'new_schedule' => 'New Schedule', - 'edit_schedule' => 'Edit Schedule', - 'created_schedule' => 'Successfully created schedule', - 'updated_schedule' => 'Successfully updated schedule', - 'archived_schedule' => 'Successfully archived schedule', - 'deleted_schedule' => 'Successfully deleted schedule', - 'removed_schedule' => 'Successfully removed schedule', - 'restored_schedule' => 'Successfully restored schedule', - 'search_schedule' => 'Search Schedule', - 'search_schedules' => 'Search Schedules', - 'update_product' => 'Update Product', - 'create_purchase_order' => 'Create Purchase Order', - 'update_purchase_order' => 'Update Purchase Order', - 'sent_invoice' => 'Sent Invoice', - 'sent_quote' => 'Sent Quote', - 'sent_credit' => 'Sent Credit', - 'sent_purchase_order' => 'Sent Purchase Order', - 'image_url' => 'Image URL', - 'max_quantity' => 'Max Quantity', - 'test_url' => 'Test URL', - 'auto_bill_help_off' => 'Option is not shown', - 'auto_bill_help_optin' => 'Option is shown but not selected', - 'auto_bill_help_optout' => 'Option is shown and selected', - 'auto_bill_help_always' => 'Option is not shown', - 'view_all' => 'View All', - 'edit_all' => 'Edit All', - 'accept_purchase_order_number' => 'Accept Purchase Order Number', - 'accept_purchase_order_number_help' => 'Enable clients to provide a PO number when approving a quote', - 'from_email' => 'From Email', - 'show_preview' => 'Show Preview', - 'show_paid_stamp' => 'Show Paid Stamp', - 'show_shipping_address' => 'Show Shipping Address', - 'no_documents_to_download' => 'There are no documents in the selected records to download', - 'pixels' => 'Pixels', - 'logo_size' => 'Logo Size', - 'failed' => 'Failed', - 'client_contacts' => 'Client Contacts', - 'sync_from' => 'Sync From', - 'gateway_payment_text' => 'Invoices: :invoices for :amount for client :client', - 'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client', - 'click_to_variables' => 'Click here to see all variables.', - 'ship_to' => 'Ship to', - 'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.', - 'branch_name' => 'Branch Name', - 'branch_code' => 'Branch Code', - 'bank_name' => 'Bank Name', - 'bank_code' => 'Bank Code', - 'bic' => 'BIC', - 'change_plan_description' => 'Upgrade or downgrade your current plan.', - 'add_company_logo' => 'Add Logo', - 'add_stripe' => 'Add Stripe', - 'invalid_coupon' => 'Invalid Coupon', - 'no_assigned_tasks' => 'No billable tasks for this project', - 'authorization_failure' => 'Insufficient permissions to perform this action', - 'authorization_sms_failure' => 'Please verify your account to send emails.', - 'white_label_body' => 'Thank you for purchasing a white label license.

Your license key is:

:license_key', - 'payment_type_Klarna' => 'Klarna', - 'payment_type_Interac E Transfer' => 'Interac E Transfer', - 'xinvoice_payable' => 'Payable within :payeddue days net until :paydate', - 'xinvoice_no_buyers_reference' => "No buyer's reference given", - 'xinvoice_online_payment' => 'The invoice needs to be paid online via the provided link', - 'pre_payment' => 'Pre Payment', - 'number_of_payments' => 'Number of payments', - 'number_of_payments_helper' => 'The number of times this payment will be made', - 'pre_payment_indefinitely' => 'Continue until cancelled', - 'notification_payment_emailed' => 'Payment :payment was emailed to :client', - 'notification_payment_emailed_subject' => 'Payment :payment was emailed', - 'record_not_found' => 'Record not found', - 'minimum_payment_amount' => 'Minimum Payment Amount', - 'client_initiated_payments' => 'Client Initiated Payments', - 'client_initiated_payments_help' => 'Support making a payment in the client portal without an invoice', - 'share_invoice_quote_columns' => 'Share Invoice/Quote Columns', - 'cc_email' => 'CC Email', - 'payment_balance' => 'Payment Balance', - 'view_report_permission' => 'Allow user to access the reports, data is limited to available permissions', - 'activity_138' => 'Payment :payment was emailed to :client', - 'one_time_products' => 'One-Time Products', - 'optional_one_time_products' => 'Optional One-Time Products', - 'required' => 'Required', - 'hidden' => 'Hidden', - 'payment_links' => 'Payment Links', - 'payment_link' => 'Payment Link', - 'new_payment_link' => 'New Payment Link', - 'edit_payment_link' => 'Edit Payment Link', - 'created_payment_link' => 'Successfully created payment link', - 'updated_payment_link' => 'Successfully updated payment link', - 'archived_payment_link' => 'Successfully archived payment link', - 'deleted_payment_link' => 'Successfully deleted payment link', - 'removed_payment_link' => 'Successfully removed payment link', - 'restored_payment_link' => 'Successfully restored payment link', - 'search_payment_link' => 'Search 1 Payment Link', - 'search_payment_links' => 'Search :count Payment Links', - 'increase_prices' => 'Increase Prices', - 'update_prices' => 'Update Prices', - 'incresed_prices' => 'Successfully queued prices to be increased', - 'updated_prices' => 'Successfully queued prices to be updated', - 'api_token' => 'API Token', - 'api_key' => 'API Key', - 'endpoint' => 'Endpoint', - 'not_billable' => 'Not Billable', - 'allow_billable_task_items' => 'Allow Billable Task Items', - 'allow_billable_task_items_help' => 'Enable configuring which task items are billed', - 'show_task_item_description' => 'Show Task Item Description', - 'show_task_item_description_help' => 'Enable specifying task item descriptions', - 'email_record' => 'Email Record', - 'invoice_product_columns' => 'Invoice Product Columns', - 'quote_product_columns' => 'Quote Product Columns', - 'vendors' => 'Vendors', - 'product_sales' => 'Product Sales', - 'user_sales_report_header' => 'User sales report for client/s :client from :start_date to :end_date', - 'client_balance_report' => 'Customer balance report', - 'client_sales_report' => 'Customer sales report', - 'user_sales_report' => 'User sales report', - 'aged_receivable_detailed_report' => 'Aged Receivable Detailed Report', - 'aged_receivable_summary_report' => 'Aged Receivable Summary Report', - 'taxable_amount' => 'Taxable Amount', - 'tax_summary' => 'Tax Summary', - 'oauth_mail' => 'OAuth / Mail', - 'preferences' => 'Preferences', - 'analytics' => 'Analytics', - 'reduced_rate' => 'Reduced Rate', - 'tax_all' => 'Tax All', - 'tax_selected' => 'Tax Selected', - 'version' => 'version', - 'seller_subregion' => 'Seller Subregion', - 'calculate_taxes' => 'Calculate Taxes', - 'calculate_taxes_help' => 'Automatically calculate taxes when saving invoices', - 'link_expenses' => 'Link Expenses', - 'converted_client_balance' => 'Converted Client Balance', - 'converted_payment_balance' => 'Converted Payment Balance', - 'total_hours' => 'Total Hours', - 'date_picker_hint' => 'Use +days to set the date in the future', - 'app_help_link' => 'More information ', - 'here' => 'here', - 'industry_Restaurant & Catering' => 'Restaurant & Catering', - 'show_credits_table' => 'Show Credits Table', - 'manual_payment' => 'Payment Manual', - 'tax_summary_report' => 'Tax Summary Report', - 'tax_category' => 'Tax Category', - 'physical_goods' => 'Physical Goods', - 'digital_products' => 'Digital Products', - 'services' => 'Services', - 'shipping' => 'Shipping', - 'tax_exempt' => 'Tax Exempt', - 'late_fee_added_locked_invoice' => 'Late fee for invoice :invoice added on :date', - 'lang_Khmer' => 'Khmer', - 'routing_id' => 'Routing ID', - 'enable_e_invoice' => 'Enable E-Invoice', - 'e_invoice_type' => 'E-Invoice Type', - 'reduced_tax' => 'Reduced Tax', - 'override_tax' => 'Override Tax', - 'zero_rated' => 'Zero Rated', - 'reverse_tax' => 'Reverse Tax', - 'updated_tax_category' => 'Successfully updated the tax category', - 'updated_tax_categories' => 'Successfully updated the tax categories', - 'set_tax_category' => 'Set Tax Category', - 'payment_manual' => 'Payment Manual', - 'expense_payment_type' => 'Expense Payment Type', - 'payment_type_Cash App' => 'Cash App', - 'rename' => 'Rename', - 'renamed_document' => 'Successfully renamed document', - 'e_invoice' => 'E-Invoice', - 'light_dark_mode' => 'Light/Dark Mode', - 'activities' => 'Activities', - 'recent_transactions' => "Here are your company's most recent transactions:", - 'country_Palestine' => "Palestine", - 'country_Taiwan' => 'Taiwan', - 'duties' => 'Duties', - 'order_number' => 'Order Number', - 'order_id' => 'Order', - 'total_invoices_outstanding' => 'Total Invoices Outstanding', - 'recent_activity' => 'Recent Activity', - 'enable_auto_bill' => 'Enable auto billing', - 'email_count_invoices' => 'Email :count invoices', - 'invoice_task_item_description' => 'Invoice Task Item Description', - 'invoice_task_item_description_help' => 'Add the item description to the invoice line items', - 'next_send_time' => 'Next Send Time', - 'uploaded_certificate' => 'Successfully uploaded certificate', - 'certificate_set' => 'Certificate set', - 'certificate_not_set' => 'Certificate not set', - 'passphrase_set' => 'Passphrase set', - 'passphrase_not_set' => 'Passphrase not set', - 'upload_certificate' => 'Upload Certificate', - 'certificate_passphrase' => 'Certificate Passphrase', - 'valid_vat_number' => 'Valid VAT Number', - 'react_notification_link' => 'React Notification Links', - 'react_notification_link_help' => 'Admin emails will contain links to the react application', - 'show_task_billable' => 'Show Task Billable', - 'credit_item' => 'Credit Item', - 'drop_file_here' => 'Drop file here', - 'files' => 'Files', - 'camera' => 'Camera', - 'gallery' => 'Gallery', - 'project_location' => 'Project Location', - 'add_gateway_help_message' => 'Add a payment gateway (ie. Stripe, WePay or PayPal) to accept online payments', - 'lang_Hungarian' => 'Hungarian', - 'use_mobile_to_manage_plan' => 'Use your phone subscription settings to manage your plan', - 'item_tax3' => 'Item Tax3', - 'item_tax_rate1' => 'Item Tax Rate 1', - 'item_tax_rate2' => 'Item Tax Rate 2', - 'item_tax_rate3' => 'Item Tax Rate 3', - 'buy_price' => 'Buy Price', - 'country_Macedonia' => 'Macedonia', - 'admin_initiated_payments' => 'Admin Initiated Payments', - 'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice', - 'paid_date' => 'Paid Date', - 'downloaded_entities' => 'An email will be sent with the PDFs', - 'lang_French - Swiss' => 'French - Swiss', - 'currency_swazi_lilangeni' => 'Swazi Lilangeni', - 'income' => 'Income', - 'amount_received_help' => 'Enter a value here if the total amount received was MORE than the invoice amount, or when recording a payment with no invoices. Otherwise this field should be left blank.', - 'vendor_phone' => 'Vendor Phone', - 'mercado_pago' => 'Mercado Pago', - 'mybank' => 'MyBank', - 'paypal_paylater' => 'Pay in 4', - 'paid_date' => 'Paid Date', - 'district' => 'District', - 'region' => 'Region', - 'county' => 'County', - 'tax_details' => 'Tax Details', - 'activity_10_online' => ':contact entered payment :payment for invoice :invoice for :client', - 'activity_10_manual' => ':user entered payment :payment for invoice :invoice for :client', - 'default_payment_type' => 'Default Payment Type', - 'number_precision' => 'Number precision', - 'number_precision_help' => 'Controls the number of decimals supported in the interface', - 'is_tax_exempt' => 'Tax Exempt', - 'drop_files_here' => 'Drop files here', - 'upload_files' => 'Upload Files', - 'download_e_invoice' => 'Download E-Invoice', - 'triangular_tax_info' => 'Intra-community triangular transaction', - 'intracommunity_tax_info' => 'Tax-free intra-community delivery', - 'reverse_tax_info' => 'Please note that this supply is subject to reverse charge', - 'currency_nicaraguan_cordoba' => 'Nicaraguan Córdoba', - 'public' => 'Public', - 'private' => 'Private', - 'image' => 'Image', - 'other' => 'Other', - 'linked_to' => 'Linked To', - 'file_saved_in_path' => 'The file has been saved in :path', - 'unlinked_transactions' => 'Successfully unlinked :count transactions', - 'unlinked_transaction' => 'Successfully unlinked transaction', - 'view_dashboard_permission' => 'Allow user to access the dashboard, data is limited to available permissions', - 'marked_sent_credits' => 'Successfully marked credits sent', - 'show_document_preview' => 'Show Document Preview', - 'cash_accounting' => 'Cash accounting', - 'click_or_drop_files_here' => 'Click or drop files here', - 'set_public' => 'Set public', - 'set_private' => 'Set private', - 'individual' => 'Individual', - 'business' => 'Business', - 'partnership' => 'partnership', - 'trust' => 'Trust', - 'charity' => 'Charity', - 'government' => 'Government', - 'in_stock_quantity' => 'Stock quantity', - 'vendor_contact' => 'Vendor Contact', - + 'clone_to_purchase_order' => '克隆到 PO', + 'vendor_email_not_set' => '供應商沒有設定電子郵件地址', + 'bulk_send_email' => '發電子郵件', + 'marked_purchase_order_as_sent' => '已成功將採購訂單標記為已發送', + 'marked_purchase_orders_as_sent' => '已成功將採購訂單標記為已發送', + 'accepted_purchase_order' => '成功接受採購訂單', + 'accepted_purchase_orders' => '成功接受採購訂單', + 'cancelled_purchase_order' => '已成功取消採購訂單', + 'cancelled_purchase_orders' => '已成功取消採購訂單', + 'please_select_a_vendor' => '請選擇供應商', + 'purchase_order_total' => '採購訂單總計', + 'email_purchase_order' => '電子郵件採購訂單', + 'bulk_email_purchase_order' => '電子郵件採購訂單', + 'disconnected_email' => '成功斷開電子郵件連接', + 'connect_email' => '連線電子郵件', + 'disconnect_email' => '斷開電子郵件連接', + 'use_web_app_to_connect_microsoft' => '請使用網頁應用程式連接到 Microsoft', + 'email_provider' => '電子郵件提供者', + 'connect_microsoft' => '連接微軟', + 'disconnect_microsoft' => '斷開與微軟的連接', + 'connected_microsoft' => '已成功連接微軟', + 'disconnected_microsoft' => '已成功斷開 Microsoft 的連接', + 'microsoft_sign_in' => '使用微軟登入', + 'microsoft_sign_up' => '與微軟註冊', + 'emailed_purchase_order' => '已成功排隊待發送的採購訂單', + 'emailed_purchase_orders' => '已成功排隊待發送的採購訂單', + 'enable_react_app' => '變更為 React Web 應用程式', + 'purchase_order_design' => '採購訂單設計', + 'purchase_order_terms' => '採購訂單條款', + 'purchase_order_footer' => '採購訂單頁腳', + 'require_purchase_order_signature' => '採購訂單簽名', + 'require_purchase_order_signature_help' => '要求供應商提供簽名。', + 'new_purchase_order' => '新採購訂單', + 'edit_purchase_order' => '編輯採購訂單', + 'created_purchase_order' => '採購訂單建立成功', + 'updated_purchase_order' => '已成功更新採購訂單', + 'archived_purchase_order' => '已成功歸檔採購訂單', + 'deleted_purchase_order' => '已成功刪除採購訂單', + 'removed_purchase_order' => '已成功刪除採購訂單', + 'restored_purchase_order' => '已成功恢復採購訂單', + 'search_purchase_order' => '搜尋採購訂單', + 'search_purchase_orders' => '搜尋採購訂單', + 'login_url' => '登入網址', + 'enable_applying_payments' => '手動超額付款', + 'enable_applying_payments_help' => '支援在付款時手動添加多付金額', + 'stock_quantity' => '庫存數量', + 'notification_threshold' => '通知閾值', + 'track_inventory' => '追蹤庫存', + 'track_inventory_help' => '顯示產品庫存欄位並在發送發票時更新', + 'stock_notifications' => '庫存通知', + 'stock_notifications_help' => '庫存達到閾值時發送電子郵件', + 'vat' => '加值稅', + 'view_map' => '查看地圖', + 'set_default_design' => '設定預設設計', + 'purchase_order_issued_to' => '採購訂單發出至', + 'archive_task_status' => '存檔任務狀態', + 'delete_task_status' => '刪除任務狀態', + 'restore_task_status' => '恢復任務狀態', + 'lang_Hebrew' => '希伯來文', + 'price_change_accepted' => '接受價格變更', + 'price_change_failed' => '價格更改失敗並顯示代碼', + 'restore_purchases' => '恢復購買', + 'activate' => '啟用', + 'connect_apple' => '連接蘋果', + 'disconnect_apple' => '斷開蘋果連接', + 'disconnected_apple' => '成功斷開蘋果連接', + 'send_now' => '現在發送', + 'received' => '已收到', + 'converted_to_expense' => '成功轉為費用', + 'converted_to_expenses' => '成功轉為費用', + 'entity_removed' => '該文件已被刪除,請聯繫供應商以了解更多信息', + 'entity_removed_title' => '文件不再可用', + 'field' => '場地', + 'period' => '時期', + 'fields_per_row' => '每行字段數', + 'total_active_invoices' => '有效發票', + 'total_outstanding_invoices' => '過期未付支票', + 'total_completed_payments' => '已完成付款', + 'total_refunded_payments' => '退款', + 'total_active_quotes' => '活躍行情', + 'total_approved_quotes' => '核准的報價', + 'total_unapproved_quotes' => '未經批准的報價', + 'total_logged_tasks' => '記錄的任務', + 'total_invoiced_tasks' => '開立發票的任務', + 'total_paid_tasks' => '有償任務', + 'total_logged_expenses' => '記錄的費用', + 'total_pending_expenses' => '待處理費用', + 'total_invoiced_expenses' => '已開立發票的費用', + 'total_invoice_paid_expenses' => '發票支付費用', + 'vendor_portal' => '供應商入口網站', + 'send_code' => '傳送代碼', + 'save_to_upload_documents' => '儲存上傳文檔記錄', + 'expense_tax_rates' => '費用稅率', + 'invoice_item_tax_rates' => '發票項目稅率', + 'verified_phone_number' => '手機號碼驗證成功', + 'code_was_sent' => '代碼已透過簡訊發送', + 'resend' => '重發', + 'verify' => '核實', + 'enter_phone_number' => '請提供電話號碼', + 'invalid_phone_number' => '無效的電話號碼', + 'verify_phone_number' => '驗證電話號碼', + 'verify_phone_number_help' => '請驗證您的電話號碼以發送電子郵件', + 'merged_clients' => '成功合併客戶', + 'merge_into' => '合併到', + 'php81_required' => '注意:v5.5 需要 PHP 8.1', + 'bulk_email_purchase_orders' => '透過電子郵件發送採購訂單', + 'bulk_email_invoices' => '電子郵件發票', + 'bulk_email_quotes' => '電子郵件報價', + 'bulk_email_credits' => '電子郵件積分', + 'archive_purchase_order' => '存檔採購訂單', + 'restore_purchase_order' => '恢復採購訂單', + 'delete_purchase_order' => '刪除採購訂單', + 'connect' => '連接', + 'mark_paid_payment_email' => '標記已付款電子郵件', + 'convert_to_project' => '轉換為項目', + 'client_email' => '客戶信箱', + 'invoice_task_project' => '發票任務項目', + 'invoice_task_project_help' => '將項目新增至發票行項目', + 'bulk_action' => '批量操作', + 'phone_validation_error' => '該手機號碼無效,請以 E.164 格式輸入', + 'transaction' => '交易', + 'disable_2fa' => '停用 2FA', + 'change_number' => '更改號碼', + 'resend_code' => '重新發送驗證碼', + 'base_type' => '底座類型', + 'category_type' => '類別類型', + 'bank_transaction' => '交易', + 'bulk_print' => '列印 PDF', + 'vendor_postal_code' => '供應商郵遞區號', + 'preview_location' => '預覽地點', + 'bottom' => '底部', + 'side' => '邊', + 'pdf_preview' => 'PDF預覽', + 'long_press_to_select' => '長按選擇', + 'purchase_order_item' => '採購訂單項目', + 'would_you_rate_the_app' => '您想評價該應用程式嗎?', + 'include_deleted' => '包括已刪除', + 'include_deleted_help' => '在報告中包含已刪除的記錄', + 'due_on' => '由於上', + 'browser_pdf_viewer' => '使用瀏覽器 PDF 檢視器', + 'browser_pdf_viewer_help' => '警告:阻止透過 PDF 與應用程式交互', + 'converted_transactions' => '交易成功轉換', + 'default_category' => '預設類別', + 'connect_accounts' => '連接帳戶', + 'manage_rules' => '管理規則', + 'search_category' => '搜尋 1 類別', + 'search_categories' => '搜尋:count類別', + 'min_amount' => '最低金額', + 'max_amount' => '最大金額', + 'converted_transaction' => '交易成功轉換', + 'convert_to_payment' => '轉換為付款', + 'deposit' => '訂金', + 'withdrawal' => '退出', + 'deposits' => '存款', + 'withdrawals' => '提款', + 'matched' => '匹配的', + 'unmatched' => '無與倫比', + 'create_credit' => '創造信用', + 'transactions' => '交易', + 'new_transaction' => '新交易', + 'edit_transaction' => '編輯交易', + 'created_transaction' => '交易創建成功', + 'updated_transaction' => '交易更新成功', + 'archived_transaction' => '已成功存檔交易', + 'deleted_transaction' => '成功刪除交易', + 'removed_transaction' => '成功刪除交易', + 'restored_transaction' => '交易恢復成功', + 'search_transaction' => '搜尋交易', + 'search_transactions' => '搜尋:count交易', + 'deleted_bank_account' => '已成功刪除銀行帳戶', + 'removed_bank_account' => '已成功刪除銀行帳戶', + 'restored_bank_account' => '已成功恢復銀行帳戶', + 'search_bank_account' => '搜尋銀行帳戶', + 'search_bank_accounts' => '搜尋:count銀行帳戶', + 'code_was_sent_to' => '代碼已透過簡訊發送至:number', + 'verify_phone_number_2fa_help' => '請驗證您的電話號碼以進行 2FA 備份', + 'enable_applying_payments_later' => '啟用稍後申請付款', + 'line_item_tax_rates' => '行項目稅率', + 'show_tasks_in_client_portal' => '在客戶端入口網站中顯示任務', + 'notification_quote_expired_subject' => ':client的報價:invoice已過期', + 'notification_quote_expired' => '以下針對客戶:client和:amount的報價:invoice現已過期。', + 'auto_sync' => '自動同步', + 'refresh_accounts' => '刷新帳戶', + 'upgrade_to_connect_bank_account' => '升級至企業版以連結您的銀行帳戶', + 'click_here_to_connect_bank_account' => '按此連接您的銀行帳戶', + 'include_tax' => '含稅', + 'email_template_change' => '電子郵件範本正文可以更改', + 'task_update_authorization_error' => '權限不足,或者任務可能被鎖定', + 'cash_vs_accrual' => '權責發生製會計', + 'cash_vs_accrual_help' => '開啟權責發生製報告,關閉收付實現制報告。', + 'expense_paid_report' => '費用報告', + 'expense_paid_report_help' => '開啟時報告所有費用,關閉時僅報告已付費用', + 'online_payment_email_help' => '線上付款時發送電子郵件', + 'manual_payment_email_help' => '手動輸入付款時發送電子郵件', + 'mark_paid_payment_email_help' => '將發票標記為已付款時發送電子郵件', + 'linked_transaction' => '關聯交易成功', + 'link_payment' => '連結支付', + 'link_expense' => '鏈路費用', + 'lock_invoiced_tasks' => '鎖定開票任務', + 'lock_invoiced_tasks_help' => '防止任務在開立發票後被編輯', + 'registration_required_help' => '要求客戶註冊', + 'use_inventory_management' => '使用庫存管理', + 'use_inventory_management_help' => '要求產品有庫存', + 'optional_products' => '可選產品', + 'optional_recurring_products' => '可選的經常性產品', + 'convert_matched' => '轉變', + 'auto_billed_invoice' => '已成功排隊發票以自動計費', + 'auto_billed_invoices' => '已成功將發票排隊以自動計費', + 'operator' => '操作員', + 'value' => '價值', + 'is' => '是', + 'contains' => '包含', + 'starts_with' => '以。。開始', + 'is_empty' => '是空的', + 'add_rule' => '新增規則', + 'match_all_rules' => '符合所有規則', + 'match_all_rules_help' => '所有條件都需要符合才能應用規則', + 'auto_convert_help' => '自動將匹配交易轉換為費用', + 'rules' => '規則', + 'transaction_rule' => '交易規則', + 'transaction_rules' => '交易規則', + 'new_transaction_rule' => '新交易規則', + 'edit_transaction_rule' => '編輯交易規則', + 'created_transaction_rule' => '規則創建成功', + 'updated_transaction_rule' => '交易規則更新成功', + 'archived_transaction_rule' => '交易規則存檔成功', + 'deleted_transaction_rule' => '成功刪除交易規則', + 'removed_transaction_rule' => '成功刪除交易規則', + 'restored_transaction_rule' => '交易規則恢復成功', + 'search_transaction_rule' => '搜尋交易規則', + 'search_transaction_rules' => '搜尋交易規則', + 'payment_type_Interac E-Transfer' => 'Interac 電子轉賬', + 'delete_bank_account' => '刪除銀行帳戶', + 'archive_transaction' => '存檔交易', + 'delete_transaction' => '刪除交易', + 'otp_code_message' => '我們已將代碼發送至:email輸入此代碼以繼續。', + 'otp_code_subject' => '您的一次性密碼', + 'otp_code_body' => '您的一次性密碼是:code', + 'delete_tax_rate' => '刪除稅率', + 'restore_tax_rate' => '恢復稅率', + 'company_backup_file' => '選擇公司備份文件', + 'company_backup_file_help' => '請上傳用於建立此備份的 .zip 檔案。', + 'backup_restore' => '備份|恢復', + 'export_company' => '建立公司備份', + 'backup' => '備份', + 'notification_purchase_order_created_body' => '以下 buy_order :purchase_order是為:amount的供應商:vendor創建的。', + 'notification_purchase_order_created_subject' => '為:vendor建立採購訂單:purchase_order', + 'notification_purchase_order_sent_subject' => '採購訂單:purchase_order已發送至:vendor', + 'notification_purchase_order_sent' => '以下供應商:vendor透過電子郵件發送了:amount的採購訂單:purchase_order 。', + 'subscription_blocked' => '該產品屬於受限物品,請聯絡供應商以了解更多資訊。', + 'subscription_blocked_title' => '產品不可用。', + 'purchase_order_created' => '已建立採購訂單', + 'purchase_order_sent' => '採購訂單已發送', + 'purchase_order_viewed' => '查看採購訂單', + 'purchase_order_accepted' => '採購訂單已接受', + 'credit_payment_error' => '信用金額不能大於付款金額', + 'convert_payment_currency_help' => '輸入手動付款時設定匯率', + 'convert_expense_currency_help' => '創建費用時設定匯率', + 'matomo_url' => '馬托網址', + 'matomo_id' => '馬托莫 ID', + 'action_add_to_invoice' => '新增到發票', + 'danger_zone' => '危險區', + 'import_completed' => '導入完成', + 'client_statement_body' => '附上您從:start _date 到:end _date 的聲明。', + 'email_queued' => '電子郵件已排隊', + 'clone_to_recurring_invoice' => '克隆到定期發票', + 'inventory_threshold' => '庫存閾值', + 'emailed_statement' => '已成功排隊要傳送的語句', + 'show_email_footer' => '顯示電子郵件頁腳', + 'invoice_task_hours' => '發票任務時間', + 'invoice_task_hours_help' => '將小時數加入發票行項目', + 'auto_bill_standard_invoices' => '自動帳單標準發票', + 'auto_bill_recurring_invoices' => '自動開立定期發票', + 'email_alignment' => '電子郵件對齊', + 'pdf_preview_location' => 'PDF 預覽位置', + 'mailgun' => '郵件槍', + 'postmark' => '郵戳', + 'microsoft' => '微軟', + 'click_plus_to_create_record' => '點擊+建立記錄', + 'last365_days' => '過去 365 天', + 'import_design' => '導入設計', + 'imported_design' => '成功導入設計', + 'invalid_design' => '設計無效,缺:value部分', + 'setup_wizard_logo' => '您想上傳您的徽標嗎?', + 'installed_version' => '安裝版本', + 'notify_vendor_when_paid' => '付款後通知供應商', + 'notify_vendor_when_paid_help' => '當費用標記為已付款時,向供應商發送電子郵件', + 'update_payment' => '更新付款方式', + 'markup' => '標記', + 'unlock_pro' => '解鎖專業版', + 'upgrade_to_paid_plan_to_schedule' => '升級到付費計劃以創建時間表', + 'next_run' => '下次運行', + 'all_clients' => '所有客戶', + 'show_aging_table' => '顯示老化表', + 'show_payments_table' => '顯示付款表', + 'only_clients_with_invoices' => '僅限有發票的客戶', + 'email_statement' => '電子郵件聲明', + 'once' => '一次', + 'schedules' => '時間表', + 'new_schedule' => '新時間表', + 'edit_schedule' => '編輯日程', + 'created_schedule' => '已成功建立時間表', + 'updated_schedule' => '已成功更新時間表', + 'archived_schedule' => '已成功存檔時間表', + 'deleted_schedule' => '已成功刪除行程', + 'removed_schedule' => '已成功刪除行程', + 'restored_schedule' => '已成功復原行程', + 'search_schedule' => '搜尋時間表', + 'search_schedules' => '搜尋時間表', + 'update_product' => '更新產品', + 'create_purchase_order' => '建立採購訂單', + 'update_purchase_order' => '更新採購訂單', + 'sent_invoice' => '已發送發票', + 'sent_quote' => '已發送報價', + 'sent_credit' => '發送信用證', + 'sent_purchase_order' => '發送採購訂單', + 'image_url' => '圖片網址', + 'max_quantity' => '最大數量', + 'test_url' => '測試網址', + 'auto_bill_help_off' => '選項未顯示', + 'auto_bill_help_optin' => '顯示選項但未選擇', + 'auto_bill_help_optout' => '顯示並選擇選項', + 'auto_bill_help_always' => '選項未顯示', + 'view_all' => '看全部', + 'edit_all' => '全部編輯', + 'accept_purchase_order_number' => '接受採購訂單編號', + 'accept_purchase_order_number_help' => '使客戶能夠在批准報價時提供採購訂單編號', + 'from_email' => '來自電子郵件', + 'show_preview' => '顯示預覽', + 'show_paid_stamp' => '顯示付費郵票', + 'show_shipping_address' => '顯示送貨地址', + 'no_documents_to_download' => '所選記錄中沒有可供下載的文檔', + 'pixels' => '像素', + 'logo_size' => '標誌尺寸', + 'failed' => '失敗的', + 'client_contacts' => '客戶聯絡方式', + 'sync_from' => '同步自', + 'gateway_payment_text' => '發票: :invoice s(針對客戶:amount的:client )', + 'gateway_payment_text_no_invoice' => '客戶:client金額為:amount的無發票付款', + 'click_to_variables' => '按一下此處查看所有變數。', + 'ship_to' => '運送到', + 'stripe_direct_debit_details' => '請轉入以上指定的銀行帳戶。', + 'branch_name' => '分店名稱', + 'branch_code' => '分行代碼', + 'bank_name' => '銀行名', + 'bank_code' => '銀行代碼', + 'bic' => '商業銀行', + 'change_plan_description' => '升級或降級您目前的計劃。', + 'add_company_logo' => '添加徽標', + 'add_stripe' => '加入條紋', + 'invalid_coupon' => '優惠券無效', + 'no_assigned_tasks' => '該項目沒有計費任務', + 'authorization_failure' => '權限不足,無法執行此操作', + 'authorization_sms_failure' => '請驗證您的帳戶以發送電子郵件。', + 'white_label_body' => '感謝您購買白標許可證。

您的許可證密鑰是:

:license_key', + 'payment_type_Klarna' => '克拉納', + 'payment_type_Interac E Transfer' => 'Interac E 傳輸', + 'xinvoice_payable' => '在:payeddue天內支付,直至:paydate', + 'xinvoice_no_buyers_reference' => "沒有提供買家參考信息", + 'xinvoice_online_payment' => '發票需要透過提供的連結在線支付', + 'pre_payment' => '預付款', + 'number_of_payments' => '付款次數', + 'number_of_payments_helper' => '此付款的次數', + 'pre_payment_indefinitely' => '繼續直至取消', + 'notification_payment_emailed' => '付款:payment已透過電子郵件發送至:client', + 'notification_payment_emailed_subject' => '付款:payment已透過電子郵件發送', + 'record_not_found' => '找不到記錄', + 'minimum_payment_amount' => '最低付款金額', + 'client_initiated_payments' => '客戶發起的付款', + 'client_initiated_payments_help' => '支援在客戶入口網站中進行無發票付款', + 'share_invoice_quote_columns' => '共享發票/報價欄', + 'cc_email' => '副本電子郵件', + 'payment_balance' => '付款餘額', + 'view_report_permission' => '允許使用者存取報告,數據僅限於可用權限', + 'activity_138' => '付款:payment已透過電子郵件發送至:client', + 'one_time_products' => '一次性產品', + 'optional_one_time_products' => '可選的一次性產品', + 'required' => '必需的', + 'hidden' => '隱', + 'payment_links' => '付款連結', + 'payment_link' => '支付連結', + 'new_payment_link' => '新的付款連結', + 'edit_payment_link' => '編輯付款連結', + 'created_payment_link' => '付款連結建立成功', + 'updated_payment_link' => '付款連結已成功更新', + 'archived_payment_link' => '付款連結已成功存檔', + 'deleted_payment_link' => '已成功刪除付款鏈接', + 'removed_payment_link' => '已成功刪除付款鏈接', + 'restored_payment_link' => '付款連結已成功恢復', + 'search_payment_link' => '搜尋 1 條付款鏈接', + 'search_payment_links' => '搜尋:count付款鏈接', + 'increase_prices' => '提高價格', + 'update_prices' => '更新價格', + 'incresed_prices' => '成功排隊等待漲價', + 'updated_prices' => '已成功排隊等待更新價格', + 'api_token' => 'API令牌', + 'api_key' => 'API金鑰', + 'endpoint' => '端點', + 'not_billable' => '不可計費', + 'allow_billable_task_items' => '允許計費任務項目', + 'allow_billable_task_items_help' => '啟用配置對哪些任務項目進行計費', + 'show_task_item_description' => '顯示任務項目描述', + 'show_task_item_description_help' => '啟用指定任務項目描述', + 'email_record' => '郵件記錄', + 'invoice_product_columns' => '發票產品欄', + 'quote_product_columns' => '報價產品欄', + 'vendors' => '供應商', + 'product_sales' => '產品銷售', + 'user_sales_report_header' => '客戶:client從:start _date 到:end _date 的用戶銷售報告', + 'client_balance_report' => '客戶餘額報告', + 'client_sales_report' => '客戶銷售報告', + 'user_sales_report' => '用戶銷售報告', + 'aged_receivable_detailed_report' => '帳齡應收帳款詳細報告', + 'aged_receivable_summary_report' => '帳齡應收帳款總報告', + 'taxable_amount' => '應稅金額', + 'tax_summary' => '稅務摘要', + 'oauth_mail' => 'OAuth / 郵件', + 'preferences' => '優先', + 'analytics' => '分析', + 'reduced_rate' => '降低費率', + 'tax_all' => '全部徵稅', + 'tax_selected' => '已選擇稅', + 'version' => '版本', + 'seller_subregion' => '賣家分區', + 'calculate_taxes' => '計算稅金', + 'calculate_taxes_help' => '儲存發票時自動計算稅費', + 'link_expenses' => '連結費用', + 'converted_client_balance' => '轉換後的客戶餘額', + 'converted_payment_balance' => '轉換後的付款餘額', + 'total_hours' => '全部小時數', + 'date_picker_hint' => '使用 +days 設定未來的日期', + 'app_help_link' => '更多資訊', + 'here' => '這裡', + 'industry_Restaurant & Catering' => '餐廳及餐飲', + 'show_credits_table' => '顯示製作人員表', + 'manual_payment' => '付款手冊', + 'tax_summary_report' => '稅務匯總報告', + 'tax_category' => '稅種', + 'physical_goods' => '實體商品', + 'digital_products' => '數位產品', + 'services' => '服務', + 'shipping' => '船運', + 'tax_exempt' => '免稅', + 'late_fee_added_locked_invoice' => ':date上新增了發票:invoice的滯納金', + 'lang_Khmer' => '高棉語', + 'routing_id' => '路由ID', + 'enable_e_invoice' => '啟用電子發票', + 'e_invoice_type' => '電子發票類型', + 'reduced_tax' => '減稅', + 'override_tax' => '覆蓋稅', + 'zero_rated' => '零評級', + 'reverse_tax' => '反向稅', + 'updated_tax_category' => '已成功更新稅種', + 'updated_tax_categories' => '已成功更新稅種', + 'set_tax_category' => '設定稅種', + 'payment_manual' => '付款手冊', + 'expense_payment_type' => '費用支付類型', + 'payment_type_Cash App' => '現金應用程式', + 'rename' => '改名', + 'renamed_document' => '文檔重命名成功', + 'e_invoice' => '電子發票', + 'light_dark_mode' => '明/暗模式', + 'activities' => '活動', + 'recent_transactions' => "以下是貴公司最近的交易:", + 'country_Palestine' => "巴勒斯坦", + 'country_Taiwan' => '台灣', + 'duties' => '職責', + 'order_number' => '訂單編號', + 'order_id' => '命令', + 'total_invoices_outstanding' => '未清發票總額', + 'recent_activity' => '近期活動', + 'enable_auto_bill' => '啟用自動計費', + 'email_count_invoices' => '透過電子郵件發送:count發票', + 'invoice_task_item_description' => '發票任務項目說明', + 'invoice_task_item_description_help' => '將項目描述新增至發票行項目', + 'next_send_time' => '下次發送時間', + 'uploaded_certificate' => '憑證上傳成功', + 'certificate_set' => '憑證套', + 'certificate_not_set' => '證書未設定', + 'passphrase_set' => '密碼短語集', + 'passphrase_not_set' => '未設定密碼', + 'upload_certificate' => '上傳證書', + 'certificate_passphrase' => '證書密碼', + 'valid_vat_number' => '有效增值稅號', + 'react_notification_link' => '反應通知鏈接', + 'react_notification_link_help' => '管理員電子郵件將包含反應應用程式的鏈接', + 'show_task_billable' => '顯示可計費任務', + 'credit_item' => '信用項目', + 'drop_file_here' => '將文件拖放到此處', + 'files' => '文件', + 'camera' => '相機', + 'gallery' => '畫廊', + 'project_location' => '專案地點', + 'add_gateway_help_message' => '新增支付網關(即 Stripe、WePay 或 PayPal)以接受線上支付', + 'lang_Hungarian' => '匈牙利', + 'use_mobile_to_manage_plan' => '使用您的手機訂閱設定來管理您的計劃', + 'item_tax3' => '項目稅3', + 'item_tax_rate1' => '項目稅率1', + 'item_tax_rate2' => '項目稅率2', + 'item_tax_rate3' => '項目稅率3', + 'buy_price' => '購買價格', + 'country_Macedonia' => '馬其頓', + 'admin_initiated_payments' => '管理員發起付款', + 'admin_initiated_payments_help' => '支援在管理入口網站中輸入付款而無需發票', + 'paid_date' => '支付日期', + 'downloaded_entities' => '電子郵件將與 PDF 一起發送', + 'lang_French - Swiss' => '法語 - 瑞士語', + 'currency_swazi_lilangeni' => '史瓦濟蘭吉尼', + 'income' => '收入', + 'amount_received_help' => '如果收到的總金額大於發票金額,或記錄沒有發票的付款,請在此輸入一個值。否則該欄位應留空。', + 'vendor_phone' => '供應商電話', + 'mercado_pago' => '梅爾卡多帕戈', + 'mybank' => '網路商家', + 'paypal_paylater' => '4分之內付款', + 'paid_date' => '支付日期', + 'district' => '區', + 'region' => '地區', + 'county' => '縣', + 'tax_details' => '稅務詳情', + 'activity_10_online' => ':contact為:client的發票:payment輸入付款:invoice', + 'activity_10_manual' => ':user輸入了發票:payment的付款:invoice的:client', + 'default_payment_type' => '預設付款類型', + 'number_precision' => '數位精度', + 'number_precision_help' => '控制介面中支援的小數位數', + 'is_tax_exempt' => '免稅', + 'drop_files_here' => '將文件拖放到此處', + 'upload_files' => '上傳文件', + 'download_e_invoice' => '下載電子發票', + 'triangular_tax_info' => '社區內三角交易', + 'intracommunity_tax_info' => '免稅社區內配送', + 'reverse_tax_info' => '請注意,此電源可能會反向充電', + 'currency_nicaraguan_cordoba' => '尼加拉瓜科爾多瓦', + 'public' => '民眾', + 'private' => '私人的', + 'image' => '影像', + 'other' => '其他', + 'linked_to' => '連結到', + 'file_saved_in_path' => '文件已保存在 :path 中', + 'unlinked_transactions' => '已成功取消連結:count事務', + 'unlinked_transaction' => '成功取消關聯交易', + 'view_dashboard_permission' => '允許使用者存取儀表板,資料僅限於可用權限', + 'marked_sent_credits' => '已成功標記已發送的積分', + 'show_document_preview' => '顯示文件預覽', + 'cash_accounting' => '收付實現制會計', + 'click_or_drop_files_here' => '點擊或將檔案拖放到此處', + 'set_public' => '設定公開', + 'set_private' => '設定私人', + 'individual' => '個人', + 'business' => '商業', + 'partnership' => '合夥', + 'trust' => '相信', + 'charity' => '慈善機構', + 'government' => '政府', + 'in_stock_quantity' => '庫存數量', + 'vendor_contact' => '供應商聯絡方式', + 'expense_status_4' => '未付', + 'expense_status_5' => '有薪資的', + 'ziptax_help' => '注意:此功能需要 Zip-Tax API 金鑰才能按地址查找美國銷售稅', + 'cache_data' => '快取數據', + 'unknown' => '未知', + 'webhook_failure' => 'Webhook 失敗', + 'email_opened' => '電子郵件已開啟', + 'email_delivered' => '電子郵件已送達', + 'log' => '紀錄', + 'classification' => '分類', + 'stock_quantity_number' => '庫存:數量', + 'upcoming' => '即將推出', + 'client_contact' => '客戶聯繫', + 'uncategorized' => '未分類', + 'login_notification' => '登入通知', + 'login_notification_help' => '發送一封電子郵件,通知已登入。', + 'payment_refund_receipt' => '付款退款收據 # :number', + 'payment_receipt' => '付款收據 # :number', + 'load_template_description' => '此模板將應用於以下領域:', + 'run_template' => '運行模板', ); return $LANG; From 14ae0900aea36afb7a8ffcd3c5561a1445e9cd62 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 7 Nov 2023 08:23:51 +1100 Subject: [PATCH 03/31] add auto bill options for reports --- app/Export/CSV/BaseExport.php | 5 +++++ app/Export/CSV/InvoiceExport.php | 4 ++++ app/Export/CSV/RecurringInvoiceExport.php | 4 ++++ app/Jobs/Report/PreviewReport.php | 2 +- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/Export/CSV/BaseExport.php b/app/Export/CSV/BaseExport.php index be8660a24cd1..a05e61e7b19e 100644 --- a/app/Export/CSV/BaseExport.php +++ b/app/Export/CSV/BaseExport.php @@ -168,6 +168,7 @@ class BaseExport 'tax_rate2' => 'invoice.tax_rate2', 'tax_rate3' => 'invoice.tax_rate3', 'recurring_invoice' => 'invoice.recurring_id', + 'auto_bill' => 'invoice.auto_bill_enabled', ]; protected array $recurring_invoice_report_keys = [ @@ -208,6 +209,9 @@ class BaseExport 'tax_rate1' => 'recurring_invoice.tax_rate1', 'tax_rate2' => 'recurring_invoice.tax_rate2', 'tax_rate3' => 'recurring_invoice.tax_rate3', + 'auto_bill' => 'recurring_invoice.auto_bill', + 'auto_bill_enabled' => 'recurring_invoice.auto_bill_enabled', + ]; protected array $purchase_order_report_keys = [ @@ -287,6 +291,7 @@ class BaseExport 'is_amount_discount' => 'item.is_amount_discount', 'line_total' => 'item.line_total', 'gross_line_total' => 'item.gross_line_total', + 'tax_amount' => 'item.tax_amount', ]; protected array $quote_report_keys = [ diff --git a/app/Export/CSV/InvoiceExport.php b/app/Export/CSV/InvoiceExport.php index 4773ec3aa2de..02cadb7ffe70 100644 --- a/app/Export/CSV/InvoiceExport.php +++ b/app/Export/CSV/InvoiceExport.php @@ -147,6 +147,10 @@ class InvoiceExport extends BaseExport $entity['invoice.recurring_id'] = $invoice->recurring_invoice->number ?? ''; } + if (in_array('invoice.auto_bill_enabled', $this->input['report_keys'])) { + $entity['invoice.auto_bill_enabled'] = $invoice->auto_bill_enabled ? ctrans('texts.yes') : ctrans('texts.no'); + } + return $entity; } diff --git a/app/Export/CSV/RecurringInvoiceExport.php b/app/Export/CSV/RecurringInvoiceExport.php index b88601ba997b..02e51cac0380 100644 --- a/app/Export/CSV/RecurringInvoiceExport.php +++ b/app/Export/CSV/RecurringInvoiceExport.php @@ -153,6 +153,10 @@ class RecurringInvoiceExport extends BaseExport $entity['recurring_invoice.frequency_id'] = $invoice->frequencyForKey($invoice->frequency_id); } + if (in_array('recurring_invoice.auto_bill_enabled', $this->input['report_keys'])) { + $entity['recurring_invoice.auto_bill_enabled'] = $invoice->auto_bill_enabled ? ctrans('texts.yes') : ctrans('texts.no'); + } + return $entity; } } diff --git a/app/Jobs/Report/PreviewReport.php b/app/Jobs/Report/PreviewReport.php index 43fd133e888e..4177e0c20b99 100644 --- a/app/Jobs/Report/PreviewReport.php +++ b/app/Jobs/Report/PreviewReport.php @@ -44,7 +44,7 @@ class PreviewReport implements ShouldQueue else $report = $export->run(); - // nlog($report); + nlog($report); Cache::put($this->hash, $report, 60 * 60); } From ae6d4680ad210c65bbd0adc46fdd11344f10acd2 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 7 Nov 2023 12:10:16 +1100 Subject: [PATCH 04/31] Improvements for client balance / ledger adjustments --- app/Jobs/Ledger/UpdateLedger.php | 100 ++++++++++++++++++++++++++ app/Models/CompanyLedger.php | 4 +- app/Repositories/BaseRepository.php | 9 ++- app/Services/Client/ClientService.php | 21 ++++++ app/Services/Ledger/LedgerService.php | 15 ++++ 5 files changed, 144 insertions(+), 5 deletions(-) create mode 100644 app/Jobs/Ledger/UpdateLedger.php diff --git a/app/Jobs/Ledger/UpdateLedger.php b/app/Jobs/Ledger/UpdateLedger.php new file mode 100644 index 000000000000..bf4430990a8a --- /dev/null +++ b/app/Jobs/Ledger/UpdateLedger.php @@ -0,0 +1,100 @@ +db); + + $cl = CompanyLedger::find($this->company_ledger_id); + $entity = $cl->company_ledgerable; + $balance = $entity->calc()->getBalance(); + $cl->adjustment = $balance - $this->start_amount; + + $parent_ledger = CompanyLedger::query() + ->where('id', '<', $cl->id) + ->where('company_id', $cl->company_id) + ->where('client_id', $cl->client_id) + ->orderBy('id', 'DESC') + ->first(); + + $cl->balance = $parent_ledger ? $parent_ledger->balance + $cl->adjustment : 0; + $cl->save(); + + + // CompanyLedger::query() + // ->where('company_id', $cl->company_id) + // ->where('client_id', $cl->client_id) + // ->where('balance', 0) + // ->orderBy('updated_at', 'ASC') + // ->cursor() + // ->each(function ($company_ledger) { + + // $last_record = null; + + // if ($company_ledger->balance == 0) { + // $last_record = CompanyLedger::query() + // ->where('company_id', $company_ledger->company_id) + // ->where('client_id', $company_ledger->client_id) + // ->where('balance', '!=', 0) + // ->orderBy('id', 'DESC') + // ->first(); + + // if (! $last_record) { + // $last_record = CompanyLedger::query() + // ->where('company_id', $company_ledger->company_id) + // ->where('client_id', $company_ledger->client_id) + // ->orderBy('id', 'DESC') + // ->first(); + // } + // } + + // if($last_record) { + // $company_ledger->balance = $last_record->balance + $company_ledger->adjustment; + // $company_ledger->save(); + // } + // }); + + + } + + public function middleware() + { + return [(new WithoutOverlapping($this->company_key))->dontRelease()]; + } +} diff --git a/app/Models/CompanyLedger.php b/app/Models/CompanyLedger.php index 5b624e4a7903..caea1b0b9946 100644 --- a/app/Models/CompanyLedger.php +++ b/app/Models/CompanyLedger.php @@ -21,8 +21,8 @@ use Illuminate\Database\Eloquent\Model; * @property int|null $client_id * @property int|null $user_id * @property int|null $activity_id - * @property string|null $adjustment - * @property string|null $balance + * @property float|null $adjustment + * @property float|null $balance * @property string|null $notes * @property string|null $hash * @property int $company_ledgerable_id diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php index 2fc13b4ff3db..8442134a1702 100644 --- a/app/Repositories/BaseRepository.php +++ b/app/Repositories/BaseRepository.php @@ -290,10 +290,13 @@ nlog($model->toArray()); /* Perform model specific tasks */ if ($model instanceof Invoice) { - if (($state['finished_amount'] != $state['starting_amount']) && ($model->status_id != Invoice::STATUS_DRAFT)) { + if ($model->status_id != Invoice::STATUS_DRAFT) { + // if (($state['finished_amount'] != $state['starting_amount']) && ($model->status_id != Invoice::STATUS_DRAFT)) { $model->service()->updateStatus()->save(); - $model->client->service()->updateBalance(($state['finished_amount'] - $state['starting_amount']))->save(); - $model->ledger()->updateInvoiceBalance(($state['finished_amount'] - $state['starting_amount']), "Update adjustment for invoice {$model->number}"); + // $model->client->service()->updateBalance(($state['finished_amount'] - $state['starting_amount']))->save(); + $model->client->service()->calculateBalance(); + $model->ledger()->mutateInvoiceBalance($state['starting_amount'], "Update adjustment for invoice {$model->number} by {$state['starting_amount']}"); + // $model->ledger()->updateInvoiceBalance(($state['finished_amount'] - $state['starting_amount']), "Update adjustment for invoice {$model->number}"); } if (! $model->design_id) { diff --git a/app/Services/Client/ClientService.php b/app/Services/Client/ClientService.php index e8e39fb4cae1..5ac1f6e8f43b 100644 --- a/app/Services/Client/ClientService.php +++ b/app/Services/Client/ClientService.php @@ -11,6 +11,7 @@ namespace App\Services\Client; +use Carbon\Carbon; use App\Utils\Number; use App\Models\Client; use App\Models\Credit; @@ -34,6 +35,26 @@ class ClientService { } + public function calculateBalance() + { + $balance = Invoice::where('client_id', $this->client->id) + ->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]) + ->where('is_deleted', false) + ->sum('balance'); + + try { + DB::connection(config('database.default'))->transaction(function () use ($balance) { + $this->client = Client::withTrashed()->where('id', $this->client->id)->lockForUpdate()->first(); + $this->client->balance = $balance; + $this->client->saveQuietly(); + }, 2); + } catch (\Throwable $throwable) { + nlog("DB ERROR " . $throwable->getMessage()); + } + + return $this; + } + public function updateBalance(float $amount) { try { diff --git a/app/Services/Ledger/LedgerService.php b/app/Services/Ledger/LedgerService.php index d03945ad21db..376b8823d667 100644 --- a/app/Services/Ledger/LedgerService.php +++ b/app/Services/Ledger/LedgerService.php @@ -13,6 +13,7 @@ namespace App\Services\Ledger; use App\Factory\CompanyLedgerFactory; use App\Jobs\Ledger\ClientLedgerBalanceUpdate; +use App\Jobs\Ledger\UpdateLedger; use App\Models\Activity; class LedgerService @@ -24,6 +25,20 @@ class LedgerService $this->entity = $entity; } + public function mutateInvoiceBalance(float $start_amount, string $notes ='') + { + $company_ledger = CompanyLedgerFactory::create($this->entity->company_id, $this->entity->user_id); + $company_ledger->client_id = $this->entity->client_id; + $company_ledger->adjustment = 0; + $company_ledger->notes = $notes; + $company_ledger->activity_id = Activity::UPDATE_INVOICE; + $company_ledger->save(); + + $this->entity->company_ledger()->save($company_ledger); + + UpdateLedger::dispatch($company_ledger->id, $start_amount, $this->entity->company->company_key, $this->entity->company->db); + } + public function updateInvoiceBalance($adjustment, $notes = '') { $company_ledger = CompanyLedgerFactory::create($this->entity->company_id, $this->entity->user_id); From fbb42bd880decc3cce4521edd9c5679df7f7dc42 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 7 Nov 2023 02:08:24 +1100 Subject: [PATCH 05/31] Fixes for auth.net --- app/PaymentDrivers/Authorize/AuthorizeCreditCard.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/PaymentDrivers/Authorize/AuthorizeCreditCard.php b/app/PaymentDrivers/Authorize/AuthorizeCreditCard.php index be6dd72bca9a..5e4a7de222bf 100644 --- a/app/PaymentDrivers/Authorize/AuthorizeCreditCard.php +++ b/app/PaymentDrivers/Authorize/AuthorizeCreditCard.php @@ -46,6 +46,7 @@ class AuthorizeCreditCard $tokens = ClientGatewayToken::where('client_id', $this->authorize->client->id) ->where('company_gateway_id', $this->authorize->company_gateway->id) ->where('gateway_type_id', GatewayType::CREDIT_CARD) + ->orderBy('is_default', 'desc') ->get(); $data['tokens'] = $tokens; From 5e1d45436e34f1cc195a5a1fb0114d56ccc2a5dc Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 7 Nov 2023 14:54:44 +1100 Subject: [PATCH 06/31] Updates for ledger calculations --- app/Console/Commands/SendRemindersCron.php | 15 ++++--- app/Jobs/Ledger/UpdateLedger.php | 43 +++------------------ app/Jobs/Ninja/SendReminders.php | 7 +++- app/Jobs/Util/ReminderJob.php | 10 +++-- app/Repositories/BaseRepository.php | 7 +--- app/Services/Invoice/AddGatewayFee.php | 41 +++++++++++++------- app/Services/Invoice/HandleCancellation.php | 21 ++++++++-- app/Services/Invoice/HandleRestore.php | 5 ++- app/Services/Invoice/HandleReversal.php | 3 +- app/Services/Invoice/InvoiceService.php | 20 ++++++---- app/Services/Invoice/MarkSent.php | 13 +++++-- app/Services/Payment/DeletePayment.php | 10 +++-- app/Services/Payment/RefundPayment.php | 8 +++- 13 files changed, 113 insertions(+), 90 deletions(-) diff --git a/app/Console/Commands/SendRemindersCron.php b/app/Console/Commands/SendRemindersCron.php index ab55404fec2c..0aa8bf52dd37 100644 --- a/app/Console/Commands/SendRemindersCron.php +++ b/app/Console/Commands/SendRemindersCron.php @@ -174,17 +174,20 @@ class SendRemindersCron extends Command $invoice->calc()->getInvoice()->save(); $invoice->fresh(); // $invoice->service()->deletePdf()->save(); - if ($invoice->client->getSetting('enable_e_invoice')) { - $invoice->service()->deleteEInvoice()->save(); - } + // if ($invoice->client->getSetting('enable_e_invoice')) { + // $invoice->service()->deleteEInvoice()->save(); + // } /* Refresh the client here to ensure the balance is fresh */ $client = $invoice->client; $client = $client->fresh(); - nlog('adjusting client balance and invoice balance by '.($invoice->balance - $temp_invoice_balance)); - $client->service()->updateBalance($invoice->balance - $temp_invoice_balance)->save(); - $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); + $client->service()->calculateBalance(); + $invoice->ledger()->mutateInvoiceBalance($invoice->amount, "Update adjustment for invoice {$invoice->number}"); + + // nlog('adjusting client balance and invoice balance by '.($invoice->balance - $temp_invoice_balance)); + // $client->service()->updateBalance($invoice->balance - $temp_invoice_balance)->save(); + // $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); return $invoice; } diff --git a/app/Jobs/Ledger/UpdateLedger.php b/app/Jobs/Ledger/UpdateLedger.php index bf4430990a8a..54cda67b14f9 100644 --- a/app/Jobs/Ledger/UpdateLedger.php +++ b/app/Jobs/Ledger/UpdateLedger.php @@ -25,6 +25,7 @@ class UpdateLedger implements ShouldQueue use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public $tries = 1; + public $deleteWhenMissingModels = true; public function __construct(private int $company_ledger_id, private float $start_amount, private string $company_key, private string $db) @@ -39,6 +40,8 @@ class UpdateLedger implements ShouldQueue */ public function handle() :void { + nlog("Updating company ledger for client ". $this->company_ledger_id); + MultiDB::setDb($this->db); $cl = CompanyLedger::find($this->company_ledger_id); @@ -50,51 +53,17 @@ class UpdateLedger implements ShouldQueue ->where('id', '<', $cl->id) ->where('company_id', $cl->company_id) ->where('client_id', $cl->client_id) + ->where('balance', '!=', 0) ->orderBy('id', 'DESC') ->first(); - $cl->balance = $parent_ledger ? $parent_ledger->balance + $cl->adjustment : 0; + $cl->balance = ($parent_ledger ? $parent_ledger->balance : 0) + $cl->adjustment; $cl->save(); - - // CompanyLedger::query() - // ->where('company_id', $cl->company_id) - // ->where('client_id', $cl->client_id) - // ->where('balance', 0) - // ->orderBy('updated_at', 'ASC') - // ->cursor() - // ->each(function ($company_ledger) { - - // $last_record = null; - - // if ($company_ledger->balance == 0) { - // $last_record = CompanyLedger::query() - // ->where('company_id', $company_ledger->company_id) - // ->where('client_id', $company_ledger->client_id) - // ->where('balance', '!=', 0) - // ->orderBy('id', 'DESC') - // ->first(); - - // if (! $last_record) { - // $last_record = CompanyLedger::query() - // ->where('company_id', $company_ledger->company_id) - // ->where('client_id', $company_ledger->client_id) - // ->orderBy('id', 'DESC') - // ->first(); - // } - // } - - // if($last_record) { - // $company_ledger->balance = $last_record->balance + $company_ledger->adjustment; - // $company_ledger->save(); - // } - // }); - - } public function middleware() { - return [(new WithoutOverlapping($this->company_key))->dontRelease()]; + return [new WithoutOverlapping($this->company_key)]; } } diff --git a/app/Jobs/Ninja/SendReminders.php b/app/Jobs/Ninja/SendReminders.php index 884a555cf436..030ae3486c94 100644 --- a/app/Jobs/Ninja/SendReminders.php +++ b/app/Jobs/Ninja/SendReminders.php @@ -312,8 +312,11 @@ class SendReminders implements ShouldQueue /**Refresh Invoice values*/ $invoice = $invoice->calc()->getInvoice(); - $invoice->client->service()->updateBalance($invoice->balance - $temp_invoice_balance)->save(); - $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); +$invoice->client->service()->calculateBalance(); +$invoice->ledger()->mutateInvoiceBalance($invoice->amount, "Late Fee ({$fee}) Adjustment for invoice {$invoice->number}"); + + // $invoice->client->service()->updateBalance($invoice->balance - $temp_invoice_balance)->save(); + // $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); return $invoice; } diff --git a/app/Jobs/Util/ReminderJob.php b/app/Jobs/Util/ReminderJob.php index 6974e5825910..6f0bd6d17a65 100644 --- a/app/Jobs/Util/ReminderJob.php +++ b/app/Jobs/Util/ReminderJob.php @@ -307,9 +307,13 @@ class ReminderJob implements ShouldQueue /**Refresh Invoice values*/ $invoice = $invoice->calc()->getInvoice(); - nlog('adjusting client balance and invoice balance by #'.$invoice->number.' '.($invoice->balance - $temp_invoice_balance)); - $invoice->client->service()->updateBalance($invoice->balance - $temp_invoice_balance); - $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); + // nlog('adjusting client balance and invoice balance by #'.$invoice->number.' '.($invoice->balance - $temp_invoice_balance)); + // $invoice->client->service()->updateBalance($invoice->balance - $temp_invoice_balance); + // $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); + +$invoice->client->service()->calculateBalance(); +$invoice->ledger()->mutateInvoiceBalance($invoice->amount, "Late Fee ({$fee}) Adjustment for invoice {$invoice->number}"); + return $invoice; } diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php index 8442134a1702..6e7b3b471a96 100644 --- a/app/Repositories/BaseRepository.php +++ b/app/Repositories/BaseRepository.php @@ -199,7 +199,7 @@ class BaseRepository }); } } -nlog($model->toArray()); + $model->saveQuietly(); /* Model now persisted, now lets do some child tasks */ @@ -291,12 +291,9 @@ nlog($model->toArray()); /* Perform model specific tasks */ if ($model instanceof Invoice) { if ($model->status_id != Invoice::STATUS_DRAFT) { - // if (($state['finished_amount'] != $state['starting_amount']) && ($model->status_id != Invoice::STATUS_DRAFT)) { $model->service()->updateStatus()->save(); - // $model->client->service()->updateBalance(($state['finished_amount'] - $state['starting_amount']))->save(); $model->client->service()->calculateBalance(); - $model->ledger()->mutateInvoiceBalance($state['starting_amount'], "Update adjustment for invoice {$model->number} by {$state['starting_amount']}"); - // $model->ledger()->updateInvoiceBalance(($state['finished_amount'] - $state['starting_amount']), "Update adjustment for invoice {$model->number}"); + $model->ledger()->mutateInvoiceBalance($state['starting_amount'], "Update adjustment for invoice {$model->number}"); } if (! $model->design_id) { diff --git a/app/Services/Invoice/AddGatewayFee.php b/app/Services/Invoice/AddGatewayFee.php index 9716e558980f..fbc6a65bfc19 100644 --- a/app/Services/Invoice/AddGatewayFee.php +++ b/app/Services/Invoice/AddGatewayFee.php @@ -96,14 +96,19 @@ class AddGatewayFee extends AbstractService if (floatval($new_balance) - floatval($balance) != 0) { $adjustment = $new_balance - $balance; - $this->invoice - ->client - ->service() - ->updateBalance($adjustment); + // $this->invoice + // ->client + // ->service() + // ->updateBalance($adjustment); + + // $this->invoice + // ->ledger() + // ->updateInvoiceBalance($adjustment, 'Adjustment for adding gateway fee'); + +$this->invoice->client->service()->calculateBalance(); +$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment or Late Fee ({$adjustment}) Invoice {$this->invoice->number}"); + - $this->invoice - ->ledger() - ->updateInvoiceBalance($adjustment, 'Adjustment for adding gateway fee'); } return $this->invoice; @@ -142,15 +147,21 @@ class AddGatewayFee extends AbstractService if (floatval($new_balance) - floatval($balance) != 0) { $adjustment = $new_balance - $balance; - $this->invoice - ->client - ->service() - ->updateBalance($adjustment * -1) - ->save(); + // $this->invoice + // ->client + // ->service() + // ->updateBalance($adjustment * -1) + // ->save(); + + // $this->invoice + // ->ledger() + // ->updateInvoiceBalance($adjustment * -1, 'Adjustment for adding gateway DISCOUNT'); + + +$this->invoice->client->service()->calculateBalance(); +$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment or Late Fee (-{$adjustment}) Invoice {$this->invoice->number}"); + - $this->invoice - ->ledger() - ->updateInvoiceBalance($adjustment * -1, 'Adjustment for adding gateway DISCOUNT'); } return $this->invoice; diff --git a/app/Services/Invoice/HandleCancellation.php b/app/Services/Invoice/HandleCancellation.php index 2fcd20013fee..62b2ca60ac2e 100644 --- a/app/Services/Invoice/HandleCancellation.php +++ b/app/Services/Invoice/HandleCancellation.php @@ -39,12 +39,18 @@ class HandleCancellation extends AbstractService $this->backupCancellation($adjustment); //set invoice balance to 0 - $this->invoice->ledger()->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} cancellation"); + // $this->invoice->ledger()->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} cancellation"); $this->invoice->balance = 0; $this->invoice = $this->invoice->service()->setStatus(Invoice::STATUS_CANCELLED)->save(); - $this->invoice->client->service()->updateBalance($adjustment)->save(); + // $this->invoice->client->service()->updateBalance($adjustment)->save(); + + + +$this->invoice->client->service()->calculateBalance(); +$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment for cancellation of Invoice {$this->invoice->number}"); + $this->invoice->service()->workFlow()->save(); @@ -63,7 +69,13 @@ class HandleCancellation extends AbstractService /* Will turn the negative cancellation amount to a positive adjustment*/ $adjustment = $cancellation->adjustment * -1; - $this->invoice->ledger()->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} reversal"); + // $this->invoice->ledger()->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} reversal"); + + + + $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} reversal"); + + $this->invoice->fresh(); /* Reverse the invoice status and balance */ @@ -72,6 +84,9 @@ class HandleCancellation extends AbstractService $this->invoice->client->service()->updateBalance($adjustment)->save(); +$this->invoice->client->service()->calculateBalance(); + + /* Pop the cancellation out of the backup*/ $backup = $this->invoice->backup; unset($backup->cancellation); diff --git a/app/Services/Invoice/HandleRestore.php b/app/Services/Invoice/HandleRestore.php index ee1c94717a34..435234b898ac 100644 --- a/app/Services/Invoice/HandleRestore.php +++ b/app/Services/Invoice/HandleRestore.php @@ -49,8 +49,11 @@ class HandleRestore extends AbstractService } //adjust ledger balance - $this->invoice->ledger()->updateInvoiceBalance($this->invoice->balance, "Restored invoice {$this->invoice->number}")->save(); + // $this->invoice->ledger()->updateInvoiceBalance($this->invoice->balance, "Restored invoice {$this->invoice->number}")->save(); + $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Restored invoice {$this->invoice->number}"); + + //@todo $this->invoice->client ->service() ->updateBalanceAndPaidToDate($this->invoice->balance, $this->invoice->paid_to_date) diff --git a/app/Services/Invoice/HandleReversal.php b/app/Services/Invoice/HandleReversal.php index 2b1410950e12..1ccce45f9b18 100644 --- a/app/Services/Invoice/HandleReversal.php +++ b/app/Services/Invoice/HandleReversal.php @@ -67,7 +67,8 @@ class HandleReversal extends AbstractService /* Set invoice balance to 0 */ if ($this->invoice->balance != 0) { - $this->invoice->ledger()->updateInvoiceBalance($balance_remaining * -1, $notes)->save(); + // $this->invoice->ledger()->updateInvoiceBalance($balance_remaining * -1, $notes)->save(); + $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, $notes); } $this->invoice->balance = 0; diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php index e1947d9dbdbc..4d237e7a43c1 100644 --- a/app/Services/Invoice/InvoiceService.php +++ b/app/Services/Invoice/InvoiceService.php @@ -452,15 +452,19 @@ class InvoiceService if ((int) $pre_count != (int) $post_count) { $adjustment = $balance - $new_balance; - $this->invoice - ->client - ->service() - ->updateBalance($adjustment * -1) - ->save(); + // $this->invoice + // ->client + // ->service() + // ->updateBalance($adjustment * -1) + // ->save(); + + // $this->invoice + // ->ledger() + // ->updateInvoiceBalance($adjustment * -1, 'Adjustment for removing gateway fee'); + + $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment for removing gateway fee {$adjustment} Invoice {$this->invoice->number}"); + $this->invoice->client->service()->calculateBalance(); - $this->invoice - ->ledger() - ->updateInvoiceBalance($adjustment * -1, 'Adjustment for removing gateway fee'); } return $this; diff --git a/app/Services/Invoice/MarkSent.php b/app/Services/Invoice/MarkSent.php index 79c2fa3fbd82..f73e3fe65e3d 100644 --- a/app/Services/Invoice/MarkSent.php +++ b/app/Services/Invoice/MarkSent.php @@ -41,9 +41,14 @@ class MarkSent extends AbstractService ->save(); /*Update ledger*/ - $this->invoice - ->ledger() - ->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} marked as sent."); + // $this->invoice + // ->ledger() + // ->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} marked as sent."); + + +$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} marked as sent."); +$this->invoice->client->service()->calculateBalance(); + /* Perform additional actions on invoice */ $this->invoice @@ -54,7 +59,7 @@ class MarkSent extends AbstractService ->save(); /*Adjust client balance*/ - $this->invoice->client->service()->updateBalance($adjustment)->save(); + // $this->invoice->client->service()->updateBalance($adjustment)->save(); $this->invoice->markInvitationsSent(); diff --git a/app/Services/Payment/DeletePayment.php b/app/Services/Payment/DeletePayment.php index caac1125f57f..a9ba12f99123 100644 --- a/app/Services/Payment/DeletePayment.php +++ b/app/Services/Payment/DeletePayment.php @@ -97,10 +97,14 @@ class DeletePayment ->updatePaidToDate($net_deletable * -1) ->save(); - $paymentable_invoice->ledger() - ->updateInvoiceBalance($net_deletable, "Adjusting invoice {$paymentable_invoice->number} due to deletion of Payment {$this->payment->number}") - ->save(); + // $paymentable_invoice->ledger() + // ->updateInvoiceBalance($net_deletable, "Adjusting invoice {$paymentable_invoice->number} due to deletion of Payment {$this->payment->number}") + // ->save(); + $paymentable_invoice->ledger() + ->mutateInvoiceBalance($paymentable_invoice->amount, "Adjusting invoice {$paymentable_invoice->number} due to deletion of Payment {$this->payment->number}"); + + //@todo refactor $this->payment ->client ->service() diff --git a/app/Services/Payment/RefundPayment.php b/app/Services/Payment/RefundPayment.php index b06833eeff0d..c8b6fb9ec82b 100644 --- a/app/Services/Payment/RefundPayment.php +++ b/app/Services/Payment/RefundPayment.php @@ -290,9 +290,13 @@ class RefundPayment ->updatePaidToDate($refunded_invoice['amount'] * -1) ->save(); + // $invoice->ledger() + // ->updateInvoiceBalance($refunded_invoice['amount'], "Refund of payment # {$this->payment->number}") + // ->save(); + $invoice->ledger() - ->updateInvoiceBalance($refunded_invoice['amount'], "Refund of payment # {$this->payment->number}") - ->save(); + ->mutateInvoiceBalance($invoice->amount, "Refund of payment # {$this->payment->number}"); + if ($invoice->amount == $invoice->balance) { $invoice->service()->setStatus(Invoice::STATUS_SENT); From 1ba1b1b1a3f3605c2e18dc0f8183003749069401 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 7 Nov 2023 17:15:50 +1100 Subject: [PATCH 07/31] Improvements for payment idempotency --- app/Http/Requests/Payment/StorePaymentRequest.php | 6 ++++-- app/Jobs/Ledger/UpdateLedger.php | 2 +- app/Models/Payment.php | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/Payment/StorePaymentRequest.php b/app/Http/Requests/Payment/StorePaymentRequest.php index b110abcf38ec..c57a3e0c37ab 100644 --- a/app/Http/Requests/Payment/StorePaymentRequest.php +++ b/app/Http/Requests/Payment/StorePaymentRequest.php @@ -96,6 +96,10 @@ class StorePaymentRequest extends Request $input['date'] = now()->addSeconds($user->company()->timezone()->utc_offset)->format('Y-m-d'); } + if (! isset($input['idempotency_key'])) { + $input['idempotency_key'] = substr(sha1(json_encode($input)).time()."{$input['date']}{$input['amount']}{$input['client_id']}{$user->id}",0,64); + } + $this->replace($input); } @@ -106,7 +110,6 @@ class StorePaymentRequest extends Request $rules = [ 'amount' => ['numeric', 'bail', new PaymentAmountsBalanceRule(), new ValidCreditsPresentRule($this->all())], - // 'client_id' => 'bail|required|exists:clients,id', 'client_id' => 'bail|required|exists:clients,id,company_id,'.$user->company()->id.',is_deleted,0', 'invoices.*.invoice_id' => 'bail|required|distinct|exists:invoices,id', 'invoices.*.amount' => 'bail|required', @@ -117,7 +120,6 @@ class StorePaymentRequest extends Request 'invoices' => new ValidPayableInvoicesRule(), 'number' => ['nullable', 'bail', Rule::unique('payments')->where('company_id', $user->company()->id)], 'idempotency_key' => ['nullable', 'bail', 'string','max:64', Rule::unique('payments')->where('company_id', $user->company()->id)], - ]; if ($this->file('documents') && is_array($this->file('documents'))) { diff --git a/app/Jobs/Ledger/UpdateLedger.php b/app/Jobs/Ledger/UpdateLedger.php index 54cda67b14f9..aa870bde4b68 100644 --- a/app/Jobs/Ledger/UpdateLedger.php +++ b/app/Jobs/Ledger/UpdateLedger.php @@ -40,7 +40,7 @@ class UpdateLedger implements ShouldQueue */ public function handle() :void { - nlog("Updating company ledger for client ". $this->company_ledger_id); + // nlog("Updating company ledger for client ". $this->company_ledger_id); MultiDB::setDb($this->db); diff --git a/app/Models/Payment.php b/app/Models/Payment.php index 1f80aaed0a91..45e9f6bb3212 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -158,6 +158,7 @@ class Payment extends BaseModel 'custom_value3', 'custom_value4', 'category_id', + 'idempotency_key', ]; protected $casts = [ From 7de0cd99f1a015711499f4e9b684dbf0c91b4850 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 7 Nov 2023 17:39:56 +1100 Subject: [PATCH 08/31] Fixes for tests --- app/Http/Requests/Payment/StorePaymentRequest.php | 2 +- app/Jobs/Ledger/UpdateLedger.php | 4 ++++ tests/Feature/MultiPaymentDeleteTest.php | 1 + tests/Feature/PaymentTest.php | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/Http/Requests/Payment/StorePaymentRequest.php b/app/Http/Requests/Payment/StorePaymentRequest.php index c57a3e0c37ab..4c2788908b9a 100644 --- a/app/Http/Requests/Payment/StorePaymentRequest.php +++ b/app/Http/Requests/Payment/StorePaymentRequest.php @@ -97,7 +97,7 @@ class StorePaymentRequest extends Request } if (! isset($input['idempotency_key'])) { - $input['idempotency_key'] = substr(sha1(json_encode($input)).time()."{$input['date']}{$input['amount']}{$input['client_id']}{$user->id}",0,64); + $input['idempotency_key'] = substr(sha1(json_encode($input)).time()."{$input['date']}{$input['amount']}{$user->id}",0,64); } $this->replace($input); diff --git a/app/Jobs/Ledger/UpdateLedger.php b/app/Jobs/Ledger/UpdateLedger.php index aa870bde4b68..68eefe13afa1 100644 --- a/app/Jobs/Ledger/UpdateLedger.php +++ b/app/Jobs/Ledger/UpdateLedger.php @@ -45,6 +45,10 @@ class UpdateLedger implements ShouldQueue MultiDB::setDb($this->db); $cl = CompanyLedger::find($this->company_ledger_id); + + if(!$cl) + return; + $entity = $cl->company_ledgerable; $balance = $entity->calc()->getBalance(); $cl->adjustment = $balance - $this->start_amount; diff --git a/tests/Feature/MultiPaymentDeleteTest.php b/tests/Feature/MultiPaymentDeleteTest.php index 62df515c697e..8a13b2ec5f25 100644 --- a/tests/Feature/MultiPaymentDeleteTest.php +++ b/tests/Feature/MultiPaymentDeleteTest.php @@ -223,6 +223,7 @@ class MultiPaymentDeleteTest extends TestCase $data = [ 'amount' => 162.0, + 'transaction_reference' => 'something', 'client_id' => $this->encodePrimaryKey($client->id), 'invoices' => [ [ diff --git a/tests/Feature/PaymentTest.php b/tests/Feature/PaymentTest.php index fa05a5624fee..c51af9b87ad5 100644 --- a/tests/Feature/PaymentTest.php +++ b/tests/Feature/PaymentTest.php @@ -83,7 +83,7 @@ class PaymentTest extends TestCase ], ], 'date' => '2020/12/11', - 'idempotency_key' => 'dsjafhajklsfhlaksjdhlkajsdjdfjdfljasdfhkjlsafhljfkfhsjlfhiuwayerfiuwaskjgbzmvnjzxnjcbgfkjhdgfoiwwrasdfasdfkashjdfkaskfjdasfda' + 'idempotency_key' => sha1(time()).\Illuminate\Support\Str::uuid()->toString() ]; From 2c567a0d95202c91757fdc37a6361f2e14e3b286 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 7 Nov 2023 20:04:56 +1100 Subject: [PATCH 09/31] Minor fixeS --- app/Jobs/Ledger/UpdateLedger.php | 11 +++++++++-- app/Services/Invoice/MarkSent.php | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/Jobs/Ledger/UpdateLedger.php b/app/Jobs/Ledger/UpdateLedger.php index 68eefe13afa1..a86ad994da62 100644 --- a/app/Jobs/Ledger/UpdateLedger.php +++ b/app/Jobs/Ledger/UpdateLedger.php @@ -40,18 +40,25 @@ class UpdateLedger implements ShouldQueue */ public function handle() :void { - // nlog("Updating company ledger for client ". $this->company_ledger_id); + nlog("Updating company ledger for client ". $this->company_ledger_id); MultiDB::setDb($this->db); $cl = CompanyLedger::find($this->company_ledger_id); + $ledger_item = CompanyLedger::query() + ->where('company_id', $cl->company_id) + ->where('client_id', $cl->client_id) + ->where('company_ledgerable_id', $cl->company_ledgerable_id) + ->where('company_ledgerable_type', $cl->company_ledgerable_type) + ->exists(); + if(!$cl) return; $entity = $cl->company_ledgerable; $balance = $entity->calc()->getBalance(); - $cl->adjustment = $balance - $this->start_amount; + $cl->adjustment = $ledger_item ? $balance - $this->start_amount : $balance; $parent_ledger = CompanyLedger::query() ->where('id', '<', $cl->id) diff --git a/app/Services/Invoice/MarkSent.php b/app/Services/Invoice/MarkSent.php index f73e3fe65e3d..954e8e90d2d1 100644 --- a/app/Services/Invoice/MarkSent.php +++ b/app/Services/Invoice/MarkSent.php @@ -46,7 +46,7 @@ class MarkSent extends AbstractService // ->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} marked as sent."); -$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} marked as sent."); +$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} marked as sent => {$this->invoice->amount}"); $this->invoice->client->service()->calculateBalance(); From 2c5b94c474555b64bad70a2320db980e387e8736 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 7 Nov 2023 21:16:33 +1100 Subject: [PATCH 10/31] Ledger Tests --- app/Jobs/Ledger/UpdateLedger.php | 17 +++-- app/Services/Invoice/HandleCancellation.php | 9 +-- tests/Integration/CompanyLedgerTest.php | 76 ++++++++++++++++++--- 3 files changed, 79 insertions(+), 23 deletions(-) diff --git a/app/Jobs/Ledger/UpdateLedger.php b/app/Jobs/Ledger/UpdateLedger.php index a86ad994da62..5c464746fd39 100644 --- a/app/Jobs/Ledger/UpdateLedger.php +++ b/app/Jobs/Ledger/UpdateLedger.php @@ -46,19 +46,22 @@ class UpdateLedger implements ShouldQueue $cl = CompanyLedger::find($this->company_ledger_id); - $ledger_item = CompanyLedger::query() - ->where('company_id', $cl->company_id) - ->where('client_id', $cl->client_id) - ->where('company_ledgerable_id', $cl->company_ledgerable_id) - ->where('company_ledgerable_type', $cl->company_ledgerable_type) - ->exists(); + // $ledger_item = CompanyLedger::query() + // ->where('company_id', $cl->company_id) + // ->where('client_id', $cl->client_id) + // ->where('company_ledgerable_id', $cl->company_ledgerable_id) + // ->where('company_ledgerable_type', $cl->company_ledgerable_type) + // ->exists(); + $ledger_item = $cl->company_ledgerable->company_ledger()->count() == 1; + nlog($cl->company_ledgerable->company_ledger()->count()); + if(!$cl) return; $entity = $cl->company_ledgerable; $balance = $entity->calc()->getBalance(); - $cl->adjustment = $ledger_item ? $balance - $this->start_amount : $balance; + $cl->adjustment = $ledger_item ? $balance : ($balance - $this->start_amount); $parent_ledger = CompanyLedger::query() ->where('id', '<', $cl->id) diff --git a/app/Services/Invoice/HandleCancellation.php b/app/Services/Invoice/HandleCancellation.php index 62b2ca60ac2e..13ea7de5d03a 100644 --- a/app/Services/Invoice/HandleCancellation.php +++ b/app/Services/Invoice/HandleCancellation.php @@ -39,18 +39,13 @@ class HandleCancellation extends AbstractService $this->backupCancellation($adjustment); //set invoice balance to 0 - // $this->invoice->ledger()->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} cancellation"); + $this->invoice->ledger()->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} cancellation"); $this->invoice->balance = 0; $this->invoice = $this->invoice->service()->setStatus(Invoice::STATUS_CANCELLED)->save(); // $this->invoice->client->service()->updateBalance($adjustment)->save(); - - - -$this->invoice->client->service()->calculateBalance(); -$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment for cancellation of Invoice {$this->invoice->number}"); - + $this->invoice->client->service()->calculateBalance(); $this->invoice->service()->workFlow()->save(); diff --git a/tests/Integration/CompanyLedgerTest.php b/tests/Integration/CompanyLedgerTest.php index 789d13ae8a62..2a63c5cb21d7 100644 --- a/tests/Integration/CompanyLedgerTest.php +++ b/tests/Integration/CompanyLedgerTest.php @@ -11,21 +11,23 @@ namespace Tests\Integration; -use App\DataMapper\CompanySettings; -use App\Factory\CompanyUserFactory; -use App\Models\Account; +use Tests\TestCase; +use App\Models\User; use App\Models\Client; -use App\Models\ClientContact; +use App\Models\Account; use App\Models\Company; -use App\Models\CompanyToken; use App\Models\Invoice; use App\Models\Payment; -use App\Models\User; +use App\Models\CompanyToken; +use App\Models\ClientContact; +use App\DataMapper\InvoiceItem; use App\Utils\Traits\MakesHash; -use Illuminate\Foundation\Testing\DatabaseTransactions; +use App\DataMapper\CompanySettings; +use App\Factory\CompanyUserFactory; +use App\Jobs\Ledger\UpdateLedger; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; -use Tests\TestCase; +use Illuminate\Foundation\Testing\DatabaseTransactions; /** @test*/ class CompanyLedgerTest extends TestCase @@ -86,7 +88,7 @@ class CompanyLedgerTest extends TestCase $user = User::whereEmail($fake_email)->first(); - + if (! $user) { $user = User::factory()->create([ 'email' => $fake_email, @@ -95,6 +97,7 @@ class CompanyLedgerTest extends TestCase 'confirmation_code' => $this->createDbHash(config('database.default')), ]); } + $this->user = $user; $cu = CompanyUserFactory::create($user->id, $this->company->id, $this->account->id); $cu->is_owner = true; @@ -126,6 +129,61 @@ class CompanyLedgerTest extends TestCase ]); } + public function testLedgerAdjustments() + { + $c = Client::factory()->create([ + 'user_id' => $this->user->id, + 'company_id' => $this->company->id, + 'balance' => 0, + 'paid_to_date' => 0 + ]); + + $i = Invoice::factory()->create([ + 'client_id' => $c->id, + 'user_id' => $this->user->id, + 'company_id' => $this->company->id, + 'status_id' => Invoice::STATUS_DRAFT, + 'tax_name1' => '', + 'tax_name2' => '', + 'tax_name3' => '', + 'tax_rate1' => 0, + 'tax_rate2' => 0, + 'tax_rate3' => 0, + 'discount' => 0, + ]); + + $item = new InvoiceItem(); + $item->cost = 10; + $item->quantity = 10; + + $i->line_items = [$item]; + $i->calc()->getInvoice(); + + $this->assertEquals(0, $c->balance); + $this->assertEquals(100, $i->amount); + $this->assertEquals(0, $i->balance); + + $this->assertEquals(0, $i->company_ledger()->count()); + + $i->service()->markSent()->save(); + $i = $i->fresh(); + + // \Illuminate\Support\Facades\Bus::fake(); + // \Illuminate\Support\Facades\Bus::assertDispatched(UpdateLedger::class); + + $this->assertEquals(1, $i->company_ledger()->count()); + + $cl = $i->company_ledger()->first(); + (new UpdateLedger($cl->id, $i->amount, $i->company->company_key, $i->company->db))->handle(); + + + $cl = $cl->fresh(); + + $this->assertEquals(100, $cl->adjustment); + $this->assertEquals(100, $cl->balance); + + } + public function testBaseLine() { $this->assertEquals($this->company->invoices->count(), 0); From db826a6a34f762361a81858229770992e3c637b2 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 7 Nov 2023 21:58:52 +1100 Subject: [PATCH 11/31] Rollback for ledger adjustments --- app/Console/Commands/SendRemindersCron.php | 12 +----- app/Jobs/Ledger/UpdateLedger.php | 6 --- app/Jobs/Ninja/SendReminders.php | 5 +-- app/Jobs/Util/ReminderJob.php | 7 +--- app/Services/Invoice/AddGatewayFee.php | 21 ++++------- app/Services/Invoice/HandleCancellation.php | 8 ++-- app/Services/Invoice/HandleRestore.php | 4 +- app/Services/Invoice/HandleReversal.php | 4 +- app/Services/Invoice/InvoiceService.php | 8 ++-- app/Services/Invoice/MarkSent.php | 8 ++-- app/Services/Payment/DeletePayment.php | 10 ++--- app/Services/Payment/RefundPayment.php | 10 ++--- tests/Integration/CompanyLedgerTest.php | 42 +++++++++++++++------ 13 files changed, 69 insertions(+), 76 deletions(-) diff --git a/app/Console/Commands/SendRemindersCron.php b/app/Console/Commands/SendRemindersCron.php index 0aa8bf52dd37..76e6dc029286 100644 --- a/app/Console/Commands/SendRemindersCron.php +++ b/app/Console/Commands/SendRemindersCron.php @@ -172,22 +172,14 @@ class SendRemindersCron extends Command /**Refresh Invoice values*/ $invoice->calc()->getInvoice()->save(); - $invoice->fresh(); - // $invoice->service()->deletePdf()->save(); - // if ($invoice->client->getSetting('enable_e_invoice')) { - // $invoice->service()->deleteEInvoice()->save(); - // } + $invoice = $invoice->fresh(); /* Refresh the client here to ensure the balance is fresh */ $client = $invoice->client; $client = $client->fresh(); $client->service()->calculateBalance(); - $invoice->ledger()->mutateInvoiceBalance($invoice->amount, "Update adjustment for invoice {$invoice->number}"); - - // nlog('adjusting client balance and invoice balance by '.($invoice->balance - $temp_invoice_balance)); - // $client->service()->updateBalance($invoice->balance - $temp_invoice_balance)->save(); - // $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); + $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); return $invoice; } diff --git a/app/Jobs/Ledger/UpdateLedger.php b/app/Jobs/Ledger/UpdateLedger.php index 5c464746fd39..08d81c5785e2 100644 --- a/app/Jobs/Ledger/UpdateLedger.php +++ b/app/Jobs/Ledger/UpdateLedger.php @@ -46,12 +46,6 @@ class UpdateLedger implements ShouldQueue $cl = CompanyLedger::find($this->company_ledger_id); - // $ledger_item = CompanyLedger::query() - // ->where('company_id', $cl->company_id) - // ->where('client_id', $cl->client_id) - // ->where('company_ledgerable_id', $cl->company_ledgerable_id) - // ->where('company_ledgerable_type', $cl->company_ledgerable_type) - // ->exists(); $ledger_item = $cl->company_ledgerable->company_ledger()->count() == 1; nlog($cl->company_ledgerable->company_ledger()->count()); diff --git a/app/Jobs/Ninja/SendReminders.php b/app/Jobs/Ninja/SendReminders.php index 030ae3486c94..a83364dd2c33 100644 --- a/app/Jobs/Ninja/SendReminders.php +++ b/app/Jobs/Ninja/SendReminders.php @@ -312,11 +312,10 @@ class SendReminders implements ShouldQueue /**Refresh Invoice values*/ $invoice = $invoice->calc()->getInvoice(); -$invoice->client->service()->calculateBalance(); -$invoice->ledger()->mutateInvoiceBalance($invoice->amount, "Late Fee ({$fee}) Adjustment for invoice {$invoice->number}"); + $invoice->client->service()->calculateBalance(); // $invoice->client->service()->updateBalance($invoice->balance - $temp_invoice_balance)->save(); - // $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); + $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); return $invoice; } diff --git a/app/Jobs/Util/ReminderJob.php b/app/Jobs/Util/ReminderJob.php index 6f0bd6d17a65..b6f0c7b00580 100644 --- a/app/Jobs/Util/ReminderJob.php +++ b/app/Jobs/Util/ReminderJob.php @@ -309,11 +309,8 @@ class ReminderJob implements ShouldQueue // nlog('adjusting client balance and invoice balance by #'.$invoice->number.' '.($invoice->balance - $temp_invoice_balance)); // $invoice->client->service()->updateBalance($invoice->balance - $temp_invoice_balance); - // $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); - -$invoice->client->service()->calculateBalance(); -$invoice->ledger()->mutateInvoiceBalance($invoice->amount, "Late Fee ({$fee}) Adjustment for invoice {$invoice->number}"); - + $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); + $invoice->client->service()->calculateBalance(); return $invoice; } diff --git a/app/Services/Invoice/AddGatewayFee.php b/app/Services/Invoice/AddGatewayFee.php index fbc6a65bfc19..b91ef03e6851 100644 --- a/app/Services/Invoice/AddGatewayFee.php +++ b/app/Services/Invoice/AddGatewayFee.php @@ -101,13 +101,11 @@ class AddGatewayFee extends AbstractService // ->service() // ->updateBalance($adjustment); - // $this->invoice - // ->ledger() - // ->updateInvoiceBalance($adjustment, 'Adjustment for adding gateway fee'); - -$this->invoice->client->service()->calculateBalance(); -$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment or Late Fee ({$adjustment}) Invoice {$this->invoice->number}"); + $this->invoice + ->ledger() + ->updateInvoiceBalance($adjustment, 'Adjustment for adding gateway fee'); + $this->invoice->client->service()->calculateBalance(); } @@ -153,14 +151,11 @@ $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustme // ->updateBalance($adjustment * -1) // ->save(); - // $this->invoice - // ->ledger() - // ->updateInvoiceBalance($adjustment * -1, 'Adjustment for adding gateway DISCOUNT'); - - -$this->invoice->client->service()->calculateBalance(); -$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment or Late Fee (-{$adjustment}) Invoice {$this->invoice->number}"); + $this->invoice + ->ledger() + ->updateInvoiceBalance($adjustment * -1, 'Adjustment for adding gateway DISCOUNT'); + $this->invoice->client->service()->calculateBalance(); } diff --git a/app/Services/Invoice/HandleCancellation.php b/app/Services/Invoice/HandleCancellation.php index 13ea7de5d03a..85b2eee73168 100644 --- a/app/Services/Invoice/HandleCancellation.php +++ b/app/Services/Invoice/HandleCancellation.php @@ -34,7 +34,7 @@ class HandleCancellation extends AbstractService return $this->invoice; } - $adjustment = $this->invoice->balance * -1; + $adjustment =($this->invoice->balance < 0) ? abs($this->invoice->balance) : $this->invoice->balance * -1; $this->backupCancellation($adjustment); @@ -64,11 +64,9 @@ class HandleCancellation extends AbstractService /* Will turn the negative cancellation amount to a positive adjustment*/ $adjustment = $cancellation->adjustment * -1; - // $this->invoice->ledger()->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} reversal"); + $this->invoice->ledger()->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} reversal"); - - - $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} reversal"); + // $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} reversal"); $this->invoice->fresh(); diff --git a/app/Services/Invoice/HandleRestore.php b/app/Services/Invoice/HandleRestore.php index 435234b898ac..823301fb9ce3 100644 --- a/app/Services/Invoice/HandleRestore.php +++ b/app/Services/Invoice/HandleRestore.php @@ -49,9 +49,9 @@ class HandleRestore extends AbstractService } //adjust ledger balance - // $this->invoice->ledger()->updateInvoiceBalance($this->invoice->balance, "Restored invoice {$this->invoice->number}")->save(); + $this->invoice->ledger()->updateInvoiceBalance($this->invoice->balance, "Restored invoice {$this->invoice->number}")->save(); - $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Restored invoice {$this->invoice->number}"); + // $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Restored invoice {$this->invoice->number}"); //@todo $this->invoice->client diff --git a/app/Services/Invoice/HandleReversal.php b/app/Services/Invoice/HandleReversal.php index 1ccce45f9b18..4c3076fd6204 100644 --- a/app/Services/Invoice/HandleReversal.php +++ b/app/Services/Invoice/HandleReversal.php @@ -67,8 +67,8 @@ class HandleReversal extends AbstractService /* Set invoice balance to 0 */ if ($this->invoice->balance != 0) { - // $this->invoice->ledger()->updateInvoiceBalance($balance_remaining * -1, $notes)->save(); - $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, $notes); + $this->invoice->ledger()->updateInvoiceBalance($balance_remaining * -1, $notes)->save(); + // $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, $notes); } $this->invoice->balance = 0; diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php index 4d237e7a43c1..8e1d2d8138da 100644 --- a/app/Services/Invoice/InvoiceService.php +++ b/app/Services/Invoice/InvoiceService.php @@ -458,11 +458,11 @@ class InvoiceService // ->updateBalance($adjustment * -1) // ->save(); - // $this->invoice - // ->ledger() - // ->updateInvoiceBalance($adjustment * -1, 'Adjustment for removing gateway fee'); + $this->invoice + ->ledger() + ->updateInvoiceBalance($adjustment * -1, 'Adjustment for removing gateway fee'); - $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment for removing gateway fee {$adjustment} Invoice {$this->invoice->number}"); + // $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment for removing gateway fee {$adjustment} Invoice {$this->invoice->number}"); $this->invoice->client->service()->calculateBalance(); } diff --git a/app/Services/Invoice/MarkSent.php b/app/Services/Invoice/MarkSent.php index 954e8e90d2d1..b9541b04b4cf 100644 --- a/app/Services/Invoice/MarkSent.php +++ b/app/Services/Invoice/MarkSent.php @@ -41,12 +41,12 @@ class MarkSent extends AbstractService ->save(); /*Update ledger*/ - // $this->invoice - // ->ledger() - // ->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} marked as sent."); + $this->invoice + ->ledger() + ->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} marked as sent."); -$this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} marked as sent => {$this->invoice->amount}"); +// $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} marked as sent => {$this->invoice->amount}"); $this->invoice->client->service()->calculateBalance(); diff --git a/app/Services/Payment/DeletePayment.php b/app/Services/Payment/DeletePayment.php index a9ba12f99123..1d7295b43661 100644 --- a/app/Services/Payment/DeletePayment.php +++ b/app/Services/Payment/DeletePayment.php @@ -97,12 +97,12 @@ class DeletePayment ->updatePaidToDate($net_deletable * -1) ->save(); - // $paymentable_invoice->ledger() - // ->updateInvoiceBalance($net_deletable, "Adjusting invoice {$paymentable_invoice->number} due to deletion of Payment {$this->payment->number}") - // ->save(); - $paymentable_invoice->ledger() - ->mutateInvoiceBalance($paymentable_invoice->amount, "Adjusting invoice {$paymentable_invoice->number} due to deletion of Payment {$this->payment->number}"); + ->updateInvoiceBalance($net_deletable, "Adjusting invoice {$paymentable_invoice->number} due to deletion of Payment {$this->payment->number}") + ->save(); + + // $paymentable_invoice->ledger() + // ->mutateInvoiceBalance($paymentable_invoice->amount, "Adjusting invoice {$paymentable_invoice->number} due to deletion of Payment {$this->payment->number}"); //@todo refactor $this->payment diff --git a/app/Services/Payment/RefundPayment.php b/app/Services/Payment/RefundPayment.php index c8b6fb9ec82b..b12210375d4f 100644 --- a/app/Services/Payment/RefundPayment.php +++ b/app/Services/Payment/RefundPayment.php @@ -290,12 +290,12 @@ class RefundPayment ->updatePaidToDate($refunded_invoice['amount'] * -1) ->save(); - // $invoice->ledger() - // ->updateInvoiceBalance($refunded_invoice['amount'], "Refund of payment # {$this->payment->number}") - // ->save(); - $invoice->ledger() - ->mutateInvoiceBalance($invoice->amount, "Refund of payment # {$this->payment->number}"); + ->updateInvoiceBalance($refunded_invoice['amount'], "Refund of payment # {$this->payment->number}") + ->save(); + + // $invoice->ledger() + // ->mutateInvoiceBalance($invoice->amount, "Refund of payment # {$this->payment->number}"); if ($invoice->amount == $invoice->balance) { diff --git a/tests/Integration/CompanyLedgerTest.php b/tests/Integration/CompanyLedgerTest.php index 2a63c5cb21d7..09ef9929590c 100644 --- a/tests/Integration/CompanyLedgerTest.php +++ b/tests/Integration/CompanyLedgerTest.php @@ -20,11 +20,12 @@ use App\Models\Invoice; use App\Models\Payment; use App\Models\CompanyToken; use App\Models\ClientContact; +use App\Models\CompanyLedger; use App\DataMapper\InvoiceItem; use App\Utils\Traits\MakesHash; +use App\Jobs\Ledger\UpdateLedger; use App\DataMapper\CompanySettings; use App\Factory\CompanyUserFactory; -use App\Jobs\Ledger\UpdateLedger; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; use Illuminate\Foundation\Testing\DatabaseTransactions; @@ -165,22 +166,39 @@ class CompanyLedgerTest extends TestCase $this->assertEquals(0, $i->company_ledger()->count()); - $i->service()->markSent()->save(); - $i = $i->fresh(); + // $i->service()->markSent()->save(); + // $i = $i->fresh(); - // \Illuminate\Support\Facades\Bus::fake(); - // \Illuminate\Support\Facades\Bus::assertDispatched(UpdateLedger::class); + // // \Illuminate\Support\Facades\Bus::fake(); + // // \Illuminate\Support\Facades\Bus::assertDispatched(UpdateLedger::class); - $this->assertEquals(1, $i->company_ledger()->count()); + // $this->assertEquals(1, $i->company_ledger()->count()); - $cl = $i->company_ledger()->first(); - (new UpdateLedger($cl->id, $i->amount, $i->company->company_key, $i->company->db))->handle(); + // $cl = $i->company_ledger()->first(); + // (new UpdateLedger($cl->id, $i->amount, $i->company->company_key, $i->company->db))->handle(); + + // $cl = $cl->fresh(); + + // $this->assertEquals(100, $cl->adjustment); + // $this->assertEquals(100, $cl->balance); + + // $i->service()->applyPaymentAmount(40, "notes")->save(); + // $i = $i->fresh(); + + // $cl = CompanyLedger::where('client_id', $i->client_id) + // ->orderBy('id', 'desc') + // ->first(); + + // $cl = $i->company_ledger()->orderBy('id','desc')->first(); + // (new UpdateLedger($cl->id, $i->amount, $i->company->company_key, $i->company->db))->handle(); + // $cl = $cl->fresh(); + + // nlog($cl->toArray()); + + // $this->assertEquals(-40, $cl->adjustment); + // $this->assertEquals(60, $cl->balance); - - $cl = $cl->fresh(); - $this->assertEquals(100, $cl->adjustment); - $this->assertEquals(100, $cl->balance); } From 4897c7ec8cc5182270eb7c7db798b7daeab2ffd8 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 08:21:47 +1100 Subject: [PATCH 12/31] Stubs for token auth --- routes/client.php | 12 ++++++------ routes/vendor.php | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/routes/client.php b/routes/client.php index 7960f0e812f8..a90635f922cf 100644 --- a/routes/client.php +++ b/routes/client.php @@ -126,12 +126,12 @@ Route::group(['middleware' => ['invite_db'], 'prefix' => 'client', 'as' => 'clie Route::get('invoice/{invitation_key}', [App\Http\Controllers\ClientPortal\InvitationController::class, 'invoiceRouter']); Route::get('quote/{invitation_key}', [App\Http\Controllers\ClientPortal\InvitationController::class, 'quoteRouter']); Route::get('credit/{invitation_key}', [App\Http\Controllers\ClientPortal\InvitationController::class, 'creditRouter']); - Route::get('recurring_invoice/{invitation_key}/download_pdf', [RecurringInvoiceController::class, 'downloadPdf'])->name('recurring_invoice.download_invitation_key'); - Route::get('invoice/{invitation_key}/download_pdf', [InvoiceController::class, 'downloadPdf'])->name('invoice.download_invitation_key'); - Route::get('invoice/{invitation_key}/download_e_invoice', [InvoiceController::class, 'downloadEInvoice'])->name('invoice.download_e_invoice'); - Route::get('quote/{invitation_key}/download_pdf', [QuoteController::class, 'downloadPdf'])->name('quote.download_invitation_key'); - Route::get('credit/{invitation_key}/download_pdf', [CreditController::class, 'downloadPdf'])->name('credit.download_invitation_key'); - Route::get('{entity}/{invitation_key}/download', [App\Http\Controllers\ClientPortal\InvitationController::class, 'routerForDownload']); + Route::get('recurring_invoice/{invitation_key}/download_pdf', [RecurringInvoiceController::class, 'downloadPdf'])->name('recurring_invoice.download_invitation_key');//->middleware('token_auth'); + Route::get('invoice/{invitation_key}/download_pdf', [InvoiceController::class, 'downloadPdf'])->name('invoice.download_invitation_key');//->middleware('token_auth'); + Route::get('invoice/{invitation_key}/download_e_invoice', [InvoiceController::class, 'downloadEInvoice'])->name('invoice.download_e_invoice');//->middleware('token_auth'); + Route::get('quote/{invitation_key}/download_pdf', [QuoteController::class, 'downloadPdf'])->name('quote.download_invitation_key');//->middleware('token_auth'); + Route::get('credit/{invitation_key}/download_pdf', [CreditController::class, 'downloadPdf'])->name('credit.download_invitation_key');//->middleware('token_auth'); + Route::get('{entity}/{invitation_key}/download', [App\Http\Controllers\ClientPortal\InvitationController::class, 'routerForDownload']);//->middleware('token_auth'); Route::get('pay/{invitation_key}', [App\Http\Controllers\ClientPortal\InvitationController::class, 'payInvoice'])->name('pay.invoice'); Route::get('unsubscribe/{entity}/{invitation_key}', [App\Http\Controllers\ClientPortal\InvitationController::class, 'unsubscribe'])->name('unsubscribe'); diff --git a/routes/vendor.php b/routes/vendor.php index b41c258f1d20..ef4c44fc366b 100644 --- a/routes/vendor.php +++ b/routes/vendor.php @@ -24,7 +24,7 @@ Route::get('vendor/key_login/{contact_key}', [VendorContactHashLoginController:: Route::group(['middleware' => ['invite_db'], 'prefix' => 'vendor', 'as' => 'vendor.'], function () { /*Invitation catches*/ Route::get('purchase_order/{invitation_key}', [InvitationController::class, 'purchaseOrder']); - Route::get('purchase_order/{invitation_key}/download', [InvitationController::class, 'download']); + Route::get('purchase_order/{invitation_key}/download', [InvitationController::class, 'download']);//->middleware('token_auth'); }); Route::group(['middleware' => ['auth:vendor', 'vendor_locale', 'domain_db'], 'prefix' => 'vendor', 'as' => 'vendor.'], function () { From 3e59c71379221199c32a779b7222e7775b94ec45 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 08:22:37 +1100 Subject: [PATCH 13/31] Updates for translations: --- routes/client.php | 1 - 1 file changed, 1 deletion(-) diff --git a/routes/client.php b/routes/client.php index a90635f922cf..61c0aeb7e6c7 100644 --- a/routes/client.php +++ b/routes/client.php @@ -119,7 +119,6 @@ Route::get('payments/process/response', [App\Http\Controllers\ClientPortal\Payme Route::get('client/subscriptions/{subscription}/purchase', [App\Http\Controllers\ClientPortal\SubscriptionPurchaseController::class, 'index'])->name('client.subscription.purchase')->middleware('domain_db'); Route::get('client/subscriptions/{subscription}/purchase/v2', [App\Http\Controllers\ClientPortal\SubscriptionPurchaseController::class, 'upgrade'])->name('client.subscription.upgrade')->middleware('domain_db'); - Route::group(['middleware' => ['invite_db'], 'prefix' => 'client', 'as' => 'client.'], function () { /*Invitation catches*/ Route::get('recurring_invoice/{invitation_key}', [App\Http\Controllers\ClientPortal\InvitationController::class, 'recurringRouter']); From cd5efeb91367edd5cc2bad51e540e76e356e0bce Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 08:59:49 +1100 Subject: [PATCH 14/31] Request filtering for Client Statements --- .../ClientPortal/Statements/ShowStatementRequest.php | 6 +++++- app/Services/Client/Statement.php | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Http/Requests/ClientPortal/Statements/ShowStatementRequest.php b/app/Http/Requests/ClientPortal/Statements/ShowStatementRequest.php index 01ad16230e82..4430b2655600 100644 --- a/app/Http/Requests/ClientPortal/Statements/ShowStatementRequest.php +++ b/app/Http/Requests/ClientPortal/Statements/ShowStatementRequest.php @@ -25,7 +25,11 @@ class ShowStatementRequest extends FormRequest public function rules() { return [ - // + 'start_date' => 'sometimes|nullable|date', + 'end_date' => 'sometimes|nullable|date', + 'show_payments_table' => 'sometimes|nullable|boolean', + 'show_aging_table' => 'sometimes|nullable|boolean', + 'show_credits_table' => 'sometimes|nullable|boolean', ]; } diff --git a/app/Services/Client/Statement.php b/app/Services/Client/Statement.php index 1fd06f81434e..ded85ac4b47f 100644 --- a/app/Services/Client/Statement.php +++ b/app/Services/Client/Statement.php @@ -54,6 +54,7 @@ class Statement public function run() :?string { + $this ->setupOptions() ->setupEntity(); From 7328a2ff7a6d4125847a72b897270a60b1beb5b7 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 15:19:30 +1100 Subject: [PATCH 15/31] Working on ledger balances --- app/Jobs/Ledger/ClientLedgerBalanceUpdate.php | 85 +++++++++++++++---- app/Jobs/Ledger/UpdateLedger.php | 1 + app/Repositories/BaseRepository.php | 4 +- app/Services/Invoice/HandleCancellation.php | 5 +- app/Services/Invoice/HandleRestore.php | 2 - app/Services/Invoice/HandleReversal.php | 1 - app/Services/Invoice/InvoiceService.php | 1 - app/Services/Invoice/MarkSent.php | 5 +- app/Services/Ledger/LedgerService.php | 50 ++++++----- app/Services/Payment/DeletePayment.php | 3 - app/Services/Payment/RefundPayment.php | 4 - 11 files changed, 103 insertions(+), 58 deletions(-) diff --git a/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php b/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php index 29d780bfabb8..639fd2be3370 100644 --- a/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php +++ b/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php @@ -25,8 +25,13 @@ use Illuminate\Queue\SerializesModels; class ClientLedgerBalanceUpdate implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; + public $tries = 1; + public $deleteWhenMissingModels = true; + + private ?CompanyLedger $next_balance_record; + public function __construct(public Company $company, public Client $client) { } @@ -39,34 +44,78 @@ class ClientLedgerBalanceUpdate implements ShouldQueue */ public function handle() :void { - // nlog("Updating company ledger for client ". $this->client->id); + $uuid = \Illuminate\Support\Str::uuid(); + + nlog("Updating company ledger for client {$this->client->id} {$uuid}"); MultiDB::setDb($this->company->db); - CompanyLedger::query()->where('balance', 0)->where('client_id', $this->client->id)->orderBy('updated_at', 'ASC')->cursor()->each(function ($company_ledger) { - if ($company_ledger->balance == 0) { - $last_record = CompanyLedger::query()->where('client_id', $company_ledger->client_id) - ->where('company_id', $company_ledger->company_id) - ->where('balance', '!=', 0) - ->orderBy('id', 'DESC') - ->first(); + $dupes = CompanyLedger::query() + ->where('client_id', $this->client->id) + ->where('balance', 0) + ->where('hash', '<>', '') + ->groupBy(['adjustment','hash']) + ->havingRaw('COUNT(*) > 1') + ->pluck('id'); - if (! $last_record) { - $last_record = CompanyLedger::query()->where('client_id', $company_ledger->client_id) - ->where('company_id', $company_ledger->company_id) - ->orderBy('id', 'DESC') - ->first(); - } - } + // CompanyLedger::query()->whereIn('id', $dupes)->delete(); + + $dupes = CompanyLedger::query() + ->where('client_id', $this->client->id) + ->where('balance', 0) + ->where('hash', '<>', '') + ->groupBy(['adjustment','hash']) + ->havingRaw('COUNT(*) > 1') + ->pluck('id'); + + // CompanyLedger::query()->whereIn('id', $dupes)->delete(); + + CompanyLedger::query() + ->where('balance', 0) + ->where('client_id', $this->client->id) + ->orderBy('id', 'ASC') + ->get() + ->each(function ($company_ledger) { + + $parent_ledger = CompanyLedger::query() + ->where('id', '<', $company_ledger->id) + ->where('client_id', $company_ledger->client_id) + ->where('company_id', $company_ledger->company_id) + ->where('balance', '!=', 0) + ->orderBy('id', 'DESC') + ->first(); + + // if ($company_ledger->balance == 0) { + + // $last_record = CompanyLedger::query() + // ->where('client_id', $company_ledger->client_id) + // ->where('company_id', $company_ledger->company_id) + // ->where('balance', '!=', 0) + // ->orderBy('id', 'DESC') + // ->first(); + + // if (! $last_record) { + // $last_record = CompanyLedger::query() + // ->where('client_id', $company_ledger->client_id) + // ->where('company_id', $company_ledger->company_id) + // ->orderBy('id', 'DESC') + // ->first(); + // } + + // } + + // $company_ledger->balance = $last_record->balance + $company_ledger->adjustment; + $company_ledger->balance = ($parent_ledger ? $parent_ledger->balance : 0) + $company_ledger->adjustment; + $company_ledger->save(); - $company_ledger->balance = $last_record->balance + $company_ledger->adjustment; - $company_ledger->save(); }); - } + nlog("finished job {$uuid}"); + } public function middleware() { + nlog("middle ware {$this->client->id}"); return [(new WithoutOverlapping($this->client->id))->dontRelease()]; } } diff --git a/app/Jobs/Ledger/UpdateLedger.php b/app/Jobs/Ledger/UpdateLedger.php index 08d81c5785e2..48605c75a766 100644 --- a/app/Jobs/Ledger/UpdateLedger.php +++ b/app/Jobs/Ledger/UpdateLedger.php @@ -20,6 +20,7 @@ use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\Middleware\WithoutOverlapping; +//@deprecated class UpdateLedger implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php index 6e7b3b471a96..44ddd501aab6 100644 --- a/app/Repositories/BaseRepository.php +++ b/app/Repositories/BaseRepository.php @@ -290,10 +290,10 @@ class BaseRepository /* Perform model specific tasks */ if ($model instanceof Invoice) { - if ($model->status_id != Invoice::STATUS_DRAFT) { + if ($model->status_id != Invoice::STATUS_DRAFT && ($state['starting_amount'] != $state['finished_amount'])) { $model->service()->updateStatus()->save(); $model->client->service()->calculateBalance(); - $model->ledger()->mutateInvoiceBalance($state['starting_amount'], "Update adjustment for invoice {$model->number}"); + $model->ledger()->updateInvoiceBalance(($state['finished_amount'] - $state['starting_amount']), "Update adjustment for invoice {$model->number}"); } if (! $model->design_id) { diff --git a/app/Services/Invoice/HandleCancellation.php b/app/Services/Invoice/HandleCancellation.php index 85b2eee73168..206d1391e0bc 100644 --- a/app/Services/Invoice/HandleCancellation.php +++ b/app/Services/Invoice/HandleCancellation.php @@ -66,10 +66,7 @@ class HandleCancellation extends AbstractService $this->invoice->ledger()->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} reversal"); - // $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} reversal"); - - - $this->invoice->fresh(); + $this->invoice = $this->invoice->fresh(); /* Reverse the invoice status and balance */ $this->invoice->balance += $adjustment; diff --git a/app/Services/Invoice/HandleRestore.php b/app/Services/Invoice/HandleRestore.php index 823301fb9ce3..cc251bdb97a4 100644 --- a/app/Services/Invoice/HandleRestore.php +++ b/app/Services/Invoice/HandleRestore.php @@ -51,8 +51,6 @@ class HandleRestore extends AbstractService //adjust ledger balance $this->invoice->ledger()->updateInvoiceBalance($this->invoice->balance, "Restored invoice {$this->invoice->number}")->save(); - // $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Restored invoice {$this->invoice->number}"); - //@todo $this->invoice->client ->service() diff --git a/app/Services/Invoice/HandleReversal.php b/app/Services/Invoice/HandleReversal.php index 4c3076fd6204..2b1410950e12 100644 --- a/app/Services/Invoice/HandleReversal.php +++ b/app/Services/Invoice/HandleReversal.php @@ -68,7 +68,6 @@ class HandleReversal extends AbstractService /* Set invoice balance to 0 */ if ($this->invoice->balance != 0) { $this->invoice->ledger()->updateInvoiceBalance($balance_remaining * -1, $notes)->save(); - // $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, $notes); } $this->invoice->balance = 0; diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php index 8e1d2d8138da..e435263879b1 100644 --- a/app/Services/Invoice/InvoiceService.php +++ b/app/Services/Invoice/InvoiceService.php @@ -462,7 +462,6 @@ class InvoiceService ->ledger() ->updateInvoiceBalance($adjustment * -1, 'Adjustment for removing gateway fee'); - // $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Adjustment for removing gateway fee {$adjustment} Invoice {$this->invoice->number}"); $this->invoice->client->service()->calculateBalance(); } diff --git a/app/Services/Invoice/MarkSent.php b/app/Services/Invoice/MarkSent.php index b9541b04b4cf..dc6af4a65659 100644 --- a/app/Services/Invoice/MarkSent.php +++ b/app/Services/Invoice/MarkSent.php @@ -45,10 +45,7 @@ class MarkSent extends AbstractService ->ledger() ->updateInvoiceBalance($adjustment, "Invoice {$this->invoice->number} marked as sent."); - -// $this->invoice->ledger()->mutateInvoiceBalance($this->invoice->amount, "Invoice {$this->invoice->number} marked as sent => {$this->invoice->amount}"); -$this->invoice->client->service()->calculateBalance(); - + $this->invoice->client->service()->calculateBalance(); /* Perform additional actions on invoice */ $this->invoice diff --git a/app/Services/Ledger/LedgerService.php b/app/Services/Ledger/LedgerService.php index 376b8823d667..97715350a2c9 100644 --- a/app/Services/Ledger/LedgerService.php +++ b/app/Services/Ledger/LedgerService.php @@ -11,10 +11,11 @@ namespace App\Services\Ledger; +use App\Models\Activity; +use App\Models\CompanyLedger; +use App\Jobs\Ledger\UpdateLedger; use App\Factory\CompanyLedgerFactory; use App\Jobs\Ledger\ClientLedgerBalanceUpdate; -use App\Jobs\Ledger\UpdateLedger; -use App\Models\Activity; class LedgerService { @@ -25,32 +26,43 @@ class LedgerService $this->entity = $entity; } - public function mutateInvoiceBalance(float $start_amount, string $notes ='') - { - $company_ledger = CompanyLedgerFactory::create($this->entity->company_id, $this->entity->user_id); - $company_ledger->client_id = $this->entity->client_id; - $company_ledger->adjustment = 0; - $company_ledger->notes = $notes; - $company_ledger->activity_id = Activity::UPDATE_INVOICE; - $company_ledger->save(); - - $this->entity->company_ledger()->save($company_ledger); - - UpdateLedger::dispatch($company_ledger->id, $start_amount, $this->entity->company->company_key, $this->entity->company->db); - } - public function updateInvoiceBalance($adjustment, $notes = '') { + + if($adjustment == 0) + return $this; + + // $timestamp = \Carbon\Carbon::createFromTimestamp($this->entity->updated_at)->format('ymdhhmmssSS'); + // $hash = sha1($adjustment.$notes.$this->entity->status_id.$this->entity->client_id.$this->entity->amount.$this->entity->balance.$this->entity->company_id.Activity::UPDATE_INVOICE); + // $hash = sha1($hash); + // $hash = sha1("{$this->entity->amount}.{$this->entity->balance}"); + $hash = "{$this->entity->amount}.{$this->entity->balance}"; + + $exists = CompanyLedger::query() + ->where('client_id', $this->entity->client_id) + ->where('company_id', $this->entity->company_id) + ->where('activity_id', Activity::UPDATE_INVOICE) + ->where('adjustment', $adjustment) + ->where('hash', $hash) + ->where('notes', $notes) + ->where('created_at', '>=', now()->subSeconds(1)) + ->exists(); + + if($exists) { + return $this; + } + $company_ledger = CompanyLedgerFactory::create($this->entity->company_id, $this->entity->user_id); $company_ledger->client_id = $this->entity->client_id; $company_ledger->adjustment = $adjustment; $company_ledger->notes = $notes; + $company_ledger->hash = $hash; $company_ledger->activity_id = Activity::UPDATE_INVOICE; $company_ledger->save(); $this->entity->company_ledger()->save($company_ledger); - ClientLedgerBalanceUpdate::dispatch($this->entity->company, $this->entity->client)->delay(rand(3, 13)); + ClientLedgerBalanceUpdate::dispatch($this->entity->company, $this->entity->client)->delay(rand(4, 7)); return $this; } @@ -66,7 +78,7 @@ class LedgerService $this->entity->company_ledger()->save($company_ledger); - ClientLedgerBalanceUpdate::dispatch($this->entity->company, $this->entity->client)->delay(rand(3, 13)); + ClientLedgerBalanceUpdate::dispatch($this->entity->company, $this->entity->client)->delay(rand(1, 3)); return $this; } @@ -82,7 +94,7 @@ class LedgerService $this->entity->company_ledger()->save($company_ledger); - ClientLedgerBalanceUpdate::dispatch($this->entity->company, $this->entity->client)->delay(rand(3, 13)); + ClientLedgerBalanceUpdate::dispatch($this->entity->company, $this->entity->client)->delay(rand(1, 3)); return $this; } diff --git a/app/Services/Payment/DeletePayment.php b/app/Services/Payment/DeletePayment.php index 1d7295b43661..c54ef2812646 100644 --- a/app/Services/Payment/DeletePayment.php +++ b/app/Services/Payment/DeletePayment.php @@ -101,9 +101,6 @@ class DeletePayment ->updateInvoiceBalance($net_deletable, "Adjusting invoice {$paymentable_invoice->number} due to deletion of Payment {$this->payment->number}") ->save(); - // $paymentable_invoice->ledger() - // ->mutateInvoiceBalance($paymentable_invoice->amount, "Adjusting invoice {$paymentable_invoice->number} due to deletion of Payment {$this->payment->number}"); - //@todo refactor $this->payment ->client diff --git a/app/Services/Payment/RefundPayment.php b/app/Services/Payment/RefundPayment.php index b12210375d4f..b06833eeff0d 100644 --- a/app/Services/Payment/RefundPayment.php +++ b/app/Services/Payment/RefundPayment.php @@ -294,10 +294,6 @@ class RefundPayment ->updateInvoiceBalance($refunded_invoice['amount'], "Refund of payment # {$this->payment->number}") ->save(); - // $invoice->ledger() - // ->mutateInvoiceBalance($invoice->amount, "Refund of payment # {$this->payment->number}"); - - if ($invoice->amount == $invoice->balance) { $invoice->service()->setStatus(Invoice::STATUS_SENT); } else { From 7325a66c4749006471a95e558dc228f5f6a2de56 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 15:43:08 +1100 Subject: [PATCH 16/31] Working on ledger balances --- app/Repositories/BaseRepository.php | 2 +- app/Services/Ledger/LedgerService.php | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php index 44ddd501aab6..40519498019d 100644 --- a/app/Repositories/BaseRepository.php +++ b/app/Repositories/BaseRepository.php @@ -290,7 +290,7 @@ class BaseRepository /* Perform model specific tasks */ if ($model instanceof Invoice) { - if ($model->status_id != Invoice::STATUS_DRAFT && ($state['starting_amount'] != $state['finished_amount'])) { + if ($model->status_id != Invoice::STATUS_DRAFT) { $model->service()->updateStatus()->save(); $model->client->service()->calculateBalance(); $model->ledger()->updateInvoiceBalance(($state['finished_amount'] - $state['starting_amount']), "Update adjustment for invoice {$model->number}"); diff --git a/app/Services/Ledger/LedgerService.php b/app/Services/Ledger/LedgerService.php index 97715350a2c9..9d2b3fa6795d 100644 --- a/app/Services/Ledger/LedgerService.php +++ b/app/Services/Ledger/LedgerService.php @@ -36,7 +36,9 @@ class LedgerService // $hash = sha1($adjustment.$notes.$this->entity->status_id.$this->entity->client_id.$this->entity->amount.$this->entity->balance.$this->entity->company_id.Activity::UPDATE_INVOICE); // $hash = sha1($hash); // $hash = sha1("{$this->entity->amount}.{$this->entity->balance}"); - $hash = "{$this->entity->amount}.{$this->entity->balance}"; + $hash = "{$adjustment}.{$this->entity->amount}.{$this->entity->balance}"; + + usleep(10000000); $exists = CompanyLedger::query() ->where('client_id', $this->entity->client_id) @@ -49,6 +51,7 @@ class LedgerService ->exists(); if($exists) { + nlog("Collision {$adjustment} {$notes}"); return $this; } From f0013653c75b5b8fd4e3b2db9e82e0757d01693f Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 19:03:56 +1100 Subject: [PATCH 17/31] Cleanup --- app/Jobs/Ledger/ClientLedgerBalanceUpdate.php | 52 ++++++------------- app/Repositories/BaseRepository.php | 12 +++-- app/Services/Client/ClientService.php | 17 +++++- app/Services/Ledger/LedgerService.php | 50 +++++++++++------- 4 files changed, 71 insertions(+), 60 deletions(-) diff --git a/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php b/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php index 639fd2be3370..58f41ff61221 100644 --- a/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php +++ b/app/Jobs/Ledger/ClientLedgerBalanceUpdate.php @@ -46,27 +46,27 @@ class ClientLedgerBalanceUpdate implements ShouldQueue { $uuid = \Illuminate\Support\Str::uuid(); - nlog("Updating company ledger for client {$this->client->id} {$uuid}"); + // nlog("Updating company ledger for client {$this->client->id} {$uuid}"); MultiDB::setDb($this->company->db); - $dupes = CompanyLedger::query() - ->where('client_id', $this->client->id) - ->where('balance', 0) - ->where('hash', '<>', '') - ->groupBy(['adjustment','hash']) - ->havingRaw('COUNT(*) > 1') - ->pluck('id'); + // $dupes = CompanyLedger::query() + // ->where('client_id', $this->client->id) + // ->where('balance', 0) + // ->where('hash', '<>', '') + // ->groupBy(['adjustment','hash']) + // ->havingRaw('COUNT(*) > 1') + // ->pluck('id'); // CompanyLedger::query()->whereIn('id', $dupes)->delete(); - $dupes = CompanyLedger::query() - ->where('client_id', $this->client->id) - ->where('balance', 0) - ->where('hash', '<>', '') - ->groupBy(['adjustment','hash']) - ->havingRaw('COUNT(*) > 1') - ->pluck('id'); + // $dupes = CompanyLedger::query() + // ->where('client_id', $this->client->id) + // ->where('balance', 0) + // ->where('hash', '<>', '') + // ->groupBy(['adjustment','hash']) + // ->havingRaw('COUNT(*) > 1') + // ->pluck('id'); // CompanyLedger::query()->whereIn('id', $dupes)->delete(); @@ -85,37 +85,17 @@ class ClientLedgerBalanceUpdate implements ShouldQueue ->orderBy('id', 'DESC') ->first(); - // if ($company_ledger->balance == 0) { - - // $last_record = CompanyLedger::query() - // ->where('client_id', $company_ledger->client_id) - // ->where('company_id', $company_ledger->company_id) - // ->where('balance', '!=', 0) - // ->orderBy('id', 'DESC') - // ->first(); - - // if (! $last_record) { - // $last_record = CompanyLedger::query() - // ->where('client_id', $company_ledger->client_id) - // ->where('company_id', $company_ledger->company_id) - // ->orderBy('id', 'DESC') - // ->first(); - // } - - // } - // $company_ledger->balance = $last_record->balance + $company_ledger->adjustment; $company_ledger->balance = ($parent_ledger ? $parent_ledger->balance : 0) + $company_ledger->adjustment; $company_ledger->save(); }); - nlog("finished job {$uuid}"); + // nlog("finished job {$uuid}"); } public function middleware() { - nlog("middle ware {$this->client->id}"); return [(new WithoutOverlapping($this->client->id))->dontRelease()]; } } diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php index 40519498019d..ee20a4fef641 100644 --- a/app/Repositories/BaseRepository.php +++ b/app/Repositories/BaseRepository.php @@ -161,7 +161,7 @@ class BaseRepository $lcfirst_resource_id = $this->resolveEntityKey($model); //ie invoice_id - $state['starting_amount'] = $model->amount; + $state['starting_amount'] = $model->balance; if (! $model->id) { $company_defaults = $client->setCompanyDefaults($data, lcfirst($resource)); @@ -273,7 +273,7 @@ class BaseRepository $model = $model->calc()->getInvoice(); /* We use this to compare to our starting amount */ - $state['finished_amount'] = $model->amount; + $state['finished_amount'] = $model->balance; /* Apply entity number */ $model = $model->service()->applyNumber()->save(); @@ -292,8 +292,12 @@ class BaseRepository if ($model instanceof Invoice) { if ($model->status_id != Invoice::STATUS_DRAFT) { $model->service()->updateStatus()->save(); - $model->client->service()->calculateBalance(); - $model->ledger()->updateInvoiceBalance(($state['finished_amount'] - $state['starting_amount']), "Update adjustment for invoice {$model->number}"); + $model->client->service()->calculateBalance($model); + + // $diff = $state['finished_amount'] - $state['starting_amount']; + // nlog("{$diff} - {$state['finished_amount']} - {$state['starting_amount']}"); + // if(floatval($state['finished_amount']) != floatval($state['starting_amount'])) + // $model->ledger()->updateInvoiceBalance(($state['finished_amount'] - $state['starting_amount']), "Update adjustment for invoice {$model->number}"); } if (! $model->design_id) { diff --git a/app/Services/Client/ClientService.php b/app/Services/Client/ClientService.php index 5ac1f6e8f43b..410b388841fb 100644 --- a/app/Services/Client/ClientService.php +++ b/app/Services/Client/ClientService.php @@ -35,13 +35,15 @@ class ClientService { } - public function calculateBalance() + public function calculateBalance(?Invoice $invoice = null) { $balance = Invoice::where('client_id', $this->client->id) ->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]) ->where('is_deleted', false) ->sum('balance'); + $pre_client_balance = $this->client->balance; + try { DB::connection(config('database.default'))->transaction(function () use ($balance) { $this->client = Client::withTrashed()->where('id', $this->client->id)->lockForUpdate()->first(); @@ -52,9 +54,20 @@ class ClientService nlog("DB ERROR " . $throwable->getMessage()); } + if($invoice && floatval($this->client->balance) != floatval($pre_client_balance)) { + $diff = $this->client->balance - $pre_client_balance; + $invoice->ledger()->insertInvoiceBalance($diff, $this->client->balance, "Update Adjustment Invoice # {$invoice->number} => {$diff}"); + } + return $this; } - + + /** + * Seeing too many race conditions under heavy load here. + * @deprecated + * @param float $amount + * @return void + */ public function updateBalance(float $amount) { try { diff --git a/app/Services/Ledger/LedgerService.php b/app/Services/Ledger/LedgerService.php index 9d2b3fa6795d..2a589191d8b2 100644 --- a/app/Services/Ledger/LedgerService.php +++ b/app/Services/Ledger/LedgerService.php @@ -26,6 +26,22 @@ class LedgerService $this->entity = $entity; } + public function insertInvoiceBalance($adjustment, $balance, $notes) + { + $company_ledger = CompanyLedgerFactory::create($this->entity->company_id, $this->entity->user_id); + $company_ledger->client_id = $this->entity->client_id; + $company_ledger->adjustment = $adjustment; + $company_ledger->notes = $notes; + $company_ledger->balance = $balance; + $company_ledger->activity_id = Activity::UPDATE_INVOICE; + $company_ledger->save(); + + $this->entity->company_ledger()->save($company_ledger); + + return $this; + + } + public function updateInvoiceBalance($adjustment, $notes = '') { @@ -36,36 +52,34 @@ class LedgerService // $hash = sha1($adjustment.$notes.$this->entity->status_id.$this->entity->client_id.$this->entity->amount.$this->entity->balance.$this->entity->company_id.Activity::UPDATE_INVOICE); // $hash = sha1($hash); // $hash = sha1("{$this->entity->amount}.{$this->entity->balance}"); - $hash = "{$adjustment}.{$this->entity->amount}.{$this->entity->balance}"; + // $hash = "{$adjustment}.{$this->entity->amount}.{$this->entity->balance}"; - usleep(10000000); + // $exists = CompanyLedger::query() + // ->where('client_id', $this->entity->client_id) + // ->where('company_id', $this->entity->company_id) + // ->where('activity_id', Activity::UPDATE_INVOICE) + // ->where('adjustment', $adjustment) + // ->where('hash', $hash) + // ->where('notes', $notes) + // ->where('created_at', '>=', now()->subSeconds(1)) + // ->exists(); - $exists = CompanyLedger::query() - ->where('client_id', $this->entity->client_id) - ->where('company_id', $this->entity->company_id) - ->where('activity_id', Activity::UPDATE_INVOICE) - ->where('adjustment', $adjustment) - ->where('hash', $hash) - ->where('notes', $notes) - ->where('created_at', '>=', now()->subSeconds(1)) - ->exists(); - - if($exists) { - nlog("Collision {$adjustment} {$notes}"); - return $this; - } + // if($exists) { + // nlog("Collision {$adjustment} {$notes}"); + // return $this; + // } $company_ledger = CompanyLedgerFactory::create($this->entity->company_id, $this->entity->user_id); $company_ledger->client_id = $this->entity->client_id; $company_ledger->adjustment = $adjustment; $company_ledger->notes = $notes; - $company_ledger->hash = $hash; + // $company_ledger->hash = $hash; $company_ledger->activity_id = Activity::UPDATE_INVOICE; $company_ledger->save(); $this->entity->company_ledger()->save($company_ledger); - ClientLedgerBalanceUpdate::dispatch($this->entity->company, $this->entity->client)->delay(rand(4, 7)); + ClientLedgerBalanceUpdate::dispatch($this->entity->company, $this->entity->client)->delay(rand(3, 7)); return $this; } From f66d9e3447f01be246277e65f6f9f6c76b79294a Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 19:13:22 +1100 Subject: [PATCH 18/31] Documentation for gateways. --- app/Services/Client/PaymentMethod.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/Services/Client/PaymentMethod.php b/app/Services/Client/PaymentMethod.php index e74874ad01eb..caf1a0943b31 100644 --- a/app/Services/Client/PaymentMethod.php +++ b/app/Services/Client/PaymentMethod.php @@ -80,9 +80,18 @@ class PaymentMethod return array_search($model->id, $transformed_ids); // this closure sorts for us }); + // nlog($this->gateways->count()); + // nlog(count($transformed_ids)); + if($this->gateways->count() == 0 && count($transformed_ids) >=1) { - /** This is a fallback in case a user archives some gateways that have been ordered preferentially. */ + /** + * This is a fallback in case a user archives some gateways that have been ordered preferentially. + * + * If the user archives a parent gateway upstream, it may leave a client setting in a state where no payment gateways are available. + * + * In this case we fall back to all gateways. + */ $this->gateways = CompanyGateway::query() ->with('gateway') ->where('company_id', $this->client->company_id) From bc4215a1b5a3302666cf84f8865d6107b7096b43 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 19:53:38 +1100 Subject: [PATCH 19/31] Add Imagick extension to improve image compression --- app/Helpers/Document/WithTypeHelpers.php | 1 + app/Models/Document.php | 29 ++++++++++++++++++++++++ app/Services/Client/ClientService.php | 4 ++-- app/Utils/HtmlEngine.php | 3 ++- 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/app/Helpers/Document/WithTypeHelpers.php b/app/Helpers/Document/WithTypeHelpers.php index 32fb4950a3d3..9f2776a16abb 100644 --- a/app/Helpers/Document/WithTypeHelpers.php +++ b/app/Helpers/Document/WithTypeHelpers.php @@ -27,4 +27,5 @@ trait WithTypeHelpers return false; } + } diff --git a/app/Models/Document.php b/app/Models/Document.php index 476c0f605ccb..3c73e40d2963 100644 --- a/app/Models/Document.php +++ b/app/Models/Document.php @@ -205,4 +205,33 @@ class Document extends BaseModel { return ctrans('texts.document'); } + + public function compress(): mixed + { + + $image = $this->getFile(); + $catch_image = $image; + + if(extension_loaded('imagick')) + return $catch_image; + + try { + $file = base64_encode($image); + + $img = new \Imagick(); + $img->readImageBlob($file); + $img->setImageCompression(true); + $img->setImageCompressionQuality(50); + + return $img->getImageBlob(); + + } + catch(\Exception $e){ + + nlog($e->getMessage()); + return $catch_image; + } + + } + } diff --git a/app/Services/Client/ClientService.php b/app/Services/Client/ClientService.php index 410b388841fb..21e846438fc0 100644 --- a/app/Services/Client/ClientService.php +++ b/app/Services/Client/ClientService.php @@ -64,9 +64,9 @@ class ClientService /** * Seeing too many race conditions under heavy load here. - * @deprecated + * * @param float $amount - * @return void + * @return ClientService */ public function updateBalance(float $amount) { diff --git a/app/Utils/HtmlEngine.php b/app/Utils/HtmlEngine.php index e896780c1b11..7d0923330c5b 100644 --- a/app/Utils/HtmlEngine.php +++ b/app/Utils/HtmlEngine.php @@ -1038,6 +1038,7 @@ html { $container = $dom->createElement('div'); $container->setAttribute('style', 'display:grid; grid-auto-flow: row; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr);justify-items: center;'); + /** @var \App\Models\Document $document */ foreach ($this->entity->documents()->where('is_public', true)->get() as $document) { if (!$document->isImage()) { continue; @@ -1045,7 +1046,7 @@ html { $image = $dom->createElement('img'); - $image->setAttribute('src', "data:image/png;base64,".base64_encode($document->getFile())); + $image->setAttribute('src', "data:image/png;base64,".base64_encode($document->compress())); $image->setAttribute('style', 'max-width: 50%; margin-top: 20px;'); $container->appendChild($image); From cb94973bd1d263993a8c74377ee1220b79cb766c Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 19:54:26 +1100 Subject: [PATCH 20/31] Remove trait --- app/Helpers/Document/WithTypeHelpers.php | 31 ------------------------ app/Models/Document.php | 15 +++++++++++- 2 files changed, 14 insertions(+), 32 deletions(-) delete mode 100644 app/Helpers/Document/WithTypeHelpers.php diff --git a/app/Helpers/Document/WithTypeHelpers.php b/app/Helpers/Document/WithTypeHelpers.php deleted file mode 100644 index 9f2776a16abb..000000000000 --- a/app/Helpers/Document/WithTypeHelpers.php +++ /dev/null @@ -1,31 +0,0 @@ -type, ['png', 'jpeg', 'jpg', 'tiff', 'gif'])) { - return true; - } - - return false; - } - -} diff --git a/app/Models/Document.php b/app/Models/Document.php index 3c73e40d2963..636609058bff 100644 --- a/app/Models/Document.php +++ b/app/Models/Document.php @@ -64,7 +64,6 @@ class Document extends BaseModel { use SoftDeletes; use Filterable; - use WithTypeHelpers; const DOCUMENT_PREVIEW_SIZE = 300; // pixels @@ -234,4 +233,18 @@ class Document extends BaseModel } + /** + * Returns boolean based on checks for image. + * + * @return bool + */ + public function isImage(): bool + { + if (in_array($this->type, ['png', 'jpeg', 'jpg', 'tiff', 'gif'])) { + return true; + } + + return false; + } + } From 1b60ee132ec76a3b032b2d078335cbc5a9834de4 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 8 Nov 2023 23:51:53 +1100 Subject: [PATCH 21/31] Fixes for tests --- app/Models/Client.php | 7 ++++++- app/Models/Company.php | 6 +++++- tests/Feature/ReminderTest.php | 24 +++++++++++++++++++----- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/app/Models/Client.php b/app/Models/Client.php index 689578df8385..bb83e7297552 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -778,7 +778,12 @@ class Client extends BaseModel implements HasLocalePreference $timezone = $this->company->timezone(); - $offset -= $timezone->utc_offset; + //2023-11-08 adjustments for DST + date_default_timezone_set('GMT'); + $date = new \DateTime("now", new \DateTimeZone($timezone->name)); + $offset -= $date->getOffset(); + +// $offset -= $timezone->utc_offset; $offset += ($entity_send_time * 3600); return $offset; diff --git a/app/Models/Company.php b/app/Models/Company.php index 897b7aa584ee..2f10c9d9ae2a 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -928,7 +928,11 @@ class Company extends BaseModel $timezone = $this->timezone(); - $offset -= $timezone->utc_offset; + date_default_timezone_set('GMT'); + $date = new \DateTime("now", new \DateTimeZone($timezone->name)); + $offset -= $date->getOffset(); + + // $offset -= $timezone->utc_offset; $offset += ($entity_send_time * 3600); return $offset; diff --git a/tests/Feature/ReminderTest.php b/tests/Feature/ReminderTest.php index 2b9b63c55461..6e2ee4fd28f8 100644 --- a/tests/Feature/ReminderTest.php +++ b/tests/Feature/ReminderTest.php @@ -322,15 +322,29 @@ class ReminderTest extends TestCase $this->travelTo(now()->startOfDay()); - for($x=0; $x<46; $x++) { + $travel_date = Carbon::parse($this->invoice->next_send_date); + $x = false; + for($x=0; $x<50; $x++) { - // nlog("traveller {$x} ".now()->format('Y-m-d h:i:s')); (new ReminderJob())->handle(); - $this->invoice = $this->invoice->fresh(); - $this->assertNull($this->invoice->reminder1_sent); - $this->assertNull($this->invoice->reminder_last_sent); + + if(now()->gt($travel_date) && !$x) { + + + $this->assertNotNull($this->invoice->reminder1_sent); + $this->assertNotNull($this->invoice->reminder_last_sent); + $x=true; + } + + + if(!$x){ + $this->invoice = $this->invoice->fresh(); + $this->assertNull($this->invoice->reminder1_sent); + $this->assertNull($this->invoice->reminder_last_sent); + } $this->travelTo(now()->addHours(1)); + } // nlog("traveller ".now()->format('Y-m-d')); From 66e389ba3a861dd51fc9f817bd7854d6d75e090a Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 9 Nov 2023 13:45:56 +1100 Subject: [PATCH 22/31] Minor fixes for partial amount validation --- app/Http/Requests/Invoice/StoreInvoiceRequest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Requests/Invoice/StoreInvoiceRequest.php b/app/Http/Requests/Invoice/StoreInvoiceRequest.php index 0cf37f68e6e1..1b8da986af03 100644 --- a/app/Http/Requests/Invoice/StoreInvoiceRequest.php +++ b/app/Http/Requests/Invoice/StoreInvoiceRequest.php @@ -73,7 +73,7 @@ class StoreInvoiceRequest extends Request $rules['tax_name2'] = 'bail|sometimes|string|nullable'; $rules['tax_name3'] = 'bail|sometimes|string|nullable'; $rules['exchange_rate'] = 'bail|sometimes|numeric'; - $rules['partial'] = 'bail|sometimes|nullable|numeric'; + $rules['partial'] = 'bail|sometimes|nullable|numeric|gte:0'; $rules['partial_due_date'] = ['bail', 'sometimes', 'exclude_if:partial,0', Rule::requiredIf(fn () => $this->partial > 0), 'date']; return $rules; From dcfb3c940e85854b4fb0adb6d86e3c3d37713296 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 10 Nov 2023 08:13:16 +1100 Subject: [PATCH 23/31] Fixes for utf8 encoding in filenames for downloads --- app/Models/BaseModel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/BaseModel.php b/app/Models/BaseModel.php index 3cbeef7b171c..73bde51b2b44 100644 --- a/app/Models/BaseModel.php +++ b/app/Models/BaseModel.php @@ -255,7 +255,7 @@ class BaseModel extends Model $formatted_number = preg_replace('/\s+/', '_', $formatted_number); - return $formatted_number; + return \Illuminate\Support\Str::ascii($formatted_number); } public function translate_entity() From 939fdbc155b0fb0f17003383163dfc339ab1e791 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 10 Nov 2023 09:30:12 +1100 Subject: [PATCH 24/31] Minor fixes for Designs --- app/Http/Requests/Design/StoreDesignRequest.php | 10 ++++++++-- app/Http/Requests/Design/UpdateDesignRequest.php | 10 +++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/Design/StoreDesignRequest.php b/app/Http/Requests/Design/StoreDesignRequest.php index 63d2b17911d1..133d2b601623 100644 --- a/app/Http/Requests/Design/StoreDesignRequest.php +++ b/app/Http/Requests/Design/StoreDesignRequest.php @@ -19,6 +19,13 @@ class StoreDesignRequest extends Request private array $valid_entities = [ 'invoice', + 'payment', + 'client', + 'quote', + 'credit', + 'purchase_order', + 'project', + 'task' ]; /** @@ -32,7 +39,7 @@ class StoreDesignRequest extends Request $user = auth()->user(); return $user->isAdmin() && $user->account->hasFeature(Account::FEATURE_API); - ; + } public function rules() @@ -42,7 +49,6 @@ class StoreDesignRequest extends Request $user = auth()->user(); return [ - //'name' => 'required', 'name' => 'required|unique:designs,name,null,null,company_id,'.$user->companyId(), 'design' => 'required|array', 'design.header' => 'sometimes|string', diff --git a/app/Http/Requests/Design/UpdateDesignRequest.php b/app/Http/Requests/Design/UpdateDesignRequest.php index 07fb4e68ea7f..f51185e4b8cd 100644 --- a/app/Http/Requests/Design/UpdateDesignRequest.php +++ b/app/Http/Requests/Design/UpdateDesignRequest.php @@ -11,6 +11,7 @@ namespace App\Http\Requests\Design; +use App\Models\Account; use App\Http\Requests\Request; use App\Utils\Traits\ChecksEntityStatus; @@ -20,6 +21,13 @@ class UpdateDesignRequest extends Request private array $valid_entities = [ 'invoice', + 'payment', + 'client', + 'quote', + 'credit', + 'purchase_order', + 'project', + 'task' ]; /** @@ -32,7 +40,7 @@ class UpdateDesignRequest extends Request /** @var \App\Models\User $user */ $user = auth()->user(); - return $user->isAdmin(); + return $user->isAdmin() && $user->account->hasFeature(Account::FEATURE_API); } public function rules() From fdf3f252b1fdfe865c9c97fb4d3d78df96830eea Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 10 Nov 2023 09:36:01 +1100 Subject: [PATCH 25/31] Minor cleanup --- app/Jobs/Payment/EmailPayment.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Jobs/Payment/EmailPayment.php b/app/Jobs/Payment/EmailPayment.php index f8729f707eab..5a481c34eb41 100644 --- a/app/Jobs/Payment/EmailPayment.php +++ b/app/Jobs/Payment/EmailPayment.php @@ -89,7 +89,6 @@ class EmailPayment implements ShouldQueue } } - $nmo->mailable = new TemplateEmail($email_builder, $this->contact, $invitation); $nmo->to_user = $this->contact; $nmo->settings = $this->settings; From 3ce689a53ee539c54a6cae3aa3221d177b736a4b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 10 Nov 2023 12:06:49 +1100 Subject: [PATCH 26/31] Fixes for webhook logic --- app/Jobs/Invoice/InvoiceCheckLateWebhook.php | 4 +-- app/Jobs/Util/WebhookHandler.php | 2 +- app/Jobs/Util/WebhookSingle.php | 28 +++++++++++++++---- .../build/assets/eway-credit-card-62ce5f3b.js | 9 ++++++ 4 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 public/build/assets/eway-credit-card-62ce5f3b.js diff --git a/app/Jobs/Invoice/InvoiceCheckLateWebhook.php b/app/Jobs/Invoice/InvoiceCheckLateWebhook.php index 0c99407d11b2..26d0a76901e8 100644 --- a/app/Jobs/Invoice/InvoiceCheckLateWebhook.php +++ b/app/Jobs/Invoice/InvoiceCheckLateWebhook.php @@ -64,7 +64,7 @@ class InvoiceCheckLateWebhook implements ShouldQueue ->whereBetween('due_date', [now()->subDay()->startOfDay(), now()->startOfDay()->subSecond()]) ->cursor() ->each(function ($invoice) { - WebhookHandler::dispatch(Webhook::EVENT_LATE_INVOICE, $invoice, $invoice->company, 'client')->delay(now()->addSeconds(2)); + (new WebhookHandler(Webhook::EVENT_LATE_INVOICE, $invoice, $invoice->company, 'client'))->handle(); }); } else { foreach (MultiDB::$dbs as $db) { @@ -91,7 +91,7 @@ class InvoiceCheckLateWebhook implements ShouldQueue ->whereBetween('due_date', [now()->subDay()->startOfDay(), now()->startOfDay()->subSecond()]) ->cursor() ->each(function ($invoice) { - WebhookHandler::dispatch(Webhook::EVENT_LATE_INVOICE, $invoice, $invoice->company, 'client')->delay(now()->addSeconds(2)); + (new WebhookHandler(Webhook::EVENT_LATE_INVOICE, $invoice, $invoice->company, 'client'))->handle(); }); } } diff --git a/app/Jobs/Util/WebhookHandler.php b/app/Jobs/Util/WebhookHandler.php index 2deaedca3bb3..2faed5876763 100644 --- a/app/Jobs/Util/WebhookHandler.php +++ b/app/Jobs/Util/WebhookHandler.php @@ -58,7 +58,7 @@ class WebhookHandler implements ShouldQueue ->where('event_id', $this->event_id) ->cursor() ->each(function ($subscription) { - WebhookSingle::dispatch($subscription->id, $this->entity, $this->company->db, $this->includes); + (new WebhookSingle($subscription->id, $this->entity, $this->company->db, $this->includes))->handle(); }); } diff --git a/app/Jobs/Util/WebhookSingle.php b/app/Jobs/Util/WebhookSingle.php index c30fef90e5ca..c463071d0052 100644 --- a/app/Jobs/Util/WebhookSingle.php +++ b/app/Jobs/Util/WebhookSingle.php @@ -63,9 +63,7 @@ class WebhookSingle implements ShouldQueue public function backoff() { - // return [15, 35, 65, 185, 3605]; return [rand(10, 15), rand(30, 40), rand(60, 79), rand(160, 200), rand(3000, 5000)]; - } /** @@ -150,8 +148,28 @@ class WebhookSingle implements ShouldQueue ))->handle(); } catch (BadResponseException $e) { if ($e->getResponse()->getStatusCode() >= 400 && $e->getResponse()->getStatusCode() < 500) { + + /* Some 400's should never be repeated */ + if (in_array($e->getResponse()->getStatusCode(), [404, 410, 405])) { + + $message = "There was a problem when connecting to {$subscription->target_url} => status code ". $e->getResponse()->getStatusCode(). " This webhook call will be suspended until further action is taken."; + + (new SystemLogger( + ['message' => $message], + SystemLog::CATEGORY_WEBHOOK, + SystemLog::EVENT_WEBHOOK_FAILURE, + SystemLog::TYPE_WEBHOOK_RESPONSE, + $this->resolveClient(), + $this->company + ))->handle(); + + $subscription->delete(); + $this->fail(); + return; + } + $message = "There was a problem when connecting to {$subscription->target_url} => status code ". $e->getResponse()->getStatusCode(); - + nlog($message); (new SystemLogger( @@ -163,11 +181,11 @@ class WebhookSingle implements ShouldQueue $this->company ))->handle(); - /* Some 400's should never be repeated */ - if (in_array($e->getResponse()->getStatusCode(), [404, 410])) { + if (in_array($e->getResponse()->getStatusCode(), [400])) { $this->fail(); return; } + $this->release($this->backoff()[$this->attempts()-1]); } diff --git a/public/build/assets/eway-credit-card-62ce5f3b.js b/public/build/assets/eway-credit-card-62ce5f3b.js new file mode 100644 index 000000000000..3c3ceed101ae --- /dev/null +++ b/public/build/assets/eway-credit-card-62ce5f3b.js @@ -0,0 +1,9 @@ +/** + * Invoice Ninja (https://invoiceninja.com). + * + * @link https://github.com/invoiceninja/invoiceninja source repository + * + * @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com) + * + * @license https://www.elastic.co/licensing/elastic-license + */class i{constructor(){this.cardStyles="padding: 2px; border: 1px solid #AAA; border-radius: 3px; height: 34px; width: 100%;",this.errorCodes=new Map,this.errorCodes.set("V6000","Validation error"),this.errorCodes.set("V6001","Invalid CustomerIP"),this.errorCodes.set("V6002","Invalid DeviceID"),this.errorCodes.set("V6003","Invalid Request PartnerID"),this.errorCodes.set("V6004","Invalid Request Method"),this.errorCodes.set("V6010","Invalid TransactionType, account not certified for eCome only MOTO or Recurring available"),this.errorCodes.set("V6011","Invalid Payment TotalAmount"),this.errorCodes.set("V6012","Invalid Payment InvoiceDescription"),this.errorCodes.set("V6013","Invalid Payment InvoiceNumber"),this.errorCodes.set("V6014","Invalid Payment InvoiceReference"),this.errorCodes.set("V6015","Invalid Payment CurrencyCode"),this.errorCodes.set("V6016","Payment Required"),this.errorCodes.set("V6017","Payment CurrencyCode Required"),this.errorCodes.set("V6018","Unknown Payment CurrencyCode"),this.errorCodes.set("V6019","Cardholder identity authentication required"),this.errorCodes.set("V6020","Cardholder Input Required"),this.errorCodes.set("V6021","EWAY_CARDHOLDERNAME Required"),this.errorCodes.set("V6022","EWAY_CARDNUMBER Required"),this.errorCodes.set("V6023","EWAY_CARDCVN Required"),this.errorCodes.set("V6024","Cardholder Identity Authentication One Time Password Not Active Yet"),this.errorCodes.set("V6025","PIN Required"),this.errorCodes.set("V6033","Invalid Expiry Date"),this.errorCodes.set("V6034","Invalid Issue Number"),this.errorCodes.set("V6035","Invalid Valid From Date"),this.errorCodes.set("V6039","Invalid Network Token Status"),this.errorCodes.set("V6040","Invalid TokenCustomerID"),this.errorCodes.set("V6041","Customer Required"),this.errorCodes.set("V6042","Customer FirstName Required"),this.errorCodes.set("V6043","Customer LastName Required"),this.errorCodes.set("V6044","Customer CountryCode Required"),this.errorCodes.set("V6045","Customer Title Required"),this.errorCodes.set("V6046","TokenCustomerID Required"),this.errorCodes.set("V6047","RedirectURL Required"),this.errorCodes.set("V6048","CheckoutURL Required when CheckoutPayment specified"),this.errorCodes.set("V6049","nvalid Checkout URL"),this.errorCodes.set("V6051","Invalid Customer FirstName"),this.errorCodes.set("V6052","Invalid Customer LastName"),this.errorCodes.set("V6053","Invalid Customer CountryCode"),this.errorCodes.set("V6058","Invalid Customer Title"),this.errorCodes.set("V6059","Invalid RedirectURL"),this.errorCodes.set("V6060","Invalid TokenCustomerID"),this.errorCodes.set("V6061","Invalid Customer Reference"),this.errorCodes.set("V6062","Invalid Customer CompanyName"),this.errorCodes.set("V6063","Invalid Customer JobDescription"),this.errorCodes.set("V6064","Invalid Customer Street1"),this.errorCodes.set("V6065","Invalid Customer Street2"),this.errorCodes.set("V6066","Invalid Customer City"),this.errorCodes.set("V6067","Invalid Customer State"),this.errorCodes.set("V6068","Invalid Customer PostalCode"),this.errorCodes.set("V6069","Invalid Customer Email"),this.errorCodes.set("V6070","Invalid Customer Phone"),this.errorCodes.set("V6071","Invalid Customer Mobile"),this.errorCodes.set("V6072","Invalid Customer Comments"),this.errorCodes.set("V6073","Invalid Customer Fax"),this.errorCodes.set("V6074","Invalid Customer URL"),this.errorCodes.set("V6075","Invalid ShippingAddress FirstName"),this.errorCodes.set("V6076","Invalid ShippingAddress LastName"),this.errorCodes.set("V6077","Invalid ShippingAddress Street1"),this.errorCodes.set("V6078","Invalid ShippingAddress Street2"),this.errorCodes.set("V6079","Invalid ShippingAddress City"),this.errorCodes.set("V6080","Invalid ShippingAddress State"),this.errorCodes.set("V6081","Invalid ShippingAddress PostalCode"),this.errorCodes.set("V6082","Invalid ShippingAddress Email"),this.errorCodes.set("V6083","Invalid ShippingAddress Phone"),this.errorCodes.set("V6084","Invalid ShippingAddress Country"),this.errorCodes.set("V6085","Invalid ShippingAddress ShippingMethod"),this.errorCodes.set("V6086","Invalid ShippingAddress Fax"),this.errorCodes.set("V6091","Unknown Customer CountryCode"),this.errorCodes.set("V6092","Unknown ShippingAddress CountryCode"),this.errorCodes.set("V6093","Insufficient Address Information"),this.errorCodes.set("V6100","Invalid EWAY_CARDNAME"),this.errorCodes.set("V6101","Invalid EWAY_CARDEXPIRYMONTH"),this.errorCodes.set("V6102","Invalid EWAY_CARDEXPIRYYEAR"),this.errorCodes.set("V6103","Invalid EWAY_CARDSTARTMONTH"),this.errorCodes.set("V6104","Invalid EWAY_CARDSTARTYEAR"),this.errorCodes.set("V6105","Invalid EWAY_CARDISSUENUMBER"),this.errorCodes.set("V6106","Invalid EWAY_CARDCVN"),this.errorCodes.set("V6107","Invalid EWAY_ACCESSCODE"),this.errorCodes.set("V6108","Invalid CustomerHostAddress"),this.errorCodes.set("V6109","Invalid UserAgent"),this.errorCodes.set("V6110","Invalid EWAY_CARDNUMBER"),this.errorCodes.set("V6111","Unauthorised API Access, Account Not PCI Certified"),this.errorCodes.set("V6112","Redundant card details other than expiry year and month"),this.errorCodes.set("V6113","Invalid transaction for refund"),this.errorCodes.set("V6114","Gateway validation error"),this.errorCodes.set("V6115","Invalid DirectRefundRequest, Transaction ID"),this.errorCodes.set("V6116","Invalid card data on original TransactionID"),this.errorCodes.set("V6117","Invalid CreateAccessCodeSharedRequest, FooterText"),this.errorCodes.set("V6118","Invalid CreateAccessCodeSharedRequest, HeaderText"),this.errorCodes.set("V6119","Invalid CreateAccessCodeSharedRequest, Language"),this.errorCodes.set("V6120","Invalid CreateAccessCodeSharedRequest, LogoUrl"),this.errorCodes.set("V6121","Invalid TransactionSearch, Filter Match Type"),this.errorCodes.set("V6122","Invalid TransactionSearch, Non numeric Transaction ID"),this.errorCodes.set("V6123","Invalid TransactionSearch,no TransactionID or AccessCode specified"),this.errorCodes.set("V6124","Invalid Line Items. The line items have been provided however the totals do not match the TotalAmount field"),this.errorCodes.set("V6125","Selected Payment Type not enabled"),this.errorCodes.set("V6126","Invalid encrypted card number, decryption failed"),this.errorCodes.set("V6127","Invalid encrypted cvn, decryption failed"),this.errorCodes.set("V6128","Invalid Method for Payment Type"),this.errorCodes.set("V6129","Transaction has not been authorised for Capture/Cancellation"),this.errorCodes.set("V6130","Generic customer information error"),this.errorCodes.set("V6131","Generic shipping information error"),this.errorCodes.set("V6132","Transaction has already been completed or voided, operation not permitted"),this.errorCodes.set("V6133","Checkout not available for Payment Type"),this.errorCodes.set("V6134","Invalid Auth Transaction ID for Capture/Void"),this.errorCodes.set("V6135","PayPal Error Processing Refund"),this.errorCodes.set("V6136","Original transaction does not exist or state is incorrect"),this.errorCodes.set("V6140","Merchant account is suspended"),this.errorCodes.set("V6141","Invalid PayPal account details or API signature"),this.errorCodes.set("V6142","Authorise not available for Bank/Branch"),this.errorCodes.set("V6143","Invalid Public Key"),this.errorCodes.set("V6144","Method not available with Public API Key Authentication"),this.errorCodes.set("V6145","Credit Card not allow if Token Customer ID is provided with Public API Key Authentication"),this.errorCodes.set("V6146","Client Side Encryption Key Missing or Invalid"),this.errorCodes.set("V6147","Unable to Create One Time Code for Secure Field"),this.errorCodes.set("V6148","Secure Field has Expired"),this.errorCodes.set("V6149","Invalid Secure Field One Time Code"),this.errorCodes.set("V6150","Invalid Refund Amount"),this.errorCodes.set("V6151","Refund amount greater than original transaction"),this.errorCodes.set("V6152","Original transaction already refunded for total amount"),this.errorCodes.set("V6153","Card type not support by merchant"),this.errorCodes.set("V6154","Insufficent Funds Available For Refund"),this.errorCodes.set("V6155","Missing one or more fields in request"),this.errorCodes.set("V6160","Encryption Method Not Supported"),this.errorCodes.set("V6161","Encryption failed, missing or invalid key"),this.errorCodes.set("V6165","Invalid Click-to-Pay (Visa Checkout) data or decryption failed"),this.errorCodes.set("V6170","Invalid TransactionSearch, Invoice Number is not unique"),this.errorCodes.set("V6171","Invalid TransactionSearch, Invoice Number not found"),this.errorCodes.set("V6220","Three domain secure XID invalid"),this.errorCodes.set("V6221","Three domain secure ECI invalid"),this.errorCodes.set("V6222","Three domain secure AVV invalid"),this.errorCodes.set("V6223","Three domain secure XID is required"),this.errorCodes.set("V6224","Three Domain Secure ECI is required"),this.errorCodes.set("V6225","Three Domain Secure AVV is required"),this.errorCodes.set("V6226","Three Domain Secure AuthStatus is required"),this.errorCodes.set("V6227","Three Domain Secure AuthStatus invalid"),this.errorCodes.set("V6228","Three domain secure Version is required"),this.errorCodes.set("V6230","Three domain secure Directory Server Txn ID invalid"),this.errorCodes.set("V6231","Three domain secure Directory Server Txn ID is required"),this.errorCodes.set("V6232","Three domain secure Version is invalid"),this.errorCodes.set("V6501","Invalid Amex InstallementPlan"),this.errorCodes.set("V6502","Invalid Number Of Installements for Amex. Valid values are from 0 to 99 inclusive"),this.errorCodes.set("V6503","Merchant Amex ID required"),this.errorCodes.set("V6504","Invalid Merchant Amex ID"),this.errorCodes.set("V6505","Merchant Terminal ID required"),this.errorCodes.set("V6506","Merchant category code required"),this.errorCodes.set("V6507","Invalid merchant category code"),this.errorCodes.set("V6508","Amex 3D ECI required"),this.errorCodes.set("V6509","Invalid Amex 3D ECI"),this.errorCodes.set("V6510","Invalid Amex 3D verification value"),this.errorCodes.set("V6511","Invalid merchant location data"),this.errorCodes.set("V6512","Invalid merchant street address"),this.errorCodes.set("V6513","Invalid merchant city"),this.errorCodes.set("V6514","Invalid merchant country"),this.errorCodes.set("V6515","Invalid merchant phone"),this.errorCodes.set("V6516","Invalid merchant postcode"),this.errorCodes.set("V6517","Amex connection error"),this.errorCodes.set("V6518","Amex EC Card Details API returned invalid data"),this.errorCodes.set("V6520","Invalid or missing Amex Point Of Sale Data"),this.errorCodes.set("V6521","Invalid or missing Amex transaction date time"),this.errorCodes.set("V6522","Invalid or missing Amex Original transaction date time"),this.errorCodes.set("V6530","Credit Card Number in non Credit Card Field")}get groupFieldConfig(){var e,t,r,s,o;return{publicApiKey:(e=document.querySelector("meta[name=public-api-key]"))==null?void 0:e.content,fieldDivId:"eway-secure-panel",fieldType:"group",styles:"",layout:{fonts:["Lobster"],rows:[{styles:"",cells:[{colSpan:12,styles:"margin-top: 15px;",label:{fieldColSpan:4,text:(t=document.querySelector("meta[name=translation-card-name]"))==null?void 0:t.content,styles:""},field:{fieldColSpan:8,fieldType:"name",styles:this.cardStyles,divStyles:"padding-left: 10px;"}},{colSpan:12,styles:"margin-top: 15px;",label:{fieldColSpan:4,text:(r=document.querySelector("meta[name=translation-expiry_date]"))==null?void 0:r.content,styles:""},field:{fieldColSpan:8,fieldType:"expirytext",styles:this.cardStyles,divStyles:"padding-left: 10px;"}}]},{styles:"",cells:[{colSpan:12,styles:"margin-top: 15px;",label:{fieldColSpan:4,text:(s=document.querySelector("meta[name=translation-card_number]"))==null?void 0:s.content,styles:""},field:{fieldColSpan:8,fieldType:"card",styles:this.cardStyles}},{colSpan:12,styles:"margin-top: 15px;",label:{fieldColSpan:4,text:(o=document.querySelector("meta[name=translation-cvv]"))==null?void 0:o.content,styles:""},field:{fieldColSpan:8,fieldType:"cvn",styles:this.cardStyles}}]}]}}}securePanelCallback(e){if(document.getElementById("errors").hidden=!0,e.errors)return this.handleErrors(e.errors);document.getElementById("authorize-card")&&(document.getElementById("authorize-card").disabled=!1),document.getElementById("pay-now")&&(document.getElementById("pay-now").disabled=!1),document.querySelector("input[name=securefieldcode]").value=e.secureFieldCode}handleErrors(e){let t=e.split(" "),r="";t.forEach(s=>{r=r.concat(this.errorCodes.get(s)+"
")}),document.getElementById("errors").innerHTML=r,document.getElementById("errors").hidden=!1}completeAuthorization(e){e.target.parentElement.disabled=!0,document.getElementById("server-response").submit()}completePaymentUsingToken(e){e.target.parentElement.disabled=!0,document.getElementById("server-response").submit()}completePaymentWithoutToken(e){e.target.parentElement.disabled=!0;let t=document.querySelector('input[name="token-billing-checkbox"]:checked');t&&(document.querySelector('input[name="store_card"]').value=t.value),document.getElementById("server-response").submit()}initialize(){this.eWAY=eWAY.setupSecureField(this.groupFieldConfig,e=>this.securePanelCallback(e))}handle(){var e,t;this.initialize(),(e=document.getElementById("authorize-card"))==null||e.addEventListener("click",r=>this.completeAuthorization(r)),Array.from(document.getElementsByClassName("toggle-payment-with-token")??[]).forEach(r=>r.addEventListener("click",s=>{document.getElementById("eway-secure-panel").classList.add("hidden"),document.getElementById("save-card--container").style.display="none",document.querySelector("input[name=token]").value=s.target.dataset.token,document.getElementById("pay-now").disabled=!1})),document.getElementById("toggle-payment-with-credit-card")&&document.getElementById("toggle-payment-with-credit-card").addEventListener("click",r=>{document.getElementById("eway-secure-panel").classList.remove("hidden"),document.getElementById("save-card--container").style.display="grid",document.querySelector("input[name=token]").value="",document.getElementById("pay-now").disabled=!0}),(t=document.getElementById("pay-now"))==null||t.addEventListener("click",r=>document.querySelector("input[name=token]").value?this.completePaymentUsingToken(r):this.completePaymentWithoutToken(r))}}new i().handle(); From 526b899d28cc31d2d852afa53246520e4bc7ab36 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 10 Nov 2023 12:36:27 +1100 Subject: [PATCH 27/31] Fixes for webhook logic --- app/Jobs/Util/WebhookSingle.php | 9 +-------- app/Models/BaseModel.php | 2 +- app/Services/Invoice/MarkSent.php | 3 --- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/app/Jobs/Util/WebhookSingle.php b/app/Jobs/Util/WebhookSingle.php index c463071d0052..51a87d7e3290 100644 --- a/app/Jobs/Util/WebhookSingle.php +++ b/app/Jobs/Util/WebhookSingle.php @@ -75,16 +75,10 @@ class WebhookSingle implements ShouldQueue MultiDB::setDb($this->db); $subscription = Webhook::query()->with('company')->find($this->subscription_id); - - if ($subscription) { - // nlog("firing event ID {$subscription->event_id} company_id {$subscription->company_id}"); - } - + if (!$subscription) { $this->fail(); - nlog("failed to fire event, could not find webhook ID {$this->subscription_id}"); - return; } @@ -185,7 +179,6 @@ class WebhookSingle implements ShouldQueue $this->fail(); return; } - $this->release($this->backoff()[$this->attempts()-1]); } diff --git a/app/Models/BaseModel.php b/app/Models/BaseModel.php index 73bde51b2b44..e9f566b06835 100644 --- a/app/Models/BaseModel.php +++ b/app/Models/BaseModel.php @@ -278,7 +278,7 @@ class BaseModel extends Model ->exists(); if ($subscriptions) { - WebhookHandler::dispatch($event_id, $this, $this->company, $additional_data); + WebhookHandler::dispatch($event_id, $this->withoutRelations(), $this->company, $additional_data); } } diff --git a/app/Services/Invoice/MarkSent.php b/app/Services/Invoice/MarkSent.php index dc6af4a65659..c4d07dc037bb 100644 --- a/app/Services/Invoice/MarkSent.php +++ b/app/Services/Invoice/MarkSent.php @@ -55,9 +55,6 @@ class MarkSent extends AbstractService ->setReminder() ->save(); - /*Adjust client balance*/ - // $this->invoice->client->service()->updateBalance($adjustment)->save(); - $this->invoice->markInvitationsSent(); event(new InvoiceWasUpdated($this->invoice, $this->invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); From de007b162f1b6f32c4b0ce7a0397aa1a92ea7036 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 10 Nov 2023 15:01:51 +1100 Subject: [PATCH 28/31] Rollback gateway display functionality in client/group settings --- .../PreviewPurchaseOrderController.php | 6 +++- app/Services/Client/PaymentMethod.php | 35 +++++++++---------- app/Services/Invoice/AutoBillInvoice.php | 8 +++-- 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/app/Http/Controllers/PreviewPurchaseOrderController.php b/app/Http/Controllers/PreviewPurchaseOrderController.php index 5884e09f563b..cdc0ff98de76 100644 --- a/app/Http/Controllers/PreviewPurchaseOrderController.php +++ b/app/Http/Controllers/PreviewPurchaseOrderController.php @@ -223,8 +223,12 @@ class PreviewPurchaseOrderController extends BaseController { /** @var \App\Models\User $user */ $user = auth()->user(); - $company = $user->company(); + $file_path = (new PreviewPdf('', $company))->handle(); + $response = Response::make($file_path, 200); + $response->header('Content-Type', 'application/pdf'); + + return $response; MultiDB::setDb($company->db); diff --git a/app/Services/Client/PaymentMethod.php b/app/Services/Client/PaymentMethod.php index caf1a0943b31..348df82a5904 100644 --- a/app/Services/Client/PaymentMethod.php +++ b/app/Services/Client/PaymentMethod.php @@ -80,26 +80,25 @@ class PaymentMethod return array_search($model->id, $transformed_ids); // this closure sorts for us }); - // nlog($this->gateways->count()); - // nlog(count($transformed_ids)); - - if($this->gateways->count() == 0 && count($transformed_ids) >=1) { + //2023-10-11 - Roll back, do not show any gateways, if they have been archived upstream. + //removing this logic now to prevent any + // if($this->gateways->count() == 0 && count($transformed_ids) >=1) { - /** - * This is a fallback in case a user archives some gateways that have been ordered preferentially. - * - * If the user archives a parent gateway upstream, it may leave a client setting in a state where no payment gateways are available. - * - * In this case we fall back to all gateways. - */ - $this->gateways = CompanyGateway::query() - ->with('gateway') - ->where('company_id', $this->client->company_id) - ->where('gateway_key', '!=', '54faab2ab6e3223dbe848b1686490baa') - ->whereNull('deleted_at') - ->where('is_deleted', false)->get(); + // /** + // * This is a fallback in case a user archives some gateways that have been ordered preferentially. + // * + // * If the user archives a parent gateway upstream, it may leave a client setting in a state where no payment gateways are available. + // * + // * In this case we fall back to all gateways. + // */ + // $this->gateways = CompanyGateway::query() + // ->with('gateway') + // ->where('company_id', $this->client->company_id) + // ->where('gateway_key', '!=', '54faab2ab6e3223dbe848b1686490baa') + // ->whereNull('deleted_at') + // ->where('is_deleted', false)->get(); - } + // } } else { $this->gateways = CompanyGateway::query() diff --git a/app/Services/Invoice/AutoBillInvoice.php b/app/Services/Invoice/AutoBillInvoice.php index c16fe0c6eeef..1464d3f0dbff 100644 --- a/app/Services/Invoice/AutoBillInvoice.php +++ b/app/Services/Invoice/AutoBillInvoice.php @@ -174,8 +174,12 @@ class AutoBillInvoice extends AbstractService $amount = array_sum(array_column($this->used_credit, 'amount')); $payment = PaymentFactory::create($this->invoice->company_id, $this->invoice->user_id); - $payment->amount = $amount; - $payment->applied = $amount; + + $payment->amount = 0; + $payment->applied = 0; + + // $payment->amount = $amount; + // $payment->applied = $amount; $payment->client_id = $this->invoice->client_id; $payment->currency_id = $this->invoice->client->getSetting('currency_id'); $payment->date = now()->addSeconds($this->invoice->company->timezone()->utc_offset)->format('Y-m-d'); From 38662feeb257e6278301f03911ed8340a9ff3338 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 10 Nov 2023 17:16:08 +1100 Subject: [PATCH 29/31] Fixes for company imports --- app/Jobs/Company/CompanyImport.php | 8 ++ composer.lock | 202 +++++++++++++++-------------- tests/Unit/AutoBillInvoiceTest.php | 4 +- 3 files changed, 114 insertions(+), 100 deletions(-) diff --git a/app/Jobs/Company/CompanyImport.php b/app/Jobs/Company/CompanyImport.php index 1d0a95a898ee..f415371204ee 100644 --- a/app/Jobs/Company/CompanyImport.php +++ b/app/Jobs/Company/CompanyImport.php @@ -1455,7 +1455,15 @@ class CompanyImport implements ShouldQueue $obj_array['config'] = encrypt($obj_array['config']); } + /** + * @class \stdClass $parameters + * + * @property string $entity + * @property string $entity_id + */ + if($class == 'App\Models\Scheduler') { + $parameters = $obj_array['parameters']; if(isset($parameters->clients)){ diff --git a/composer.lock b/composer.lock index f2126fc368cc..630eb189ccfd 100644 --- a/composer.lock +++ b/composer.lock @@ -485,16 +485,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.283.16", + "version": "3.285.3", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "cb629771356d6a4d12bb030a072b832044440672" + "reference": "afa1e722f1b2c95644f375dc1a19072e4daf67be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/cb629771356d6a4d12bb030a072b832044440672", - "reference": "cb629771356d6a4d12bb030a072b832044440672", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/afa1e722f1b2c95644f375dc1a19072e4daf67be", + "reference": "afa1e722f1b2c95644f375dc1a19072e4daf67be", "shasum": "" }, "require": { @@ -574,9 +574,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.283.16" + "source": "https://github.com/aws/aws-sdk-php/tree/3.285.3" }, - "time": "2023-10-31T18:21:09+00:00" + "time": "2023-11-09T19:07:19+00:00" }, { "name": "bacon/bacon-qr-code", @@ -634,16 +634,16 @@ }, { "name": "beganovich/snappdf", - "version": "v4.0.1", + "version": "v4.0.2", "source": { "type": "git", "url": "https://github.com/beganovich/snappdf.git", - "reference": "37b782fa14034f91657f2490bcd1380bb5532d69" + "reference": "afb188d8370a35db3b6ce4b6f2ef2963d7005891" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beganovich/snappdf/zipball/37b782fa14034f91657f2490bcd1380bb5532d69", - "reference": "37b782fa14034f91657f2490bcd1380bb5532d69", + "url": "https://api.github.com/repos/beganovich/snappdf/zipball/afb188d8370a35db3b6ce4b6f2ef2963d7005891", + "reference": "afb188d8370a35db3b6ce4b6f2ef2963d7005891", "shasum": "" }, "require": { @@ -680,22 +680,22 @@ "description": "Convert webpages or HTML into the PDF file using Chromium or Google Chrome.", "support": { "issues": "https://github.com/beganovich/snappdf/issues", - "source": "https://github.com/beganovich/snappdf/tree/v4.0.1" + "source": "https://github.com/beganovich/snappdf/tree/v4.0.2" }, - "time": "2023-08-24T12:47:07+00:00" + "time": "2023-11-06T21:44:50+00:00" }, { "name": "braintree/braintree_php", - "version": "6.14.0", + "version": "6.15.0", "source": { "type": "git", "url": "https://github.com/braintree/braintree_php.git", - "reference": "084ed5bb728bc32ad444c6d043c87b409cca72d7" + "reference": "16efb08e19cb6c579deba11e119ef6409d28eae3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/braintree/braintree_php/zipball/084ed5bb728bc32ad444c6d043c87b409cca72d7", - "reference": "084ed5bb728bc32ad444c6d043c87b409cca72d7", + "url": "https://api.github.com/repos/braintree/braintree_php/zipball/16efb08e19cb6c579deba11e119ef6409d28eae3", + "reference": "16efb08e19cb6c579deba11e119ef6409d28eae3", "shasum": "" }, "require": { @@ -729,9 +729,9 @@ "description": "Braintree PHP Client Library", "support": { "issues": "https://github.com/braintree/braintree_php/issues", - "source": "https://github.com/braintree/braintree_php/tree/6.14.0" + "source": "https://github.com/braintree/braintree_php/tree/6.15.0" }, - "time": "2023-10-18T22:00:15+00:00" + "time": "2023-11-08T00:15:11+00:00" }, { "name": "brick/math", @@ -2487,16 +2487,16 @@ }, { "name": "google/apiclient-services", - "version": "v0.322.0", + "version": "v0.323.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "e892db67c88eb119de0c12aa2419b48401555ded" + "reference": "d5497d30ddfafe7592102ca48bedaf222a4ca7a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/e892db67c88eb119de0c12aa2419b48401555ded", - "reference": "e892db67c88eb119de0c12aa2419b48401555ded", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/d5497d30ddfafe7592102ca48bedaf222a4ca7a6", + "reference": "d5497d30ddfafe7592102ca48bedaf222a4ca7a6", "shasum": "" }, "require": { @@ -2525,9 +2525,9 @@ ], "support": { "issues": "https://github.com/googleapis/google-api-php-client-services/issues", - "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.322.0" + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.323.0" }, - "time": "2023-10-29T01:10:18+00:00" + "time": "2023-11-06T01:08:38+00:00" }, { "name": "google/auth", @@ -4230,16 +4230,16 @@ }, { "name": "laravel/framework", - "version": "v10.30.0", + "version": "v10.31.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "3dd85d9dbea82b937f8eaf344b50d613c5d1127a" + "reference": "507ce9b28bce4b5e4140c28943092ca38e9a52e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/3dd85d9dbea82b937f8eaf344b50d613c5d1127a", - "reference": "3dd85d9dbea82b937f8eaf344b50d613c5d1127a", + "url": "https://api.github.com/repos/laravel/framework/zipball/507ce9b28bce4b5e4140c28943092ca38e9a52e4", + "reference": "507ce9b28bce4b5e4140c28943092ca38e9a52e4", "shasum": "" }, "require": { @@ -4428,7 +4428,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-10-31T13:19:45+00:00" + "time": "2023-11-07T13:48:30+00:00" }, { "name": "laravel/prompts", @@ -5225,16 +5225,16 @@ }, { "name": "league/flysystem", - "version": "3.18.0", + "version": "3.19.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "015633a05aee22490495159237a5944091d8281e" + "reference": "1b2aa10f2326e0351399b8ce68e287d8e9209a83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/015633a05aee22490495159237a5944091d8281e", - "reference": "015633a05aee22490495159237a5944091d8281e", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1b2aa10f2326e0351399b8ce68e287d8e9209a83", + "reference": "1b2aa10f2326e0351399b8ce68e287d8e9209a83", "shasum": "" }, "require": { @@ -5299,7 +5299,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.18.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.19.0" }, "funding": [ { @@ -5311,20 +5311,20 @@ "type": "github" } ], - "time": "2023-10-20T17:59:40+00:00" + "time": "2023-11-07T09:04:28+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.16.0", + "version": "3.19.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "ded9ba346bb01cb9cc4cc7f2743c2c0e14d18e1c" + "reference": "03be643c8ed4dea811d946101be3bc875b5cf214" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/ded9ba346bb01cb9cc4cc7f2743c2c0e14d18e1c", - "reference": "ded9ba346bb01cb9cc4cc7f2743c2c0e14d18e1c", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/03be643c8ed4dea811d946101be3bc875b5cf214", + "reference": "03be643c8ed4dea811d946101be3bc875b5cf214", "shasum": "" }, "require": { @@ -5365,7 +5365,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues", - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.16.0" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.19.0" }, "funding": [ { @@ -5377,20 +5377,20 @@ "type": "github" } ], - "time": "2023-08-30T10:14:57+00:00" + "time": "2023-11-06T20:35:28+00:00" }, { "name": "league/flysystem-local", - "version": "3.18.0", + "version": "3.19.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "e7381ef7643f658b87efb7dbe98fe538fb1bbf32" + "reference": "8d868217f9eeb4e9a7320db5ccad825e9a7a4076" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e7381ef7643f658b87efb7dbe98fe538fb1bbf32", - "reference": "e7381ef7643f658b87efb7dbe98fe538fb1bbf32", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/8d868217f9eeb4e9a7320db5ccad825e9a7a4076", + "reference": "8d868217f9eeb4e9a7320db5ccad825e9a7a4076", "shasum": "" }, "require": { @@ -5425,7 +5425,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.18.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.19.0" }, "funding": [ { @@ -5437,7 +5437,7 @@ "type": "github" } ], - "time": "2023-10-19T20:07:13+00:00" + "time": "2023-11-06T20:35:28+00:00" }, { "name": "league/fractal", @@ -5779,16 +5779,16 @@ }, { "name": "microsoft/microsoft-graph", - "version": "1.108.0", + "version": "1.109.0", "source": { "type": "git", "url": "https://github.com/microsoftgraph/msgraph-sdk-php.git", - "reference": "96b940ab530c693832648bdf5ffbb975e29d2233" + "reference": "14b1b9f24a6b6ace91323b1121030c96a0988ee0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/microsoftgraph/msgraph-sdk-php/zipball/96b940ab530c693832648bdf5ffbb975e29d2233", - "reference": "96b940ab530c693832648bdf5ffbb975e29d2233", + "url": "https://api.github.com/repos/microsoftgraph/msgraph-sdk-php/zipball/14b1b9f24a6b6ace91323b1121030c96a0988ee0", + "reference": "14b1b9f24a6b6ace91323b1121030c96a0988ee0", "shasum": "" }, "require": { @@ -5825,22 +5825,22 @@ "homepage": "https://developer.microsoft.com/en-us/graph", "support": { "issues": "https://github.com/microsoftgraph/msgraph-sdk-php/issues", - "source": "https://github.com/microsoftgraph/msgraph-sdk-php/tree/1.108.0" + "source": "https://github.com/microsoftgraph/msgraph-sdk-php/tree/1.109.0" }, - "time": "2023-10-11T11:00:38+00:00" + "time": "2023-11-02T10:25:39+00:00" }, { "name": "mollie/mollie-api-php", - "version": "v2.62.0", + "version": "v2.63.0", "source": { "type": "git", "url": "https://github.com/mollie/mollie-api-php.git", - "reference": "feb6d52859ed1ea7a65b25bb6cbfaadb04b33827" + "reference": "642f1b87624bd1535cd198134113e14bc01ba245" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/feb6d52859ed1ea7a65b25bb6cbfaadb04b33827", - "reference": "feb6d52859ed1ea7a65b25bb6cbfaadb04b33827", + "url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/642f1b87624bd1535cd198134113e14bc01ba245", + "reference": "642f1b87624bd1535cd198134113e14bc01ba245", "shasum": "" }, "require": { @@ -5917,9 +5917,9 @@ ], "support": { "issues": "https://github.com/mollie/mollie-api-php/issues", - "source": "https://github.com/mollie/mollie-api-php/tree/v2.62.0" + "source": "https://github.com/mollie/mollie-api-php/tree/v2.63.0" }, - "time": "2023-10-23T11:22:58+00:00" + "time": "2023-11-06T09:20:50+00:00" }, { "name": "moneyphp/money", @@ -6648,16 +6648,16 @@ }, { "name": "nwidart/laravel-modules", - "version": "10.0.2", + "version": "10.0.3", "source": { "type": "git", "url": "https://github.com/nWidart/laravel-modules.git", - "reference": "ef67a7367223ab96539136116d69405d1c21c321" + "reference": "786da1e6dfa2df6caa8718acb9c37a8fe94595b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/ef67a7367223ab96539136116d69405d1c21c321", - "reference": "ef67a7367223ab96539136116d69405d1c21c321", + "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/786da1e6dfa2df6caa8718acb9c37a8fe94595b3", + "reference": "786da1e6dfa2df6caa8718acb9c37a8fe94595b3", "shasum": "" }, "require": { @@ -6717,15 +6717,19 @@ ], "support": { "issues": "https://github.com/nWidart/laravel-modules/issues", - "source": "https://github.com/nWidart/laravel-modules/tree/10.0.2" + "source": "https://github.com/nWidart/laravel-modules/tree/10.0.3" }, "funding": [ + { + "url": "https://github.com/dcblogdev", + "type": "github" + }, { "url": "https://github.com/nwidart", "type": "github" } ], - "time": "2023-10-18T19:14:29+00:00" + "time": "2023-11-02T17:47:33+00:00" }, { "name": "nyholm/psr7", @@ -7609,16 +7613,16 @@ }, { "name": "php-http/promise", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/php-http/promise.git", - "reference": "ef4905bfb492ff389eb7f12e26925a0f20073050" + "reference": "44a67cb59f708f826f3bec35f22030b3edb90119" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/promise/zipball/ef4905bfb492ff389eb7f12e26925a0f20073050", - "reference": "ef4905bfb492ff389eb7f12e26925a0f20073050", + "url": "https://api.github.com/repos/php-http/promise/zipball/44a67cb59f708f826f3bec35f22030b3edb90119", + "reference": "44a67cb59f708f826f3bec35f22030b3edb90119", "shasum": "" }, "require": { @@ -7655,9 +7659,9 @@ ], "support": { "issues": "https://github.com/php-http/promise/issues", - "source": "https://github.com/php-http/promise/tree/1.2.0" + "source": "https://github.com/php-http/promise/tree/1.2.1" }, - "time": "2023-10-24T09:20:26+00:00" + "time": "2023-11-08T12:57:08+00:00" }, { "name": "php-jsonpointer/php-jsonpointer", @@ -8908,16 +8912,16 @@ }, { "name": "ramsey/uuid", - "version": "4.7.4", + "version": "4.7.5", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "60a4c63ab724854332900504274f6150ff26d286" + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286", - "reference": "60a4c63ab724854332900504274f6150ff26d286", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", "shasum": "" }, "require": { @@ -8984,7 +8988,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.4" + "source": "https://github.com/ramsey/uuid/tree/4.7.5" }, "funding": [ { @@ -8996,7 +9000,7 @@ "type": "tidelift" } ], - "time": "2023-04-15T23:01:58+00:00" + "time": "2023-11-08T05:53:05+00:00" }, { "name": "razorpay/razorpay", @@ -9065,16 +9069,16 @@ }, { "name": "rmccue/requests", - "version": "v2.0.8", + "version": "v2.0.9", "source": { "type": "git", "url": "https://github.com/WordPress/Requests.git", - "reference": "fae75bcb83d9d00d0e31ee86a472a036f9f91519" + "reference": "422612952ff3bd5163039f8889eaaaab95a432eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/Requests/zipball/fae75bcb83d9d00d0e31ee86a472a036f9f91519", - "reference": "fae75bcb83d9d00d0e31ee86a472a036f9f91519", + "url": "https://api.github.com/repos/WordPress/Requests/zipball/422612952ff3bd5163039f8889eaaaab95a432eb", + "reference": "422612952ff3bd5163039f8889eaaaab95a432eb", "shasum": "" }, "require": { @@ -9148,7 +9152,7 @@ "issues": "https://github.com/WordPress/Requests/issues", "source": "https://github.com/WordPress/Requests" }, - "time": "2023-09-11T08:27:57+00:00" + "time": "2023-11-08T19:22:04+00:00" }, { "name": "sabre/uri", @@ -14750,16 +14754,16 @@ }, { "name": "filp/whoops", - "version": "2.15.3", + "version": "2.15.4", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "c83e88a30524f9360b11f585f71e6b17313b7187" + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/c83e88a30524f9360b11f585f71e6b17313b7187", - "reference": "c83e88a30524f9360b11f585f71e6b17313b7187", + "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", "shasum": "" }, "require": { @@ -14809,7 +14813,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.15.3" + "source": "https://github.com/filp/whoops/tree/2.15.4" }, "funding": [ { @@ -14817,20 +14821,20 @@ "type": "github" } ], - "time": "2023-07-13T12:00:00+00:00" + "time": "2023-11-03T12:00:00+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.37.1", + "version": "v3.38.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "c3fe76976081ab871aa654e872da588077e19679" + "reference": "7e6070026e76aa09d77a47519625c86593fb8e31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/c3fe76976081ab871aa654e872da588077e19679", - "reference": "c3fe76976081ab871aa654e872da588077e19679", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/7e6070026e76aa09d77a47519625c86593fb8e31", + "reference": "7e6070026e76aa09d77a47519625c86593fb8e31", "shasum": "" }, "require": { @@ -14902,7 +14906,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.37.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.38.0" }, "funding": [ { @@ -14910,7 +14914,7 @@ "type": "github" } ], - "time": "2023-10-29T20:51:23+00:00" + "time": "2023-11-07T08:44:54+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -15624,16 +15628,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.40", + "version": "1.10.41", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "93c84b5bf7669920d823631e39904d69b9c7dc5d" + "reference": "c6174523c2a69231df55bdc65b61655e72876d76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/93c84b5bf7669920d823631e39904d69b9c7dc5d", - "reference": "93c84b5bf7669920d823631e39904d69b9c7dc5d", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c6174523c2a69231df55bdc65b61655e72876d76", + "reference": "c6174523c2a69231df55bdc65b61655e72876d76", "shasum": "" }, "require": { @@ -15682,7 +15686,7 @@ "type": "tidelift" } ], - "time": "2023-10-30T14:48:31+00:00" + "time": "2023-11-05T12:57:57+00:00" }, { "name": "phpunit/php-code-coverage", diff --git a/tests/Unit/AutoBillInvoiceTest.php b/tests/Unit/AutoBillInvoiceTest.php index c4a2f5a761b0..b574256ea290 100644 --- a/tests/Unit/AutoBillInvoiceTest.php +++ b/tests/Unit/AutoBillInvoiceTest.php @@ -40,7 +40,9 @@ class AutoBillInvoiceTest extends TestCase $this->invoice->service()->markSent()->autoBill(); $this->assertNotNull($this->invoice->payments()); - $this->assertEquals(10, $this->invoice->payments()->sum('payments.amount')); + $this->assertEquals(0, $this->invoice->payments()->sum('payments.amount')); + + $this->assertEquals(10, $this->invoice->payments()->get()->sum('pivot.amount')); $this->assertEquals($this->client->fresh()->balance, 0); $this->assertEquals($this->client->fresh()->paid_to_date, 10); From a1576d36af7ed7f6a9fbdabbcd268bdf583a07ba Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 10 Nov 2023 20:49:27 +1100 Subject: [PATCH 30/31] Static Analysis --- app/Jobs/Company/CompanyImport.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Jobs/Company/CompanyImport.php b/app/Jobs/Company/CompanyImport.php index f415371204ee..d2223866fe7c 100644 --- a/app/Jobs/Company/CompanyImport.php +++ b/app/Jobs/Company/CompanyImport.php @@ -1464,6 +1464,7 @@ class CompanyImport implements ShouldQueue if($class == 'App\Models\Scheduler') { + /** @var \stdClass $parameters */ $parameters = $obj_array['parameters']; if(isset($parameters->clients)){ From 0d079777b53c1cf3e9df400cba5a6db8d556f771 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 11 Nov 2023 00:16:31 +1100 Subject: [PATCH 31/31] v5.7.46 --- VERSION.txt | 2 +- config/ninja.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index 38a4061a893a..91d0dfd73ee7 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -5.7.45 \ No newline at end of file +5.7.46 \ No newline at end of file diff --git a/config/ninja.php b/config/ninja.php index 3018a7dc7fea..1ae82986a65f 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -15,8 +15,8 @@ return [ 'require_https' => env('REQUIRE_HTTPS', true), 'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'), - 'app_version' => env('APP_VERSION','5.7.45'), - 'app_tag' => env('APP_TAG','5.7.45'), + 'app_version' => env('APP_VERSION','5.7.46'), + 'app_tag' => env('APP_TAG','5.7.46'), 'minimum_client_version' => '5.0.16', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', false),