diff --git a/.env.example b/.env.example index 2ab7175fad..c7cd8ea6d6 100644 --- a/.env.example +++ b/.env.example @@ -60,7 +60,7 @@ API_SECRET=password # If this is set to anything, the URL secret will be set the next # time a file is downloaded through the client portal. # Only set this temporarily, as it slows things down. -#RACKSPACE_TEMP_URL_SECRET_SET= +#RACKSPACE_TEMP_URL_SECRET_SET= #DOCUMENT_FILESYSTEM= @@ -79,4 +79,4 @@ WEPAY_APP_FEE_MULTIPLIER=0.002 WEPAY_APP_FEE_FIXED=0 # See https://www.wepay.com/developer/reference/structures#theme -WEPAY_THEME={"name":"Invoice Ninja","primary_color":"0b4d78","secondary_color":"0b4d78","background_color":"f8f8f8","button_color":"33b753"}')); \ No newline at end of file +WEPAY_THEME='{"name":"Invoice Ninja","primary_color":"0b4d78","secondary_color":"0b4d78","background_color":"f8f8f8","button_color":"33b753"}' diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 1183117815..be3ee331f4 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -403,17 +403,9 @@ class AccountController extends BaseController private function showBankAccounts() { - $account = Auth::user()->account; - $account->load('bank_accounts'); - $count = count($account->bank_accounts); - - if ($count == 0) { - return Redirect::to('bank_accounts/create'); - } else { - return View::make('accounts.banks', [ - 'title' => trans('texts.bank_accounts') - ]); - } + return View::make('accounts.banks', [ + 'title' => trans('texts.bank_accounts') + ]); } private function showOnlinePayments() diff --git a/app/Http/Controllers/BankAccountController.php b/app/Http/Controllers/BankAccountController.php index bce86bce42..1c003cfd47 100644 --- a/app/Http/Controllers/BankAccountController.php +++ b/app/Http/Controllers/BankAccountController.php @@ -13,12 +13,14 @@ use stdClass; use Crypt; use URL; use Utils; +use File; use App\Models\Gateway; use App\Models\Account; use App\Models\BankAccount; use App\Ninja\Repositories\BankAccountRepository; use App\Services\BankAccountService; use App\Http\Requests\CreateBankAccountRequest; +use Illuminate\Http\Request; class BankAccountController extends BaseController { @@ -122,4 +124,28 @@ class BankAccountController extends BaseController return $this->bankAccountService->importExpenses($bankId, Input::all()); } + public function showImportOFX() + { + return view('accounts.import_ofx'); + } + + public function doImportOFX(Request $request) + { + $file = File::get($request->file('ofx_file')); + + try { + $data = $this->bankAccountService->parseOFX($file); + } catch (\Exception $e) { + Session::flash('error', trans('texts.ofx_parse_failed')); + return view('accounts.import_ofx'); + } + + $data = [ + 'banks' => null, + 'bankAccount' => null, + 'transactions' => json_encode([$data]) + ]; + + return View::make('accounts.bank_account', $data); + } } diff --git a/app/Http/Controllers/BaseAPIController.php b/app/Http/Controllers/BaseAPIController.php index 0718e95b91..4660e9b25e 100644 --- a/app/Http/Controllers/BaseAPIController.php +++ b/app/Http/Controllers/BaseAPIController.php @@ -61,40 +61,36 @@ class BaseAPIController extends Controller } $this->serializer = Request::get('serializer') ?: API_SERIALIZER_ARRAY; - + if ($this->serializer === API_SERIALIZER_JSON) { $this->manager->setSerializer(new JsonApiSerializer()); } else { $this->manager->setSerializer(new ArraySerializer()); } - - if (Utils::isNinjaDev()) { - \DB::enableQueryLog(); - } } protected function handleAction($request) - { + { $entity = $request->entity(); $action = $request->action; - + $repo = Utils::toCamelCase($this->entityType) . 'Repo'; - + $this->$repo->$action($entity); - + return $this->itemResponse($entity); } protected function listResponse($query) { $transformerClass = EntityModel::getTransformerName($this->entityType); - $transformer = new $transformerClass(Auth::user()->account, Input::get('serializer')); + $transformer = new $transformerClass(Auth::user()->account, Input::get('serializer')); $includes = $transformer->getDefaultIncludes(); $includes = $this->getRequestIncludes($includes); $query->with($includes); - + if ($updatedAt = Input::get('updated_at')) { $updatedAt = date('Y-m-d H:i:s', $updatedAt); $query->where(function($query) use ($includes, $updatedAt) { @@ -106,14 +102,14 @@ class BaseAPIController extends Controller } }); } - + if ($clientPublicId = Input::get('client_id')) { $filter = function($query) use ($clientPublicId) { $query->where('public_id', '=', $clientPublicId); }; $query->whereHas('client', $filter); } - + if ( ! Utils::hasPermission('view_all')){ if ($this->entityType == ENTITY_USER) { $query->where('id', '=', Auth::user()->id); @@ -121,7 +117,7 @@ class BaseAPIController extends Controller $query->where('user_id', '=', Auth::user()->id); } } - + $data = $this->createCollection($query, $transformer, $this->entityType); return $this->response($data); @@ -130,10 +126,10 @@ class BaseAPIController extends Controller protected function itemResponse($item) { $transformerClass = EntityModel::getTransformerName($this->entityType); - $transformer = new $transformerClass(Auth::user()->account, Input::get('serializer')); + $transformer = new $transformerClass(Auth::user()->account, Input::get('serializer')); $data = $this->createItem($item, $transformer, $this->entityType); - + return $this->response($data); } @@ -160,18 +156,12 @@ class BaseAPIController extends Controller } else { $resource = new Collection($query, $transformer, $entityType); } - + return $this->manager->createData($resource)->toArray(); } protected function response($response) { - if (Utils::isNinjaDev()) { - $count = count(\DB::getQueryLog()); - Log::info(Request::method() . ' - ' . Request::url() . ": $count queries"); - Log::info(json_encode(\DB::getQueryLog())); - } - $index = Request::get('index') ?: 'data'; if ($index == 'none') { @@ -222,7 +212,7 @@ class BaseAPIController extends Controller $data[] = $include; } } - + return $data; } } diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 2ce7a633f1..3bb399294c 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -10,7 +10,7 @@ use Utils; class BaseController extends Controller { use DispatchesJobs, AuthorizesRequests; - + protected $entityType; /** diff --git a/app/Http/Controllers/ExpenseApiController.php b/app/Http/Controllers/ExpenseApiController.php index 725067aa1f..6d190c1a48 100644 --- a/app/Http/Controllers/ExpenseApiController.php +++ b/app/Http/Controllers/ExpenseApiController.php @@ -1,7 +1,7 @@ account_id != $invoice->account_id)) { if ($invoice->is_quote) { event(new QuoteInvitationWasViewed($invoice, $invitation)); @@ -73,7 +73,7 @@ class PublicClientController extends BaseController Session::put('invitation_key', $invitationKey); // track current invitation $account->loadLocalizationSettings($client); - + $invoice->invoice_date = Utils::fromSqlDate($invoice->invoice_date); $invoice->due_date = Utils::fromSqlDate($invoice->due_date); $invoice->features = [ @@ -82,7 +82,7 @@ class PublicClientController extends BaseController 'invoice_settings' => $account->hasFeature(FEATURE_INVOICE_SETTINGS), ]; $invoice->invoice_fonts = $account->getFontsData(); - + if ($invoice->invoice_design_id == CUSTOM_DESIGN) { $invoice->invoice_design->javascript = $account->custom_design; } else { @@ -149,10 +149,10 @@ class PublicClientController extends BaseController 'checkoutComDebug' => $checkoutComDebug, 'phantomjs' => Input::has('phantomjs'), ); - + if($account->hasFeature(FEATURE_DOCUMENTS) && $this->canCreateZip()){ $zipDocs = $this->getInvoiceZipDocuments($invoice, $size); - + if(count($zipDocs) > 1){ $data['documentsZipURL'] = URL::to("client/documents/{$invitation->invitation_key}"); $data['documentsZipSize'] = $size; @@ -173,6 +173,7 @@ class PublicClientController extends BaseController foreach ($paymentMethods as $paymentMethod) { if ($paymentMethod->payment_type_id != PAYMENT_TYPE_ACH || $paymentMethod->status == PAYMENT_METHOD_STATUS_VERIFIED) { $code = htmlentities(str_replace(' ', '', strtolower($paymentMethod->payment_type->name))); + $html = ''; if ($paymentMethod->payment_type_id == PAYMENT_TYPE_ACH) { if ($paymentMethod->bank_data) { @@ -303,7 +304,7 @@ class PublicClientController extends BaseController $data['braintreeClientToken'] = $this->paymentService->getBraintreeClientToken($account); } } - + return response()->view('invited.dashboard', $data); } @@ -323,9 +324,9 @@ class PublicClientController extends BaseController $data = [ 'client' => Utils::getClientDisplayName($model), 'user' => $model->is_system ? ('' . trans('texts.system') . '') : ($model->user_first_name . ' ' . $model->user_last_name), - 'invoice' => trans('texts.invoice') . ' ' . $model->invoice, + 'invoice' => $model->invoice, 'contact' => Utils::getClientDisplayName($model), - 'payment' => trans('texts.payment') . ($model->payment ? ' ' . $model->payment : ''), + 'payment' => $model->payment ? ' ' . $model->payment : '', 'credit' => $model->payment_amount ? Utils::formatMoney($model->credit, $model->currency_id, $model->country_id) : '', 'payment_amount' => $model->payment_amount ? Utils::formatMoney($model->payment_amount, $model->currency_id, $model->country_id) : null, 'adjustment' => $model->adjustment ? Utils::formatMoney($model->adjustment, $model->currency_id, $model->country_id) : null, @@ -351,7 +352,7 @@ class PublicClientController extends BaseController } $color = $account->primary_color ? $account->primary_color : '#0b4d78'; - + $data = [ 'color' => $color, 'account' => $account, @@ -422,7 +423,7 @@ class PublicClientController extends BaseController return $this->returnError(); } - $color = $account->primary_color ? $account->primary_color : '#0b4d78'; + $color = $account->primary_color ? $account->primary_color : '#0b4d78'; $data = [ 'color' => $color, 'account' => $account, @@ -471,7 +472,7 @@ class PublicClientController extends BaseController ->orderColumns( 'invoice_number', 'transaction_reference', 'payment_type', 'amount', 'payment_date') ->make(); } - + private function getPaymentStatusLabel($model) { $label = trans("texts.status_" . strtolower($model->payment_status_name)); @@ -546,7 +547,7 @@ class PublicClientController extends BaseController return $this->returnError(); } - $color = $account->primary_color ? $account->primary_color : '#0b4d78'; + $color = $account->primary_color ? $account->primary_color : '#0b4d78'; $data = [ 'color' => $color, 'account' => $account, @@ -599,55 +600,55 @@ class PublicClientController extends BaseController return $invitation; } - + public function getDocumentVFSJS($publicId, $name){ if (!$invitation = $this->getInvitation()) { return $this->returnError(); } - + $clientId = $invitation->invoice->client_id; $document = Document::scope($publicId, $invitation->account_id)->first(); - - + + if(!$document->isPDFEmbeddable()){ return Response::view('error', array('error'=>'Image does not exist!'), 404); } - + $authorized = false; if($document->expense && $document->expense->client_id == $invitation->invoice->client_id){ $authorized = true; } else if($document->invoice && $document->invoice->client_id == $invitation->invoice->client_id){ $authorized = true; } - + if(!$authorized){ return Response::view('error', array('error'=>'Not authorized'), 403); - } - + } + if(substr($name, -3)=='.js'){ $name = substr($name, 0, -3); } - + $content = $document->preview?$document->getRawPreview():$document->getRaw(); $content = 'ninjaAddVFSDoc('.json_encode(intval($publicId).'/'.strval($name)).',"'.base64_encode($content).'")'; $response = Response::make($content, 200); $response->header('content-type', 'text/javascript'); $response->header('cache-control', 'max-age=31536000'); - + return $response; } - + protected function canCreateZip(){ return function_exists('gmp_init'); } - + protected function getInvoiceZipDocuments($invoice, &$size=0){ $documents = $invoice->documents; - + foreach($invoice->expenses as $expense){ $documents = $documents->merge($expense->documents); } - + $documents = $documents->sortBy('size'); $size = 0; @@ -655,16 +656,16 @@ class PublicClientController extends BaseController $toZip = array(); foreach($documents as $document){ if($size + $document->size > $maxSize)break; - + if(!empty($toZip[$document->name])){ // This name is taken if($toZip[$document->name]->hash != $document->hash){ // 2 different files with the same name $nameInfo = pathinfo($document->name); - + for($i = 1;; $i++){ $name = $nameInfo['filename'].' ('.$i.').'.$nameInfo['extension']; - + if(empty($toZip[$name])){ $toZip[$name] = $document; $size += $document->size; @@ -674,7 +675,7 @@ class PublicClientController extends BaseController break; } } - + } } else{ @@ -682,25 +683,25 @@ class PublicClientController extends BaseController $size += $document->size; } } - + return $toZip; } - + public function getInvoiceDocumentsZip($invitationKey){ if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { return $this->returnError(); } - + Session::put('invitation_key', $invitationKey); // track current invitation - + $invoice = $invitation->invoice; - + $toZip = $this->getInvoiceZipDocuments($invoice); - + if(!count($toZip)){ return Response::view('error', array('error'=>'No documents small enough'), 404); } - + $zip = new ZipArchive($invitation->account->name.' Invoice '.$invoice->invoice_number.'.zip'); return Response::stream(function() use ($toZip, $zip) { foreach($toZip as $name=>$document){ @@ -718,28 +719,28 @@ class PublicClientController extends BaseController $zip->finish(); }, 200); } - + public function getDocument($invitationKey, $publicId){ if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { return $this->returnError(); } - + Session::put('invitation_key', $invitationKey); // track current invitation - + $clientId = $invitation->invoice->client_id; $document = Document::scope($publicId, $invitation->account_id)->firstOrFail(); - + $authorized = false; if($document->expense && $document->expense->client_id == $invitation->invoice->client_id){ $authorized = true; } else if($document->invoice && $document->invoice->client_id == $invitation->invoice->client_id){ $authorized = true; } - + if(!$authorized){ return Response::view('error', array('error'=>'Not authorized'), 403); - } - + } + return DocumentController::getDownloadResponse($document); } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 6b3ab9ca5b..c77cbe6b9b 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -110,7 +110,7 @@ class UserController extends BaseController 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')); + Session::flash('error', trans('texts.limit_users', ['limit' => MAX_NUM_USERS])); return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } } @@ -291,7 +291,7 @@ class UserController extends BaseController $account = Auth::user()->account; $this->accountRepo->unlinkAccount($account); if ($account->company->accounts->count() == 1) { - $account->company->forceDelete(); + $account->company->forceDelete(); } $account->forceDelete(); } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 1142338b20..8f7db1f0fa 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -17,6 +17,7 @@ class Kernel extends HttpKernel { 'Illuminate\View\Middleware\ShareErrorsFromSession', 'App\Http\Middleware\VerifyCsrfToken', 'App\Http\Middleware\DuplicateSubmissionCheck', + 'App\Http\Middleware\QueryLogging', 'App\Http\Middleware\StartupCheck', ]; diff --git a/app/Http/Middleware/QueryLogging.php b/app/Http/Middleware/QueryLogging.php new file mode 100644 index 0000000000..da01a52b05 --- /dev/null +++ b/app/Http/Middleware/QueryLogging.php @@ -0,0 +1,38 @@ +url(), '_debugbar') === false) { + $queries = DB::getQueryLog(); + $count = count($queries); + Log::info($request->method() . ' - ' . $request->url() . ": $count queries"); + //Log::info(json_encode($queries)); + } + } + + return $response; + } +} diff --git a/app/Http/Middleware/StartupCheck.php b/app/Http/Middleware/StartupCheck.php index 334f867763..29cf7008af 100644 --- a/app/Http/Middleware/StartupCheck.php +++ b/app/Http/Middleware/StartupCheck.php @@ -124,9 +124,9 @@ class StartupCheck $licenseKey = Input::get('license_key'); $productId = Input::get('product_id'); - $url = (Utils::isNinjaDev() ? SITE_URL : NINJA_APP_URL) . "/claim_license?license_key={$licenseKey}&product_id={$productId}&get_date=true"; + $url = (Utils::isNinjaDev() ? SITE_URL : NINJA_APP_URL) . "/claim_license?license_key={$licenseKey}&product_id={$productId}&get_date=true"; $data = trim(file_get_contents($url)); - + if ($productId == PRODUCT_INVOICE_DESIGNS) { if ($data = json_decode($data)) { foreach ($data as $item) { @@ -181,10 +181,10 @@ class StartupCheck } } } - + // Show message to IE 8 and before users if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/(?i)msie [2-8]/', $_SERVER['HTTP_USER_AGENT'])) { - Session::flash('error', trans('texts.old_browser')); + Session::flash('error', trans('texts.old_browser', ['link' => OUTDATE_BROWSER_URL])); } $response = $next($request); diff --git a/app/Http/routes.php b/app/Http/routes.php index 46fe5cea83..3824b1dc3e 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -60,7 +60,7 @@ Route::group(['middleware' => 'auth:client'], function() { Route::get('client/documents/js/{documents}/{filename}', 'PublicClientController@getDocumentVFSJS'); Route::get('client/documents/{invitation_key}/{documents}/{filename?}', 'PublicClientController@getDocument'); Route::get('client/documents/{invitation_key}/{filename?}', 'PublicClientController@getInvoiceDocumentsZip'); - + Route::get('api/client.quotes', array('as'=>'api.client.quotes', 'uses'=>'PublicClientController@quoteDatatable')); Route::get('api/client.invoices', array('as'=>'api.client.invoices', 'uses'=>'PublicClientController@invoiceDatatable')); Route::get('api/client.recurring_invoices', array('as'=>'api.client.recurring_invoices', 'uses'=>'PublicClientController@recurringInvoiceDatatable')); @@ -735,20 +735,20 @@ if (!defined('CONTACT_EMAIL')) { define('FEATURE_API', 'api'); define('FEATURE_CLIENT_PORTAL_PASSWORD', 'client_portal_password'); define('FEATURE_CUSTOM_URL', 'custom_url'); - + define('FEATURE_MORE_CLIENTS', 'more_clients'); // No trial allowed - + // Whitelabel define('FEATURE_CLIENT_PORTAL_CSS', 'client_portal_css'); define('FEATURE_WHITE_LABEL', 'feature_white_label'); // Enterprise define('FEATURE_DOCUMENTS', 'documents'); - + // No Trial allowed define('FEATURE_USERS', 'users');// Grandfathered for old Pro users define('FEATURE_USER_PERMISSIONS', 'user_permissions'); - + // Pro users who started paying on or before this date will be able to manage users define('PRO_USERS_GRANDFATHER_DEADLINE', '2016-05-15'); @@ -765,7 +765,7 @@ if (!defined('CONTACT_EMAIL')) { define('WEPAY_FEE_PAYER', env('WEPAY_FEE_PAYER', 'payee')); define('WEPAY_APP_FEE_MULTIPLIER', env('WEPAY_APP_FEE_MULTIPLIER', 0.002)); define('WEPAY_APP_FEE_FIXED', env('WEPAY_APP_FEE_MULTIPLIER', 0.00)); - + $creditCards = [ 1 => ['card' => 'images/credit_cards/Test-Visa-Icon.png', 'text' => 'Visa'], 2 => ['card' => 'images/credit_cards/Test-MasterCard-Icon.png', 'text' => 'Master Card'], diff --git a/app/Libraries/OFX.php b/app/Libraries/OFX.php index 721c9f529f..b32e308a42 100644 --- a/app/Libraries/OFX.php +++ b/app/Libraries/OFX.php @@ -27,15 +27,15 @@ class OFX curl_setopt($c, CURLOPT_HTTPHEADER, array('Content-Type: application/x-ofx', 'User-Agent: httpclient')); curl_setopt($c, CURLOPT_POSTFIELDS, $this->request); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); - + $this->response = curl_exec($c); - + if (Utils::isNinjaDev()) { Log::info(print_r($this->response, true)); } - + curl_close($c); - + $tmp = explode('', $this->response); $this->responseHeader = $tmp[0]; $this->responseBody = ''.$tmp[1]; @@ -48,6 +48,7 @@ class OFX return $x; } + public static function closeTags($x) { $x = preg_replace('/\s+/', '', $x); @@ -233,4 +234,3 @@ class Account } } } - diff --git a/app/Libraries/Utils.php b/app/Libraries/Utils.php index dc92f6e651..ee50d23322 100644 --- a/app/Libraries/Utils.php +++ b/app/Libraries/Utils.php @@ -153,11 +153,11 @@ class Utils { return App::getLocale() == 'en'; } - + public static function getLocaleRegion() { - $parts = explode('_', App::getLocale()); - + $parts = explode('_', App::getLocale()); + return count($parts) ? $parts[0] : 'en'; } @@ -285,7 +285,7 @@ class Utils if ($info) { Log::info($error."\n", $data); } else { - Log::error($error."\n", $data); + Log::error($error."\n", $data); } /* @@ -312,12 +312,12 @@ class Utils public static function getFromCache($id, $type) { $cache = Cache::get($type); - + if ( ! $cache) { static::logError("Cache for {$type} is not set"); return null; } - + $data = $cache->filter(function($item) use ($id) { return $item->id == $id; }); @@ -344,7 +344,7 @@ class Utils $decimal = $currency->decimal_separator; $precision = $currency->precision; $code = $currency->code; - $swapSymbol = false; + $swapSymbol = $currency->swap_currency_symbol; if ($countryId && $currencyId == CURRENCY_EURO) { $country = self::getFromCache($countryId, 'countries'); @@ -427,7 +427,12 @@ class Utils public static function toCamelCase($string) { - return lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', $string)))); + return lcfirst(static::toClassCase($string)); + } + + public static function toClassCase($string) + { + return str_replace(' ', '', ucwords(str_replace('_', ' ', $string))); } public static function timestampToDateTimeString($timestamp) diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 316491a535..e626e08549 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -90,15 +90,24 @@ class Expense extends EntityModel { return round($this->amount * $this->exchange_rate, 2); } - + public function toArray() { $array = parent::toArray(); - + if(empty($this->visible) || in_array('converted_amount', $this->visible))$array['converted_amount'] = $this->convertedAmount(); - + return $array; } + + public function scopeBankId($query, $bankdId = null) + { + if ($bankdId) { + $query->whereBankId($bankId); + } + + return $query; + } } Expense::creating(function ($expense) { diff --git a/app/Models/Invitation.php b/app/Models/Invitation.php index becd0197c9..6ea384848f 100644 --- a/app/Models/Invitation.php +++ b/app/Models/Invitation.php @@ -39,7 +39,7 @@ class Invitation extends EntityModel $url = SITE_URL; $iframe_url = $this->account->iframe_url; - + if ($this->account->hasFeature(FEATURE_CUSTOM_URL)) { if ($iframe_url && !$forceOnsite) { return "{$iframe_url}?{$this->invitation_key}"; @@ -47,7 +47,7 @@ class Invitation extends EntityModel $url = Utils::replaceSubdomain($url, $this->account->subdomain); } } - + return "{$url}/{$type}/{$this->invitation_key}"; } @@ -64,7 +64,7 @@ class Invitation extends EntityModel $date = Utils::dateToString($this->$field); $hasValue = true; } - $parts[] = trans('texts.invitation_status.' . $status) . ': ' . $date; + $parts[] = trans('texts.invitation_status_' . $status) . ': ' . $date; } return $hasValue ? implode($parts, '
') : false; diff --git a/app/Ninja/Mailers/ContactMailer.php b/app/Ninja/Mailers/ContactMailer.php index fbebd0c5fd..224d48785a 100644 --- a/app/Ninja/Mailers/ContactMailer.php +++ b/app/Ninja/Mailers/ContactMailer.php @@ -48,9 +48,9 @@ class ContactMailer extends Mailer $response = null; if ($client->trashed()) { - return trans('texts.email_errors.inactive_client'); + return trans('texts.email_error_inactive_client'); } elseif ($invoice->trashed()) { - return trans('texts.email_errors.inactive_invoice'); + return trans('texts.email_error_inactive_invoice'); } $account->loadLocalizationSettings($client); @@ -62,23 +62,23 @@ class ContactMailer extends Mailer if ($account->attatchPDF() && !$pdfString) { $pdfString = $invoice->getPDFString(); } - + $documentStrings = array(); if ($account->document_email_attachment && $invoice->hasDocuments()) { $documents = $invoice->documents; - + foreach($invoice->expenses as $expense){ $documents = $documents->merge($expense->documents); } $documents = $documents->sortBy('size'); - + $size = 0; $maxSize = MAX_EMAIL_DOCUMENTS_SIZE * 1000; foreach($documents as $document){ $size += $document->size; if($size > $maxSize)break; - + $documentStrings[] = array( 'name' => $document->name, 'data' => $document->getRaw(), @@ -92,7 +92,7 @@ class ContactMailer extends Mailer $sent = true; } } - + $account->loadLocalizationSettings(); if ($sent === true) { @@ -110,7 +110,7 @@ class ContactMailer extends Mailer { $client = $invoice->client; $account = $invoice->account; - + if (Auth::check()) { $user = Auth::user(); } else { @@ -121,13 +121,13 @@ class ContactMailer extends Mailer } if (!$user->email || !$user->registered) { - return trans('texts.email_errors.user_unregistered'); + return trans('texts.email_error_user_unregistered'); } elseif (!$user->confirmed) { - return trans('texts.email_errors.user_unconfirmed'); + return trans('texts.email_error_user_unconfirmed'); } elseif (!$invitation->contact->email) { - return trans('texts.email_errors.invalid_contact_email'); + return trans('texts.email_error_invalid_contact_email'); } elseif ($invitation->contact->trashed()) { - return trans('texts.email_errors.inactive_contact'); + return trans('texts.email_error_inactive_contact'); } $variables = [ @@ -136,7 +136,7 @@ class ContactMailer extends Mailer 'invitation' => $invitation, 'amount' => $invoice->getRequestedAmount() ]; - + if (empty($invitation->contact->password) && $account->hasFeature(FEATURE_CLIENT_PORTAL_PASSWORD) && $account->enable_portal_password && $account->send_portal_password) { // The contact needs a password $variables['password'] = $password = $this->generatePassword(); @@ -164,7 +164,7 @@ class ContactMailer extends Mailer $subject = $this->templateService->processVariables($subject, $variables); $fromEmail = $user->email; $view = $account->getTemplateView(ENTITY_INVOICE); - + $response = $this->sendTo($invitation->contact->email, $fromEmail, $account->getDisplayName(), $subject, $view, $data); if ($response === true) { @@ -173,7 +173,7 @@ class ContactMailer extends Mailer return $response; } } - + protected function generatePassword($length = 9) { $sets = array( @@ -192,7 +192,7 @@ class ContactMailer extends Mailer for($i = 0; $i < $length - count($sets); $i++) $password .= $all[array_rand($all)]; $password = str_shuffle($password); - + return $password; } @@ -256,7 +256,7 @@ class ContactMailer extends Mailer { $view = 'license_confirmation'; $subject = trans('texts.payment_subject'); - + if ($productId == PRODUCT_ONE_CLICK_INSTALL) { $license = "Softaculous install license: $license"; } elseif ($productId == PRODUCT_INVOICE_DESIGNS) { @@ -264,13 +264,13 @@ class ContactMailer extends Mailer } elseif ($productId == PRODUCT_WHITE_LABEL) { $license = "White label license: $license"; } - + $data = [ 'client' => $name, 'amount' => Utils::formatMoney($amount, DEFAULT_CURRENCY, DEFAULT_COUNTRY), 'license' => $license ]; - + $this->sendTo($email, CONTACT_EMAIL, CONTACT_NAME, $subject, $view, $data); } } diff --git a/app/Ninja/Repositories/AccountRepository.php b/app/Ninja/Repositories/AccountRepository.php index 38753dde9b..42e04cefe7 100644 --- a/app/Ninja/Repositories/AccountRepository.php +++ b/app/Ninja/Repositories/AccountRepository.php @@ -28,7 +28,7 @@ class AccountRepository { $company = new Company(); $company->save(); - + $account = new Account(); $account->ip = Request::getClientIp(); $account->account_key = str_random(RANDOM_KEY_LENGTH); @@ -87,7 +87,7 @@ class AccountRepository private function getAccountSearchData($user) { $account = $user->account; - + $data = [ 'clients' => [], 'contacts' => [], @@ -102,7 +102,7 @@ class AccountRepository if ($account->custom_client_label2) { $data[$account->custom_client_label2] = []; } - + if ($user->hasPermission('view_all')) { $clients = Client::scope() ->with('contacts', 'invoices') @@ -114,7 +114,7 @@ class AccountRepository $query->where('user_id', '=', $user->id); }])->get(); } - + foreach ($clients as $client) { if ($client->name) { $data['clients'][] = [ @@ -122,20 +122,20 @@ class AccountRepository 'tokens' => $client->name, 'url' => $client->present()->url, ]; - } + } if ($client->custom_value1) { $data[$account->custom_client_label1][] = [ 'value' => "{$client->custom_value1}: " . $client->getDisplayName(), 'tokens' => $client->custom_value1, - 'url' => $client->present()->url, + 'url' => $client->present()->url, ]; - } + } if ($client->custom_value2) { $data[$account->custom_client_label2][] = [ 'value' => "{$client->custom_value2}: " . $client->getDisplayName(), 'tokens' => $client->custom_value2, - 'url' => $client->present()->url, + 'url' => $client->present()->url, ]; } @@ -242,9 +242,9 @@ class AccountRepository if ($credit < 0) { $credit = 0; } - + $plan_cost = Account::$plan_prices[$plan][$term]; - + $account = $this->getNinjaAccount(); $lastInvoice = Invoice::withTrashed()->whereAccountId($account->id)->orderBy('public_id', 'DESC')->first(); $publicId = $lastInvoice ? ($lastInvoice->public_id + 1) : 1; @@ -266,28 +266,28 @@ class AccountRepository $credit_item->product_key = trans('texts.plan_credit_product'); $invoice->invoice_items()->save($credit_item); } - + $item = InvoiceItem::createNew($invoice); $item->qty = 1; $item->cost = $plan_cost; $item->notes = trans("texts.{$plan}_plan_{$term}_description"); - + // Don't change this without updating the regex in PaymentService->createPayment() $item->product_key = 'Plan - '.ucfirst($plan).' ('.ucfirst($term).')'; $invoice->invoice_items()->save($item); - + if ($pending_monthly) { $term_end = $term == PLAN_MONTHLY ? date_create('+1 month') : date_create('+1 year'); $pending_monthly_item = InvoiceItem::createNew($invoice); $item->qty = 1; $pending_monthly_item->cost = 0; $pending_monthly_item->notes = trans("texts.plan_pending_monthly", array('date', Utils::dateToString($term_end))); - + // Don't change this without updating the text in PaymentService->createPayment() $pending_monthly_item->product_key = 'Pending Monthly'; $invoice->invoice_items()->save($pending_monthly_item); } - + $invitation = new Invitation(); $invitation->account_id = $account->id; @@ -328,12 +328,14 @@ class AccountRepository $user->notify_paid = true; $account->users()->save($user); - $accountGateway = new AccountGateway(); - $accountGateway->user_id = $user->id; - $accountGateway->gateway_id = NINJA_GATEWAY_ID; - $accountGateway->public_id = 1; - $accountGateway->setConfig(json_decode(env(NINJA_GATEWAY_CONFIG))); - $account->account_gateways()->save($accountGateway); + if ($config = env(NINJA_GATEWAY_CONFIG)) { + $accountGateway = new AccountGateway(); + $accountGateway->user_id = $user->id; + $accountGateway->gateway_id = NINJA_GATEWAY_ID; + $accountGateway->public_id = 1; + $accountGateway->setConfig(json_decode($config)); + $account->account_gateways()->save($accountGateway); + } } return $account; @@ -356,11 +358,11 @@ class AccountRepository $client->user_id = $ninjaUser->id; $client->currency_id = 1; } - + foreach (['name', 'address1', 'address2', 'city', 'state', 'postal_code', 'country_id', 'work_phone', 'language_id', 'vat_number'] as $field) { $client->$field = $account->$field; } - + $client->save(); if ($clientExists) { @@ -372,7 +374,7 @@ class AccountRepository $contact->public_id = $account->id; $contact->is_primary = true; } - + $user = $account->getPrimaryUser(); foreach (['first_name', 'last_name', 'email', 'phone'] as $field) { $contact->$field = $user->$field; @@ -513,7 +515,7 @@ class AccountRepository if ($with) { $users->with($with); } - + return $users->get(); } @@ -565,7 +567,7 @@ class AccountRepository $record->save(); $users = $this->getUserAccounts($record); - + // Pick the primary user foreach ($users as $user) { if (!$user->public_id) { @@ -573,16 +575,16 @@ class AccountRepository if(empty($primaryUser)) { $useAsPrimary = true; } - + $planDetails = $user->account->getPlanDetails(false, false); $planLevel = 0; - + if ($planDetails) { $planLevel = 1; if ($planDetails['plan'] == PLAN_ENTERPRISE) { $planLevel = 2; } - + if (!$useAsPrimary && ( $planLevel > $primaryUserPlanLevel || ($planLevel == $primaryUserPlanLevel && $planDetails['expires'] > $primaryUserPlanExpires) @@ -590,7 +592,7 @@ class AccountRepository $useAsPrimary = true; } } - + if ($useAsPrimary) { $primaryUser = $user; $primaryUserPlanLevel = $planLevel; @@ -600,14 +602,14 @@ class AccountRepository } } } - + // Merge other companies into the primary user's company if (!empty($primaryUser)) { foreach ($users as $user) { if ($user == $primaryUser || $user->public_id) { continue; } - + if ($user->account->company_id != $primaryUser->account->company_id) { foreach ($user->account->company->accounts as $account) { $account->company_id = $primaryUser->account->company_id; @@ -636,9 +638,9 @@ class AccountRepository $userAccount->removeUserId($userId); $userAccount->save(); } - + $user = User::whereId($userId)->first(); - + if (!$user->public_id && $user->account->company->accounts->count() > 1) { $company = Company::create(); $company->save(); @@ -660,7 +662,7 @@ class AccountRepository ->withTrashed() ->first(); } while ($match); - + return $code; } @@ -668,7 +670,7 @@ class AccountRepository { $name = trim($name) ?: 'TOKEN'; $users = $this->findUsers($user); - + foreach ($users as $user) { if ($token = AccountToken::whereUserId($user->id)->whereName($name)->first()) { continue; diff --git a/app/Services/BankAccountService.php b/app/Services/BankAccountService.php index 72aada6e3f..cd8776c8b1 100644 --- a/app/Services/BankAccountService.php +++ b/app/Services/BankAccountService.php @@ -34,14 +34,10 @@ class BankAccountService extends BaseService return $this->bankAccountRepo; } - public function loadBankAccounts($bankId, $username, $password, $includeTransactions = true) + private function getExpenses($bankId = null) { - if (! $bankId || ! $username || ! $password) { - return false; - } - $expenses = Expense::scope() - ->whereBankId($bankId) + ->bankId($bankId) ->where('transaction_id', '!=', '') ->withTrashed() ->get(['transaction_id']) @@ -50,6 +46,16 @@ class BankAccountService extends BaseService return $val['transaction_id']; }, $expenses)); + return $expenses; + } + + public function loadBankAccounts($bankId, $username, $password, $includeTransactions = true) + { + if (! $bankId || ! $username || ! $password) { + return false; + } + + $expenses = $this->getExpenses(); $vendorMap = $this->createVendorMap(); $bankAccounts = BankSubaccount::scope() ->whereHas('bank_account', function ($query) use ($bankId) { @@ -106,44 +112,60 @@ class BankAccountService extends BaseService $obj->balance = Utils::formatMoney($account->ledgerBalance, CURRENCY_DOLLAR); if ($includeTransactions) { - $ofxParser = new \OfxParser\Parser(); - $ofx = $ofxParser->loadFromString($account->response); - - $obj->start_date = $ofx->BankAccount->Statement->startDate; - $obj->end_date = $ofx->BankAccount->Statement->endDate; - $obj->transactions = []; - - foreach ($ofx->BankAccount->Statement->transactions as $transaction) { - // ensure transactions aren't imported as expenses twice - if (isset($expenses[$transaction->uniqueId])) { - continue; - } - if ($transaction->amount >= 0) { - continue; - } - - // if vendor has already been imported use current name - $vendorName = trim(substr($transaction->name, 0, 20)); - $key = strtolower($vendorName); - $vendor = isset($vendorMap[$key]) ? $vendorMap[$key] : null; - - $transaction->vendor = $vendor ? $vendor->name : $this->prepareValue($vendorName); - $transaction->info = $this->prepareValue(substr($transaction->name, 20)); - $transaction->memo = $this->prepareValue($transaction->memo); - $transaction->date = \Auth::user()->account->formatDate($transaction->date); - $transaction->amount *= -1; - $obj->transactions[] = $transaction; - } + $obj = $this->parseTransactions($obj, $account->response, $expenses, $vendorMap); } return $obj; } + private function parseTransactions($account, $data, $expenses, $vendorMap) + { + $ofxParser = new \OfxParser\Parser(); + $ofx = $ofxParser->loadFromString($data); + + $account->start_date = $ofx->BankAccount->Statement->startDate; + $account->end_date = $ofx->BankAccount->Statement->endDate; + $account->transactions = []; + + foreach ($ofx->BankAccount->Statement->transactions as $transaction) { + // ensure transactions aren't imported as expenses twice + if (isset($expenses[$transaction->uniqueId])) { + continue; + } + if ($transaction->amount >= 0) { + continue; + } + + // if vendor has already been imported use current name + $vendorName = trim(substr($transaction->name, 0, 20)); + $key = strtolower($vendorName); + $vendor = isset($vendorMap[$key]) ? $vendorMap[$key] : null; + + $transaction->vendor = $vendor ? $vendor->name : $this->prepareValue($vendorName); + $transaction->info = $this->prepareValue(substr($transaction->name, 20)); + $transaction->memo = $this->prepareValue($transaction->memo); + $transaction->date = \Auth::user()->account->formatDate($transaction->date); + $transaction->amount *= -1; + $account->transactions[] = $transaction; + } + + return $account; + } + private function prepareValue($value) { return ucwords(strtolower(trim($value))); } + public function parseOFX($data) + { + $account = new stdClass; + $expenses = $this->getExpenses(); + $vendorMap = $this->createVendorMap(); + + return $this->parseTransactions($account, $data, $expenses, $vendorMap); + } + private function createVendorMap() { $vendorMap = []; @@ -158,7 +180,7 @@ class BankAccountService extends BaseService return $vendorMap; } - public function importExpenses($bankId, $input) + public function importExpenses($bankId = 0, $input) { $vendorMap = $this->createVendorMap(); $countVendors = 0; @@ -178,7 +200,7 @@ class BankAccountService extends BaseService $field => $info, 'name' => $vendorName, 'transaction_name' => $transaction['vendor_orig'], - 'vendorcontact' => [], + 'vendor_contact' => [], ]); $vendorMap[$key] = $vendor; $vendorMap[$transaction['vendor_orig']] = $vendor; diff --git a/composer.json b/composer.json index 65d898e585..5921bef056 100644 --- a/composer.json +++ b/composer.json @@ -74,6 +74,8 @@ "barracudanetworks/archivestream-php": "^1.0", "omnipay/braintree": "~2.0@dev", "gatepay/FedACHdir": "dev-master@dev", + "websight/l5-google-cloud-storage": "^1.0", + "fzaninotto/faker": "^1.5" "wepay/php-sdk": "^0.2", "collizo4sky/omnipay-wepay": "dev-additional-calls" }, @@ -82,7 +84,6 @@ "phpspec/phpspec": "~2.1", "codeception/codeception": "*", "codeception/c3": "~2.0", - "fzaninotto/faker": "^1.5", "symfony/dom-crawler": "~3.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index d694f04f69..c218f45b89 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "b2471aea1af5ef67a1379ad95b5138f7", - "content-hash": "df30a311df0341933d4ff2c3aa5974a6", + "hash": "392a09a61498eddc166665b7cdda1dde", + "content-hash": "1f86d83e1ef0bce86debfb45120e6db8", "packages": [ { "name": "agmscode/omnipay-agms", @@ -505,7 +505,7 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/f7b31bdbdceaaea930c71df20e4180b0b7172b4a", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/35ebf3a2ba9443e11fbdb9066cc363ec7b2245e4", "reference": "e97ed532f09e290b91ff7713b785ed7ab11d0812", "shasum": "" }, @@ -746,7 +746,7 @@ "laravel" ], "abandoned": "OpenSkill/Datatable", - "time": "2015-11-23 21:33:41" + "time": "2015-04-29 07:00:36" }, { "name": "classpreloader/classpreloader", @@ -2011,6 +2011,54 @@ ], "time": "2015-01-16 08:41:13" }, + { + "name": "fzaninotto/faker", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123", + "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123", + "shasum": "" + }, + "require": { + "php": "^5.3.3|^7.0" + }, + "require-dev": { + "ext-intl": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "extra": { + "branch-alias": [] + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "time": "2016-04-29 12:21:54" + }, { "name": "gatepay/FedACHdir", "version": "dev-master", @@ -2020,7 +2068,50 @@ "reference": "origin/master" }, "type": "library", - "time": "2016-04-29 12:01:22" + "time": "2016-05-09 12:00:35" + }, + { + "name": "google/apiclient", + "version": "1.1.7", + "source": { + "type": "git", + "url": "https://github.com/google/google-api-php-client.git", + "reference": "400f250a30ae1dd4c4a0a4f750fe973fc70e6311" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/google/google-api-php-client/zipball/400f250a30ae1dd4c4a0a4f750fe973fc70e6311", + "reference": "400f250a30ae1dd4c4a0a4f750fe973fc70e6311", + "shasum": "" + }, + "require": { + "php": ">=5.2.1" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*", + "squizlabs/php_codesniffer": "~2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Client library for Google APIs", + "homepage": "http://developers.google.com/api-client-library/php", + "keywords": [ + "google" + ], + "time": "2016-02-02 18:50:42" }, { "name": "guzzle/guzzle", @@ -4345,7 +4436,7 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-braintree/zipball/e4b4027c6a9e6443833490d0d51fd530f0a19f62", + "url": "https://api.github.com/repos/thephpleague/omnipay-braintree/zipball/a0c8b2152a8a5b7e14572b71d860f2ec26f20a87", "reference": "e4b4027c6a9e6443833490d0d51fd530f0a19f62", "shasum": "" }, @@ -5790,7 +5881,7 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-stripe/zipball/0ea7a647ee01e29c152814e11c2ea6307e5b0db9", + "url": "https://api.github.com/repos/thephpleague/omnipay-stripe/zipball/88badbda83f1c16e2d94c41a869be37d9d9fef5a", "reference": "0ea7a647ee01e29c152814e11c2ea6307e5b0db9", "shasum": "" }, @@ -6610,6 +6701,53 @@ ], "time": "2015-08-12 08:09:37" }, + { + "name": "superbalist/flysystem-google-storage", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/Superbalist/flysystem-google-storage.git", + "reference": "441a8529680986a2d2063a268ee2918f51db1b79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Superbalist/flysystem-google-storage/zipball/441a8529680986a2d2063a268ee2918f51db1b79", + "reference": "441a8529680986a2d2063a268ee2918f51db1b79", + "shasum": "" + }, + "require": { + "google/apiclient": "~1.1|^2.0.0@RC", + "league/flysystem": "~1.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Superbalist\\Flysystem\\GoogleStorage\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Superbalist.com a division of Takealot Online (Pty) Ltd", + "email": "info@superbalist.com" + } + ], + "description": "Flysystem adapter for Google Cloud Storage", + "time": "2016-04-12 14:56:22" + }, { "name": "swiftmailer/swiftmailer", "version": "v5.4.1", @@ -8057,6 +8195,49 @@ ], "time": "2016-02-25 10:29:59" }, + { + "name": "websight/l5-google-cloud-storage", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/websightgmbh/l5-google-cloud-storage.git", + "reference": "c1cac9985dfce60010234c9dca127f3543d2d594" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/websightgmbh/l5-google-cloud-storage/zipball/c1cac9985dfce60010234c9dca127f3543d2d594", + "reference": "c1cac9985dfce60010234c9dca127f3543d2d594", + "shasum": "" + }, + "require": { + "illuminate/support": "~5.0.17|5.1.*|5.2.*", + "superbalist/flysystem-google-storage": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Websight\\GcsProvider\\": "src/Websight/GcsProvider/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cedric Ziel", + "email": "ziel@websight.de" + } + ], + "description": "Laravel 5 Flysystem Google Cloud Storage Service Provider", + "homepage": "https://github.com/websightgmbh/l5-google-cloud-storage", + "keywords": [ + "Flysystem", + "laravel", + "laravel5" + ], + "time": "2016-03-04 11:57:00" + }, { "name": "wepay/php-sdk", "version": "0.2.7", @@ -8908,58 +9089,6 @@ ], "time": "2015-12-31 15:58:49" }, - { - "name": "fzaninotto/faker", - "version": "v1.5.0", - "source": { - "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "d0190b156bcca848d401fb80f31f504f37141c8d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d", - "reference": "d0190b156bcca848d401fb80f31f504f37141c8d", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5" - }, - "suggest": { - "ext-intl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5.x-dev" - } - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], - "time": "2015-05-29 06:29:14" - }, { "name": "phpspec/php-diff", "version": "v1.0.2", diff --git a/config/app.php b/config/app.php index d9aa4ef000..bafe92b81d 100644 --- a/config/app.php +++ b/config/app.php @@ -153,6 +153,7 @@ return [ 'Laravel\Socialite\SocialiteServiceProvider', 'Jlapp\Swaggervel\SwaggervelServiceProvider', 'Maatwebsite\Excel\ExcelServiceProvider', + Websight\GcsProvider\CloudStorageServiceProvider::class, /* * Application Service Providers... @@ -211,6 +212,7 @@ return [ 'Schema' => 'Illuminate\Support\Facades\Schema', 'Seeder' => 'Illuminate\Database\Seeder', 'Session' => 'Illuminate\Support\Facades\Session', + 'Storage' => 'Illuminate\Support\Facades\Storage', 'Str' => 'Illuminate\Support\Str', 'URL' => 'Illuminate\Support\Facades\URL', 'Validator' => 'Illuminate\Support\Facades\Validator', diff --git a/config/filesystems.php b/config/filesystems.php index da16e0e167..68e35a4986 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -47,12 +47,12 @@ return [ 'driver' => 'local', 'root' => storage_path().'/app', ], - + 'logos' => [ 'driver' => 'local', 'root' => env('LOGO_PATH', public_path().'/logo'), ], - + 'documents' => [ 'driver' => 'local', 'root' => storage_path().'/documents', @@ -76,6 +76,13 @@ return [ 'url_type' => env('RACKSPACE_URL_TYPE', 'publicURL') ], + 'gcs' => [ + 'driver' => 'gcs', + 'service_account' => env('GCS_USERNAME', ''), + 'service_account_certificate' => storage_path() . '/credentials.p12', + 'service_account_certificate_password' => env('GCS_PASSWORD', ''), + 'bucket' => env('GCS_BUCKET', 'cloud-storage-bucket'), + ], ], ]; diff --git a/database/migrations/2016_05_16_102925_add_swap_currency_symbol_to_currency.php b/database/migrations/2016_05_16_102925_add_swap_currency_symbol_to_currency.php new file mode 100644 index 0000000000..d331b54cf7 --- /dev/null +++ b/database/migrations/2016_05_16_102925_add_swap_currency_symbol_to_currency.php @@ -0,0 +1,53 @@ +boolean('swap_currency_symbol')->default(false); + }); + + Schema::table('expenses', function(Blueprint $table) { + $table->string('tax_name1')->nullable(); + $table->decimal('tax_rate1', 13, 3); + $table->string('tax_name2')->nullable(); + $table->decimal('tax_rate2', 13, 3); + }); + + Schema::table('account_gateways', function(Blueprint $table) { + $table->boolean('require_cvv')->default(true)->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('currencies', function(Blueprint $table) { + $table->dropColumn('swap_currency_symbol'); + }); + + Schema::table('expenses', function(Blueprint $table) { + $table->dropColumn('tax_name1'); + $table->dropColumn('tax_rate1'); + $table->dropColumn('tax_name2'); + $table->dropColumn('tax_rate2'); + }); + + Schema::table('account_gateways', function(Blueprint $table) { + $table->dropColumn('require_cvv'); + }); + } +} diff --git a/database/seeds/CurrenciesSeeder.php b/database/seeds/CurrenciesSeeder.php index 857dbe6284..f88e1b12cc 100644 --- a/database/seeds/CurrenciesSeeder.php +++ b/database/seeds/CurrenciesSeeder.php @@ -58,7 +58,7 @@ class CurrenciesSeeder extends Seeder ['name' => 'Maldivian Rufiyaa', 'code' => 'MVR', 'symbol' => '', 'precision' => '2', 'thousand_separator' => ',', 'decimal_separator' => '.'], ['name' => 'Costa Rican Colón', 'code' => 'CRC', 'symbol' => '', 'precision' => '2', 'thousand_separator' => ',', 'decimal_separator' => '.'], ['name' => 'Pakistani Rupee', 'code' => 'PKR', 'symbol' => 'Rs ', 'precision' => '0', 'thousand_separator' => ',', 'decimal_separator' => '.'], - ['name' => 'Polish Zloty', 'code' => 'PLN', 'symbol' => 'zł', 'precision' => '2', 'thousand_separator' => ' ', 'decimal_separator' => ','], + ['name' => 'Polish Zloty', 'code' => 'PLN', 'symbol' => 'zł', 'precision' => '2', 'thousand_separator' => ' ', 'decimal_separator' => ',', 'swap_currency_symbol' => true], ]; foreach ($currencies as $currency) { diff --git a/readme.md b/readme.md index e435d9e906..6fb935ea4a 100644 --- a/readme.md +++ b/readme.md @@ -70,6 +70,7 @@ We're using the [Git-Flow](http://nvie.com/posts/a-successful-git-branching-mode * [patricktalmadge/bootstrapper](https://github.com/patricktalmadge/bootstrapper) - Laravel Twitter Bootstrap Bundle * [danielfarrell/bootstrap-combobox](https://github.com/danielfarrell/bootstrap-combobox) - A combobox plugin * [eternicode/bootstrap-datepicker](https://github.com/eternicode/bootstrap-datepicker) - A datepicker for @twitter bootstrap +* [xdan/datetimepicker](https://github.com/xdan/datetimepicker) - jQuery Plugin Date and Time Picker * [twitter/typeahead.js](https://github.com/twitter/typeahead.js) - a fast and fully-featured autocomplete library * [krisk/Fuse](https://github.com/krisk/Fuse) - Lightweight fuzzy-search, in JavaScript * [knockout/knockout](https://github.com/knockout/knockout) - Knockout makes it easier to create rich, responsive UIs with JavaScript diff --git a/resources/lang/cs/texts.php b/resources/lang/cs/texts.php index 97771446b4..fb433f7ec1 100644 --- a/resources/lang/cs/texts.php +++ b/resources/lang/cs/texts.php @@ -517,8 +517,8 @@ $LANG = array( 'duplicate_post' => 'Varování: předchozí stránka byla odeslána dvakrát. Druhé odeslání bylo ignorováno.', 'view_documentation' => 'Zobrazit dokumentaci', 'app_title' => 'Open source online fakrurace', - 'app_description' => 'Invoice Ninja je bezplatné open-source řešení pro fakturaci a účtování zákazníkům. - S Invoice Ninja, můžete jednoduše vytvářet a posílat hezké faktury z jakéhokoli zařízení, které má přístup na web. Vaši klienti si mohou faktury + 'app_description' => 'Invoice Ninja je bezplatné open-source řešení pro fakturaci a účtování zákazníkům. + S Invoice Ninja, můžete jednoduše vytvářet a posílat hezké faktury z jakéhokoli zařízení, které má přístup na web. Vaši klienti si mohou faktury vytisknout, stáhnout jako PDF nebo Vám rovnou online zaplatit.', 'rows' => 'řádky', 'www' => 'www', @@ -913,7 +913,7 @@ $LANG = array( 'archive_payment_term' => 'Archivovat platební podmínky', 'recurring_due_dates' => 'Datumy splatnosti pravidelných faktur', 'recurring_due_date_help' => '

Automaticky nastavit datum splatnosti na fakturách

-

U faktury s měsíčním nebo ročním cyklem bude nastavena měsíční splatnost v dalším měsíci. Invoices on a monthly or yearly cycle set to be due on or before the day they are created will be due the next month. +

U faktury s měsíčním nebo ročním cyklem bude nastavena měsíční splatnost v dalším měsíci. Invoices on a monthly or yearly cycle set to be due on or before the day they are created will be due the next month. Faktury se splatností k 29. nebo 30 v měsících, které tyto dny nemají se splatnost nastaví k poslednímu dni v měsíci.

Faktury s týdenním cyklem mají jako výchozí týdenní splatnost.

Například:

@@ -995,40 +995,26 @@ $LANG = array( 'overdue' => 'Po termínu', - 'white_label_text' => 'Objednejte si white label licenci na JEDEN ROK $'.WHITE_LABEL_PRICE.' pro odstranění značky Invoice Ninja z klientského portálu a stránek podpory.', - 'user_email_footer' => 'Pro úpravu emailových notifikací prosím navštivte '.SITE_URL.'/settings/notifications', - 'reset_password_footer' => 'Pokud jste nepožádali o resetování hesla, prosím kontaktujte naši podporu na: '.CONTACT_EMAIL, - 'limit_users' => 'Omlouváme se, to už přesáhlo limit '.MAX_NUM_USERS.' uživatelů', - 'more_designs_self_host_header' => 'Získejte 6 dalších vzhledů faktur jen za $'.INVOICE_DESIGNS_PRICE, - 'old_browser' => 'Prosím použijte novější prohlížeč', - 'white_label_custom_css' => ':link za $'.WHITE_LABEL_PRICE.' získáte volitelné úpravy a pomůžete podpoře našeho projektu.', - 'bank_accounts_help' => 'Připojte si bankovní účet pro automatický import nákladů a tvorbu dodavatelů. K dispozici pro American Express přes 400 amerických bank.', - 'security' => [ - 'too_many_attempts' => 'Mnoho přístupů. Zkuste to prosím za několik minut.', - 'wrong_credentials' => 'Neplatný email nebo heslo.', - 'confirmation' => 'Váš účet byl potvrzen!', - 'wrong_confirmation' => 'Chybný potvrzovací kód.', - 'password_forgot' => 'Informace týkající se resetování hesla byla odeslána na Váš email.', - 'password_reset' => 'Heslo bylo změněno úspěšně.', - 'wrong_password_reset' => 'Neplatné heslo. Zkuste znovu', - ], - 'pro_plan' => [ - 'remove_logo' => ':link pro odstranění loga Invoice Ninja připojením se k profi plánu', - 'remove_logo_link' => 'Klikněte zde', - ], - 'invitation_status' => [ - 'sent' => 'Email odeslán', - 'opened' => 'Email otevřen', - 'viewed' => 'Faktura zobrazena', - ], - 'email_errors' => [ - 'inactive_client' => 'Emaily nemohou být odeslány neaktivním klientům', - 'inactive_contact' => 'Emaily nemohou být odeslány neaktivním kontaktům', - 'inactive_invoice' => 'Emaily nemohou být odeslány k neaktivním fakturám', - 'user_unregistered' => 'Pro odesílání emailů si prosím zaregistrujte účet', - 'user_unconfirmed' => 'Pro posílání emailů potvrďte prosím Váš účet.', - 'invalid_contact_email' => 'Neplatný kontaktní email', - ], + 'white_label_text' => 'Objednejte si white label licenci na JEDEN ROK $:price pro odstranění značky Invoice Ninja z klientského portálu a stránek podpory.', + 'user_email_footer' => 'Pro úpravu emailových notifikací prosím navštivte :link', + 'reset_password_footer' => 'Pokud jste nepožádali o resetování hesla, prosím kontaktujte naši podporu na: :email', + 'limit_users' => 'Omlouváme se, to už přesáhlo limit :limit uživatelů', + 'more_designs_self_host_header' => 'Získejte 6 dalších vzhledů faktur jen za $:price', + 'old_browser' => 'Prosím použijte novější prohlížeč', + 'white_label_custom_css' => ':link za $:price získáte volitelné úpravy a pomůžete podpoře našeho projektu.', + 'bank_accounts_help' => 'Připojte si bankovní účet pro automatický import nákladů a tvorbu dodavatelů. K dispozici pro American Express přes 400 amerických bank.', + + 'pro_plan_remove_logo' => ':link pro odstranění loga Invoice Ninja připojením se k profi plánu', + 'pro_plan_remove_logo_link' => 'Klikněte zde', + 'invitation_status_sent' => 'Email odeslán', + 'invitation_status_opened' => 'Email otevřen', + 'invitation_status_viewed' => 'Faktura zobrazena', + 'email_error_inactive_client' => 'Emaily nemohou být odeslány neaktivním klientům', + 'email_error_inactive_contact' => 'Emaily nemohou být odeslány neaktivním kontaktům', + 'email_error_inactive_invoice' => 'Emaily nemohou být odeslány k neaktivním fakturám', + 'email_error_user_unregistered' => 'Pro odesílání emailů si prosím zaregistrujte účet', + 'email_error_user_unconfirmed' => 'Pro posílání emailů potvrďte prosím Váš účet.', + 'email_error_invalid_contact_email' => 'Neplatný kontaktní email', 'navigation' => 'Navigace', 'list_invoices' => 'Seznam faktur', @@ -1059,14 +1045,14 @@ $LANG = array( 'enable_portal_password_help'=>'Umožní Vám nastavit heslo pro každý kontakt. Pokud heslo nastavíte, tak kontakt ho bude pro zobrazení faktury vždy použít.', 'send_portal_password'=>'Generovat heslo automaticky', 'send_portal_password_help'=>'Pokud heslo není nastaveno, bude vygenerováno a zasláno spolu s první fakturou.', - + 'expired' => 'Expirované', 'invalid_card_number' => 'Číslo platební karty není platné.', 'invalid_expiry' => 'Datum expirace není platné.', 'invalid_cvv' => 'CVV není platné.', 'cost' => 'Cena', 'create_invoice_for_sample' => 'Poznámka: vytvořte si první fakturu a zde si ji prohlédněte.', - + // User Permissions 'owner' => 'Vlastník', 'administrator' => 'Administrátor', @@ -1084,8 +1070,8 @@ $LANG = array( 'create_all_help' => 'Povolit uživatelům měnit záznamy', 'view_all_help' => 'Povolit uživatelům zobrazit záznamy, které nevytvořili', 'edit_all_help' => 'Povolit uživatelům měnit záznamy, které nevytvořili', - 'view_payment' => 'Zobrazit platbu', - + 'view_payment' => 'Zobrazit platbu', + 'january' => 'Leden', 'february' => 'Únor', 'march' => 'Březen', @@ -1098,7 +1084,7 @@ $LANG = array( 'october' => 'Říjen', 'november' => 'Listopad', 'december' => 'Prosinec', - + // Documents 'documents_header' => 'Documents:', 'email_documents_header' => 'Documents:', @@ -1111,17 +1097,15 @@ $LANG = array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1130,11 +1114,11 @@ $LANG = array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1164,9 +1148,9 @@ $LANG = array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1186,7 +1170,7 @@ $LANG = array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - + ); return $LANG; diff --git a/resources/lang/da/texts.php b/resources/lang/da/texts.php index b82e99ffb9..5dcc368a45 100644 --- a/resources/lang/da/texts.php +++ b/resources/lang/da/texts.php @@ -262,7 +262,7 @@ return array( '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', + 'user_email_footer' => 'For at justere varslings indstillingene besøg venligst :link', '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', @@ -271,7 +271,7 @@ return array( '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, + 'reset_password_footer' => 'Hvis du ikke bad om at få nulstillet din adgangskode kontakt venligst kundeservice: :email', // Payment page 'secure_payment' => 'Sikker betaling', @@ -280,22 +280,9 @@ return array( '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', - ], + 'pro_plan_remove_logo' => ':link for at fjerne Invoice Ninja-logoet, opgrader til en Pro Plan', + 'pro_plan_remove_logo_link' => 'Klik her', 'logout' => 'Log ud', 'sign_up_to_save' => 'Registrer dig for at gemme dit arbejde', @@ -419,7 +406,7 @@ return array( 'active' => 'Aktiv', 'pending' => 'Afventer', 'deleted_user' => 'Bruger slettet', - 'limit_users' => 'Desværre, dette vil overstige grænsen på '.MAX_NUM_USERS.' brugere', + 'limit_users' => 'Desværre, dette vil overstige grænsen på :limit 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?', @@ -453,7 +440,7 @@ return array( '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_header' => 'Få 6 flere faktura designs for kun $:price', 'more_designs_self_host_text' => '', 'buy' => 'Køb', 'bought_designs' => 'Yderligere faktura designs tilføjet', @@ -704,7 +691,7 @@ return array( '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', + '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', @@ -800,11 +787,10 @@ return array( 'invoice_quote_number' => 'Invoice and Quote Numbers', 'invoice_charges' => 'Invoice Charges', - 'invitation_status' => [ - 'sent' => 'Email Sent', - 'opened' => 'Email Openend', - 'viewed' => 'Invoice Viewed', - ], + 'invitation_status_sent' => 'Email Sent', + 'invitation_status_opened' => 'Email Openend', + 'invitation_status_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.', @@ -926,14 +912,12 @@ return array( 'no_mapper' => 'No valid mapping for file', 'invalid_csv_header' => 'Invalid CSV Header', - 'email_errors' => [ - 'inactive_client' => 'Emails can not be sent to inactive clients', - 'inactive_contact' => 'Emails can not be sent to inactive contacts', - 'inactive_invoice' => 'Emails can not be sent to inactive invoices', - 'user_unregistered' => 'Please register your account to send emails', - 'user_unconfirmed' => 'Please confirm your account to send emails', - 'invalid_contact_email' => 'Invalid contact email', - ], + 'email_error_inactive_client' => 'Emails can not be sent to inactive clients', + 'email_error_inactive_contact' => 'Emails can not be sent to inactive contacts', + 'email_error_inactive_invoice' => 'Emails can not be sent to inactive invoices', + 'email_error_user_unregistered' => 'Please register your account to send emails', + 'email_error_user_unconfirmed' => 'Please confirm your account to send emails', + 'email_error_invalid_contact_email' => 'Invalid contact email', 'client_portal' => 'Client Portal', 'admin' => 'Admin', @@ -987,7 +971,7 @@ return array( 'email_designs' => 'Email Designs', 'assigned_when_sent' => 'Assigned when sent', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', 'white_label_purchase_link' => 'Purchase a white label license', // Expense / vendor @@ -1094,7 +1078,7 @@ return array( 'archived_bank_account' => 'Successfully archived bank account', 'created_bank_account' => 'Successfully created bank account', 'validate_bank_account' => 'Validate Bank Account', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', 'bank_password_help' => 'Note: your password is transmitted securely and never stored on our servers.', 'bank_password_warning' => 'Warning: your password may be transmitted in plain text, consider enabling HTTPS.', 'username' => 'Username', @@ -1129,7 +1113,7 @@ return array( 'trial_call_to_action' => 'Start Free Trial', 'trial_success' => 'Successfully enabled two week free pro plan trial', 'overdue' => 'Overdue', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', @@ -1160,14 +1144,14 @@ return array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expired', 'invalid_card_number' => 'The credit card number is not valid.', 'invalid_expiry' => 'The expiration date is not valid.', 'invalid_cvv' => 'The CVV is not valid.', 'cost' => 'Cost', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Owner', 'administrator' => 'Administrator', @@ -1185,8 +1169,8 @@ return array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'View Payment', - + 'view_payment' => 'View Payment', + 'january' => 'January', 'february' => 'February', 'march' => 'March', @@ -1212,17 +1196,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1231,11 +1213,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1265,9 +1247,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1287,5 +1269,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - -); \ No newline at end of file + +); diff --git a/resources/lang/de/texts.php b/resources/lang/de/texts.php index 5ba45554db..f11ec4c65b 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.'/settings/notifications', + 'user_email_footer' => 'Um deine E-Mail-Benachrichtigungen anzupassen besuche bitte :link', '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.', @@ -271,7 +271,7 @@ return array( 'notification_invoice_sent' => 'Dem Kunden :client wurde die Rechnung :invoice über :amount versendet.', 'notification_invoice_viewed' => 'Der Kunde :client hat sich die Rechnung :invoice über :amount angesehen.', 'reset_password' => 'Du kannst dein Passwort zurücksetzen, indem du auf den folgenden Link klickst:', - 'reset_password_footer' => 'Wenn du das Zurücksetzen des Passworts nicht beantragt hast, benachrichtige bitte unseren Support: '.CONTACT_EMAIL, + 'reset_password_footer' => 'Wenn du das Zurücksetzen des Passworts nicht beantragt hast, benachrichtige bitte unseren Support: :email', // Payment page 'secure_payment' => 'Sichere Zahlung', @@ -280,22 +280,9 @@ return array( 'expiration_year' => 'Ablaufjahr', 'cvv' => 'Kartenprüfziffer', - // Security alerts - 'security' => array( - 'too_many_attempts' => 'Zu viele Versuche. Bitte probiere es in ein paar Minuten erneut.', - 'wrong_credentials' => 'Falsche E-Mail-Adresse oder falsches Passwort.', - 'confirmation' => 'Dein Konto wurde bestätigt!', - 'wrong_confirmation' => 'Falscher Bestätigungscode.', - 'password_forgot' => 'Weitere Informationen um das Passwort zurückzusetzen wurden dir per E-Mail zugeschickt.', - 'password_reset' => 'Dein Passwort wurde erfolgreich geändert.', - 'wrong_password_reset' => 'Ungültiges Passwort. Versuche es erneut', - ), - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link, um das InvoiceNinja-Logo zu entfernen, indem du dem Pro Plan beitrittst', - 'remove_logo_link' => 'Klicke hier', - ], + 'pro_plan_remove_logo' => ':link, um das InvoiceNinja-Logo zu entfernen, indem du dem Pro Plan beitrittst', + 'pro_plan_remove_logo_link' => 'Klicke hier', 'logout' => 'Ausloggen', 'sign_up_to_save' => 'Melde dich an, um deine Arbeit zu speichern', @@ -419,7 +406,7 @@ return array( 'active' => 'Aktiv', 'pending' => 'Ausstehend', 'deleted_user' => 'Benutzer erfolgreich gelöscht', - 'limit_users' => 'Entschuldige, das würde das Limit von '.MAX_NUM_USERS.' Benutzern überschreiten', + 'limit_users' => 'Entschuldige, das würde das Limit von :limit Benutzern überschreiten', 'confirm_email_invoice' => 'Bist du sicher, dass du diese Rechnung per E-Mail versenden möchtest?', 'confirm_email_quote' => 'Bist du sicher, dass du dieses Angebot per E-Mail versenden möchtest', @@ -453,7 +440,7 @@ return array( 'more_designs_title' => 'Zusätzliche Rechnungsdesigns', 'more_designs_cloud_header' => 'Werde Pro-Mitglied für zusätzliche Rechnungsdesigns', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Erhalte 6 zusätzliche Rechnungsdesigns für nur $'.INVOICE_DESIGNS_PRICE, + 'more_designs_self_host_header' => 'Erhalte 6 zusätzliche Rechnungsdesigns für nur $:price', 'more_designs_self_host_text' => '', 'buy' => 'Kaufen', 'bought_designs' => 'Die zusätzliche Rechnungsdesigns wurden erfolgreich hinzugefügt', @@ -703,7 +690,7 @@ return array( 'email_error' => 'Es gab ein Problem beim Senden dieses E-Mails.', 'confirm_recurring_timing' => 'Beachten Sie: E-Mails werden zu Beginn der Stunde versendet.', - 'old_browser' => 'Bitte verwenden Sie einen neueren Browser', + 'old_browser' => 'Bitte verwenden Sie einen neueren Browser', 'payment_terms_help' => 'Setzt das Standardfälligkeitsdatum', 'unlink_account' => 'Konten trennen', 'unlink' => 'Trennen', @@ -800,11 +787,10 @@ return array( 'invoice_quote_number' => 'Rechnungs- und Angebotsnummern', 'invoice_charges' => 'Rechnungsgebühren', - 'invitation_status' => [ - 'sent' => 'E-Mail versendet', - 'opened' => 'E-Mail geöffnet', - 'viewed' => 'Rechnung angesehen', - ], + 'invitation_status_sent' => 'E-Mail versendet', + 'invitation_status_opened' => 'E-Mail geöffnet', + 'invitation_status_viewed' => 'Rechnung angesehen', + 'notification_invoice_bounced' => 'Die Rechnung :invoice an :contact konnte nicht zugestellt werden.', 'notification_invoice_bounced_subject' => 'Rechnung :invoice nicht zugestellt.', 'notification_quote_bounced' => 'Das Angebot :invoice an :contact konnte nicht zugestellt werden.', @@ -927,14 +913,12 @@ return array( 'no_mapper' => 'Kein gültiges Mapping für die Datei', 'invalid_csv_header' => 'Ungültiger CSV Header', - 'email_errors' => [ - 'inactive_client' => 'Emails können nicht zu inaktiven Kunden gesendet werden', - 'inactive_contact' => 'Emails können nicht zu inaktiven Kontakten gesendet werden', - 'inactive_invoice' => 'Emails können nicht zu inaktiven Rechnungen gesendet werden', - 'user_unregistered' => 'Bitte registrieren Sie sich um Emails zu versenden', - 'user_unconfirmed' => 'Bitte bestätigen Sie Ihr Konto um Emails zu senden', - 'invalid_contact_email' => 'Ungültige Kontakt Email Adresse', - ], + 'email_error_inactive_client' => 'Emails können nicht zu inaktiven Kunden gesendet werden', + 'email_error_inactive_contact' => 'Emails können nicht zu inaktiven Kontakten gesendet werden', + 'email_error_inactive_invoice' => 'Emails können nicht zu inaktiven Rechnungen gesendet werden', + 'email_error_user_unregistered' => 'Bitte registrieren Sie sich um Emails zu versenden', + 'email_error_user_unconfirmed' => 'Bitte bestätigen Sie Ihr Konto um Emails zu senden', + 'email_error_invalid_contact_email' => 'Ungültige Kontakt Email Adresse', 'client_portal' => 'Kunden-Portal', 'admin' => 'Admin', @@ -988,7 +972,7 @@ return array( 'email_designs' => 'Email Designs', 'assigned_when_sent' => 'Assigned when sent', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', 'white_label_purchase_link' => 'Purchase a white label license', // Expense / vendor @@ -1095,7 +1079,7 @@ return array( 'archived_bank_account' => 'Bankverbindung erfolgreich archiviert', 'created_bank_account' => 'Bankverbindung erfolgreich erstellt', 'validate_bank_account' => 'Bankverbindung bestätigen', - 'bank_accounts_help' => 'Fügen Sie eine Bankverbindung hinzu, um Ausgaben automatisch zu importieren und Lieferanten zu erstellen. Unterstützt American Express und 400+ US-Banken.', + 'bank_accounts_help' => 'Fügen Sie eine Bankverbindung hinzu, um Ausgaben automatisch zu importieren und Lieferanten zu erstellen. Unterstützt American Express und 400+ US-Banken.', 'bank_password_help' => 'Info: Ihr Passwort wird sicher übertragen und zu keiner Zeit auf unseren Servern gespeichert.', 'bank_password_warning' => 'Warnung: Ihr Passwort könnte in Klartext übertragen werden, wir empfehlen Ihnen HTTPS zu verwenden.', 'username' => 'Benutzername', @@ -1130,7 +1114,7 @@ return array( 'trial_call_to_action' => 'Kostenlose Probezeit starten', 'trial_success' => 'Erfolgreich eine 2-Wochen Testversion aktiviert', 'overdue' => 'Überfällig', - 'white_label_text' => 'Kaufen Sie eine 1 Jahres Whitelabel Lizenz zum Preis von $'.WHITE_LABEL_PRICE.' um das Invoice Ninja Branding vom Kundenportal zu entfernen und unser Projekt zu unterstützen.', + 'white_label_text' => 'Kaufen Sie eine 1 Jahres Whitelabel Lizenz zum Preis von $:price um das Invoice Ninja Branding vom Kundenportal zu entfernen und unser Projekt zu unterstützen.', 'navigation' => 'Navigation', 'list_invoices' => 'Liste Rechnungen', @@ -1161,14 +1145,14 @@ return array( 'enable_portal_password_help'=>'Erlaubt Ihnen ein Passwort für jeden Kontakt zu erstellen. Wenn ein Passwort erstellt wurde, muss der Kunde dieses eingeben, bevor er eine Rechnung ansehen darf.', 'send_portal_password'=>'Erstelle das Passwort automatisch', 'send_portal_password_help'=>'Wenn kein Passwort gesetzt wurde, wird eins generiert und mit der ersten Rechnung verschickt.', - + 'expired' => 'Abgelaufen', 'invalid_card_number' => 'Die Kreditkartennummer ist nicht gültig.', 'invalid_expiry' => 'Das Ablaufdatum ist nicht gültig.', 'invalid_cvv' => 'Der CVV Code ist nicht gültig.', 'cost' => 'Kosten', 'create_invoice_for_sample' => 'Hinweis: Erstellen Sie Ihre erste Rechnung um hier eine Vorschau zu sehen.', - + // User Permissions 'owner' => 'Eigentümer', 'administrator' => 'Administrator', @@ -1186,8 +1170,8 @@ return array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'Zahlung zeigen', - + 'view_payment' => 'Zahlung zeigen', + 'january' => 'Januar', 'february' => 'Februar', 'march' => 'März', @@ -1213,17 +1197,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1232,11 +1214,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1266,9 +1248,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1288,5 +1270,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - + ); diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index e766e13afb..871c89e786 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -992,40 +992,26 @@ $LANG = array( 'overdue' => 'Overdue', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', - 'user_email_footer' => 'To adjust your email notification settings please visit '.SITE_URL.'/settings/notifications', - 'reset_password_footer' => 'If you did not request this password reset please email our support: '.CONTACT_EMAIL, - 'limit_users' => 'Sorry, this will exceed the limit of '.MAX_NUM_USERS.' users', - 'more_designs_self_host_header' => 'Get 6 more invoice designs for just $'.INVOICE_DESIGNS_PRICE, - 'old_browser' => 'Please use a newer browser', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', - 'security' => [ - 'too_many_attempts' => 'Too many attempts. Try again in few minutes.', - 'wrong_credentials' => 'Incorrect email or password.', - 'confirmation' => 'Your account has been confirmed!', - 'wrong_confirmation' => 'Wrong confirmation code.', - 'password_forgot' => 'The information regarding password reset was sent to your email.', - 'password_reset' => 'Your password has been changed successfully.', - 'wrong_password_reset' => 'Invalid password. Try again', - ], - 'pro_plan' => [ - 'remove_logo' => ':link to remove the Invoice Ninja logo by joining the Pro Plan', - 'remove_logo_link' => 'Click here', - ], - 'invitation_status' => [ - 'sent' => 'Email Sent', - 'opened' => 'Email Openend', - 'viewed' => 'Invoice Viewed', - ], - 'email_errors' => [ - 'inactive_client' => 'Emails can not be sent to inactive clients', - 'inactive_contact' => 'Emails can not be sent to inactive contacts', - 'inactive_invoice' => 'Emails can not be sent to inactive invoices', - 'user_unregistered' => 'Please register your account to send emails', - 'user_unconfirmed' => 'Please confirm your account to send emails', - 'invalid_contact_email' => 'Invalid contact email', - ], + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', + 'user_email_footer' => 'To adjust your email notification settings please visit :link', + 'reset_password_footer' => 'If you did not request this password reset please email our support: :email', + 'limit_users' => 'Sorry, this will exceed the limit of :limit users', + 'more_designs_self_host_header' => 'Get 6 more invoice designs for just $:price', + 'old_browser' => 'Please use a newer browser', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + + 'pro_plan_remove_logo' => ':link to remove the Invoice Ninja logo by joining the Pro Plan', + 'pro_plan_remove_logo_link' => 'Click here', + 'invitation_status_sent' => 'Email Sent', + 'invitation_status_opened' => 'Email Openend', + 'invitation_status_viewed' => 'Invoice Viewed', + 'email_error_inactive_client' => 'Emails can not be sent to inactive clients', + 'email_error_inactive_contact' => 'Emails can not be sent to inactive contacts', + 'email_error_inactive_invoice' => 'Emails can not be sent to inactive invoices', + 'email_error_user_unregistered' => 'Please register your account to send emails', + 'email_error_user_unconfirmed' => 'Please confirm your account to send emails', + 'email_error_invalid_contact_email' => 'Invalid contact email', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', diff --git a/resources/lang/es/texts.php b/resources/lang/es/texts.php index ec805e7b7d..49859b0910 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.'/settings/notifications', + 'user_email_footer' => 'Para ajustar la configuración de las notificaciones de tu correo, visita :link', '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', @@ -265,7 +265,7 @@ return array( 'notification_invoice_sent' => 'La factura :invoice por valor de :amount fue enviada al cliente :cliente.', 'notification_invoice_viewed' => 'La factura :invoice por valor 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, + 'reset_password_footer' => 'Si no has solicitado un cambio de contraseña, por favor contactate con nosostros: :email', // Payment page 'secure_payment' => 'Pago seguro', @@ -274,22 +274,10 @@ return array( 'expiration_year' => 'Año de caducidad', 'cvv' => 'CVV', - // Security alerts - 'security' => array( - 'too_many_attempts' => 'Demasiados intentos fallidos. Inténtalo de nuevo en un par de minutos.', - 'wrong_credentials' => 'Contraseña o correo 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 - 'pro_plan' => [ - 'remove_logo' => ':link haz click para eliminar el logo de Invoice Ninja', //Maybe incorrect for the context - 'remove_logo_link' => 'Haz clic aquí', - ], + 'pro_plan_remove_logo' => ':link haz click para eliminar el logo de Invoice Ninja', //Maybe incorrect for the context + 'pro_plan_remove_logo_link' => 'Haz clic 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', @@ -396,7 +384,7 @@ return array( 'active' => 'Activar', 'pending' => 'Pendiente', 'deleted_user' => 'Usario eliminado con éxito', - 'limit_users' => 'Lo sentimos, esta acción excederá el límite de '.MAX_NUM_USERS.' usarios', + 'limit_users' => 'Lo sentimos, esta acción excederá el límite de :limit usarios', 'confirm_email_invoice' => '¿Estás seguro que quieres enviar esta factura?', 'confirm_email_quote' => '¿Estás seguro que quieres enviar esta cotización?', 'confirm_recurring_email_invoice' => 'Se ha marcado esta factura como recurrente, estás seguro que quieres enviar esta factura?', @@ -426,7 +414,7 @@ return array( 'more_designs_title' => 'Diseños Adicionales de Facturas', 'more_designs_cloud_header' => 'Vete Pro para más diseños de facturas', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Adquiera 6 diseños adicionales de facturas por solo $'.INVOICE_DESIGNS_PRICE, + 'more_designs_self_host_header' => 'Adquiera 6 diseños adicionales de facturas por solo $:price', 'more_designs_self_host_text' => '', 'buy' => 'Comprar', 'bought_designs' => 'Diseños adicionales de facturas agregados con éxito', @@ -682,7 +670,7 @@ return array( 'email_error' => 'Hubo un problema enviando el correo', 'confirm_recurring_timing' => 'Nota: los correos son enviados al inicio de la hora.', - 'old_browser' => 'Por favor utiliza más reciente', + 'old_browser' => 'Por favor utiliza más reciente', 'payment_terms_help' => 'Asigna la fecha de vencimiento por defecto de la factura', 'unlink_account' => 'Desconectar Cuenta', 'unlink' => 'Desconectar', @@ -778,11 +766,10 @@ return array( 'invoice_quote_number' => 'Números de Cotización y Factura', 'invoice_charges' => 'Cargos de Factura', - 'invitation_status' => [ - 'sent' => 'Correo enviado', - 'opened' => 'Correo Abierto', - 'viewed' => 'Factura Vista', - ], + 'invitation_status_sent' => 'Correo enviado', + 'invitation_status_opened' => 'Correo Abierto', + 'invitation_status_viewed' => 'Factura Vista', + 'notification_invoice_bounced' => 'No nos fue posible entregar la Factura :invoice a :contact.', 'notification_invoice_bounced_subject' => 'No fue posible entregar la Factura :invoice', 'notification_quote_bounced' => 'No nos fue posible entregar la Cotización :invoice a :contact.', @@ -904,14 +891,12 @@ return array( 'no_mapper' => 'No valid mapping for file', 'invalid_csv_header' => 'Invalid CSV Header', - 'email_errors' => [ - 'inactive_client' => 'Emails can not be sent to inactive clients', - 'inactive_contact' => 'Emails can not be sent to inactive contacts', - 'inactive_invoice' => 'Emails can not be sent to inactive invoices', - 'user_unregistered' => 'Please register your account to send emails', - 'user_unconfirmed' => 'Please confirm your account to send emails', - 'invalid_contact_email' => 'Invalid contact email', - ], + 'email_error_inactive_client' => 'Emails can not be sent to inactive clients', + 'email_error_inactive_contact' => 'Emails can not be sent to inactive contacts', + 'email_error_inactive_invoice' => 'Emails can not be sent to inactive invoices', + 'email_error_user_unregistered' => 'Please register your account to send emails', + 'email_error_user_unconfirmed' => 'Please confirm your account to send emails', + 'email_error_invalid_contact_email' => 'Invalid contact email', 'client_portal' => 'Client Portal', 'admin' => 'Admin', @@ -964,7 +949,7 @@ return array( 'schedule' => 'Schedule', 'email_designs' => 'Email Designs', 'assigned_when_sent' => 'Assigned when sent', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', 'white_label_purchase_link' => 'Purchase a white label license', // Expense / vendor @@ -1071,7 +1056,7 @@ return array( 'archived_bank_account' => 'Successfully archived bank account', 'created_bank_account' => 'Successfully created bank account', 'validate_bank_account' => 'Validate Bank Account', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', 'bank_password_help' => 'Note: your password is transmitted securely and never stored on our servers.', 'bank_password_warning' => 'Warning: your password may be transmitted in plain text, consider enabling HTTPS.', 'username' => 'Username', @@ -1106,7 +1091,7 @@ return array( 'trial_call_to_action' => 'Start Free Trial', 'trial_success' => 'Successfully enabled two week free pro plan trial', 'overdue' => 'Overdue', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', @@ -1137,14 +1122,14 @@ return array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expired', 'invalid_card_number' => 'The credit card number is not valid.', 'invalid_expiry' => 'The expiration date is not valid.', 'invalid_cvv' => 'The CVV is not valid.', 'cost' => 'Cost', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Owner', 'administrator' => 'Administrator', @@ -1162,8 +1147,8 @@ return array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'View Payment', - + 'view_payment' => 'View Payment', + 'january' => 'January', 'february' => 'February', 'march' => 'March', @@ -1189,17 +1174,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1208,11 +1191,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1242,9 +1225,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1264,5 +1247,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - + ); diff --git a/resources/lang/es_ES/texts.php b/resources/lang/es_ES/texts.php index 59e6d1b056..5e578df508 100644 --- a/resources/lang/es_ES/texts.php +++ b/resources/lang/es_ES/texts.php @@ -271,7 +271,7 @@ return array( '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', + 'user_email_footer' => 'Para ajustar la configuración de las notificaciones de tu email, visita :link', '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', @@ -280,7 +280,7 @@ return array( '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, + 'reset_password_footer' => 'Si no has solicitado un cambio de contraseña, por favor contactate con nosostros: :email', // Payment page 'secure_payment' => 'Pago seguro', @@ -289,22 +289,10 @@ return array( 'expiration_year' => 'Año de caducidad', 'cvv' => 'CVV', - // 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 - 'pro_plan' => [ - 'remove_logo' => ':link haz click para eliminar el logo de Invoice Ninja', - 'remove_logo_link' => 'Haz click aquí', - ], + 'pro_plan_remove_logo' => ':link haz click para eliminar el logo de Invoice Ninja', + 'pro_plan_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', @@ -414,7 +402,7 @@ return array( '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', + 'limit_users' => 'Lo sentimos, esta acción excederá el límite de :limit 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?', @@ -444,7 +432,7 @@ return array( '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_header' => 'Obtenga 6 diseños más para facturas por sólo $:price', // comprobar 'more_designs_self_host_text' => '', 'buy' => 'Comprar', 'bought_designs' => 'Añadidos con exito los diseños de factura', @@ -702,7 +690,7 @@ return array( 'email_error' => 'Ocurrió un problema enviando el correo', 'confirm_recurring_timing' => 'Nota: correos enviados cada hora en punto.', - 'old_browser' => 'Por favor use un navegador mas actual', + 'old_browser' => 'Por favor use un navegador mas actual', 'payment_terms_help' => 'Establezca la fecha de pago de factura por defecto', 'unlink_account' => 'Cuenta desvinculada', 'unlink' => 'Desvincular', @@ -799,11 +787,10 @@ return array( 'invoice_quote_number' => 'Números de Factura y Presupuesto', 'invoice_charges' => 'Cargos de factura', - 'invitation_status' => [ - 'sent' => 'Correo Enviado', - 'opened' => 'Correo abierto', - 'viewed' => 'Factura vista', - ], + 'invitation_status_sent' => 'Correo Enviado', + 'invitation_status_opened' => 'Correo abierto', + 'invitation_status_viewed' => 'Factura vista', + 'notification_invoice_bounced' => 'No podemos entregar la factura :invoice a :contact.', 'notification_invoice_bounced_subject' => 'No se puede entregar la factura :invoice', 'notification_quote_bounced' => 'No podemos entregar el presupuesto :invoice a :contact.', @@ -924,14 +911,12 @@ return array( 'no_mapper' => 'Mapeo no válido para el fichero', 'invalid_csv_header' => 'Cabecera CSV no Válida', - 'email_errors' => [ - 'inactive_client' => 'No se pueden enviar correos a Clientes inactivos', - 'inactive_contact' => 'No se pueden enviar correos a Contactos inactivos', - 'inactive_invoice' => 'No se pueden enviar correos de Facturas inactivas', - 'user_unregistered' => 'Por favor registra tu cuenta para enviar correos', - 'user_unconfirmed' => 'Por favor confirma tu cuenta para enviar correos', - 'invalid_contact_email' => 'Correo de contacto no válido', - ], + 'email_error_inactive_client' => 'No se pueden enviar correos a Clientes inactivos', + 'email_error_inactive_contact' => 'No se pueden enviar correos a Contactos inactivos', + 'email_error_inactive_invoice' => 'No se pueden enviar correos de Facturas inactivas', + 'email_error_user_unregistered' => 'Por favor registra tu cuenta para enviar correos', + 'email_error_user_unconfirmed' => 'Por favor confirma tu cuenta para enviar correos', + 'email_error_invalid_contact_email' => 'Correo de contacto no válido', 'client_portal' => 'Portal Cliente', 'admin' => 'Admin.', @@ -985,7 +970,7 @@ return array( 'email_designs' => 'Diseños de correo', 'assigned_when_sent' => 'Asignado al enviar', - 'white_label_custom_css' => ':link para $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', + 'white_label_custom_css' => ':link para $:price to enable custom styling and help support our project.', 'white_label_purchase_link' => 'Comprar licencia de marca blanca', // Expense / vendor @@ -1091,7 +1076,7 @@ return array( 'archived_bank_account' => 'Cuenta Bancaria archivada correctamente', 'created_bank_account' => 'Cuenta Bancaria creada correctamente', 'validate_bank_account' => 'Validar Cuenta Bancaria', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', 'bank_password_help' => 'Note: your password is transmitted securely and never stored on our servers.', 'bank_password_warning' => 'Warning: your password may be transmitted in plain text, consider enabling HTTPS.', 'username' => 'Usuario', @@ -1126,7 +1111,7 @@ return array( 'trial_call_to_action' => 'Start Free Trial', 'trial_success' => 'Successfully enabled two week free pro plan trial', 'overdue' => 'Overdue', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', @@ -1157,14 +1142,14 @@ return array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expired', 'invalid_card_number' => 'The credit card number is not valid.', 'invalid_expiry' => 'The expiration date is not valid.', 'invalid_cvv' => 'The CVV is not valid.', 'cost' => 'Cost', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Owner', 'administrator' => 'Administrator', @@ -1182,8 +1167,8 @@ return array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'View Payment', - + 'view_payment' => 'View Payment', + 'january' => 'January', 'february' => 'February', 'march' => 'March', @@ -1209,17 +1194,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1228,11 +1211,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1262,9 +1245,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1284,5 +1267,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - + ); diff --git a/resources/lang/fr/texts.php b/resources/lang/fr/texts.php index 61ec5d3547..a432238c68 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.'/settings/notifications', + 'user_email_footer' => 'Pour modifier vos paramètres de notification par courriel, veuillez visiter :link', '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', @@ -271,7 +271,7 @@ return array( 'notification_invoice_sent' => 'Le client suivant :client a reçu par courriel la facture :invoice d\'un montant de :amount', 'notification_invoice_viewed' => 'Le client suivant :client a vu la facture :invoice d\'un montant de :amount', 'reset_password' => 'Vous pouvez réinitialiser votre mot de passe en cliquant sur le lien suivant :', - 'reset_password_footer' => 'Si vous n\'avez pas effectué de demande de réinitalisation de mot de passe veuillez contacter notre support :'.CONTACT_EMAIL, + 'reset_password_footer' => 'Si vous n\'avez pas effectué de demande de réinitalisation de mot de passe veuillez contacter notre support : :email', // Payment page 'secure_payment' => 'Paiement sécurisé', @@ -280,22 +280,9 @@ return array( 'expiration_year' => 'Année d\'expiration', 'cvv' => 'Cryptogramme visuel', - // Security alerts - 'security' => array( - 'too_many_attempts' => 'Trop de tentatives. Essayez à nouveau dans quelques minutes.', - 'wrong_credentials' => 'Courriel ou mot de passe incorrect', - 'confirmation' => 'Votre compte a été validé !', - 'wrong_confirmation' => 'Code de confirmation incorrect.', - 'password_forgot' => 'Les informations de réinitialisation de votre mot de passe vous ont été envoyées par courriel.', - 'password_reset' => 'Votre mot de passe a été modifié avec succès.', - 'wrong_password_reset' => 'Mot de passe incorrect. Veuillez réessayer', - ), - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link pour supprimer le logo Invoice Ninja en souscrivant au Plan Pro', - 'remove_logo_link' => 'Cliquez ici', - ], + 'pro_plan_remove_logo' => ':link pour supprimer le logo Invoice Ninja en souscrivant au Plan Pro', + 'pro_plan_remove_logo_link' => 'Cliquez ici', 'logout' => 'Se déconnecter', 'sign_up_to_save' => 'Connectez vous pour sauvegarder votre travail', @@ -412,7 +399,7 @@ return array( 'active' => 'Actif', 'pending' => 'En attente', 'deleted_user' => 'Utilisateur supprimé', - 'limit_users' => 'Désolé, ceci excédera la limite de '.MAX_NUM_USERS.' utilisateurs', + 'limit_users' => 'Désolé, ceci excédera la limite de :limit utilisateurs', 'confirm_email_invoice' => 'Voulez-vous vraiment envoyer cette facture par courriel ?', 'confirm_email_quote' => 'Voulez-vous vraiment envoyer ce devis par courriel ?', @@ -446,7 +433,7 @@ return array( 'more_designs_title' => 'Modèles de factures additionnels', 'more_designs_cloud_header' => 'Passez au Plan Pro pour plus de modèles', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Obtenez 6 modèles de factures additionnels pour seulement '.INVOICE_DESIGNS_PRICE.'$', + 'more_designs_self_host_header' => 'Obtenez 6 modèles de factures additionnels pour seulement $:price', 'more_designs_self_host_text' => '', 'buy' => 'Acheter', 'bought_designs' => 'Les nouveaux modèles ont été ajoutés avec succès', @@ -695,7 +682,7 @@ return array( 'email_error' => 'Il y a eu un problème en envoyant le courriel', 'confirm_recurring_timing' => 'Note : les courriels sont envoyés au début de l\'heure.', - 'old_browser' => 'Merci d\'utiliser un navigateur plus récent', + 'old_browser' => 'Merci d\'utiliser un navigateur plus récent', 'payment_terms_help' => 'Définir la date d\'échéance par défaut de la facture', 'unlink_account' => 'Dissocier le compte', 'unlink' => 'Dissocier', @@ -791,11 +778,10 @@ return array( 'invoice_quote_number' => 'Numéro des devis & factures', 'invoice_charges' => 'Charges de facturation', - 'invitation_status' => [ - 'sent' => 'Email envoyé', - 'opened' => 'Email ouvert', - 'viewed' => 'Facture vue', - ], + 'invitation_status_sent' => 'Email envoyé', + 'invitation_status_opened' => 'Email ouvert', + 'invitation_status_viewed' => 'Facture vue', + '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.', @@ -918,14 +904,12 @@ return array( 'no_mapper' => 'Mappage invalide pour ce fichier', 'invalid_csv_header' => 'En-tête du fichier CSV invalide', - 'email_errors' => [ - 'inactive_client' => 'Les mails ne peuvent être envoyés aux clients inactifs', - 'inactive_contact' => 'Les mails ne peuvent être envoyés aux contacts inactifs', - 'inactive_invoice' => 'Les mails ne peuvent être envoyés aux factures inactives', - 'user_unregistered' => 'Veuillez vous inscrire afin d\'envoyer des mails', - 'user_unconfirmed' => 'Veuillez confirmer votre compte afin de permettre l\'envoi de mail', - 'invalid_contact_email' => 'Adresse mail du contact invalide', - ], + 'email_error_inactive_client' => 'Les mails ne peuvent être envoyés aux clients inactifs', + 'email_error_inactive_contact' => 'Les mails ne peuvent être envoyés aux contacts inactifs', + 'email_error_inactive_invoice' => 'Les mails ne peuvent être envoyés aux factures inactives', + 'email_error_user_unregistered' => 'Veuillez vous inscrire afin d\'envoyer des mails', + 'email_error_user_unconfirmed' => 'Veuillez confirmer votre compte afin de permettre l\'envoi de mail', + 'email_error_invalid_contact_email' => 'Adresse mail du contact invalide', 'client_portal' => 'Portail client', 'admin' => 'Admin', @@ -979,7 +963,7 @@ return array( 'email_designs' => 'Email Designs', 'assigned_when_sent' => 'Assigned when sent', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', 'white_label_purchase_link' => 'Acheter une licence marque blanche', // Expense / vendor @@ -1086,7 +1070,7 @@ return array( 'archived_bank_account' => 'Compte bancaire archivé', 'created_bank_account' => 'Compte bancaire créé', 'validate_bank_account' => 'Valider le compte bancaire', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', 'bank_password_help' => 'Note: your password is transmitted securely and never stored on our servers.', 'bank_password_warning' => 'Attention: votre mot de passe peut être transmis en clair, pensez à activer HTTPS.', 'username' => 'Nom d\'utilisateur', @@ -1121,7 +1105,7 @@ return array( 'trial_call_to_action' => 'Commencer l\'essai gratuit', 'trial_success' => 'Successfully enabled two week free pro plan trial', 'overdue' => 'Impayé', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', 'navigation' => 'Navigation', 'list_invoices' => 'Liste des factures', @@ -1152,14 +1136,14 @@ return array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Générer un mot de passe automatiquement', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expiré', 'invalid_card_number' => 'Le numéro de carte bancaire est invalide.', 'invalid_expiry' => 'La date d\'expiration est invalide.', 'invalid_cvv' => 'Le code de sécurité est incorrect.', 'cost' => 'Coût', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Propriétaire', 'administrator' => 'Administrateur', @@ -1177,8 +1161,8 @@ return array( 'create_all_help' => 'Autoriser l\'utilisateur à créer et éditer tous les enregistrements', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'Voir le paiement', - + 'view_payment' => 'Voir le paiement', + 'january' => 'Janvier', 'february' => 'Février', 'march' => 'Mars', @@ -1204,17 +1188,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1223,11 +1205,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1257,9 +1239,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1279,5 +1261,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - + ); diff --git a/resources/lang/fr_CA/texts.php b/resources/lang/fr_CA/texts.php index 8c82d959d6..999e553a96 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 Invoice Ninja', - 'user_email_footer' => 'Pour modifier vos paramètres de notification par courriel, veuillez visiter '.SITE_URL.'/settings/notifications', + 'user_email_footer' => 'Pour modifier vos paramètres de notification par courriel, veuillez visiter :link', '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', @@ -271,7 +271,7 @@ return array( 'notification_invoice_sent' => 'Le client suivant :client a reçu par courriel la facture :invoice d\'un montant de :amount', 'notification_invoice_viewed' => 'Le client suivant :client a vu la facture :invoice d\'un montant de :amount', 'reset_password' => 'Vous pouvez réinitialiser votre mot de passe en cliquant sur le lien suivant :', - 'reset_password_footer' => 'Si vous n\'avez pas effectué de demande de réinitalisation de mot de passe veuillez contacter notre support :' . CONTACT_EMAIL, + 'reset_password_footer' => 'Si vous n\'avez pas effectué de demande de réinitalisation de mot de passe veuillez contacter notre support : :email', // Payment page 'secure_payment' => 'Paiement sécurisé', @@ -280,22 +280,9 @@ return array( 'expiration_year' => 'Année d\'expiration', 'cvv' => 'CVV', - // Security alerts - 'confide' => array( - 'too_many_attempts' => 'Trop de tentatives. Veuillez réessayer dans quelques minutes.', - 'wrong_credentials' => 'Courriel ou mot de passe incorrect', - 'confirmation' => 'Votre compte a été validé !', - 'wrong_confirmation' => 'Code de confirmation incorrect.', - 'password_forgot' => 'Les informations de réinitialisation de votre mot de passe vous ont été envoyées par courriel.', - 'password_reset' => 'Votre mot de passe a été modifié avec succès.', - 'wrong_password_reset' => 'Mot de passe incorrect. Veuillez réessayer', - ), - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link pour supprimer le logo Invoice Ninja en souscrivant au plan pro', - 'remove_logo_link' => 'Cliquez ici', - ], + 'pro_plan_remove_logo' => ':link pour supprimer le logo Invoice Ninja en souscrivant au plan pro', + 'pro_plan_remove_logo_link' => 'Cliquez ici', 'logout' => 'Déconnexion', 'sign_up_to_save' => 'Connectez-vous pour sauvegarder votre travail', @@ -412,7 +399,7 @@ return array( 'active' => 'Actif', 'pending' => 'En attente', 'deleted_user' => 'Utilisateur supprimé', - 'limit_users' => 'Désolé, ceci excédera la limite de ' . MAX_NUM_USERS . ' utilisateurs', + 'limit_users' => 'Désolé, ceci excédera la limite de :limit utilisateurs', 'confirm_email_invoice' => 'Voulez-vous vraiment envoyer cette facture par courriel ?', 'confirm_email_quote' => 'Voulez-vous vraiment envoyer cette soumission par courriel ?', @@ -447,7 +434,7 @@ return array( 'more_designs_title' => 'Modèles de factures additionnels', 'more_designs_cloud_header' => 'Passez au Plan Pro pour obtenir plus de modèles', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Obtenez 6 modèles de factures additionnels pour seulement '.INVOICE_DESIGNS_PRICE.'$', + 'more_designs_self_host_header' => 'Obtenez 6 modèles de factures additionnels pour seulement $:price', 'more_designs_self_host_text' => '', 'buy' => 'Acheter', 'bought_designs' => 'Les nouveaux modèles ont été ajoutés avec succès', @@ -697,7 +684,7 @@ return array( 'email_error' => 'Il y a eu un problème avec l\'envoi du courriel', 'confirm_recurring_timing' => 'Note: Les courriels sont envoyés au début de chaque heure.', - 'old_browser' => 'Veuillez utiliser un navigateur plus récent', + 'old_browser' => 'Veuillez utiliser un navigateur plus récent', 'payment_terms_help' => 'Défini la date d\'échéance par défaut', 'unlink_account' => 'Délié le compte', 'unlink' => 'Délié', @@ -731,7 +718,7 @@ return array( 'recent_payments' => 'Paiements reçus', 'outstanding' => 'Impayés', 'manage_companies' => 'Gérer les entreprises', - 'total_revenue' => 'Revenus', + 'total_revenue' => 'Revenus', 'current_user' => 'Utilisateur en cours', 'new_recurring_invoice' => 'Nouvelle facture récurrente', @@ -794,11 +781,10 @@ return array( 'invoice_quote_number' => 'Numéros de factures et de soumissions', 'invoice_charges' => 'Frais de facturation', - 'invitation_status' => [ - 'sent' => 'Courriel envoyé', - 'opened' => 'Courriel ouvert', - 'viewed' => 'Facture consultée', - ], + 'invitation_status_sent' => 'Courriel envoyé', + 'invitation_status_opened' => 'Courriel ouvert', + 'invitation_status_viewed' => 'Facture consultée', + 'notification_invoice_bounced' => 'Impossible d\'envoyer la facture :invoice à :contact.', 'notification_invoice_bounced_subject' => 'Impossible d\'envoyer la facture :invoice', 'notification_quote_bounced' => 'Impossible d\'envoyer la soumission :invoice à :contact.', @@ -919,14 +905,12 @@ return array( 'no_mapper' => 'Aucun liens de champs valides pour ce fichier', 'invalid_csv_header' => 'Entête CSV invalide', - 'email_errors' => [ - 'inactive_client' => 'Aucun courriel ne peut être envoyé à un client inactif', - 'inactive_contact' => 'Aucun courriel ne peut être envoyé à un contact inactif', - 'inactive_invoice' => 'Aucun courriel ne peut être envoyé à une facture inactive', - 'user_unregistered' => 'Veuillez vous créer un compte pour envoyer des courriels', - 'user_unconfirmed' => 'Veuillez confirmer votre compte pour pouvoir envoyer des courriels', - 'invalid_contact_email' => 'Ce courriel est invalide', - ], + 'email_error_inactive_client' => 'Aucun courriel ne peut être envoyé à un client inactif', + 'email_error_inactive_contact' => 'Aucun courriel ne peut être envoyé à un contact inactif', + 'email_error_inactive_invoice' => 'Aucun courriel ne peut être envoyé à une facture inactive', + 'email_error_user_unregistered' => 'Veuillez vous créer un compte pour envoyer des courriels', + 'email_error_user_unconfirmed' => 'Veuillez confirmer votre compte pour pouvoir envoyer des courriels', + 'email_error_invalid_contact_email' => 'Ce courriel est invalide', 'client_portal' => 'Portail client', 'admin' => 'Admin', @@ -980,7 +964,7 @@ return array( 'email_designs' => 'Modèles de courriel', 'assigned_when_sent' => 'Assignée lors de l\'envoi', - 'white_label_custom_css' => ':link à $'.WHITE_LABEL_PRICE.' pour activer les styles personnalisés et supporter notre projet.', + 'white_label_custom_css' => ':link à $:price pour activer les styles personnalisés et supporter notre projet.', 'white_label_purchase_link' => 'Achetez une licence sans pub', // Expense / vendor @@ -1084,7 +1068,7 @@ return array( 'archived_bank_account' => 'Le compte bancaire a été archivé', 'created_bank_account' => 'Le compte bancaire a été créé', 'validate_bank_account' => 'Valider le compte bancaire', - 'bank_accounts_help' => 'Veuillez vous connecter à un compte bancaire pour importer automatiquement les dépenses et créer les fournisseurs. Supporte American Express et plus de 400 banques américaines.', + 'bank_accounts_help' => 'Veuillez vous connecter à un compte bancaire pour importer automatiquement les dépenses et créer les fournisseurs. Supporte American Express et plus de 400 banques américaines.', 'bank_password_help' => 'Note: votre mot de passe est transmis de façon sécuritaire et n\'est jamais enregistré sur nos serveurs.', 'bank_password_warning' => 'Avertissement: votre mot de passe pourrait être transmis sans cryptage, pensez à activer HTTPS.', 'username' => 'Nom d\'utilisateur', @@ -1119,7 +1103,7 @@ return array( 'trial_call_to_action' => 'Démarrez votre essai gratuit', 'trial_success' => 'Le Plan Pro, version d\'essai gratuit pour 2 semaines a été activé', 'overdue' => 'En souffrance', - 'white_label_text' => 'Achetez une licence sans pub d\'un an à $'.WHITE_LABEL_PRICE.' pour retirer le logo de Invoice Ninja du portail client et supporter notre projet.', + 'white_label_text' => 'Achetez une licence sans pub d\'un an à $:price pour retirer le logo de Invoice Ninja du portail client et supporter notre projet.', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', @@ -1150,14 +1134,14 @@ return array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expired', 'invalid_card_number' => 'The credit card number is not valid.', 'invalid_expiry' => 'The expiration date is not valid.', 'invalid_cvv' => 'The CVV is not valid.', 'cost' => 'Cost', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Owner', 'administrator' => 'Administrator', @@ -1175,8 +1159,8 @@ return array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'View Payment', - + 'view_payment' => 'View Payment', + 'january' => 'January', 'february' => 'February', 'march' => 'March', @@ -1202,17 +1186,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1221,11 +1203,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1255,9 +1237,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1277,6 +1259,6 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - - -); \ No newline at end of file + + +); diff --git a/resources/lang/it/texts.php b/resources/lang/it/texts.php index 204a25fe33..d56c71e9e7 100644 --- a/resources/lang/it/texts.php +++ b/resources/lang/it/texts.php @@ -1,4 +1,4 @@ - 'Cliente fatturato', 'billed_clients' => 'Clienti fatturati', 'active_client' => 'cliente attivo', - 'active_clients' => 'clienti attivi', + 'active_clients' => 'clienti attivi', 'invoices_past_due' => 'Fatture Scadute', /* Insoluti */ 'upcoming_invoices' => 'Prossime fatture', 'average_invoice' => 'Fattura media', @@ -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.'/settings/notifications', + 'user_email_footer' => 'Per modificare le impostazioni di notifiche via email per favore accedi a: :link', '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', @@ -271,31 +271,18 @@ return array( 'notification_invoice_sent' => 'Al seguente cliente :client è stata inviata via email la fattura :invoice di :amount.', 'notification_invoice_viewed' => 'Il seguente cliente :client ha visualizzato la fattura :invoice di :amount.', 'reset_password' => 'Puoi resettare la password del tuo account cliccando sul link qui sotto:', - 'reset_password_footer' => 'Se non sei stato tu a voler resettare la password per favore invia un\'email di assistenza a: ' . CONTACT_EMAIL, + 'reset_password_footer' => 'Se non sei stato tu a voler resettare la password per favore invia un\'email di assistenza a: :email', // Payment page 'secure_payment' => 'Pagamento Sicuro', 'card_number' => 'Numero Carta', - 'expiration_month' => 'Mese di Scadenza', + 'expiration_month' => 'Mese di Scadenza', 'expiration_year' => 'Anno di Scadenza', 'cvv' => 'CVV', - // Security alerts - 'security' => [ - 'too_many_attempts' => 'Troppi tentativi fatti. Riprova tra qualche minuto.', - 'wrong_credentials' => 'Email o password non corretti.', - 'confirmation' => 'Il tuo account è stato confermato!', - 'wrong_confirmation' => 'Codice di verifica errato.', - 'password_forgot' => 'I dati per resettare la tua password sono stati inviati alla tua email.', - 'password_reset' => 'La tua password è stata cambiata con successo.', - 'wrong_password_reset' => 'Password errata. Riprova', - ], - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link per rimuovere il logo di Invoice Ninja aderendo al programma pro', - 'remove_logo_link' => 'Clicca qui', - ], + 'pro_plan_remove_logo' => ':link per rimuovere il logo di Invoice Ninja aderendo al programma pro', + 'pro_plan_remove_logo_link' => 'Clicca qui', 'logout' => 'Log Out', /* Esci */ 'sign_up_to_save' => 'Registrati per salvare il tuo lavoro', @@ -387,7 +374,7 @@ return array( 'notification_quote_sent_subject' => 'Il preventivo :invoice è stato inviato a :client', 'notification_quote_viewed_subject' => 'Il preventivo :invoice è stato visualizzato da :client', 'notification_quote_sent' => 'Al seguente cliente :client è stata inviato il preventivo :invoice per un importo di :amount.', - 'notification_quote_viewed' => 'Il seguente cliente :client ha visualizzato il preventivo :invoice di :amount.', + 'notification_quote_viewed' => 'Il seguente cliente :client ha visualizzato il preventivo :invoice di :amount.', 'session_expired' => 'La vostra sessione è scaduta.', @@ -412,7 +399,7 @@ return array( 'active' => 'Active', 'pending' => 'Pending', 'deleted_user' => 'Successfully deleted user', - 'limit_users' => 'Sorry, this will exceed the limit of ' . MAX_NUM_USERS . ' users', + 'limit_users' => 'Sorry, this will exceed the limit of :limit users', 'confirm_email_invoice' => 'Are you sure you want to email this invoice?', 'confirm_email_quote' => 'Are you sure you want to email this quote?', @@ -435,7 +422,7 @@ return array( 'share_invoice_counter' => 'Share invoice counter', 'invoice_issued_to' => 'Invoice issued to', 'invalid_counter' => 'To prevent a possible conflict please set either an invoice or quote number prefix', - 'mark_sent' => 'Mark sent', + 'mark_sent' => 'Mark sent', 'gateway_help_1' => ':link to sign up for Authorize.net.', @@ -447,7 +434,7 @@ return array( 'more_designs_title' => 'Additional Invoice Designs', 'more_designs_cloud_header' => 'Go Pro for more invoice designs', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Get 6 more invoice designs for just $'.INVOICE_DESIGNS_PRICE, + 'more_designs_self_host_header' => 'Get 6 more invoice designs for just $:price', 'more_designs_self_host_text' => '', 'buy' => 'Buy', 'bought_designs' => 'Successfully added additional invoice designs', @@ -699,7 +686,7 @@ return array( 'email_error' => 'There was a problem sending the email', 'confirm_recurring_timing' => 'Note: emails are sent at the start of the hour.', - 'old_browser' => 'Please use a newer browser', + 'old_browser' => 'Please use a newer browser', 'payment_terms_help' => 'Sets the default invoice due date', 'unlink_account' => 'Unlink Account', 'unlink' => 'Unlink', @@ -796,11 +783,10 @@ return array( 'invoice_quote_number' => 'Numerazione Fatture e Preventivi', 'invoice_charges' => 'Invoice Charges', - 'invitation_status' => [ - 'sent' => 'Email Sent', - 'opened' => 'Email Openend', - 'viewed' => 'Invoice Viewed', - ], + 'invitation_status_sent' => 'Email Sent', + 'invitation_status_opened' => 'Email Openend', + 'invitation_status_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.', @@ -921,14 +907,12 @@ return array( 'no_mapper' => 'No valid mapping for file', 'invalid_csv_header' => 'Invalid CSV Header', - 'email_errors' => [ - 'inactive_client' => 'Emails can not be sent to inactive clients', - 'inactive_contact' => 'Emails can not be sent to inactive contacts', - 'inactive_invoice' => 'Emails can not be sent to inactive invoices', - 'user_unregistered' => 'Please register your account to send emails', - 'user_unconfirmed' => 'Please confirm your account to send emails', - 'invalid_contact_email' => 'Invalid contact email', - ], + 'email_error_inactive_client' => 'Emails can not be sent to inactive clients', + 'email_error_inactive_contact' => 'Emails can not be sent to inactive contacts', + 'email_error_inactive_invoice' => 'Emails can not be sent to inactive invoices', + 'email_error_user_unregistered' => 'Please register your account to send emails', + 'email_error_user_unconfirmed' => 'Please confirm your account to send emails', + 'email_error_invalid_contact_email' => 'Invalid contact email', 'client_portal' => 'Client Portal', 'admin' => 'Admin', @@ -982,7 +966,7 @@ return array( 'email_designs' => 'Email Designs', 'assigned_when_sent' => 'Assigned when sent', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', 'white_label_purchase_link' => 'Purchase a white label license', // Expense / vendor @@ -1089,7 +1073,7 @@ return array( 'archived_bank_account' => 'Successfully archived bank account', 'created_bank_account' => 'Successfully created bank account', 'validate_bank_account' => 'Validate Bank Account', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', 'bank_password_help' => 'Note: your password is transmitted securely and never stored on our servers.', 'bank_password_warning' => 'Warning: your password may be transmitted in plain text, consider enabling HTTPS.', 'username' => 'Username', @@ -1124,7 +1108,7 @@ return array( 'trial_call_to_action' => 'Start Free Trial', 'trial_success' => 'Successfully enabled two week free pro plan trial', 'overdue' => 'Overdue', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', @@ -1155,14 +1139,14 @@ return array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expired', 'invalid_card_number' => 'The credit card number is not valid.', 'invalid_expiry' => 'The expiration date is not valid.', 'invalid_cvv' => 'The CVV is not valid.', 'cost' => 'Cost', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Owner', 'administrator' => 'Administrator', @@ -1180,8 +1164,8 @@ return array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'View Payment', - + 'view_payment' => 'View Payment', + 'january' => 'Gennaio', 'february' => 'Febbraio', 'march' => 'Marzo', @@ -1207,17 +1191,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1226,11 +1208,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1260,9 +1242,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1282,5 +1264,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - + ); diff --git a/resources/lang/ja/texts.php b/resources/lang/ja/texts.php index 29da88f572..f868c46f5c 100644 --- a/resources/lang/ja/texts.php +++ b/resources/lang/ja/texts.php @@ -993,40 +993,26 @@ $LANG = array( 'overdue' => 'Overdue', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', - 'user_email_footer' => 'To adjust your email notification settings please visit '.SITE_URL.'/settings/notifications', - 'reset_password_footer' => 'If you did not request this password reset please email our support: '.CONTACT_EMAIL, - 'limit_users' => 'Sorry, this will exceed the limit of '.MAX_NUM_USERS.' users', - 'more_designs_self_host_header' => 'Get 6 more invoice designs for just $'.INVOICE_DESIGNS_PRICE, - 'old_browser' => 'Please use a newer browser', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', - 'security' => [ - 'too_many_attempts' => 'Too many attempts. Try again in few minutes.', - 'wrong_credentials' => 'メールアドレスもしくはパスワードが正しくありません。', - 'confirmation' => 'アカウントが確認されました!', - 'wrong_confirmation' => '確認コードが違っています。', - 'password_forgot' => 'The information regarding password reset was sent to your email.', - 'password_reset' => 'パスワードが変更されました。', - 'wrong_password_reset' => 'パスワードが正しくありません。もう一度入力してください。', - ], - 'pro_plan' => [ - 'remove_logo' => 'プロプランに加入して、Invoice Ninjaのロゴを消す。 :link', - 'remove_logo_link' => 'こちらをクリック', - ], - 'invitation_status' => [ - 'sent' => 'メール送付済', - 'opened' => 'メール開封済', - 'viewed' => '請求書閲覧済', - ], - 'email_errors' => [ - 'inactive_client' => 'Emails can not be sent to inactive clients', - 'inactive_contact' => 'Emails can not be sent to inactive contacts', - 'inactive_invoice' => 'Emails can not be sent to inactive invoices', - 'user_unregistered' => 'Please register your account to send emails', - 'user_unconfirmed' => 'Please confirm your account to send emails', - 'invalid_contact_email' => 'Invalid contact email', - ], + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', + 'user_email_footer' => 'To adjust your email notification settings please visit :link', + 'reset_password_footer' => 'If you did not request this password reset please email our support: :email', + 'limit_users' => 'Sorry, this will exceed the limit of :limit users', + 'more_designs_self_host_header' => 'Get 6 more invoice designs for just $:price', + 'old_browser' => 'Please use a newer browser', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + + 'pro_plan_remove_logo' => 'プロプランに加入して、Invoice Ninjaのロゴを消す。 :link', + 'pro_plan_remove_logo_link' => 'こちらをクリック', + 'invitation_status_sent' => 'メール送付済', + 'invitation_status_opened' => 'メール開封済', + 'invitation_status_viewed' => '請求書閲覧済', + 'email_error_inactive_client' => 'Emails can not be sent to inactive clients', + 'email_error_inactive_contact' => 'Emails can not be sent to inactive contacts', + 'email_error_inactive_invoice' => 'Emails can not be sent to inactive invoices', + 'email_error_user_unregistered' => 'Please register your account to send emails', + 'email_error_user_unconfirmed' => 'Please confirm your account to send emails', + 'email_error_invalid_contact_email' => 'Invalid contact email', 'navigation' => 'ナビゲーション', 'list_invoices' => '請求書一覧', @@ -1057,14 +1043,14 @@ $LANG = array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expired', 'invalid_card_number' => 'The credit card number is not valid.', 'invalid_expiry' => 'The expiration date is not valid.', 'invalid_cvv' => 'The CVV is not valid.', 'cost' => 'Cost', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Owner', 'administrator' => 'Administrator', @@ -1082,8 +1068,8 @@ $LANG = array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'View Payment', - + 'view_payment' => 'View Payment', + 'january' => 'January', 'february' => 'February', 'march' => 'March', @@ -1109,17 +1095,15 @@ $LANG = array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1128,11 +1112,11 @@ $LANG = array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1162,9 +1146,9 @@ $LANG = array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1184,10 +1168,10 @@ $LANG = array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - - + + ); return $LANG; -?>. \ No newline at end of file +?>. diff --git a/resources/lang/lt/texts.php b/resources/lang/lt/texts.php index 37b336ae22..d1ddb5347c 100644 --- a/resources/lang/lt/texts.php +++ b/resources/lang/lt/texts.php @@ -1,4 +1,4 @@ - 'billed client', 'billed_clients' => 'billed clients', 'active_client' => 'active client', - 'active_clients' => 'active clients', + 'active_clients' => 'active clients', 'invoices_past_due' => 'Invoices Past Due', 'upcoming_invoices' => 'Upcoming invoices', 'average_invoice' => 'Average invoice', @@ -262,41 +262,28 @@ 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.'/settings/notifications', + 'user_email_footer' => 'To adjust your email notification settings please visit :link', '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', 'notification_invoice_viewed_subject' => 'Invoice :invoice was viewed by :client', 'notification_invoice_paid' => 'A payment of :amount was made by client :client towards Invoice :invoice.', 'notification_invoice_sent' => 'The following client :client was emailed Invoice :invoice for :amount.', - 'notification_invoice_viewed' => 'The following client :client viewed Invoice :invoice for :amount.', + 'notification_invoice_viewed' => 'The following client :client viewed Invoice :invoice for :amount.', 'reset_password' => 'You can reset your account password by clicking the following button:', - 'reset_password_footer' => 'If you did not request this password reset please email our support: ' . CONTACT_EMAIL, + 'reset_password_footer' => 'If you did not request this password reset please email our support: :email', // Payment page 'secure_payment' => 'Secure Payment', 'card_number' => 'Card number', - 'expiration_month' => 'Expiration month', + 'expiration_month' => 'Expiration month', 'expiration_year' => 'Expiration year', 'cvv' => 'CVV', - // Security alerts - 'security' => [ - 'too_many_attempts' => 'Too many attempts. Try again in few minutes.', - 'wrong_credentials' => 'Incorrect email or password.', - 'confirmation' => 'Your account has been confirmed!', - 'wrong_confirmation' => 'Wrong confirmation code.', - 'password_forgot' => 'The information regarding password reset was sent to your email.', - 'password_reset' => 'Your password has been changed successfully.', - 'wrong_password_reset' => 'Invalid password. Try again', - ], - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link to remove the Invoice Ninja logo by joining the Pro Plan', - 'remove_logo_link' => 'Click here', - ], + 'pro_plan_remove_logo' => ':link to remove the Invoice Ninja logo by joining the Pro Plan', + 'pro_plan_remove_logo_link' => 'Click here', 'logout' => 'Log Out', 'sign_up_to_save' => 'Sign up to save your work', @@ -312,11 +299,11 @@ return array( 'pro_plan_product' => 'Pro Plan', 'pro_plan_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_success' => 'Thanks for choosing Invoice Ninja\'s Pro plan!

 
- Next Steps

A payable invoice has been sent to the email - address associated with your account. To unlock all of the awesome - Pro features, please follow the instructions on the invoice to pay + Next Steps

A payable invoice has been sent to the email + address associated with your account. To unlock all of the awesome + Pro features, please follow the instructions on the invoice to pay for a year of Pro-level invoicing.

- Can\'t find the invoice? Need further assistance? We\'re happy to help + Can\'t find the invoice? Need further assistance? We\'re happy to help -- email us at contact@invoiceninja.com', 'unsaved_changes' => 'You have unsaved changes', @@ -342,7 +329,7 @@ return array( 'archive_product' => 'Archive Product', 'updated_product' => 'Successfully updated product', 'created_product' => 'Successfully created product', - 'archived_product' => 'Successfully archived product', + 'archived_product' => 'Successfully archived product', 'pro_plan_custom_fields' => ':link to enable custom fields by joining the Pro Plan', 'advanced_settings' => 'Advanced Settings', @@ -395,7 +382,7 @@ return array( 'notification_quote_sent_subject' => 'Quote :invoice was sent to :client', 'notification_quote_viewed_subject' => 'Quote :invoice was viewed by :client', 'notification_quote_sent' => 'The following client :client was emailed Quote :invoice for :amount.', - 'notification_quote_viewed' => 'The following client :client viewed Quote :invoice for :amount.', + 'notification_quote_viewed' => 'The following client :client viewed Quote :invoice for :amount.', 'session_expired' => 'Your session has expired.', @@ -420,7 +407,7 @@ return array( 'active' => 'Active', 'pending' => 'Pending', 'deleted_user' => 'Successfully deleted user', - 'limit_users' => 'Sorry, this will exceed the limit of ' . MAX_NUM_USERS . ' users', + 'limit_users' => 'Sorry, this will exceed the limit of :limit users', 'confirm_email_invoice' => 'Are you sure you want to email this invoice?', 'confirm_email_quote' => 'Are you sure you want to email this quote?', @@ -443,7 +430,7 @@ return array( 'share_invoice_counter' => 'Share invoice counter', 'invoice_issued_to' => 'Invoice issued to', 'invalid_counter' => 'To prevent a possible conflict please set either an invoice or quote number prefix', - 'mark_sent' => 'Mark sent', + 'mark_sent' => 'Mark sent', 'gateway_help_1' => ':link to sign up for Authorize.net.', @@ -455,7 +442,7 @@ return array( 'more_designs_title' => 'Additional Invoice Designs', 'more_designs_cloud_header' => 'Go Pro for more invoice designs', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Get 6 more invoice designs for just $'.INVOICE_DESIGNS_PRICE, + 'more_designs_self_host_header' => 'Get 6 more invoice designs for just $:price', 'more_designs_self_host_text' => '', 'buy' => 'Buy', 'bought_designs' => 'Successfully added additional invoice designs', @@ -706,7 +693,7 @@ return array( 'email_error' => 'There was a problem sending the email', 'confirm_recurring_timing' => 'Note: emails are sent at the start of the hour.', - 'old_browser' => 'Please use a newer browser', + 'old_browser' => 'Please use a newer browser', 'payment_terms_help' => 'Sets the default invoice due date', 'unlink_account' => 'Unlink Account', 'unlink' => 'Unlink', @@ -740,7 +727,7 @@ return array( 'recent_payments' => 'Recent Payments', 'outstanding' => 'Outstanding', 'manage_companies' => 'Manage Companies', - 'total_revenue' => 'Total Revenue', + 'total_revenue' => 'Total Revenue', 'current_user' => 'Current User', 'new_recurring_invoice' => 'New Recurring Invoice', @@ -803,11 +790,10 @@ return array( 'invoice_quote_number' => 'Invoice and Quote Numbers', 'invoice_charges' => 'Invoice Charges', - 'invitation_status' => [ - 'sent' => 'Email Sent', - 'opened' => 'Email Openend', - 'viewed' => 'Invoice Viewed', - ], + 'invitation_status_sent' => 'Email Sent', + 'invitation_status_opened' => 'Email Openend', + 'invitation_status_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.', @@ -928,14 +914,12 @@ return array( 'no_mapper' => 'No valid mapping for file', 'invalid_csv_header' => 'Invalid CSV Header', - 'email_errors' => [ - 'inactive_client' => 'Emails can not be sent to inactive clients', - 'inactive_contact' => 'Emails can not be sent to inactive contacts', - 'inactive_invoice' => 'Emails can not be sent to inactive invoices', - 'user_unregistered' => 'Please register your account to send emails', - 'user_unconfirmed' => 'Please confirm your account to send emails', - 'invalid_contact_email' => 'Invalid contact email', - ], + 'email_error_inactive_client' => 'Emails can not be sent to inactive clients', + 'email_error_inactive_invoice' => 'Emails can not be sent to inactive invoices', + 'email_error_inactive_contact' => 'Emails can not be sent to inactive contacts', + 'email_error_user_unregistered' => 'Please register your account to send emails', + 'email_error_user_unconfirmed' => 'Please confirm your account to send emails', + 'email_error_invalid_contact_email' => 'Invalid contact email', 'client_portal' => 'Client Portal', 'admin' => 'Admin', @@ -989,7 +973,7 @@ return array( 'email_designs' => 'Email Designs', 'assigned_when_sent' => 'Assigned when sent', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', 'white_label_purchase_link' => 'Purchase a white label license', // Expense / vendor @@ -1096,7 +1080,7 @@ return array( 'archived_bank_account' => 'Successfully archived bank account', 'created_bank_account' => 'Successfully created bank account', 'validate_bank_account' => 'Validate Bank Account', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', 'bank_password_help' => 'Note: your password is transmitted securely and never stored on our servers.', 'bank_password_warning' => 'Warning: your password may be transmitted in plain text, consider enabling HTTPS.', 'username' => 'Username', @@ -1131,7 +1115,7 @@ return array( 'trial_call_to_action' => 'Start Free Trial', 'trial_success' => 'Successfully enabled two week free pro plan trial', 'overdue' => 'Overdue', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', @@ -1162,14 +1146,14 @@ return array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expired', 'invalid_card_number' => 'The credit card number is not valid.', 'invalid_expiry' => 'The expiration date is not valid.', 'invalid_cvv' => 'The CVV is not valid.', 'cost' => 'Cost', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Owner', 'administrator' => 'Administrator', @@ -1187,8 +1171,8 @@ return array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'View Payment', - + 'view_payment' => 'View Payment', + 'january' => 'January', 'february' => 'February', 'march' => 'March', @@ -1214,17 +1198,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1233,11 +1215,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1267,9 +1249,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1289,5 +1271,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - -); \ No newline at end of file + +); diff --git a/resources/lang/nb_NO/texts.php b/resources/lang/nb_NO/texts.php index ee1d874448..1fc59f55af 100644 --- a/resources/lang/nb_NO/texts.php +++ b/resources/lang/nb_NO/texts.php @@ -1,4 +1,4 @@ - 'fakturert klient', 'billed_clients' => 'fakturerte klienter', 'active_client' => 'aktiv klient', - 'active_clients' => 'aktive klienter', + 'active_clients' => 'aktive klienter', 'invoices_past_due' => 'Forfalte Fakturaer', 'upcoming_invoices' => 'Forestående Fakturaer', 'average_invoice' => 'Gjennomsnittlige Fakturaer', @@ -261,16 +261,16 @@ return array( 'email_salutation' => 'Kjære :name,', 'email_signature' => 'Med vennlig hilsen,', 'email_from' => 'Invoice Ninja Gjengen', - 'user_email_footer' => 'For å justere varslingsinnstillingene vennligst besøk '.SITE_URL.'/settings/notifications', + 'user_email_footer' => 'For å justere varslingsinnstillingene vennligst besøk :link', 'invoice_link_message' => 'Hvis du vil se din klientfaktura klikk på lenken under:', 'notification_invoice_paid_subject' => 'Faktura :invoice betalt av :client', 'notification_invoice_sent_subject' => 'Faktura :invoice sendt til :client', 'notification_invoice_viewed_subject' => 'Faktura :invoice sett av :client', 'notification_invoice_paid' => 'En betaling pålydende :amount ble gjort av :client for faktura :invoice.', 'notification_invoice_sent' => 'E-post har blitt sendt til :client - Faktura :invoice pålydende :amount.', - 'notification_invoice_viewed' => ':client har nå sett faktura :invoice pålydende :amount.', + 'notification_invoice_viewed' => ':client har nå sett faktura :invoice pålydende :amount.', 'reset_password' => 'Du kan nullstille ditt passord ved å besøke følgende lenke:', - 'reset_password_footer' => 'Hvis du ikke ba om å få nullstillt ditt passord, vennligst kontakt kundeservice: ' . CONTACT_EMAIL, + 'reset_password_footer' => 'Hvis du ikke ba om å få nullstillt ditt passord, vennligst kontakt kundeservice: :email', // Payment page @@ -280,22 +280,9 @@ return array( 'expiration_year' => 'Utløpsår', 'cvv' => 'CVV', - // Security alerts - 'security' => [ - 'too_many_attempts' => 'For mange forsøk. Prøv igjen om noen få minutter.', - 'wrong_credentials' => 'Feil e-post eller passord.', - 'confirmation' => 'Din konto har blitt bekreftet!', - 'wrong_confirmation' => 'Feil bekreftelseskode.', - 'password_forgot' => 'Informasjonen om tilbakestilling av passord ble sendt til e-postadressen.', - 'password_reset' => 'Passordet ditt er endret.', - 'wrong_password_reset' => 'Ugyldig passord. Prøv på nytt', - ], - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link for å fjerne Invoice Ninja-logoen, oppgrader til en Pro Plan', - 'remove_logo_link' => 'Klikk her', - ], + 'pro_plan_remove_logo' => ':link for å fjerne Invoice Ninja-logoen, oppgrader til en Pro Plan', + 'pro_plan_remove_logo_link' => 'Klikk her', 'logout' => 'Logg ut', 'sign_up_to_save' => 'Registrer deg for å lagre arbeidet ditt', @@ -311,11 +298,11 @@ return array( 'pro_plan_product' => 'Pro Plan', 'pro_plan_description' => 'Ett års innmelding i Invoice Ninja Pro Plan.', 'pro_plan_success' => 'Takk for at du valgte Invoice Ninja\'s Pro plan!

 
- Neste steg

en betalbar faktura er sendt til e-postadressen - som er tilknyttet kontoen din. For å låse opp alle de utrolige - Pro-funksjonene, kan du følge instruksjonene på fakturaen til å + Neste steg

en betalbar faktura er sendt til e-postadressen + som er tilknyttet kontoen din. For å låse opp alle de utrolige + Pro-funksjonene, kan du følge instruksjonene på fakturaen til å betale for et år med Pro-nivå funksjoner.

- Finner du ikke fakturaen? Trenger du mer hjelp? Vi hjelper deg gjerne om det skulle være noe + Finner du ikke fakturaen? Trenger du mer hjelp? Vi hjelper deg gjerne om det skulle være noe -- kontakt oss på contact@invoiceninja.com', 'unsaved_changes' => 'Du har ulagrede endringer', @@ -341,7 +328,7 @@ return array( 'archive_product' => 'Arkiver produkt', 'updated_product' => 'Produkt oppdatert', 'created_product' => 'Produkt lagret', - 'archived_product' => 'Produkt arkivert', + 'archived_product' => 'Produkt arkivert', 'pro_plan_custom_fields' => ':link for å aktivere egendefinerte felt ved å delta i Pro Plan', 'advanced_settings' => 'Avanserte innstillinger', @@ -394,7 +381,7 @@ return array( 'notification_quote_sent_subject' => 'Tilbud :invoice sendt til :client', 'notification_quote_viewed_subject' => 'Tilbudet :invoice er nå sett av :client', 'notification_quote_sent' => 'Følgende klient :client ble sendt tilbudsfaktura :invoice pålydende :amount.', - 'notification_quote_viewed' => 'Følgende klient :client har nå sett tilbudsfakturaen :invoice pålydende :amount.', + 'notification_quote_viewed' => 'Følgende klient :client har nå sett tilbudsfakturaen :invoice pålydende :amount.', 'session_expired' => 'Økten er utløpt.', @@ -419,7 +406,7 @@ return array( 'active' => 'Aktiv', 'pending' => 'Avventer', 'deleted_user' => 'Bruker slettet', - 'limit_users' => 'Dessverre, vil dette overstige grensen på ' . MAX_NUM_USERS . ' brukere', + 'limit_users' => 'Dessverre, vil dette overstige grensen på :limit brukere', 'confirm_email_invoice' => 'Er du sikker på at du ønsker å e-poste denne fakturaen?', 'confirm_email_quote' => 'Er du sikker på at du ønsker å e-poste dette tilbudet?', @@ -453,7 +440,7 @@ return array( 'more_designs_title' => 'Flere Faktura Design', 'more_designs_cloud_header' => 'Gå Pro for flere faktura design', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Få 6 flere design for bare $'.INVOICE_DESIGNS_PRICE, + 'more_designs_self_host_header' => 'Få 6 flere design for bare $:price', 'more_designs_self_host_text' => '', 'buy' => 'Kjøp', 'bought_designs' => 'Det ble suksessfullt lagt til flere design', @@ -702,7 +689,7 @@ return array( 'email_error' => 'Det oppstod et problem med utsending av e-posten', 'confirm_recurring_timing' => 'Info: e-poster er sendt på starten av en time.', - 'old_browser' => 'Vennligst bruk en nyere nettleser', + 'old_browser' => 'Vennligst bruk en nyere nettleser', 'payment_terms_help' => 'Setter standard faktura dato', 'unlink_account' => 'Frakoble Konto', 'unlink' => 'Frakoble', @@ -799,11 +786,9 @@ return array( 'invoice_quote_number' => 'Faktura og Tilbuds Nummer', 'invoice_charges' => 'Faktura Kostnader', - 'invitation_status' => [ - 'sent' => 'E-post Sendt', - 'opened' => 'E-post Åpnet', - 'viewed' => 'Faktura Vist', - ], + 'invitation_status_sent' => 'E-post Sendt', + 'invitation_status_opened' => 'E-post Åpnet', + 'invitation_status_viewed' => 'Faktura Vist', 'notification_invoice_bounced' => 'Vi klarte ikke å levere Faktura :invoice til :contact.', 'notification_invoice_bounced_subject' => 'Klarte ikke å levere Faktura :invoice', @@ -926,14 +911,12 @@ return array( 'no_mapper' => 'No valid mapping for file', 'invalid_csv_header' => 'Invalid CSV Header', - 'email_errors' => [ - 'inactive_client' => 'Emails can not be sent to inactive clients', - 'inactive_contact' => 'Emails can not be sent to inactive contacts', - 'inactive_invoice' => 'Emails can not be sent to inactive invoices', - 'user_unregistered' => 'Please register your account to send emails', - 'user_unconfirmed' => 'Please confirm your account to send emails', - 'invalid_contact_email' => 'Invalid contact email', - ], + 'email_error_inactive_client' => 'Emails can not be sent to inactive clients', + 'email_error_inactive_contact' => 'Emails can not be sent to inactive contacts', + 'email_error_inactive_invoice' => 'Emails can not be sent to inactive invoices', + 'email_error_user_unregistered' => 'Please register your account to send emails', + 'email_error_user_unconfirmed' => 'Please confirm your account to send emails', + 'email_error_invalid_contact_email' => 'Invalid contact email', 'client_portal' => 'Client Portal', 'admin' => 'Admin', @@ -987,7 +970,7 @@ return array( 'email_designs' => 'Email Designs', 'assigned_when_sent' => 'Assigned when sent', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', 'white_label_purchase_link' => 'Purchase a white label license', // Expense / vendor @@ -1094,7 +1077,7 @@ return array( 'archived_bank_account' => 'Successfully archived bank account', 'created_bank_account' => 'Successfully created bank account', 'validate_bank_account' => 'Validate Bank Account', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', 'bank_password_help' => 'Note: your password is transmitted securely and never stored on our servers.', 'bank_password_warning' => 'Warning: your password may be transmitted in plain text, consider enabling HTTPS.', 'username' => 'Username', @@ -1129,7 +1112,7 @@ return array( 'trial_call_to_action' => 'Start Free Trial', 'trial_success' => 'Successfully enabled two week free pro plan trial', 'overdue' => 'Overdue', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', @@ -1160,14 +1143,14 @@ return array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expired', 'invalid_card_number' => 'The credit card number is not valid.', 'invalid_expiry' => 'The expiration date is not valid.', 'invalid_cvv' => 'The CVV is not valid.', 'cost' => 'Cost', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Owner', 'administrator' => 'Administrator', @@ -1185,8 +1168,8 @@ return array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'View Payment', - + 'view_payment' => 'View Payment', + 'january' => 'January', 'february' => 'February', 'march' => 'March', @@ -1212,17 +1195,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1231,11 +1212,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1265,9 +1246,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1287,5 +1268,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - -); \ No newline at end of file + +); diff --git a/resources/lang/nl/texts.php b/resources/lang/nl/texts.php index b4b5214f76..cc73bdfc72 100644 --- a/resources/lang/nl/texts.php +++ b/resources/lang/nl/texts.php @@ -261,7 +261,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.'/settings/notifications om uw e-mail notificatie instellingen aan te passen', + 'user_email_footer' => 'Ga alstublieft naar :link om uw e-mail notificatie instellingen aan te passen', 'invoice_link_message' => 'Klik op volgende link om de Factuur van uw klant te bekijken:', 'notification_invoice_paid_subject' => 'Factuur :invoice is betaald door :client', 'notification_invoice_sent_subject' => 'Factuur :invoice is gezonden door :client', @@ -270,7 +270,7 @@ return array( 'notification_invoice_sent' => 'De volgende klant :client heeft Factuur :invoice voor :amount gemaild gekregen.', 'notification_invoice_viewed' => 'De volgende klant :client heeft Factuur :invoice voor :amount bekeken.', 'reset_password' => 'U kunt het wachtwoord van uw account resetten door op de volgende link te klikken:', - 'reset_password_footer' => 'Neem a.u.b. contact op met onze helpdesk indien u deze wachtwoordreset niet heeft aangevraagd. Het e-mailadres van de helpdesk is '.CONTACT_EMAIL, + 'reset_password_footer' => 'Neem a.u.b. contact op met onze helpdesk indien u deze wachtwoordreset niet heeft aangevraagd. Het e-mailadres van de helpdesk is :email', // Payment page 'secure_payment' => 'Veilige betaling', @@ -279,22 +279,9 @@ return array( 'expiration_year' => 'Verval jaar', 'cvv' => 'CVV', - // Security alerts - 'security' => [ - 'too_many_attempts' => 'Te veel pogingen. Probeer opnieuw binnen enkele minuten.', - 'wrong_credentials' => 'Verkeerd e-mailadres of wachtwoord.', - 'confirmation' => 'Uw account is bevestigd!', - 'wrong_confirmation' => 'Verkeerde bevestigingscode.', - 'password_forgot' => 'De informatie over uw wachtwoordreset is verzonden naar uw e-mailadres.', - 'password_reset' => 'Uw wachtwoord is succesvol aangepast.', - 'wrong_password_reset' => 'Ongeldig wachtwoord. Probeer opnieuw', - ], - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link om het InvoiceNinja logo te verwijderen door het pro plan te nemen', - 'remove_logo_link' => 'Klik hier', - ], + 'pro_plan_remove_logo' => ':link om het InvoiceNinja logo te verwijderen door het pro plan te nemen', + 'pro_plan_remove_logo_link' => 'Klik hier', 'logout' => 'Afmelden', 'sign_up_to_save' => 'Registreer u om uw werk op te slaan', @@ -415,7 +402,7 @@ return array( 'active' => 'Actief', 'pending' => 'In afwachting', 'deleted_user' => 'Gebruiker succesvol verwijderd', - 'limit_users' => 'Sorry, dit zou de limiet van '.MAX_NUM_USERS.' gebruikers overschrijden', + 'limit_users' => 'Sorry, dit zou de limiet van :limit gebruikers overschrijden', 'confirm_email_invoice' => 'Weet u zeker dat u deze factuur wilt e-mailen?', 'confirm_email_quote' => 'Weet u zeker dat u deze offerte wilt e-mailen?', @@ -449,7 +436,7 @@ return array( 'more_designs_title' => 'Aanvullende factuurontwerpen', 'more_designs_cloud_header' => 'Neem Pro Plan voor meer factuurontwerpen', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Krijg 6 extra factuurontwerpen voor maar $'.INVOICE_DESIGNS_PRICE, + 'more_designs_self_host_header' => 'Krijg 6 extra factuurontwerpen voor maar $:price', 'more_designs_self_host_text' => '', 'buy' => 'Koop', 'bought_designs' => 'Aanvullende factuurontwerpen succesvol toegevoegd', @@ -698,7 +685,7 @@ return array( 'email_error' => 'Er was een probleem met versturen van de e-mail', 'confirm_recurring_timing' => 'Opmerking: e-mails worden aan het begin van het uur verzonden.', - 'old_browser' => 'Gebruik a.u.b. een moderne browser', + 'old_browser' => 'Gebruik a.u.b. een moderne browser', 'payment_terms_help' => 'Stel de standaard factuurvervaldatum in', 'unlink_account' => 'Koppel account los', 'unlink' => 'Koppel los', @@ -795,11 +782,10 @@ return array( 'invoice_quote_number' => 'Factuur- en offertenummers', 'invoice_charges' => 'Facturatiekosten', - 'invitation_status' => [ - 'sent' => 'E-mail verstuurd', - 'opened' => 'E-mail geopend', - 'viewed' => 'Factuur bekeken', - ], + 'invitation_status_sent' => 'E-mail verstuurd', + 'invitation_status_opened' => 'E-mail geopend', + 'invitation_status_viewed' => 'Factuur bekeken', + 'notification_invoice_bounced' => 'We konden factuur :invoice niet afleveren bij :contact.', 'notification_invoice_bounced_subject' => 'Factuur :invoice kon niet worden afgeleverd', 'notification_quote_bounced' => 'We konden offerte :invoice niet afleveren bij :contact.', @@ -921,14 +907,12 @@ return array( 'no_mapper' => 'Geen geldige mapping voor bestand', 'invalid_csv_header' => 'Ongeldige CSV kop', - 'email_errors' => [ - 'inactive_client' => 'E-mails kunnen niet worden verstuurd naar inactieve klanten', - 'inactive_contact' => 'E-mails kunnen niet worden verstuurd naar inactieve contactpersonen', - 'inactive_invoice' => 'E-mails kunnen niet worden verstuurd naar inactieve facturen', - 'user_unregistered' => 'Registreer een account om e-mails te kunnen versturen', - 'user_unconfirmed' => 'Bevestig uw account om e-mails te kunnen versturen', - 'invalid_contact_email' => 'Ongeldig e-mailadres van contactpersoon', - ], + 'email_error_inactive_client' => 'E-mails kunnen niet worden verstuurd naar inactieve klanten', + 'email_error_inactive_contact' => 'E-mails kunnen niet worden verstuurd naar inactieve contactpersonen', + 'email_error_inactive_invoice' => 'E-mails kunnen niet worden verstuurd naar inactieve facturen', + 'email_error_user_unregistered' => 'Registreer een account om e-mails te kunnen versturen', + 'email_error_user_unconfirmed' => 'Bevestig uw account om e-mails te kunnen versturen', + 'email_error_invalid_contact_email' => 'Ongeldig e-mailadres van contactpersoon', 'client_portal' => 'Klantenportaal', 'admin' => 'Admin', @@ -982,7 +966,7 @@ return array( 'email_designs' => 'E-mail Ontwerpen', 'assigned_when_sent' => 'Toegwezen zodra verzonden', - 'white_label_custom_css' => ':link voor $'.WHITE_LABEL_PRICE.' om eigen opmaak te gebruiken en ons project te ondersteunen.', + 'white_label_custom_css' => ':link voor $:price om eigen opmaak te gebruiken en ons project te ondersteunen.', 'white_label_purchase_link' => 'Koop een whitelabel licentie', // Expense / vendor @@ -1086,7 +1070,7 @@ return array( 'archived_bank_account' => 'Bankrekening succesvol gearchiveerd', 'created_bank_account' => 'Bankrekening succesvol toegevoegd', 'validate_bank_account' => 'Bankrekening valideren', - 'bank_accounts_help' => 'Koppel een bankrekening om automatisch uitgaven en leveranciers te importeren. Ondersteund American Express en 400+ banken uit de VS.', + 'bank_accounts_help' => 'Koppel een bankrekening om automatisch uitgaven en leveranciers te importeren. Ondersteund American Express en 400+ banken uit de VS.', 'bank_password_help' => 'Opmerking: uw wachtwoord wordt beveiligd verstuurd en wordt nooit op onze servers opgeslagen.', 'bank_password_warning' => 'Waarschuwing: uw wachtwoord wordt mogelijk als leesbare tekst verzonden, overweeg HTTPS in te schakelen.', 'username' => 'Gebruikersnaam', @@ -1121,7 +1105,7 @@ return array( 'trial_call_to_action' => 'Start gratis probeerversie', 'trial_success' => 'De gratis twee weken durende probeerversie van het pro plan is succesvol geactiveerd.', 'overdue' => 'Verlopen', - 'white_label_text' => 'Koop een één jaar geldige white label licentie van $'.WHITE_LABEL_PRICE.' om de Invoice Ninja logo\'s in het klantenportaal te verbergen en ons project te ondersteunen.', + 'white_label_text' => 'Koop een één jaar geldige white label licentie van $:price om de Invoice Ninja logo\'s in het klantenportaal te verbergen en ons project te ondersteunen.', 'navigation' => 'Navigatie', 'list_invoices' => 'Toon Facturen', @@ -1152,14 +1136,14 @@ return array( 'enable_portal_password_help'=>'Geeft u de mogelijkheid om een wachtwoord in te stellen voor elke contactpersoon. Als er een wachtwoord is ingesteld moet de contactpersoon het wachtwoord invoeren voordat deze facturen kan bekijken.', 'send_portal_password'=>'Wachtwoord automatisch genereren', 'send_portal_password_help'=>'Als er geen wachtwoord is ingesteld zal deze automatisch worden gegenereerd en verzonden bij de eerste factuur.', - + 'expired' => 'Verlopen', 'invalid_card_number' => 'Het creditcardnummer is niet geldig.', 'invalid_expiry' => 'De verloopdatum is niet geldig.', 'invalid_cvv' => 'Het CVV-nummer is niet geldig.', 'cost' => 'Kosten', 'create_invoice_for_sample' => 'Opmerking: maak uw eerste factuur om hier een voorbeeld te zien.', - + // User Permissions 'owner' => 'Eigenaar', 'administrator' => 'Beheerder', @@ -1178,7 +1162,7 @@ return array( 'view_all_help' => 'Gebruiker toestemming geven om regels te bekijken die hij niet heeft gemaakt', 'edit_all_help' => 'Gebruiker toestemming geven om regels te bewerken die hij niet heeft gemaakt', 'view_payment' => 'Betaling bekijken', - + 'january' => 'januari', 'february' => 'februari', 'march' => 'maart', @@ -1204,17 +1188,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1223,11 +1205,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1257,9 +1239,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1279,5 +1261,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - -); \ No newline at end of file + +); diff --git a/resources/lang/pl/texts.php b/resources/lang/pl/texts.php index 176e852046..56ecd1472f 100644 --- a/resources/lang/pl/texts.php +++ b/resources/lang/pl/texts.php @@ -992,40 +992,26 @@ $LANG = array( 'overdue' => 'Zaległy', - 'white_label_text' => 'Kup white label licencję na JEDEN ROK za $'.WHITE_LABEL_PRICE.' aby usunąć z portalu klienta logo Invoice Ninja i wesprzeć nasz projekt.', - 'user_email_footer' => 'Aby dostosować ustawienia powiadomień email, zobacz '.SITE_URL.'/settings/notifications', - 'reset_password_footer' => 'If you did not request this password reset please email our support: '.CONTACT_EMAIL, - 'limit_users' => 'Sorry, this will exceed the limit of '.MAX_NUM_USERS.' users', - 'more_designs_self_host_header' => 'Kup 6 szablonów faktur za jedyne $'.INVOICE_DESIGNS_PRICE, - 'old_browser' => 'Proszę użyć nowszej przeglądarki', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', - 'security' => [ - 'too_many_attempts' => 'Zbyt wiele prób. Spróbuj ponownie za kilka minut.', - 'wrong_credentials' => 'Nieprawidłowy e-mail lub hasło.', - 'confirmation' => 'Twoje konto zostało potwierdzone!', - 'wrong_confirmation' => 'Błędny kod potwierdzający.', - 'password_forgot' => 'Informacje dotyczące resetowania hasła zostały wysłane na Twój adres e-mail.', - 'password_reset' => 'Twoje hasło zostało zmienione.', - 'wrong_password_reset' => 'Nieprawidłowe hasło. Spróbuj ponownie', - ], - 'pro_plan' => [ - 'remove_logo' => ':link to remove the Invoice Ninja logo by joining the Pro Plan', - 'remove_logo_link' => 'Kliknij tutaj', - ], - 'invitation_status' => [ - 'sent' => 'E-mail wysłany', - 'opened' => 'Email otwarty', - 'viewed' => 'Przeglądana faktura', - ], - 'email_errors' => [ - 'inactive_client' => 'E-maile nie mogą być wysyłane do klientów nieaktywnych', - 'inactive_contact' => 'E-mail nie może zostać wysłany do nieaktywnych kontaktów', - 'inactive_invoice' => 'E-mail nie może zostać wysłany do nieaktywnych faktur', - 'user_unregistered' => 'Proszę zarejestrować swoje konto, aby wysyłać e-maile', - 'user_unconfirmed' => 'Proszę potwierdzić swoje konto do wysyłania e-maili', - 'invalid_contact_email' => 'Nieprawidłowy e-mail kontaktowy', - ], + 'white_label_text' => 'Kup white label licencję na JEDEN ROK za $:price aby usunąć z portalu klienta logo Invoice Ninja i wesprzeć nasz projekt.', + 'user_email_footer' => 'Aby dostosować ustawienia powiadomień email, zobacz :link', + 'reset_password_footer' => 'If you did not request this password reset please email our support: :email', + 'limit_users' => 'Sorry, this will exceed the limit of :limit users', + 'more_designs_self_host_header' => 'Kup 6 szablonów faktur za jedyne $:price', + 'old_browser' => 'Proszę użyć nowszej przeglądarki', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + + 'pro_plan_remove_logo' => ':link to remove the Invoice Ninja logo by joining the Pro Plan', + 'pro_plan_remove_logo_link' => 'Kliknij tutaj', + 'invitation_status_sent' => 'E-mail wysłany', + 'invitation_status_opened' => 'Email otwarty', + 'invitation_status_viewed' => 'Przeglądana faktura', + 'email_error_inactive_client' => 'E-maile nie mogą być wysyłane do klientów nieaktywnych', + 'email_error_inactive_contact' => 'E-mail nie może zostać wysłany do nieaktywnych kontaktów', + 'email_error_inactive_invoice' => 'E-mail nie może zostać wysłany do nieaktywnych faktur', + 'email_error_user_unregistered' => 'Proszę zarejestrować swoje konto, aby wysyłać e-maile', + 'email_error_user_unconfirmed' => 'Proszę potwierdzić swoje konto do wysyłania e-maili', + 'email_error_invalid_contact_email' => 'Nieprawidłowy e-mail kontaktowy', 'navigation' => 'Nawigacja', 'list_invoices' => 'Lista faktur', @@ -1054,14 +1040,14 @@ $LANG = array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Wygasło', 'invalid_card_number' => 'Numer karty kredytowej jest nieprawidłowy.', 'invalid_expiry' => 'Data ważności jest nieprawidłowa.', 'invalid_cvv' => 'Kod CVV jest nieprawidłowy.', 'cost' => 'Koszt', 'create_invoice_for_sample' => 'Notatka: aby zobaczyć podgląd, utwórz fakturę.', - + // User Permissions 'owner' => 'Właściciel', 'administrator' => 'Administrator', @@ -1080,7 +1066,7 @@ $LANG = array( 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', 'view_payment' => 'Zobacz wpłatę', - + 'january' => 'Styczeń', 'february' => 'Luty', 'march' => 'Marzec', @@ -1093,7 +1079,7 @@ $LANG = array( 'october' => 'Październik', 'november' => 'Listopad', 'december' => 'Grudzień', - + // Documents 'documents_header' => 'Dokumenty:', 'email_documents_header' => 'Dokumenty:', @@ -1106,17 +1092,15 @@ $LANG = array( 'document_email_attachment' => 'Załącz dokumenty', 'download_documents' => 'Ściągnij dokumenty (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Upuść pliki lub kliknij, aby przesłać', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'Plik jest zbyt duży ({{filesize}}MiB). Max rozmiar pliku: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'Nie możesz przesłać plików tego typu.', - 'ResponseError' => 'Serwer zwraca {{statusCode}} kod.', - 'CancelUpload' => 'Anuluj przesyłanie', - 'CancelUploadConfirmation' => 'Czy na pewno chcesz anulować przesyłanie pliku?', - 'RemoveFile' => 'Usuń plik', - ), + 'dropzone_default_message' => 'Upuść pliki lub kliknij, aby przesłać', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'Plik jest zbyt duży ({{filesize}}MiB). Max rozmiar pliku: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'Nie możesz przesłać plików tego typu.', + 'dropzone_response_error' => 'Serwer zwraca {{statusCode}} kod.', + 'dropzone_cancel_upload' => 'Anuluj przesyłanie', + 'dropzone_cancel_upload_confirmation' => 'Czy na pewno chcesz anulować przesyłanie pliku?', + 'dropzone_remove_file' => 'Usuń plik', 'documents' => 'Dokumenty', 'document_date' => 'Data dokumentu', 'document_size' => 'Rozmiar', @@ -1125,11 +1109,11 @@ $LANG = array( 'enable_client_portal_help' => 'Pokaż/ukryj portal klienta.', 'enable_client_portal_dashboard' => 'Pulpit', 'enable_client_portal_dashboard_help' => 'Pokaż/ukryj pulpit w panelu klienta.', - + // Plans 'account_management' => 'Zarządzanie kontem', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Aktualizuj', 'plan_change' => 'Zmień plan', 'pending_change_to' => 'Zmienia się na', @@ -1159,9 +1143,9 @@ $LANG = array( 'plan_paid' => 'Termin rozpoczął', 'plan_started' => 'Plan rozpoczął', 'plan_expires' => 'Plan Wygasa', - + 'white_label_button' => 'Biała etykieta', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Plan Enterprise', @@ -1181,9 +1165,9 @@ $LANG = array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - + ); return $LANG; -?>. \ No newline at end of file +?>. diff --git a/resources/lang/pt_BR/texts.php b/resources/lang/pt_BR/texts.php index 94d02fb373..da13a745e0 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' => 'Atenciosamente,', 'email_from' => 'Equipe InvoiceNinja', - 'user_email_footer' => 'Para ajustar suas configurações de notificações de e-mail acesse '.SITE_URL.'/settings/notifications', + 'user_email_footer' => 'Para ajustar suas configurações de notificações de e-mail acesse :link', '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', @@ -267,7 +267,7 @@ return array( 'notification_invoice_sent' => 'O cliente :client foi notificado por e-mail referente à fatura :invoice de :amount.', 'notification_invoice_viewed' => 'O cliente :client visualizou a fatura :invoice de :amount.', 'reset_password' => 'Você pode redefinir a sua senha clicando no seguinte link:', - 'reset_password_footer' => 'Se você não solicitou a redefinição de sua senha por favor envie um e-mail para o nosso suporte: '.CONTACT_EMAIL, + 'reset_password_footer' => 'Se você não solicitou a redefinição de sua senha por favor envie um e-mail para o nosso suporte: :email', // Payment page 'secure_payment' => 'Pagamento Seguro', @@ -276,23 +276,9 @@ return array( 'expiration_year' => 'Ano de expiração', 'cvv' => 'CVV', - // This File was missing the security alerts. I'm not familiar with this language, Can someone translate? - // Security alerts - 'security' => [ - 'too_many_attempts' => 'Muitas tentativas. Tente novamente em alguns minutos.', - 'wrong_credentials' => 'E-mail ou senha incorretos.', - 'confirmation' => 'Sua conta foi confirmada!', - 'wrong_confirmation' => 'Código de confirmação incorreto.', - 'password_forgot' => 'As informações para redefinição de senha foi enviada para seu e-mail.', - 'password_reset' => 'Senha atualizada com sucesso.', - 'wrong_password_reset' => 'Senha inválida. Tente novamente', - ], - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link para remover a logo do Invoice Ninja contratando o plano profissional', - 'remove_logo_link' => 'Clique aqui', - ], + 'pro_plan_remove_logo' => ':link para remover a logo do Invoice Ninja contratando o plano profissional', + 'pro_plan_remove_logo_link' => 'Clique aqui', 'logout' => 'Sair', 'sign_up_to_save' => 'Faça login para salvar o seu trabalho', @@ -413,7 +399,7 @@ return array( 'active' => 'Ativo', 'pending' => 'Pendente', 'deleted_user' => 'Usuário deletado', - 'limit_users' => 'Desculpe, isto irá exceder o limite de '.MAX_NUM_USERS.' usuários', + 'limit_users' => 'Desculpe, isto irá exceder o limite de :limit usuários', 'confirm_email_invoice' => 'Deseja enviar esta fatura?', 'confirm_email_quote' => 'Deseja enviar este orçamento?', @@ -447,7 +433,7 @@ return array( 'more_designs_title' => 'Modelo Adicionais', 'more_designs_cloud_header' => 'Adquira o Plano Pro para mais modelos', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Obtenha mais 6 modelos de faturas por apenas $'.INVOICE_DESIGNS_PRICE, + 'more_designs_self_host_header' => 'Obtenha mais 6 modelos de faturas por apenas $:price', 'more_designs_self_host_text' => '', 'buy' => 'Comprar', 'bought_designs' => 'Novos Modelos Adicionados', @@ -695,7 +681,7 @@ return array( 'email_error' => 'Houve um problema ao enviar o e-mail', 'confirm_recurring_timing' => 'Aviso: e-mails são enviados na hora de início.', - 'old_browser' => 'Utilize um navegador atualizado', + 'old_browser' => 'Utilize um navegador atualizado', 'payment_terms_help' => 'Defina a data de vencimento padrão', 'unlink_account' => 'Desvincular Conta', 'unlink' => 'Desvincular', @@ -792,11 +778,10 @@ return array( 'invoice_quote_number' => 'Numero de Faturas e Orçamentos', 'invoice_charges' => 'Encargos da Fatura', - 'invitation_status' => [ - 'sent' => 'E-mail Enviado', - 'opened' => 'E-mail Aberto', - 'viewed' => 'E-mail Visualizado', - ], + 'invitation_status_sent' => 'E-mail Enviado', + 'invitation_status_opened' => 'E-mail Aberto', + 'invitation_status_viewed' => 'E-mail Visualizado', + 'notification_invoice_bounced' => 'Não foi possível entregar a Fatura :invoice para :contact.', 'notification_invoice_bounced_subject' => 'Fatura :invoice não foi entregue', 'notification_quote_bounced' => 'Não foi possível entregar o Orçamento :invoice para :contact.', @@ -908,14 +893,12 @@ return array( 'include' => 'Incluir', 'logo_too_large' => 'Sua logo tem :size, para uma melhor performance sugerimos que este tamanho não ultrapasse 200KB', - 'email_errors' => [ - 'inactive_client' => 'Não é possível enviar e-mails para clientes intativos', - 'inactive_contact' => 'Não é possível enviar e-mails para contatos intativos', - 'inactive_invoice' => 'Não é possível enviar e-mails em faturas intativas', - 'user_unregistered' => 'Registre sua conta para enviar e-mails', - 'user_unconfirmed' => 'Confirme sua conta para enviar e-mails', - 'invalid_contact_email' => 'E-mail do contato inválido', - ], + 'email_error_inactive_client' => 'Não é possível enviar e-mails para clientes intativos', + 'email_error_inactive_contact' => 'Não é possível enviar e-mails para contatos intativos', + 'email_error_inactive_invoice' => 'Não é possível enviar e-mails em faturas intativas', + 'email_error_user_unregistered' => 'Registre sua conta para enviar e-mails', + 'email_error_user_unconfirmed' => 'Confirme sua conta para enviar e-mails', + 'email_error_invalid_contact_email' => 'E-mail do contato inválido', 'import_freshbooks' => 'Importar de FreshBooks', 'import_data' => 'Importar Dados', @@ -979,7 +962,7 @@ return array( 'email_designs' => 'Design de E-mails', 'assigned_when_sent' => 'Assinar quando enviar', - 'white_label_custom_css' => ':link apenas $'.WHITE_LABEL_PRICE.' para permitir um estilo personalizado e apoiar o nosso projecto.', + 'white_label_custom_css' => ':link apenas $:price para permitir um estilo personalizado e apoiar o nosso projecto.', 'white_label_purchase_link' => 'Adquira uma licença white label', // Expense / vendor @@ -1083,7 +1066,7 @@ return array( 'archived_bank_account' => 'Conta bancária arquivada com sucesso', 'created_bank_account' => 'Conta bancária criada com sucesso', 'validate_bank_account' => 'Validar Conta Bancária', - 'bank_accounts_help' => 'Conecte sua conta bancária para importar suas despesas e criar fornecedores. Suporte ao American Express e 400+ bancos americanos.', + 'bank_accounts_help' => 'Conecte sua conta bancária para importar suas despesas e criar fornecedores. Suporte ao American Express e 400+ bancos americanos.', 'bank_password_help' => 'Nota: sua senha é transferida de forma segura e não será armazenada em nossos servidores.', 'bank_password_warning' => 'Atenção: sua senha será transferida de forma não segura, considere habilitar HTTPS.', 'username' => 'Usuário', @@ -1118,7 +1101,7 @@ return array( 'trial_call_to_action' => 'Iniciar período de testes', 'trial_success' => 'Duas semanas de testes foi habilitado com sucesso', 'overdue' => 'Vencido', - 'white_label_text' => 'Adquira UM ano de licença white label por $'.WHITE_LABEL_PRICE.' para remover a marca Invoice Ninja do portal do cliente e ajudar nosso projeto.', + 'white_label_text' => 'Adquira UM ano de licença white label por $:price para remover a marca Invoice Ninja do portal do cliente e ajudar nosso projeto.', 'navigation' => 'Navegação', 'list_invoices' => 'Listar Faturas', @@ -1149,14 +1132,14 @@ return array( 'enable_portal_password_help'=>'Permite definir uma senha para cada contato. Se uma senha for definida, o contato deverá informar sua senha antes de visualizar a fatura.', 'send_portal_password'=>'Gerar senha automaticamente', 'send_portal_password_help'=>'Se uma senha não for definida, uma senha será gerada e enviada juntamente com a primeira fatura.', - + 'expired' => 'Expireda', 'invalid_card_number' => 'Cartão de Crédito inválido.', 'invalid_expiry' => 'Data para expirar não é valida.', 'invalid_cvv' => 'O código CVV não é válido.', 'cost' => 'Custo', 'create_invoice_for_sample' => 'Nota: cria sua primeira fatura para visualizar aqui.', - + // User Permissions 'owner' => 'Proprietário', 'administrator' => 'Administrador', @@ -1174,8 +1157,8 @@ return array( 'create_all_help' => 'Permite o usuário criar e alterar todos os regitros', 'view_all_help' => 'Permite usuario visualizar regitros que ele não criou', 'edit_all_help' => 'Permite usuario editar regitros que ele não criou', - 'view_payment' => 'Visualizar ', - + 'view_payment' => 'Visualizar ', + 'january' => 'Janeiro', 'february' => 'Fevereiro', 'march' => 'Março', @@ -1201,17 +1184,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1220,11 +1201,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1254,9 +1235,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1276,5 +1257,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - -); \ No newline at end of file + +); diff --git a/resources/lang/sv/texts.php b/resources/lang/sv/texts.php index bd40172eba..b098864ff7 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.'/settings/notifications', + 'user_email_footer' => 'För att anpassa dina e-post notifieringar gå till :link', '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', @@ -271,7 +271,7 @@ return array( 'notification_invoice_sent' => 'Följande kund :client har mailats fakturan :invoice på :amount.', 'notification_invoice_viewed' => 'Följande kund :client har sett fakturan :invoice på :amount.', 'reset_password' => 'Du kan återställa ditt lösenord genom att klicka på länken nedan:', - 'reset_password_footer' => 'Om du inte begärt en återställning av ditt lösenord så var snäll och maila vår support: '.CONTACT_EMAIL, + 'reset_password_footer' => 'Om du inte begärt en återställning av ditt lösenord så var snäll och maila vår support: :email', // Payment page 'secure_payment' => 'Säker betalning', @@ -280,22 +280,9 @@ return array( 'expiration_year' => 'Giltig till år', 'cvv' => 'CVV', - // Security alerts - 'confide' => [ - 'too_many_attempts' => 'För många felaktiga försök. Pröva igen om ett par minuter.', - 'wrong_credentials' => 'Felaktig e-postadress eller lösenord.', - 'confirmation' => 'Ditt konto har bekräftats!', - 'wrong_confirmation' => 'Felaktig bekräftelsekod.', - 'password_forgot' => 'Information angående återställning av ditt lösenord har skickats till dig via e-post.', - 'password_reset' => 'Ditt lösenord har uppdaterats.', - 'wrong_password_reset' => 'Felaktigt lösenord. Försök igen', - ], - // Pro Plan - 'pro_plan' => [ - 'remove_logo' => ':link för att ta bort Invoice Ninja loggan genom att uppgradera till Pro Plan', - 'remove_logo_link' => 'Klicka här', - ], + 'pro_plan_remove_logo' => ':link för att ta bort Invoice Ninja loggan genom att uppgradera till Pro Plan', + 'pro_plan_remove_logo_link' => 'Klicka här', 'logout' => 'Logga ut', 'sign_up_to_save' => 'Registrera dig för att spara ditt arbete', @@ -418,7 +405,7 @@ return array( 'active' => 'Aktiv', 'pending' => 'Avvaktar', 'deleted_user' => 'Användare borttagen', - 'limit_users' => 'Ledsen, men du får skapa max '.MAX_NUM_USERS.' användare', + 'limit_users' => 'Ledsen, men du får skapa max :limit användare', 'confirm_email_invoice' => 'Är du säker på att du vill maila denna fakturan?', 'confirm_email_quote' => 'Är du säker på att du vill maila denna offerten?', @@ -452,7 +439,7 @@ return array( 'more_designs_title' => 'Fler fakturalayouter', 'more_designs_cloud_header' => 'Uppgrader till Pro för fler fakturalayouter', 'more_designs_cloud_text' => '', - 'more_designs_self_host_header' => 'Få ytterliggare 6 fakturalayouter för bara $'.INVOICE_DESIGNS_PRICE, + 'more_designs_self_host_header' => 'Få ytterliggare 6 fakturalayouter för bara $:price', 'more_designs_self_host_text' => '', 'buy' => 'Köp', 'bought_designs' => 'Fler fakturalayouter tillagda', @@ -701,7 +688,7 @@ return array( 'email_error' => 'There was a problem sending the email', 'confirm_recurring_timing' => 'Note: emails are sent at the start of the hour.', - 'old_browser' => 'Please use a newer browser', + 'old_browser' => 'Please use a newer browser', 'payment_terms_help' => 'Sets the default invoice due date', 'unlink_account' => 'Unlink Account', 'unlink' => 'Unlink', @@ -798,11 +785,10 @@ return array( 'invoice_quote_number' => 'Invoice and Quote Numbers', 'invoice_charges' => 'Invoice Charges', - 'invitation_status' => [ - 'sent' => 'Email Sent', - 'opened' => 'Email Openend', - 'viewed' => 'Invoice Viewed', - ], + 'invitation_status_sent' => 'Email Sent', + 'invitation_status_opened' => 'Email Openend', + 'invitation_status_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.', @@ -923,14 +909,12 @@ return array( 'no_mapper' => 'No valid mapping for file', 'invalid_csv_header' => 'Invalid CSV Header', - 'email_errors' => [ - 'inactive_client' => 'Emails can not be sent to inactive clients', - 'inactive_contact' => 'Emails can not be sent to inactive contacts', - 'inactive_invoice' => 'Emails can not be sent to inactive invoices', - 'user_unregistered' => 'Please register your account to send emails', - 'user_unconfirmed' => 'Please confirm your account to send emails', - 'invalid_contact_email' => 'Invalid contact email', - ], + 'email_error_inactive_client' => 'Emails can not be sent to inactive clients', + 'email_error_inactive_contact' => 'Emails can not be sent to inactive contacts', + 'email_error_inactive_invoice' => 'Emails can not be sent to inactive invoices', + 'email_error_user_unregistered' => 'Please register your account to send emails', + 'email_error_user_unconfirmed' => 'Please confirm your account to send emails', + 'email_error_invalid_contact_email' => 'Invalid contact email', 'client_portal' => 'Client Portal', 'admin' => 'Admin', @@ -984,7 +968,7 @@ return array( 'email_designs' => 'Email Designs', 'assigned_when_sent' => 'Assigned when sent', - 'white_label_custom_css' => ':link for $'.WHITE_LABEL_PRICE.' to enable custom styling and help support our project.', + 'white_label_custom_css' => ':link for $:price to enable custom styling and help support our project.', 'white_label_purchase_link' => 'Purchase a white label license', // Expense / vendor @@ -1091,7 +1075,7 @@ return array( 'archived_bank_account' => 'Successfully archived bank account', 'created_bank_account' => 'Successfully created bank account', 'validate_bank_account' => 'Validate Bank Account', - 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', + 'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and 400+ US banks.', 'bank_password_help' => 'Note: your password is transmitted securely and never stored on our servers.', 'bank_password_warning' => 'Warning: your password may be transmitted in plain text, consider enabling HTTPS.', 'username' => 'Username', @@ -1126,7 +1110,7 @@ return array( 'trial_call_to_action' => 'Start Free Trial', 'trial_success' => 'Successfully enabled two week free pro plan trial', 'overdue' => 'Overdue', - 'white_label_text' => 'Purchase a ONE YEAR white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the client portal and help support our project.', + 'white_label_text' => 'Purchase a ONE YEAR white label license for $:price to remove the Invoice Ninja branding from the client portal and help support our project.', 'navigation' => 'Navigation', 'list_invoices' => 'List Invoices', @@ -1157,14 +1141,14 @@ return array( 'enable_portal_password_help'=>'Allows you to set a password for each contact. If a password is set, the contact will be required to enter a password before viewing invoices.', 'send_portal_password'=>'Generate password automatically', 'send_portal_password_help'=>'If no password is set, one will be generated and sent with the first invoice.', - + 'expired' => 'Expired', 'invalid_card_number' => 'The credit card number is not valid.', 'invalid_expiry' => 'The expiration date is not valid.', 'invalid_cvv' => 'The CVV is not valid.', 'cost' => 'Cost', 'create_invoice_for_sample' => 'Note: create your first invoice to see a preview here.', - + // User Permissions 'owner' => 'Owner', 'administrator' => 'Administrator', @@ -1182,8 +1166,8 @@ return array( 'create_all_help' => 'Allow user to create and modify records', 'view_all_help' => 'Allow user to view records they didn\'t create', 'edit_all_help' => 'Allow user to modify records they didn\'t create', - 'view_payment' => 'View Payment', - + 'view_payment' => 'View Payment', + 'january' => 'January', 'february' => 'February', 'march' => 'March', @@ -1209,17 +1193,15 @@ return array( 'document_email_attachment' => 'Attach Documents', 'download_documents' => 'Download Documents (:size)', 'documents_from_expenses' => 'From Expenses:', - 'dropzone' => array(// See http://www.dropzonejs.com/#config-dictDefaultMessage - 'DefaultMessage' => 'Drop files or click to upload', - 'FallbackMessage' => 'Your browser does not support drag\'n\'drop file uploads.', - 'FallbackText' => 'Please use the fallback form below to upload your files like in the olden days.', - 'FileTooBig' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', - 'InvalidFileType' => 'You can\'t upload files of this type.', - 'ResponseError' => 'Server responded with {{statusCode}} code.', - 'CancelUpload' => 'Cancel upload', - 'CancelUploadConfirmation' => 'Are you sure you want to cancel this upload?', - 'RemoveFile' => 'Remove file', - ), + 'dropzone_default_message' => 'Drop files or click to upload', + 'dropzone_fallback_message' => 'Your browser does not support drag\'n\'drop file uploads.', + 'dropzone_fallback_text' => 'Please use the fallback form below to upload your files like in the olden days.', + 'dropzone_file_too_big' => 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.', + 'dropzone_invalid_file_type' => 'You can\'t upload files of this type.', + 'dropzone_response_error' => 'Server responded with {{statusCode}} code.', + 'dropzone_cancel_upload' => 'Cancel upload', + 'dropzone_cancel_upload_confirmation' => 'Are you sure you want to cancel this upload?', + 'dropzone_remove_file' => 'Remove file', 'documents' => 'Documents', 'document_date' => 'Document Date', 'document_size' => 'Size', @@ -1228,11 +1210,11 @@ return array( 'enable_client_portal_help' => 'Show/hide the client portal.', 'enable_client_portal_dashboard' => 'Dashboard', 'enable_client_portal_dashboard_help' => 'Show/hide the dashboard page in the client portal.', - + // Plans 'account_management' => 'Account Management', 'plan_status' => 'Plan Status', - + 'plan_upgrade' => 'Upgrade', 'plan_change' => 'Change Plan', 'pending_change_to' => 'Changes To', @@ -1262,9 +1244,9 @@ return array( 'plan_paid' => 'Term Started', 'plan_started' => 'Plan Started', 'plan_expires' => 'Plan Expires', - + 'white_label_button' => 'White Label', - + 'pro_plan_year_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', 'pro_plan_month_description' => 'One month enrollment in the Invoice Ninja Pro Plan.', 'enterprise_plan_product' => 'Enterprise Plan', @@ -1284,5 +1266,5 @@ return array( 'add_users_not_supported' => 'Upgrade to the Enterprise plan to add additional users to your account.', 'enterprise_plan_features' => 'The Enterprise plan adds support for multiple users and file attachments.', 'return_to_app' => 'Return to app', - + ); diff --git a/resources/views/accounts/bank_account.blade.php b/resources/views/accounts/bank_account.blade.php index ff1a0affef..2df373cb0e 100644 --- a/resources/views/accounts/bank_account.blade.php +++ b/resources/views/accounts/bank_account.blade.php @@ -2,7 +2,7 @@ @section('head') @parent - + @include('money_script')