mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-08 12:12:48 +01:00
Merge remote-tracking branch 'upstream/develop' into wepay-integration
This commit is contained in:
commit
4f3bb7eeb4
@ -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"}'));
|
||||
WEPAY_THEME='{"name":"Invoice Ninja","primary_color":"0b4d78","secondary_color":"0b4d78","background_color":"f8f8f8","button_color":"33b753"}'
|
||||
|
@ -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()
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ use Utils;
|
||||
class BaseController extends Controller
|
||||
{
|
||||
use DispatchesJobs, AuthorizesRequests;
|
||||
|
||||
|
||||
protected $entityType;
|
||||
|
||||
/**
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Expense;
|
||||
use app\Ninja\Repositories\ExpenseRepository;
|
||||
use App\Ninja\Repositories\ExpenseRepository;
|
||||
use App\Ninja\Transformers\ExpenseTransformer;
|
||||
use App\Services\ExpenseService;
|
||||
use Utils;
|
||||
|
@ -60,7 +60,7 @@ class PublicClientController extends BaseController
|
||||
]);
|
||||
}
|
||||
|
||||
if (!Input::has('phantomjs') && !Input::has('silent') && !Session::has($invitationKey)
|
||||
if (!Input::has('phantomjs') && !Input::has('silent') && !Session::has($invitationKey)
|
||||
&& (!Auth::check() || Auth::user()->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 ? ('<i>' . trans('texts.system') . '</i>') : ($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);
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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',
|
||||
];
|
||||
|
||||
|
38
app/Http/Middleware/QueryLogging.php
Normal file
38
app/Http/Middleware/QueryLogging.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php namespace App\Http\Middleware;
|
||||
|
||||
use DB;
|
||||
use Log;
|
||||
use Utils;
|
||||
use Closure;
|
||||
|
||||
class QueryLogging
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
// Enable query logging for development
|
||||
if (Utils::isNinjaDev()) {
|
||||
DB::enableQueryLog();
|
||||
}
|
||||
|
||||
$response = $next($request);
|
||||
|
||||
if (Utils::isNinjaDev()) {
|
||||
// hide requests made by debugbar
|
||||
if (strstr($request->url(), '_debugbar') === false) {
|
||||
$queries = DB::getQueryLog();
|
||||
$count = count($queries);
|
||||
Log::info($request->method() . ' - ' . $request->url() . ": $count queries");
|
||||
//Log::info(json_encode($queries));
|
||||
}
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
@ -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);
|
||||
|
@ -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'],
|
||||
|
@ -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('<OFX>', $this->response);
|
||||
$this->responseHeader = $tmp[0];
|
||||
$this->responseBody = '<OFX>'.$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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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) {
|
||||
|
@ -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, '<br/>') : false;
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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": {
|
||||
|
247
composer.lock
generated
247
composer.lock
generated
@ -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",
|
||||
|
@ -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',
|
||||
|
@ -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'),
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
|
@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddSwapCurrencySymbolToCurrency extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('currencies', function(Blueprint $table) {
|
||||
$table->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');
|
||||
});
|
||||
}
|
||||
}
|
@ -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) {
|
||||
|
@ -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
|
||||
|
@ -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' => '<p>Automaticky nastavit datum splatnosti na fakturách</p>
|
||||
<p>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.
|
||||
<p>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.</p>
|
||||
<p>Faktury s týdenním cyklem mají jako výchozí týdenní splatnost.</p>
|
||||
<p>Například:</p>
|
||||
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">novější prohlížeč</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">přes 400 amerických bank.</a>',
|
||||
'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 <a href=":link" target="_blank">novější prohlížeč</a>',
|
||||
'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 <a href=":link" target="_blank">přes 400 amerických bank.</a>',
|
||||
|
||||
'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;
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">nyere version browser</a>',
|
||||
'old_browser' => 'Din browser er registreret som værende af ældre dato og den vil ikke kunne bruges, skift til en <a href=":link" target="_blank">nyere version browser</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
'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',
|
||||
|
||||
);
|
||||
|
||||
);
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">neueren Browser</a>',
|
||||
'old_browser' => 'Bitte verwenden Sie einen <a href=":link" target="_blank">neueren Browser</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US-Banken.</a>',
|
||||
'bank_accounts_help' => 'Fügen Sie eine Bankverbindung hinzu, um Ausgaben automatisch zu importieren und Lieferanten zu erstellen. Unterstützt American Express und <a href=":link" target="_blank">400+ US-Banken.</a>',
|
||||
'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',
|
||||
|
||||
|
||||
);
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">newer browser</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'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 <a href=":link" target="_blank">newer browser</a>',
|
||||
'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 <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
|
||||
'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',
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">más reciente</a>',
|
||||
'old_browser' => 'Por favor utiliza <a href=":link" target="_blank">más reciente</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
'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',
|
||||
|
||||
|
||||
);
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">navegador mas actual</a>',
|
||||
'old_browser' => 'Por favor use un <a href=":link" target="_blank">navegador mas actual</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
'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',
|
||||
|
||||
|
||||
);
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">navigateur plus récent</a>',
|
||||
'old_browser' => 'Merci d\'utiliser un <a href=":link" target="_blank">navigateur plus récent</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
'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',
|
||||
|
||||
|
||||
);
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">navigateur plus récent</a>',
|
||||
'old_browser' => 'Veuillez utiliser un <a href=":link" target="_blank">navigateur plus récent</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank"> plus de 400 banques américaines.</a>',
|
||||
'bank_accounts_help' => 'Veuillez vous connecter à un compte bancaire pour importer automatiquement les dépenses et créer les fournisseurs. Supporte American Express et <a href=":link" target="_blank"> plus de 400 banques américaines.</a>',
|
||||
'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',
|
||||
|
||||
|
||||
);
|
||||
|
||||
|
||||
);
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
@ -117,7 +117,7 @@ return array(
|
||||
'billed_client' => '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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">newer browser</a>',
|
||||
'old_browser' => 'Please use a <a href=":link" target="_blank">newer browser</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
'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',
|
||||
|
||||
|
||||
);
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">newer browser</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'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 <a href=":link" target="_blank">newer browser</a>',
|
||||
'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 <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
|
||||
'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;
|
||||
|
||||
?>.
|
||||
?>.
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
@ -117,7 +117,7 @@ return array(
|
||||
'billed_client' => '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!<p/> <br/>
|
||||
<b>Next Steps</b><p/>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
|
||||
<b>Next Steps</b><p/>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.<p/>
|
||||
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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">newer browser</a>',
|
||||
'old_browser' => 'Please use a <a href=":link" target="_blank">newer browser</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
'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',
|
||||
|
||||
);
|
||||
|
||||
);
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
@ -117,7 +117,7 @@ return array(
|
||||
'billed_client' => '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!<p/> <br/>
|
||||
<b>Neste steg</b><p/>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 å
|
||||
<b>Neste steg</b><p/>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.<p/>
|
||||
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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">nyere nettleser</a>',
|
||||
'old_browser' => 'Vennligst bruk en <a href=":link" target="_blank">nyere nettleser</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
'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',
|
||||
|
||||
);
|
||||
|
||||
);
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">moderne browser</a>',
|
||||
'old_browser' => 'Gebruik a.u.b. een <a href=":link" target="_blank">moderne browser</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ banken uit de VS.</a>',
|
||||
'bank_accounts_help' => 'Koppel een bankrekening om automatisch uitgaven en leveranciers te importeren. Ondersteund American Express en <a href=":link" target="_blank">400+ banken uit de VS.</a>',
|
||||
'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',
|
||||
|
||||
);
|
||||
|
||||
);
|
||||
|
@ -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ć <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">nowszej przeglądarki</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'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ć <a href=":link" target="_blank">nowszej przeglądarki</a>',
|
||||
'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 <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
|
||||
'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;
|
||||
|
||||
?>.
|
||||
?>.
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">navegador atualizado</a>',
|
||||
'old_browser' => 'Utilize um <a href=":link" target="_blank">navegador atualizado</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ bancos americanos.</a>',
|
||||
'bank_accounts_help' => 'Conecte sua conta bancária para importar suas despesas e criar fornecedores. Suporte ao American Express e <a href=":link" target="_blank">400+ bancos americanos.</a>',
|
||||
'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',
|
||||
|
||||
);
|
||||
|
||||
);
|
||||
|
@ -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 <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">newer browser</a>',
|
||||
'old_browser' => 'Please use a <a href=":link" target="_blank">newer browser</a>',
|
||||
'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 <a href="'.OFX_HOME_URL.'" target="_blank">400+ US banks.</a>',
|
||||
'bank_accounts_help' => 'Connect a bank account to automatically import expenses and create vendors. Supports American Express and <a href=":link" target="_blank">400+ US banks.</a>',
|
||||
'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',
|
||||
|
||||
|
||||
);
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
@section('head')
|
||||
@parent
|
||||
|
||||
|
||||
@include('money_script')
|
||||
|
||||
<style type="text/css">
|
||||
@ -37,7 +37,7 @@
|
||||
->data_bind('combobox: bank_id')
|
||||
->addOption('', '')
|
||||
->fromQuery($banks, 'name', 'id')
|
||||
->blockHelp('texts.bank_accounts_help') !!}
|
||||
->blockHelp(trans('texts.bank_accounts_help', ['link' => OFX_HOME_URL])) !!}
|
||||
@endif
|
||||
|
||||
{!! Former::password('bank_username')
|
||||
@ -70,7 +70,7 @@
|
||||
<td data-bind="text: masked_account_number"></td>
|
||||
<td data-bind="text: balance"></td>
|
||||
<td style="text-align:center">
|
||||
<input type="checkbox" value="1"
|
||||
<input type="checkbox" value="1"
|
||||
data-bind="checked: includeAccount, attr: {name: 'bank_accounts[' + $index() + '][include]'}"/>
|
||||
</td>
|
||||
</tr>
|
||||
@ -110,19 +110,19 @@
|
||||
<tbody data-bind="foreach: filteredTransactions">
|
||||
<tr>
|
||||
<td style="text-align:center">
|
||||
<input type="checkbox" value="1"
|
||||
<input type="checkbox" value="1"
|
||||
data-bind="checked: includeTransaction, attr: {name: 'bank_accounts[' + $index() + '][include]'}"/>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="form-control"
|
||||
<input type="text" class="form-control"
|
||||
data-bind="value: vendor.pretty, valueUpdate: 'afterkeydown'"/>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="form-control"
|
||||
<input type="text" class="form-control"
|
||||
data-bind="value: info, valueUpdate: 'afterkeydown'"/>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="form-control"
|
||||
<input type="text" class="form-control"
|
||||
data-bind="value: memo, valueUpdate: 'afterkeydown'"/>
|
||||
</td>
|
||||
<td data-bind="text: date" nowrap></td>
|
||||
@ -162,7 +162,7 @@
|
||||
<p/> <p/>
|
||||
|
||||
{!! Former::actions(
|
||||
count(Cache::get('banks')) > 0 ?
|
||||
count(Cache::get('banks')) > 0 ?
|
||||
Button::normal(trans('texts.cancel'))
|
||||
->withAttributes([
|
||||
'data-bind' => 'visible: !importResults()',
|
||||
@ -308,9 +308,9 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
owner: self
|
||||
owner: self
|
||||
})
|
||||
|
||||
self.amount.pretty = ko.computed({
|
||||
@ -351,7 +351,7 @@
|
||||
|
||||
self.filteredTransactions = ko.computed(function() {
|
||||
if (!model.filter()) {
|
||||
return self.transactions();
|
||||
return self.transactions();
|
||||
} else {
|
||||
return ko.utils.arrayFilter(self.transactions(), function(transaction) {
|
||||
return transaction.isMatch(model.filter());
|
||||
@ -478,11 +478,16 @@
|
||||
return self.countExpenses() == 0;
|
||||
}, self);
|
||||
};
|
||||
|
||||
|
||||
window.model = new ViewModel();
|
||||
ko.applyBindings(model);
|
||||
|
||||
@if (!empty($transactions))
|
||||
loadTransactions({!! $transactions !!});
|
||||
model.setPage('import');
|
||||
@endif
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
@stop
|
||||
|
||||
@stop
|
||||
|
@ -1,31 +1,35 @@
|
||||
@extends('header')
|
||||
|
||||
@section('content')
|
||||
@parent
|
||||
@include('accounts.nav', ['selected' => ACCOUNT_BANKS])
|
||||
@section('content')
|
||||
@parent
|
||||
@include('accounts.nav', ['selected' => ACCOUNT_BANKS])
|
||||
|
||||
{!! Button::primary(trans('texts.add_bank_account'))
|
||||
<div class="pull-right">
|
||||
{!! Button::normal(trans('texts.import_ofx'))
|
||||
->asLinkTo(URL::to('/bank_accounts/import_ofx'))
|
||||
->appendIcon(Icon::create('open')) !!}
|
||||
{!! Button::primary(trans('texts.add_bank_account'))
|
||||
->asLinkTo(URL::to('/bank_accounts/create'))
|
||||
->withAttributes(['class' => 'pull-right'])
|
||||
->appendIcon(Icon::create('plus-sign')) !!}
|
||||
</div>
|
||||
|
||||
@include('partials.bulk_form', ['entityType' => ENTITY_BANK_ACCOUNT])
|
||||
@include('partials.bulk_form', ['entityType' => ENTITY_BANK_ACCOUNT])
|
||||
|
||||
{!! Datatable::table()
|
||||
->addColumn(
|
||||
{!! Datatable::table()
|
||||
->addColumn(
|
||||
trans('texts.name'),
|
||||
trans('texts.integration_type'),
|
||||
trans('texts.action'))
|
||||
->setUrl(url('api/bank_accounts/'))
|
||||
->setOptions('sPaginationType', 'bootstrap')
|
||||
->setOptions('bFilter', false)
|
||||
->setOptions('bAutoWidth', false)
|
||||
->setOptions('aoColumns', [[ "sWidth"=> "50%" ], [ "sWidth"=> "30%" ], ["sWidth"=> "20%"]])
|
||||
->setOptions('aoColumnDefs', [['bSortable'=>false, 'aTargets'=>[2]]])
|
||||
->render('datatable') !!}
|
||||
->setUrl(url('api/bank_accounts/'))
|
||||
->setOptions('sPaginationType', 'bootstrap')
|
||||
->setOptions('bFilter', false)
|
||||
->setOptions('bAutoWidth', false)
|
||||
->setOptions('aoColumns', [[ "sWidth"=> "50%" ], [ "sWidth"=> "30%" ], ["sWidth"=> "20%"]])
|
||||
->setOptions('aoColumnDefs', [['bSortable'=>false, 'aTargets'=>[2]]])
|
||||
->render('datatable') !!}
|
||||
|
||||
<script>
|
||||
<script>
|
||||
window.onDatatableReady = actionListHandler;
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@stop
|
||||
@stop
|
||||
|
@ -6,7 +6,7 @@
|
||||
<link href='https://fonts.googleapis.com/css?family=Roboto+Mono' rel='stylesheet' type='text/css'>
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
@section('content')
|
||||
@parent
|
||||
|
||||
{!! Former::open_for_files()
|
||||
@ -21,7 +21,7 @@
|
||||
@if (!Utils::isNinja() && !Auth::user()->account->hasFeature(FEATURE_WHITE_LABEL))
|
||||
<div class="alert alert-warning" style="font-size:larger;">
|
||||
<center>
|
||||
{!! trans('texts.white_label_custom_css', ['link'=>'<a href="#" onclick="$(\'#whiteLabelModal\').modal(\'show\');">'.trans('texts.white_label_purchase_link').'</a>']) !!}
|
||||
{!! trans('texts.white_label_custom_css', ['price' => WHITE_LABEL_PRICE, 'link'=>'<a href="#" onclick="$(\'#whiteLabelModal\').modal(\'show\');">'.trans('texts.white_label_purchase_link').'</a>']) !!}
|
||||
</center>
|
||||
</div>
|
||||
@endif
|
||||
@ -92,5 +92,5 @@
|
||||
$('#send_portal_password').prop('disabled', !checked);
|
||||
}
|
||||
fixCheckboxes();
|
||||
</script>
|
||||
@stop
|
||||
</script>
|
||||
@stop
|
||||
|
30
resources/views/accounts/import_ofx.blade.php
Normal file
30
resources/views/accounts/import_ofx.blade.php
Normal file
@ -0,0 +1,30 @@
|
||||
@extends('header')
|
||||
|
||||
@section('content')
|
||||
@parent
|
||||
|
||||
@include('accounts.nav', ['selected' => ACCOUNT_BANKS])
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">{{ trans('texts.import_ofx') }}</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
|
||||
{!! Former::open_for_files('bank_accounts/import_ofx')
|
||||
->rules(['ofx_file' => 'required'])
|
||||
->addClass('warn-on-exit') !!}
|
||||
|
||||
{!! Former::file("ofx_file") !!}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{!! Former::actions(
|
||||
Button::normal(trans('texts.cancel'))->large()->asLinkTo(URL::to('settings/bank_accounts'))->appendIcon(Icon::create('remove-circle')),
|
||||
Button::success(trans('texts.upload'))->submit()->large()->appendIcon(Icon::create('open'))
|
||||
) !!}
|
||||
|
||||
{!! Former::close() !!}
|
||||
|
||||
@stop
|
@ -1,7 +1,7 @@
|
||||
@if (!Utils::isPro() && isset($advanced) && $advanced)
|
||||
<div class="alert alert-warning" style="font-size:larger;">
|
||||
<center>
|
||||
{!! trans('texts.pro_plan_advanced_settings', ['link'=>'<a href="#" onclick="showProPlan(\''.$selected.'\')">'.trans('texts.pro_plan.remove_logo_link').'</a>']) !!}
|
||||
{!! trans('texts.pro_plan_advanced_settings', ['link'=>'<a href="#" onclick="showProPlan(\''.$selected.'\')">'.trans('texts.pro_plan_remove_logo_link').'</a>']) !!}
|
||||
</center>
|
||||
</div>
|
||||
@endif
|
||||
@ -22,11 +22,11 @@
|
||||
</div>
|
||||
<div class="list-group">
|
||||
@foreach ($settings as $section)
|
||||
<a href="{{ URL::to("settings/{$section}") }}" class="list-group-item {{ $selected === $section ? 'selected' : '' }}"
|
||||
<a href="{{ URL::to("settings/{$section}") }}" class="list-group-item {{ $selected === $section ? 'selected' : '' }}"
|
||||
style="width:100%;text-align:left">{{ trans("texts.{$section}") }}</a>
|
||||
@endforeach
|
||||
@if ($type === ADVANCED_SETTINGS && !Utils::isNinjaProd())
|
||||
<a href="{{ URL::to("settings/system_settings") }}" class="list-group-item {{ $selected === 'system_settings' ? 'selected' : '' }}"
|
||||
<a href="{{ URL::to("settings/system_settings") }}" class="list-group-item {{ $selected === 'system_settings' ? 'selected' : '' }}"
|
||||
style="width:100%;text-align:left">{{ trans("texts.system_settings") }}</a>
|
||||
@endif
|
||||
</div>
|
||||
@ -34,4 +34,4 @@
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="col-md-9">
|
||||
|
@ -21,6 +21,6 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ trans('texts.reset_password_footer') }}
|
||||
{{ trans('texts.reset_password_footer', ['email' => CONTACT_EMAIL]) }}
|
||||
</div>
|
||||
@stop
|
||||
@stop
|
||||
|
@ -8,4 +8,4 @@
|
||||
{!! trans('texts.email_signature') !!}
|
||||
{!! trans('texts.email_from') !!}
|
||||
|
||||
{!! trans('texts.user_email_footer') !!}
|
||||
{!! trans('texts.user_email_footer', ['link' => URL::to('/settings/notifications')]) !!}
|
||||
|
@ -5,4 +5,4 @@
|
||||
{!! trans('texts.email_signature') !!}
|
||||
{!! trans('texts.email_from') !!}
|
||||
|
||||
{!! trans('texts.user_email_footer') !!}
|
||||
{!! trans('texts.user_email_footer', ['link' => URL::to('/settings/notifications')]) !!}
|
||||
|
@ -5,4 +5,4 @@
|
||||
{!! trans('texts.email_signature') !!}
|
||||
{!! trans('texts.email_from') !!}
|
||||
|
||||
{!! trans('texts.user_email_footer') !!}
|
||||
{!! trans('texts.user_email_footer', ['link' => URL::to('/settings/notifications')]) !!}
|
||||
|
@ -21,6 +21,6 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ trans('texts.reset_password_footer') }}
|
||||
{{ trans('texts.reset_password_footer', ['email' => CONTACT_EMAIL]) }}
|
||||
</div>
|
||||
@stop
|
||||
@stop
|
||||
|
@ -5,4 +5,4 @@
|
||||
{!! trans('texts.email_signature') !!}
|
||||
{!! trans('texts.email_from') !!}
|
||||
|
||||
{!! trans('texts.user_email_footer') !!}
|
||||
{!! trans('texts.user_email_footer', ['link' => URL::to('/settings/notifications')]) !!}
|
||||
|
@ -14,7 +14,7 @@
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
|
||||
|
||||
{!! Former::open($url)->addClass('warn-on-exit main-form')->method($method) !!}
|
||||
<div style="display:none">
|
||||
{!! Former::text('action') !!}
|
||||
@ -216,13 +216,13 @@
|
||||
@else
|
||||
$('#amount').focus();
|
||||
@endif
|
||||
|
||||
@if (Auth::user()->account->isPro())
|
||||
|
||||
@if (Auth::user()->account->hasFeature(FEATURE_DOCUMENTS))
|
||||
$('.main-form').submit(function(){
|
||||
if($('#document-upload .fallback input').val())$(this).attr('enctype', 'multipart/form-data')
|
||||
else $(this).removeAttr('enctype')
|
||||
})
|
||||
|
||||
|
||||
// Initialize document upload
|
||||
dropzone = new Dropzone('#document-upload', {
|
||||
url:{!! json_encode(url('document')) !!},
|
||||
@ -231,8 +231,8 @@
|
||||
},
|
||||
acceptedFiles:{!! json_encode(implode(',',\App\Models\Document::$allowedMimes)) !!},
|
||||
addRemoveLinks:true,
|
||||
@foreach(trans('texts.dropzone') as $key=>$text)
|
||||
"dict{{strval($key)}}":"{{strval($text)}}",
|
||||
@foreach(['default_message', 'fallback_message', 'fallback_text', 'file_too_big', 'invalid_file_type', 'response_error', 'cancel_upload', 'cancel_upload_confirmation', 'remove_file'] as $key)
|
||||
"dict{{strval($key)}}":"{{trans('texts.dropzone_'.Utils::toClassCase($key))}}",
|
||||
@endforeach
|
||||
maxFileSize:{{floatval(MAX_DOCUMENT_SIZE/1000)}},
|
||||
});
|
||||
@ -286,7 +286,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (data) {
|
||||
ko.mapping.fromJS(data, self.mapping, this);
|
||||
}
|
||||
@ -327,11 +327,11 @@
|
||||
}
|
||||
var expenseCurrencyId = self.expense_currency_id() || self.account_currency_id();
|
||||
var invoiceCurrencyId = self.invoice_currency_id() || self.account_currency_id();
|
||||
return expenseCurrencyId != invoiceCurrencyId
|
||||
return expenseCurrencyId != invoiceCurrencyId
|
||||
|| invoiceCurrencyId != self.account_currency_id()
|
||||
|| expenseCurrencyId != self.account_currency_id();
|
||||
})
|
||||
|
||||
|
||||
self.addDocument = function() {
|
||||
var documentModel = new DocumentModel();
|
||||
self.documents.push(documentModel);
|
||||
@ -359,9 +359,9 @@
|
||||
|
||||
if (data) {
|
||||
self.update(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@if (Auth::user()->account->hasFeature(FEATURE_DOCUMENTS))
|
||||
function handleDocumentAdded(file){
|
||||
if(file.mock)return;
|
||||
@ -384,4 +384,4 @@
|
||||
@endif
|
||||
</script>
|
||||
|
||||
@stop
|
||||
@stop
|
||||
|
@ -4,25 +4,25 @@
|
||||
@section('head')
|
||||
|
||||
<link href="//fonts.googleapis.com/css?family=Roboto:400,700,900,100|Roboto+Slab:400,300,700&subset=latin,latin-ext" rel="stylesheet" type="text/css">
|
||||
<link href="{{ asset('css/built.css') }}?no_cache={{ NINJA_VERSION }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ asset('css/built.css') }}?no_cache={{ NINJA_VERSION }}" rel="stylesheet" type="text/css"/>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
background-color: #EEEEEE;
|
||||
padding-top: 114px;
|
||||
padding-top: 114px;
|
||||
}
|
||||
|
||||
/* Fix for header covering stuff when the screen is narrower */
|
||||
@media screen and (min-width: 1200px) {
|
||||
body {
|
||||
padding-top: 56px;
|
||||
padding-top: 56px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
body {
|
||||
padding-top: 56px;
|
||||
padding-top: 56px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,12 +53,12 @@
|
||||
}
|
||||
|
||||
@if (!Auth::check() || !Auth::user()->registered)
|
||||
function validateSignUp(showError)
|
||||
function validateSignUp(showError)
|
||||
{
|
||||
var isFormValid = true;
|
||||
$(['first_name','last_name','email','password']).each(function(i, field) {
|
||||
var $input = $('form.signUpForm #new_'+field),
|
||||
val = $.trim($input.val());
|
||||
val = $.trim($input.val());
|
||||
var isValid = val && val.length >= (field == 'password' ? 6 : 1);
|
||||
if (isValid && field == 'email') {
|
||||
isValid = isValidEmailAddress(val);
|
||||
@ -96,8 +96,8 @@
|
||||
type: 'POST',
|
||||
url: '{{ URL::to('signup/validate') }}',
|
||||
data: 'email=' + $('form.signUpForm #new_email').val(),
|
||||
success: function(result) {
|
||||
if (result == 'available') {
|
||||
success: function(result) {
|
||||
if (result == 'available') {
|
||||
submitSignUp();
|
||||
} else {
|
||||
$('#errorTaken').show();
|
||||
@ -106,19 +106,19 @@
|
||||
$('#working').hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function submitSignUp() {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '{{ URL::to('signup/submit') }}',
|
||||
data: 'new_email=' + encodeURIComponent($('form.signUpForm #new_email').val()) +
|
||||
'&new_password=' + encodeURIComponent($('form.signUpForm #new_password').val()) +
|
||||
'&new_first_name=' + encodeURIComponent($('form.signUpForm #new_first_name').val()) +
|
||||
data: 'new_email=' + encodeURIComponent($('form.signUpForm #new_email').val()) +
|
||||
'&new_password=' + encodeURIComponent($('form.signUpForm #new_password').val()) +
|
||||
'&new_first_name=' + encodeURIComponent($('form.signUpForm #new_first_name').val()) +
|
||||
'&new_last_name=' + encodeURIComponent($('form.signUpForm #new_last_name').val()) +
|
||||
'&go_pro=' + $('#go_pro').val(),
|
||||
success: function(result) {
|
||||
success: function(result) {
|
||||
if (result) {
|
||||
handleSignedUp();
|
||||
NINJA.isRegistered = true;
|
||||
@ -142,7 +142,7 @@
|
||||
function checkForEnter(event)
|
||||
{
|
||||
if (event.keyCode === 13){
|
||||
event.preventDefault();
|
||||
event.preventDefault();
|
||||
validateServerSignUp();
|
||||
return false;
|
||||
}
|
||||
@ -154,10 +154,10 @@
|
||||
NINJA.formIsChanged = false;
|
||||
}
|
||||
|
||||
if (force || NINJA.isRegistered) {
|
||||
if (force || NINJA.isRegistered) {
|
||||
window.location = '{{ URL::to('logout') }}';
|
||||
} else {
|
||||
$('#logoutModal').modal('show');
|
||||
$('#logoutModal').modal('show');
|
||||
}
|
||||
}
|
||||
|
||||
@ -197,7 +197,7 @@
|
||||
window.location = '/settings/account_management#changePlanModel';
|
||||
}
|
||||
} else {
|
||||
$('#proPlanModal').modal('hide');
|
||||
$('#proPlanModal').modal('hide');
|
||||
$('#go_pro').val('true');
|
||||
showSignUp();
|
||||
}
|
||||
@ -262,7 +262,7 @@
|
||||
$('#navbar-options').hide();
|
||||
$('#search-form').show();
|
||||
$('#search').focus();
|
||||
|
||||
|
||||
if (!window.loadedSearchData) {
|
||||
trackEvent('/activity', '/search');
|
||||
$.get('{{ URL::route('getSearchData') }}', function(data) {
|
||||
@ -279,7 +279,7 @@
|
||||
templates: {
|
||||
header: ' <span style="font-weight:600;font-size:16px">{{ Auth::user()->account->custom_client_label1 }}</span>'
|
||||
}
|
||||
}
|
||||
}
|
||||
@endif
|
||||
@if (Auth::check() && Auth::user()->account->custom_client_label2)
|
||||
,{
|
||||
@ -290,7 +290,7 @@
|
||||
templates: {
|
||||
header: ' <span style="font-weight:600;font-size:16px">{{ Auth::user()->account->custom_client_label2 }}</span>'
|
||||
}
|
||||
}
|
||||
}
|
||||
@endif
|
||||
@foreach (['clients', 'contacts', 'invoices', 'quotes', 'navigation'] as $type)
|
||||
,{
|
||||
@ -305,19 +305,19 @@
|
||||
@endforeach
|
||||
).on('typeahead:selected', function(element, datum, name) {
|
||||
window.location = datum.url;
|
||||
}).focus();
|
||||
}).focus();
|
||||
window.loadedSearchData = true;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function hideSearch() {
|
||||
$('#search-form').hide();
|
||||
$('#navbar-options').show();
|
||||
}
|
||||
|
||||
$(function() {
|
||||
window.setTimeout(function() {
|
||||
window.setTimeout(function() {
|
||||
$(".alert-hide").fadeOut();
|
||||
}, 3000);
|
||||
|
||||
@ -341,7 +341,7 @@
|
||||
$(['first_name','last_name','email','password']).each(function(i, field) {
|
||||
var $input = $('form.signUpForm #new_'+field);
|
||||
if (!$input.val()) {
|
||||
$input.focus();
|
||||
$input.focus();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@ -350,7 +350,7 @@
|
||||
|
||||
@if (Auth::check() && !Utils::isNinja() && !Auth::user()->registered)
|
||||
$('#closeSignUpButton').hide();
|
||||
showSignUp();
|
||||
showSignUp();
|
||||
@elseif(Session::get('sign_up') || Input::get('sign_up'))
|
||||
showSignUp();
|
||||
@endif
|
||||
@ -385,7 +385,7 @@
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@stop
|
||||
|
||||
@ -404,7 +404,7 @@
|
||||
<a href="{{ URL::to(NINJA_WEB_URL) }}" class='navbar-brand' target="_blank">
|
||||
{{-- Per our license, please do not remove or modify this link. --}}
|
||||
<img src="{{ asset('images/invoiceninja-logo.png') }}" style="height:20px;width:auto;padding-right:10px"/>
|
||||
</a>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbar-collapse-1">
|
||||
@ -437,9 +437,9 @@
|
||||
@endif
|
||||
<span class="caret"></span>
|
||||
</div>
|
||||
<span class="glyphicon glyphicon-user nav-account-icon" style="padding-left:0px"
|
||||
title="{{ Auth::user()->account->getDisplayName() }}"/>
|
||||
</button>
|
||||
<span class="glyphicon glyphicon-user nav-account-icon" style="padding-left:0px"
|
||||
title="{{ Auth::user()->account->getDisplayName() }}"/>
|
||||
</button>
|
||||
<ul class="dropdown-menu user-accounts">
|
||||
@if (session(SESSION_USER_ACCOUNTS))
|
||||
@foreach (session(SESSION_USER_ACCOUNTS) as $item)
|
||||
@ -468,12 +468,12 @@
|
||||
@endforeach
|
||||
@else
|
||||
@include('user_account', [
|
||||
'account_name' => Auth::user()->account->name ?: trans('texts.untitled'),
|
||||
'account_name' => Auth::user()->account->name ?: trans('texts.untitled'),
|
||||
'user_name' => Auth::user()->getDisplayName(),
|
||||
'logo_url' => Auth::user()->account->getLogoURL(),
|
||||
'selected' => true,
|
||||
])
|
||||
@endif
|
||||
@endif
|
||||
<li class="divider"></li>
|
||||
@if (Utils::isAdmin())
|
||||
@if (count(session(SESSION_USER_ACCOUNTS)) > 1)
|
||||
@ -486,9 +486,9 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<ul class="nav navbar-nav navbar-right navbar-settings">
|
||||
</div>
|
||||
|
||||
<ul class="nav navbar-nav navbar-right navbar-settings">
|
||||
<li class="dropdown">
|
||||
@if (Utils::isAdmin())
|
||||
<a href="{{ URL::to('/settings') }}" class="dropdown-toggle">
|
||||
@ -509,18 +509,18 @@
|
||||
</ul>
|
||||
|
||||
|
||||
<ul class="nav navbar-nav navbar-right navbar-search">
|
||||
<ul class="nav navbar-nav navbar-right navbar-search">
|
||||
<li class="dropdown">
|
||||
<a href="#" onclick="showSearch()">
|
||||
<span class="glyphicon glyphicon-search" title="{{ trans('texts.search') }}"/>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<ul class="dropdown-menu">
|
||||
@if (count(Session::get(RECENTLY_VIEWED)) == 0)
|
||||
<li><a href="#">{{ trans('texts.no_items') }}</a></li>
|
||||
@else
|
||||
@foreach (Session::get(RECENTLY_VIEWED) as $link)
|
||||
@if (property_exists($link, 'accountId') && $link->accountId == Auth::user()->account_id)
|
||||
<li><a href="{{ $link->url }}">{{ $link->name }}</a></li>
|
||||
<li><a href="{{ $link->url }}">{{ $link->name }}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@ -531,12 +531,12 @@
|
||||
|
||||
<form id="search-form" class="navbar-form navbar-right" role="search" style="display:none">
|
||||
<div class="form-group">
|
||||
<input type="text" id="search" style="width: 240px;padding-top:0px;padding-bottom:0px"
|
||||
<input type="text" id="search" style="width: 240px;padding-top:0px;padding-bottom:0px"
|
||||
class="form-control" placeholder="{{ trans('texts.search') . ': ' . trans('texts.search_hotkey')}}">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
</div><!-- /.navbar-collapse -->
|
||||
|
||||
|
||||
@ -545,7 +545,7 @@
|
||||
|
||||
<br/>
|
||||
<div class="container">
|
||||
|
||||
|
||||
@include('partials.warn_session', ['redirectTo' => '/dashboard'])
|
||||
|
||||
@if (Session::has('warning'))
|
||||
@ -558,8 +558,8 @@
|
||||
</div>
|
||||
@elseif (Session::has('news_feed_message'))
|
||||
<div class="alert alert-info">
|
||||
{!! Session::get('news_feed_message') !!}
|
||||
<a href="#" onclick="hideMessage()" class="pull-right">{{ trans('texts.hide') }}</a>
|
||||
{!! Session::get('news_feed_message') !!}
|
||||
<a href="#" onclick="hideMessage()" class="pull-right">{{ trans('texts.hide') }}</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@ -571,7 +571,7 @@
|
||||
{!! Form::breadcrumbs(isset($entityStatus) ? $entityStatus : '') !!}
|
||||
@endif
|
||||
|
||||
@yield('content')
|
||||
@yield('content')
|
||||
|
||||
</div>
|
||||
|
||||
@ -600,7 +600,7 @@
|
||||
{!! Former::text('go_pro') !!}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row signup-form">
|
||||
<div class="col-md-11 col-md-offset-1">
|
||||
{!! Former::checkbox('terms_checkbox')->label(' ')->text(trans('texts.agree_to_terms', ['terms' => '<a href="'.URL::to('terms').'" target="_blank">'.trans('texts.terms_of_service').'</a>']))->raw() !!}
|
||||
@ -610,7 +610,7 @@
|
||||
<div class="col-md-4 col-md-offset-1">
|
||||
<h4>{{ trans('texts.sign_up_using') }}</h4><br/>
|
||||
@foreach (App\Services\AuthService::$providers as $provider)
|
||||
<a href="{{ URL::to('auth/' . $provider) }}" class="btn btn-primary btn-block"
|
||||
<a href="{{ URL::to('auth/' . $provider) }}" class="btn btn-primary btn-block"
|
||||
onclick="setSocialLoginProvider('{{ strtolower($provider) }}')" id="{{ strtolower($provider) }}LoginButton">
|
||||
<i class="fa fa-{{ strtolower($provider) }}"></i>
|
||||
{{ $provider }}
|
||||
@ -623,12 +623,12 @@
|
||||
<div style="border-right:thin solid #CCCCCC;height:110px;width:8px;margin-top:10px;"></div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
@else
|
||||
@else
|
||||
<div class="col-md-12">
|
||||
@endif
|
||||
{{ Former::setOption('TwitterBootstrap3.labelWidths.large', 1) }}
|
||||
{{ Former::setOption('TwitterBootstrap3.labelWidths.small', 1) }}
|
||||
|
||||
|
||||
{!! Former::text('new_first_name')
|
||||
->placeholder(trans('texts.first_name'))
|
||||
->autocomplete('given-name')
|
||||
@ -644,7 +644,7 @@
|
||||
{!! Former::password('new_password')
|
||||
->placeholder(trans('texts.password'))
|
||||
->label(' ') !!}
|
||||
|
||||
|
||||
{{ Former::setOption('TwitterBootstrap3.labelWidths.large', 4) }}
|
||||
{{ Former::setOption('TwitterBootstrap3.labelWidths.small', 4) }}
|
||||
</div>
|
||||
@ -655,9 +655,9 @@
|
||||
</div>
|
||||
|
||||
{!! Former::close() !!}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<center><div id="errorTaken" style="display:none"> <br/>{{ trans('texts.email_taken') }}</div></center>
|
||||
<br/>
|
||||
|
||||
@ -679,7 +679,7 @@
|
||||
<br/>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer" id="signUpFooter" style="margin-top: 0px">
|
||||
<div class="modal-footer" id="signUpFooter" style="margin-top: 0px">
|
||||
<button type="button" class="btn btn-default" id="closeSignUpButton" data-dismiss="modal">{{ trans('texts.close') }} <i class="glyphicon glyphicon-remove-circle"></i></button>
|
||||
<button type="button" class="btn btn-primary" id="saveSignUpButton" onclick="validateServerSignUp()" disabled>{{ trans('texts.save') }} <i class="glyphicon glyphicon-floppy-disk"></i></button>
|
||||
</div>
|
||||
@ -696,14 +696,14 @@
|
||||
<h4 class="modal-title" id="myModalLabel">{{ trans('texts.logout') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="container">
|
||||
<h3>{{ trans('texts.are_you_sure') }}</h3>
|
||||
<p>{{ trans('texts.erase_data') }}</p>
|
||||
<p>{{ trans('texts.erase_data') }}</p>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer" id="signUpFooter">
|
||||
<div class="modal-footer" id="signUpFooter">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{ trans('texts.cancel') }}</button>
|
||||
<button type="button" class="btn btn-primary" onclick="logout(true)">{{ trans('texts.logout') }}</button>
|
||||
<button type="button" class="btn btn-primary" onclick="logout(true)">{{ trans('texts.logout') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -717,7 +717,7 @@
|
||||
|
||||
<div class="pull-right">
|
||||
<img onclick="hideProPlan()" class="close" src="{{ asset('images/pro_plan/close.png') }}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-7 left-side">
|
||||
@ -758,7 +758,7 @@
|
||||
@if (Utils::isNinjaProd())
|
||||
@if (Auth::check() && Auth::user()->isTrial())
|
||||
{!! trans(Auth::user()->account->getCountTrialDaysLeft() == 0 ? 'texts.trial_footer_last_day' : 'texts.trial_footer', [
|
||||
'count' => Auth::user()->account->getCountTrialDaysLeft(),
|
||||
'count' => Auth::user()->account->getCountTrialDaysLeft(),
|
||||
'link' => '<a href="javascript:submitProPlan()">' . trans('texts.click_here') . '</a>'
|
||||
]) !!}
|
||||
@endif
|
||||
@ -766,8 +766,8 @@
|
||||
{{ trans('texts.powered_by') }}
|
||||
{{-- Per our license, please do not remove or modify this section. --}}
|
||||
{!! link_to('https://www.invoiceninja.com/?utm_source=powered_by', 'InvoiceNinja.com', ['target' => '_blank', 'title' => 'invoiceninja.com']) !!} -
|
||||
{!! link_to(RELEASES_URL, 'v' . NINJA_VERSION, ['target' => '_blank', 'title' => trans('texts.trello_roadmap')]) !!} |
|
||||
@if (Auth::user()->account->hasFeature(FEATURE_WHITE_LABEL))
|
||||
{!! link_to(RELEASES_URL, 'v' . NINJA_VERSION, ['target' => '_blank', 'title' => trans('texts.trello_roadmap')]) !!} |
|
||||
@if (Auth::user()->account->hasFeature(FEATURE_WHITE_LABEL))
|
||||
{{ trans('texts.white_labeled') }}
|
||||
@else
|
||||
<a href="#" onclick="loadImages('#whiteLabelModal');$('#whiteLabelModal').modal('show');">{{ trans('texts.white_label_link') }}</a>
|
||||
@ -781,7 +781,7 @@
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>{{ trans('texts.white_label_text')}}</p>
|
||||
<p>{{ trans('texts.white_label_text', ['price' => WHITE_LABEL_PRICE])}}</p>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h4>{{ trans('texts.before') }}</h4>
|
||||
@ -794,7 +794,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer" id="signUpFooter" style="margin-top: 0px">
|
||||
<div class="modal-footer" id="signUpFooter" style="margin-top: 0px">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{ trans('texts.close') }} </button>
|
||||
{{-- DropdownButton::success_lg(trans('texts.buy'), [
|
||||
['url' => URL::to(""), 'label' => trans('texts.pay_with_paypal')],
|
||||
|
@ -17,7 +17,7 @@
|
||||
label.control-label[for=invoice_number] {
|
||||
font-weight: normal !important;
|
||||
}
|
||||
|
||||
|
||||
select.tax-select {
|
||||
width: 50%;
|
||||
float: left;
|
||||
@ -79,7 +79,7 @@
|
||||
<div class="label label-danger">{{ trans('texts.deleted') }}</div>
|
||||
@endif
|
||||
</h4>
|
||||
|
||||
|
||||
@can('view', $invoice->client)
|
||||
@can('edit', $invoice->client)
|
||||
<a id="editClientLink" class="pointer" data-bind="click: $root.showClientForm">{{ trans('texts.edit_client') }}</a> |
|
||||
@ -90,7 +90,7 @@
|
||||
</div>
|
||||
<div style="display:none">
|
||||
@endif
|
||||
|
||||
|
||||
{!! Former::select('client')->addOption('', '')->data_bind("dropdown: client")->addClass('client-input')->addGroupClass('client_select closer-row') !!}
|
||||
|
||||
<div class="form-group" style="margin-bottom: 8px">
|
||||
@ -440,7 +440,7 @@
|
||||
->options($taxRateOptions)
|
||||
->addClass('tax-select')
|
||||
->data_bind('value: tax1')
|
||||
->raw() !!}
|
||||
->raw() !!}
|
||||
<input type="text" name="tax_name1" data-bind="value: tax_name1" style="display:none">
|
||||
<input type="text" name="tax_rate1" data-bind="value: tax_rate1" style="display:none">
|
||||
{!! Former::select('')
|
||||
@ -448,7 +448,7 @@
|
||||
->options($taxRateOptions)
|
||||
->addClass('tax-select')
|
||||
->data_bind('value: tax2')
|
||||
->raw() !!}
|
||||
->raw() !!}
|
||||
<input type="text" name="tax_name2" data-bind="value: tax_name2" style="display:none">
|
||||
<input type="text" name="tax_rate2" data-bind="value: tax_rate2" style="display:none">
|
||||
</td>
|
||||
@ -550,7 +550,7 @@
|
||||
|
||||
@if (!Auth::user()->account->isPro())
|
||||
<div style="font-size:larger">
|
||||
{!! trans('texts.pro_plan.remove_logo', ['link'=>'<a href="#" onclick="showProPlan(\'remove_logo\')">'.trans('texts.pro_plan.remove_logo_link').'</a>']) !!}
|
||||
{!! trans('texts.pro_plan_remove_logo', ['link'=>'<a href="#" onclick="showProPlan(\'remove_logo\')">'.trans('texts.pro_plan_remove_logo_link').'</a>']) !!}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@ -590,7 +590,7 @@
|
||||
{!! Former::text('client[work_phone]')
|
||||
->label('work_phone')
|
||||
->data_bind("value: work_phone, valueUpdate: 'afterkeydown'") !!}
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
@if (Auth::user()->hasFeature(FEATURE_INVOICE_SETTINGS))
|
||||
@ -777,7 +777,7 @@
|
||||
var $clientSelect = $('select#client');
|
||||
var invoiceDesigns = {!! $invoiceDesigns !!};
|
||||
var invoiceFonts = {!! $invoiceFonts !!};
|
||||
|
||||
|
||||
$(function() {
|
||||
// create client dictionary
|
||||
for (var i=0; i<clients.length; i++) {
|
||||
@ -865,7 +865,7 @@
|
||||
}
|
||||
|
||||
@endif
|
||||
|
||||
|
||||
// display blank instead of '0'
|
||||
if (!NINJA.parseFloat(model.invoice().discount())) model.invoice().discount('');
|
||||
if (!NINJA.parseFloat(model.invoice().partial())) model.invoice().partial('');
|
||||
@ -987,13 +987,13 @@
|
||||
@endif
|
||||
|
||||
applyComboboxListeners();
|
||||
|
||||
|
||||
@if (Auth::user()->account->hasFeature(FEATURE_DOCUMENTS))
|
||||
$('.main-form').submit(function(){
|
||||
if($('#document-upload .dropzone .fallback input').val())$(this).attr('enctype', 'multipart/form-data')
|
||||
else $(this).removeAttr('enctype')
|
||||
})
|
||||
|
||||
|
||||
// Initialize document upload
|
||||
dropzone = new Dropzone('#document-upload .dropzone', {
|
||||
url:{!! json_encode(url('document')) !!},
|
||||
@ -1002,8 +1002,8 @@
|
||||
},
|
||||
acceptedFiles:{!! json_encode(implode(',',\App\Models\Document::$allowedMimes)) !!},
|
||||
addRemoveLinks:true,
|
||||
@foreach(trans('texts.dropzone') as $key=>$text)
|
||||
"dict{{strval($key)}}":"{{strval($text)}}",
|
||||
@foreach(['default_message', 'fallback_message', 'fallback_text', 'file_too_big', 'invalid_file_type', 'response_error', 'cancel_upload', 'cancel_upload_confirmation', 'remove_file'] as $key)
|
||||
"dict{{Utils::toClassCase($key)}}":"{{trans('texts.dropzone_'.$key)}}",
|
||||
@endforeach
|
||||
maxFileSize:{{floatval(MAX_DOCUMENT_SIZE/1000)}},
|
||||
});
|
||||
@ -1245,7 +1245,7 @@
|
||||
}
|
||||
|
||||
onPartialChange(true);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1400,24 +1400,24 @@
|
||||
number = number.replace('{$custom2}', client.custom_value2 ? client.custom_value1 : '');
|
||||
model.invoice().invoice_number(number);
|
||||
}
|
||||
|
||||
|
||||
@if ($account->hasFeature(FEATURE_DOCUMENTS))
|
||||
function handleDocumentAdded(file){
|
||||
if(file.mock)return;
|
||||
file.index = model.invoice().documents().length;
|
||||
model.invoice().addDocument({name:file.name, size:file.size, type:file.type});
|
||||
}
|
||||
|
||||
|
||||
function handleDocumentRemoved(file){
|
||||
model.invoice().removeDocument(file.public_id);
|
||||
refreshPDF(true);
|
||||
}
|
||||
|
||||
|
||||
function handleDocumentUploaded(file, response){
|
||||
file.public_id = response.document.public_id
|
||||
model.invoice().documents()[file.index].update(response.document);
|
||||
refreshPDF(true);
|
||||
|
||||
|
||||
if(response.document.preview_url){
|
||||
dropzone.emit('thumbnail', file, response.document.preview_url);
|
||||
}
|
||||
|
@ -13,9 +13,9 @@
|
||||
<div class="container">
|
||||
@if (Utils::isNinja())
|
||||
<h3>{{ trans('texts.more_designs_cloud_header') }}</h3>
|
||||
<p>{{ trans('texts.more_designs_cloud_text') }}</p>
|
||||
<p>{{ trans('texts.more_designs_cloud_text') }}</p>
|
||||
@else
|
||||
<h3>{{ trans('texts.more_designs_self_host_header') }}</h3>
|
||||
<h3>{{ trans('texts.more_designs_self_host_header', ['price' => INVOICE_DESIGNS_PRICE]) }}</h3>
|
||||
<p>{{ trans('texts.more_designs_self_host_text') }}</p>
|
||||
@endif
|
||||
</div>
|
||||
@ -44,9 +44,9 @@
|
||||
<p> </p>
|
||||
</center>
|
||||
|
||||
<div class="modal-footer" id="signUpFooter">
|
||||
<div class="modal-footer" id="signUpFooter">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{ trans('texts.cancel') }}</button>
|
||||
|
||||
|
||||
@if (Utils::isNinjaProd())
|
||||
<button type="button" class="btn btn-primary" onclick="showProPlan('invoice_designs')">{{ trans('texts.go_pro') }}</button>
|
||||
@else
|
||||
@ -61,7 +61,7 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
window.logoImages = {};
|
||||
|
||||
|
||||
logoImages.imageLogo1 = "{{ Form::image_data('images/report_logo1.jpg') }}";
|
||||
logoImages.imageLogoWidth1 =120;
|
||||
logoImages.imageLogoHeight1 = 40
|
||||
@ -79,7 +79,7 @@
|
||||
if (window.invoice) {
|
||||
invoice.image = window.accountLogo;
|
||||
invoice.imageWidth = {{ $account->getLogoWidth() }};
|
||||
invoice.imageHeight = {{ $account->getLogoHeight() }};
|
||||
invoice.imageHeight = {{ $account->getLogoHeight() }};
|
||||
}
|
||||
@endif
|
||||
|
||||
@ -95,9 +95,9 @@
|
||||
NINJA.secondaryColor = "";
|
||||
NINJA.fontSize = 9;
|
||||
NINJA.headerFont = "Roboto";
|
||||
NINJA.bodyFont = "Roboto";
|
||||
NINJA.bodyFont = "Roboto";
|
||||
@endif
|
||||
|
||||
|
||||
var invoiceLabels = {!! json_encode($account->getInvoiceLabels()) !!};
|
||||
|
||||
if (window.invoice) {
|
||||
@ -113,21 +113,21 @@
|
||||
//console.log('refresh PDF - force: ' + force + ' ' + (new Date()).getTime())
|
||||
return getPDFString(refreshPDFCB, force);
|
||||
}
|
||||
|
||||
|
||||
function refreshPDFCB(string) {
|
||||
if (!string) return;
|
||||
PDFJS.workerSrc = '{{ asset('js/pdf_viewer.worker.js') }}';
|
||||
var forceJS = {{ Auth::check() && Auth::user()->force_pdfjs ? 'false' : 'true' }};
|
||||
// Temporarily workaround for: https://code.google.com/p/chromium/issues/detail?id=574648
|
||||
if (forceJS && (isFirefox || (isChrome && (!isChrome48 || {{ isset($viewPDF) && $viewPDF ? 'true' : 'false' }})))) {
|
||||
// Temporarily workaround for: https://code.google.com/p/chromium/issues/detail?id=574648
|
||||
if (forceJS && (isFirefox || (isChrome && (!isChrome48 || {{ isset($viewPDF) && $viewPDF ? 'true' : 'false' }})))) {
|
||||
$('#theFrame').attr('src', string).show();
|
||||
} else {
|
||||
} else {
|
||||
if (isRefreshing) {
|
||||
needsRefresh = true;
|
||||
return;
|
||||
}
|
||||
isRefreshing = true;
|
||||
var pdfAsArray = convertDataURIToBinary(string);
|
||||
var pdfAsArray = convertDataURIToBinary(string);
|
||||
PDFJS.getDocument(pdfAsArray).then(function getPdfHelloWorld(pdf) {
|
||||
|
||||
pdf.getPage(1).then(function getPageHelloWorld(page) {
|
||||
@ -147,7 +147,7 @@
|
||||
refreshPDF();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -157,4 +157,4 @@
|
||||
$('#moreDesignsModal').modal('show');
|
||||
}
|
||||
|
||||
</script>
|
||||
</script>
|
||||
|
@ -70,7 +70,7 @@
|
||||
var thousand = currency.thousand_separator;
|
||||
var decimal = currency.decimal_separator;
|
||||
var code = currency.code;
|
||||
var swapSymbol = false;
|
||||
var swapSymbol = currency.swap_currency_symbol;
|
||||
|
||||
if (countryId && currencyId == {{ CURRENCY_EURO }}) {
|
||||
var country = countryMap[countryId];
|
||||
|
@ -87,6 +87,15 @@
|
||||
{{ Former::populateField('state', 'NY') }}
|
||||
{{ Former::populateField('postal_code', '10118') }}
|
||||
{{ Former::populateField('country_id', 840) }}
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$('#card_number').val('4242424242424242');
|
||||
$('#cvv').val('1234');
|
||||
$('#expiration_month').val(1);
|
||||
$('#expiration_year').val({{ date_create()->modify('+3 year')->format('Y') }});
|
||||
})
|
||||
</script>
|
||||
@endif
|
||||
|
||||
|
||||
@ -480,4 +489,4 @@
|
||||
<a href="https://plaid.com/products/auth/" target="_blank" style="display:none" id="secured_by_plaid"><img src="{{ URL::to('images/plaid-logowhite.svg') }}">{{ trans('texts.secured_by_plaid') }}</a>
|
||||
<script src="https://cdn.plaid.com/link/stable/link-initialize.js"></script>
|
||||
@endif
|
||||
@stop
|
||||
@stop
|
||||
|
Loading…
Reference in New Issue
Block a user