diff --git a/app/Console/Commands/SendRecurringInvoices.php b/app/Console/Commands/SendRecurringInvoices.php index 38a4a8bb929c..81228ce5b96b 100644 --- a/app/Console/Commands/SendRecurringInvoices.php +++ b/app/Console/Commands/SendRecurringInvoices.php @@ -37,11 +37,11 @@ class SendRecurringInvoices extends Command $this->info(count($invoices).' recurring invoice(s) found'); foreach ($invoices as $recurInvoice) { + $recurInvoice->account->loadLocalizationSettings($recurInvoice->client); $this->info('Processing Invoice '.$recurInvoice->id.' - Should send '.($recurInvoice->shouldSendToday() ? 'YES' : 'NO')); $invoice = $this->invoiceRepo->createRecurringInvoice($recurInvoice); if ($invoice && !$invoice->isPaid()) { - $recurInvoice->account->loadLocalizationSettings($invoice->client); $this->mailer->sendInvoice($invoice); } } diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 26777a54feba..bd398ea084a3 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -15,7 +15,6 @@ use Cache; use Response; use parseCSV; use Request; - use App\Models\Affiliate; use App\Models\License; use App\Models\User; @@ -129,9 +128,9 @@ class AccountController extends BaseController Session::put("show_trash:{$entityType}", $visible == 'true'); if ($entityType == 'user') { - return Redirect::to('company/'.ACCOUNT_ADVANCED_SETTINGS.'/'.ACCOUNT_USER_MANAGEMENT); + return Redirect::to('settings/'.ACCOUNT_USER_MANAGEMENT); } elseif ($entityType == 'token') { - return Redirect::to('company/'.ACCOUNT_ADVANCED_SETTINGS.'/'.ACCOUNT_TOKEN_MANAGEMENT); + return Redirect::to('settings/'.ACCOUNT_API_TOKENS); } else { return Redirect::to("{$entityType}s"); } @@ -143,167 +142,212 @@ class AccountController extends BaseController return Response::json($data); } - public function showSection($section = ACCOUNT_DETAILS, $subSection = false) + public function showSection($section = false) { - if ($section == ACCOUNT_DETAILS) { + if (!$section) { + return Redirect::to('/settings/' . ACCOUNT_COMPANY_DETAILS, 301); + } - $oauthLoginUrls = []; - foreach (AuthService::$providers as $provider) { - $oauthLoginUrls[] = ['label' => $provider, 'url' => '/auth/' . strtolower($provider)]; - } - - $data = [ - 'account' => Account::with('users')->findOrFail(Auth::user()->account_id), - 'countries' => Cache::get('countries'), - 'sizes' => Cache::get('sizes'), - 'industries' => Cache::get('industries'), - 'timezones' => Cache::get('timezones'), - 'dateFormats' => Cache::get('dateFormats'), - 'datetimeFormats' => Cache::get('datetimeFormats'), - 'currencies' => Cache::get('currencies'), - 'languages' => Cache::get('languages'), - 'title' => trans('texts.company_details'), - 'user' => Auth::user(), - 'oauthProviderName' => AuthService::getProviderName(Auth::user()->oauth_provider_id), - 'oauthLoginUrls' => $oauthLoginUrls, - ]; - - return View::make('accounts.details', $data); + if ($section == ACCOUNT_COMPANY_DETAILS) { + return self::showCompanyDetails(); + } elseif ($section == ACCOUNT_USER_DETAILS) { + return self::showUserDetails(); + } elseif ($section == ACCOUNT_LOCALIZATION) { + return self::showLocalization(); } elseif ($section == ACCOUNT_PAYMENTS) { - - $account = Auth::user()->account; - $account->load('account_gateways'); - $count = count($account->account_gateways); - - if ($count == 0) { - return Redirect::to('gateways/create'); - } else { - return View::make('accounts.payments', [ - 'showAdd' => $count < count(Gateway::$paymentTypes), - 'title' => trans('texts.online_payments') - ]); - } - } elseif ($section == ACCOUNT_NOTIFICATIONS) { - $data = [ - 'account' => Account::with('users')->findOrFail(Auth::user()->account_id), - 'title' => trans('texts.notifications'), - ]; - - return View::make('accounts.notifications', $data); + return self::showOnlinePayments(); } elseif ($section == ACCOUNT_IMPORT_EXPORT) { return View::make('accounts.import_export', ['title' => trans('texts.import_export')]); - } elseif ($section == ACCOUNT_ADVANCED_SETTINGS) { - $account = Auth::user()->account->load('country'); + } elseif ($section == ACCOUNT_INVOICE_DESIGN || $section == ACCOUNT_CUSTOMIZE_DESIGN) { + return self::showInvoiceDesign($section); + } elseif ($section === ACCOUNT_TEMPLATES_AND_REMINDERS) { + return self::showTemplates(); + } elseif ($section === ACCOUNT_PRODUCTS) { + return self::showProducts(); + } else { $data = [ - 'account' => $account, - 'feature' => $subSection, - 'title' => trans('texts.invoice_settings'), + 'account' => Account::with('users')->findOrFail(Auth::user()->account_id), + 'title' => trans("texts.{$section}"), + 'section' => $section ]; - - if ($subSection == ACCOUNT_INVOICE_DESIGN - || $subSection == ACCOUNT_CUSTOMIZE_DESIGN) { - $invoice = new stdClass(); - $client = new stdClass(); - $contact = new stdClass(); - $invoiceItem = new stdClass(); - - $client->name = 'Sample Client'; - $client->address1 = ''; - $client->city = ''; - $client->state = ''; - $client->postal_code = ''; - $client->work_phone = ''; - $client->work_email = ''; - - $invoice->invoice_number = $account->getNextInvoiceNumber(); - $invoice->invoice_date = Utils::fromSqlDate(date('Y-m-d')); - $invoice->account = json_decode($account->toJson()); - $invoice->amount = $invoice->balance = 100; - - $invoice->terms = trim($account->invoice_terms); - $invoice->invoice_footer = trim($account->invoice_footer); - - $contact->email = 'contact@gmail.com'; - $client->contacts = [$contact]; - - $invoiceItem->cost = 100; - $invoiceItem->qty = 1; - $invoiceItem->notes = 'Notes'; - $invoiceItem->product_key = 'Item'; - - $invoice->client = $client; - $invoice->invoice_items = [$invoiceItem]; - - $data['account'] = $account; - $data['invoice'] = $invoice; - $data['invoiceLabels'] = json_decode($account->invoice_labels) ?: []; - $data['title'] = trans('texts.invoice_design'); - $data['invoiceDesigns'] = InvoiceDesign::getDesigns(); - - $design = false; - foreach ($data['invoiceDesigns'] as $item) { - if ($item->id == $account->invoice_design_id) { - $design = $item->javascript; - break; - } - } - - if ($subSection == ACCOUNT_CUSTOMIZE_DESIGN) { - $data['customDesign'] = ($account->custom_design && !$design) ? $account->custom_design : $design; - } - } else if ($subSection == ACCOUNT_TEMPLATES_AND_REMINDERS) { - $data['templates'] = []; - $data['defaultTemplates'] = []; - foreach ([ENTITY_INVOICE, ENTITY_QUOTE, ENTITY_PAYMENT, REMINDER1, REMINDER2, REMINDER3] as $type) { - $data['templates'][$type] = [ - 'subject' => $account->getEmailSubject($type), - 'template' => $account->getEmailTemplate($type), - ]; - $data['defaultTemplates'][$type] = [ - 'subject' => $account->getDefaultEmailSubject($type), - 'template' => $account->getDefaultEmailTemplate($type), - ]; - } - $data['emailFooter'] = $account->getEmailFooter(); - $data['title'] = trans('texts.email_templates'); - } else if ($subSection == ACCOUNT_USER_MANAGEMENT) { - $data['title'] = trans('texts.users_and_tokens'); - } - - return View::make("accounts.{$subSection}", $data); - } elseif ($section == ACCOUNT_PRODUCTS) { - $data = [ - 'account' => Auth::user()->account, - 'title' => trans('texts.product_library'), - ]; - - return View::make('accounts.products', $data); + return View::make("accounts.{$section}", $data); } } - public function doSection($section = ACCOUNT_DETAILS, $subSection = false) + private function showCompanyDetails() { - if ($section == ACCOUNT_DETAILS) { - return AccountController::saveDetails(); - } elseif ($section == ACCOUNT_IMPORT_EXPORT) { - return AccountController::importFile(); - } elseif ($section == ACCOUNT_MAP) { - return AccountController::mapFile(); - } elseif ($section == ACCOUNT_NOTIFICATIONS) { - return AccountController::saveNotifications(); - } elseif ($section == ACCOUNT_EXPORT) { - return AccountController::export(); - } elseif ($section == ACCOUNT_ADVANCED_SETTINGS) { - if ($subSection == ACCOUNT_INVOICE_SETTINGS) { - return AccountController::saveInvoiceSettings(); - } elseif ($subSection == ACCOUNT_INVOICE_DESIGN) { - return AccountController::saveInvoiceDesign(); - } elseif ($subSection == ACCOUNT_CUSTOMIZE_DESIGN) { - return AccountController::saveCustomizeDesign(); - } elseif ($subSection == ACCOUNT_TEMPLATES_AND_REMINDERS) { - return AccountController::saveEmailTemplates(); + $data = [ + 'account' => Account::with('users')->findOrFail(Auth::user()->account_id), + 'countries' => Cache::get('countries'), + 'sizes' => Cache::get('sizes'), + 'industries' => Cache::get('industries'), + 'title' => trans('texts.company_details'), + ]; + + return View::make('accounts.details', $data); + } + + private function showUserDetails() + { + $oauthLoginUrls = []; + foreach (AuthService::$providers as $provider) { + $oauthLoginUrls[] = ['label' => $provider, 'url' => '/auth/' . strtolower($provider)]; + } + + $data = [ + 'account' => Account::with('users')->findOrFail(Auth::user()->account_id), + 'title' => trans('texts.user_details'), + 'user' => Auth::user(), + 'oauthProviderName' => AuthService::getProviderName(Auth::user()->oauth_provider_id), + 'oauthLoginUrls' => $oauthLoginUrls, + ]; + + return View::make('accounts.user_details', $data); + } + + private function showLocalization() + { + $data = [ + 'account' => Account::with('users')->findOrFail(Auth::user()->account_id), + 'timezones' => Cache::get('timezones'), + 'dateFormats' => Cache::get('dateFormats'), + 'datetimeFormats' => Cache::get('datetimeFormats'), + 'currencies' => Cache::get('currencies'), + 'languages' => Cache::get('languages'), + 'title' => trans('texts.localization'), + ]; + + return View::make('accounts.localization', $data); + } + + private function showOnlinePayments() + { + $account = Auth::user()->account; + $account->load('account_gateways'); + $count = count($account->account_gateways); + + if ($count == 0) { + return Redirect::to('gateways/create'); + } else { + return View::make('accounts.payments', [ + 'showAdd' => $count < count(Gateway::$paymentTypes), + 'title' => trans('texts.online_payments') + ]); + } + } + + private function showProducts() + { + $data = [ + 'account' => Auth::user()->account, + 'title' => trans('texts.product_library'), + ]; + + return View::make('accounts.products', $data); + } + + private function showInvoiceDesign($section) + { + $account = Auth::user()->account->load('country'); + $invoice = new stdClass(); + $client = new stdClass(); + $contact = new stdClass(); + $invoiceItem = new stdClass(); + + $client->name = 'Sample Client'; + $client->address1 = ''; + $client->city = ''; + $client->state = ''; + $client->postal_code = ''; + $client->work_phone = ''; + $client->work_email = ''; + + $invoice->invoice_number = $account->getNextInvoiceNumber(); + $invoice->invoice_date = Utils::fromSqlDate(date('Y-m-d')); + $invoice->account = json_decode($account->toJson()); + $invoice->amount = $invoice->balance = 100; + + $invoice->terms = trim($account->invoice_terms); + $invoice->invoice_footer = trim($account->invoice_footer); + + $contact->email = 'contact@gmail.com'; + $client->contacts = [$contact]; + + $invoiceItem->cost = 100; + $invoiceItem->qty = 1; + $invoiceItem->notes = 'Notes'; + $invoiceItem->product_key = 'Item'; + + $invoice->client = $client; + $invoice->invoice_items = [$invoiceItem]; + + $data['account'] = $account; + $data['invoice'] = $invoice; + $data['invoiceLabels'] = json_decode($account->invoice_labels) ?: []; + $data['title'] = trans('texts.invoice_design'); + $data['invoiceDesigns'] = InvoiceDesign::getDesigns(); + $data['section'] = $section; + + $design = false; + foreach ($data['invoiceDesigns'] as $item) { + if ($item->id == $account->invoice_design_id) { + $design = $item->javascript; + break; } - } elseif ($section == ACCOUNT_PRODUCTS) { + } + + if ($section == ACCOUNT_CUSTOMIZE_DESIGN) { + $data['customDesign'] = ($account->custom_design && !$design) ? $account->custom_design : $design; + } + return View::make("accounts.{$section}", $data); + } + + private function showTemplates() + { + $account = Auth::user()->account->load('country'); + $data['account'] = $account; + $data['templates'] = []; + $data['defaultTemplates'] = []; + foreach ([ENTITY_INVOICE, ENTITY_QUOTE, ENTITY_PAYMENT, REMINDER1, REMINDER2, REMINDER3] as $type) { + $data['templates'][$type] = [ + 'subject' => $account->getEmailSubject($type), + 'template' => $account->getEmailTemplate($type), + ]; + $data['defaultTemplates'][$type] = [ + 'subject' => $account->getDefaultEmailSubject($type), + 'template' => $account->getDefaultEmailTemplate($type), + ]; + } + $data['emailFooter'] = $account->getEmailFooter(); + $data['title'] = trans('texts.email_templates'); + return View::make('accounts.templates_and_reminders', $data); + } + + public function doSection($section = ACCOUNT_COMPANY_DETAILS) + { + if ($section === ACCOUNT_COMPANY_DETAILS) { + return AccountController::saveDetails(); + } elseif ($section === ACCOUNT_USER_DETAILS) { + return AccountController::saveUserDetails(); + } elseif ($section === ACCOUNT_LOCALIZATION) { + return AccountController::saveLocalization(); + } elseif ($section === ACCOUNT_IMPORT_EXPORT) { + return AccountController::importFile(); + } elseif ($section === ACCOUNT_MAP) { + return AccountController::mapFile(); + } elseif ($section === ACCOUNT_NOTIFICATIONS) { + return AccountController::saveNotifications(); + } elseif ($section === ACCOUNT_EXPORT) { + return AccountController::export(); + } elseif ($section === ACCOUNT_INVOICE_SETTINGS) { + return AccountController::saveInvoiceSettings(); + } elseif ($section === ACCOUNT_INVOICE_DESIGN) { + return AccountController::saveInvoiceDesign(); + } elseif ($section === ACCOUNT_CUSTOMIZE_DESIGN) { + return AccountController::saveCustomizeDesign(); + } elseif ($section === ACCOUNT_TEMPLATES_AND_REMINDERS) { + return AccountController::saveEmailTemplates(); + } elseif ($section === ACCOUNT_PRODUCTS) { return AccountController::saveProducts(); } } @@ -318,7 +362,7 @@ class AccountController extends BaseController Session::flash('message', trans('texts.updated_settings')); } - return Redirect::to('company/advanced_settings/customize_design'); + return Redirect::to('settings/' . ACCOUNT_CUSTOMIZE_DESIGN); } private function saveEmailTemplates() @@ -351,7 +395,7 @@ class AccountController extends BaseController Session::flash('message', trans('texts.updated_settings')); } - return Redirect::to('company/advanced_settings/templates_and_reminders'); + return Redirect::to('settings/' . ACCOUNT_TEMPLATES_AND_REMINDERS); } private function saveProducts() @@ -363,7 +407,7 @@ class AccountController extends BaseController $account->save(); Session::flash('message', trans('texts.updated_settings')); - return Redirect::to('company/products'); + return Redirect::to('settings/' . ACCOUNT_PRODUCTS); } private function saveInvoiceSettings() @@ -386,7 +430,7 @@ class AccountController extends BaseController $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { - return Redirect::to('company/details') + return Redirect::to('settings/' . ACCOUNT_INVOICE_SETTINGS) ->withErrors($validator) ->withInput(); } else { @@ -420,8 +464,7 @@ class AccountController extends BaseController if (!$account->share_counter && $account->invoice_number_prefix == $account->quote_number_prefix) { Session::flash('error', trans('texts.invalid_counter')); - - return Redirect::to('company/advanced_settings/invoice_settings')->withInput(); + return Redirect::to('settings/' . ACCOUNT_INVOICE_SETTINGS)->withInput(); } else { $account->save(); Session::flash('message', trans('texts.updated_settings')); @@ -429,7 +472,7 @@ class AccountController extends BaseController } } - return Redirect::to('company/advanced_settings/invoice_settings'); + return Redirect::to('settings/' . ACCOUNT_INVOICE_SETTINGS); } private function saveInvoiceDesign() @@ -457,7 +500,7 @@ class AccountController extends BaseController Session::flash('message', trans('texts.updated_settings')); } - return Redirect::to('company/advanced_settings/invoice_design'); + return Redirect::to('settings/' . ACCOUNT_INVOICE_DESIGN); } private function export() @@ -568,7 +611,7 @@ class AccountController extends BaseController if ($file == null) { Session::flash('error', trans('texts.select_file')); - return Redirect::to('company/import_export'); + return Redirect::to('settings/' . ACCOUNT_IMPORT_EXPORT); } $name = $file->getRealPath(); @@ -582,7 +625,7 @@ class AccountController extends BaseController $message = trans('texts.limit_clients', ['count' => Auth::user()->getMaxNumClients()]); Session::flash('error', $message); - return Redirect::to('company/import_export'); + return Redirect::to('settings/' . ACCOUNT_IMPORT_EXPORT); } Session::put('data', $csv->data); @@ -680,7 +723,7 @@ class AccountController extends BaseController Session::flash('message', trans('texts.updated_settings')); - return Redirect::to('company/notifications'); + return Redirect::to('settings/' . ACCOUNT_NOTIFICATIONS); } private function saveDetails() @@ -690,16 +733,10 @@ class AccountController extends BaseController 'logo' => 'sometimes|max:1024|mimes:jpeg,gif,png', ); - $user = Auth::user()->account->users()->orderBy('id')->first(); - - if (Auth::user()->id === $user->id) { - $rules['email'] = 'email|required|unique:users,email,'.$user->id.',id'; - } - $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { - return Redirect::to('company/details') + return Redirect::to('settings/' . ACCOUNT_COMPANY_DETAILS) ->withErrors($validator) ->withInput(); } else { @@ -717,29 +754,7 @@ class AccountController extends BaseController $account->country_id = Input::get('country_id') ? Input::get('country_id') : null; $account->size_id = Input::get('size_id') ? Input::get('size_id') : null; $account->industry_id = Input::get('industry_id') ? Input::get('industry_id') : null; - $account->timezone_id = Input::get('timezone_id') ? Input::get('timezone_id') : null; - $account->date_format_id = Input::get('date_format_id') ? Input::get('date_format_id') : null; - $account->datetime_format_id = Input::get('datetime_format_id') ? Input::get('datetime_format_id') : null; - $account->currency_id = Input::get('currency_id') ? Input::get('currency_id') : 1; // US Dollar - $account->language_id = Input::get('language_id') ? Input::get('language_id') : 1; // English - $account->military_time = Input::get('military_time') ? true : false; $account->save(); - - $user = Auth::user(); - $user->first_name = trim(Input::get('first_name')); - $user->last_name = trim(Input::get('last_name')); - $user->username = trim(Input::get('email')); - $user->email = trim(strtolower(Input::get('email'))); - $user->phone = trim(Input::get('phone')); - if (Utils::isNinja()) { - if (Input::get('referral_code') && !$user->referral_code) { - $user->referral_code = $this->accountRepo->getReferralCode(); - } - } - if (Utils::isNinjaDev()) { - $user->dark_mode = Input::get('dark_mode') ? true : false; - } - $user->save(); /* Logo image file */ if ($file = Input::file('logo')) { @@ -770,10 +785,61 @@ class AccountController extends BaseController Event::fire(new UserSettingsChanged()); Session::flash('message', trans('texts.updated_settings')); - return Redirect::to('company/details'); + return Redirect::to('settings/' . ACCOUNT_COMPANY_DETAILS); } } + private function saveUserDetails() + { + $user = Auth::user(); + $rules = ['email' => 'email|required|unique:users,email,'.$user->id.',id']; + $validator = Validator::make(Input::all(), $rules); + + if ($validator->fails()) { + return Redirect::to('settings/' . ACCOUNT_USER_DETAILS) + ->withErrors($validator) + ->withInput(); + } else { + $user->first_name = trim(Input::get('first_name')); + $user->last_name = trim(Input::get('last_name')); + $user->username = trim(Input::get('email')); + $user->email = trim(strtolower(Input::get('email'))); + $user->phone = trim(Input::get('phone')); + + if (Utils::isNinja()) { + if (Input::get('referral_code') && !$user->referral_code) { + $user->referral_code = $this->accountRepo->getReferralCode(); + } + } + if (Utils::isNinjaDev()) { + $user->dark_mode = Input::get('dark_mode') ? true : false; + } + + $user->save(); + + Event::fire(new UserSettingsChanged()); + Session::flash('message', trans('texts.updated_settings')); + return Redirect::to('settings/' . ACCOUNT_USER_DETAILS); + } + } + + private function saveLocalization() + { + $account = Auth::user()->account; + $account->timezone_id = Input::get('timezone_id') ? Input::get('timezone_id') : null; + $account->date_format_id = Input::get('date_format_id') ? Input::get('date_format_id') : null; + $account->datetime_format_id = Input::get('datetime_format_id') ? Input::get('datetime_format_id') : null; + $account->currency_id = Input::get('currency_id') ? Input::get('currency_id') : 1; // US Dollar + $account->language_id = Input::get('language_id') ? Input::get('language_id') : 1; // English + $account->military_time = Input::get('military_time') ? true : false; + $account->save(); + + Event::fire(new UserSettingsChanged()); + + Session::flash('message', trans('texts.updated_settings')); + return Redirect::to('settings/' . ACCOUNT_LOCALIZATION); + } + public function removeLogo() { File::delete('logo/'.Auth::user()->account->account_key.'.jpg'); @@ -781,7 +847,7 @@ class AccountController extends BaseController Session::flash('message', trans('texts.removed_logo')); - return Redirect::to('company/details'); + return Redirect::to('settings/' . ACCOUNT_COMPANY_DETAILS); } public function checkEmail() @@ -879,6 +945,26 @@ class AccountController extends BaseController $user = Auth::user(); $this->userMailer->sendConfirmation($user); - return Redirect::to('/company/details')->with('message', trans('texts.confirmation_resent')); + return Redirect::to('/settings/' . ACCOUNT_COMPANY_DETAILS)->with('message', trans('texts.confirmation_resent')); + } + + public function redirectLegacy($section, $subSection = false) + { + if ($section === 'details') { + $section = ACCOUNT_COMPANY_DETAILS; + } elseif ($section === 'payments') { + $section = ACCOUNT_PAYMENTS; + } elseif ($section === 'advanced_settings') { + $section = $subSection; + if ($section === 'token_management') { + $section = ACCOUNT_API_TOKENS; + } + } + + if (!in_array($section, array_merge(Account::$basicSettings, Account::$advancedSettings))) { + $section = ACCOUNT_COMPANY_DETAILS; + } + + return Redirect::to("/settings/$section/", 301); } } diff --git a/app/Http/Controllers/AccountGatewayController.php b/app/Http/Controllers/AccountGatewayController.php index dc55b08fc0d2..d99f0be47fc8 100644 --- a/app/Http/Controllers/AccountGatewayController.php +++ b/app/Http/Controllers/AccountGatewayController.php @@ -159,7 +159,6 @@ class AccountGatewayController extends BaseController 'gateways' => $gateways, 'creditCardTypes' => $creditCards, 'tokenBillingOptions' => $tokenBillingOptions, - 'showBreadcrumbs' => false, 'countGateways' => count($currentGateways) ]; } @@ -173,7 +172,7 @@ class AccountGatewayController extends BaseController Session::flash('message', trans('texts.deleted_gateway')); - return Redirect::to('company/payments'); + return Redirect::to('settings/' . ACCOUNT_PAYMENTS); } /** diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index 58891afe9763..f3e05c2c819b 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -61,7 +61,7 @@ class AuthController extends Controller { $this->accountRepo->unlinkUserFromOauth(Auth::user()); Session::flash('message', trans('texts.updated_settings')); - return redirect()->to('/company/details'); + return redirect()->to('/settings/' . ACCOUNT_COMPANY_DETAILS); } public function getLoginWrapper() diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php index d971115b22f1..3f8e8b499047 100644 --- a/app/Http/Controllers/ProductController.php +++ b/app/Http/Controllers/ProductController.php @@ -45,7 +45,6 @@ class ProductController extends BaseController public function edit($publicId) { $data = [ - 'showBreadcrumbs' => false, 'product' => Product::scope($publicId)->firstOrFail(), 'method' => 'PUT', 'url' => 'products/'.$publicId, @@ -58,12 +57,11 @@ class ProductController extends BaseController public function create() { $data = [ - 'showBreadcrumbs' => false, - 'product' => null, - 'method' => 'POST', - 'url' => 'products', - 'title' => trans('texts.create_product'), - ]; + 'product' => null, + 'method' => 'POST', + 'url' => 'products', + 'title' => trans('texts.create_product'), + ]; return View::make('accounts.product', $data); } @@ -94,7 +92,7 @@ class ProductController extends BaseController $message = $productPublicId ? trans('texts.updated_product') : trans('texts.created_product'); Session::flash('message', $message); - return Redirect::to('company/products'); + return Redirect::to('settings/' . ACCOUNT_PRODUCTS); } public function archive($publicId) @@ -104,6 +102,6 @@ class ProductController extends BaseController Session::flash('message', trans('texts.archived_product')); - return Redirect::to('company/products'); + return Redirect::to('settings/' . ACCOUNT_PRODUCTS); } } diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index 25114f8d36aa..950cf01b7df0 100644 --- a/app/Http/Controllers/ReportController.php +++ b/app/Http/Controllers/ReportController.php @@ -33,7 +33,6 @@ class ReportController extends BaseController } $data = [ - 'feature' => ACCOUNT_DATA_VISUALIZATIONS, 'clients' => $clients, 'message' => $message, ]; @@ -276,7 +275,6 @@ class ReportController extends BaseController 'startDate' => $startDate->format(Session::get(SESSION_DATE_FORMAT)), 'endDate' => $endDate->format(Session::get(SESSION_DATE_FORMAT)), 'groupBy' => $groupBy, - 'feature' => ACCOUNT_CHART_BUILDER, 'displayData' => $displayData, 'columns' => $columns, 'reportTotals' => $reportTotals, diff --git a/app/Http/Controllers/TokenController.php b/app/Http/Controllers/TokenController.php index c95cdbad4d0d..704888e642c4 100644 --- a/app/Http/Controllers/TokenController.php +++ b/app/Http/Controllers/TokenController.php @@ -67,7 +67,6 @@ class TokenController extends BaseController ->where('public_id', '=', $publicId)->firstOrFail(); $data = [ - 'showBreadcrumbs' => false, 'token' => $token, 'method' => 'PUT', 'url' => 'tokens/'.$publicId, @@ -94,12 +93,10 @@ class TokenController extends BaseController public function create() { $data = [ - 'showBreadcrumbs' => false, 'token' => null, 'method' => 'POST', 'url' => 'tokens', 'title' => trans('texts.add_token'), - 'feature' => 'tokens', ]; return View::make('accounts.token', $data); @@ -115,7 +112,7 @@ class TokenController extends BaseController Session::flash('message', trans('texts.deleted_token')); - return Redirect::to('company/advanced_settings/token_management'); + return Redirect::to('settings/' . ACCOUNT_API_TOKENS); } /** @@ -163,7 +160,7 @@ class TokenController extends BaseController Session::flash('message', $message); } - return Redirect::to('company/advanced_settings/token_management'); + return Redirect::to('settings/' . ACCOUNT_API_TOKENS); } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 75f9da467d0b..9802b50e97e4 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -106,7 +106,6 @@ class UserController extends BaseController ->where('public_id', '=', $publicId)->firstOrFail(); $data = [ - 'showBreadcrumbs' => false, 'user' => $user, 'method' => 'PUT', 'url' => 'users/'.$publicId, @@ -134,24 +133,22 @@ class UserController extends BaseController { if (!Auth::user()->registered) { Session::flash('error', trans('texts.register_to_add_user')); - return Redirect::to('company/advanced_settings/user_management'); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } if (!Auth::user()->confirmed) { Session::flash('error', trans('texts.confirmation_required')); - return Redirect::to('company/advanced_settings/user_management'); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } if (Utils::isNinja()) { $count = User::where('account_id', '=', Auth::user()->account_id)->count(); if ($count >= MAX_NUM_USERS) { Session::flash('error', trans('texts.limit_users')); - - return Redirect::to('company/advanced_settings/user_management'); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } } $data = [ - 'showBreadcrumbs' => false, 'user' => null, 'method' => 'POST', 'url' => 'users', @@ -171,7 +168,7 @@ class UserController extends BaseController Session::flash('message', trans('texts.deleted_user')); - return Redirect::to('company/advanced_settings/user_management'); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } public function restoreUser($userPublicId) @@ -184,7 +181,7 @@ class UserController extends BaseController Session::flash('message', trans('texts.restored_user')); - return Redirect::to('company/advanced_settings/user_management'); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } /** @@ -247,7 +244,7 @@ class UserController extends BaseController Session::flash('message', $message); } - return Redirect::to('company/advanced_settings/user_management'); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } public function sendConfirmation($userPublicId) @@ -258,7 +255,7 @@ class UserController extends BaseController $this->userMailer->sendConfirmation($user, Auth::user()); Session::flash('message', trans('texts.sent_invite')); - return Redirect::to('company/advanced_settings/user_management'); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } diff --git a/app/Http/routes.php b/app/Http/routes.php index 1c914e18267c..5c129c629a3a 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -121,14 +121,16 @@ Route::group(['middleware' => 'auth'], function() { Route::resource('products', 'ProductController'); Route::get('products/{product_id}/archive', 'ProductController@archive'); - Route::get('company/advanced_settings/data_visualizations', 'ReportController@d3'); - Route::get('company/advanced_settings/charts_and_reports', 'ReportController@showReports'); - Route::post('company/advanced_settings/charts_and_reports', 'ReportController@showReports'); + Route::get('company/{section}/{subSection?}', 'AccountController@redirectLegacy'); + Route::get('settings/data_visualizations', 'ReportController@d3'); + Route::get('settings/charts_and_reports', 'ReportController@showReports'); + Route::post('settings/charts_and_reports', 'ReportController@showReports'); - Route::post('company/cancel_account', 'AccountController@cancelAccount'); + Route::post('settings/cancel_account', 'AccountController@cancelAccount'); + Route::get('settings/{section?}', 'AccountController@showSection'); + Route::post('settings/{section?}', 'AccountController@doSection'); + Route::get('account/getSearchData', array('as' => 'getSearchData', 'uses' => 'AccountController@getSearchData')); - Route::get('company/{section?}/{sub_section?}', 'AccountController@showSection'); - Route::post('company/{section?}/{sub_section?}', 'AccountController@doSection'); Route::post('user/setTheme', 'UserController@setTheme'); Route::post('remove_logo', 'AccountController@removeLogo'); Route::post('account/go_pro', 'AccountController@enableProPlan'); @@ -183,7 +185,6 @@ Route::group(['middleware' => 'auth'], function() { Route::post('credits/bulk', 'CreditController@bulk'); get('/resend_confirmation', 'AccountController@resendConfirmation'); - //Route::resource('timesheets', 'TimesheetController'); }); // Route group for API @@ -253,21 +254,26 @@ if (!defined('CONTACT_EMAIL')) { define('PERSON_CONTACT', 'contact'); define('PERSON_USER', 'user'); - define('ACCOUNT_DETAILS', 'details'); + define('BASIC_SETTINGS', 'basic_settings'); + define('ADVANCED_SETTINGS', 'advanced_settings'); + + define('ACCOUNT_COMPANY_DETAILS', 'company_details'); + define('ACCOUNT_USER_DETAILS', 'user_details'); + define('ACCOUNT_LOCALIZATION', 'localization'); define('ACCOUNT_NOTIFICATIONS', 'notifications'); define('ACCOUNT_IMPORT_EXPORT', 'import_export'); - define('ACCOUNT_PAYMENTS', 'payments'); + define('ACCOUNT_PAYMENTS', 'online_payments'); define('ACCOUNT_MAP', 'import_map'); define('ACCOUNT_EXPORT', 'export'); define('ACCOUNT_PRODUCTS', 'products'); define('ACCOUNT_ADVANCED_SETTINGS', 'advanced_settings'); define('ACCOUNT_INVOICE_SETTINGS', 'invoice_settings'); define('ACCOUNT_INVOICE_DESIGN', 'invoice_design'); - define('ACCOUNT_CHART_BUILDER', 'chart_builder'); + define('ACCOUNT_CHARTS_AND_REPORTS', 'charts_and_reports'); define('ACCOUNT_USER_MANAGEMENT', 'user_management'); define('ACCOUNT_DATA_VISUALIZATIONS', 'data_visualizations'); define('ACCOUNT_TEMPLATES_AND_REMINDERS', 'templates_and_reminders'); - define('ACCOUNT_TOKEN_MANAGEMENT', 'token_management'); + define('ACCOUNT_API_TOKENS', 'api_tokens'); define('ACCOUNT_CUSTOMIZE_DESIGN', 'customize_design'); diff --git a/app/Models/Account.php b/app/Models/Account.php index 58295bdd3c8e..a06ad887b882 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -15,6 +15,26 @@ class Account extends Eloquent protected $dates = ['deleted_at']; protected $hidden = ['ip']; + public static $basicSettings = [ + ACCOUNT_COMPANY_DETAILS, + ACCOUNT_USER_DETAILS, + ACCOUNT_LOCALIZATION, + ACCOUNT_PAYMENTS, + ACCOUNT_PRODUCTS, + ACCOUNT_NOTIFICATIONS, + ACCOUNT_IMPORT_EXPORT, + ]; + + public static $advancedSettings = [ + ACCOUNT_INVOICE_DESIGN, + ACCOUNT_INVOICE_SETTINGS, + ACCOUNT_TEMPLATES_AND_REMINDERS, + ACCOUNT_CHARTS_AND_REPORTS, + ACCOUNT_DATA_VISUALIZATIONS, + ACCOUNT_USER_MANAGEMENT, + ACCOUNT_API_TOKENS, + ]; + /* protected $casts = [ 'invoice_settings' => 'object', diff --git a/app/Ninja/Mailers/ContactMailer.php b/app/Ninja/Mailers/ContactMailer.php index 7cb322e01dcd..ff4f28c51c0f 100644 --- a/app/Ninja/Mailers/ContactMailer.php +++ b/app/Ninja/Mailers/ContactMailer.php @@ -145,7 +145,6 @@ class ContactMailer extends Mailer $subject = $this->processVariables($emailSubject, $variables); $data['invoice_id'] = $payment->invoice->id; - $invoice->updateCachedPDF(); if ($user->email && $contact->email) { $this->sendTo($contact->email, $user->email, $accountName, $subject, $view, $data); diff --git a/app/Services/AuthService.php b/app/Services/AuthService.php index 9244dcdb6133..0ba31710b607 100644 --- a/app/Services/AuthService.php +++ b/app/Services/AuthService.php @@ -49,7 +49,7 @@ class AuthService Session::flash('warning', trans('texts.success_message')); } else { Session::flash('message', trans('texts.updated_settings')); - return redirect()->to('/company/details'); + return redirect()->to('/settings/' . ACCOUNT_COMPANY_DETAILS); } } else { Session::flash('error', $result); diff --git a/public/css/built.css b/public/css/built.css index ca50e4b7f2a6..6bcc82930e22 100644 --- a/public/css/built.css +++ b/public/css/built.css @@ -3340,4 +3340,14 @@ ul.user-accounts a:hover div.remove { .tooltip-inner { text-align:left; width: 350px; +} + +.list-group-item.selected:before { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 2px; + content: ""; + background-color: #e37329; } \ No newline at end of file diff --git a/public/css/built.public.css b/public/css/built.public.css index 3c54cc6ace64..ad95f70da8ae 100644 --- a/public/css/built.public.css +++ b/public/css/built.public.css @@ -866,11 +866,11 @@ body { } /* Hide bootstrap sort header icons */ -table.data-table thead .sorting:after { content: '' !important } -table.data-table thead .sorting_asc:after { content: '' !important } -table.data-table thead .sorting_desc:after { content: '' !important} -table.data-table thead .sorting_asc_disabled:after { content: '' !important } -table.data-table thead .sorting_desc_disabled:after { content: '' !important } +table.table thead .sorting:after { content: '' !important } +table.table thead .sorting_asc:after { content: '' !important } +table.table thead .sorting_desc:after { content: '' !important } +table.table thead .sorting_asc_disabled:after { content: '' !important } +table.table thead .sorting_desc_disabled:after { content: '' !important } .dataTables_length { padding-left: 20px; diff --git a/public/css/style.css b/public/css/style.css index b9714e2da294..fee73f766646 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -990,4 +990,15 @@ ul.user-accounts a:hover div.remove { .tooltip-inner { text-align:left; width: 350px; +} + +/* Show selected section in settings nav */ +.list-group-item.selected:before { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 2px; + content: ""; + background-color: #e37329; } \ No newline at end of file diff --git a/resources/lang/da/texts.php b/resources/lang/da/texts.php index 1c1aa173ae6c..369d53e3c6a9 100644 --- a/resources/lang/da/texts.php +++ b/resources/lang/da/texts.php @@ -1,823 +1,825 @@ - 'Organisation', - 'name' => 'Navn', - 'website' => 'Webside', - 'work_phone' => 'Telefon', - 'address' => 'Adresse', - 'address1' => 'Gade', - 'address2' => 'Nummer', - 'city' => 'By', - 'state' => 'Område', - 'postal_code' => 'Postnummer', - 'country_id' => 'Land', - 'contacts' => 'Kontakter', - 'first_name' => 'Fornavn', - 'last_name' => 'Efternavn', - 'phone' => 'Telefon', - 'email' => 'E-mail', - 'additional_info' => 'Ekstra information', - 'payment_terms' => 'Betalingsvilkår', - 'currency_id' => 'Valuta', - 'size_id' => 'Størrelse', - 'industry_id' => 'Sektor', - 'private_notes' => 'Private notater', - - // invoice - 'invoice' => 'Faktura', - 'client' => 'Klient', - 'invoice_date' => 'Faktureringsdato', - 'due_date' => 'Betalingsfrist', - 'invoice_number' => 'Fakturanummer', - 'invoice_number_short' => 'Faktura nr.: #', - 'po_number' => 'Ordrenummer', - 'po_number_short' => 'Ordre nr.: #', - 'frequency_id' => 'Frekvens', - 'discount' => 'Rabat', - 'taxes' => 'Skatter', - 'tax' => 'Skat', - 'item' => 'Produkttype', - 'description' => 'Beskrivelse', - 'unit_cost' => 'Pris', - 'quantity' => 'Stk.', - 'line_total' => 'Sum', - 'subtotal' => 'Subtotal', - 'paid_to_date' => 'Betalt', - 'balance_due' => 'Udestående beløb', - 'invoice_design_id' => 'Design', - 'terms' => 'Vilkår', - 'your_invoice' => 'Din faktura', - - 'remove_contact' => 'Fjern kontakt', - 'add_contact' => 'Tilføj kontakt', - 'create_new_client' => 'Opret ny klient', - 'edit_client_details' => 'Redigér klient detaljer', - 'enable' => 'Aktiver', - 'learn_more' => 'Lær mere', - 'manage_rates' => 'Administrer priser', - 'note_to_client' => 'Bemærkninger til klient', - 'invoice_terms' => 'Vilkår for fakturaen', - 'save_as_default_terms' => 'Gem som standard vilkår', - 'download_pdf' => 'Hent PDF', - 'pay_now' => 'Betal nu', - 'save_invoice' => 'Gem faktura', - 'clone_invoice' => 'Kopier faktura', - 'archive_invoice' => 'Arkiver faktura', - 'delete_invoice' => 'Slet faktura', - 'email_invoice' => 'Send faktura som e-mail', - 'enter_payment' => 'Tilføj betaling', - 'tax_rates' => 'Skattesatser', - 'rate' => 'Sats', - 'settings' => 'Indstillinger', - 'enable_invoice_tax' => 'Aktiver for at specificere en faktura skat', - 'enable_line_item_tax' => 'Aktiver for at specificere per linjefaktura skat', - - // navigation - 'dashboard' => 'Oversigt', - 'clients' => 'Klienter', - 'invoices' => 'Fakturaer', - 'payments' => 'Betalinger', - 'credits' => 'Kreditter', - 'history' => 'Historie', - 'search' => 'Søg', - 'sign_up' => 'Registrer dig', - 'guest' => 'Gæst', - 'company_details' => 'Firmainformation', - 'online_payments' => 'On-line betaling', - 'notifications' => 'Notifikationer', - 'import_export' => 'Import/Eksport', - 'done' => 'Færdig', - 'save' => 'Gem', - 'create' => 'Opret', - 'upload' => 'Send', - 'import' => 'Importer', - 'download' => 'Hent', - 'cancel' => 'Afbryd', - 'close' => 'Luk', - 'provide_email' => 'Opgiv venligst en gyldig e-mail', - 'powered_by' => 'Drevet af', - 'no_items' => 'Ingen elementer', - - // recurring invoices - 'recurring_invoices' => 'Gentagende fakturaer', - 'recurring_help' => '

Send automatisk klienter de samme fakturaer ugentligt, bi-månedligt, månedligt, kvartalsvis eller årligt.

-

Brug :MONTH, :QUARTER eller :YEAR for dynamiske datoer. Grundliggende matematik fungerer også, for eksempel :MONTH-1.

-

Eksempler på dynamiske faktura variabler:

- ', - - // dashboard - 'in_total_revenue' => 'totale indtægter', - 'billed_client' => 'faktureret klient', - 'billed_clients' => 'fakturerede klienter', - 'active_client' => 'aktiv klient', - 'active_clients' => 'aktive klienter', - 'invoices_past_due' => 'Forfaldne fakturaer', - 'upcoming_invoices' => 'Kommende fakturaer', - 'average_invoice' => 'Gennemsnitlig fakturaer', - - // list pages - 'archive' => 'Arkiv', - 'delete' => 'Slet', - 'archive_client' => 'Arkiver klient', - 'delete_client' => 'Slet klient', - 'archive_payment' => 'Arkiver betaling', - 'delete_payment' => 'Slet betaling', - 'archive_credit' => 'Arkiver kredit', - 'delete_credit' => 'Slet kredit', - 'show_archived_deleted' => 'Vis arkiverede/slettede', - 'filter' => 'Filter', - 'new_client' => 'Ny klient', - 'new_invoice' => 'Ny faktura', - 'new_payment' => 'Ny betaling', - 'new_credit' => 'Ny kredit', - 'contact' => 'Kontakt', - 'date_created' => 'Dato oprettet', - 'last_login' => 'Sidste log ind', - 'balance' => 'Balance', - 'action' => 'Handling', - 'status' => 'Status', - 'invoice_total' => 'Faktura total', - 'frequency' => 'Frekvens', - 'start_date' => 'Start dato', - 'end_date' => 'Slut dato', - 'transaction_reference' => 'Transaktionsreference', - 'method' => 'Betalingsmåde', - 'payment_amount' => 'Beløb', - 'payment_date' => 'Betalings dato', - 'credit_amount' => 'Kreditbeløb', - 'credit_balance' => 'Kreditsaldo', - 'credit_date' => 'Kredit dato', - 'empty_table' => 'Ingen data er tilgængelige i tabellen', - 'select' => 'Vælg', - 'edit_client' => 'Rediger klient', - 'edit_invoice' => 'Rediger faktura', - - // client view page - 'create_invoice' => 'Opret faktura', - 'enter_credit' => 'Tilføj kredit', - 'last_logged_in' => 'Sidste log ind', - 'details' => 'Detaljer', - 'standing' => 'Stående', - 'credit' => 'Kredit', - 'activity' => 'Aktivitet', - 'date' => 'Dato', - 'message' => 'Besked', - 'adjustment' => 'Justering', - 'are_you_sure' => 'Er du sikker?', - - // payment pages - 'payment_type_id' => 'Betalingsmetode', - 'amount' => 'Beløb', - - // account/company pages - 'work_email' => 'E-mail', - 'language_id' => 'Sprog', - 'timezone_id' => 'Tidszone', - 'date_format_id' => 'Dato format', - 'datetime_format_id' => 'Dato/Tidsformat', - 'users' => 'Brugere', - 'localization' => 'Lokalisering', - 'remove_logo' => 'Fjern logo', - 'logo_help' => 'Understøttede filtyper: JPEG, GIF og PNG', - 'payment_gateway' => 'Betalingsløsning', - 'gateway_id' => 'Kort betalings udbyder', - 'email_notifications' => 'Notifikation via e-mail', - 'email_sent' => 'Notifikation når en faktura er sendt', - 'email_viewed' => 'Notifikation når en faktura er set', - 'email_paid' => 'Notifikation når en faktura er betalt', - 'site_updates' => 'Webside opdateringer', - 'custom_messages' => 'Tilpassede meldinger', - 'default_invoice_terms' => 'Sæt standard fakturavilkår', - 'default_email_footer' => 'Sæt standard e-mailsignatur', - 'import_clients' => 'Importer klientdata', - 'csv_file' => 'Vælg CSV-fil', - 'export_clients' => 'Eksporter klientdata', - 'select_file' => 'Venligst vælg en fil', - 'first_row_headers' => 'Brug første række som overskrifter', - 'column' => 'Kolonne', - 'sample' => 'Eksempel', - 'import_to' => 'Importer til', - 'client_will_create' => 'Klient vil blive oprettet', - 'clients_will_create' => 'Klienter vil blive oprettet', - 'email_settings' => 'E-mail Indstillinger', - 'pdf_email_attachment' => 'Vedhæft PDF til e-mails', - - // application messages - 'created_client' => 'Klient oprettet succesfuldt', - 'created_clients' => 'Klienter oprettet succesfuldt', - 'updated_settings' => 'Indstillinger opdateret', - 'removed_logo' => 'Logo fjernet', - 'sent_message' => 'Besked sendt', - 'invoice_error' => 'Vælg venligst en klient og ret eventuelle fejl', - 'limit_clients' => 'Desværre, dette vil overstige grænsen på :count klienter', - 'payment_error' => 'Det opstod en fejl under din betaling. Venligst prøv igen senere.', - 'registration_required' => 'Venligst registrer dig for at sende e-mail faktura', - 'confirmation_required' => 'Venligst bekræft din e-mail adresse', - - 'updated_client' => 'Klient opdateret', - 'created_client' => 'Klient oprettet', - 'archived_client' => 'Klient arkiveret', - 'archived_clients' => 'Arkiverede :count klienter', - 'deleted_client' => 'Klient slettet', - 'deleted_clients' => 'Slettede :count klienter', - - 'updated_invoice' => 'Faktura opdateret', - 'created_invoice' => 'Faktura oprettet', - 'cloned_invoice' => 'Faktura kopieret', - 'emailed_invoice' => 'E-mail faktura sendt', - 'and_created_client' => 'og klient oprettet', - 'archived_invoice' => 'Faktura arkiveret', - 'archived_invoices' => 'Arkiverede :count fakturaer', - 'deleted_invoice' => 'Faktura slettet', - 'deleted_invoices' => 'Slettede :count fakturaer', - - 'created_payment' => 'Betaling oprettet', - 'archived_payment' => 'Betaling arkiveret', - 'archived_payments' => 'Arkiverede :count betalinger', - 'deleted_payment' => 'Betaling slettet', - 'deleted_payments' => 'Slettede :count betalinger', - 'applied_payment' => 'Betaling ajourført', - - 'created_credit' => 'Kredit oprettet', - 'archived_credit' => 'Kredit arkiveret', - 'archived_credits' => 'Arkiverede :count kreditter', - 'deleted_credit' => 'Kredit slettet', - 'deleted_credits' => 'Slettede :count kreditter', - - // Emails - 'confirmation_subject' => 'Invoice Ninja konto bekræftelse', - 'confirmation_header' => 'Konto bekræftelse', - 'confirmation_message' => 'Venligst klik på linket nedenfor for at bekræfte din konto.', - 'invoice_subject' => 'Ny faktura :invoice fra :account', - 'invoice_message' => 'For at se din faktura på :amount, klik på linket nedenfor.', - 'payment_subject' => 'Betaling modtaget', - 'payment_message' => 'Tak for din betaling pålydende :amount.', - 'email_salutation' => 'Kære :name,', - 'email_signature' => 'Med venlig hilsen,', - 'email_from' => 'Invoice Ninja Teamet', - 'user_email_footer' => 'For at justere varslings indstillingene besøg venligst'.SITE_URL.'/company/notifications', - 'invoice_link_message' => 'Hvis du vil se din klient faktura klik på linket under:', - 'notification_invoice_paid_subject' => 'Faktura :invoice betalt af :client', - 'notification_invoice_sent_subject' => 'Faktura :invoice sendt til :client', - 'notification_invoice_viewed_subject' => 'Faktura :invoice set af :client', - 'notification_invoice_paid' => 'En betaling pålydende :amount blev betalt af :client for faktura :invoice.', - 'notification_invoice_sent' => 'En e-mail er blevet sendt til :client med faktura :invoice pålydende :amount.', - 'notification_invoice_viewed' => ':client har set faktura :invoice pålydende :amount.', - 'reset_password' => 'Du kan nulstille din adgangskode ved at besøge følgende link:', - 'reset_password_footer' => 'Hvis du ikke bad om at få nulstillet din adgangskode kontakt venligst kundeservice: ' . CONTACT_EMAIL, - - - // Payment page - 'secure_payment' => 'Sikker betaling', - 'card_number' => 'Kortnummer', - 'expiration_month' => 'Udløbsdato', - 'expiration_year' => 'Udløbsår', - 'cvv' =>'Kontrolcifre', - - // Security alerts - 'security' => [ - 'too_many_attempts' => 'For mange forsøg. Prøv igen om nogen få minutter.', - 'wrong_credentials' => 'Forkert e-mail eller adgangskode.', - 'confirmation' => 'Din konto har blevet bekræftet!', - 'wrong_confirmation' => 'Forkert bekræftelseskode.', - 'password_forgot' => 'Informationen om nulstilling af din adgangskode er blevet sendt til din e-mail.', - 'password_reset' => 'Adgangskode ændret', - 'wrong_password_reset' => 'Ugyldig adgangskode. Prøv på ny', - ], - - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link for at fjerne Invoice Ninja-logoet, opgrader til en Pro Plan', - 'remove_logo_link' => 'Klik her', - ], - - 'logout' => 'Log ud', - 'sign_up_to_save' => 'Registrer dig for at gemme dit arbejde', - 'agree_to_terms' =>'Jeg accepterer Invoice Ninja :terms', - 'terms_of_service' => 'Vilkår for brug', - 'email_taken' => 'E-mailadressen er allerede registreret', - 'working' => 'Arbejder', - 'success' => 'Succes', - 'success_message' => 'Du er blevet registreret. Klik på linket som du har modtaget i e-mail bekræftelsen for at bekræfte din e-mail adresse.', - 'erase_data' => 'Dette vil permanent slette dine oplysninger.', - 'password' => 'Adgangskode', - - 'pro_plan_product' => 'Pro Plan', - 'pro_plan_description' => 'Et års indmelding i Invoice Ninja Pro Plan.', - 'pro_plan_success' => 'Tak fordi du valgte Invoice Ninja\'s Pro plan!

 
- De næste skridt

