diff --git a/lib/constants.dart b/lib/constants.dart index 82051a191bc..db7d09b0055 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -4,7 +4,7 @@ class Constants { } // TODO remove version once #46609 is fixed -const String kClientVersion = '5.0.72'; +const String kClientVersion = '5.0.73'; const String kMinServerVersion = '5.0.4'; const String kAppName = 'Invoice Ninja'; @@ -592,6 +592,7 @@ const List kLanguages = [ 'en_AU', 'es', 'es_ES', + 'et', 'fa', 'fi', 'fr', diff --git a/lib/data/models/entities.dart b/lib/data/models/entities.dart index ca747dabdc3..d8af45bce4b 100644 --- a/lib/data/models/entities.dart +++ b/lib/data/models/entities.dart @@ -105,6 +105,10 @@ class EntityType extends EnumClass { return [ EntityType.payment, ]; + case EntityType.quote: + return [ + EntityType.invoice, + ]; case EntityType.recurringInvoice: return [ EntityType.invoice, diff --git a/lib/data/models/recurring_invoice_model.dart b/lib/data/models/recurring_invoice_model.dart index af8cd141334..decb089c5d8 100644 --- a/lib/data/models/recurring_invoice_model.dart +++ b/lib/data/models/recurring_invoice_model.dart @@ -4,7 +4,6 @@ class RecurringInvoiceFields { static const String client = 'client'; static const String statusId = 'status_id'; static const String status = 'status'; - static const String invoiceNumber = 'number'; static const String discount = 'discount'; static const String number = 'number'; static const String poNumber = 'po_number'; diff --git a/lib/data/repositories/auth_repository.dart b/lib/data/repositories/auth_repository.dart index 61573f6a41a..4fb3aeb5030 100644 --- a/lib/data/repositories/auth_repository.dart +++ b/lib/data/repositories/auth_repository.dart @@ -14,6 +14,7 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/web_client.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; +import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:invoiceninja_flutter/utils/serialization.dart'; class AuthRepository { @@ -36,6 +37,7 @@ class AuthRepository { 'terms_of_service': true, 'privacy_policy': true, 'token_name': _tokenName, + 'platform': getPlatformName(), }; if ((url ?? '').isEmpty) { @@ -60,6 +62,7 @@ class AuthRepository { 'id_token': idToken, //'access_token': accessToken, 'provider': 'google', + 'platform': getPlatformName(), }; return sendRequest( diff --git a/lib/redux/app/app_middleware.dart b/lib/redux/app/app_middleware.dart index 96dbfd08ac5..e43e0b233c8 100644 --- a/lib/redux/app/app_middleware.dart +++ b/lib/redux/app/app_middleware.dart @@ -387,8 +387,7 @@ Middleware _createPersistData( }; } -final _persistUIDebouncer = - Debouncer(milliseconds: kMillisecondsToDebounceWrite); +final _persistUIDebouncer = PersistUIDebouncer(); Middleware _createPersistUI(PersistenceRepository uiRepository) { return (Store store, dynamic dynamicAction, NextDispatcher next) { final action = dynamicAction as PersistUI; diff --git a/lib/redux/invoice/invoice_selectors.dart b/lib/redux/invoice/invoice_selectors.dart index c5aee550873..4d0139ef763 100644 --- a/lib/redux/invoice/invoice_selectors.dart +++ b/lib/redux/invoice/invoice_selectors.dart @@ -7,6 +7,21 @@ import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; +InvoiceEntity invoiceQuoteSelector( + InvoiceEntity invoice, BuiltMap quoteMap) { + InvoiceEntity invoiceQuote; + quoteMap.forEach((quoteId, quote) { + if (quote.invoiceId == invoice.id) { + invoiceQuote = quote; + } + }); + return invoiceQuote; +} + +var memoizedInvoiceQuoteSelector = memo2( + (InvoiceEntity invoice, BuiltMap quoteMap) => + invoiceQuoteSelector(invoice, quoteMap)); + var memoizedDropdownInvoiceList = memo7( (BuiltMap invoiceMap, BuiltMap clientMap, @@ -132,6 +147,9 @@ List filteredInvoicesSelector( } else if (filterEntityType == EntityType.project && invoice.projectId != filterEntityId) { return false; + } else if (filterEntityType == EntityType.quote && + invoice.invoiceId != filterEntityId) { + return false; } else if (filterEntityType == EntityType.payment) { bool isMatch = false; (invoicePaymentMap[invoiceId] ?? []).forEach((paymentId) { diff --git a/lib/ui/app/document_grid.dart b/lib/ui/app/document_grid.dart index da2cd981211..ce47200b504 100644 --- a/lib/ui/app/document_grid.dart +++ b/lib/ui/app/document_grid.dart @@ -207,15 +207,8 @@ class DocumentTile extends StatelessWidget { launch(state.account.defaultUrl + document.downloadUrl); } else { - Directory directory; - if (Platform.isAndroid) { - directory = - await getExternalStorageDirectory(); - } else { - directory = - await getApplicationDocumentsDirectory(); - } - + final directory = + await getApplicationDocumentsDirectory(); final String folder = '${directory.path}/documents'; await Directory(folder) diff --git a/lib/ui/client/client_pdf.dart b/lib/ui/client/client_pdf.dart index 86e7e6abe78..b363d74a576 100644 --- a/lib/ui/client/client_pdf.dart +++ b/lib/ui/client/client_pdf.dart @@ -365,7 +365,7 @@ class _ClientPdfViewState extends State { fileName, _response.bodyBytes); } else { final directory = - await getExternalStorageDirectory(); + await getApplicationDocumentsDirectory(); final filePath = '${directory.path}/${client.number}.pdf'; final pdfData = file.File(filePath); diff --git a/lib/ui/client/edit/client_edit_contacts.dart b/lib/ui/client/edit/client_edit_contacts.dart index 8c1313c3a52..dfe70147b2d 100644 --- a/lib/ui/client/edit/client_edit_contacts.dart +++ b/lib/ui/client/edit/client_edit_contacts.dart @@ -194,7 +194,7 @@ class ContactEditDetailsState extends State { final _debouncer = Debouncer(); List _controllers = []; - bool _sendEmail = false; + ContactEntity _contact; void _onDoneContactPressed() { if (widget.isDialog) { @@ -227,7 +227,7 @@ class ContactEditDetailsState extends State { _controllers .forEach((dynamic controller) => controller.removeListener(_onChanged)); - final contact = widget.contact; + final contact = _contact = widget.contact; _firstNameController.text = contact.firstName; _lastNameController.text = contact.lastName; _emailController.text = contact.email; @@ -237,7 +237,6 @@ class ContactEditDetailsState extends State { _custom2Controller.text = contact.customValue2; _custom3Controller.text = contact.customValue3; _custom4Controller.text = contact.customValue4; - _sendEmail = contact.sendEmail; _controllers .forEach((dynamic controller) => controller.addListener(_onChanged)); @@ -257,7 +256,7 @@ class ContactEditDetailsState extends State { void _onChanged() { final viewModel = widget.viewModel; - final contact = widget.contact.rebuild((b) => b + final contact = _contact = widget.contact.rebuild((b) => b ..firstName = _firstNameController.text.trim() ..lastName = _lastNameController.text.trim() ..email = _emailController.text.trim() @@ -362,13 +361,15 @@ class ContactEditDetailsState extends State { child: SwitchListTile( activeColor: Theme.of(context).colorScheme.secondary, title: Text(localization.addToInvoices), - value: _sendEmail, + value: _contact.sendEmail, onChanged: (value) { + setState(() => + _contact = _contact.rebuild((b) => b..sendEmail = value)); + viewModel.onChangedContact( - widget.contact.rebuild((b) => b..sendEmail = value), + _contact.rebuild((b) => b..sendEmail = value), widget.index, ); - setState(() => _sendEmail = value); }), ), ], diff --git a/lib/ui/design/edit/design_edit.dart b/lib/ui/design/edit/design_edit.dart index cc7b136ac31..e61d4d6f32c 100644 --- a/lib/ui/design/edit/design_edit.dart +++ b/lib/ui/design/edit/design_edit.dart @@ -131,30 +131,29 @@ class _DesignEditState extends State super.dispose(); } - void _onChanged() { - final design = widget.viewModel.design - .rebuild((b) => b..name = _nameController.text.trim()); + void _onChanged({bool debounce = true}) { + final design = widget.viewModel.design.rebuild((b) => b + ..name = _nameController.text.trim() + ..design.replace(BuiltMap({ + kDesignHeader: _headerController.text.trim(), + kDesignBody: _bodyController.text.trim(), + kDesignFooter: _footerController.text.trim(), + kDesignProducts: _productsController.text.trim(), + kDesignTasks: _tasksController.text.trim() ?? '', + kDesignIncludes: _includesController.text.trim() + }))); if (design != widget.viewModel.design) { - widget.viewModel.onChanged(design); - } - - _debouncer.run(() { - final design = widget.viewModel.design.rebuild((b) => b - ..design.replace(BuiltMap({ - kDesignHeader: _headerController.text.trim(), - kDesignBody: _bodyController.text.trim(), - kDesignFooter: _footerController.text.trim(), - kDesignProducts: _productsController.text.trim(), - kDesignTasks: _tasksController.text.trim() ?? '', - kDesignIncludes: _includesController.text.trim() - }))); - - if (design != widget.viewModel.design) { + if (debounce) { + _debouncer.run(() { + widget.viewModel.onChanged(design); + _loadPreview(context, design); + }); + } else { widget.viewModel.onChanged(design); _loadPreview(context, design); } - }); + } } void _onHtmlChanged() { @@ -178,7 +177,7 @@ class _DesignEditState extends State _controllers.forEach((controller) => controller.addListener(_onChanged)); - _onChanged(); + _onChanged(debounce: false); } void _loadPreview(BuildContext context, DesignEntity design) async { diff --git a/lib/ui/design/edit/design_edit_vm.dart b/lib/ui/design/edit/design_edit_vm.dart index 5d7d22899f4..7d099933540 100644 --- a/lib/ui/design/edit/design_edit_vm.dart +++ b/lib/ui/design/edit/design_edit_vm.dart @@ -29,7 +29,9 @@ class DesignEditScreen extends StatelessWidget { builder: (context, viewModel) { return DesignEdit( viewModel: viewModel, - key: ValueKey(viewModel.design.updatedAt), + // TODO this was commented out to prevent crashing on Windows + // after creating a new design + // key: ValueKey(viewModel.design.updatedAt), ); }, ); diff --git a/lib/ui/invoice/invoice_pdf.dart b/lib/ui/invoice/invoice_pdf.dart index 6dd06720e86..0766700f815 100644 --- a/lib/ui/invoice/invoice_pdf.dart +++ b/lib/ui/invoice/invoice_pdf.dart @@ -279,7 +279,7 @@ class _InvoicePdfViewState extends State { launch(invoice.invitationDownloadLink); } else { final directory = - await getExternalStorageDirectory(); + await getApplicationDocumentsDirectory(); final filePath = '${directory.path}/${invoice.invoiceId}.pdf'; final pdfData = file.File(filePath); diff --git a/lib/ui/invoice/view/invoice_view_overview.dart b/lib/ui/invoice/view/invoice_view_overview.dart index f838b20c160..725cc770140 100644 --- a/lib/ui/invoice/view/invoice_view_overview.dart +++ b/lib/ui/invoice/view/invoice_view_overview.dart @@ -254,6 +254,15 @@ class InvoiceOverview extends StatelessWidget { entity: relatedInvoice, )); } + } else { + final relatedInvoice = + memoizedInvoiceQuoteSelector(invoice, state.quoteState.map); + if (relatedInvoice != null) { + widgets.add(EntityListTile( + isFilter: isFilter, + entity: relatedInvoice, + )); + } } if (paymentMap.isNotEmpty) { diff --git a/lib/ui/recurring_invoice/recurring_invoice_presenter.dart b/lib/ui/recurring_invoice/recurring_invoice_presenter.dart index 4ffe9a9fd07..66f2e85f2fc 100644 --- a/lib/ui/recurring_invoice/recurring_invoice_presenter.dart +++ b/lib/ui/recurring_invoice/recurring_invoice_presenter.dart @@ -19,7 +19,6 @@ class RecurringInvoicePresenter extends EntityPresenter { return [ RecurringInvoiceFields.status, RecurringInvoiceFields.number, - RecurringInvoiceFields.invoiceNumber, RecurringInvoiceFields.client, RecurringInvoiceFields.amount, RecurringInvoiceFields.remainingCycles, @@ -57,7 +56,7 @@ class RecurringInvoicePresenter extends EntityPresenter { switch (field) { case RecurringInvoiceFields.status: return EntityStatusChip(entity: invoice); - case RecurringInvoiceFields.invoiceNumber: + case RecurringInvoiceFields.number: return Text((invoice.number ?? '').isEmpty ? localization.pending : invoice.number); diff --git a/lib/ui/reports/client_report.dart b/lib/ui/reports/client_report.dart index b2fc5cd001b..08d432987d4 100644 --- a/lib/ui/reports/client_report.dart +++ b/lib/ui/reports/client_report.dart @@ -85,7 +85,7 @@ ReportResult clientReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final clientReportSettings = reportSettings != null && reportSettings.containsKey(kReportClient) ? reportSettings[kReportClient] diff --git a/lib/ui/reports/contact_report.dart b/lib/ui/reports/contact_report.dart index bd8c8a12f13..d266c8be175 100644 --- a/lib/ui/reports/contact_report.dart +++ b/lib/ui/reports/contact_report.dart @@ -86,7 +86,7 @@ ReportResult contactReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final clientReportSettings = reportSettings != null && reportSettings.containsKey(kReportClient) ? reportSettings[kReportClient] diff --git a/lib/ui/reports/credit_report.dart b/lib/ui/reports/credit_report.dart index ae27edd7ca3..23b466d4222 100644 --- a/lib/ui/reports/credit_report.dart +++ b/lib/ui/reports/credit_report.dart @@ -86,7 +86,7 @@ ReportResult creditReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final creditReportSettings = reportSettings != null && reportSettings.containsKey(kReportCredit) ? reportSettings[kReportCredit] diff --git a/lib/ui/reports/document_report.dart b/lib/ui/reports/document_report.dart index bae5772058f..8e6285acccb 100644 --- a/lib/ui/reports/document_report.dart +++ b/lib/ui/reports/document_report.dart @@ -67,7 +67,7 @@ ReportResult documentReport( final localization = AppLocalization(AppLocalization.createLocale(Intl.defaultLocale)); - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final documentReportSettings = reportSettings != null && reportSettings.containsKey(kReportDocument) ? reportSettings[kReportDocument] diff --git a/lib/ui/reports/expense_report.dart b/lib/ui/reports/expense_report.dart index c23d109c86a..8033dba5854 100644 --- a/lib/ui/reports/expense_report.dart +++ b/lib/ui/reports/expense_report.dart @@ -78,7 +78,7 @@ ReportResult expenseReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final expenseReportSettings = reportSettings != null && reportSettings.containsKey(kReportExpense) ? reportSettings[kReportExpense] diff --git a/lib/ui/reports/invoice_item_report.dart b/lib/ui/reports/invoice_item_report.dart index fea33d8f201..ccb83f337ea 100644 --- a/lib/ui/reports/invoice_item_report.dart +++ b/lib/ui/reports/invoice_item_report.dart @@ -59,7 +59,7 @@ ReportResult lineItemReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final lineItemReportSettings = reportSettings != null && reportSettings.containsKey(kReportInvoiceItem) ? reportSettings[kReportInvoiceItem] diff --git a/lib/ui/reports/invoice_report.dart b/lib/ui/reports/invoice_report.dart index eb42b0d69e9..649c87dc604 100644 --- a/lib/ui/reports/invoice_report.dart +++ b/lib/ui/reports/invoice_report.dart @@ -93,7 +93,7 @@ ReportResult invoiceReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final invoiceReportSettings = reportSettings != null && reportSettings.containsKey(kReportInvoice) ? reportSettings[kReportInvoice] diff --git a/lib/ui/reports/invoice_tax_report.dart b/lib/ui/reports/invoice_tax_report.dart index 7462802e1c8..aae8ce8c526 100644 --- a/lib/ui/reports/invoice_tax_report.dart +++ b/lib/ui/reports/invoice_tax_report.dart @@ -50,7 +50,7 @@ ReportResult taxReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final taxRateReportSettings = reportSettings != null && reportSettings.containsKey(kReportInvoiceTax) ? reportSettings[kReportInvoiceTax] diff --git a/lib/ui/reports/payment_report.dart b/lib/ui/reports/payment_report.dart index 0425f328859..0d1a08a1ac2 100644 --- a/lib/ui/reports/payment_report.dart +++ b/lib/ui/reports/payment_report.dart @@ -52,7 +52,7 @@ ReportResult paymentReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final paymentReportSettings = reportSettings != null && reportSettings.containsKey(kReportPayment) ? reportSettings[kReportPayment] diff --git a/lib/ui/reports/payment_tax_report.dart b/lib/ui/reports/payment_tax_report.dart index 4bae84f500e..eb8c197e607 100644 --- a/lib/ui/reports/payment_tax_report.dart +++ b/lib/ui/reports/payment_tax_report.dart @@ -52,7 +52,7 @@ ReportResult paymentTaxReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final taxRateReportSettings = reportSettings != null && reportSettings.containsKey(kReportPaymentTax) ? reportSettings[kReportPaymentTax] diff --git a/lib/ui/reports/product_report.dart b/lib/ui/reports/product_report.dart index cb8844f3b51..ed997c2be3d 100644 --- a/lib/ui/reports/product_report.dart +++ b/lib/ui/reports/product_report.dart @@ -48,7 +48,7 @@ ReportResult productReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final productReportSettings = reportSettings != null && reportSettings.containsKey(kReportProduct) ? reportSettings[kReportProduct] diff --git a/lib/ui/reports/profit_loss_report.dart b/lib/ui/reports/profit_loss_report.dart index 8fc8d388973..8a060bc5db6 100644 --- a/lib/ui/reports/profit_loss_report.dart +++ b/lib/ui/reports/profit_loss_report.dart @@ -66,7 +66,7 @@ ReportResult profitAndLossReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final profitAndLossReportSettings = reportSettings != null && reportSettings.containsKey(kReportProfitAndLoss) ? reportSettings[kReportProfitAndLoss] diff --git a/lib/ui/reports/quote_item_report.dart b/lib/ui/reports/quote_item_report.dart index 63f12621970..9c3f5c17801 100644 --- a/lib/ui/reports/quote_item_report.dart +++ b/lib/ui/reports/quote_item_report.dart @@ -59,7 +59,7 @@ ReportResult lineItemReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final lineItemReportSettings = reportSettings != null && reportSettings.containsKey(kReportQuoteItem) ? reportSettings[kReportQuoteItem] diff --git a/lib/ui/reports/quote_report.dart b/lib/ui/reports/quote_report.dart index 8c18fd30128..c6386139837 100644 --- a/lib/ui/reports/quote_report.dart +++ b/lib/ui/reports/quote_report.dart @@ -85,7 +85,7 @@ ReportResult quoteReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final quoteReportSettings = reportSettings != null && reportSettings.containsKey(kReportQuote) ? reportSettings[kReportQuote] diff --git a/lib/ui/reports/reports_screen.dart b/lib/ui/reports/reports_screen.dart index e0f86e4af81..f9fdf176543 100644 --- a/lib/ui/reports/reports_screen.dart +++ b/lib/ui/reports/reports_screen.dart @@ -1229,9 +1229,13 @@ class ReportResult { final rows = []; final store = StoreProvider.of(context); final state = store.state; - final reportSettings = state.userCompany.settings - ?.reportSettings[state.uiState.reportsUIState.report] ?? - ReportSettingsEntity(); + final reportState = state.uiState.reportsUIState; + final settings = state.userCompany.settings; + final reportSettings = settings != null && + settings.reportSettings.containsKey(reportState.report) + ? settings.reportSettings[reportState.report] + : ReportSettingsEntity(); + final Map> totals = {}; final allColumns = []; diff --git a/lib/ui/reports/reports_screen_vm.dart b/lib/ui/reports/reports_screen_vm.dart index 57bda1d85eb..a7d35cf575a 100644 --- a/lib/ui/reports/reports_screen_vm.dart +++ b/lib/ui/reports/reports_screen_vm.dart @@ -422,10 +422,12 @@ class ReportsScreenVM { if (!kReleaseMode) { print('## DATA: $csvData'); - } else if (kIsWeb) { + } + + if (kIsWeb) { WebUtils.downloadTextFile(filename, csvData); } else { - final directory = await getExternalStorageDirectory(); + final directory = await getApplicationDocumentsDirectory(); final filePath = '${directory.path}/$filename'; final csvFile = file.File(filePath); csvFile.writeAsString(csvData); diff --git a/lib/ui/reports/task_report.dart b/lib/ui/reports/task_report.dart index 76a15d9e692..644da1195c8 100644 --- a/lib/ui/reports/task_report.dart +++ b/lib/ui/reports/task_report.dart @@ -80,7 +80,7 @@ ReportResult taskReport( final List> data = []; BuiltList columns; - final reportSettings = userCompany.settings.reportSettings; + final reportSettings = userCompany.settings?.reportSettings; final taskReportSettings = reportSettings != null && reportSettings.containsKey(kReportTask) ? reportSettings[kReportTask] diff --git a/lib/utils/completers.dart b/lib/utils/completers.dart index 4825412d27d..594a847cf58 100644 --- a/lib/utils/completers.dart +++ b/lib/utils/completers.dart @@ -124,3 +124,27 @@ class Debouncer { callback(); } } + +class PersistUIDebouncer { + PersistUIDebouncer(); + + static VoidCallback action; + static Timer timer; + + void run(VoidCallback action) { + if (timer == null) { + Debouncer.action = action; + } else { + timer.cancel(); + Debouncer.action = action; + } + + timer = Timer(Duration(milliseconds: kMillisecondsToDebounceWrite), () { + if (action != null) { + action(); + } + Debouncer.action = null; + Debouncer.timer = null; + }); + } +} diff --git a/lib/utils/i18n.dart b/lib/utils/i18n.dart index 1d5e025c1e1..46103732a07 100644 --- a/lib/utils/i18n.dart +++ b/lib/utils/i18n.dart @@ -1960,6 +1960,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'sq': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -3904,6 +3917,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'ar': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -5840,6 +5866,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'zh_TW': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -7753,6 +7792,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'hr': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -9692,6 +9744,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'cs': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -11628,6 +11693,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'da': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -13564,6 +13642,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'nl': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -15526,6 +15617,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'en_GB': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -17461,24 +17565,37 @@ mixin LocalizationsProvider on LocaleCodeAware { 'status_color_theme': 'Status Color Theme', 'load_color_theme': 'Load Color Theme', }, - 'fi': { - 'normal': 'Normal', + 'et': { + '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', + 'normal': 'Tavaline', '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', + 'extra_large': 'Väga suur', + 'show_pdf_preview': 'Kuva PDF-i eelvaade', + 'show_pdf_preview_help': 'Kuva PDF-i eelvaade arvete redigeerimise ajal', + 'print_pdf': 'Prindi PDF', + 'remind_me': 'Tuleta mulle meelde', 'instant_bank_pay': 'Instant Bank Pay', 'click_selected': 'Click Selected', - 'hide_preview': 'Hide Preview', - 'edit_record': 'Edit Record', + 'hide_preview': 'Peida eelvaade', + 'edit_record': 'Redigeeri kirjet', 'credit_is_more_than_invoice': - 'The credit amount can not be more than the invoice amount', + 'Ettemaksusumma ei tohi olla suurem kui arve summa', 'giropay': 'GiroPay', - 'direct_debit': 'Direct Debit', - 'please_set_a_password': 'Please set an account password', - 'set_password': 'Aseta salasana', + 'direct_debit': 'Otsekorraldusega', + 'please_set_a_password': 'Palun määra konto parool', + 'set_password': 'Sea Salasõna', 'recommend_desktop': 'We recommend using the desktop app for the best performance', 'recommend_mobile': @@ -17486,227 +17603,2180 @@ mixin LocalizationsProvider on LocaleCodeAware { 'disconnected_gateway': 'Successfully disconnected gateway', 'disconnect': 'Disconnect', 'add_to_invoices': 'Add to Invoices', - 'acss': 'Esihyväksy debit korttimaksut', - 'becs': 'BECS Direct Debit', - 'bulk_download': 'Download', + 'acss': 'Eelvolitatud deebetmaksed', + 'becs': 'BECS otsekorraldus', + 'bulk_download': 'Lae alla', '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', + 'client_postal_code': 'Kliendi postiindeks', + 'client_vat_number': 'Kliendi KMKR number', 'has_tasks': 'Has Tasks', - 'registration': 'Registration', + 'registration': 'Registreerimine', 'unauthorized_stripe_warning': - 'Please authorize Stripe to accept online payments.', - 'view_expense': 'Näytä kulu # :kulu', - 'view_statement': 'Näytä Tiliote', - 'sepa': 'SEPA-maksu', + 'Volitage Stripe võrgumakseid vastu võtma.', + 'view_expense': 'Vaadake kulu # :kulu', + 'view_statement': 'Vaata aruannet', + 'sepa': 'SEPA Direct Debit', 'ideal': 'iDEAL', 'przelewy24': 'Przelewy24', 'eps': 'EPS', 'fpx': 'FPX', - 'update_all_records': 'Update all records', - 'system': 'Järjestelmä', - 'set_default_company': 'Set Default Company', - 'updated_company': 'Successfully updated company', + 'update_all_records': 'Värskendage kõiki kirjeid', + 'system': 'Süsteem', + 'set_default_company': 'Määrake vaikeettevõte', + 'updated_company': 'Ettevõtte värskendamine õnnestus', 'kbc': 'KBC', - 'bancontact': 'Bancontact', - 'why_are_you_leaving': 'Help us improve by telling us why (optional)', + 'bancontact': 'Blokeeri kontakt', + 'why_are_you_leaving': + 'Aidake meil täiustada, öelge meile põhjus (valikuline)', 'webhook_success': 'Webhook Success', - 'error_cross_client_tasks': 'Tasks must all belong to the same client', + 'error_cross_client_tasks': + 'Kõik ülesanded peavad kuuluma samale kliendile', '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', + 'Kõik kulud peavad kuuluma samale kliendile', + 'app': 'Rakendus', + 'for_best_performance': + 'Parima suutlikuse saavutamiseks laadige alla rakendus :app', 'gross_line_total': 'Gross line total', 'bulk_email_invoice': 'Email Invoice', 'bulk_email_quote': 'Email Quote', 'bulk_email_credit': 'Email Credit', - 'from_name': 'From nimi', - 'clone_to_expense': 'Kopioi kuluksi', - 'recurring_expense': 'toistuva kulu', - 'recurring_expenses': 'toistuva kulut', - 'new_recurring_expense': 'uusi toistuva kulu', - 'edit_recurring_expense': 'muokkaa toistuva kulu', - 'created_recurring_expense': 'onnistuneesti luotu toistuva kulu', - 'updated_recurring_expense': 'onnistuneesti päivitetty toistuva kulu', - 'archived_recurring_expense': 'onnistuneesti arkistoitu toistuva kulu', - 'deleted_recurring_expense': 'Projekti poistettu onnistuneesti', + 'from_name': 'Kellelt Nimi', + 'clone_to_expense': 'Klooni kuluks', + 'recurring_expense': 'Korduva kulu', + 'recurring_expenses': 'Korduvad kulud', + 'new_recurring_expense': 'Uus Korduv kulu', + 'edit_recurring_expense': 'Redigeeri Korduv kulu', + 'created_recurring_expense': 'Korduva kulu loomine õnnestus', + 'updated_recurring_expense': 'Korduva kulu värskendamine õnnestus', + 'archived_recurring_expense': 'Korduva kulu arhiveerimine õnnestus', + 'deleted_recurring_expense': 'Projekti kustutamine õnnestus', 'removed_recurring_expense': 'Successfully removed recurring expense', - 'restored_recurring_expense': 'onnistuneesti palautettu toistuva kulu', + 'restored_recurring_expense': 'Korduva kulu taastamine õnnestus', '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', + 'last_sent_date': 'Viimase saatmise kuupäev', + 'include_drafts': 'Kaasa mustandid', + 'include_drafts_help': 'Kaasake aruannetesse kirjete mustandid', 'is_invoiced': 'Is Invoiced', - 'change_plan': 'Change Plan', + 'change_plan': 'Muuda plaani', 'persist_data': 'Persist Data', - 'customer_count': 'Customer Count', - 'verify_customers': 'Verify Customers', + 'customer_count': 'Klientide arv', + 'verify_customers': 'Kinnitage kliendid', 'google_analytics': 'Google Analytics', - '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', + 'google_analytics_tracking_id': 'Google Analyticsi jälgimise ID', + 'decimal_comma': 'Kümnendkoma', + 'use_comma_as_decimal_place': 'Kasutage vormides koma kümnendkohana', + 'select_method': 'Valige meetod', + 'select_platform': 'Valige Platvorm', 'use_web_app_to_connect_gmail': - 'Please use the web app to connect to Gmail', - 'expense_tax_help': 'Item tax rates are disabled', + 'Kasutage Gmailiga ühenduse loomiseks veebirakendust', + 'expense_tax_help': 'Kauba maksumäärad on keelatud', 'enable_markdown': 'Enable Markdown', 'enable_markdown_help': 'Convert markdown to HTML on the PDF', - 'user_guide': 'User Guide', - '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', + 'user_guide': 'Kasutusjuhend', + 'add_second_contact': 'Lisa teine ​​kontakt', + 'previous_page': 'Eelmine leht', + 'next_page': 'Järgmine leht', + 'export_colors': 'Ekspordi värve', + 'import_colors': 'Impordi värve', + 'clear_all': 'Puhasta kõik', + 'contrast': 'Kontrast', + 'custom_colors': 'Kohandatud värvid', + 'colors': 'Värvid', + 'sidebar_active_background_color': 'Külgriba aktiivne taustavärv', + 'sidebar_active_font_color': 'Külgriba aktiivne fondivärv', + 'sidebar_inactive_background_color': 'Külgriba mitteaktiivne taustavärv', + 'sidebar_inactive_font_color': 'Külgriba passiivne fondi värv', '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', - 'net_subtotal': 'Netto', - 'review_app': 'Review App', - 'check_status': 'Check Status', - 'free_trial': 'Free Trial', + 'Tabeli alternatiivse rea taustavärv', + 'invoice_header_background_color': 'Arve päise taustavärv', + 'invoice_header_font_color': 'Arve päise fondi värv', + 'net_subtotal': 'Neto kokku', + 'review_app': 'Vaadake rakendus üle', + 'check_status': 'Kontrolli olekut', + 'free_trial': 'Tasuta prooviversioon', '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.', + 'Kõik kontod saavad Pro-paketi kahenädalase prooviperioodi. Kui prooviperiood lõppeb, muutub teie konto automaatselt tasuta paketiks.', 'free_trial_ends_in_days': - 'The Pro plan trial ends in :count days, click to upgrade.', + 'Pro-paketi prooviperiood lõpeb :kogus päeva pärast, klõpsake versiooniuuendamiseks.', 'free_trial_ends_today': - 'Today is the last day of the Pro plan trial, click to upgrade.', - 'change_email': 'Change Email', + 'Täna on Pro-paketi prooviversiooni viimane päev, klõpsake versiooniuuendamiseks.', + 'change_email': 'Muuda meiliaadressi', 'client_portal_domain_hint': 'Optionally configure a separate client portal domain', - 'tasks_shown_in_portal': 'Tasks Shown in Portal', + 'tasks_shown_in_portal': 'Portaalis kuvatud ülesanded', '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_data': 'Tuo tietoja', - 'import_settings': 'Import Settings', - 'json_file_missing': 'Please provide the JSON file', - 'json_option_missing': 'Please select to import the settings and/or data', + 'import_data': 'Impordi Andmed', + 'import_settings': 'Impordi sätted', + 'json_file_missing': 'Esitage JSON-fail', + 'json_option_missing': 'Valige importimiseks seaded ja/või andmed', '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', + 'no_payment_types_enabled': 'Ühtegi maksetüüpi pole lubatud', + 'wait_for_data': 'Palun oodake andmete laadimise lõpetamist', + 'net_total': 'Netosumma', + 'has_taxes': 'On maksud', + 'import_customers': 'Impordi kliendid', + 'imported_customers': 'Klientide importimine algas edukalt', + 'login_success': 'Sisselogimine õnnestus', + 'login_failure': 'Sisselogimine ebaõnnestus', + 'exported_data': 'Kui fail on valmis, saate allalaadimislingiga meili', + 'include_deleted_clients': 'Sisaldab kustutatud kliente', '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', + 'Laadige kustutatud klientidele kuuluvad kirjed', + 'step_1_sign_in': '1. samm: logige sisse', + 'step_2_authorize': '2. samm: autoriseerimine', + 'account_id': 'Konto ID', 'migration_not_yet_completed': 'The migration has not yet completed', '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', - 'show_task_end_date': 'Show Task End Date', - 'show_task_end_date_help': 'Enable specifying the task end date', + 'show_task_end_date': 'Näita ülesande lõppkuupäeva', + 'show_task_end_date_help': 'Lubage ülesande lõppkuupäeva määramine', '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', + 'preview_sidebar': 'Külgriba eelvaade', + 'years_data_shown': 'Näidatud aastate andmed', + 'ended_all_sessions': 'Kõik seansid on edukalt lõppenud', + 'end_all_sessions': 'Lõpetage kõik seansid', + 'count_session': '1 seanss', + 'count_sessions': ':kogus seansse', + 'invoice_created': 'Arve loodud', + 'quote_created': 'Hinnapakkumine loodud', + 'credit_created': 'Ettemaks loodud', 'pro': 'Pro', - 'enterprise': 'Enterprise', - 'last_updated': 'viime päivitetty', - 'invoice_item': 'Invoice Item', - 'quote_item': 'Quote Item', - 'contact_first_name': 'kontakti ensimmäinen nimi', - 'contact_last_name': 'kontakti viime nimi', - 'order': 'Order', - 'unassigned': 'Kohdistamaton', - 'partial_value': - 'Täytyy olla suurempi kuin nolla ja vähemmän kuin kaikki yhteensä', - 'search_kanban': 'Search Kanban', - 'search_kanbans': 'Search Kanban', + 'enterprise': 'Ettevõte', + 'last_updated': 'Viimati uuendatud', + 'invoice_item': 'Arve üksus', + 'quote_item': 'Hinnapakkumise üksus', + 'contact_first_name': 'Kontakti Eesnimi', + 'contact_last_name': 'Kontakti Perekonnanimi', + 'order': 'Telli', + 'unassigned': 'Määramata', + 'partial_value': 'Peab olema suurem kui null ja väiksem kui kogusumma', + 'search_kanban': 'Otsige Kanbanist', + 'search_kanbans': 'Otsige Kanbanist', 'kanban': 'Kanban', - 'enable': 'Ota käyttöön', - 'move_top': 'Move Top', - 'move_up': 'Move Up', - 'move_down': 'Move Down', - 'move_bottom': 'Move Bottom', + 'enable': 'Luba', + 'move_top': 'Liigu üles', + 'move_up': 'Liigu üles', + 'move_down': 'Liigu alla', + 'move_bottom': 'Liigu alla', 'subdomain_help': - 'Aseta alidomain tai näytä lasku omalla verkkosivullasi.', + 'Set the subdomain or display the invoice on your own website.', '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', + 'is_viewed': 'On vaadatud', + 'letter': 'Kiri', + 'legal': 'Juriidiline', + 'page_layout': 'Lehe kujundus', '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', + 'invoice_payment_terms': 'Arve tasumise tingimused', + 'quote_valid_until': 'Pakkumine kehtib kuni', + 'no_headers': 'Päised puuduvad', + 'add_header': 'Lisa päis', + 'remove_header': 'Eemalda päis', 'return_url': 'Return URL', - 'rest_method': 'REST Method', + 'rest_method': 'REST meetod', 'header_key': 'Header Key', - 'header_value': 'Header Value', + 'header_value': 'Päise väärtus', 'recurring_products': 'Recurring Products', 'promo_code': 'Promo code', - 'promo_discount': 'Promo Discount', - 'allow_cancellation': 'Allow Cancellation', + 'promo_discount': 'Promo allahindlus', + 'allow_cancellation': 'Luba tühistamine', 'per_seat_enabled': 'Per Seat Enabled', 'max_seats_limit': 'Max Seats Limit', - 'trial_enabled': 'Trial Enabled', - 'trial_duration': 'Trial Duration', + 'trial_enabled': 'Prooviversioon lubatud', + 'trial_duration': 'Prooviperioodi kestus', 'allow_query_overrides': 'Allow Query Overrides', 'allow_plan_changes': 'Allow Plan Changes', 'plan_map': 'Plan Map', - 'refund_period': 'Refund Period', + 'refund_period': 'Tagastamisperiood', 'webhook_configuration': 'Webhook Configuration', - 'purchase_page': 'Purchase Page', - 'security': 'Security', - 'email_bounced': 'Email Bounced', - 'email_spam_complaint': 'Spam Complaint', - 'email_delivery': 'Email Delivery', + 'purchase_page': 'Ostu leht', + 'security': 'Turvalisus', + 'email_bounced': 'E-post põrkus tagasi', + 'email_spam_complaint': 'Rämpsposti kaebus', + 'email_delivery': 'E-posti teel kohaletoimetamine', 'webhook_response': 'Webhook Response', - 'pdf_response': 'PDF Response', - 'authentication_failure': 'Authentication Failure', - 'pdf_failed': 'PDF Failed', - 'pdf_success': 'PDF Success', - 'modified': 'Modified', + 'pdf_response': 'PDF vastus', + 'authentication_failure': 'Autentimise ebaõnnestumine', + 'pdf_failed': 'PDF ebaõnnestus', + 'pdf_success': 'PDF õnnestus', + 'modified': 'Muudetud', 'subscription': 'Subscription', - 'subscriptions': 'Subscriptions', + 'subscriptions': 'Tellimused', 'new_subscription': 'New Subscription', - 'edit_subscription': 'muokkaa tilaus', - 'created_subscription': 'onnistuneesti luotu tilaus', - 'updated_subscription': 'onnistuneesti päivitetty tilaus', - 'archived_subscription': 'onnistuneesti arkistoitu tilaus', + 'edit_subscription': 'Redigeeri tellimust', + 'created_subscription': 'Tellimuse loomine õnnestus', + 'updated_subscription': 'Tellimuse värskendamine õnnestus', + 'archived_subscription': 'Tellimuse arhiveerimine õnnestus', + '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': 'Shared Invoice/Credit Counter', + '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', + 'resend_invite': 'Saada kutse uuesti', + 'disabled_two_factor': 'Successfully disabled 2FA', + 'connected_google': 'Successfully connected account', + 'disconnected_google': 'Successfully disconnected account', + 'delivered': 'Delivered', + 'bounced': 'Bounced', + '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', + 'two_factor_setup_help': 'Scan the bar code with a :link compatible app.', + 'enabled_two_factor': 'Kahefaktoriline autentimine edukalt rakendatud', + 'connect_google': 'Connect Google', + 'disconnect_google': 'Disconnect Google', + 'enable_two_factor': 'Kaheastmeline Autentimine', + 'disable_two_factor': 'Disable Two Factor', + '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', + 'refunded_payment': 'Tagastatud makse', + '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', + 'counter_pattern_error': + 'To use :client_counter please add either :client_number or :client_id_number to prevent conflicts', + 'this_quarter': 'See kvartal', + 'last_quarter': 'Viimane kvartal', + 'to_update_run': 'To update run', + 'convert_to_invoice': 'Muuda Arveks', + 'registration_url': 'Registreerimise URL', + 'invoice_project': 'Arve projekt', + 'invoice_task': 'Koosta ülesande arve', + 'invoice_expense': 'Arve kulu', + 'search_payment_term': 'Search 1 Payment Term', + 'search_payment_terms': 'Search :count Payment Terms', + 'save_and_preview': 'Salvesta ja eelvaade', + 'save_and_email': 'Salvesta ja saada meil', + 'supported_events': 'Supported Events', + 'converted_amount': 'Konverteeritud summa', + 'converted_balance': 'Konverteeritud saldo', + 'converted_paid_to_date': 'Converted Paid to Date', + 'converted_credit_balance': 'Converted Credit Balance', + 'converted_total': 'Converted Total', + 'is_sent': 'On saadetud', + 'default_documents': 'Vaikimisi Dokumendid', + 'document_upload': 'Dokumendi üleslaadimine', + 'document_upload_help': 'Võimaldab klientidel dokumente üles laadida', + 'expense_total': 'Kulud kokku', + 'enter_taxes': 'Sisestage Maksud', + 'by_rate': 'By Rate', + 'by_amount': 'Summa järgi', + 'enter_amount': 'Sisesta summa', + 'before_taxes': 'Enne makse', + 'after_taxes': 'Peale makse', + 'color': 'Värv', + 'show': 'Näita', + 'hide': 'Peida', + 'empty_columns': 'Tühjad veerud', + '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': 'Viimased ülesanded', + 'recent_expenses': 'Viimased kulud', + 'upcoming_expenses': 'Eelseisvad kulud', + 'update_app': 'Värskenda rakendust', + 'started_import': 'Impordi alustamine õnnestus', + 'duplicate_column_mapping': 'Duplicate column mapping', + 'uses_inclusive_taxes': 'Uses Inclusive Taxes', + 'is_amount_discount': 'Is Amount Discount', + 'column': 'Tulp', + 'sample': 'Näidis', + 'map_to': 'Map To', + 'import': 'Import', + 'first_row_as_column_names': 'Use first row as column names', + 'select_file': 'Valige fail', + 'no_file_selected': 'No File Selected', + 'csv_file': 'CSV fail', + 'csv': 'CSV', + 'freshbooks': 'FreshBooks', + 'invoice2go': 'Invoice2go', + 'invoicely': 'Invoicely', + 'waveaccounting': 'Wave Accounting', + 'zoho': 'Zoho', + 'accounting': 'Accounting', + 'required_files_missing': 'Please provide all CSVs.', + 'import_type': 'Import Type', + 'html_mode': 'HTML režiim', + 'html_mode_help': 'Värskenduste eelvaade on kiirem, kuid vähem täpne', + 'view_licenses': 'Vaadake litsentse', + 'webhook_url': 'Webhook URL', + 'fullscreen_editor': 'Fullscreen Editor', + 'sidebar_editor': 'Sidebar Editor', + 'please_type_to_confirm': 'Kinnitamiseks tippige \":value\".', + 'purge': 'Purge', + 'service': 'Teenus', + 'clone_to': 'Kloonida', + 'clone_to_other': 'Clone to Other', + 'labels': 'Sildid', + 'add_custom': 'Lisa kohandatud', + 'payment_tax': 'Payment Tax', + 'unpaid': 'Maksmata', + 'white_label': 'White Label', + 'delivery_note': 'Saateleht', + 'sent_invoices_are_locked': 'Saadetud arved on lukus', + 'paid_invoices_are_locked': 'Tasutud arved on lukus', + 'source_code': 'Source Code', + 'app_platforms': 'Rakenduste platvormid', + 'invoice_late': 'Arve Hilinenud', + 'quote_expired': 'Hinnapakkumine aegunud', + 'partial_due': 'Osaline tähtaeg', + 'invoice_total': 'Arve kokku', + 'quote_total': 'Hinnapakkumine kokku', + 'credit_total': 'Ettemakse kokku', + 'recurring_invoice_total': 'Arve kokku', + 'actions': 'Tegevused', + 'expense_number': 'Kulu number', + 'task_number': 'Ülesande number', + 'project_number': 'Projekti number', + 'project_name': 'Projekti nimi', + 'warning': 'Hoiatus', + 'view_settings': 'Kuva Seaded', + 'company_disabled_warning': + 'Hoiatus: see ettevõte pole veel aktiveeritud', + 'late_invoice': 'Hilinenud arve', + 'expired_quote': 'Aegunud hinnapakkumine', + 'remind_invoice': 'Tuleta meelde arvet', + 'cvv': 'CVV', + 'client_name': 'Kliendi Nimi', + 'client_phone': 'Kliendi telefon', + 'required_fields': 'nõutud väljad', + 'calculated_rate': 'Calculated Rate', + 'default_task_rate': 'Default Task Rate', + 'clear_cache': 'Clear Cache', + 'sort_order': 'Sort Order', + 'task_status': 'Olek', + 'task_statuses': 'Ülesande olekud', + 'new_task_status': 'Uus ülesande olek', + 'edit_task_status': 'Redigeeri ülesande olekut', + 'created_task_status': 'Ülesande olek on edukalt loodud', + 'updated_task_status': 'Ülesande staatus edukalt uuendatud', + 'archived_task_status': 'Ülesande olek on edukalt arhiveeritud', + 'deleted_task_status': 'Ülesande olek on edukalt kustutatud', + 'removed_task_status': 'Ülesande olek on edukalt eemaldatud', + 'restored_task_status': 'Ülesande olek on edukalt taastatud', + 'archived_task_statuses': + ':value ülesannete olekute arhiveerimine õnnestus', + 'deleted_task_statuses': ':value ülesannete olekute kustutamine õnnestus', + 'restored_task_statuses': ':value ülesannete olekute taastamine õnnestus', + 'search_task_status': 'Search 1 Task Status', + 'search_task_statuses': 'Otsi :kogus ülesande olekuid', + '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', + 'invoice_task_datelog': 'Invoice Task Datelog', + 'invoice_task_datelog_help': 'Add date details to the invoice line items', + 'auto_start_tasks_help': 'Start tasks before saving', + 'configure_statuses': 'Olekute seadistamine', + 'task_settings': 'Ülesande seaded', + 'configure_categories': 'Configure Categories', + 'expense_categories': 'Kulukategooriad', + 'new_expense_category': 'Uus kulukategooria', + 'edit_expense_category': 'Edit Expense Category', + 'created_expense_category': 'Kulukategooria loomine õnnestus', + 'updated_expense_category': 'Kulukategooria värskendamine õnnestus', + 'archived_expense_category': 'Kulukategooria arhiiveerimine õnnestus', + 'deleted_expense_category': 'Kategooria edukalt kustutatud', + 'removed_expense_category': 'Kulukategooria eemaldamine õnnestus', + 'restored_expense_category': 'Kulukategooria edukalt taastatud', + 'archived_expense_categories': + 'Edukalt arhiveeritud :kogus kulukategooriat', + 'deleted_expense_categories': + 'Kulude :väärtus kategooriad edukalt kustutatud', + 'restored_expense_categories': + 'Kulude :väärtus kategooriad edukalt taastatud', + 'search_expense_category': 'Search 1 Expense Category', + 'search_expense_categories': 'Search :count Expense Categories', + 'use_available_credits': 'Use Available Credits', + 'show_option': 'Näita valikut', + 'negative_payment_error': + 'The credit amount cannot exceed the payment amount', + 'view_changes': 'Kuva muudatused', + 'force_update': 'Sunniviisiline uuendus', + 'force_update_help': + 'Kasutate uusimat versiooni, kuid saadaval võib olla ootel parandusi.', + 'mark_paid_help': 'Jälgige, et kulu on tasutud', + 'should_be_invoiced': 'Tuleks esitada arve', + 'should_be_invoiced_help': 'Enable the expense to be invoiced', + 'add_documents_to_invoice_help': 'Tee dokumendid nähtavaks', + 'convert_currency_help': 'Määrake vahetuskurss', + 'expense_settings': 'Kuluseaded', + 'clone_to_recurring': 'Klooni korduvasse', + 'crypto': 'Krüpto', + 'paypal': 'PayPal', + 'alipay': 'Alipay', + 'sofort': 'Sofort', + 'apple_pay': 'Apple/Google Pay', + 'user_field': 'Kasutaja väli', + 'variables': 'Muutujad', + 'show_password': 'Näita parooli', + 'hide_password': 'Peida parool', + 'copy_error': 'Kopeerimise viga', + 'capture_card': 'Capture Card', + 'auto_bill_enabled': 'Auto Bill Enabled', + 'total_taxes': 'Maksud kokku', + 'line_taxes': 'Rea maksud', + 'total_fields': 'Väljad kokku', + 'stopped_recurring_invoice': 'Korduva arve peatamine õnnestus', + 'started_recurring_invoice': 'Korduva arve esitamine õnnestus', + 'resumed_recurring_invoice': 'Korduva arve esitamise jätkamine õnnestus', + 'gateway_refund': 'Gateway Refund', + 'gateway_refund_help': 'Process the refund with the payment gateway', + 'due_date_days': 'Tähtaeg', + 'paused': 'Peatatud', + 'mark_active': 'Märgi aktiivseks', + 'day_count': 'Päev :kogus', + 'first_day_of_the_month': 'Kuu esimene päev', + 'last_day_of_the_month': 'Kuu viimane päev', + 'use_payment_terms': 'Kasutage maksetingimusi', + 'endless': 'Lõputu', + 'next_send_date': 'Järgmise saatmise kuupäev', + 'remaining_cycles': 'Ülejäänud tsüklid', + 'recurring_invoice': 'Perioodiline Arve', + 'recurring_invoices': 'Perioodilised Arved', + 'new_recurring_invoice': 'Uus Perioodiline Arve', + 'edit_recurring_invoice': 'Redigeeri korduv arvet', + 'created_recurring_invoice': 'Korduv arve on edukalt loodud', + 'updated_recurring_invoice': 'Korduva arve värskendamine õnnestus', + 'archived_recurring_invoice': 'Kordusarve edukalt arhiveeritud', + 'deleted_recurring_invoice': 'Kordusarve edukalt kustutatud', + 'removed_recurring_invoice': 'Korduva arve eemaldamine õnnestus', + 'restored_recurring_invoice': 'Kordusarve edukalt taastatud', + 'archived_recurring_invoices': + ':value korduvad arved on edukalt arhiveeritud', + 'deleted_recurring_invoices': + ':value korduvad arved on edukalt kustutatud', + 'restored_recurring_invoices': + ':value korduvad arved on edukalt taastatud', + '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', + 'profit': 'Kasum', + 'line_item': 'Line Item', + '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': 'Testirežiim', + 'opened': 'Avatud', + 'payment_reconciliation_failure': 'Reconciliation Failure', + 'payment_reconciliation_success': 'Reconciliation Success', + 'gateway_success': 'Gateway Success', + 'gateway_failure': 'Gateway Failure', + 'gateway_error': 'Gateway Error', + 'email_send': 'Saada meil', + 'email_retry_queue': 'Email Retry Queue', + 'failure': 'Ebaõnnestumine', + 'quota_exceeded': 'Kvoot ületatud', + 'upstream_failure': 'Upstream Failure', + 'system_logs': 'Süsteemi logid', + 'view_portal': 'Vaata portaali', + 'copy_link': 'Kopeeri link', + 'token_billing': 'Salvestage kaardi andmed', + 'welcome_to_invoice_ninja': 'Tere tulemast Invoice Ninjasse', + 'always': 'Alati', + 'optin': 'Opt-In', + 'optout': 'Opt-Out', + 'label': 'Silt', + 'client_number': 'Kliendi Number', + 'auto_convert': 'Automaatne teisendamine', + 'company_name': 'Ettevõtte nimi', + 'reminder1_sent': '1. meeldetuletus saadetud', + 'reminder2_sent': '2. meeldetuletus saadetud', + 'reminder3_sent': '3. meeldetuletus saadetud', + 'reminder_last_sent': 'Viimati saadetud meeldetuletus', + 'pdf_page_info': 'Lehekülg :praegune :kokku', + 'emailed_invoices': 'Arved edukalt meili teel saadetud', + 'emailed_quotes': 'Hinnapakkumised edukalt meili teel saadetud', + 'emailed_credits': 'Ettemakse on meili teel edukalt saadetud', + 'gateway': 'Lüüs', + 'view_in_stripe': 'Waata Stripe\'is', + 'rows_per_page': 'Ridu lehekülje kohta', + 'hours': 'Tundi', + 'statement': 'Aruanne', + 'taxes': 'Maksud', + 'surcharge': 'Surcharge', + 'apply_payment': 'Rakenda makse', + 'apply_credit': 'Kasuta ettemaksu', + 'apply': 'Rakenda', + 'unapplied': 'Rakendamata', + 'select_label': 'Vali Silt', + 'custom_labels': 'Kohandatud sildid', + 'record_type': 'Kirje tüüp', + 'record_name': 'Kirje nimi', + 'file_type': 'Faili tüüp', + 'height': 'Kõrgus', + 'width': 'Laius', + 'to': 'Kellele', + 'health_check': 'Health Check', + 'payment_type_id': 'Makse Tüüp', + 'last_login_at': 'Viimane sisselogimine', + 'company_key': 'Company Key', + 'storefront': 'Storefront', + 'storefront_help': 'Lubage kolmandate osapoolte rakendustel arveid luua', + 'client_created': 'Klient loodud', + 'online_payment_email': 'Online Payment Email', + 'manual_payment_email': 'Manual Payment Email', + 'completed': 'Lõpetatud', + 'gross': 'Bruto', + 'net_amount': 'Neto kogus', + 'net_balance': 'Neto jääk', + 'client_settings': 'Kliendi seaded', + 'selected_invoices': 'Valitud arved', + 'selected_payments': 'Valitud maksed', + 'selected_quotes': 'Valitud hinnapakkumised', + 'selected_tasks': 'Valitud ülesanded', + 'selected_expenses': 'Valitud kulud', + 'upcoming_invoices': 'Eesseisvad arved', + 'past_due_invoices': 'Tähtaja ületanud arved', + 'recent_payments': 'Hiljutised Maksed', + 'upcoming_quotes': 'Eesseisvad Pakkumused', + 'expired_quotes': 'Aegunud hinnapakkumised', + 'create_client': 'Loo Klient', + 'create_invoice': 'Loo Arve', + 'create_quote': 'Loo Pakkumus', + 'create_payment': 'Create Payment', + 'create_vendor': 'Loo hankija', + 'update_quote': 'Värskenda hinnapakkumist', + 'delete_quote': 'Kustuta Pakkumus', + 'update_invoice': 'Uuenda arvet', + 'delete_invoice': 'Kustuta Arve', + 'update_client': 'Uuenda klienti', + 'delete_client': 'Kustuta Klient', + 'delete_payment': 'Kustuta Makse', + 'update_vendor': 'Värskenda tarnijat', + 'delete_vendor': 'Kustuta tarnija', + 'create_expense': 'Loo kulu', + 'update_expense': 'Värskenda kulusid', + 'delete_expense': 'Kustuta kulud', + 'create_task': 'Loo Ülesanne', + 'update_task': 'Värskenda ülesannet', + 'delete_task': 'Kustuta Ülesanne', + 'approve_quote': 'Kinnita pakkumine', + 'off': 'Off', + 'when_paid': 'Kui makstud', + 'expires_on': 'Aegub', + 'free': 'Tasuta', + 'plan': 'Pakett', + 'show_sidebar': 'Kuva külgriba', + 'hide_sidebar': 'Peida külgriba', + 'event_type': 'Event Type', + 'target_url': 'Sihtmärk', + 'copy': 'Kopeeri', + 'must_be_online': + 'Pärast Interneti ühenduse loomist taaskäivitage rakendus', + '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', + '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_tokens': 'API Tokenid', + 'api_docs': 'API Docs', + 'search_tokens': 'Otsi :kogus token', + 'search_token': 'Otsi 1 Token', + 'token': 'Token', + 'tokens': 'Tokenid', + 'new_token': 'Uus Token', + 'edit_token': 'Redigeeri Tokenit', + 'created_token': 'Token edukalt loodud', + 'updated_token': 'Token edukalt värskendatud', + 'archived_token': 'Tokeni arhiveerimine õnnestus', + 'deleted_token': 'Token edukalt kustutatud', + 'removed_token': 'Token on edukalt eemaldatud', + 'restored_token': 'Token edukalt taastatud', + 'archived_tokens': ':value tokenit edukalt arhiveeritud', + 'deleted_tokens': ':value tokenit edukalt kustutatud', + 'restored_tokens': ':value tokenit edukalt taastatud', + 'client_registration': 'Kliendi registreerimine', + 'client_registration_help': + 'Võimaldab klientidel end portaalis registreerida', + 'customize_and_preview': 'Kohanda ja eelvaade', + 'email_invoice': 'Saada Arve', + 'email_quote': 'Hinnapakkumine e-posti', + 'email_credit': 'Email Credit', + 'email_payment': 'Email Payment', + 'client_email_not_set': 'Kliendil pole e-posti aadressi määratud', + 'ledger': 'Pearaamat', + 'view_pdf': 'Vaata PDF-i', + 'all_records': 'Kõik kirjed', + 'owned_by_user': 'Kasutaja omanduses', + 'credit_remaining': 'Järelejäänud ettemakse', + 'contact_name': 'Kontaktisiku nimi', + 'use_default': 'Kasuta vaikeseadet', + 'reminder_endless': 'Lõputud meeldetuletused', + 'number_of_days': 'Päevade arv', + 'configure_payment_terms': 'Seadistage maksetingimused', + 'payment_term': 'Maksetingimus', + 'new_payment_term': 'Uus maksetingimus', + 'edit_payment_term': 'Muuda maksetähtaega', + 'created_payment_term': 'Maksetingimus edukalt loodud', + 'updated_payment_term': 'Maksetingimus edukalt uuendatud', + 'archived_payment_term': 'Maksetingimus edukalt arhiveeritud', + 'deleted_payment_term': 'Maksetingimus edukalt kustutatud', + 'removed_payment_term': 'Maksetingimus edukalt eemaldatud', + 'restored_payment_term': 'Maksetingimus edukalt taastatud', + 'archived_payment_terms': ':value maksetingimused edukalt arhiveeritud', + 'deleted_payment_terms': ':value maksetingimused edukalt kustutatud', + 'restored_payment_terms': ':value maksetingimused edukalt taastatud', + 'email_sign_in': 'Logige sisse e-postiga', + 'change': 'Muuda', + 'change_to_mobile_layout': 'Kas muuta mobiilipaigutust?', + 'change_to_desktop_layout': 'Kas muuta töölaua paigutust?', + 'send_from_gmail': 'Saada Gmailist', + 'reversed': 'Reversed', + 'cancelled': 'Tühistatud', + 'credit_amount': 'Krediidi summa', + 'quote_amount': 'Pakkumise summa', + 'hosted': 'Hosted', + 'selfhosted': 'Self-Hosted', + 'exclusive': 'Exclusive', + 'inclusive': 'Inclusive', + 'hide_menu': 'Peida menüü', + 'show_menu': 'Kuva menüü', + 'partially_refunded': 'Osaliselt tagastatud', + 'search_documents': 'Otsi dokumente', + 'search_designs': 'Otsi disaine', + 'search_invoices': 'Otsi arveid', + 'search_clients': 'Otsi kliente', + 'search_products': 'Otsi tooteid', + 'search_quotes': 'Otsi hinnapakkumisi', + 'search_credits': 'Otsi ettemakseid', + 'search_vendors': 'Otsi tarnijaid', + 'search_users': 'Otsi kasutajaid', + 'search_tax_rates': 'Otsi maksumäärasid', + 'search_tasks': 'Otsi ülesandeid', + 'search_settings': 'Otsige seadeid', + 'search_projects': 'Otsi projekte', + 'search_expenses': 'Otsi kulusid', + 'search_payments': 'Otsi makseid', + 'search_groups': 'Otsi gruppe', + 'search_company': 'Otsi ettevõtet', + 'search_document': 'Otsi 1 dokumenti', + 'search_design': 'Otsi 1 Disain', + 'search_invoice': 'Otsi 1 Arve', + 'search_client': 'Otsi 1 klienti', + 'search_product': 'Otsi 1 toodet', + 'search_quote': 'Otsi 1 hinnapakkumist', + 'search_credit': 'Otsi 1 ettemakset', + 'search_vendor': 'Otsi 1 tarnijat', + 'search_user': 'Otsi 1 kasutajat', + 'search_tax_rate': 'Otsi 1 Maksumäär', + 'search_task': 'Search 1 Tasks', + 'search_project': 'Otsi 1 projekti', + 'search_expense': 'Otsi 1 kulu', + 'search_payment': 'Otsi 1 Makset', + 'search_group': 'Otsi 1 rühmast', + 'refund_payment': 'Tagasimakse', + 'cancelled_invoice': 'Arve tühistamine õnnestus', + 'cancelled_invoices': 'Arvete tühistamine õnnestus', + 'reversed_invoice': 'Arve tühistati edukalt', + 'reversed_invoices': 'Arved tühistati edukalt', + 'reverse': 'Tühista', + 'full_name': 'Täisnimi', + 'city_state_postal': 'City/State/Postal', + 'postal_city_state': 'Postal/City/State', + 'custom1': 'Esimene Kohandatud', + 'custom2': 'Teine Kohandatud', + 'custom3': 'Third Custom', + 'custom4': 'Fourth Custom', + 'optional': 'Valikuline', + 'license': 'Litsents', + 'purge_data': 'Puhasta Andmed', + 'purge_successful': 'Successfully purged company data', + 'purge_data_message': + 'Hoiatus: see kustutab teie andmed jäädavalt, tagasi võtta ei saa.', + 'invoice_balance': 'Arve saldo', + 'age_group_0': '0 - 30 Päeva', + 'age_group_30': '30 - 60 Päeva', + 'age_group_60': '60 - 90 Päeva', + 'age_group_90': '90 - 120 Päeva', + 'age_group_120': '120+ Päeva', + 'refresh': 'Värskenda', + 'saved_design': 'Kujundus salvestati edukalt', + 'client_details': 'Kliendi üksikasjad', + 'company_address': 'Ettevõtte aadress', + 'invoice_details': 'Arve Üksikasjad', + 'quote_details': 'Hinnapakkumise üksikasjad', + 'credit_details': 'Ettemaksu üksikasjad', + 'product_columns': 'Toote veerud', + 'task_columns': 'Ülesande veerud', + 'add_field': 'Lisa väli', + 'all_events': 'Kõik sündmused', + 'permissions': 'Õigused', + 'none': 'Mitte ühtegi', + 'owned': 'Owned', + 'payment_success': 'Makse õnnestumine', + 'payment_failure': 'Makse ebaõnnestumine', + 'invoice_sent': ':count arve saadetud', + 'quote_sent': 'Hinnapakkumine on saadetud', + 'credit_sent': 'Ettemakse on saadetud', + 'invoice_viewed': 'Arvet on vaadatud', + 'quote_viewed': 'Hinnapakkumist on vaadatud', + 'credit_viewed': 'Ettemakset on vaadatud', + 'quote_approved': 'Hinnapakkumine heaks kiidetud', + 'receive_all_notifications': 'Saa kõik teated', + 'purchase_license': 'Purchase License', + 'apply_license': 'Rakenda litsents', + 'cancel_account': 'Kustuta Konto', + 'cancel_account_message': + 'Hoiatus: See kustutab jäädavalt teie konto, ennistamis võimalus puudub.', + 'delete_company': 'Kustuta Ettevõte', + 'delete_company_message': + 'Hoiatus: see kustutab teie ettevõtte jäädavalt ja seda ei saa tagasi võtta.', + 'enabled_modules': 'Lubatud moodulid', + 'converted_quote': 'Hinnapakkumine on edukalt teisendatud', + 'credit_design': 'Credit Design', + 'includes': 'Sisaldab', + 'header': 'Päis', + 'load_design': 'Lae Kujundus', + 'css_framework': 'CSS Framework', + 'custom_designs': 'Kohandatud kujundused', + 'designs': 'Kujundus', + 'new_design': 'Uus kujundus', + 'edit_design': 'Redigeeri kujundust', + 'created_design': 'Kujundus on edukalt loodud', + 'updated_design': 'Kujundus on edukalt uuendatud', + 'archived_design': 'Kujundus on edukalt arhiveeritud', + 'deleted_design': 'Kujundus on edukalt kustutatud', + 'removed_design': 'Kujundus on edukalt eemaldatud', + 'restored_design': 'Kujundus on edukalt taastatud', + 'archived_designs': ':value kujundust edukalt arhiveeritud', + 'deleted_designs': ':value kujundust edukalt kustutatud', + 'restored_designs': ':value kujundust edukalt taastatud', + 'proposals': 'Pakkumised', + 'tickets': 'Piletid', + 'recurring_quotes': 'Perioodilised Pakkumised', + 'recurring_tasks': 'Korduvad ülesanded', + 'account_management': 'Konto Haldus', + 'credit_date': 'Krediidi kuupäev', + 'credit': 'Krediit', + 'credits': 'Krediidid', + 'new_credit': 'Sisesta krediit', + 'edit_credit': 'Redigeeri ettemaksu', + 'created_credit': 'Ettemaksu loomine õnnestus', + 'updated_credit': 'Ettemakse uuendamine õnnestus', + 'archived_credit': 'Ettemaksu arhiveerimine õnnestus', + 'deleted_credit': 'Ettemaksu kustutamine õnnestus', + 'removed_credit': 'Ettemaksu eemaldamine õnnestus', + 'restored_credit': 'Ettemakse taastamine õnnestus', + 'archived_credits': ':kogus ettemakset on edukalt arhiveeritud', + 'deleted_credits': ':kogus ettemakset on edukalt kustutatud', + 'restored_credits': ':value ettemakset edukalt taastatud', + 'current_version': 'Praegune versioon', + 'latest_version': 'Uusim versioon', + 'update_now': 'Uuendage kohe', + 'a_new_version_is_available': 'Saadaval on veebirakenduse uus versioon', + 'update_available': 'Uuendus saadaval', + 'app_updated': 'Uuendus edukalt lõpule viidud', + 'learn_more': 'Rohkem teavet', + 'integrations': 'Integrations', + 'tracking_id': 'Jälgimise ID', + 'slack_webhook_url': 'Slack Webhook URL', + 'credit_footer': 'Credit Footer', + 'credit_terms': 'Ettemaksu tingimused', + 'new_company': 'Uus Ettevõte', + 'added_company': 'Ettevõte on edukalt lisatud', + 'company1': 'Kohandatud ettevõte 1', + 'company2': 'Kohandatud ettevõte 2', + 'company3': 'Kohandatud ettevõte 3', + 'company4': 'Kohandatud ettevõte 4', + 'product1': 'Kohandatud toode 1', + 'product2': 'Kohandatud toode 2', + 'product3': 'Kohandatud toode 3', + 'product4': 'Kohandatud toode 4', + 'client1': 'Kohandatud klient 1', + 'client2': 'Kohandatud klient 2', + 'client3': 'Kohandatud klient 3', + 'client4': 'Kohandatud klient 4', + 'contact1': 'Kohandatud kontakt 1', + 'contact2': 'Kohandatud kontakt 2', + 'contact3': 'Kohandatud kontakt 3', + 'contact4': 'Kohandatud kontakt 4', + 'task1': 'Kohandatud ülesanne 1', + 'task2': 'Kohandatud ülesanne 2', + 'task3': 'Kohandatud ülesanne 3', + 'task4': 'Kohandatud ülesanne 4', + 'project1': 'Kohandatud projekt 1', + 'project2': 'Kohandatud projekt 2', + 'project3': 'Kohandatud projekt 3', + 'project4': 'Kohandatud projekt 4', + 'expense1': 'Kohandatud kulu 1', + 'expense2': 'Kohandatud kulu 2', + 'expense3': 'Kohandatud kulu 3', + 'expense4': 'Kohandatud kulu 4', + 'vendor1': 'Kohandatud tarnija 1', + 'vendor2': 'Kohandatud tarnija 2', + 'vendor3': 'Kohandatud tarnija 3', + 'vendor4': 'Kohandatud tarnija 4', + 'invoice1': 'Kohandatud arve 1', + 'invoice2': 'Kohandatud arve 2', + 'invoice3': 'Kohandatud arve 3', + 'invoice4': 'Kohandatud arve 4', + 'payment1': 'Kohandatud makse 1', + 'payment2': 'Kohandatud makse 2', + 'payment3': 'Kohandatud makse 3', + 'payment4': 'Kohandatud makse 4', + 'surcharge1': 'Kohandatud lisatasu 1', + 'surcharge2': 'Kohandatud lisatasu 2', + 'surcharge3': 'Kohandatud lisatasu 3', + 'surcharge4': 'Kohandatud lisatasu 4', + 'group1': 'Kohandatud rühm 1', + 'group2': 'Kohandatud rühm 2', + 'group3': 'Kohandatud rühm 3', + 'group4': 'Kohandatud rühm 4', + 'reset': 'Lähtesta', + 'number': 'Number', + 'export': 'Eksport', + 'chart': 'Diagramm', + 'count': 'Kogus', + 'totals': 'Kokkuvõtted', + 'blank': 'Tühi', + 'day': 'Päev', + 'month': 'Kuu', + 'year': 'Aasta', + 'subgroup': 'Subgroup', + 'is_active': 'On Aktiivne', + 'group_by': 'Grupeeri', + 'credit_balance': 'Kreediidi saldo', + 'contact_last_login': 'Kontakti viimane sisselogimine', + 'contact_full_name': 'Kontakti täisnimi', + 'contact_phone': 'Kontakt Telefon', + 'contact_custom_value1': 'Kontakti kohandatud väärtus 1', + 'contact_custom_value2': 'Kontakti kohandatud väärtus 2', + 'contact_custom_value3': 'Kontakti kohandatud väärtus 3', + 'contact_custom_value4': 'Kontakti kohandatud väärtus 4', + 'shipping_address1': 'Shipping Street', + 'shipping_address2': 'Shipping Apt/Suite', + 'shipping_city': 'Shipping City', + 'shipping_state': 'Shipping State/Province', + 'shipping_postal_code': 'Saatmise postiindeks', + 'shipping_country': 'Tarneriik', + 'billing_address1': 'Arvelduse tänav', + 'billing_address2': 'Arvelduse korter/sviit', + 'billing_city': 'Arvelduse linn', + 'billing_state': 'Arvelduse maakond', + 'billing_postal_code': 'Billing Postal Code', + 'billing_country': 'Arveldusriik', + 'client_id': 'Kliendi ID', + 'assigned_to': 'Määratud', + 'created_by': 'Loonud :name', + 'assigned_to_id': 'Määratud Id\'le', + 'created_by_id': 'Loodud Id poolt', + 'add_column': 'Lisa veerg', + 'edit_columns': 'Muuda veerge', + 'columns': 'Tulbad', + 'aging': 'Aging', + 'profit_and_loss': 'Kasum ja Kahjum', + 'reports': 'Raportid', + 'report': 'Raport', + 'add_company': 'Lisa Ettevõte', + 'unpaid_invoice': 'Tasutama Arve', + 'paid_invoice': 'Tasutud Arve', + 'unapproved_quote': 'Kinnitamata Pakkumus', + 'help': 'Abi', + 'refund': 'Tagasimakse', + 'refund_date': 'Tagastamise kuupäev', + 'filtered_by': 'Filtreeritud', + 'contact_email': 'Kontakt e-posti aadress', + 'multiselect': 'Mitmikvalimine', + 'entity_state': 'Maakond', + 'verify_password': 'Kinnita parool', + 'applied': 'Rakendatud', + 'include_recent_errors': 'Kaasake hiljutised vead logidest', + 'your_message_has_been_received': + 'Saime teie sõnumi kätte ja proovime kiiresti vastata.', + 'message': 'Sõnum', + 'from': 'Kellet', + 'show_product_details': 'Kuva toote üksikasjad', + 'show_product_details_help': + 'Lisage toote rippmenüüsse kirjeldus ja maksumus', + 'pdf_min_requirements': 'PDF-i renderdaja nõuab versiooni :versioon', + 'adjust_fee_percent': 'Reguleerige viivise protsenti', + 'adjust_fee_percent_help': 'Viivise arvestamiseks kohandage protsenti', + 'configure_settings': 'Configure Settings', + 'support_forum': 'Tugifoorum', + 'about': 'About', + 'documentation': 'Dokumentatsioon', + 'contact_us': 'Võta Ühendust', + 'subtotal': 'Kokku', + 'line_total': 'Summa', + 'item': 'Kirje', + 'credit_email': 'Credit Email', + 'iframe_url': 'Koduleht', + 'domain_url': 'Domeeni URL', + 'password_is_too_short': 'Parool on liiga lühike', + 'password_is_too_easy': 'Parool peab sisaldama suurtähti ja numbrit', + 'client_portal_tasks': 'Kliendiportaali ülesanded', + 'client_portal_dashboard': 'Client Portal Dashboard', + 'please_enter_a_value': 'Palun sisestage väärtus', + 'deleted_logo': 'Logo kustutamine õnnestus', + 'yes': 'Jah', + 'no': 'Ei', + 'generate_number': 'Loo number', + 'when_saved': 'Kui salvestatud', + 'when_sent': 'Kui saadetud', + 'select_company': 'Valige ettevõte', + 'float': 'Float', + 'collapse': 'Ahenda', + 'show_or_hide': 'Näita/Peida', + 'menu_sidebar': 'Menüü Külgriba', + 'history_sidebar': 'Ajaloo külgriba', + 'tablet': 'Tahvelarvuti', + 'mobile': 'Mobiil', + 'desktop': 'Desktop', + 'layout': 'Paigutus', + 'view': 'Vaata', + 'module': 'Moodul', + 'first_custom': 'Esimene kohandatud', + 'second_custom': 'Teine kohandatud', + 'third_custom': 'Kolmas kohandatud', + 'show_cost': 'Näita maksumust', + 'show_product_cost': 'Näita toote maksumust', + 'show_cost_help': 'Lisaväärtuse/kasumi jälgimiseks kuvage tootekulu väli', + 'show_product_quantity': 'Näita toote kogust', + 'show_product_quantity_help': + 'Kuvage toote koguse väli, muidu vaikimisi üks', + 'show_invoice_quantity': 'Näita arve kogust', + 'show_invoice_quantity_help': + 'Kuvage reaüksuse koguse väli, muul juhul vaikimisi üks', + 'show_product_discount': 'Show Product Discount', + 'show_product_discount_help': 'Display a line item discount field', + 'default_quantity': 'Vaikimisi kogus', + 'default_quantity_help': 'Määrake rea artikli koguseks automaatselt üks', + 'one_tax_rate': 'Üks maksumäär', + 'two_tax_rates': 'Kaks maksumäära', + 'three_tax_rates': 'Kolm maksumäära', + 'default_tax_rate': 'Vaikimisi maksumäär', + 'user': 'Kasutaja', + 'invoice_tax': 'Arve maks', + 'line_item_tax': 'Rea artikli maks', + 'inclusive_taxes': 'Kaasa arvatud maksud', + 'invoice_tax_rates': 'Arve maksumäärad', + 'item_tax_rates': 'Kauba maksumäärad', + 'no_client_selected': 'Valige klient', + 'configure_rates': 'Määrake määrad', + 'configure_gateways': 'Configure Gateways', + 'tax_settings': 'Maksu Seaded', + 'tax_settings_rates': 'Maksumäärad', + 'accent_color': 'Aktsentvärv', + 'switch': 'Switch', + 'comma_sparated_list': 'Komaga eraldatud loend', + 'options': 'Valikud', + 'single_line_text': 'Üherealine tekst', + 'multi_line_text': 'Mitmerealine tekst', + 'dropdown': 'Rippmenüü', + 'field_type': 'Välja tüüp', + 'recover_password_email_sent': 'Parooli taastamise meil on saadetud', + 'submit': 'Sisesta', + 'recover_password': 'Taasta oma parool', + 'late_fees': 'Late Fees', + 'credit_number': 'Credit Number', + 'payment_number': 'Makse number', + 'late_fee_amount': 'Viivise summa', + 'late_fee_percent': 'Viivise protsent', + 'schedule': 'Schedule', + 'before_due_date': 'Enne tähtaega', + 'after_due_date': 'Pärast tähtaega', + 'after_invoice_date': 'Pärast arve kuupäeva', + 'days': 'Päeva', + 'invoice_email': 'Arve E-kiri', + 'payment_email': 'Makse E-kiri', + 'partial_payment': 'Osaline makse', + 'payment_partial': 'Partial Payment', + 'partial_payment_email': 'Partial Payment Email', + 'quote_email': 'Pakkumuse E-kiri', + 'endless_reminder': 'Lõputu Meeldetuletus', + 'filtered_by_user': 'Filtreeritud kasutaja järgi', + 'administrator': 'Administraator', + 'administrator_help': + 'Luba kasutajal hallata kasutajaid, muuta seadeid ja muuta kõiki kirjeid', + 'user_management': 'Kasutaja Haldus', + 'users': 'Kasutajad', + 'new_user': 'Uus Kasutaja', + 'edit_user': 'Muuda Kasutajat', + 'created_user': 'Kasutaja loomine õnnestus', + 'updated_user': 'Kasutaja värskendamine õnnestus', + 'archived_user': 'Kasutaja arhiveerimine õnnestus', + 'deleted_user': 'Kasutaja edukalt kustutatud', + 'removed_user': 'Kasutaja eemaldamine õnnestus', + 'restored_user': 'Kasutaja taastamine õnnestus', + 'archived_users': ':value kasutaja arhiveerimine õnnestus', + 'deleted_users': ':value kasutaja kustutamine õnnestus', + 'removed_users': ':value kasutaja eemaldamine õnnestus', + 'restored_users': ':value kasutaja taastamine õnnestus', + 'general_settings': 'Üldised Seaded', + 'invoice_options': 'Arve Valikud', + 'hide_paid_to_date': 'Peida Tasutud Väli', + 'hide_paid_to_date_help': + 'Ainult näita \"Tasutud\" välja arvel, kui makse on loodud.', + 'invoice_embed_documents': 'Manusta dokumendid', + 'invoice_embed_documents_help': 'Lisage arvele lisatud pildid.', + 'all_pages_header': 'Näita Päist', + 'all_pages_footer': 'Näita Jalust', + 'first_page': 'Esimene lehekülg', + 'all_pages': 'Kõik leheküljed', + 'last_page': 'Viimane lehekülg', + 'primary_font': 'Esmane font', + 'secondary_font': 'Sekundaarne font', + 'primary_color': 'Põhi värv', + 'secondary_color': 'Sekundaarne värv', + 'page_size': 'Lehekülje suurus', + 'font_size': 'Fondi suurus', + 'quote_design': 'Pakkumuse Kujundus', + 'invoice_fields': 'Arve Väljad', + 'product_fields': 'Toote Väljad', + 'invoice_terms': 'Arve Tingimused', + 'invoice_footer': 'Arve Jalus', + 'quote_terms': 'Hinnapakkumise tingimused', + 'quote_footer': 'Pakkumuse Jalus', + 'auto_email_invoice': 'Automaatne meil', + 'auto_email_invoice_help': + 'Saatke korduv arve automatselt meiliga nende loomisel.', + 'auto_archive_invoice': 'Automaatne arhiveerimine', + 'auto_archive_invoice_help': + 'Arhiivige automaatselt arved, kui need on tasutud.', + 'auto_archive_quote': 'Automaatne arhiveerimine', + 'auto_archive_quote_help': + 'Arhiivi hinnapakkumised automaatselt pärast nende teisendamist.', + 'auto_convert_quote': 'Automaatne teisendamine', + 'auto_convert_quote_help': + 'Konverteerige hinnapakkumine automaatselt arveks, kui klient on selle heaks kiitnud.', + 'workflow_settings': 'Töövoo Seaded', + 'freq_daily': 'Igapäevane', + 'freq_weekly': 'Iganädalane', + 'freq_two_weeks': 'Kaks nädalat', + 'freq_four_weeks': 'Neli nädalat', + 'freq_monthly': 'Igakuine', + 'freq_two_months': 'Kaks kuud', + 'freq_three_months': 'Kvartaalne', + 'freq_four_months': 'Neli kuud', + 'freq_six_months': 'Poolaastane', + 'freq_annually': 'Aastane', + 'freq_two_years': 'Kaks aastat', + 'freq_three_years': 'Kolm aastat', + 'never': 'Ei iial', + 'company': 'Ettevõte', + 'generated_numbers': 'Genereeritud Numbrid', + 'charge_taxes': 'Tasuda makse', + 'next_reset': 'Järgmine lähtestamine', + 'reset_counter': 'Lähtestage loendur', + 'recurring_prefix': 'Recurring Prefix', + 'number_padding': 'Number Padding', + 'general': 'General', + 'surcharge_field': 'Lisatasu väli', + 'company_field': 'Ettevõtte Väljad', + 'company_value': 'Ettevõtte väärtus', + 'credit_field': 'Ettemakse väli', + 'invoice_field': 'Arve Väljad', + 'invoice_surcharge': 'Arve Lisatasu', + 'client_field': 'Kliendi Väljad', + 'product_field': 'Toote Väljad', + 'payment_field': 'Makse väli', + 'contact_field': 'Kontakti Väli', + 'vendor_field': 'Tarnija väli', + 'expense_field': 'Kulude väli', + 'project_field': 'Projekti väli', + 'task_field': 'Ülesande Väli', + 'group_field': 'Rühma väli', + 'number_counter': 'Numbri loendur', + 'prefix': 'Prefiks', + 'number_pattern': 'Numbri muster', + 'messages': 'Sõnumid', + 'custom_css': 'Kohandatud CSS', + 'custom_javascript': 'Kohandatud JavaScript', + 'signature_on_pdf': 'Näita PDFis', + 'signature_on_pdf_help': 'Näita kliendi allkirja arve/pakkumuse PDFis.', + 'show_accept_invoice_terms': 'Arve Tingimuste Märkeruut', + 'show_accept_invoice_terms_help': + 'Nõua kliendilt kinnitust, et ta nõustub arve tingimustega.', + 'show_accept_quote_terms': 'Pakkumuse Tingimuste Märkeruut', + 'show_accept_quote_terms_help': + 'Nõua kliendilt kinnitust, et ta nõustub hinnapakkumise tingimustega.', + 'require_invoice_signature': 'Arve Allkiri', + 'require_invoice_signature_help': 'Nõua kliendi allkirja', + 'require_quote_signature': 'Pakkumuse Allkiri', + 'enable_portal_password': 'Salasõnaga Kaitstud Arved', + 'enable_portal_password_help': + 'Võimaldab määrata igale kontaktile salasõna. Kui salasõna on määratud siis nõutakse kontaktilt enne arve nägemist salasõna.', + 'authorization': 'Autoriseerimine', + 'subdomain': 'Alamdomeen', + 'domain': 'Domeen', + 'portal_mode': 'Portaali režiim', + 'email_signature': 'Lugupidamisega.', + 'enable_email_markup_help': + 'Muutke oma klientidel teile maksmine lihtsamaks, lisades oma meilidele schema.org-i märgistuse.', + 'plain': 'Lihtne', + 'light': 'Hele', + 'dark': 'Tume', + 'email_design': 'E-kirja Kujundus', + 'attach_pdf': 'Lisage PDF', + 'attach_documents': 'Lisage dokumendid', + 'attach_ubl': 'Kinnitage UBL', + 'email_style': 'Meili stiil', + 'enable_email_markup': 'Luba märgistus', + 'reply_to_email': 'Vastus meilile', + 'reply_to_name': 'Reply-To Name', + 'bcc_email': 'BCC Email', + 'processed': 'Processed', + 'credit_card': 'Krediitkaart', + 'bank_transfer': 'Pangaülekanne', + 'priority': 'Prioriteet', + 'fee_amount': 'Viivise summa', + 'fee_percent': 'Viivise protsent', + 'fee_cap': 'Fee Cap', + 'limits_and_fees': 'Limits/Fees', + 'enable_min': 'Luba min', + 'enable_max': 'Luba max', + 'min_limit': 'Min: :min', + 'max_limit': 'Max: :max', + 'min': 'Min', + 'max': 'Max', + 'accepted_card_logos': 'Accepted Card Logos', + 'credentials': 'Credentials', + 'update_address': 'Värskenda aadressi', + 'update_address_help': + 'Värskendage kliendi aadressi esitatud üksikasjadega', + 'rate': 'Määr', + 'tax_rate': 'Maksumäär', + 'new_tax_rate': 'Uus Maksumäär', + 'edit_tax_rate': 'Muuda maksumäära', + 'created_tax_rate': 'Maksumäär on edukalt loodud', + 'updated_tax_rate': 'Maksumäära värskendamine õnnestus', + 'archived_tax_rate': 'Maksumäära arhiivimine õnnestus', + 'deleted_tax_rate': 'Maksumäär kustutati edukalt', + 'restored_tax_rate': 'Maksumäär taastati edukalt', + 'archived_tax_rates': ':value maksumäärad edukalt arhiveeritud', + 'deleted_tax_rates': ':value maksumäärad edukalt kustutatud', + 'restored_tax_rates': ':value maksumäärad edukalt taastatud', + 'fill_products': 'Automaatselt täidetavad tooted', + 'fill_products_help': + 'Toote valimine täidab automaatselt kirjelduse ja maksumuse', + 'update_products': 'Toodete automaatne värskendamine', + 'update_products_help': + 'Arve värskendamine toimub automaatselt värskendage tootekogu', + 'convert_products': 'Konverteeri tooteid', + 'convert_products_help': + 'Konverteerige toodete hinnad automaatselt kliendi valuutasse', + 'fees': 'Fees', + 'limits': 'Limiidid', + 'provider': 'Pakkuja', + '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', + 'archived_company_gateways': 'Successfully archived :value gateways', + 'deleted_company_gateways': 'Successfully deleted :value gateways', + 'restored_company_gateways': 'Successfully restored :value gateways', + 'continue_editing': 'Jätka redigeerimist', + 'discard_changes': 'Loobu muudatustest', + 'default_value': 'Vaikeväärtus', + 'disabled': 'Keelatud', + 'currency_format': 'Valuuta vorming', + 'first_day_of_the_week': 'Nädala esimene päev', + 'first_month_of_the_year': 'Aasta esimene kuu', + 'sunday': 'pühapäev', + 'monday': 'esmaspäev', + 'tuesday': 'teisipäev', + 'wednesday': 'kolmapäev', + 'thursday': 'neljapäev', + 'friday': 'reede', + 'saturday': 'laupäev', + 'january': 'jaanuar', + 'february': 'veebruar', + 'march': 'märts', + 'april': 'aprill', + 'may': 'mai', + 'june': 'juuni', + 'july': 'juuli', + 'august': 'august', + 'september': 'september', + 'october': 'oktoober', + 'november': 'november', + 'december': 'detsember', + 'symbol': 'Sümbol', + 'ocde': 'Kood', + 'date_format': 'Kuupäevavorming', + 'datetime_format': 'Kuupäeva ja kellaaja vorming', + 'military_time': '24-tunnine Aeg', + 'military_time_help': '24 Hour Display', + 'send_reminders': 'Saatke meeldetuletusi', + 'timezone': 'Ajavöönd', + 'filtered_by_project': 'Filtreeritud projekti järgi', + 'filtered_by_group': 'Filtreeritud grupi järgi', + 'filtered_by_invoice': 'Filtreeritud arve järgi', + 'filtered_by_client': 'Filtreeritud kliendi järgi', + 'filtered_by_vendor': 'Filtreeritud tarnija järgi', + 'group_settings': 'Grupi seaded', + 'group': 'Grupp', + 'groups': 'Grupid', + 'new_group': 'Uus grupp', + 'edit_group': 'Redigeeri gruppi', + 'created_group': 'Grupi loomine õnnestus', + 'updated_group': 'Grupi uuendamine õnnestus', + 'archived_groups': ':value rühma edukalt arhiveeritud', + 'deleted_groups': ':value rühma edukalt kustutatud', + 'restored_groups': 'Successfully restored :value groups', + 'archived_group': 'Grupi arhiveerimine õnnestus', + 'deleted_group': 'Grupi kustutamine õnnestus', + 'restored_group': 'Grupi taastamine õnnestus', + 'upload_logo': 'Laadige logo üles', + 'uploaded_logo': 'Logo üleslaadimine õnnestus', + 'logo': 'Logo', + 'saved_settings': 'Seadete salvestamine õnnestus', + 'product_settings': 'Toote Seaded', + 'device_settings': 'Seadme sätted', + 'defaults': 'Vaikimisi', + 'basic_settings': 'Elementaarsed Seaded', + 'advanced_settings': 'Täpsemad Seaded', + 'company_details': 'Ettevõtte Andmed', + 'user_details': 'Kasutaja Üksikasjad', + 'localization': 'Lokalisatsioon', + 'online_payments': 'Võrgumaksed', + 'tax_rates': 'Maksumäärad', + 'notifications': 'Teated', + 'import_export': 'Import | Eksport', + 'custom_fields': 'Kohandatud Väljad', + 'invoice_design': 'Arve Kujundus', + 'buy_now_buttons': 'Osta Kohe Nupp', + 'email_settings': 'E-posti Seaded', + 'templates_and_reminders': 'Mallid ja meeldetuletused', + 'credit_cards_and_banks': 'Krediitkaardid ja pangad', + 'data_visualizations': 'Andmete visualiseerimised', + 'price': 'Hind', + 'email_sign_up': 'Meili registreerumine', + 'google_sign_up': 'Google\'i registreerumine', + 'thank_you_for_your_purchase': 'Täname teid ostu eest!', + 'redeem': 'Redeem', + 'back': 'Tagasi', + 'past_purchases': 'Varasemad ostud', + 'annual_subscription': 'Aastane tellimus', + 'pro_plan': 'Pro Plan', + 'enterprise_plan': 'Enterprise Plan', + 'count_users': ':kogus kasutajaid', + 'upgrade': 'Uuendage', + 'please_enter_a_first_name': 'Palun sisestage eesnimi', + 'please_enter_a_last_name': 'Palun sisestage perekonnanimi', + 'please_agree_to_terms_and_privacy': + 'Konto loomiseks nõustuge teenusetingimuste ja privaatsuspoliitikaga.', + 'i_agree_to_the': 'ma nõustun', + 'terms_of_service': 'Teenuse Tingimused', + 'privacy_policy': 'Privaatsuspoliitika', + 'sign_up': 'Registreeru', + 'account_login': 'Konto sisselogimine', + 'view_website': 'Vaata veebisaiti', + 'create_account': 'Loo konto', + 'email_login': 'Email Login', + 'create_new': 'Loo Uus', + 'no_record_selected': 'Kirjet pole valitud', + 'error_unsaved_changes': 'Palun salvestage või tühistage oma muudatused', + 'download': 'Lae alla', + 'requires_an_enterprise_plan': 'Requires an enterprise plan', + 'take_picture': 'Tee pilt', + 'upload_file': 'Lae fail üles', + 'document': 'Dokument', + 'documents': 'Dokumendid', + 'new_document': 'Uus dokument', + 'edit_document': 'Redigeeri dokumenti', + 'uploaded_document': 'Dokument edukalt üles laetud', + 'updated_document': 'Dokument edukalt uuendatud', + 'archived_document': 'Dokument edukalt arhiveeritud', + 'deleted_document': 'Dokument edukalt kustutatud', + 'restored_document': 'Dokument edukalt taastatud', + 'archived_documents': ':value dokumenti edukalt arhiveeritud', + 'deleted_documents': ':value dokumenti edukalt kustutatud', + 'restored_documents': 'Successfully restored :value documents', + 'no_history': 'Ajalugu pole', + 'expense_date': 'Kulu kuupäev', + 'pending': 'Ootel', + 'expense_status_1': 'Logitud', + 'expense_status_2': 'Ootel', + 'expense_status_3': 'Invoiced', + 'converted': 'Teisendatud', + 'add_documents_to_invoice': 'Lisage arvele dokumendid', + 'exchange_rate': 'Vahetuskurss', + 'convert_currency': 'Konverteeri valuutat', + 'mark_paid': 'Märgi makstuks', + 'category': 'Kategooria', + 'address': 'Aadress', + 'new_vendor': 'Uus Tarnija', + 'created_vendor': 'Tarnija loomine õnnestus', + 'updated_vendor': 'Tarnija värskendamine õnnestus', + 'archived_vendor': 'Tarnija arhiivimine õnnestus', + 'deleted_vendor': 'Tarnija edukalt kustutatud', + 'restored_vendor': 'Tarnija edukalt taastatud', + 'archived_vendors': ':kogus tarnijaid on edukalt arhiveeritud', + 'deleted_vendors': ':kogus tarnijad on edukalt kustutatud', + 'restored_vendors': ':value tarnijat edukalt taastatud', + 'new_expense': 'Sisestage kulu', + 'created_expense': 'Kulu on edukalt loodud', + 'updated_expense': 'Kulu edukalt uuendatud', + 'archived_expense': 'Kulu edukalt arhiveeritud', + 'deleted_expense': 'Kulu edukalt kustutatud', + 'restored_expense': 'Kulud edukalt taastatud', + 'archived_expenses': 'Kulud edukalt arhiveeritud', + 'deleted_expenses': 'Kulud edukalt kustutatud', + 'restored_expenses': ':value kulu edukalt taastatud', + 'copy_shipping': 'Copy Shipping', + 'copy_billing': 'Copy Billing', + 'design': 'Kujundus', + 'failed_to_find_record': 'Kirjet ei leitud', + 'invoiced': 'Arve esitatud', + 'logged': 'Logitud', + 'running': 'Running', + 'resume': 'Jätka', + 'task_errors': 'Parandage kõik kattuvad ajad', + 'start': 'Käivita', + 'stop': 'Peata', + 'started_task': 'Ülesanne edukalt käivitatud', + 'stopped_task': 'Ülesanne edukalt peatatud', + 'resumed_task': 'Ülesanne edukalt jätkatud', + 'now': 'Nüüd', + 'auto_start_tasks': 'Ülesannete automaatne käivitamine', + 'timer': 'Taimer', + 'manual': 'Manuaal', + 'budgeted': 'Eelarvestatud', + 'start_time': 'Algusaeg', + 'end_time': 'Lõpuaeg', + 'date': 'Kuupäev', + 'times': 'Ajad', + 'duration': 'Kestvus', + 'new_task': 'Uus Ülesanne', + 'created_task': 'Ülesanne edukalt loodud', + 'updated_task': 'Ülesanne edukalt uuendatud', + 'archived_task': 'Ülesanne edukalt arhiveeritud', + 'deleted_task': 'Ülesanne edukalt kustutatud', + 'restored_task': 'Ülesanne edukalt taastatud', + 'archived_tasks': ':count ülesannet edukalt arhiveeritud.', + 'deleted_tasks': ':count ülesannet edukalt kustutatud', + 'restored_tasks': ':value ülesannet edukalt taastatud', + 'please_enter_a_name': 'Palun sisesta nimi', + 'budgeted_hours': 'Eelarvestatud tunnid', + 'created_project': 'Projekt edukalt loodud', + 'updated_project': 'Projekt edukalt uuendatud', + 'archived_project': 'Projekt edukalt arhiveeritud', + 'deleted_project': 'Projekt edukalt kustutatud', + 'restored_project': 'Projekt edukalt taastatud', + 'archived_projects': ':count projekti edukalt arhiveeritud', + 'deleted_projects': ':count projekti edukalt kustutatud', + 'restored_projects': ':value projekti edukalt taastatud', + 'new_project': 'Uus Projekt', + 'thank_you_for_using_our_app': 'Täname, et kasutasite meie rakendust!', + 'if_you_like_it': 'Kui teile meeldib, palun', + 'click_here': 'klõpsake siin', + 'click_here_capital': 'Kliki siia', + 'to_rate_it': 'et seda hinnata.', + 'average': 'Keskmine', + 'unapproved': 'Kinnitamata', + 'authenticate_to_change_setting': 'Seadete muutmiseks autentige', + 'locked': 'Lukustatud', + 'authenticate': 'Autentimine', + 'please_authenticate': 'Palun autentige', + 'biometric_authentication': 'Biomeetriline autentimine', + 'footer': 'Jalus', + 'compare': 'Võrdlema', + 'hosted_login': 'Hosted Login', + 'selfhost_login': 'Selfhost Login', + 'google_sign_in': 'Logige sisse Google\'iga', + 'today': 'Täna', + 'custom_range': 'Kohandatud Vahemik', + 'date_range': 'Kuupäevavahemik', + 'current': 'Praegune', + 'previous': 'Eelmine', + 'current_period': 'Praegune periood', + 'comparison_period': 'Võrdlusperiood', + 'previous_period': 'Eelmine periood', + 'previous_year': 'Eelmine aasta', + 'compare_to': 'Võrdlema', + 'last7_days': 'Viimased 7 päeva', + 'last_week': 'Eelmine nädal', + 'last30_days': 'Viimased 30 päeva', + 'this_month': 'See Kuu', + 'last_month': 'Eelmine Kuu', + 'this_year': 'See Aasta', + 'last_year': 'Eelmine Aasta', + 'custom': 'Kohandatud', + 'clone_to_invoice': 'Klooni arveks', + 'clone_to_quote': 'Klooni hinnapakkumiseks', + 'clone_to_credit': 'Clone to Credit', + 'view_invoice': 'Vaata Arvet', + 'convert': 'Teisenda', + 'more': 'Rohkem', + 'edit_client': 'Muuda Klienti', + 'edit_product': 'Muuda Toodet', + 'edit_invoice': 'Muuda Arvet', + 'edit_quote': 'Muuda Pakkumust', + 'edit_payment': 'Muuda Makset', + 'edit_task': 'Muuda Ülesannet', + 'edit_expense': 'Muuda kulusid', + 'edit_vendor': 'Muuda Tarnijat', + 'edit_project': 'Muuda Projekti', + 'edit_recurring_quote': 'Redigeeri korduv pakkumist', + 'billing_address': 'Arve aadress', + 'shipping_address': 'Kohaletoimetamise aadress', + 'total_revenue': 'Kogutulu', + 'average_invoice': 'Keskmine Arve', + 'outstanding': 'Väljapaistev', + 'invoices_sent': ':count arvet saadetud', + 'active_clients': 'aktiivsed kliendid', + 'close': 'Sulge', + 'email': 'E-post', + 'password': 'Salasõna', + 'url': 'URL', + 'secret': 'Secret', + 'name': 'Nimi', + 'logout': 'Logi Välja', + 'login': 'Logi Sisse', + 'filter': 'Filter', + 'sort': 'Sorteeri', + 'search': 'Otsi', + 'active': 'Aktiivne', + 'archived': 'Arhiveeritud', + 'deleted': 'Kustutatud', + 'dashboard': 'Töölaud', + 'archive': 'Arhiiv', + 'delete': 'Kustuta', + 'restore': 'Taasta', + 'refresh_complete': 'Värskendus on lõpetatud', + 'please_enter_your_email': 'Palun sisesta oma e-maili aadress', + 'please_enter_your_password': 'Sisesta oma parool', + 'please_enter_your_url': 'Sisesta oma URL', + 'please_enter_a_product_key': 'Sisesta Toote kood', + 'ascending': 'Kasvav', + 'descending': 'Kahanev', + 'save': 'Salvesta', + 'an_error_occurred': 'Ilmnes viga', + 'paid_to_date': 'Tasutud', + 'balance_due': 'Kokku tasuda', + 'balance': 'Saldo', + 'overview': 'Ülevaade', + 'details': 'Üksikasjad', + 'phone': 'Telefon', + 'website': 'Kodulehekülg', + 'vat_number': 'KMKR Number', + 'id_number': 'Registrikood', + 'create': 'Loo', + 'copied_to_clipboard': 'Kopeeritud :väärtus lõikelauale', + 'error': 'Viga', + 'could_not_launch': 'Ei saanud käivitada', + 'contacts': 'Kontaktid', + 'additional': 'Lisaks', + 'first_name': 'Eesnimi', + 'last_name': 'Perekonnanimi', + 'add_contact': 'Lisa kontakt', + 'are_you_sure': 'Oled kindel?', + 'cancel': 'Katkesta', + 'ok': 'Ok', + 'remove': 'Eemalda', + 'email_is_invalid': 'E-post on kehtetu', + 'product': 'Toode', + 'products': 'Tooted', + 'new_product': 'Uus Toode', + 'created_product': 'Toote loomine õnnestus', + 'updated_product': 'Toote värskendamine õnnestus', + 'archived_product': 'Toote arhiveerimine õnnestus', + 'deleted_product': 'Toode edukalt kustutatud', + 'restored_product': 'Toode edukalt taastatud', + 'archived_products': ':kogus tooted edukalt arhiveeritud', + 'deleted_products': ':count toodet edukalt kustutatud', + 'restored_products': ':value toodet edukalt taastatud', + 'product_key': 'Toode', + 'notes': 'Märkmed', + 'cost': 'Hind', + 'client': 'Klient', + 'clients': 'Kliendid', + 'new_client': 'Uus Klient', + 'created_client': 'Klient edukalt loodud', + 'updated_client': 'Kliendi värskendamine õnnestus', + 'archived_client': 'Kliendi arhiivimine õnnestus', + 'archived_clients': ':kogus klienti on edukalt arhiveeritud', + 'deleted_client': 'Kliendi kustutamine õnnestus', + 'deleted_clients': ':kogus klienti on edukalt kustutatud', + 'restored_client': 'Kliendi taastamine õnnestus', + 'restored_clients': ':value klienti edukalt taastatud', + 'address1': 'Tänav', + 'address2': 'Maja/Korter', + 'city': 'Linn', + 'state': 'Maakond', + 'postal_code': 'Sihtnumber', + 'country': 'Riik', + 'invoice': 'Arve', + 'invoices': 'Arved', + 'new_invoice': 'Uus Arve', + 'created_invoice': 'Arve edukalt loodud', + 'updated_invoice': 'Arve edukalt uuendatud', + 'archived_invoice': 'Arve edukalt arhiveeritud', + 'deleted_invoice': 'Arve edukalt kustutatud', + 'restored_invoice': 'Arve edukalt taastatud', + 'archived_invoices': ':count arvet edukalt arhiveeritud', + 'deleted_invoices': ':count arvet edukalt kustutatud', + 'restored_invoices': ':value arvet edukalt taastatud', + 'emailed_invoice': 'Arve edukalt saadetud', + 'emailed_payment': 'Successfully emailed payment', + 'amount': 'Summa', + 'invoice_number': 'Arve Number', + 'invoice_date': 'Arve Kuupäev', + 'discount': 'Allahindlus', + 'po_number': 'PO Number', + 'terms': 'Tingimused', + 'public_notes': 'Avalikud Märkmed', + 'private_notes': 'Privaat Märkmed', + 'frequency': 'Sagedus', + 'start_date': 'Alguskuupäev', + 'end_date': 'Lõppkuupäev', + 'quote_number': 'Pakkumuse Number', + 'quote_date': 'Pakkumuse Kuupäev', + 'valid_until': 'Kehtib Kuni', + 'items': 'Üksused', + 'partial_deposit': 'Osaline/tagatis', + 'description': 'Kirjeldus', + 'unit_cost': 'Ühiku Hind', + 'quantity': 'Kogus', + 'add_item': 'Lisa üksus', + 'contact': 'Kontakt', + 'work_phone': 'Telefon', + 'total_amount': 'Kogu summa', + 'pdf': 'PDF', + 'due_date': 'Maksetähtaeg', + 'partial_due_date': 'Partial Due Date', + 'status': 'Staatus', + 'invoice_status_id': 'Arve staatus', + 'quote_status': 'Pakkumise olek', + 'click_plus_to_add_item': 'Üksuse lisamiseks klõpsake +', + 'click_plus_to_add_time': 'Aja lisamiseks klõpsake +', + 'count_selected': ':count selected', + 'total': 'Kokku', + 'percent': 'Protsent', + 'edit': 'Muuda', + 'dismiss': 'Dismiss', + 'please_select_a_date': 'Palun valige kuupäev', + 'please_select_a_client': 'Palun valige klient', + 'please_select_an_invoice': 'Palun valige arve', + 'task_rate': 'Ülesande Määr', + 'settings': 'Seaded', + 'language': 'Keel', + 'currency': 'Valuuta', + 'created_at': 'Loomise kuupäev', + 'created_on': 'Loodud', + 'updated_at': 'Uuendatud', + 'tax': 'Maks', + 'please_enter_an_invoice_number': 'Palun sisestage arve number', + 'please_enter_a_quote_number': 'Palun sisestage hinnapakkumise number', + 'past_due': 'Üle Tähtaja', + 'draft': 'Mustand', + 'sent': 'Saadetud', + 'viewed': 'Vaadatud', + 'approved': 'Kinnitatud', + 'partial': 'Osaline/tagatisraha', + 'paid': 'Makstud', + 'mark_sent': 'Märgi saadetuks', + 'marked_invoice_as_sent': 'Arve märgiti edukalt saadetuks', + 'marked_invoice_as_paid': 'Arve märgiti saadetuks', + 'marked_invoices_as_sent': 'Arved märgiti saadetuks', + 'marked_invoices_as_paid': 'Arved märgiti saadetuks', + 'done': 'Valmis', + 'please_enter_a_client_or_contact_name': + 'Sisestage kliendi või kontaktisiku nimi', + 'dark_mode': 'Tume Režiim', + 'restart_app_to_apply_change': + 'Muudatuse rakendamiseks taaskäivitage rakendus', + 'refresh_data': 'Värskenda andmeid', + 'blank_contact': 'Tühi kontakt', + 'activity': 'Tegevus', + 'no_records_found': 'Kirjeid ei leitud', + 'clone': 'Klooni', + 'loading': 'Laen', + 'industry': 'Tööstus', + 'size': 'Suurus', + 'payment_terms': 'Maksetingimused', + 'payment_date': 'Makse kuupäev', + 'payment_status': 'Makse staatus', + 'payment_status_1': 'Ootel', + 'payment_status_2': 'Tühistatud', + 'payment_status_3': 'Ebaõnnestunud', + 'payment_status_4': 'Lõpetatud', + 'payment_status_5': 'Osaliselt tagastatud', + 'payment_status_6': 'Tagastatud', + 'payment_status_-1': 'Rakendamata', + 'payment_status_-2': 'Partially Unapplied', + 'net': 'Net', + 'client_portal': 'Kliendi Portaal', + 'show_tasks': 'Näita ülesandeid', + 'email_reminders': 'Meili meeldetuletused', + 'enabled': 'Lubatud', + 'recipients': 'Saajad', + 'initial_email': 'Esmane E-kiri', + 'first_reminder': 'Esimene Meeldetuletus', + 'second_reminder': 'Teine Meeldetuletus', + 'third_reminder': 'Kolmas Meeldetuletus', + 'reminder1': 'Esimene meeldetuletus', + 'reminder2': 'Teine meeldetuletus', + 'reminder3': 'Kolmas meeldetuletus', + 'template': 'Mall', + 'send': 'Saada', + 'subject': 'Teema', + 'body': 'Sisu', + 'send_email': 'Saada E-kiri', + 'email_receipt': 'Saada kliendile maksekviitung', + 'auto_billing': 'Automaatne arveldamine', + 'button': 'Nupp', + 'preview': 'Eelvaade', + 'customize': 'Kohanda', + 'history': 'Ajalugu', + 'payment': 'Makse', + 'payments': 'Maksed', + 'refunded': 'Tagastatud', + 'payment_type': 'Makse tüüp', + 'transaction_reference': 'Tehingu Viide', + 'enter_payment': 'Sisesta Makse', + 'new_payment': 'Sisesta Makse', + 'created_payment': 'Makse loomine õnnestus', + 'updated_payment': 'Makse värskendamine õnnestus', + 'archived_payment': 'Makse arhiivimine õnnestus', + 'deleted_payment': 'Makse kustutamine õnnestus', + 'restored_payment': 'Makse taastamine õnnestus', + 'archived_payments': ':kogus makset on edukalt arhiveeritud', + 'deleted_payments': ':kogus makset on edukalt kustutatud', + 'restored_payments': ':value makset edukalt taastatud', + 'quote': 'Pakkumus', + 'quotes': 'Pakkumused', + 'new_quote': 'Uus Pakkumus', + 'created_quote': 'Hinnapakkumise loomine õnnestus', + 'updated_quote': 'Hinnapakkumine edukalt värskendatud', + 'archived_quote': 'Hinnapakkumine edukalt arhiivitud', + 'deleted_quote': 'Hinnapakkmuise kustutamine õnnestus', + 'restored_quote': 'Hinnapakkumise taastamine õnnestus', + 'archived_quotes': ':kogus hinnapakkumisi on edukalt arhiveeritud', + 'deleted_quotes': ':kogus hinnapakkumisi on edukalt kustutatud', + 'restored_quotes': ':value hinnapakkumist edukalt taastatud', + 'expense': 'Kulu', + 'expenses': 'Kulud', + 'vendor': 'Tarnija', + 'vendors': 'Tarnijad', + 'task': 'Ülesanne', + 'tasks': 'Ülesanded', + 'project': 'Projekt', + 'projects': 'Projektid', + 'activity_1': ':user lõi kliendi :client', + 'activity_2': ':user arhiveeris kliendi :client', + 'activity_3': ':user kustutas kliendi :client', + 'activity_4': ':user lõi arve :invoice', + 'activity_5': ':user uuendas arvet :invoice', + 'activity_6': + ':kasutaja saatis arve :arve e-postiga :kliendile :kontaktile', + 'activity_7': ':kontakt on vaadatud arvet :arve :klient', + 'activity_8': ':user arhiveeris arve :invoice', + 'activity_9': ':user kustutas arve :invoice', + 'activity_10': + ':contact entered payment :payment for :payment_amount on invoice :invoice for :client', + 'activity_11': ':kasutaja uuendas makset :makse', + 'activity_12': ':kasutaja arhiveeris makse :makse', + 'activity_13': ':kasutaja kustutas makse :makse', + 'activity_14': ':kasutaja sisestas :ettemakse', + 'activity_15': ':kasutaja värskendas :ettemakse ettemakset', + 'activity_16': ':kasutaja arhiveeris :ettemakse ettemakse', + 'activity_17': ':kasutaja kustutas :ettemakse ettemakse', + 'activity_18': ':kasutaja lõi hinnapkkumise :hinnapakkumine', + 'activity_19': ':kasutaja uuendas hinnapakkumist :hinnapakkumine', + 'activity_20': + ':kasutaja saatis meiliga hinnapakkumise :hinnapakkumine :kliendile :kontaktile', + 'activity_21': ':kontakt vaatas hinnapakkumist :hinnapakkumine', + 'activity_22': ':kasutaja arhiveeris hinnapakkumise :hinnapakkumine', + 'activity_23': ':kasutaja kustutas hinnapakkumise :hinnapakkumine', + 'activity_24': ':kasutaja taastas hinnapakkumise :hinnapakkumine', + 'activity_25': ':kasutaja taastas arve :arve', + 'activity_26': ':kasutaja taastas kliendi :klient', + 'activity_27': ':kasutaja taastas makse :makse', + 'activity_28': ':kasutaja taastas ettemakse :ettemakse', + 'activity_29': + ':kontakt kinnitas hinnapakkumise :hinnapkkumine :kliendile', + 'activity_30': ':kasutaja lõi tarnija :tarnija', + 'activity_31': ':kasutaja arhiveeris tarnija :tarnija', + 'activity_32': ':kasutaja kustutas tarnija :tarnija', + 'activity_33': ':kasutaja taastas tarnija :tarnija', + 'activity_34': ':kasutaja lõi kulu :kulu', + 'activity_35': ':kasutaja arhiveeris kulu :kulu', + 'activity_36': ':kasutaja kustutas kulu :kulu', + 'activity_37': ':kasutaja taastas kulu :kulu', + 'activity_39': ':kasutaja tühistas :makse_summa makse :makse', + 'activity_40': + ':user refunded :adjustment of a :payment_amount payment :payment', + 'activity_41': ':makse_summa makse (:makse) ebaõnnestus', + 'activity_42': ':user lõi ülesande :task', + 'activity_43': ':user uuendas ülesannet :task', + 'activity_44': ':user arhiveeris ülesande :task', + 'activity_45': ':user kustutas ülesande :task', + 'activity_46': ':user taastas ülesande :task', + 'activity_47': ':kasutaja uuendas kulu :kulu', + 'activity_48': ':kasutaja uuendas piletit :pilet', + 'activity_49': ':kasutaja sulges pileti :pilet', + 'activity_50': ':kasutaja ühendas pileti :pilet', + 'activity_51': ':kasutaja jagas pileti :pilet', + 'activity_52': ':kontakt avas pileti :pilet', + 'activity_53': ':kontakt taasavas pileti :pilet', + 'activity_54': ':kasutaja taasavas pileti :pilet', + 'activity_55': ':contact vastas piletile :pilet', + 'activity_56': ':kasutaja vaatas piletit :pilet', + 'activity_57': 'Süsteem ei suutnud arvet :arve meiliga saata', + 'activity_58': ':kasutaja tühistas arve :arve', + 'activity_59': ':kasutaja tühistas arve :arve', + 'activity_60': ':kontakt vaatas hinnapakkumist :hinnapakkumine', + 'activity_61': ':kasutaja uuendas klienti :klient', + 'activity_62': ':kasutaja uuendas tarnijat :tarnija', + 'activity_63': + ':kasutaja saatis e-kirjaga esimese meeldetuletuse arve kohta :arve aadressile :kontakt', + 'activity_64': + ':kasutaja saatis e-kirjaga teise meeldetuletuse arve kohta :arve aadressile :kontakt', + 'activity_65': + ':kasutaja saatis e-kirjaga kolmanda meeldetuletuse arve kohta :arve aadressile :kontakt', + 'activity_66': + ':user emailed endless reminder for invoice :invoice to :contact', + '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', + 'one_time_password': 'Ühekordne parool', + 'emailed_quote': 'Hinnapakkumise saatmine õnnestus', + 'emailed_credit': 'Ettemaks saadeti meili teel', + 'marked_quote_as_sent': 'Hinnapakkumine märgiti saadetuks', + 'marked_credit_as_sent': 'Ettemaks märgiti edukalt saadetuks', + 'expired': 'Kehtetu', + 'all': 'Kõik', + 'select': 'Vali', + 'long_press_multiselect': 'Long-press Multiselect', + 'custom_value1': 'Kohandatud Väärtus', + 'custom_value2': 'Kohandatud Väärtus', + 'custom_value3': 'Kohandatud väärtus 3', + 'custom_value4': 'Kohandatud väärtus 4', + 'email_style_custom': 'Kohandatud e-posti stiil', + 'custom_message_dashboard': 'Custom Dashboard Message', + 'custom_message_unpaid_invoice': 'Kohandatud tasumata arve teade', + 'custom_message_paid_invoice': 'Kohandatud tasutud arve teade', + 'custom_message_unapproved_quote': + 'Kohandatud kinnitamata hinnapakkumise teade', + 'lock_invoices': 'Lock Invoices', + 'translations': 'Tõlked', + 'task_number_pattern': 'Ülesande numbri muster', + 'task_number_counter': 'Ülesande numbri loendur', + 'expense_number_pattern': 'Kulude numbri muster', + 'expense_number_counter': 'Kulude numbri loendur', + 'vendor_number_pattern': 'Tarnija numbri muster', + 'vendor_number_counter': 'Tarnija numbri loendur', + 'ticket_number_pattern': 'Pileti numbri muster', + 'ticket_number_counter': 'Pileti numbri loendur', + 'payment_number_pattern': 'Makse numbri muster', + 'payment_number_counter': 'Makse numbri loendur', + 'invoice_number_pattern': 'Arve numbri muster', + 'invoice_number_counter': 'Arve Numbri Loendur', + 'quote_number_pattern': 'Hinnapakkumise numbri muster', + 'quote_number_counter': 'Hinnapakkumise numbriloendur', + 'client_number_pattern': 'Ettemaksu numbri muster', + 'client_number_counter': 'Ettemaksu numbri loendur', + 'credit_number_pattern': 'Ettemaksu numbri muster', + 'credit_number_counter': 'Ettemaksu numbri loendur', + 'reset_counter_date': 'Reset Counter Date', + 'counter_padding': 'Counter Padding', + 'shared_invoice_quote_counter': 'Shared Invoice Quote Counter', + 'default_tax_name_1': 'Vaikimisi maksunimi 1', + 'default_tax_rate_1': 'Vaikimisi maksumäär 1', + 'default_tax_name_2': 'Vaikimisi maksunimi 2', + 'default_tax_rate_2': 'Vaikimisi maksumäär 2', + 'default_tax_name_3': 'Vaikimisi maksunimi 3', + 'default_tax_rate_3': 'Vaikimisi maksumäär 3', + 'email_subject_invoice': 'Email Invoice Subject', + 'email_subject_quote': 'Email Quote Subject', + 'email_subject_payment': 'Email Payment Subject', + 'email_subject_payment_partial': 'Email Partial Payment Subject', + 'show_table': 'Kuva tabel', + 'show_list': 'Näita loendit', + 'client_city': 'Kliendi linn', + 'client_state': 'Kliendi maakond', + 'client_country': 'Kliendi riik', + 'client_is_active': 'Klient on aktiivne', + 'client_balance': 'Kliendi saldo', + 'client_address1': 'Kliendi tänav', + 'client_address2': 'Kliendi korter/sviit', + 'vendor_address1': 'Vendor Street', + 'vendor_address2': 'Vendor Apt/Suite', + 'client_shipping_address1': 'Client Shipping Street', + 'client_shipping_address2': 'Client Shipping Apt/Suite', + 'type': 'Tüüp', + 'invoice_amount': 'Arve summa', + 'invoice_due_date': 'Tähtaeg', + 'tax_rate1': 'Maksumäär 1', + 'tax_rate2': 'Maksumäär 2', + 'tax_rate3': 'Maksumäär 3', + 'auto_bill': 'Auto Bill', + 'archived_at': 'Archived At', + 'has_expenses': 'Has Expenses', + 'custom_taxes1': 'Kohandatud maksud 1', + 'custom_taxes2': 'Kohandatud maksud 2', + 'custom_taxes3': 'Kohandatud maksud 3', + 'custom_taxes4': 'Kohandatud maksud 4', + 'custom_surcharge1': 'Kohandatud lisatasu 1', + 'custom_surcharge2': 'Kohandatud lisatasu 2', + 'custom_surcharge3': 'Kohandatud lisatasu 3', + 'custom_surcharge4': 'Kohandatud lisatasu 4', + 'is_deleted': 'On kustutatud', + 'vendor_city': 'Tarnija linn', + 'vendor_state': 'Tarnija maakond', + 'vendor_country': 'Tarnija riik', + 'is_approved': 'On heaks kiidetud', + 'tax_name': 'Maksu Nimi', + 'tax_amount': 'Maksud kokku', + 'tax_paid': 'Makstud maksud', + 'payment_amount': 'Makse summa', + 'age': 'Vanus', + 'is_running': 'Is Running', + 'time_log': 'Time Log', + 'bank_id': 'Pank', + 'expense_category_id': 'Kulukategooria ID', + 'expense_category': 'Kulu kategooria', + 'invoice_currency_id': 'Arve valuuta ID', + 'tax_name1': 'Maksu nimi 1', + 'tax_name2': 'Maksu nimi 2', + 'tax_name3': 'Maksu nimi 3', + 'transaction_id': 'Tehingu ID', + 'status_color_theme': 'Oleku värviteema', + 'load_color_theme': 'Laadige värviteema', + }, + 'fi': { + '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', + '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', + 'giropay': 'GiroPay', + 'direct_debit': 'Direct Debit', + 'please_set_a_password': 'Please set an account password', + 'set_password': 'Aseta salasana', + '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', + 'acss': 'Esihyväksy debit korttimaksut', + 'becs': 'BECS Direct Debit', + '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.', + 'view_expense': 'Näytä kulu # :kulu', + 'view_statement': 'Näytä Tiliote', + 'sepa': 'SEPA-maksu', + 'ideal': 'iDEAL', + 'przelewy24': 'Przelewy24', + 'eps': 'EPS', + 'fpx': 'FPX', + 'update_all_records': 'Update all records', + 'system': 'Järjestelmä', + 'set_default_company': 'Set Default Company', + 'updated_company': 'Successfully updated company', + 'kbc': 'KBC', + 'bancontact': 'Bancontact', + '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', + 'gross_line_total': 'Gross line total', + 'bulk_email_invoice': 'Email Invoice', + 'bulk_email_quote': 'Email Quote', + 'bulk_email_credit': 'Email Credit', + 'from_name': 'From nimi', + 'clone_to_expense': 'Kopioi kuluksi', + 'recurring_expense': 'toistuva kulu', + 'recurring_expenses': 'toistuva kulut', + 'new_recurring_expense': 'uusi toistuva kulu', + 'edit_recurring_expense': 'muokkaa toistuva kulu', + 'created_recurring_expense': 'onnistuneesti luotu toistuva kulu', + 'updated_recurring_expense': 'onnistuneesti päivitetty toistuva kulu', + 'archived_recurring_expense': 'onnistuneesti arkistoitu toistuva kulu', + 'deleted_recurring_expense': 'Projekti poistettu onnistuneesti', + 'removed_recurring_expense': 'Successfully removed recurring expense', + 'restored_recurring_expense': 'onnistuneesti palautettu toistuva kulu', + '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': 'Change Plan', + 'persist_data': 'Persist Data', + 'customer_count': 'Customer Count', + 'verify_customers': 'Verify Customers', + 'google_analytics': 'Google Analytics', + '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', + 'user_guide': 'User Guide', + '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', + 'net_subtotal': 'Netto', + '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_data': 'Tuo tietoja', + 'import_settings': 'Import Settings', + 'json_file_missing': 'Please provide the JSON file', + 'json_option_missing': 'Please select to import the settings and/or 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', + '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', + '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', + 'pro': 'Pro', + 'enterprise': 'Enterprise', + 'last_updated': 'viime päivitetty', + 'invoice_item': 'Invoice Item', + 'quote_item': 'Quote Item', + 'contact_first_name': 'kontakti ensimmäinen nimi', + 'contact_last_name': 'kontakti viime nimi', + 'order': 'Order', + 'unassigned': 'Kohdistamaton', + 'partial_value': + 'Täytyy olla suurempi kuin nolla ja vähemmän kuin kaikki yhteensä', + 'search_kanban': 'Search Kanban', + 'search_kanbans': 'Search Kanban', + 'kanban': 'Kanban', + 'enable': 'Ota käyttöön', + 'move_top': 'Move Top', + 'move_up': 'Move Up', + 'move_down': 'Move Down', + 'move_bottom': 'Move Bottom', + 'subdomain_help': + 'Aseta alidomain tai näytä lasku omalla verkkosivullasi.', + '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_code': 'Promo code', + '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', + 'security': 'Security', + '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', + 'subscription': 'Subscription', + 'subscriptions': 'Subscriptions', + 'new_subscription': 'New Subscription', + 'edit_subscription': 'muokkaa tilaus', + 'created_subscription': 'onnistuneesti luotu tilaus', + 'updated_subscription': 'onnistuneesti päivitetty tilaus', + 'archived_subscription': 'onnistuneesti arkistoitu tilaus', 'deleted_subscription': 'Successfully deleted subscription', 'removed_subscription': 'Successfully removed subscription', 'restored_subscription': 'Successfully restored subscription', @@ -19399,6 +21469,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'fr': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -21349,6 +23432,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'fr_CA': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -23365,6 +25461,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'de': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -25348,6 +27457,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'el': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -27337,6 +29459,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'it': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -29301,6 +31436,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'ja': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -31233,6 +33381,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'lv_LV': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -33170,6 +35331,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'lt': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -35107,6 +37281,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'mk_MK': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -37048,6 +39235,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'nb_NO': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -38983,6 +41183,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'fa': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -40919,6 +43132,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'pl': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -42855,6 +45081,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'pt_BR': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -44809,6 +47048,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'pt_PT': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -46779,6 +49031,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'ro': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -48718,6 +50983,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'ru_RU': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -50655,6 +52933,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'sr': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -52599,6 +54890,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'sk': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -54541,6 +56845,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'sl': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -56481,6 +58798,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'es': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -58428,6 +60758,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'es_ES': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -60407,6 +62750,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'sv': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -62357,6 +64713,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'th': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -64291,6 +66660,19 @@ mixin LocalizationsProvider on LocaleCodeAware { 'load_color_theme': 'Load Color Theme', }, 'tr_TR': { + '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', 'normal': 'Normal', 'large': 'Large', 'extra_large': 'Extra Large', @@ -70937,7 +73319,6 @@ mixin LocalizationsProvider on LocaleCodeAware { _localizedValues[localeCode]['wait_for_saving'] ?? _localizedValues['en']['wait_for_saving']; - String get markedCreditAsPaid => _localizedValues[localeCode]['marked_credit_as_paid'] ?? _localizedValues['en']['marked_credit_as_paid']; diff --git a/lib/utils/platforms.dart b/lib/utils/platforms.dart index e55ef96b031..116c2b549d4 100644 --- a/lib/utils/platforms.dart +++ b/lib/utils/platforms.dart @@ -119,6 +119,28 @@ String getPlatformLetter() { return 'U'; } +String getPlatformName() { + if (kIsWeb) { + return 'Web'; + } else { + if (Platform.isIOS) { + return 'iOS'; + } else if (Platform.isAndroid) { + return 'Android'; + } else if (Platform.isWindows) { + return 'Windows'; + } else if (Platform.isLinux) { + return 'Linux'; + } else if (Platform.isMacOS) { + return 'macOS'; + } else if (Platform.isFuchsia) { + return 'Fuchsia'; + } + } + + return 'Unknown'; +} + String getNativePlatform() { String userAgent = WebUtils.getHtmlValue('user-agent') ?? ''; userAgent = userAgent.toLowerCase(); diff --git a/pubspec.foss.yaml b/pubspec.foss.yaml index 7bd8735051d..41e8d9921fd 100644 --- a/pubspec.foss.yaml +++ b/pubspec.foss.yaml @@ -1,6 +1,6 @@ name: invoiceninja_flutter description: Client for Invoice Ninja -version: 5.0.72+72 +version: 5.0.73+73 homepage: https://invoiceninja.com documentation: https://invoiceninja.github.io publish_to: none @@ -90,7 +90,7 @@ msix_config: display_name: Invoice Ninja publisher_display_name: Invoice Ninja identity_name: InvoiceNinja.InvoiceNinja - msix_version: 5.0.72.0 + msix_version: 5.0.73.0 publisher: CN=2B7AA393-06A0-46F5-AF85-1917142440C3 architecture: x64 capabilities: 'internetClient' diff --git a/pubspec.lock b/pubspec.lock index f6763bfb3cf..752f63f710c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -626,13 +626,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.12.11" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - url: "https://pub.dartlang.org" - source: hosted - version: "0.1.3" material_design_icons_flutter: dependency: "direct main" description: @@ -856,7 +849,7 @@ packages: name: platform url: "https://pub.dartlang.org" source: hosted - version: "3.1.0" + version: "3.0.2" plugin_platform_interface: dependency: transitive description: @@ -1148,21 +1141,21 @@ packages: name: test url: "https://pub.dartlang.org" source: hosted - version: "1.19.5" + version: "1.17.12" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.8" + version: "0.4.3" test_core: dependency: transitive description: name: test_core url: "https://pub.dartlang.org" source: hosted - version: "0.4.9" + version: "0.4.2" timeago: dependency: "direct main" description: @@ -1274,7 +1267,7 @@ packages: name: vm_service url: "https://pub.dartlang.org" source: hosted - version: "7.5.0" + version: "7.3.0" watcher: dependency: transitive description: diff --git a/pubspec.next.yaml b/pubspec.next.yaml index def00812223..7644d75cf8d 100644 --- a/pubspec.next.yaml +++ b/pubspec.next.yaml @@ -1,6 +1,6 @@ name: invoiceninja_flutter description: Client for Invoice Ninja -version: 5.0.72+72 +version: 5.0.73+73 homepage: https://invoiceninja.com documentation: https://invoiceninja.github.io publish_to: none @@ -90,7 +90,7 @@ msix_config: display_name: Invoice Ninja publisher_display_name: Invoice Ninja identity_name: InvoiceNinja.InvoiceNinja - msix_version: 5.0.72.0 + msix_version: 5.0.73.0 publisher: CN=2B7AA393-06A0-46F5-AF85-1917142440C3 architecture: x64 capabilities: 'internetClient' diff --git a/pubspec.yaml b/pubspec.yaml index def00812223..7644d75cf8d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: invoiceninja_flutter description: Client for Invoice Ninja -version: 5.0.72+72 +version: 5.0.73+73 homepage: https://invoiceninja.com documentation: https://invoiceninja.github.io publish_to: none @@ -90,7 +90,7 @@ msix_config: display_name: Invoice Ninja publisher_display_name: Invoice Ninja identity_name: InvoiceNinja.InvoiceNinja - msix_version: 5.0.72.0 + msix_version: 5.0.73.0 publisher: CN=2B7AA393-06A0-46F5-AF85-1917142440C3 architecture: x64 capabilities: 'internetClient'