En betalbar faktura er sendt til den e-email adresse - som er tilknyttet din konto. For at låse op for alle de utrolige - Pro-funktioner, skal du følge instruktionerne på fakturaen til at - betale for et år med Pro-niveau funktionerer.

- Kan du ikke finde fakturaen? Har behov for mere hjælp? Vi hjælper dig gerne hvis der skulle være noget galt - -- kontakt os på contact@invoiceninja.com', - - 'unsaved_changes' => 'Du har ikke gemte ændringer', - 'custom_fields' => 'Egendefineret felt', - 'company_fields' => 'Selskabets felt', - 'client_fields' => 'Klientens felt', - 'field_label' => 'Felt etikette', - 'field_value' => 'Feltets værdi', - 'edit' => 'Rediger', - 'set_name' => 'Sæt dit firmanavn', - 'view_as_recipient' => 'Vis som modtager', - - // product management - 'product_library' => 'Produkt bibliotek', - 'product' => 'Produkt', - 'products' => 'Produkter', - 'fill_products' => 'Automatisk-udfyld produkter', - 'fill_products_help' => 'Valg af produkt vil automatisk udfylde beskrivelse og pris', - 'update_products' => 'Automatisk opdatering af produkter', - 'update_products_help' => 'En opdatering af en faktura vil automatisk opdaterer Produkt biblioteket', - 'create_product' => 'Opret nyt produkt', - 'edit_product' => 'Rediger produkt', - 'archive_product' => 'Arkiver produkt', - 'updated_product' => 'Produkt opdateret', - 'created_product' => 'Produkt oprettet', - 'archived_product' => 'Produkt arkiveret', - 'pro_plan_custom_fields' => ':link for at aktivere egendefinerede felter skal du have en Pro Plan', - - 'advanced_settings' => 'Aavancerede indstillinger', - 'pro_plan_advanced_settings' => ':link for at aktivere avancerede indstillinger skal du være have en Pro Plan', - 'invoice_design' => 'Fakturadesign', - 'specify_colors' => 'Egendefineret farve', - 'specify_colors_label' => 'Vælg de farver som skal bruges i fakturaen', - - 'chart_builder' => 'Diagram bygger', - 'ninja_email_footer' => 'Brug :sitet til at fakturere dine kunder og bliv betalt på nettet - gratis!', - 'go_pro' => 'Vælg Pro', - - // Quotes - 'quote' => 'Pristilbud', - 'quotes' => 'Pristilbud', - 'quote_number' => 'Tilbuds nummer', - 'quote_number_short' => 'Tilbuds #', - 'quote_date' => 'Tilbuds dato', - 'quote_total' => 'Tilbud total', - 'your_quote' => 'Dit tilbud', - 'total' => 'Total', - 'clone' => 'Kopier', - - 'new_quote' => 'Nyt tilbud', - 'create_quote' => 'Opret tilbud', - 'edit_quote' => 'Rediger tilbud', - 'archive_quote' => 'Arkiver tilbud', - 'delete_quote' => 'Slet tilbud', - 'save_quote' => 'Gem tilbud', - 'email_quote' => 'E-mail tilbudet', - 'clone_quote' => 'Kopier tilbud', - 'convert_to_invoice' => 'Konverter til en faktura', - 'view_invoice' => 'Se faktura', - 'view_client' => 'Vis klient', - 'view_quote' => 'Se tilbud', - - 'updated_quote' => 'Tilbud opdateret', - 'created_quote' => 'Tilbud oprettet', - 'cloned_quote' => 'Tilbud kopieret', - 'emailed_quote' => 'Tilbud sendt som e-mail', - 'archived_quote' => 'Tilbud arkiveret', - 'archived_quotes' => 'Arkiverede :count tilbud', - 'deleted_quote' => 'Tilbud slettet', - 'deleted_quotes' => 'Slettede :count tilbud', - 'converted_to_invoice' => 'Tilbud konverteret til faktura', - - 'quote_subject' => 'Nyt tilbud fra :account', - 'quote_message' => 'For at se dit tilbud pålydende :amount, klik på linket nedenfor.', - 'quote_link_message' => 'Hvis du vil se din klients tilbud, klik på linket under:', - 'notification_quote_sent_subject' => 'Tilbud :invoice sendt til :client', - 'notification_quote_viewed_subject' => 'Tilbudet :invoice er set af :client', - 'notification_quote_sent' => 'Følgende klient :client blev sendt tilbudsfaktura :invoice pålydende :amount.', - 'notification_quote_viewed' => 'Følgende klient :client har set tilbudsfakturaen :invoice pålydende :amount.', - - 'session_expired' => 'Session er udløbet.', - - 'invoice_fields' => 'Faktura felt', - 'invoice_options' => 'Faktura indstillinger', - 'hide_quantity' => 'Skjul antal', - 'hide_quantity_help' => 'Hvis du altid kun har 1 som antal på dine fakturalinjer på fakturaen, kan du vælge ikke at vise antal på fakturaen.', - 'hide_paid_to_date' => 'Skjul delbetalinger', - 'hide_paid_to_date_help' => 'Vis kun delbetalinger hvis der er forekommet en delbetaling.', - - 'charge_taxes' => 'Inkluder skat', - 'user_management' => 'Brugerhåndtering', - 'add_user' => 'Tilføj bruger', - 'send_invite' => 'Send invitation', - 'sent_invite' => 'Invitation sendt', - 'updated_user' => 'Bruger opdateret', - 'invitation_message' => 'Du er blevet inviteret af :invitor. ', - 'register_to_add_user' => 'Du skal registrer dig for at oprette en bruger', - 'user_state' => 'Status', - 'edit_user' => 'Rediger bruger', - 'delete_user' => 'Slet bruger', - 'active' => 'Aktiv', - 'pending' => 'Afventer', - 'deleted_user' => 'Bruger slettet', - 'limit_users' => 'Desværre, dette vil overstige grænsen på ' . MAX_NUM_USERS . ' brugere', - - 'confirm_email_invoice' => 'Er du sikker på at du vil sende en e-mail med denne faktura?', - 'confirm_email_quote' => 'Er du sikker på du ville sende en e-mail med dette tilbud?', - 'confirm_recurring_email_invoice' => 'Gentagende er slået til, er du sikker på du sende en e-mail med denne faktura?', - - 'cancel_account' => 'Annuller konto', - 'cancel_account_message' => 'Advarsel: Dette ville slette alle dine data og kan ikke fortrydes', - 'go_back' => 'Gå tilbage', - - 'data_visualizations' => 'Data visualisering', - 'sample_data' => 'Eksempel data vist', - 'hide' => 'Skjul', - 'new_version_available' => 'En ny version af :releases_link er tilgængelig. Din nuværende version er v:user_version, den nyeste version er v:latest_version', - - 'invoice_settings' => 'Faktura indstillinger', - 'invoice_number_prefix' => 'Faktura nummer præfiks', - 'invoice_number_counter' => 'Faktura nummer tæller', - 'quote_number_prefix' => 'Tilbuds nummer præfiks', - 'quote_number_counter' => 'Tilbuds nummer tæller', - 'share_invoice_counter' => 'Del faktura nummer tæller', - 'invoice_issued_to' => 'Faktura udstedt til', - 'invalid_counter' => 'For at undgå mulige overlap, sæt et faktura eller tilbuds nummer præfiks', - 'mark_sent' => 'Markér som sendt', - - 'gateway_help_1' => ':link til at registrere dig hos Authorize.net.', - 'gateway_help_2' => ':link til at registrere dig hos Authorize.net.', - 'gateway_help_17' => ':link til at hente din PayPal API signatur.', - 'gateway_help_23' => 'Note: brug din hemmelige API nøgle, IKKE din publicerede API nøgle.', - 'gateway_help_27' => ':link til at registrere dig hos TwoCheckout.', - - 'more_designs' => 'Flere designs', - 'more_designs_title' => 'Yderligere faktura designs', - 'more_designs_cloud_header' => 'Skift til Pro for flere faktura designs', - 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Få 6 flere faktura designs for kun $'.INVOICE_DESIGNS_PRICE, - 'more_designs_self_host_text' => '', - 'buy' => 'Køb', - 'bought_designs' => 'Yderligere faktura designs tilføjet', - 'sent' => 'sendt', + 'SE/CVR nummer', - 'timesheets' => 'Timesedler', - - 'payment_title' => 'Indtast din faktura adresse og kreditkort information', - 'payment_cvv' => '*Dette er det 3-4 cifrede nummer på bagsiden af dit kort', - 'payment_footer1' => '*Faktura adressen skal matche den der er tilknyttet kortet.', - 'payment_footer2' => '*Klik kun på "Betal Nu" én gang - transaktionen kan tage helt op til 1 minut inden den er færdig.', - - 'id_number' => 'SE/CVR nummer', - 'white_label_link' => 'Hvid Label', - 'white_label_text' => 'Køb en Hvid Label licens til $'.WHITE_LABEL_PRICE.' for at fjerne Invoice Ninja mærket fra toppen af klient siderne.', - 'white_label_header' => 'Hvid Label', - 'bought_white_label' => 'Hvid Label licens accepteret', - 'white_labeled' => 'Hvid Label', - - 'restore' => 'Genskab', - 'restore_invoice' => 'Genskab faktura', - 'restore_quote' => 'Genskab tilbud', - 'restore_client' => 'Genskab Klient', - 'restore_credit' => 'Genskab Kredit', - 'restore_payment' => 'Genskab Betaling', - - 'restored_invoice' => 'Faktura genskabt', - 'restored_quote' => 'Tilbud genskabt', - 'restored_client' => 'Klient genskabt', - 'restored_payment' => 'Betaling genskabt', - 'restored_credit' => 'Kredit genskabt', - - 'reason_for_canceling' => 'Hjælp os med at blive bedre ved at fortælle os hvorfor du forlader os.', - 'discount_percent' => 'Procent', - 'discount_amount' => 'Beløb', - - 'invoice_history' => 'Faktura historik', - 'quote_history' => 'Tilbuds historik', - 'current_version' => 'Nuværende version', - 'select_versiony' => 'Vælg version', - 'view_history' => 'Vis historik', - - 'edit_payment' => 'Redigér betaling', - 'updated_payment' => 'Betaling opdateret', - 'deleted' => 'Slettet', - 'restore_user' => 'Genskab bruger', - 'restored_user' => 'Bruger genskabt', - 'show_deleted_users' => 'Vis slettede brugere', - 'email_templates' => 'E-mail skabeloner', - 'invoice_email' => 'Faktura e-mail', - 'payment_email' => 'Betalings e-mail', - 'quote_email' => 'Tilbuds e-mail', - 'reset_all' => 'Nulstil alle', - 'approve' => 'Godkend', - - 'token_billing_type_id' => 'Tokensk Fakturering', - 'token_billing_help' => 'Tillader dig at gemme kredit kort oplysninger, for at kunne fakturere dem senere.', - 'token_billing_1' => 'Slukket', - 'token_billing_2' => 'Tilvalg - checkboks er vist men ikke valgt', - 'token_billing_3' => 'Fravalg - checkboks er vist og valgt', - 'token_billing_4' => 'Altid', - 'token_billing_checkbox' => 'Opbevar kreditkort oplysninger', - 'view_in_stripe' => 'Vis i Stripe ', - 'use_card_on_file' => 'Brug allerede gemt kort', - 'edit_payment_details' => 'Redigér betalings detaljer', - 'token_billing' => 'Gem kort detaljer', - 'token_billing_secure' => 'Kort data er opbevaret sikkert hos :stripe_link', - - 'support' => 'Kundeservice', - 'contact_information' => 'Kontakt information', - '256_encryption' => '256-Bit Kryptering', - 'amount_due' => 'Beløb forfaldent', - 'billing_address' => 'Faktura adresse', - 'billing_method' => 'Faktura metode', - 'order_overview' => 'Ordre oversigt', - 'match_address' => '*Adressen skal matche det tilknyttede kredit kort.', - 'click_once' => '**Klik kun på "Betal Nu" én gang - transaktionen kan tage helt op til 1 minut inden den er færdig.', - - 'default_invoice_footer' => 'Sæt standard faktura fodnoter', - 'invoice_footer' => 'Faktura fodnoter', - 'save_as_default_footer' => 'Gem som standard fodnoter', - - 'token_management' => 'Token Administration', - 'tokens' => 'Token\'s', - 'add_token' => 'Tilføj token', - 'show_deleted_tokens' => 'Vis slettede token\'s', - 'deleted_token' => 'Token slettet', - 'created_token' => 'Token oprettet', - 'updated_token' => 'Token opdateret', - 'edit_token' => 'Redigér token', - 'delete_token' => 'Slet token', - 'token' => 'Token', - - 'add_gateway' => 'Tilføj betalings portal', - 'delete_gateway' => 'Slet betalings portal', - 'edit_gateway' => 'Redigér betalings portal', - 'updated_gateway' => 'Betalings portal opdateret', - 'created_gateway' => 'Betalings portal oprettet', - 'deleted_gateway' => 'Betalings portal slettet', - 'pay_with_paypal' => 'PayPal', - 'pay_with_card' => 'Kredit kort', - - 'change_password' => 'Skift adgangskode', - 'current_password' => 'Nuværende adgangskode', - 'new_password' => 'Ny adgangskode', - 'confirm_password' => 'Bekræft adgangskode', - 'password_error_incorrect' => 'Den nuværende adgangskode er forkert.', - 'password_error_invalid' => 'Den nye adgangskode er ugyldig.', - 'updated_password' => 'Adgangskode opdateret', - - 'api_tokens' => 'API Token\'s', - 'users_and_tokens' => 'Brugere & Token\'s', - 'account_login' => 'Konto Log ind', - 'recover_password' => 'Generhverv din adgangskode', - 'forgot_password' => 'Glemt din adgangskode?', - 'email_address' => 'E-mail adresse', - 'lets_go' => 'Og så afsted', - 'password_recovery' => 'Adgangskode Generhvervelse', - 'send_email' => 'Send e-mail', - 'set_password' => 'Sæt adgangskode', - 'converted' => 'Konverteret', - - 'email_approved' => 'E-mail mig når et tilbud er accepteret', - 'notification_quote_approved_subject' => 'Tilbudet :invoice blev accepteret af :client', - 'notification_quote_approved' => 'Den følgende klient :client accepterede tilbud :invoice lydende på :amount.', - 'resend_confirmation' => 'Send bekræftelses e-mail igen', - 'confirmation_resent' => 'Bekræftelses e-mail er afsendt', - - 'gateway_help_42' => ':link til registrering hos BitPay.
Bemærk: brug en use a Legacy API nøgle, og ikke en API token.', - 'payment_type_credit_card' => 'Kredit kort', - 'payment_type_paypal' => 'PayPal', - 'payment_type_bitcoin' => 'Bitcoin', - 'knowledge_base' => 'Vidensbase', - 'partial' => 'Delvis', - 'partial_remaining' => ':partial af :balance', - - 'more_fields' => 'Flere felter', - 'less_fields' => 'Mindre felter', - 'client_name' => 'Klient navn', - 'pdf_settings' => 'PDF Indstillinger', - 'utf8_invoices' => 'Ny PDF driver Beta', - 'product_settings' => 'Produkt Indstillinger', - 'auto_wrap' => 'Automatisk linie ombrydning', - 'duplicate_post' => 'Advarsel: den foregående side blev sendt to gange. Den anden afsendelse er blevet ignoreret.', - 'view_documentation' => 'Vis dokumentation', - 'app_title' => 'Gratis Open-Source Online fakturering', - 'app_description' => 'Invoice Ninja er en gratis, open-source løsning til at håndtere fakturering og betaling af dine kunder. Med Invoice Ninja, kan du let generere og sende smukke fakturaer fra et hvilket som helst udstyr der har adgang til internettet. Dine klienter kan udskrive dine fakturarer, hente dem som PDF filer, og endda betale dem on-line inde fra Invoice Ninja.', - - 'rows' => 'rækker', - 'www' => 'www', - 'logo' => 'Logo', - 'subdomain' => 'Underdomain', - 'provide_name_or_email' => 'Opgiv et kontakt navn eller e-mail adresse', - 'charts_and_reports' => 'Diagrammer & Rapporter', - 'chart' => 'Diagram', - 'report' => 'Rapport', - 'group_by' => 'Gruppér efter', - 'paid' => 'Betalt', - 'enable_report' => 'Rapport', - 'enable_chart' => 'Diagram', - 'totals' => 'Totaler', - 'run' => 'Kør', - 'export' => 'Eksport', - 'documentation' => 'Dokumentation', - 'zapier' => 'Zapier', - 'recurring' => 'Gentagne', - 'last_invoice_sent' => 'Sidste faktura sendt :date', - - 'processed_updates' => 'Opdatering gennemført', - 'tasks' => 'Opogaver', - 'new_task' => 'Ny opgave', - 'start_time' => 'Start Tidspunkt', - 'created_task' => 'Opgave oprettet', - 'updated_task' => 'Opgave opdateret', - 'edit_task' => 'Redigér opgave', - 'archive_task' => 'Arkiver opgave', - 'restore_task' => 'Genskab opgave', - 'delete_task' => 'Slet opgave', - 'stop_task' => 'Stop opgave', - 'time' => 'Tid', - 'start' => 'Start', - 'stop' => 'Stop', - 'now' => 'Nu', - 'timer' => 'Tidtager', - 'manual' => 'Manuelt', - 'date_and_time' => 'Dato & Tid', - 'second' => 'sekund', - 'seconds' => 'sekunder', - 'minute' => 'minut', - 'minutes' => 'minutter', - 'hour' => 'time', - 'hours' => 'timer', - 'task_details' => 'Opgave detaljer', - 'duration' => 'Varighed', - 'end_time' => 'Slut tidspunkt', - 'end' => 'Slut', - 'invoiced' => 'Faktureret', - 'logged' => 'Ajourført', - 'running' => 'Kører', - 'task_error_multiple_clients' => 'Opgaverne kan ikke tilhøre forskellige klienter', - 'task_error_running' => 'Stop alle kørende opgaver først', - 'task_error_invoiced' => 'Opgaver er allerede faktureret', - 'restored_task' => 'Opgave genskabt', - 'archived_task' => 'Opgave arkiveret', - 'archived_tasks' => 'Antal arkiverede opgaver: :count', - 'deleted_task' => 'Opgave slettet', - 'deleted_tasks' => 'Antal opgaver slettet: :count', - 'create_task' => 'Opret opgave', - 'stopped_task' => 'Opgave stoppet', - 'invoice_task' => 'Fakturer opgave', - 'invoice_labels' => 'Faktura labels', - 'prefix' => 'Præfix', - 'counter' => 'Tæller', - - 'payment_type_dwolla' => 'Dwolla', - 'gateway_help_43' => ':link til at registrere dig hos Dwolla.', - 'partial_value' => 'Skal være større end nul og mindre end totalen', - 'more_actions' => 'Flere handlinger', - - 'pro_plan_title' => 'NINJA PRO', - 'pro_plan_call_to_action' => 'Opgradér Nu!', - 'pro_plan_feature1' => 'Opret ubegrænset antal klienter', - 'pro_plan_feature2' => 'Adgang til 10 smukke faktura designs', - 'pro_plan_feature3' => 'Tilpasset URL - "YourBrand.InvoiceNinja.com"', - 'pro_plan_feature4' => 'Fjern "Created by Invoice Ninja"', - 'pro_plan_feature5' => 'Multi bruger adgang og aktivitets log', - 'pro_plan_feature6' => 'Opret tilbud og proforma fakturaer', - 'pro_plan_feature7' => 'Brugerdefinerede faktura felt titler og nummerering', - 'pro_plan_feature8' => 'Mulighed for at vedhæfte PDF filer til klient e-mails', - - 'resume' => 'Genoptag', - 'break_duration' => 'Pause', - 'edit_details' => 'Rediger detaljer', - 'work' => 'Arbejde', - 'timezone_unset' => 'Indstil :link din tidszone', - 'click_here' => 'Klik her', - - 'email_receipt' => 'Send e-mail kvittering til klienten', - 'created_payment_emailed_client' => 'Betaling modtaget og e-mail kvittering sendt til klienten', - 'add_account' => 'Tilføj konto', - 'untitled' => 'Ingen titel', - 'new_account' => 'Ny konto', - 'associated_accounts' => 'Konti sammenkædet', - 'unlinked_account' => 'Sammenkædning af konti ophævet', - 'login' => 'Log ind', - 'or' => 'eller', - - 'email_error' => 'Der opstod et problem ved afsendelse af e-mailen', - 'created_by_recurring' => 'Oprettet af gentaget faktura nr.: :invoice', - 'confirm_recurring_timing' => 'Bemærk: e-mail bliver sendt i starten af timen.', - 'old_browser' => 'Din browser er registreret som værende af ældre dato og den vil ikke kunne bruges, skift til en nyere version browser', - 'payment_terms_help' => 'Sætter standard fakturaens forfalds dato', - 'unlink_account' => 'Fjern sammenkædning af konti', - 'unlink' => 'Fjern sammenkædning', - 'show_address' => 'Vis adresse', - 'show_address_help' => 'Kræv at klienten angiver deres fakturerings adresse', - 'update_address' => 'Opdater adresse', - 'update_address_help' => 'Opdater klientens adresse med de opgivne detaljer', - 'times' => 'Gange', - 'set_now' => 'Sæt nu', - 'dark_mode' => 'Mørk tilstand', - 'dark_mode_help' => 'Vis hvid tekst på sort baggrund', - 'add_to_invoice' => 'Tilføj til faktura nr.: :invoice', - 'create_new_invoice' => 'Opret ny faktura', - 'task_errors' => 'Ret venligst de overlappende tider', - 'from' => 'Fra', - 'to' => 'Til', - 'font_size' => 'Font Størrelse', - 'primary_color' => 'Primær Farve', - 'secondary_color' => 'Sekundær Farve', - 'customize_design' => 'Tilpas Design', - - 'content' => 'Indhold', - 'styles' => 'Stilarter', - 'defaults' => 'Standarder', - 'margins' => 'Marginer', - 'header' => 'Hoved', - 'footer' => 'Fodnote', - 'custom' => 'Brugertilpasset', - 'invoice_to' => 'Fakturer til', - 'invoice_no' => 'Faktura Nr.', - 'recent_payments' => 'Nylige betalinger', - 'outstanding' => 'Forfaldne', - 'manage_companies' => 'Manage Companies', - 'total_revenue' => 'Total Revenue', + return array( - 'current_user' => 'Nuværende bruger', - 'new_recurring_invoice' => 'Ny gentaget fakture', - 'recurring_invoice' => 'Gentaget faktura', - 'recurring_too_soon' => 'Det er for tidligt at generere den næste faktura', - 'created_by_invoice' => 'Oprettet fra :invoice', - 'primary_user' => 'Primær bruger', - 'help' => 'Hjælp', - 'customize_help' => '

Vi bruger pdfmake til at definere faktura design felter. pdfmake legeplads giver en god mulighed for at se biblioteket i aktion.

-

Du kan tilgå alle faktura felter ved at tilføje Value til slutningen. For eksempel viser $invoiceNumberValue fakturanummeret.

-

For at tilgå under indstillingerne ved hjælp af dot notation. For eksempel kan man for at vise klient navnet bruge $client.nameValue.

-

Hvis du mangler svar på nogen spørgsmål så post et spørgsmål i vores support forum.

', - - 'invoice_due_date' => 'Due Date', - 'quote_due_date' => 'Valid Until', - 'valid_until' => 'Valid Until', - 'reset_terms' => 'Reset terms', - 'reset_footer' => 'Reset footer', - 'invoices_sent' => ':count invoice sent|:count invoices sent', - 'status_draft' => 'Draft', - 'status_sent' => 'Sent', - 'status_viewed' => 'Viewed', - 'status_partial' => 'Partial', - 'status_paid' => 'Paid', - 'show_line_item_tax' => 'Display line item taxes inline', + // client + 'organization' => 'Organisation', + 'name' => 'Navn', + 'website' => 'Webside', + 'work_phone' => 'Telefon', + 'address' => 'Adresse', + 'address1' => 'Gade', + 'address2' => 'Nummer', + 'city' => 'By', + 'state' => 'Område', + 'postal_code' => 'Postnummer', + 'country_id' => 'Land', + 'contacts' => 'Kontakter', + 'first_name' => 'Fornavn', + 'last_name' => 'Efternavn', + 'phone' => 'Telefon', + 'email' => 'E-mail', + 'additional_info' => 'Ekstra information', + 'payment_terms' => 'Betalingsvilkår', + 'currency_id' => 'Valuta', + 'size_id' => 'Størrelse', + 'industry_id' => 'Sektor', + 'private_notes' => 'Private notater', - 'iframe_url' => 'Website', - 'iframe_url_help1' => 'Copy the following code to a page on your site.', - 'iframe_url_help2' => 'You can test the feature by clicking \'View as recipient\' for an invoice.', + // invoice + 'invoice' => 'Faktura', + 'client' => 'Klient', + 'invoice_date' => 'Faktureringsdato', + 'due_date' => 'Betalingsfrist', + 'invoice_number' => 'Fakturanummer', + 'invoice_number_short' => 'Faktura nr.: #', + 'po_number' => 'Ordrenummer', + 'po_number_short' => 'Ordre nr.: #', + 'frequency_id' => 'Frekvens', + 'discount' => 'Rabat', + 'taxes' => 'Skatter', + 'tax' => 'Skat', + 'item' => 'Produkttype', + 'description' => 'Beskrivelse', + 'unit_cost' => 'Pris', + 'quantity' => 'Stk.', + 'line_total' => 'Sum', + 'subtotal' => 'Subtotal', + 'paid_to_date' => 'Betalt', + 'balance_due' => 'Udestående beløb', + 'invoice_design_id' => 'Design', + 'terms' => 'Vilkår', + 'your_invoice' => 'Din faktura', - 'auto_bill' => 'Auto Bill', - 'military_time' => '24 Hour Time', - 'last_sent' => 'Last Sent', + 'remove_contact' => 'Fjern kontakt', + 'add_contact' => 'Tilføj kontakt', + 'create_new_client' => 'Opret ny klient', + 'edit_client_details' => 'Redigér klient detaljer', + 'enable' => 'Aktiver', + 'learn_more' => 'Lær mere', + 'manage_rates' => 'Administrer priser', + 'note_to_client' => 'Bemærkninger til klient', + 'invoice_terms' => 'Vilkår for fakturaen', + 'save_as_default_terms' => 'Gem som standard vilkår', + 'download_pdf' => 'Hent PDF', + 'pay_now' => 'Betal nu', + 'save_invoice' => 'Gem faktura', + 'clone_invoice' => 'Kopier faktura', + 'archive_invoice' => 'Arkiver faktura', + 'delete_invoice' => 'Slet faktura', + 'email_invoice' => 'Send faktura som e-mail', + 'enter_payment' => 'Tilføj betaling', + 'tax_rates' => 'Skattesatser', + 'rate' => 'Sats', + 'settings' => 'Indstillinger', + 'enable_invoice_tax' => 'Aktiver for at specificere en faktura skat', + 'enable_line_item_tax' => 'Aktiver for at specificere per linjefaktura skat', - 'reminder_emails' => 'Reminder Emails', - 'templates_and_reminders' => 'Templates & Reminders', - 'subject' => 'Subject', - 'body' => 'Body', - 'first_reminder' => 'First Reminder', - 'second_reminder' => 'Second Reminder', - 'third_reminder' => 'Third Reminder', - 'num_days_reminder' => 'Days after due date', - 'reminder_subject' => 'Reminder: Invoice :invoice from :account', - 'reset' => 'Reset', - 'invoice_not_found' => 'The requested invoice is not available', + // navigation + 'dashboard' => 'Oversigt', + 'clients' => 'Klienter', + 'invoices' => 'Fakturaer', + 'payments' => 'Betalinger', + 'credits' => 'Kreditter', + 'history' => 'Historie', + 'search' => 'Søg', + 'sign_up' => 'Registrer dig', + 'guest' => 'Gæst', + 'company_details' => 'Firmainformation', + 'online_payments' => 'On-line betaling', + 'notifications' => 'Notifikationer', + 'import_export' => 'Import/Eksport', + 'done' => 'Færdig', + 'save' => 'Gem', + 'create' => 'Opret', + 'upload' => 'Send', + 'import' => 'Importer', + 'download' => 'Hent', + 'cancel' => 'Afbryd', + 'close' => 'Luk', + 'provide_email' => 'Opgiv venligst en gyldig e-mail', + 'powered_by' => 'Drevet af', + 'no_items' => 'Ingen elementer', - 'referral_program' => 'Referral Program', - 'referral_code' => 'Referral Code', - 'last_sent_on' => 'Last sent on :date', + // recurring invoices + 'recurring_invoices' => 'Gentagende fakturaer', + 'recurring_help' => '

Send automatisk klienter de samme fakturaer ugentligt, bi-månedligt, månedligt, kvartalsvis eller årligt.

+

Brug :MONTH, :QUARTER eller :YEAR for dynamiske datoer. Grundliggende matematik fungerer også, for eksempel :MONTH-1.

+

Eksempler på dynamiske faktura variabler:

+ ', - 'page_expire' => 'This page will expire soon, :click_here to keep working', - 'upcoming_quotes' => 'Upcoming Quotes', - 'expired_quotes' => 'Expired Quotes', + // dashboard + 'in_total_revenue' => 'totale indtægter', + 'billed_client' => 'faktureret klient', + 'billed_clients' => 'fakturerede klienter', + 'active_client' => 'aktiv klient', + 'active_clients' => 'aktive klienter', + 'invoices_past_due' => 'Forfaldne fakturaer', + 'upcoming_invoices' => 'Kommende fakturaer', + 'average_invoice' => 'Gennemsnitlig fakturaer', - 'sign_up_using' => 'Sign up using', - 'invalid_credentials' => 'These credentials do not match our records', - 'show_all_options' => 'Show all options', - 'user_details' => 'User Details', - 'oneclick_login' => 'One-Click Login', - 'disable' => 'Disable', - 'invoice_quote_number' => 'Invoice and Quote Numbers', - 'invoice_charges' => 'Invoice Charges', + // list pages + 'archive' => 'Arkiv', + 'delete' => 'Slet', + 'archive_client' => 'Arkiver klient', + 'delete_client' => 'Slet klient', + 'archive_payment' => 'Arkiver betaling', + 'delete_payment' => 'Slet betaling', + 'archive_credit' => 'Arkiver kredit', + 'delete_credit' => 'Slet kredit', + 'show_archived_deleted' => 'Vis arkiverede/slettede', + 'filter' => 'Filter', + 'new_client' => 'Ny klient', + 'new_invoice' => 'Ny faktura', + 'new_payment' => 'Ny betaling', + 'new_credit' => 'Ny kredit', + 'contact' => 'Kontakt', + 'date_created' => 'Dato oprettet', + 'last_login' => 'Sidste log ind', + 'balance' => 'Balance', + 'action' => 'Handling', + 'status' => 'Status', + 'invoice_total' => 'Faktura total', + 'frequency' => 'Frekvens', + 'start_date' => 'Start dato', + 'end_date' => 'Slut dato', + 'transaction_reference' => 'Transaktionsreference', + 'method' => 'Betalingsmåde', + 'payment_amount' => 'Beløb', + 'payment_date' => 'Betalings dato', + 'credit_amount' => 'Kreditbeløb', + 'credit_balance' => 'Kreditsaldo', + 'credit_date' => 'Kredit dato', + 'empty_table' => 'Ingen data er tilgængelige i tabellen', + 'select' => 'Vælg', + 'edit_client' => 'Rediger klient', + 'edit_invoice' => 'Rediger faktura', - 'invitation_status' => [ - 'sent' => 'Email Sent', - 'opened' => 'Email Openend', - 'viewed' => 'Invoice Viewed', - ], - 'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact.', - 'notification_invoice_bounced_subject' => 'Unable to deliver Invoice :invoice', - 'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact.', - 'notification_quote_bounced_subject' => 'Unable to deliver Quote :invoice', + // client view page + 'create_invoice' => 'Opret faktura', + 'enter_credit' => 'Tilføj kredit', + 'last_logged_in' => 'Sidste log ind', + 'details' => 'Detaljer', + 'standing' => 'Stående', + 'credit' => 'Kredit', + 'activity' => 'Aktivitet', + 'date' => 'Dato', + 'message' => 'Besked', + 'adjustment' => 'Justering', + 'are_you_sure' => 'Er du sikker?', - 'custom_invoice_link' => 'Custom Invoice Link', - 'total_invoiced' => 'Total Invoiced', - 'open_balance' => 'Open Balance', + // payment pages + 'payment_type_id' => 'Betalingsmetode', + 'amount' => 'Beløb', + // account/company pages + 'work_email' => 'E-mail', + 'language_id' => 'Sprog', + 'timezone_id' => 'Tidszone', + 'date_format_id' => 'Dato format', + 'datetime_format_id' => 'Dato/Tidsformat', + 'users' => 'Brugere', + 'localization' => 'Lokalisering', + 'remove_logo' => 'Fjern logo', + 'logo_help' => 'Understøttede filtyper: JPEG, GIF og PNG', + 'payment_gateway' => 'Betalingsløsning', + 'gateway_id' => 'Kort betalings udbyder', + 'email_notifications' => 'Notifikation via e-mail', + 'email_sent' => 'Notifikation når en faktura er sendt', + 'email_viewed' => 'Notifikation når en faktura er set', + 'email_paid' => 'Notifikation når en faktura er betalt', + 'site_updates' => 'Webside opdateringer', + 'custom_messages' => 'Tilpassede meldinger', + 'default_invoice_terms' => 'Sæt standard fakturavilkår', + 'default_email_footer' => 'Sæt standard e-mailsignatur', + 'import_clients' => 'Importer klientdata', + 'csv_file' => 'Vælg CSV-fil', + 'export_clients' => 'Eksporter klientdata', + 'select_file' => 'Venligst vælg en fil', + 'first_row_headers' => 'Brug første række som overskrifter', + 'column' => 'Kolonne', + 'sample' => 'Eksempel', + 'import_to' => 'Importer til', + 'client_will_create' => 'Klient vil blive oprettet', + 'clients_will_create' => 'Klienter vil blive oprettet', + 'email_settings' => 'E-mail Indstillinger', + 'pdf_email_attachment' => 'Vedhæft PDF til e-mails', - ); \ No newline at end of file + // application messages + 'created_client' => 'Klient oprettet succesfuldt', + 'created_clients' => 'Klienter oprettet succesfuldt', + 'updated_settings' => 'Indstillinger opdateret', + 'removed_logo' => 'Logo fjernet', + 'sent_message' => 'Besked sendt', + 'invoice_error' => 'Vælg venligst en klient og ret eventuelle fejl', + 'limit_clients' => 'Desværre, dette vil overstige grænsen på :count klienter', + 'payment_error' => 'Det opstod en fejl under din betaling. Venligst prøv igen senere.', + 'registration_required' => 'Venligst registrer dig for at sende e-mail faktura', + 'confirmation_required' => 'Venligst bekræft din e-mail adresse', + + 'updated_client' => 'Klient opdateret', + 'created_client' => 'Klient oprettet', + 'archived_client' => 'Klient arkiveret', + 'archived_clients' => 'Arkiverede :count klienter', + 'deleted_client' => 'Klient slettet', + 'deleted_clients' => 'Slettede :count klienter', + + 'updated_invoice' => 'Faktura opdateret', + 'created_invoice' => 'Faktura oprettet', + 'cloned_invoice' => 'Faktura kopieret', + 'emailed_invoice' => 'E-mail faktura sendt', + 'and_created_client' => 'og klient oprettet', + 'archived_invoice' => 'Faktura arkiveret', + 'archived_invoices' => 'Arkiverede :count fakturaer', + 'deleted_invoice' => 'Faktura slettet', + 'deleted_invoices' => 'Slettede :count fakturaer', + + 'created_payment' => 'Betaling oprettet', + 'archived_payment' => 'Betaling arkiveret', + 'archived_payments' => 'Arkiverede :count betalinger', + 'deleted_payment' => 'Betaling slettet', + 'deleted_payments' => 'Slettede :count betalinger', + 'applied_payment' => 'Betaling ajourført', + + 'created_credit' => 'Kredit oprettet', + 'archived_credit' => 'Kredit arkiveret', + 'archived_credits' => 'Arkiverede :count kreditter', + 'deleted_credit' => 'Kredit slettet', + 'deleted_credits' => 'Slettede :count kreditter', + + // Emails + 'confirmation_subject' => 'Invoice Ninja konto bekræftelse', + 'confirmation_header' => 'Konto bekræftelse', + 'confirmation_message' => 'Venligst klik på linket nedenfor for at bekræfte din konto.', + 'invoice_subject' => 'Ny faktura :invoice fra :account', + 'invoice_message' => 'For at se din faktura på :amount, klik på linket nedenfor.', + 'payment_subject' => 'Betaling modtaget', + 'payment_message' => 'Tak for din betaling pålydende :amount.', + 'email_salutation' => 'Kære :name,', + 'email_signature' => 'Med venlig hilsen,', + 'email_from' => 'Invoice Ninja Teamet', + 'user_email_footer' => 'For at justere varslings indstillingene besøg venligst'.SITE_URL.'/settings/notifications', + 'invoice_link_message' => 'Hvis du vil se din klient faktura klik på linket under:', + 'notification_invoice_paid_subject' => 'Faktura :invoice betalt af :client', + 'notification_invoice_sent_subject' => 'Faktura :invoice sendt til :client', + 'notification_invoice_viewed_subject' => 'Faktura :invoice set af :client', + 'notification_invoice_paid' => 'En betaling pålydende :amount blev betalt af :client for faktura :invoice.', + 'notification_invoice_sent' => 'En e-mail er blevet sendt til :client med faktura :invoice pålydende :amount.', + 'notification_invoice_viewed' => ':client har set faktura :invoice pålydende :amount.', + 'reset_password' => 'Du kan nulstille din adgangskode ved at besøge følgende link:', + 'reset_password_footer' => 'Hvis du ikke bad om at få nulstillet din adgangskode kontakt venligst kundeservice: '.CONTACT_EMAIL, + + // Payment page + 'secure_payment' => 'Sikker betaling', + 'card_number' => 'Kortnummer', + 'expiration_month' => 'Udløbsdato', + 'expiration_year' => 'Udløbsår', + 'cvv' => 'Kontrolcifre', + + // Security alerts + 'security' => [ + 'too_many_attempts' => 'For mange forsøg. Prøv igen om nogen få minutter.', + 'wrong_credentials' => 'Forkert e-mail eller adgangskode.', + 'confirmation' => 'Din konto har blevet bekræftet!', + 'wrong_confirmation' => 'Forkert bekræftelseskode.', + 'password_forgot' => 'Informationen om nulstilling af din adgangskode er blevet sendt til din e-mail.', + 'password_reset' => 'Adgangskode ændret', + 'wrong_password_reset' => 'Ugyldig adgangskode. Prøv på ny', + ], + + // Pro Plan + 'pro_plan' => [ + 'remove_logo' => ':link for at fjerne Invoice Ninja-logoet, opgrader til en Pro Plan', + 'remove_logo_link' => 'Klik her', + ], + + 'logout' => 'Log ud', + 'sign_up_to_save' => 'Registrer dig for at gemme dit arbejde', + 'agree_to_terms' => 'Jeg accepterer Invoice Ninja :terms', + 'terms_of_service' => 'Vilkår for brug', + 'email_taken' => 'E-mailadressen er allerede registreret', + 'working' => 'Arbejder', + 'success' => 'Succes', + 'success_message' => 'Du er blevet registreret. Klik på linket som du har modtaget i e-mail bekræftelsen for at bekræfte din e-mail adresse.', + 'erase_data' => 'Dette vil permanent slette dine oplysninger.', + 'password' => 'Adgangskode', + + 'pro_plan_product' => 'Pro Plan', + 'pro_plan_description' => 'Et års indmelding i Invoice Ninja Pro Plan.', + 'pro_plan_success' => 'Tak fordi du valgte Invoice Ninja\'s Pro plan!

 
+ De næste skridt

En betalbar faktura er sendt til den e-email adresse + som er tilknyttet din konto. For at låse op for alle de utrolige + Pro-funktioner, skal du følge instruktionerne på fakturaen til at + betale for et år med Pro-niveau funktionerer.

+ Kan du ikke finde fakturaen? Har behov for mere hjælp? Vi hjælper dig gerne hvis der skulle være noget galt + -- kontakt os på contact@invoiceninja.com', + + 'unsaved_changes' => 'Du har ikke gemte ændringer', + 'custom_fields' => 'Egendefineret felt', + 'company_fields' => 'Selskabets felt', + 'client_fields' => 'Klientens felt', + 'field_label' => 'Felt etikette', + 'field_value' => 'Feltets værdi', + 'edit' => 'Rediger', + 'set_name' => 'Sæt dit firmanavn', + 'view_as_recipient' => 'Vis som modtager', + + // product management + 'product_library' => 'Produkt bibliotek', + 'product' => 'Produkt', + 'products' => 'Produkter', + 'fill_products' => 'Automatisk-udfyld produkter', + 'fill_products_help' => 'Valg af produkt vil automatisk udfylde beskrivelse og pris', + 'update_products' => 'Automatisk opdatering af produkter', + 'update_products_help' => 'En opdatering af en faktura vil automatisk opdaterer Produkt biblioteket', + 'create_product' => 'Opret nyt produkt', + 'edit_product' => 'Rediger produkt', + 'archive_product' => 'Arkiver produkt', + 'updated_product' => 'Produkt opdateret', + 'created_product' => 'Produkt oprettet', + 'archived_product' => 'Produkt arkiveret', + 'pro_plan_custom_fields' => ':link for at aktivere egendefinerede felter skal du have en Pro Plan', + + 'advanced_settings' => 'Aavancerede indstillinger', + 'pro_plan_advanced_settings' => ':link for at aktivere avancerede indstillinger skal du være have en Pro Plan', + 'invoice_design' => 'Fakturadesign', + 'specify_colors' => 'Egendefineret farve', + 'specify_colors_label' => 'Vælg de farver som skal bruges i fakturaen', + + 'chart_builder' => 'Diagram bygger', + 'ninja_email_footer' => 'Brug :sitet til at fakturere dine kunder og bliv betalt på nettet - gratis!', + 'go_pro' => 'Vælg Pro', + + // Quotes + 'quote' => 'Pristilbud', + 'quotes' => 'Pristilbud', + 'quote_number' => 'Tilbuds nummer', + 'quote_number_short' => 'Tilbuds #', + 'quote_date' => 'Tilbuds dato', + 'quote_total' => 'Tilbud total', + 'your_quote' => 'Dit tilbud', + 'total' => 'Total', + 'clone' => 'Kopier', + + 'new_quote' => 'Nyt tilbud', + 'create_quote' => 'Opret tilbud', + 'edit_quote' => 'Rediger tilbud', + 'archive_quote' => 'Arkiver tilbud', + 'delete_quote' => 'Slet tilbud', + 'save_quote' => 'Gem tilbud', + 'email_quote' => 'E-mail tilbudet', + 'clone_quote' => 'Kopier tilbud', + 'convert_to_invoice' => 'Konverter til en faktura', + 'view_invoice' => 'Se faktura', + 'view_client' => 'Vis klient', + 'view_quote' => 'Se tilbud', + + 'updated_quote' => 'Tilbud opdateret', + 'created_quote' => 'Tilbud oprettet', + 'cloned_quote' => 'Tilbud kopieret', + 'emailed_quote' => 'Tilbud sendt som e-mail', + 'archived_quote' => 'Tilbud arkiveret', + 'archived_quotes' => 'Arkiverede :count tilbud', + 'deleted_quote' => 'Tilbud slettet', + 'deleted_quotes' => 'Slettede :count tilbud', + 'converted_to_invoice' => 'Tilbud konverteret til faktura', + + 'quote_subject' => 'Nyt tilbud fra :account', + 'quote_message' => 'For at se dit tilbud pålydende :amount, klik på linket nedenfor.', + 'quote_link_message' => 'Hvis du vil se din klients tilbud, klik på linket under:', + 'notification_quote_sent_subject' => 'Tilbud :invoice sendt til :client', + 'notification_quote_viewed_subject' => 'Tilbudet :invoice er set af :client', + 'notification_quote_sent' => 'Følgende klient :client blev sendt tilbudsfaktura :invoice pålydende :amount.', + 'notification_quote_viewed' => 'Følgende klient :client har set tilbudsfakturaen :invoice pålydende :amount.', + + 'session_expired' => 'Session er udløbet.', + + 'invoice_fields' => 'Faktura felt', + 'invoice_options' => 'Faktura indstillinger', + 'hide_quantity' => 'Skjul antal', + 'hide_quantity_help' => 'Hvis du altid kun har 1 som antal på dine fakturalinjer på fakturaen, kan du vælge ikke at vise antal på fakturaen.', + 'hide_paid_to_date' => 'Skjul delbetalinger', + 'hide_paid_to_date_help' => 'Vis kun delbetalinger hvis der er forekommet en delbetaling.', + + 'charge_taxes' => 'Inkluder skat', + 'user_management' => 'Brugerhåndtering', + 'add_user' => 'Tilføj bruger', + 'send_invite' => 'Send invitation', + 'sent_invite' => 'Invitation sendt', + 'updated_user' => 'Bruger opdateret', + 'invitation_message' => 'Du er blevet inviteret af :invitor. ', + 'register_to_add_user' => 'Du skal registrer dig for at oprette en bruger', + 'user_state' => 'Status', + 'edit_user' => 'Rediger bruger', + 'delete_user' => 'Slet bruger', + 'active' => 'Aktiv', + 'pending' => 'Afventer', + 'deleted_user' => 'Bruger slettet', + 'limit_users' => 'Desværre, dette vil overstige grænsen på '.MAX_NUM_USERS.' brugere', + + 'confirm_email_invoice' => 'Er du sikker på at du vil sende en e-mail med denne faktura?', + 'confirm_email_quote' => 'Er du sikker på du ville sende en e-mail med dette tilbud?', + 'confirm_recurring_email_invoice' => 'Gentagende er slået til, er du sikker på du sende en e-mail med denne faktura?', + + 'cancel_account' => 'Annuller konto', + 'cancel_account_message' => 'Advarsel: Dette ville slette alle dine data og kan ikke fortrydes', + 'go_back' => 'Gå tilbage', + + 'data_visualizations' => 'Data visualisering', + 'sample_data' => 'Eksempel data vist', + 'hide' => 'Skjul', + 'new_version_available' => 'En ny version af :releases_link er tilgængelig. Din nuværende version er v:user_version, den nyeste version er v:latest_version', + + 'invoice_settings' => 'Faktura indstillinger', + 'invoice_number_prefix' => 'Faktura nummer præfiks', + 'invoice_number_counter' => 'Faktura nummer tæller', + 'quote_number_prefix' => 'Tilbuds nummer præfiks', + 'quote_number_counter' => 'Tilbuds nummer tæller', + 'share_invoice_counter' => 'Del faktura nummer tæller', + 'invoice_issued_to' => 'Faktura udstedt til', + 'invalid_counter' => 'For at undgå mulige overlap, sæt et faktura eller tilbuds nummer præfiks', + 'mark_sent' => 'Markér som sendt', + + 'gateway_help_1' => ':link til at registrere dig hos Authorize.net.', + 'gateway_help_2' => ':link til at registrere dig hos Authorize.net.', + 'gateway_help_17' => ':link til at hente din PayPal API signatur.', + 'gateway_help_23' => 'Note: brug din hemmelige API nøgle, IKKE din publicerede API nøgle.', + 'gateway_help_27' => ':link til at registrere dig hos TwoCheckout.', + + 'more_designs' => 'Flere designs', + 'more_designs_title' => 'Yderligere faktura designs', + 'more_designs_cloud_header' => 'Skift til Pro for flere faktura designs', + 'more_designs_cloud_text' => '', + 'more_designs_self_host_header' => 'Få 6 flere faktura designs for kun $'.INVOICE_DESIGNS_PRICE, + 'more_designs_self_host_text' => '', + 'buy' => 'Køb', + 'bought_designs' => 'Yderligere faktura designs tilføjet', + 'sent' => 'sendt', + + 'vat_number' => 'SE/CVR nummer', + 'timesheets' => 'Timesedler', + + 'payment_title' => 'Indtast din faktura adresse og kreditkort information', + 'payment_cvv' => '*Dette er det 3-4 cifrede nummer på bagsiden af dit kort', + 'payment_footer1' => '*Faktura adressen skal matche den der er tilknyttet kortet.', + 'payment_footer2' => '*Klik kun på "Betal Nu" én gang - transaktionen kan tage helt op til 1 minut inden den er færdig.', + + 'id_number' => 'SE/CVR nummer', + 'white_label_link' => 'Hvid Label', + 'white_label_text' => 'Køb en Hvid Label licens til $'.WHITE_LABEL_PRICE.' for at fjerne Invoice Ninja mærket fra toppen af klient siderne.', + 'white_label_header' => 'Hvid Label', + 'bought_white_label' => 'Hvid Label licens accepteret', + 'white_labeled' => 'Hvid Label', + + 'restore' => 'Genskab', + 'restore_invoice' => 'Genskab faktura', + 'restore_quote' => 'Genskab tilbud', + 'restore_client' => 'Genskab Klient', + 'restore_credit' => 'Genskab Kredit', + 'restore_payment' => 'Genskab Betaling', + + 'restored_invoice' => 'Faktura genskabt', + 'restored_quote' => 'Tilbud genskabt', + 'restored_client' => 'Klient genskabt', + 'restored_payment' => 'Betaling genskabt', + 'restored_credit' => 'Kredit genskabt', + + 'reason_for_canceling' => 'Hjælp os med at blive bedre ved at fortælle os hvorfor du forlader os.', + 'discount_percent' => 'Procent', + 'discount_amount' => 'Beløb', + + 'invoice_history' => 'Faktura historik', + 'quote_history' => 'Tilbuds historik', + 'current_version' => 'Nuværende version', + 'select_versiony' => 'Vælg version', + 'view_history' => 'Vis historik', + + 'edit_payment' => 'Redigér betaling', + 'updated_payment' => 'Betaling opdateret', + 'deleted' => 'Slettet', + 'restore_user' => 'Genskab bruger', + 'restored_user' => 'Bruger genskabt', + 'show_deleted_users' => 'Vis slettede brugere', + 'email_templates' => 'E-mail skabeloner', + 'invoice_email' => 'Faktura e-mail', + 'payment_email' => 'Betalings e-mail', + 'quote_email' => 'Tilbuds e-mail', + 'reset_all' => 'Nulstil alle', + 'approve' => 'Godkend', + + 'token_billing_type_id' => 'Tokensk Fakturering', + 'token_billing_help' => 'Tillader dig at gemme kredit kort oplysninger, for at kunne fakturere dem senere.', + 'token_billing_1' => 'Slukket', + 'token_billing_2' => 'Tilvalg - checkboks er vist men ikke valgt', + 'token_billing_3' => 'Fravalg - checkboks er vist og valgt', + 'token_billing_4' => 'Altid', + 'token_billing_checkbox' => 'Opbevar kreditkort oplysninger', + 'view_in_stripe' => 'Vis i Stripe ', + 'use_card_on_file' => 'Brug allerede gemt kort', + 'edit_payment_details' => 'Redigér betalings detaljer', + 'token_billing' => 'Gem kort detaljer', + 'token_billing_secure' => 'Kort data er opbevaret sikkert hos :stripe_link', + + 'support' => 'Kundeservice', + 'contact_information' => 'Kontakt information', + '256_encryption' => '256-Bit Kryptering', + 'amount_due' => 'Beløb forfaldent', + 'billing_address' => 'Faktura adresse', + 'billing_method' => 'Faktura metode', + 'order_overview' => 'Ordre oversigt', + 'match_address' => '*Adressen skal matche det tilknyttede kredit kort.', + 'click_once' => '**Klik kun på "Betal Nu" én gang - transaktionen kan tage helt op til 1 minut inden den er færdig.', + + 'default_invoice_footer' => 'Sæt standard faktura fodnoter', + 'invoice_footer' => 'Faktura fodnoter', + 'save_as_default_footer' => 'Gem som standard fodnoter', + + 'token_management' => 'Token Administration', + 'tokens' => 'Token\'s', + 'add_token' => 'Tilføj token', + 'show_deleted_tokens' => 'Vis slettede token\'s', + 'deleted_token' => 'Token slettet', + 'created_token' => 'Token oprettet', + 'updated_token' => 'Token opdateret', + 'edit_token' => 'Redigér token', + 'delete_token' => 'Slet token', + 'token' => 'Token', + + 'add_gateway' => 'Tilføj betalings portal', + 'delete_gateway' => 'Slet betalings portal', + 'edit_gateway' => 'Redigér betalings portal', + 'updated_gateway' => 'Betalings portal opdateret', + 'created_gateway' => 'Betalings portal oprettet', + 'deleted_gateway' => 'Betalings portal slettet', + 'pay_with_paypal' => 'PayPal', + 'pay_with_card' => 'Kredit kort', + + 'change_password' => 'Skift adgangskode', + 'current_password' => 'Nuværende adgangskode', + 'new_password' => 'Ny adgangskode', + 'confirm_password' => 'Bekræft adgangskode', + 'password_error_incorrect' => 'Den nuværende adgangskode er forkert.', + 'password_error_invalid' => 'Den nye adgangskode er ugyldig.', + 'updated_password' => 'Adgangskode opdateret', + + 'api_tokens' => 'API Token\'s', + 'users_and_tokens' => 'Brugere & Token\'s', + 'account_login' => 'Konto Log ind', + 'recover_password' => 'Generhverv din adgangskode', + 'forgot_password' => 'Glemt din adgangskode?', + 'email_address' => 'E-mail adresse', + 'lets_go' => 'Og så afsted', + 'password_recovery' => 'Adgangskode Generhvervelse', + 'send_email' => 'Send e-mail', + 'set_password' => 'Sæt adgangskode', + 'converted' => 'Konverteret', + + 'email_approved' => 'E-mail mig når et tilbud er accepteret', + 'notification_quote_approved_subject' => 'Tilbudet :invoice blev accepteret af :client', + 'notification_quote_approved' => 'Den følgende klient :client accepterede tilbud :invoice lydende på :amount.', + 'resend_confirmation' => 'Send bekræftelses e-mail igen', + 'confirmation_resent' => 'Bekræftelses e-mail er afsendt', + + 'gateway_help_42' => ':link til registrering hos BitPay.
Bemærk: brug en use a Legacy API nøgle, og ikke en API token.', + 'payment_type_credit_card' => 'Kredit kort', + 'payment_type_paypal' => 'PayPal', + 'payment_type_bitcoin' => 'Bitcoin', + 'knowledge_base' => 'Vidensbase', + 'partial' => 'Delvis', + 'partial_remaining' => ':partial af :balance', + + 'more_fields' => 'Flere felter', + 'less_fields' => 'Mindre felter', + 'client_name' => 'Klient navn', + 'pdf_settings' => 'PDF Indstillinger', + 'utf8_invoices' => 'Ny PDF driver Beta', + 'product_settings' => 'Produkt Indstillinger', + 'auto_wrap' => 'Automatisk linie ombrydning', + 'duplicate_post' => 'Advarsel: den foregående side blev sendt to gange. Den anden afsendelse er blevet ignoreret.', + 'view_documentation' => 'Vis dokumentation', + 'app_title' => 'Gratis Open-Source Online fakturering', + 'app_description' => 'Invoice Ninja er en gratis, open-source løsning til at håndtere fakturering og betaling af dine kunder. Med Invoice Ninja, kan du let generere og sende smukke fakturaer fra et hvilket som helst udstyr der har adgang til internettet. Dine klienter kan udskrive dine fakturarer, hente dem som PDF filer, og endda betale dem on-line inde fra Invoice Ninja.', + + 'rows' => 'rækker', + 'www' => 'www', + 'logo' => 'Logo', + 'subdomain' => 'Underdomain', + 'provide_name_or_email' => 'Opgiv et kontakt navn eller e-mail adresse', + 'charts_and_reports' => 'Diagrammer & Rapporter', + 'chart' => 'Diagram', + 'report' => 'Rapport', + 'group_by' => 'Gruppér efter', + 'paid' => 'Betalt', + 'enable_report' => 'Rapport', + 'enable_chart' => 'Diagram', + 'totals' => 'Totaler', + 'run' => 'Kør', + 'export' => 'Eksport', + 'documentation' => 'Dokumentation', + 'zapier' => 'Zapier', + 'recurring' => 'Gentagne', + 'last_invoice_sent' => 'Sidste faktura sendt :date', + + 'processed_updates' => 'Opdatering gennemført', + 'tasks' => 'Opogaver', + 'new_task' => 'Ny opgave', + 'start_time' => 'Start Tidspunkt', + 'created_task' => 'Opgave oprettet', + 'updated_task' => 'Opgave opdateret', + 'edit_task' => 'Redigér opgave', + 'archive_task' => 'Arkiver opgave', + 'restore_task' => 'Genskab opgave', + 'delete_task' => 'Slet opgave', + 'stop_task' => 'Stop opgave', + 'time' => 'Tid', + 'start' => 'Start', + 'stop' => 'Stop', + 'now' => 'Nu', + 'timer' => 'Tidtager', + 'manual' => 'Manuelt', + 'date_and_time' => 'Dato & Tid', + 'second' => 'sekund', + 'seconds' => 'sekunder', + 'minute' => 'minut', + 'minutes' => 'minutter', + 'hour' => 'time', + 'hours' => 'timer', + 'task_details' => 'Opgave detaljer', + 'duration' => 'Varighed', + 'end_time' => 'Slut tidspunkt', + 'end' => 'Slut', + 'invoiced' => 'Faktureret', + 'logged' => 'Ajourført', + 'running' => 'Kører', + 'task_error_multiple_clients' => 'Opgaverne kan ikke tilhøre forskellige klienter', + 'task_error_running' => 'Stop alle kørende opgaver først', + 'task_error_invoiced' => 'Opgaver er allerede faktureret', + 'restored_task' => 'Opgave genskabt', + 'archived_task' => 'Opgave arkiveret', + 'archived_tasks' => 'Antal arkiverede opgaver: :count', + 'deleted_task' => 'Opgave slettet', + 'deleted_tasks' => 'Antal opgaver slettet: :count', + 'create_task' => 'Opret opgave', + 'stopped_task' => 'Opgave stoppet', + 'invoice_task' => 'Fakturer opgave', + 'invoice_labels' => 'Faktura labels', + 'prefix' => 'Præfix', + 'counter' => 'Tæller', + + 'payment_type_dwolla' => 'Dwolla', + 'gateway_help_43' => ':link til at registrere dig hos Dwolla.', + 'partial_value' => 'Skal være større end nul og mindre end totalen', + 'more_actions' => 'Flere handlinger', + + 'pro_plan_title' => 'NINJA PRO', + 'pro_plan_call_to_action' => 'Opgradér Nu!', + 'pro_plan_feature1' => 'Opret ubegrænset antal klienter', + 'pro_plan_feature2' => 'Adgang til 10 smukke faktura designs', + 'pro_plan_feature3' => 'Tilpasset URL - "YourBrand.InvoiceNinja.com"', + 'pro_plan_feature4' => 'Fjern "Created by Invoice Ninja"', + 'pro_plan_feature5' => 'Multi bruger adgang og aktivitets log', + 'pro_plan_feature6' => 'Opret tilbud og proforma fakturaer', + 'pro_plan_feature7' => 'Brugerdefinerede faktura felt titler og nummerering', + 'pro_plan_feature8' => 'Mulighed for at vedhæfte PDF filer til klient e-mails', + + 'resume' => 'Genoptag', + 'break_duration' => 'Pause', + 'edit_details' => 'Rediger detaljer', + 'work' => 'Arbejde', + 'timezone_unset' => 'Indstil :link din tidszone', + 'click_here' => 'Klik her', + + 'email_receipt' => 'Send e-mail kvittering til klienten', + 'created_payment_emailed_client' => 'Betaling modtaget og e-mail kvittering sendt til klienten', + 'add_account' => 'Tilføj konto', + 'untitled' => 'Ingen titel', + 'new_account' => 'Ny konto', + 'associated_accounts' => 'Konti sammenkædet', + 'unlinked_account' => 'Sammenkædning af konti ophævet', + 'login' => 'Log ind', + 'or' => 'eller', + + 'email_error' => 'Der opstod et problem ved afsendelse af e-mailen', + 'created_by_recurring' => 'Oprettet af gentaget faktura nr.: :invoice', + 'confirm_recurring_timing' => 'Bemærk: e-mail bliver sendt i starten af timen.', + 'old_browser' => 'Din browser er registreret som værende af ældre dato og den vil ikke kunne bruges, skift til en nyere version browser', + 'payment_terms_help' => 'Sætter standard fakturaens forfalds dato', + 'unlink_account' => 'Fjern sammenkædning af konti', + 'unlink' => 'Fjern sammenkædning', + 'show_address' => 'Vis adresse', + 'show_address_help' => 'Kræv at klienten angiver deres fakturerings adresse', + 'update_address' => 'Opdater adresse', + 'update_address_help' => 'Opdater klientens adresse med de opgivne detaljer', + 'times' => 'Gange', + 'set_now' => 'Sæt nu', + 'dark_mode' => 'Mørk tilstand', + 'dark_mode_help' => 'Vis hvid tekst på sort baggrund', + 'add_to_invoice' => 'Tilføj til faktura nr.: :invoice', + 'create_new_invoice' => 'Opret ny faktura', + 'task_errors' => 'Ret venligst de overlappende tider', + 'from' => 'Fra', + 'to' => 'Til', + 'font_size' => 'Font Størrelse', + 'primary_color' => 'Primær Farve', + 'secondary_color' => 'Sekundær Farve', + 'customize_design' => 'Tilpas Design', + + 'content' => 'Indhold', + 'styles' => 'Stilarter', + 'defaults' => 'Standarder', + 'margins' => 'Marginer', + 'header' => 'Hoved', + 'footer' => 'Fodnote', + 'custom' => 'Brugertilpasset', + 'invoice_to' => 'Fakturer til', + 'invoice_no' => 'Faktura Nr.', + 'recent_payments' => 'Nylige betalinger', + 'outstanding' => 'Forfaldne', + 'manage_companies' => 'Manage Companies', + 'total_revenue' => 'Total Revenue', + + 'current_user' => 'Nuværende bruger', + 'new_recurring_invoice' => 'Ny gentaget fakture', + 'recurring_invoice' => 'Gentaget faktura', + 'recurring_too_soon' => 'Det er for tidligt at generere den næste faktura', + 'created_by_invoice' => 'Oprettet fra :invoice', + 'primary_user' => 'Primær bruger', + 'help' => 'Hjælp', + 'customize_help' => '

Vi bruger pdfmake til at definere faktura design felter. pdfmake legeplads giver en god mulighed for at se biblioteket i aktion.

+

Du kan tilgå alle faktura felter ved at tilføje Value til slutningen. For eksempel viser $invoiceNumberValue fakturanummeret.

+

For at tilgå under indstillingerne ved hjælp af dot notation. For eksempel kan man for at vise klient navnet bruge $client.nameValue.

+

Hvis du mangler svar på nogen spørgsmål så post et spørgsmål i vores support forum.

', + + 'invoice_due_date' => 'Due Date', + 'quote_due_date' => 'Valid Until', + 'valid_until' => 'Valid Until', + 'reset_terms' => 'Reset terms', + 'reset_footer' => 'Reset footer', + 'invoices_sent' => ':count invoice sent|:count invoices sent', + 'status_draft' => 'Draft', + 'status_sent' => 'Sent', + 'status_viewed' => 'Viewed', + 'status_partial' => 'Partial', + 'status_paid' => 'Paid', + 'show_line_item_tax' => 'Display line item taxes inline', + + 'iframe_url' => 'Website', + 'iframe_url_help1' => 'Copy the following code to a page on your site.', + 'iframe_url_help2' => 'You can test the feature by clicking \'View as recipient\' for an invoice.', + + 'auto_bill' => 'Auto Bill', + 'military_time' => '24 Hour Time', + 'last_sent' => 'Last Sent', + + 'reminder_emails' => 'Reminder Emails', + 'templates_and_reminders' => 'Templates & Reminders', + 'subject' => 'Subject', + 'body' => 'Body', + 'first_reminder' => 'First Reminder', + 'second_reminder' => 'Second Reminder', + 'third_reminder' => 'Third Reminder', + 'num_days_reminder' => 'Days after due date', + 'reminder_subject' => 'Reminder: Invoice :invoice from :account', + 'reset' => 'Reset', + 'invoice_not_found' => 'The requested invoice is not available', + + 'referral_program' => 'Referral Program', + 'referral_code' => 'Referral Code', + 'last_sent_on' => 'Last sent on :date', + + 'page_expire' => 'This page will expire soon, :click_here to keep working', + 'upcoming_quotes' => 'Upcoming Quotes', + 'expired_quotes' => 'Expired Quotes', + + 'sign_up_using' => 'Sign up using', + 'invalid_credentials' => 'These credentials do not match our records', + 'show_all_options' => 'Show all options', + 'user_details' => 'User Details', + 'oneclick_login' => 'One-Click Login', + 'disable' => 'Disable', + 'invoice_quote_number' => 'Invoice and Quote Numbers', + 'invoice_charges' => 'Invoice Charges', + + 'invitation_status' => [ + 'sent' => 'Email Sent', + 'opened' => 'Email Openend', + 'viewed' => 'Invoice Viewed', + ], + 'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact.', + 'notification_invoice_bounced_subject' => 'Unable to deliver Invoice :invoice', + 'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact.', + 'notification_quote_bounced_subject' => 'Unable to deliver Quote :invoice', + + 'custom_invoice_link' => 'Custom Invoice Link', + 'total_invoiced' => 'Total Invoiced', + 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', + + ); diff --git a/resources/lang/de/texts.php b/resources/lang/de/texts.php index b570c290ddbc..aa681ade8a5b 100644 --- a/resources/lang/de/texts.php +++ b/resources/lang/de/texts.php @@ -262,7 +262,7 @@ return array( 'email_salutation' => 'Sehr geehrte/r :name,', 'email_signature' => 'Mit freundlichen Grüßen,', 'email_from' => 'Das InvoiceNinja Team', - 'user_email_footer' => 'Um deine E-Mail-Benachrichtigungen anzupassen besuche bitte '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'Um deine E-Mail-Benachrichtigungen anzupassen besuche bitte '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'Um deine Kundenrechnung anzuschauen, klicke auf den folgenden Link:', 'notification_invoice_paid_subject' => 'Die Rechnung :invoice wurde von :client bezahlt.', 'notification_invoice_sent_subject' => 'Die Rechnung :invoice wurde an :client versendet.', @@ -817,6 +817,10 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 8e6cc99cc112..9b1602c5b1f9 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -262,7 +262,7 @@ return array( 'email_salutation' => 'Dear :name,', 'email_signature' => 'Regards,', 'email_from' => 'The Invoice Ninja Team', - 'user_email_footer' => 'To adjust your email notification settings please visit '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'To adjust your email notification settings please visit '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'To view your client invoice click the link below:', 'notification_invoice_paid_subject' => 'Invoice :invoice was paid by :client', 'notification_invoice_sent_subject' => 'Invoice :invoice was sent to :client', @@ -557,7 +557,7 @@ return array( 'created_gateway' => 'Successfully created gateway', 'deleted_gateway' => 'Successfully deleted gateway', 'pay_with_paypal' => 'PayPal', - 'pay_with_card' => 'Credit card', + 'pay_with_card' => 'Credit Card', 'change_password' => 'Change password', 'current_password' => 'Current password', @@ -587,7 +587,7 @@ return array( 'confirmation_resent' => 'The confirmation email was resent', 'gateway_help_42' => ':link to sign up for BitPay.
Note: use a Legacy API Key, not an API token.', - 'payment_type_credit_card' => 'Credit card', + 'payment_type_credit_card' => 'Credit Card', 'payment_type_paypal' => 'PayPal', 'payment_type_bitcoin' => 'Bitcoin', 'knowledge_base' => 'Knowledge Base', @@ -818,6 +818,9 @@ return array( 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/lang/es/texts.php b/resources/lang/es/texts.php index bec202bb0722..2de83920259b 100644 --- a/resources/lang/es/texts.php +++ b/resources/lang/es/texts.php @@ -256,7 +256,7 @@ return array( 'email_salutation' => 'Estimado :name,', 'email_signature' => 'Un saludo cordial,', 'email_from' => 'El equipo de Invoice Ninja ', - 'user_email_footer' => 'Para ajustar la configuración de las notificaciones de tu correo, visita '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'Para ajustar la configuración de las notificaciones de tu correo, visita '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'Para visualizar la factura de cliente, haz clic en el enlace abajo:', 'notification_invoice_paid_subject' => 'La factura :invoice ha sido pagada por el cliente :client', 'notification_invoice_sent_subject' => 'La factura :invoice ha sido enviada a el cliente :client', @@ -795,6 +795,10 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/lang/es_ES/texts.php b/resources/lang/es_ES/texts.php index b8b9ea552357..7cc9bf4ba9c7 100644 --- a/resources/lang/es_ES/texts.php +++ b/resources/lang/es_ES/texts.php @@ -1,477 +1,476 @@ - 'Empresa', - 'name' => 'Nombre de Empresa', - 'website' => 'Sitio Web', - 'work_phone' => 'Teléfono', - 'address' => 'Dirección', - 'address1' => 'Calle', - 'address2' => 'Bloq/Pta', - 'city' => 'Ciudad', - 'state' => 'Provincia', - 'postal_code' => 'Código Postal', - 'country_id' => 'País', - 'contacts' => 'Contactos', - 'first_name' => 'Nombres', - 'last_name' => 'Apellidos', - 'phone' => 'Teléfono', - 'email' => 'Email', - 'additional_info' => 'Información adicional', - 'payment_terms' => 'Plazos de pago', // - 'currency_id' => 'Divisa', - 'size_id' => 'Tamaño', - 'industry_id' => 'Industria', - 'private_notes' => 'Notas Privadas', + // client + 'organization' => 'Empresa', + 'name' => 'Nombre de Empresa', + 'website' => 'Sitio Web', + 'work_phone' => 'Teléfono', + 'address' => 'Dirección', + 'address1' => 'Calle', + 'address2' => 'Bloq/Pta', + 'city' => 'Ciudad', + 'state' => 'Provincia', + 'postal_code' => 'Código Postal', + 'country_id' => 'País', + 'contacts' => 'Contactos', + 'first_name' => 'Nombres', + 'last_name' => 'Apellidos', + 'phone' => 'Teléfono', + 'email' => 'Email', + 'additional_info' => 'Información adicional', + 'payment_terms' => 'Plazos de pago', // + 'currency_id' => 'Divisa', + 'size_id' => 'Tamaño', + 'industry_id' => 'Industria', + 'private_notes' => 'Notas Privadas', - // invoice - 'invoice' => 'Factura', - 'client' => 'Cliente', - 'invoice_date' => 'Fecha de factura', - 'due_date' => 'Fecha de pago', - 'invoice_number' => 'Número de Factura', - 'invoice_number_short' => 'Factura Nº', - 'po_number' => 'Apartado de correo', - 'po_number_short' => 'Apdo.', - 'frequency_id' => 'Frecuencia', - 'discount' => 'Descuento', - 'taxes' => 'Impuestos', - 'tax' => 'IVA', - 'item' => 'Concepto', - 'description' => 'Descripción', - 'unit_cost' => 'Coste unitario', - 'quantity' => 'Cantidad', - 'line_total' => 'Total', - 'subtotal' => 'Subtotal', - 'paid_to_date' => 'Pagado', - 'balance_due' => 'Pendiente', - 'invoice_design_id' => 'Diseño', - 'terms' => 'Términos', - 'your_invoice' => 'Tu factura', - 'remove_contact' => 'Eliminar contacto', - 'add_contact' => 'Añadir contacto', - 'create_new_client' => 'Crear nuevo cliente', - 'edit_client_details' => 'Editar detalles del cliente', - 'enable' => 'Activar', - 'learn_more' => 'Saber más', - 'manage_rates' => 'Gestionar tarifas', - 'note_to_client' => 'Nota para el cliente', - 'invoice_terms' => 'Términos de facturación', - 'save_as_default_terms' => 'Guardar como términos por defecto', - 'download_pdf' => 'Descargar PDF', - 'pay_now' => 'Pagar Ahora', - 'save_invoice' => 'Guardar factura', - 'clone_invoice' => 'Clonar factura', - 'archive_invoice' => 'Archivar factura', - 'delete_invoice' => 'Eliminar factura', - 'email_invoice' => 'Enviar factura por email', - 'enter_payment' => 'Agregar pago', - 'tax_rates' => 'Tasas de impuesto', - 'rate' => 'Tasas', - 'settings' => 'Configuración', - 'enable_invoice_tax' => 'Activar impuesto para la factura', - 'enable_line_item_tax' => 'Activar impuesto por concepto', + // invoice + 'invoice' => 'Factura', + 'client' => 'Cliente', + 'invoice_date' => 'Fecha de factura', + 'due_date' => 'Fecha de pago', + 'invoice_number' => 'Número de Factura', + 'invoice_number_short' => 'Factura Nº', + 'po_number' => 'Apartado de correo', + 'po_number_short' => 'Apdo.', + 'frequency_id' => 'Frecuencia', + 'discount' => 'Descuento', + 'taxes' => 'Impuestos', + 'tax' => 'IVA', + 'item' => 'Concepto', + 'description' => 'Descripción', + 'unit_cost' => 'Coste unitario', + 'quantity' => 'Cantidad', + 'line_total' => 'Total', + 'subtotal' => 'Subtotal', + 'paid_to_date' => 'Pagado', + 'balance_due' => 'Pendiente', + 'invoice_design_id' => 'Diseño', + 'terms' => 'Términos', + 'your_invoice' => 'Tu factura', + 'remove_contact' => 'Eliminar contacto', + 'add_contact' => 'Añadir contacto', + 'create_new_client' => 'Crear nuevo cliente', + 'edit_client_details' => 'Editar detalles del cliente', + 'enable' => 'Activar', + 'learn_more' => 'Saber más', + 'manage_rates' => 'Gestionar tarifas', + 'note_to_client' => 'Nota para el cliente', + 'invoice_terms' => 'Términos de facturación', + 'save_as_default_terms' => 'Guardar como términos por defecto', + 'download_pdf' => 'Descargar PDF', + 'pay_now' => 'Pagar Ahora', + 'save_invoice' => 'Guardar factura', + 'clone_invoice' => 'Clonar factura', + 'archive_invoice' => 'Archivar factura', + 'delete_invoice' => 'Eliminar factura', + 'email_invoice' => 'Enviar factura por email', + 'enter_payment' => 'Agregar pago', + 'tax_rates' => 'Tasas de impuesto', + 'rate' => 'Tasas', + 'settings' => 'Configuración', + 'enable_invoice_tax' => 'Activar impuesto para la factura', + 'enable_line_item_tax' => 'Activar impuesto por concepto', - // navigation - 'dashboard' => 'Inicio', - 'clients' => 'Clientes', - 'invoices' => 'Facturas', - 'payments' => 'Pagos', - 'credits' => 'Créditos', - 'history' => 'Historial', - 'search' => 'Búsqueda', - 'sign_up' => 'Registrarse', - 'guest' => 'Invitado', - 'company_details' => 'Detalles de la Empresa', - 'online_payments' => 'Pagos en Linea', - 'notifications' => 'Notificaciones', - 'import_export' => 'Importar/Exportar', - 'done' => 'Hecho', - 'save' => 'Guardar', - 'create' => 'Crear', - 'upload' => 'Subir', - 'import' => 'Importar', - 'download' => 'Descargar', - 'cancel' => 'Cancelar', - 'close' => 'Cerrar', - 'provide_email' => 'Por favor facilita una dirección de correo válida.', - 'powered_by' => 'Creado por', - 'no_items' => 'No hay datos', + // navigation + 'dashboard' => 'Inicio', + 'clients' => 'Clientes', + 'invoices' => 'Facturas', + 'payments' => 'Pagos', + 'credits' => 'Créditos', + 'history' => 'Historial', + 'search' => 'Búsqueda', + 'sign_up' => 'Registrarse', + 'guest' => 'Invitado', + 'company_details' => 'Detalles de la Empresa', + 'online_payments' => 'Pagos en Linea', + 'notifications' => 'Notificaciones', + 'import_export' => 'Importar/Exportar', + 'done' => 'Hecho', + 'save' => 'Guardar', + 'create' => 'Crear', + 'upload' => 'Subir', + 'import' => 'Importar', + 'download' => 'Descargar', + 'cancel' => 'Cancelar', + 'close' => 'Cerrar', + 'provide_email' => 'Por favor facilita una dirección de correo válida.', + 'powered_by' => 'Creado por', + 'no_items' => 'No hay datos', - // recurring invoices - 'recurring_invoices' => 'Facturas recurrentes', - 'recurring_help' => '

Enviar facturas automáticamente a clientes semanalmente, bi-mensualmente, mensualmente, trimestral o anualmente.

-

Uso :MONTH, :QUARTER or :YEAR para fechas dinámicas. Matemáticas básicas también funcionan bien. Por ejemplo: :MONTH-1.

-

Ejemplos de variables dinámicas de factura:

- ', + // recurring invoices + 'recurring_invoices' => 'Facturas recurrentes', + 'recurring_help' => '

Enviar facturas automáticamente a clientes semanalmente, bi-mensualmente, mensualmente, trimestral o anualmente.

+

Uso :MONTH, :QUARTER or :YEAR para fechas dinámicas. Matemáticas básicas también funcionan bien. Por ejemplo: :MONTH-1.

+

Ejemplos de variables dinámicas de factura:

+ ', - // dashboard - 'in_total_revenue' => 'Ingreso Total', - 'billed_client' => 'Cliente Facturado', - 'billed_clients' => 'Clientes Facturados', - 'active_client' => 'Cliente Activo', - 'active_clients' => 'Clientes Activos', - 'invoices_past_due' => 'Facturas Vencidas', - 'upcoming_invoices' => 'Próximas Facturas', - 'average_invoice' => 'Promedio de Facturación', + // dashboard + 'in_total_revenue' => 'Ingreso Total', + 'billed_client' => 'Cliente Facturado', + 'billed_clients' => 'Clientes Facturados', + 'active_client' => 'Cliente Activo', + 'active_clients' => 'Clientes Activos', + 'invoices_past_due' => 'Facturas Vencidas', + 'upcoming_invoices' => 'Próximas Facturas', + 'average_invoice' => 'Promedio de Facturación', - // list pages - 'archive' => 'Archivar', - 'delete' => 'Eliminar', - 'archive_client' => 'Archivar Cliente', - 'delete_client' => 'Eliminar Cliente', - 'archive_payment' => 'Archivar Pago', - 'delete_payment' => 'Eliminar Pago', - 'archive_credit' => 'Archivar Crédito', - 'delete_credit' => 'Eliminar Crédito', - 'show_archived_deleted' => 'Mostrar archivados o eliminados en ', - 'filter' => 'Filtrar', - 'new_client' => 'Nuevo Cliente', - 'new_invoice' => 'Nueva Factura', - 'new_payment' => 'Nuevo Pago', - 'new_credit' => 'Nuevo Crédito', - 'contact' => 'Contacto', - 'date_created' => 'Fecha de Creación', - 'last_login' => 'Último Acceso', - 'balance' => 'Balance', - 'action' => 'Acción', - 'status' => 'Estado', - 'invoice_total' => 'Total Facturado', - 'frequency' => 'Frequencia', - 'start_date' => 'Fecha de Inicio', - 'end_date' => 'Fecha de Finalización', - 'transaction_reference' => 'Referencia de Transacción', - 'method' => 'Método', - 'payment_amount' => 'Valor del Pago', - 'payment_date' => 'Fecha de Pago', - 'credit_amount' => 'Cantidad de Crédito', - 'credit_balance' => 'Balance de Crédito', - 'credit_date' => 'Fecha de Crédito', - 'empty_table' => 'Tabla vacía', - 'select' => 'Seleccionar', - 'edit_client' => 'Editar Cliente', - 'edit_invoice' => 'Editar Factura', + // list pages + 'archive' => 'Archivar', + 'delete' => 'Eliminar', + 'archive_client' => 'Archivar Cliente', + 'delete_client' => 'Eliminar Cliente', + 'archive_payment' => 'Archivar Pago', + 'delete_payment' => 'Eliminar Pago', + 'archive_credit' => 'Archivar Crédito', + 'delete_credit' => 'Eliminar Crédito', + 'show_archived_deleted' => 'Mostrar archivados o eliminados en ', + 'filter' => 'Filtrar', + 'new_client' => 'Nuevo Cliente', + 'new_invoice' => 'Nueva Factura', + 'new_payment' => 'Nuevo Pago', + 'new_credit' => 'Nuevo Crédito', + 'contact' => 'Contacto', + 'date_created' => 'Fecha de Creación', + 'last_login' => 'Último Acceso', + 'balance' => 'Balance', + 'action' => 'Acción', + 'status' => 'Estado', + 'invoice_total' => 'Total Facturado', + 'frequency' => 'Frequencia', + 'start_date' => 'Fecha de Inicio', + 'end_date' => 'Fecha de Finalización', + 'transaction_reference' => 'Referencia de Transacción', + 'method' => 'Método', + 'payment_amount' => 'Valor del Pago', + 'payment_date' => 'Fecha de Pago', + 'credit_amount' => 'Cantidad de Crédito', + 'credit_balance' => 'Balance de Crédito', + 'credit_date' => 'Fecha de Crédito', + 'empty_table' => 'Tabla vacía', + 'select' => 'Seleccionar', + 'edit_client' => 'Editar Cliente', + 'edit_invoice' => 'Editar Factura', - // client view page - 'create_invoice' => 'Crear Factura', - 'Create Invoice' => 'Crear Factura', - 'enter_credit' => 'Agregar Crédito', - 'last_logged_in' => 'Último inicio de sesión', - 'details' => 'Detalles', - 'standing' => 'Situación', // - 'credit' => 'Crédito', - 'activity' => 'Actividad', - 'date' => 'Fecha', - 'message' => 'Mensaje', - 'adjustment' => 'Ajustes', - 'are_you_sure' => '¿Está Seguro?', + // client view page + 'create_invoice' => 'Crear Factura', + 'Create Invoice' => 'Crear Factura', + 'enter_credit' => 'Agregar Crédito', + 'last_logged_in' => 'Último inicio de sesión', + 'details' => 'Detalles', + 'standing' => 'Situación', // + 'credit' => 'Crédito', + 'activity' => 'Actividad', + 'date' => 'Fecha', + 'message' => 'Mensaje', + 'adjustment' => 'Ajustes', + 'are_you_sure' => '¿Está Seguro?', - // payment pages - 'payment_type_id' => 'Tipo de pago', - 'amount' => 'Cantidad', - - // Nuevo texto extraido - New text extracted - 'Recommended Gateway' => 'Pasarelas Recomendadas',// - 'Accepted Credit Cards' => 'Tarjetas de Credito Permitidas',// - 'Payment Gateway' => 'Pasarelas de Pago',// - 'Select Gateway' => 'Seleccione Pasarela',// - 'Enable' => 'Activo',// - 'Api Login Id' => 'Introduzca Api Id',// - 'Transaction Key' => 'Clave de Transacción',// - 'Create an account' => 'Crear cuenta nueva',// - 'Other Options' => 'Otras Opciones',// + // payment pages + 'payment_type_id' => 'Tipo de pago', + 'amount' => 'Cantidad', - // account/company pages - 'work_email' => 'Correo electrónico de la empresa', - 'language_id' => 'Idioma', - 'timezone_id' => 'Zona horaria', - 'date_format_id' => 'Formato de fecha', - 'datetime_format_id' => 'Format de fecha/hora', - 'users' => 'Usuarios', - 'localization' => 'Localización', - 'remove_logo' => 'Eliminar logo', - 'logo_help' => 'Formatos aceptados: JPEG, GIF y PNG', - 'payment_gateway' => 'Pasarela de pago', - 'gateway_id' => 'Proveedor', - 'email_notifications' => 'Notificaciones de email', - 'email_sent' => 'Avísame por email cuando una factura se envía', - 'email_viewed' => 'Avísame por email cuando una factura se visualiza', - 'email_paid' => 'Avísame por email cuando una factura se paga', - 'site_updates' => 'Actualizaciones del sitio', - 'custom_messages' => 'Mensajes a medida', - 'default_invoice_terms' => 'Configurar términos de factura por defecto', - 'default_email_footer' => 'Configurar firma de email por defecto', - 'import_clients' => 'Importar datos del cliente', - 'csv_file' => 'Seleccionar archivo CSV', - 'export_clients' => 'Exportar datos del cliente', - 'select_file' => 'Seleccionar archivo', - 'first_row_headers' => 'Usar la primera fila como encabezados', - 'column' => 'Columna', - 'sample' => 'Ejemplo', - 'import_to' => 'Importar a', - 'client_will_create' => 'cliente se creará', - 'clients_will_create' => 'clientes se crearan', + // Nuevo texto extraido - New text extracted + 'Recommended Gateway' => 'Pasarelas Recomendadas',// + 'Accepted Credit Cards' => 'Tarjetas de Credito Permitidas',// + 'Payment Gateway' => 'Pasarelas de Pago',// + 'Select Gateway' => 'Seleccione Pasarela',// + 'Enable' => 'Activo',// + 'Api Login Id' => 'Introduzca Api Id',// + 'Transaction Key' => 'Clave de Transacción',// + 'Create an account' => 'Crear cuenta nueva',// + 'Other Options' => 'Otras Opciones',// - // application messages - 'created_client' => 'cliente creado con éxito', - 'created_clients' => ':count clientes creados con éxito', - 'updated_settings' => 'Configuración actualizada con éxito', - 'removed_logo' => 'Logo eliminado con éxito', - 'sent_message' => 'Mensaje enviado con éxito', - 'invoice_error' => 'Seleccionar cliente y corregir errores.', - 'limit_clients' => 'Lo sentimos, se ha pasado del límite de :count clientes', - 'payment_error' => 'Ha habido un error en el proceso de tu pago. Inténtalo de nuevo más tarde.', - 'registration_required' => 'Inscríbete para enviar una factura', - 'confirmation_required' => 'Por favor confirma tu dirección de correo electrónico', + // account/company pages + 'work_email' => 'Correo electrónico de la empresa', + 'language_id' => 'Idioma', + 'timezone_id' => 'Zona horaria', + 'date_format_id' => 'Formato de fecha', + 'datetime_format_id' => 'Format de fecha/hora', + 'users' => 'Usuarios', + 'localization' => 'Localización', + 'remove_logo' => 'Eliminar logo', + 'logo_help' => 'Formatos aceptados: JPEG, GIF y PNG', + 'payment_gateway' => 'Pasarela de pago', + 'gateway_id' => 'Proveedor', + 'email_notifications' => 'Notificaciones de email', + 'email_sent' => 'Avísame por email cuando una factura se envía', + 'email_viewed' => 'Avísame por email cuando una factura se visualiza', + 'email_paid' => 'Avísame por email cuando una factura se paga', + 'site_updates' => 'Actualizaciones del sitio', + 'custom_messages' => 'Mensajes a medida', + 'default_invoice_terms' => 'Configurar términos de factura por defecto', + 'default_email_footer' => 'Configurar firma de email por defecto', + 'import_clients' => 'Importar datos del cliente', + 'csv_file' => 'Seleccionar archivo CSV', + 'export_clients' => 'Exportar datos del cliente', + 'select_file' => 'Seleccionar archivo', + 'first_row_headers' => 'Usar la primera fila como encabezados', + 'column' => 'Columna', + 'sample' => 'Ejemplo', + 'import_to' => 'Importar a', + 'client_will_create' => 'cliente se creará', + 'clients_will_create' => 'clientes se crearan', - 'updated_client' => 'Cliente actualizado con éxito', - 'created_client' => 'Cliente creado con éxito', - 'archived_client' => 'Cliente archivado con éxito', - 'archived_clients' => ':count clientes archivados con éxito', - 'deleted_client' => 'Cliente eliminado con éxito', - 'deleted_clients' => ':count clientes eliminados con éxito', + // application messages + 'created_client' => 'cliente creado con éxito', + 'created_clients' => ':count clientes creados con éxito', + 'updated_settings' => 'Configuración actualizada con éxito', + 'removed_logo' => 'Logo eliminado con éxito', + 'sent_message' => 'Mensaje enviado con éxito', + 'invoice_error' => 'Seleccionar cliente y corregir errores.', + 'limit_clients' => 'Lo sentimos, se ha pasado del límite de :count clientes', + 'payment_error' => 'Ha habido un error en el proceso de tu pago. Inténtalo de nuevo más tarde.', + 'registration_required' => 'Inscríbete para enviar una factura', + 'confirmation_required' => 'Por favor confirma tu dirección de correo electrónico', - 'updated_invoice' => 'Factura actualizada con éxito', - 'created_invoice' => 'Factura creada con éxito', - 'cloned_invoice' => 'Factura clonada con éxito', - 'emailed_invoice' => 'Factura enviada con éxito', - 'and_created_client' => 'y cliente creado ', - 'archived_invoice' => 'Factura archivada con éxito', - 'archived_invoices' => ':count facturas archivados con éxito', - 'deleted_invoice' => 'Factura eliminada con éxito', - 'deleted_invoices' => ':count facturas eliminadas con éxito', + 'updated_client' => 'Cliente actualizado con éxito', + 'created_client' => 'Cliente creado con éxito', + 'archived_client' => 'Cliente archivado con éxito', + 'archived_clients' => ':count clientes archivados con éxito', + 'deleted_client' => 'Cliente eliminado con éxito', + 'deleted_clients' => ':count clientes eliminados con éxito', - 'created_payment' => 'Pago creado con éxito', - 'archived_payment' => 'Pago archivado con éxito', - 'archived_payments' => ':count pagos archivados con éxito', - 'deleted_payment' => 'Pago eliminado con éxito', - 'deleted_payments' => ':count pagos eliminados con éxito', - 'applied_payment' => 'Pago aplicado con éxito', + 'updated_invoice' => 'Factura actualizada con éxito', + 'created_invoice' => 'Factura creada con éxito', + 'cloned_invoice' => 'Factura clonada con éxito', + 'emailed_invoice' => 'Factura enviada con éxito', + 'and_created_client' => 'y cliente creado ', + 'archived_invoice' => 'Factura archivada con éxito', + 'archived_invoices' => ':count facturas archivados con éxito', + 'deleted_invoice' => 'Factura eliminada con éxito', + 'deleted_invoices' => ':count facturas eliminadas con éxito', - 'created_credit' => 'Crédito creado con éxito', - 'archived_credit' => 'Crédito archivado con éxito', - 'archived_credits' => ':count creditos archivados con éxito', - 'deleted_credit' => 'Créditos eliminados con éxito', - 'deleted_credits' => ':count creditos eliminados con éxito', + 'created_payment' => 'Pago creado con éxito', + 'archived_payment' => 'Pago archivado con éxito', + 'archived_payments' => ':count pagos archivados con éxito', + 'deleted_payment' => 'Pago eliminado con éxito', + 'deleted_payments' => ':count pagos eliminados con éxito', + 'applied_payment' => 'Pago aplicado con éxito', - // Emails - 'confirmation_subject' => 'Corfimación de tu cuenta en Invoice Ninja', - 'confirmation_header' => 'Confirmación de Cuenta', - 'confirmation_message' => 'Por favor, haz clic en el enlace abajo para confirmar tu cuenta.', - 'invoice_subject' => 'Nueva factura :invoice de :account', - 'invoice_message' => 'Para visualizar tu factura por el valor de :amount, haz click en el enlace de abajo.', - 'payment_subject' => 'Pago recibido', - 'payment_message' => 'Gracias por su pago de :amount.', - 'email_salutation' => 'Estimado :name,', - 'email_signature' => 'Un cordial saludo,', - 'email_from' => 'El equipo de Invoice Ninja ', - 'user_email_footer' => 'Para ajustar la configuración de las notificaciones de tu email, visita '.SITE_URL.'/company/notifications', - 'invoice_link_message' => 'Para visualizar la factura de cliente, haz clic en el enlace de abajo:', - 'notification_invoice_paid_subject' => 'La factura :invoice ha sido pagada por el cliente :client', - 'notification_invoice_sent_subject' => 'La factura :invoice ha sido enviada a el cliente :client', - 'notification_invoice_viewed_subject' => 'La factura :invoice ha sido visualizado por el cliente:client', - 'notification_invoice_paid' => 'Un pago por importe de :amount ha sido realizado por el cliente :client correspondiente a la factura :invoice.', - 'notification_invoice_sent' => 'La factura :invoice por importe de :amount fue enviada al cliente :cliente.', - 'notification_invoice_viewed' => 'La factura :invoice por importe de :amount fue visualizada por el cliente :client.', - 'reset_password' => 'Puedes reconfigurar la contraseña de tu cuenta haciendo clic en el siguiente enlace:', - 'reset_password_footer' => 'Si no has solicitado un cambio de contraseña, por favor contactate con nosostros: ' . CONTACT_EMAIL, + 'created_credit' => 'Crédito creado con éxito', + 'archived_credit' => 'Crédito archivado con éxito', + 'archived_credits' => ':count creditos archivados con éxito', + 'deleted_credit' => 'Créditos eliminados con éxito', + 'deleted_credits' => ':count creditos eliminados con éxito', - // Payment page - 'secure_payment' => 'Pago seguro', - 'card_number' => 'Número de tarjeta', - 'expiration_month' => 'Mes de caducidad', - 'expiration_year' => 'Año de caducidad', - 'cvv' => 'CVV', + // Emails + 'confirmation_subject' => 'Corfimación de tu cuenta en Invoice Ninja', + 'confirmation_header' => 'Confirmación de Cuenta', + 'confirmation_message' => 'Por favor, haz clic en el enlace abajo para confirmar tu cuenta.', + 'invoice_subject' => 'Nueva factura :invoice de :account', + 'invoice_message' => 'Para visualizar tu factura por el valor de :amount, haz click en el enlace de abajo.', + 'payment_subject' => 'Pago recibido', + 'payment_message' => 'Gracias por su pago de :amount.', + 'email_salutation' => 'Estimado :name,', + 'email_signature' => 'Un cordial saludo,', + 'email_from' => 'El equipo de Invoice Ninja ', + 'user_email_footer' => 'Para ajustar la configuración de las notificaciones de tu email, visita '.SITE_URL.'/settings/notifications', + 'invoice_link_message' => 'Para visualizar la factura de cliente, haz clic en el enlace de abajo:', + 'notification_invoice_paid_subject' => 'La factura :invoice ha sido pagada por el cliente :client', + 'notification_invoice_sent_subject' => 'La factura :invoice ha sido enviada a el cliente :client', + 'notification_invoice_viewed_subject' => 'La factura :invoice ha sido visualizado por el cliente:client', + 'notification_invoice_paid' => 'Un pago por importe de :amount ha sido realizado por el cliente :client correspondiente a la factura :invoice.', + 'notification_invoice_sent' => 'La factura :invoice por importe de :amount fue enviada al cliente :cliente.', + 'notification_invoice_viewed' => 'La factura :invoice por importe de :amount fue visualizada por el cliente :client.', + 'reset_password' => 'Puedes reconfigurar la contraseña de tu cuenta haciendo clic en el siguiente enlace:', + 'reset_password_footer' => 'Si no has solicitado un cambio de contraseña, por favor contactate con nosostros: '.CONTACT_EMAIL, - // Security alerts - 'confide' => array( - 'too_many_attempts' => 'Demasiados intentos fallidos. Inténtalo de nuevo en un par de minutos.', - 'wrong_credentials' => 'Contraseña o email incorrecto.', - 'confirmation' => '¡Tu cuenta se ha confirmado!', - 'wrong_confirmation' => 'Código de confirmación incorrecto.', - 'password_forgot' => 'La información sobre el cambio de tu contraseña se ha enviado a tu dirección de correo electrónico.', - 'password_reset' => 'Tu contraseña se ha cambiado con éxito.', - 'wrong_password_reset' => 'Contraseña no válida. Inténtalo de nuevo', - ), + // Payment page + 'secure_payment' => 'Pago seguro', + 'card_number' => 'Número de tarjeta', + 'expiration_month' => 'Mes de caducidad', + 'expiration_year' => 'Año de caducidad', + 'cvv' => 'CVV', - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link haz click para eliminar el logo de Invoice Ninja', - 'remove_logo_link' => 'Haz click aquí', - ], - 'logout' => 'Cerrar sesión', - 'sign_up_to_save' => 'Registrate para guardar tu trabajo', - 'agree_to_terms' =>'Estoy de acuerdo con los términos de Invoice Ninja :terms', - 'terms_of_service' => 'Términos de servicio', - 'email_taken' => 'Esta dirección de correo electrónico ya se ha registrado', - 'working' => 'Procesando', - 'success' => 'Éxito', - 'success_message' => 'Te has registrado con éxito. Por favor, haz clic en el enlace del correo de confirmación para verificar tu dirección de correo electrónico.', - 'erase_data' => 'Esta acción eliminará todos tus datos de forma permanente.', - 'password' => 'Contraseña', + // Security alerts + 'confide' => array( + 'too_many_attempts' => 'Demasiados intentos fallidos. Inténtalo de nuevo en un par de minutos.', + 'wrong_credentials' => 'Contraseña o email incorrecto.', + 'confirmation' => '¡Tu cuenta se ha confirmado!', + 'wrong_confirmation' => 'Código de confirmación incorrecto.', + 'password_forgot' => 'La información sobre el cambio de tu contraseña se ha enviado a tu dirección de correo electrónico.', + 'password_reset' => 'Tu contraseña se ha cambiado con éxito.', + 'wrong_password_reset' => 'Contraseña no válida. Inténtalo de nuevo', + ), - 'pro_plan_product' => 'Plan Pro', - 'pro_plan_description' => 'Un año de inscripción al Plan Pro de Invoice Ninja.', - 'pro_plan_success' => '¡Gracias por unirte a Invoice Ninja! Al realizar el pago de tu factura, se iniciara tu PLAN PRO.', - 'unsaved_changes' => 'Tienes cambios no guardados', - 'custom_fields' => 'Campos a medida', - 'company_fields' => 'Campos de la empresa', - 'client_fields' => 'Campos del cliente', - 'field_label' => 'Etiqueta del campo', - 'field_value' => 'Valor del campo', - 'edit' => 'Editar', - 'view_as_recipient' => 'Ver como destinitario', + // Pro Plan + 'pro_plan' => [ + 'remove_logo' => ':link haz click para eliminar el logo de Invoice Ninja', + 'remove_logo_link' => 'Haz click aquí', + ], + 'logout' => 'Cerrar sesión', + 'sign_up_to_save' => 'Registrate para guardar tu trabajo', + 'agree_to_terms' => 'Estoy de acuerdo con los términos de Invoice Ninja :terms', + 'terms_of_service' => 'Términos de servicio', + 'email_taken' => 'Esta dirección de correo electrónico ya se ha registrado', + 'working' => 'Procesando', + 'success' => 'Éxito', + 'success_message' => 'Te has registrado con éxito. Por favor, haz clic en el enlace del correo de confirmación para verificar tu dirección de correo electrónico.', + 'erase_data' => 'Esta acción eliminará todos tus datos de forma permanente.', + 'password' => 'Contraseña', - // product management - 'product_library' => 'Inventario de productos', - 'product' => 'Producto', - 'products' => 'Productos', - 'fill_products' => 'Auto-rellenar productos', - 'fill_products_help' => 'Seleccionar un producto automáticamente configurará la descripción y coste', - 'update_products' => 'Auto-actualizar productos', - 'update_products_help' => 'Actualizar una factura automáticamente actualizará los productos', - 'create_product' => 'Crear Producto', - 'edit_product' => 'Editar Producto', - 'archive_product' => 'Archivar Producto', - 'updated_product' => 'Producto actualizado con éxito', - 'created_product' => 'Producto creado con éxito', - 'archived_product' => 'Producto archivado con éxito', - 'pro_plan_custom_fields' => ':link haz click para para activar campos a medida', - 'advanced_settings' => 'Configuración Avanzada', - 'pro_plan_advanced_settings' => ':link haz click para para activar la configuración avanzada', - 'invoice_design' => 'Diseño de factura', - 'specify_colors' => 'Especificar colores', - 'specify_colors_label' => 'Seleccionar los colores para usar en las facturas', - 'chart_builder' => 'Constructor de graficos', - 'ninja_email_footer' => 'Usa :site para facturar a tus clientes y recibir pagos de forma gratuita!', - 'go_pro' => 'Hazte Pro', + 'pro_plan_product' => 'Plan Pro', + 'pro_plan_description' => 'Un año de inscripción al Plan Pro de Invoice Ninja.', + 'pro_plan_success' => '¡Gracias por unirte a Invoice Ninja! Al realizar el pago de tu factura, se iniciara tu PLAN PRO.', + 'unsaved_changes' => 'Tienes cambios no guardados', + 'custom_fields' => 'Campos a medida', + 'company_fields' => 'Campos de la empresa', + 'client_fields' => 'Campos del cliente', + 'field_label' => 'Etiqueta del campo', + 'field_value' => 'Valor del campo', + 'edit' => 'Editar', + 'view_as_recipient' => 'Ver como destinitario', - // Quotes - 'quote' => 'Presupuesto', - 'quotes' => 'Presupuestos', - 'quote_number' => 'Numero de Presupuesto', - 'quote_number_short' => 'Presupuesto Nº ', - 'quote_date' => 'Fecha Presupuesto', - 'quote_total' => 'Total Presupuestado', - 'your_quote' => 'Su Presupuesto', - 'total' => 'Total', - 'clone' => 'Clonar', + // product management + 'product_library' => 'Inventario de productos', + 'product' => 'Producto', + 'products' => 'Productos', + 'fill_products' => 'Auto-rellenar productos', + 'fill_products_help' => 'Seleccionar un producto automáticamente configurará la descripción y coste', + 'update_products' => 'Auto-actualizar productos', + 'update_products_help' => 'Actualizar una factura automáticamente actualizará los productos', + 'create_product' => 'Crear Producto', + 'edit_product' => 'Editar Producto', + 'archive_product' => 'Archivar Producto', + 'updated_product' => 'Producto actualizado con éxito', + 'created_product' => 'Producto creado con éxito', + 'archived_product' => 'Producto archivado con éxito', + 'pro_plan_custom_fields' => ':link haz click para para activar campos a medida', + 'advanced_settings' => 'Configuración Avanzada', + 'pro_plan_advanced_settings' => ':link haz click para para activar la configuración avanzada', + 'invoice_design' => 'Diseño de factura', + 'specify_colors' => 'Especificar colores', + 'specify_colors_label' => 'Seleccionar los colores para usar en las facturas', + 'chart_builder' => 'Constructor de graficos', + 'ninja_email_footer' => 'Usa :site para facturar a tus clientes y recibir pagos de forma gratuita!', + 'go_pro' => 'Hazte Pro', - 'new_quote' => 'Nuevo Presupuesto', - 'create_quote' => 'Crear Presupuesto', - 'edit_quote' => 'Editar Presupuesto', - 'archive_quote' => 'Archivar Presupuesto', - 'delete_quote' => 'Eliminar Presupuesto', - 'save_quote' => 'Guardar Presupuesto', - 'email_quote' => 'Enviar Presupuesto', - 'clone_quote' => 'Clonar Presupuesto', - 'convert_to_invoice' => 'Convertir a Factura', - 'view_invoice' => 'Ver Factura', - 'view_quote' => 'Ver Presupuesto', - 'view_client' => 'Ver Cliente', + // Quotes + 'quote' => 'Presupuesto', + 'quotes' => 'Presupuestos', + 'quote_number' => 'Numero de Presupuesto', + 'quote_number_short' => 'Presupuesto Nº ', + 'quote_date' => 'Fecha Presupuesto', + 'quote_total' => 'Total Presupuestado', + 'your_quote' => 'Su Presupuesto', + 'total' => 'Total', + 'clone' => 'Clonar', - 'updated_quote' => 'Presupuesto actualizado con éxito', - 'created_quote' => 'Presupuesto creado con éxito', - 'cloned_quote' => 'Presupuesto clonado con éxito', - 'emailed_quote' => 'Presupuesto enviado con éxito', - 'archived_quote' => 'Presupuesto archivado con éxito', - 'archived_quotes' => ':count Presupuestos archivados con exito', - 'deleted_quote' => 'Presupuesto eliminado con éxito', - 'deleted_quotes' => ':count Presupuestos eliminados con exito', - 'converted_to_invoice' => 'Presupuesto convertido a factura con éxito', + 'new_quote' => 'Nuevo Presupuesto', + 'create_quote' => 'Crear Presupuesto', + 'edit_quote' => 'Editar Presupuesto', + 'archive_quote' => 'Archivar Presupuesto', + 'delete_quote' => 'Eliminar Presupuesto', + 'save_quote' => 'Guardar Presupuesto', + 'email_quote' => 'Enviar Presupuesto', + 'clone_quote' => 'Clonar Presupuesto', + 'convert_to_invoice' => 'Convertir a Factura', + 'view_invoice' => 'Ver Factura', + 'view_quote' => 'Ver Presupuesto', + 'view_client' => 'Ver Cliente', - 'quote_subject' => 'Nuevo Presupuesto de :account', - 'quote_message' => 'Para ver el presupuesto por un importe de :amount, haga click en el enlace de abajo.', - 'quote_link_message' => 'Para ver su presupuesto haga click en el enlace de abajo:', - 'notification_quote_sent_subject' => 'El presupuesto :invoice enviado al cliente :client', - 'notification_quote_viewed_subject' => 'El presupuesto :invoice fue visto por el cliente :client', - 'notification_quote_sent' => 'El presupuesto :invoice por un valor de :amount, ha sido enviado al cliente :client.', - 'notification_quote_viewed' => 'El presupuesto :invoice por un valor de :amount ha sido visto por el cliente :client.', - 'session_expired' => 'Su sesión ha caducado.', - 'invoice_fields' => 'Campos de Factura', - 'invoice_options' => 'Opciones de Factura', - 'hide_quantity' => 'Ocultar Cantidad', - 'hide_quantity_help' => 'Si las cantidades de tus partidas siempre son 1, entonces puedes organizar tus facturas mejor al no mostrar este campo.', - 'hide_paid_to_date' => 'Ocultar valor pagado a la fecha', - 'hide_paid_to_date_help' => 'Solo mostrar la opción “Pagado a la fecha” en sus facturas cuando se ha recibido un pago.', - 'charge_taxes' => 'Cargar Impuestos', - 'user_management' => 'Gestión de Usuario', - 'add_user' => 'Añadir Usuario', - 'send_invite' => 'Enviar Invitación', //Context for its use - 'sent_invite' => 'Invitación enviada con éxito', - 'updated_user' => 'Usario actualizado con éxito', - 'invitation_message' => ':invitor te ha invitado a unirte a su cuenta en G-Factura.', - 'register_to_add_user' => 'Regístrate para añadir usarios', - 'user_state' => 'Estado', - 'edit_user' => 'Editar Usario', - 'delete_user' => 'Eliminar Usario', - 'active' => 'Activo', - 'pending' => 'Pendiente', - 'deleted_user' => 'Usario eliminado con éxito', - 'limit_users' => 'Lo sentimos, esta acción excederá el límite de ' . MAX_NUM_USERS . ' usarios', - 'confirm_email_invoice' => '¿Estás seguro que quieres enviar esta factura?', - 'confirm_email_quote' => '¿Estás seguro que quieres enviar este presupuesto?', - 'confirm_recurring_email_invoice' => 'Se ha marcado esta factura como recurrente, estás seguro que quieres enviar esta factura?', - 'cancel_account' => 'Cancelar Cuenta', - 'cancel_account_message' => 'AVISO: Esta acción eliminará todos tus datos de forma permanente.', - 'go_back' => 'Atrás', - 'data_visualizations' => 'Visualización de Datos', - 'sample_data' => 'Datos de Ejemplo', - 'hide' => 'Ocultar', - 'new_version_available' => 'Una nueva versión de :releases_link disponible. Estás utilizando la versión :user_version, la última versión es :latest_version', - 'invoice_settings' => 'Configuración de Facturas', - 'invoice_number_prefix' => 'Prefijo de Facturación', - 'invoice_number_counter' => 'Numeración de Facturación', - 'quote_number_prefix' => 'Prejijo de Presupuesto', - 'quote_number_counter' => 'Numeración de Presupuestos', - 'share_invoice_counter' => 'Compartir la numeración para presupuesto y facturación', - 'invoice_issued_to' => 'Factura emitida a', - 'invalid_counter' => 'Para evitar posibles conflictos, por favor crea un prefijo de facturación y de presupuesto.', - 'mark_sent' => 'Marcar como enviado', + 'updated_quote' => 'Presupuesto actualizado con éxito', + 'created_quote' => 'Presupuesto creado con éxito', + 'cloned_quote' => 'Presupuesto clonado con éxito', + 'emailed_quote' => 'Presupuesto enviado con éxito', + 'archived_quote' => 'Presupuesto archivado con éxito', + 'archived_quotes' => ':count Presupuestos archivados con exito', + 'deleted_quote' => 'Presupuesto eliminado con éxito', + 'deleted_quotes' => ':count Presupuestos eliminados con exito', + 'converted_to_invoice' => 'Presupuesto convertido a factura con éxito', + 'quote_subject' => 'Nuevo Presupuesto de :account', + 'quote_message' => 'Para ver el presupuesto por un importe de :amount, haga click en el enlace de abajo.', + 'quote_link_message' => 'Para ver su presupuesto haga click en el enlace de abajo:', + 'notification_quote_sent_subject' => 'El presupuesto :invoice enviado al cliente :client', + 'notification_quote_viewed_subject' => 'El presupuesto :invoice fue visto por el cliente :client', + 'notification_quote_sent' => 'El presupuesto :invoice por un valor de :amount, ha sido enviado al cliente :client.', + 'notification_quote_viewed' => 'El presupuesto :invoice por un valor de :amount ha sido visto por el cliente :client.', + 'session_expired' => 'Su sesión ha caducado.', + 'invoice_fields' => 'Campos de Factura', + 'invoice_options' => 'Opciones de Factura', + 'hide_quantity' => 'Ocultar Cantidad', + 'hide_quantity_help' => 'Si las cantidades de tus partidas siempre son 1, entonces puedes organizar tus facturas mejor al no mostrar este campo.', + 'hide_paid_to_date' => 'Ocultar valor pagado a la fecha', + 'hide_paid_to_date_help' => 'Solo mostrar la opción “Pagado a la fecha” en sus facturas cuando se ha recibido un pago.', + 'charge_taxes' => 'Cargar Impuestos', + 'user_management' => 'Gestión de Usuario', + 'add_user' => 'Añadir Usuario', + 'send_invite' => 'Enviar Invitación', //Context for its use + 'sent_invite' => 'Invitación enviada con éxito', + 'updated_user' => 'Usario actualizado con éxito', + 'invitation_message' => ':invitor te ha invitado a unirte a su cuenta en G-Factura.', + 'register_to_add_user' => 'Regístrate para añadir usarios', + 'user_state' => 'Estado', + 'edit_user' => 'Editar Usario', + 'delete_user' => 'Eliminar Usario', + 'active' => 'Activo', + 'pending' => 'Pendiente', + 'deleted_user' => 'Usario eliminado con éxito', + 'limit_users' => 'Lo sentimos, esta acción excederá el límite de '.MAX_NUM_USERS.' usarios', + 'confirm_email_invoice' => '¿Estás seguro que quieres enviar esta factura?', + 'confirm_email_quote' => '¿Estás seguro que quieres enviar este presupuesto?', + 'confirm_recurring_email_invoice' => 'Se ha marcado esta factura como recurrente, estás seguro que quieres enviar esta factura?', + 'cancel_account' => 'Cancelar Cuenta', + 'cancel_account_message' => 'AVISO: Esta acción eliminará todos tus datos de forma permanente.', + 'go_back' => 'Atrás', + 'data_visualizations' => 'Visualización de Datos', + 'sample_data' => 'Datos de Ejemplo', + 'hide' => 'Ocultar', + 'new_version_available' => 'Una nueva versión de :releases_link disponible. Estás utilizando la versión :user_version, la última versión es :latest_version', + 'invoice_settings' => 'Configuración de Facturas', + 'invoice_number_prefix' => 'Prefijo de Facturación', + 'invoice_number_counter' => 'Numeración de Facturación', + 'quote_number_prefix' => 'Prejijo de Presupuesto', + 'quote_number_counter' => 'Numeración de Presupuestos', + 'share_invoice_counter' => 'Compartir la numeración para presupuesto y facturación', + 'invoice_issued_to' => 'Factura emitida a', + 'invalid_counter' => 'Para evitar posibles conflictos, por favor crea un prefijo de facturación y de presupuesto.', + 'mark_sent' => 'Marcar como enviado', - 'gateway_help_1' => ':link para registrarse en Authorize.net.', - 'gateway_help_2' => ':link para registrarse en Authorize.net.', - 'gateway_help_17' => ':link para obtener su firma API de PayPal.', - 'gateway_help_23' => 'Nota: utilizar su clave de API secreta, no es su clave de API publica.', - 'gateway_help_27' => ':link para registrarse en TwoCheckout.', + 'gateway_help_1' => ':link para registrarse en Authorize.net.', + 'gateway_help_2' => ':link para registrarse en Authorize.net.', + 'gateway_help_17' => ':link para obtener su firma API de PayPal.', + 'gateway_help_23' => 'Nota: utilizar su clave de API secreta, no es su clave de API publica.', + 'gateway_help_27' => ':link para registrarse en TwoCheckout.', - 'more_designs' => 'Más diseños', - 'more_designs_title' => 'Diseños adicionales para factura', - 'more_designs_cloud_header' => 'Pase a Pro para añadir más diseños de facturas', - 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Obtenga 6 diseños más para facturas por sólo '.INVOICE_DESIGNS_PRICE, // comprobar - 'more_designs_self_host_text' => '', - 'buy' => 'Comprar', - 'bought_designs' => 'Añadidos con exito los diseños de factura', + 'more_designs' => 'Más diseños', + 'more_designs_title' => 'Diseños adicionales para factura', + 'more_designs_cloud_header' => 'Pase a Pro para añadir más diseños de facturas', + 'more_designs_cloud_text' => '', + 'more_designs_self_host_header' => 'Obtenga 6 diseños más para facturas por sólo '.INVOICE_DESIGNS_PRICE, // comprobar + 'more_designs_self_host_text' => '', + 'buy' => 'Comprar', + 'bought_designs' => 'Añadidos con exito los diseños de factura', - 'sent' => 'Enviado', - 'timesheets' => 'Parte de Horas', + 'sent' => 'Enviado', + 'timesheets' => 'Parte de Horas', - 'payment_title' => 'Introduzca su dirección de facturación y la infomración de su tarjeta de crédito', - 'payment_cvv' => '*los tres últimos dígitos de la parte posterior de su tarjeta', - 'payment_footer1' => '*La dirección de facturación debe coincidir con la de la tarjeta de crédito.', - 'payment_footer2' => '*Por favor, haga clic en "Pagar ahora" sólo una vez - esta operación puede tardar hasta 1 minuto en procesarse.', - 'vat_number' => 'NIF/CIF', + 'payment_title' => 'Introduzca su dirección de facturación y la infomración de su tarjeta de crédito', + 'payment_cvv' => '*los tres últimos dígitos de la parte posterior de su tarjeta', + 'payment_footer1' => '*La dirección de facturación debe coincidir con la de la tarjeta de crédito.', + 'payment_footer2' => '*Por favor, haga clic en "Pagar ahora" sólo una vez - esta operación puede tardar hasta 1 minuto en procesarse.', + 'vat_number' => 'NIF/CIF', - 'id_number' => 'Número de Identificación', - 'white_label_link' => 'Marca Blanca" ', - 'white_label_text' => 'Obtener una licencia de marca blanca por'.WHITE_LABEL_PRICE.' para quitar la marca Invoice Ninja de la parte superior de las páginas del cliente.', // comprobar - 'white_label_link' => 'Marca Blanca" ', - 'bought_white_label' => 'Se ha conseguido con exito la licencia de Marca Blanca', - 'white_labeled' => 'Marca Blanca', + 'id_number' => 'Número de Identificación', + 'white_label_link' => 'Marca Blanca" ', + 'white_label_text' => 'Obtener una licencia de marca blanca por'.WHITE_LABEL_PRICE.' para quitar la marca Invoice Ninja de la parte superior de las páginas del cliente.', // comprobar + 'white_label_link' => 'Marca Blanca" ', + 'bought_white_label' => 'Se ha conseguido con exito la licencia de Marca Blanca', + 'white_labeled' => 'Marca Blanca', 'restore' => 'Restaurar', 'restore_invoice' => 'Restaurar Factura', 'restore_quote' => 'Restaurar Presupuesto', 'restore_client' => 'Restaurar Cliente', - 'restore_credit' => 'Restaurar Pendiente', + 'restore_credit' => 'Restaurar Pendiente', 'restore_payment' => 'Restaurar Pago', 'restored_invoice' => 'Factura restaurada con éxito', @@ -479,7 +478,7 @@ return array( 'restored_client' => 'Cliente restaurada con éxito', 'restored_payment' => 'Pago restaurada con éxito', 'restored_credit' => 'Pendiente restaurada con éxito', - + 'reason_for_canceling' => 'Ayudenos a mejorar nuestro sitio diciendonos porque se va, Gracias', 'discount_percent' => 'Porcentaje', 'discount_amount' => 'Cantidad', @@ -503,7 +502,7 @@ return array( 'payment_email' => 'Email de Pagos', 'quote_email' => 'Email de Presupuestos', 'reset_all' => 'Restablecer Todos', - 'approve' => 'Aprobar', + 'approve' => 'Aprobar', 'token_billing_type_id' => 'Token Billing', //¿? 'token_billing_help' => 'Permite almacenar tarjetas de crédito para posteriormente realizarles el cobro.', @@ -604,7 +603,7 @@ return array( 'view_documentation' => 'View Documentation', 'app_title' => 'Free Open-Source Online Invoicing', 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.', - + 'rows' => 'rows', 'www' => 'www', 'logo' => 'Logo', @@ -750,9 +749,9 @@ return array( 'primary_user' => 'Primary User', 'help' => 'Help', 'customize_help' => '

We use pdfmake to define the invoice designs declaratively. The pdfmake playground provide\'s a great way to see the library in action.

-

You can access any invoice field by adding Value to the end. For example $invoiceNumberValue displays the invoice number.

-

To access a child property using dot notation. For example to show the client name you could use $client.nameValue.

-

If you need help figuring something out post a question to our support forum.

', +

You can access any invoice field by adding Value to the end. For example $invoiceNumberValue displays the invoice number.

+

To access a child property using dot notation. For example to show the client name you could use $client.nameValue.

+

If you need help figuring something out post a question to our support forum.

', 'invoice_due_date' => 'Due Date', 'quote_due_date' => 'Valid Until', @@ -766,7 +765,7 @@ return array( 'status_partial' => 'Partial', 'status_paid' => 'Paid', 'show_line_item_tax' => 'Display line item taxes inline', - + 'iframe_url' => 'Website', 'iframe_url_help1' => 'Copy the following code to a page on your site.', 'iframe_url_help2' => 'You can test the feature by clicking \'View as recipient\' for an invoice.', @@ -805,9 +804,9 @@ return array( 'invoice_charges' => 'Invoice Charges', 'invitation_status' => [ - 'sent' => 'Email Sent', - 'opened' => 'Email Openend', - 'viewed' => 'Invoice Viewed', + 'sent' => 'Email Sent', + 'opened' => 'Email Openend', + 'viewed' => 'Invoice Viewed', ], 'notification_invoice_bounced' => 'We were unable to deliver Invoice :invoice to :contact.', 'notification_invoice_bounced_subject' => 'Unable to deliver Invoice :invoice', @@ -817,6 +816,9 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', - -); \ No newline at end of file +); diff --git a/resources/lang/fr/texts.php b/resources/lang/fr/texts.php index d37ed36bfe6f..35a4fbdca803 100644 --- a/resources/lang/fr/texts.php +++ b/resources/lang/fr/texts.php @@ -262,7 +262,7 @@ return array( 'email_salutation' => 'Cher :name,', 'email_signature' => 'Cordialement,', 'email_from' => 'L\'équipe Invoice Ninja', - 'user_email_footer' => 'Pour modifier vos paramètres de notification par courriel, veuillez visiter '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'Pour modifier vos paramètres de notification par courriel, veuillez visiter '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'Pour voir la facture de votre client cliquez sur le lien ci-après :', 'notification_invoice_paid_subject' => 'La facture :invoice a été payée par le client :client', 'notification_invoice_sent_subject' => 'La facture :invoice a été envoyée au client :client', @@ -809,6 +809,10 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/lang/fr_CA/texts.php b/resources/lang/fr_CA/texts.php index 25e1163ef5b4..1dfdf94ef35f 100644 --- a/resources/lang/fr_CA/texts.php +++ b/resources/lang/fr_CA/texts.php @@ -262,7 +262,7 @@ return array( 'email_salutation' => 'Cher :name,', 'email_signature' => 'Cordialement,', 'email_from' => 'L\'équipe InvoiceNinja', - 'user_email_footer' => 'Pour modifier vos paramètres de notification par courriel, veuillez visiter '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'Pour modifier vos paramètres de notification par courriel, veuillez visiter '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'Pour voir la facture de votre client cliquez sur le lien ci-après :', 'notification_invoice_paid_subject' => 'La facture :invoice a été payée par le client :client', 'notification_invoice_sent_subject' => 'La facture :invoice a été envoyée au client :client', @@ -810,6 +810,10 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/lang/it/texts.php b/resources/lang/it/texts.php index 495c16da9bb5..467b91ff4806 100644 --- a/resources/lang/it/texts.php +++ b/resources/lang/it/texts.php @@ -262,7 +262,7 @@ return array( 'email_salutation' => 'Caro :name,', 'email_signature' => 'Distinti saluti,', 'email_from' => 'Il Team di InvoiceNinja', - 'user_email_footer' => 'Per modificare le impostazioni di notifiche via email per favore accedi a: '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'Per modificare le impostazioni di notifiche via email per favore accedi a: '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'Per visualizzare la tua fattura del cliente clicca sul link qui sotto:', 'notification_invoice_paid_subject' => 'La fattura :invoice è stata pagata da :client', 'notification_invoice_sent_subject' => 'La fattura :invoice è stata inviata a :client', @@ -812,5 +812,9 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/lang/lt/texts.php b/resources/lang/lt/texts.php index 78f1d3f375ad..a491697b03f7 100644 --- a/resources/lang/lt/texts.php +++ b/resources/lang/lt/texts.php @@ -262,7 +262,7 @@ return array( 'email_salutation' => 'Dear :name,', 'email_signature' => 'Regards,', 'email_from' => 'The Invoice Ninja Team', - 'user_email_footer' => 'To adjust your email notification settings please visit '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'To adjust your email notification settings please visit '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'To view your client invoice click the link below:', 'notification_invoice_paid_subject' => 'Invoice :invoice was paid by :client', 'notification_invoice_sent_subject' => 'Invoice :invoice was sent to :client', @@ -819,6 +819,10 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/lang/nb_NO/texts.php b/resources/lang/nb_NO/texts.php index 087ff544e72d..374b0479cf9a 100644 --- a/resources/lang/nb_NO/texts.php +++ b/resources/lang/nb_NO/texts.php @@ -262,7 +262,7 @@ return array( 'email_salutation' => 'Kjære :name,', 'email_signature' => 'Med vennlig hilsen,', 'email_from' => 'The Invoice Ninja Team', - 'user_email_footer' => 'For å justere varslingsinnstillingene vennligst besøk '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'For å justere varslingsinnstillingene vennligst besøk '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'Hvis du vil se din klientfaktura klikk på linken under:', 'notification_invoice_paid_subject' => 'Faktura :invoice betalt av :client', 'notification_invoice_sent_subject' => 'Faktura :invoice sendt til :client', @@ -817,5 +817,9 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); \ No newline at end of file diff --git a/resources/lang/nl/texts.php b/resources/lang/nl/texts.php index 9813923b9f22..96e8ddf21658 100644 --- a/resources/lang/nl/texts.php +++ b/resources/lang/nl/texts.php @@ -260,7 +260,7 @@ return array( 'email_salutation' => 'Beste :name,', 'email_signature' => 'Met vriendelijke groeten,', 'email_from' => 'Het InvoiceNinja Team', - 'user_email_footer' => 'Ga alstublieft naar '.SITE_URL.'/company/notifications om je e-mail notificatie instellingen aan te passen ', + 'user_email_footer' => 'Ga alstublieft naar '.SITE_URL.'/settings/notifications om je e-mail notificatie instellingen aan te passen ', 'invoice_link_message' => 'Klik op volgende link om de Factuur van je klant te bekijken:', 'notification_invoice_paid_subject' => 'Factuur :invoice is betaald door :client', 'notification_invoice_sent_subject' => 'Factuur :invoice is gezonden door :client', @@ -812,5 +812,9 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/lang/pt_BR/texts.php b/resources/lang/pt_BR/texts.php index 8bcfab53c6c1..479515183363 100644 --- a/resources/lang/pt_BR/texts.php +++ b/resources/lang/pt_BR/texts.php @@ -258,7 +258,7 @@ return array( 'email_salutation' => 'Caro :name,', 'email_signature' => 'Até mais,', 'email_from' => 'Equipe InvoiceNinja', - 'user_email_footer' => 'Para ajustar suas configurações de notificações de email acesse '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'Para ajustar suas configurações de notificações de email acesse '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'Para visualizar a fatura do seu cliente clique no link abaixo:', 'notification_invoice_paid_subject' => 'Fatura :invoice foi pago por :client', 'notification_invoice_sent_subject' => 'Fatura :invoice foi enviado por :client', @@ -812,5 +812,9 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/lang/sv/texts.php b/resources/lang/sv/texts.php index 34c670c66d75..bd99b0732509 100644 --- a/resources/lang/sv/texts.php +++ b/resources/lang/sv/texts.php @@ -262,7 +262,7 @@ return array( 'email_salutation' => 'Hej :name,', 'email_signature' => 'Vänliga hälsningar,', 'email_from' => 'Invoice Ninja teamet', - 'user_email_footer' => 'För att anpassa dina e-post notifieringar gå till '.SITE_URL.'/company/notifications', + 'user_email_footer' => 'För att anpassa dina e-post notifieringar gå till '.SITE_URL.'/settings/notifications', 'invoice_link_message' => 'För att se din kundfaktura klicka på länken nedan:', 'notification_invoice_paid_subject' => 'Faktura :invoice är betald av :client', 'notification_invoice_sent_subject' => 'Faktura :invoice är skickad till :client', @@ -815,5 +815,9 @@ return array( 'custom_invoice_link' => 'Custom Invoice Link', 'total_invoiced' => 'Total Invoiced', 'open_balance' => 'Open Balance', + 'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.', + 'basic_settings' => 'Basic Settings', + 'pro' => 'Pro', + 'gateways' => 'Payment Gateways', ); diff --git a/resources/views/accounts/account_gateway.blade.php b/resources/views/accounts/account_gateway.blade.php index 5b6a7860a474..0e0580871e0e 100644 --- a/resources/views/accounts/account_gateway.blade.php +++ b/resources/views/accounts/account_gateway.blade.php @@ -1,9 +1,11 @@ -@extends('accounts.nav') +@extends('header') @section('content') @parent - {!! Former::open($url)->method($method)->rule()->addClass('col-md-8 col-md-offset-2 warn-on-exit') !!} + @include('accounts.nav', ['selected' => ACCOUNT_PAYMENTS]) + + {!! Former::open($url)->method($method)->rule()->addClass('warn-on-exit') !!} {!! Former::populate($account) !!} @@ -106,7 +108,7 @@

 

{!! Former::actions( - $countGateways > 0 ? Button::normal(trans('texts.cancel'))->large()->asLinkTo(URL::to('/company/payments'))->appendIcon(Icon::create('remove-circle')) : false, + $countGateways > 0 ? Button::normal(trans('texts.cancel'))->large()->asLinkTo(URL::to('/settings/online_payments'))->appendIcon(Icon::create('remove-circle')) : false, Button::success(trans('texts.save'))->submit()->large()->appendIcon(Icon::create('floppy-disk'))) !!} {!! Former::close() !!} diff --git a/resources/views/accounts/api_tokens.blade.php b/resources/views/accounts/api_tokens.blade.php new file mode 100644 index 000000000000..2f64596a92cf --- /dev/null +++ b/resources/views/accounts/api_tokens.blade.php @@ -0,0 +1,72 @@ +@extends('header') + +@section('content') + @parent + @include('accounts.nav', ['selected' => ACCOUNT_API_TOKENS, 'advanced' => true]) + + {!! Former::open('tokens/delete')->addClass('user-form') !!} + +

+ {!! Former::text('tokenPublicId') !!} +
+ {!! Former::close() !!} + + +
+ {!! Button::normal(trans('texts.documentation'))->asLinkTo(NINJA_WEB_URL.'/knowledgebase/api-documentation/')->withAttributes(['target' => '_blank'])->appendIcon(Icon::create('info-sign')) !!} + @if (Utils::isNinja()) + {!! Button::normal(trans('texts.zapier'))->asLinkTo(ZAPIER_URL)->withAttributes(['target' => '_blank']) !!} + @endif + @if (Utils::isPro()) + {!! Button::primary(trans('texts.add_token'))->asLinkTo(URL::to('/tokens/create'))->appendIcon(Icon::create('plus-sign')) !!} + @endif +
+ + + + {!! Datatable::table() + ->addColumn( + trans('texts.name'), + trans('texts.token'), + trans('texts.action')) + ->setUrl(url('api/tokens/')) + ->setOptions('sPaginationType', 'bootstrap') + ->setOptions('bFilter', false) + ->setOptions('bAutoWidth', false) + ->setOptions('aoColumns', [[ "sWidth"=> "40%" ], [ "sWidth"=> "40%" ], ["sWidth"=> "20%"]]) + ->setOptions('aoColumnDefs', [['bSortable'=>false, 'aTargets'=>[2]]]) + ->render('datatable') !!} + + + +@stop diff --git a/resources/views/accounts/customize_design.blade.php b/resources/views/accounts/customize_design.blade.php index 95ab263e7838..d492496df2d7 100644 --- a/resources/views/accounts/customize_design.blade.php +++ b/resources/views/accounts/customize_design.blade.php @@ -1,4 +1,4 @@ -@extends('accounts.nav') +@extends('header') @section('head') @parent @@ -27,9 +27,8 @@ @stop @section('content') - @parent - @include('accounts.nav_advanced') - + @parent + @include('accounts.nav', ['selected' => ACCOUNT_INVOICE_DESIGN, 'advanced' => true]) @stop diff --git a/resources/views/accounts/export.blade.php b/resources/views/accounts/export.blade.php index 71b2aa1cc470..eb0257e7df1a 100644 --- a/resources/views/accounts/export.blade.php +++ b/resources/views/accounts/export.blade.php @@ -1,7 +1,8 @@ -@extends('accounts.nav') +@extends('header') @section('content') @parent + @include('accounts.nav', ['selected' => ACCOUNT_IMPORT_EXPORT]) {{ Former::open()->addClass('col-md-9 col-md-offset-1') }} {{ Former::legend('Export Client Data') }} diff --git a/resources/views/accounts/import_export.blade.php b/resources/views/accounts/import_export.blade.php index c8460bf0884a..dc9a73c455d1 100644 --- a/resources/views/accounts/import_export.blade.php +++ b/resources/views/accounts/import_export.blade.php @@ -1,9 +1,11 @@ -@extends('accounts.nav') +@extends('header') @section('content') @parent -{!! Former::open_for_files('company/import_map')->addClass('col-md-8 col-md-offset-2') !!} + @include('accounts.nav', ['selected' => ACCOUNT_IMPORT_EXPORT]) + +{!! Former::open_for_files('settings/' . ACCOUNT_MAP) !!}

{!! trans('texts.import_clients') !!}

@@ -16,7 +18,7 @@ {!! Former::close() !!} -{!! Former::open('company/export')->addClass('col-md-8 col-md-offset-2') !!} +{!! Former::open('settings/' . ACCOUNT_EXPORT) !!}

{!! trans('texts.export_clients') !!}

@@ -28,7 +30,7 @@ {!! Former::close() !!} -{!! Former::open('company/cancel_account')->addClass('col-md-8 col-md-offset-2 cancel-account') !!} +{!! Former::open('settings/cancel_account')->addClass('cancel-account') !!}

{!! trans('texts.cancel_account') !!}

diff --git a/resources/views/accounts/import_map.blade.php b/resources/views/accounts/import_map.blade.php index c2c15591449f..83921fd22573 100644 --- a/resources/views/accounts/import_map.blade.php +++ b/resources/views/accounts/import_map.blade.php @@ -1,9 +1,11 @@ -@extends('accounts.nav') +@extends('header') @section('content') @parent - {!! Former::open('company/import_export')->addClass('col-md-8 col-md-offset-2 warn-on-exit') !!} + @include('accounts.nav', ['selected' => ACCOUNT_IMPORT_EXPORT]) + + {!! Former::open('settings/' . ACCOUNT_IMPORT_EXPORT)->addClass('warn-on-exit') !!}
@@ -46,7 +48,7 @@ {!! Former::actions( - Button::normal(trans('texts.cancel'))->large()->asLinkTo(URL::to('/company/import_export'))->appendIcon(Icon::create('remove-circle')), + Button::normal(trans('texts.cancel'))->large()->asLinkTo(URL::to('/settings/import_export'))->appendIcon(Icon::create('remove-circle')), Button::success(trans('texts.import'))->submit()->large()->appendIcon(Icon::create('floppy-disk'))) !!} {!! Former::close() !!} diff --git a/resources/views/accounts/invoice_design.blade.php b/resources/views/accounts/invoice_design.blade.php index d152914f68e0..abe3efd67a74 100644 --- a/resources/views/accounts/invoice_design.blade.php +++ b/resources/views/accounts/invoice_design.blade.php @@ -1,4 +1,4 @@ -@extends('accounts.nav') +@extends('header') @section('head') @parent @@ -12,7 +12,7 @@ @section('content') @parent - @include('accounts.nav_advanced') + @include('accounts.nav', ['selected' => ACCOUNT_INVOICE_DESIGN, 'advanced' => true]) + +@stop + +@section('onReady') + $('#first_name').focus(); +@stop \ No newline at end of file diff --git a/resources/views/accounts/user_management.blade.php b/resources/views/accounts/user_management.blade.php index 44946f7b5011..51a0bb8986b8 100644 --- a/resources/views/accounts/user_management.blade.php +++ b/resources/views/accounts/user_management.blade.php @@ -1,8 +1,8 @@ -@extends('accounts.nav') +@extends('header') @section('content') @parent - @include('accounts.nav_advanced') + @include('accounts.nav', ['selected' => ACCOUNT_USER_MANAGEMENT, 'advanced' => true]) {!! Former::open('users/delete')->addClass('user-form') !!} @@ -13,7 +13,6 @@
- {!! Button::normal(trans('texts.api_tokens'))->asLinkTo(URL::to('/company/advanced_settings/token_management'))->appendIcon(Icon::create('cloud')) !!} @if (Utils::isPro()) {!! Button::primary(trans('texts.add_user'))->asLinkTo(URL::to('/users/create'))->appendIcon(Icon::create('plus-sign')) !!} @endif diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php index 29a168c34d51..39f8a8324b96 100644 --- a/resources/views/dashboard.blade.php +++ b/resources/views/dashboard.blade.php @@ -12,11 +12,11 @@
@if (count($paidToDate)) - @foreach ($paidToDate as $item) - {{ Utils::formatMoney($item->value, $item->currency_id) }}
- @endforeach + @foreach ($paidToDate as $item) + {{ Utils::formatMoney($item->value, $item->currency_id) }}
+ @endforeach @else - {{ Utils::formatMoney(0) }} + {{ Utils::formatMoney(0) }} @endif
@@ -31,11 +31,11 @@
@if (count($averageInvoice)) - @foreach ($averageInvoice as $item) - {{ Utils::formatMoney($item->invoice_avg, $item->currency_id) }}
- @endforeach + @foreach ($averageInvoice as $item) + {{ Utils::formatMoney($item->invoice_avg, $item->currency_id) }}
+ @endforeach @else - {{ Utils::formatMoney(0) }} + {{ Utils::formatMoney(0) }} @endif
@@ -50,11 +50,11 @@
@if (count($balances)) - @foreach ($balances as $item) - {{ Utils::formatMoney($item->value, $item->currency_id) }}
- @endforeach + @foreach ($balances as $item) + {{ Utils::formatMoney($item->value, $item->currency_id) }}
+ @endforeach @else - {{ Utils::formatMoney(0) }} + {{ Utils::formatMoney(0) }} @endif
diff --git a/resources/views/header.blade.php b/resources/views/header.blade.php index 04e26cc03d2d..aa83d8352ea6 100644 --- a/resources/views/header.blade.php +++ b/resources/views/header.blade.php @@ -438,12 +438,10 @@ @@ -667,6 +665,7 @@ {{-- Per our license, please do not remove or modify this section. --}} @if (!Utils::isNinjaProd()) +

 

{{ trans('texts.powered_by') }} InvoiceNinja.com - diff --git a/resources/views/reports/chart_builder.blade.php b/resources/views/reports/chart_builder.blade.php index 61e332d20157..01f6778fcbbc 100644 --- a/resources/views/reports/chart_builder.blade.php +++ b/resources/views/reports/chart_builder.blade.php @@ -1,4 +1,4 @@ -@extends('accounts.nav') +@extends('header') @section('head') @parent @@ -8,152 +8,143 @@ @section('content') @parent - @include('accounts.nav_advanced') + @include('accounts.nav', ['selected' => ACCOUNT_CHARTS_AND_REPORTS, 'advanced' => true]) - {!! Button::primary(trans('texts.data_visualizations')) - ->asLinkTo(URL::to('/company/advanced_settings/data_visualizations')) - ->withAttributes(['class' => 'pull-right']) - ->appendIcon(Icon::create('globe')) !!} + {!! Former::open()->rules(['start_date' => 'required', 'end_date' => 'required'])->addClass('warn-on-exit') !!} -

 

-

 

+
+ {!! Former::text('action') !!} +
+ + {!! Former::populateField('start_date', $startDate) !!} + {!! Former::populateField('end_date', $endDate) !!} + {!! Former::populateField('enable_report', intval($enableReport)) !!} + {!! Former::populateField('enable_chart', intval($enableChart)) !!}
-
+

{!! trans('texts.settings') !!}

+
+
+ + {!! Former::text('start_date')->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT)) + ->addGroupClass('start_date') + ->append('') !!} + {!! Former::text('end_date')->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT)) + ->addGroupClass('end_date') + ->append('') !!} + +

 

+ {!! Former::actions( + Button::primary(trans('texts.export'))->withAttributes(array('onclick' => 'onExportClick()'))->appendIcon(Icon::create('export')), + Button::success(trans('texts.run'))->withAttributes(array('id' => 'submitButton'))->submit()->appendIcon(Icon::create('play')) + ) !!} + + @if (!Auth::user()->isPro()) + + @endif - {!! Former::open()->rules(['start_date' => 'required', 'end_date' => 'required'])->addClass('warn-on-exit') !!} - -
- {!! Former::text('action') !!} -
- - {!! Former::populateField('start_date', $startDate) !!} - {!! Former::populateField('end_date', $endDate) !!} - {!! Former::populateField('enable_report', intval($enableReport)) !!} - {!! Former::populateField('enable_chart', intval($enableChart)) !!} - - {!! Former::text('start_date')->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT)) - ->addGroupClass('start_date') - ->append('') !!} - {!! Former::text('end_date')->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT)) - ->addGroupClass('end_date') - ->append('') !!} - -

 

- {!! Former::checkbox('enable_report')->text(trans('texts.enable')) !!} - {!! Former::select('report_type')->options($reportTypes, $reportType)->label(trans('texts.group_by')) !!} - -

 

- {!! Former::checkbox('enable_chart')->text(trans('texts.enable')) !!} - {!! Former::select('group_by')->options($dateTypes, $groupBy) !!} - {!! Former::select('chart_type')->options($chartTypes, $chartType) !!} - -

 

- @if (Auth::user()->isPro()) - {!! Former::actions( - Button::primary(trans('texts.export'))->withAttributes(array('onclick' => 'onExportClick()'))->appendIcon(Icon::create('export')), - Button::success(trans('texts.run'))->withAttributes(array('id' => 'submitButton'))->submit()->appendIcon(Icon::create('play')) - ) !!} - @else - - @endif - - {!! Former::close() !!} +
+
+ {!! Former::checkbox('enable_report')->text(trans('texts.enable')) !!} + {!! Former::select('report_type')->options($reportTypes, $reportType)->label(trans('texts.group_by')) !!} +

 

+ {!! Former::checkbox('enable_chart')->text(trans('texts.enable')) !!} + {!! Former::select('group_by')->options($dateTypes, $groupBy) !!} + {!! Former::select('chart_type')->options($chartTypes, $chartType) !!} + + {!! Former::close() !!}
-
-
- - @if ($enableReport) -
-
- - - - @foreach ($columns as $column) - - @endforeach - - - - @foreach ($displayData as $record) - - @foreach ($record as $field) - - @endforeach - + + + @if ($enableReport) +
+
+
- {{ trans("texts.{$column}") }} -
- {!! $field !!} -
+ + + @foreach ($columns as $column) + @endforeach - - + + + + @foreach ($displayData as $record) - - @if (!$reportType) - - - @endif - - - - - -
+ {{ trans("texts.{$column}") }} +
{{ trans('texts.totals') }} - @foreach ($reportTotals['amount'] as $currencyId => $total) - {{ Utils::formatMoney($total, $currencyId) }}
- @endforeach -
- @foreach ($reportTotals['paid'] as $currencyId => $total) - {{ Utils::formatMoney($total, $currencyId) }}
- @endforeach -
- @foreach ($reportTotals['balance'] as $currencyId => $total) - {{ Utils::formatMoney($total, $currencyId) }}
- @endforeach -
+ @foreach ($record as $field) + + {!! $field !!} + + @endforeach + + @endforeach + + + + {{ trans('texts.totals') }} + @if (!$reportType) + + + @endif + + @foreach ($reportTotals['amount'] as $currencyId => $total) + {{ Utils::formatMoney($total, $currencyId) }}
+ @endforeach + + + @foreach ($reportTotals['paid'] as $currencyId => $total) + {{ Utils::formatMoney($total, $currencyId) }}
+ @endforeach + + + @foreach ($reportTotals['balance'] as $currencyId => $total) + {{ Utils::formatMoney($total, $currencyId) }}
+ @endforeach + + + + +
+
+ @endif + + @if ($enableChart) +
+
+ +

 

+
+
+
 Invoices
+
+
+
+
 Payments
-
- @endif - - @if ($enableChart) -
-
- -

 

-
-
-
 Invoices
-
-
-
-
 Payments
-
-
-
-
 Credits
-
- +
+
+
 Credits
-
- @endif -
+
+
+ @endif
diff --git a/resources/views/reports/d3.blade.php b/resources/views/reports/d3.blade.php index 0b75bef85cb9..f4dc689eaea1 100644 --- a/resources/views/reports/d3.blade.php +++ b/resources/views/reports/d3.blade.php @@ -1,4 +1,4 @@ -@extends('accounts.nav') +@extends('header') @section('head') @parent @@ -30,7 +30,7 @@ @section('content') @parent - @include('accounts.nav_advanced') + @include('accounts.nav', ['selected' => ACCOUNT_DATA_VISUALIZATIONS, 'advanced' => true]) {!! Former::actions( - Button::normal(trans('texts.cancel'))->asLinkTo(URL::to('/company/advanced_settings/user_management'))->appendIcon(Icon::create('remove-circle'))->large(), + Button::normal(trans('texts.cancel'))->asLinkTo(URL::to('/settings/user_management'))->appendIcon(Icon::create('remove-circle'))->large(), Button::success(trans($user && $user->confirmed ? 'texts.save' : 'texts.send_invite'))->submit()->large()->appendIcon(Icon::create($user && $user->confirmed ? 'floppy-disk' : 'send')) )!!} diff --git a/tests/acceptance/AllPagesCept.php b/tests/acceptance/AllPagesCept.php index 81db6ce06ebf..24d43a9eccf8 100644 --- a/tests/acceptance/AllPagesCept.php +++ b/tests/acceptance/AllPagesCept.php @@ -52,31 +52,31 @@ $I->see('Payments', 'li'); $I->see('Create'); // Settings pages -$I->amOnPage('/company/details'); +$I->amOnPage('/settings/company_details'); $I->see('Details'); $I->amOnPage('/gateways/create'); $I->see('Add Gateway'); -$I->amOnPage('/company/products'); +$I->amOnPage('/settings/products'); $I->see('Product Settings'); -$I->amOnPage('/company/import_export'); +$I->amOnPage('/settings/import_export'); $I->see('Import'); -$I->amOnPage('/company/advanced_settings/invoice_settings'); +$I->amOnPage('/settings/invoice_settings'); $I->see('Invoice Fields'); -$I->amOnPage('/company/advanced_settings/invoice_design'); +$I->amOnPage('/settings/invoice_design'); $I->see('Invoice Design'); -$I->amOnPage('/company/advanced_settings/templates_and_reminders'); +$I->amOnPage('/settings/templates_and_reminders'); $I->see('Invoice Email'); -$I->amOnPage('/company/advanced_settings/charts_and_reports'); +$I->amOnPage('/settings/charts_and_reports'); $I->see('Data Visualizations'); -$I->amOnPage('/company/advanced_settings/user_management'); +$I->amOnPage('/settings/user_management'); $I->see('Add User'); //try to logout diff --git a/tests/acceptance/InvoiceDesignCest.php b/tests/acceptance/InvoiceDesignCest.php index f774e51f2bd1..748f68a49558 100644 --- a/tests/acceptance/InvoiceDesignCest.php +++ b/tests/acceptance/InvoiceDesignCest.php @@ -24,7 +24,7 @@ class InvoiceDesignCest { $I->wantTo('Design my invoice'); - $I->amOnPage('/company/advanced_settings/invoice_design'); + $I->amOnPage('/settings/invoice_design'); $I->click('select#invoice_design_id'); $I->click('select#invoice_design_id option:nth-child(2)'); diff --git a/tests/acceptance/OnlinePaymentCest.php b/tests/acceptance/OnlinePaymentCest.php index df5241f9104d..d7526a491eb4 100644 --- a/tests/acceptance/OnlinePaymentCest.php +++ b/tests/acceptance/OnlinePaymentCest.php @@ -24,7 +24,7 @@ class OnlinePaymentCest // set gateway info $I->wantTo('create a gateway'); - $I->amOnPage('/company/payments'); + $I->amOnPage('/settings/online_payments'); if (strpos($I->grabFromCurrentUrl(), 'create') !== false) { $I->fillField(['name' =>'23_apiKey'], Fixtures::get('gateway_key')); diff --git a/tests/functional/SettingsCest.php b/tests/functional/SettingsCest.php index 95724b26e1be..f19a920c34ba 100644 --- a/tests/functional/SettingsCest.php +++ b/tests/functional/SettingsCest.php @@ -14,10 +14,11 @@ class SettingsCest $this->faker = Factory::create(); } + /* public function companyDetails(FunctionalTester $I) { $I->wantTo('update the company details'); - $I->amOnPage('/company/details'); + $I->amOnPage('/settings/company_details'); $name = $this->faker->company; @@ -29,20 +30,50 @@ class SettingsCest $I->fillField(['name' => 'city'], $this->faker->city); $I->fillField(['name' => 'state'], $this->faker->state); $I->fillField(['name' => 'postal_code'], $this->faker->postcode); - - $I->fillField(['name' => 'first_name'], $this->faker->firstName); - $I->fillField(['name' => 'last_name'], $this->faker->lastName); - $I->fillField(['name' => 'phone'], $this->faker->phoneNumber); $I->click('Save'); $I->seeResponseCodeIs(200); $I->seeRecord('accounts', array('name' => $name)); } + */ + + public function userDetails(FunctionalTester $I) + { + $I->wantTo('update the user details'); + $I->amOnPage('/settings/user_details'); + + $firstName = $this->faker->firstName; + + $I->fillField(['name' => 'first_name'], $firstName); + $I->fillField(['name' => 'last_name'], $this->faker->lastName); + $I->fillField(['name' => 'phone'], $this->faker->phoneNumber); + $I->click('Save'); + + $I->seeResponseCodeIs(200); + $I->seeRecord('users', array('first_name' => $firstName)); + } + + /* + public function localization(FunctionalTester $I) + { + $I->wantTo('update the localization'); + $I->amOnPage('/settings/localization'); + + $name = $this->faker->company; + + $I->fillField(['name' => 'name'], $name); + $I->click('Save'); + + $I->seeResponseCodeIs(200); + $I->seeRecord('accounts', array('name' => $name)); + } + */ + public function productSettings(FunctionalTester $I) { $I->wantTo('update the product settings'); - $I->amOnPage('/company/products'); + $I->amOnPage('/settings/products'); $I->click('Save'); @@ -84,7 +115,7 @@ class SettingsCest public function updateNotifications(FunctionalTester $I) { $I->wantTo('update notification settings'); - $I->amOnPage('/company/notifications'); + $I->amOnPage('/settings/notifications'); $terms = $this->faker->text(80); @@ -99,7 +130,7 @@ class SettingsCest public function updateInvoiceDesign(FunctionalTester $I) { $I->wantTo('update invoice design'); - $I->amOnPage('/company/advanced_settings/invoice_design'); + $I->amOnPage('/settings/invoice_design'); $color = $this->faker->hexcolor; @@ -114,7 +145,7 @@ class SettingsCest public function updateInvoiceSettings(FunctionalTester $I) { $I->wantTo('update invoice settings'); - $I->amOnPage('/company/advanced_settings/invoice_settings'); + $I->amOnPage('/settings/invoice_settings'); $label = $this->faker->text(10); @@ -131,7 +162,7 @@ class SettingsCest public function updateEmailTemplates(FunctionalTester $I) { $I->wantTo('update email templates'); - $I->amOnPage('/company/advanced_settings/templates_and_reminders'); + $I->amOnPage('/settings/templates_and_reminders'); $string = $this->faker->text(100); @@ -145,7 +176,7 @@ class SettingsCest public function runReport(FunctionalTester $I) { $I->wantTo('run the report'); - $I->amOnPage('/company/advanced_settings/charts_and_reports'); + $I->amOnPage('/settings/charts_and_reports'); $I->click('Run'); $I->seeResponseCodeIs(200);