mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-27 11:41:09 -04:00
Compare commits
184 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 633cad9b89 | |||
| f5bbe68a4b | |||
| 1fac9c9dde | |||
| 1208d3a924 | |||
| 3257b18d58 | |||
| 16a941f787 | |||
| 4f5cd9fba1 | |||
| 80e6a3c757 | |||
| d4e7420640 | |||
| ac30ba599b | |||
| 6dd0ccce8b | |||
| 2f32ff4d5b | |||
| 54a5ca83f8 | |||
| eede2fc17f | |||
| e586adde26 | |||
| 1ffb1b2eec | |||
| 55d838371a | |||
| cdaa1ff103 | |||
| 63f7cdec82 | |||
| fadba7fa3a | |||
| d0f6e207ee | |||
| 845f01f170 | |||
| 7f9938c80d | |||
| 16e4212300 | |||
| 109de237b1 | |||
| 82cf63f200 | |||
| 03fc0fd659 | |||
| c3d3e5e35f | |||
| 909e4f93e4 | |||
| bfd9850bf6 | |||
| 3f7db2793f | |||
| 8693672b09 | |||
| a9b0d62cd6 | |||
| 9f57a4200f | |||
| 9e130b3db8 | |||
| 7c9a846090 | |||
| b2e08dda7f | |||
| a2026fbc8b | |||
| db1b0db461 | |||
| 17c00c322d | |||
| 331b8ea44e | |||
| 428be640c3 | |||
| 51f79433b9 | |||
| 8008ed0527 | |||
| 57b302666a | |||
| ee1d1ccff4 | |||
| 81e7109ad1 | |||
| 784bf39df5 | |||
| f66755c4aa | |||
| b4e1e99d37 | |||
| d8aa3dc8a6 | |||
| 9af51660cb | |||
| 38d0da9618 | |||
| 761c0143ec | |||
| fdc4de5093 | |||
| f8591f96a9 | |||
| e47cb01ce2 | |||
| 454ad3091a | |||
| cc73a8a842 | |||
| cea8405ace | |||
| 49a6e03e9d | |||
| f9d6e8b0cc | |||
| 2b78aacc83 | |||
| 1932c5a75e | |||
| 449968ae88 | |||
| 02a2db4417 | |||
| a53582f916 | |||
| 340bf3be06 | |||
| 7f0da9dc36 | |||
| c4ace76275 | |||
| 553bcc053b | |||
| 375a59a504 | |||
| cfc0a1ef75 | |||
| 392f6f469b | |||
| 6cb8d30915 | |||
| 9b55e84724 | |||
| cf5da7684b | |||
| f47029ca78 | |||
| 761df2ffac | |||
| 8fbc257b23 | |||
| baebfedf37 | |||
| 9321eb9d86 | |||
| 70bed01e7b | |||
| 739efcce79 | |||
| 3695e7d075 | |||
| 8f2033f621 | |||
| 7b95ccb5fc | |||
| b7370ed85c | |||
| 818f2fbaf7 | |||
| 91a1dbf91c | |||
| a4d556f41e | |||
| 83de1c47ee | |||
| 678ace744a | |||
| 9e26fee1b0 | |||
| e455c3de50 | |||
| c4db50d3f0 | |||
| 411ee57946 | |||
| 9c5e9e56f5 | |||
| 8eeafd3fed | |||
| ed978d0174 | |||
| 607b1795bb | |||
| a6c3c815b5 | |||
| ead0ebb012 | |||
| d4550e62f8 | |||
| ff3846137e | |||
| b55f8e5391 | |||
| 0f1d7627ea | |||
| 1be462ef82 | |||
| 8b04e94446 | |||
| fa512629d9 | |||
| 0f99be6cf1 | |||
| fae3af2592 | |||
| d1e70c8989 | |||
| 63094e8112 | |||
| 1b46bddf56 | |||
| 422bf74600 | |||
| d003e61d41 | |||
| 09f74eb37c | |||
| 9227973a7a | |||
| 5011543198 | |||
| d07b63c365 | |||
| c12e27dbfe | |||
| 4ea32b94ed | |||
| fe93d5236c | |||
| 5992394bca | |||
| 6c9f5800e5 | |||
| 227cebcb0b | |||
| 6fd4cc6b3f | |||
| 594c8965c1 | |||
| 2241145a17 | |||
| 34f252b1c9 | |||
| 89e1d7bc84 | |||
| f0368deda2 | |||
| 4028551fd8 | |||
| 06f385a28e | |||
| 44aeff425b | |||
| 35a38d719c | |||
| f6ba81e8b7 | |||
| 64cb55fd5d | |||
| 13fe38517c | |||
| 3bdb501d1d | |||
| b8adbf4b07 | |||
| aa85a9950c | |||
| 8e63efee1b | |||
| ea98f03aeb | |||
| 90cd6226be | |||
| 9d2df64b2e | |||
| bade86a24f | |||
| c3b57b4888 | |||
| fcfedc5414 | |||
| 8dee0da434 | |||
| e4ab024422 | |||
| 2bd01c4014 | |||
| 034c7e385c | |||
| c9086747a3 | |||
| ab1ed269fd | |||
| f7a823e9bc | |||
| b6301b08f8 | |||
| 265c219fdc | |||
| 729db694a3 | |||
| e2e6415cb6 | |||
| 419104a4ec | |||
| f18eac2001 | |||
| 7bffbe59ed | |||
| bf53b4f5eb | |||
| 21440230f3 | |||
| 99c27ba8ef | |||
| cb7a925cd0 | |||
| d2e11bd7df | |||
| 1b74a3720e | |||
| e222af335e | |||
| 599e6270e8 | |||
| da7ddcd4f1 | |||
| bd01039fb8 | |||
| 718f01ccd4 | |||
| fd3742b926 | |||
| e8b954d1bd | |||
| 58042decd5 | |||
| fa500b3865 | |||
| e03924fe9d | |||
| 3f308a2d3b | |||
| 6cdd93bab0 | |||
| 69c6c883c2 | |||
| 69dcf1299b |
21
.eslintrc
21
.eslintrc
@ -1,21 +0,0 @@
|
||||
{
|
||||
"root": true,
|
||||
"extends": [
|
||||
"plugin:vue/recommended",
|
||||
"eslint:recommended",
|
||||
"prettier/vue",
|
||||
"plugin:prettier/recommended"
|
||||
],
|
||||
"rules": {
|
||||
"vue/max-attributes-per-line": [
|
||||
"error",
|
||||
{
|
||||
"singleline": 20,
|
||||
"multiline": {
|
||||
"max": 1,
|
||||
"allowFirstLine": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
20
.eslintrc.js
Normal file
20
.eslintrc.js
Normal file
@ -0,0 +1,20 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
node: true,
|
||||
},
|
||||
extends: [
|
||||
'plugin:vue/recommended',
|
||||
'eslint:recommended',
|
||||
'prettier/vue',
|
||||
'plugin:prettier/recommended',
|
||||
],
|
||||
parserOptions: {
|
||||
parser: 'babel-eslint',
|
||||
},
|
||||
plugins: ['prettier'],
|
||||
rules: {
|
||||
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
},
|
||||
}
|
||||
34
.github/workflows/ci.yaml
vendored
Normal file
34
.github/workflows/ci.yaml
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
name: CI
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build-test:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php: ['7.4', '8.0']
|
||||
|
||||
name: PHP ${{ matrix.php }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install dependencies
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php }}
|
||||
extensions: exif
|
||||
|
||||
- name: Install PHP 7 dependencies
|
||||
run: composer update --no-interaction --no-progress
|
||||
if: "matrix.php < 8"
|
||||
|
||||
- name: Install PHP 8 dependencies
|
||||
run: composer update --ignore-platform-req=php --no-interaction --no-progress
|
||||
if: "matrix.php >= 8"
|
||||
|
||||
- name: Unit Tests
|
||||
run: php ./vendor/bin/pest
|
||||
@ -3,17 +3,20 @@
|
||||
namespace Crater\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Console\ConfirmableTrait;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Illuminate\Filesystem\Filesystem;
|
||||
|
||||
class ResetApp extends Command
|
||||
{
|
||||
use ConfirmableTrait;
|
||||
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'reset:app';
|
||||
protected $signature = 'reset:app {--force}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@ -39,13 +42,28 @@ class ResetApp extends Command
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
if ($this->confirm('Do you wish to continue? This will delete your tables')) {
|
||||
Artisan::call('migrate:reset --force');
|
||||
|
||||
\Storage::disk('local')->delete('database_created');
|
||||
|
||||
// $file = new Filesystem;
|
||||
// $file->cleanDirectory('public/storage');
|
||||
if (!$this->confirmToProceed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->info('Running migrate:fresh');
|
||||
|
||||
Artisan::call('migrate:fresh --seed --force');
|
||||
|
||||
$this->info('Seeding database');
|
||||
|
||||
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
|
||||
|
||||
$path = base_path('.env');
|
||||
|
||||
if (file_exists($path)) {
|
||||
file_put_contents($path, str_replace(
|
||||
'APP_DEBUG=true',
|
||||
'APP_DEBUG=false',
|
||||
file_get_contents($path)
|
||||
));
|
||||
}
|
||||
|
||||
$this->info('App has been reset successfully');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\Auth;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class IsRegisteredController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
if (User::whereEmail($request->email)->first()) {
|
||||
return 'true';
|
||||
} else {
|
||||
return 'false';
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -55,7 +55,7 @@ class ResetPasswordController extends Controller
|
||||
*/
|
||||
protected function resetPassword($user, $password)
|
||||
{
|
||||
$user->password = \Hash::make($password);
|
||||
$user->password = $password;
|
||||
|
||||
$user->setRememberToken(Str::random(60));
|
||||
|
||||
|
||||
@ -35,6 +35,7 @@ class DatabaseConfigurationController extends Controller
|
||||
$results = $this->environmentManager->saveDatabaseVariables($request);
|
||||
|
||||
if (array_key_exists("success", $results)) {
|
||||
Artisan::call('key:generate --force');
|
||||
Artisan::call('config:clear');
|
||||
Artisan::call('cache:clear');
|
||||
Artisan::call('storage:link');
|
||||
|
||||
@ -16,9 +16,6 @@ class DeleteFilesController extends Controller
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'deleted_files' => 'required',
|
||||
]);
|
||||
|
||||
if(isset($request->deleted_files) && !empty($request->deleted_files)) {
|
||||
Updater::deleteFiles($request->deleted_files);
|
||||
|
||||
@ -23,6 +23,7 @@ class ConfigMiddleware
|
||||
|
||||
if ($setting && $setting != null && $setting != $timezone) {
|
||||
config(['app.timezone' => $setting]);
|
||||
date_default_timezone_set($setting);
|
||||
}
|
||||
|
||||
if($request->has('file_disk_id')) {
|
||||
|
||||
@ -37,14 +37,6 @@ class MailEnvironmentRequest extends FormRequest
|
||||
'mail_port' => [
|
||||
'required'
|
||||
],
|
||||
'mail_username' => [
|
||||
'required',
|
||||
'string'
|
||||
],
|
||||
'mail_password' => [
|
||||
'required',
|
||||
'string'
|
||||
],
|
||||
'mail_encryption' => [
|
||||
'required',
|
||||
'string'
|
||||
|
||||
@ -40,9 +40,16 @@ class SendEstimateMail extends Mailable
|
||||
'mailable_id' => $this->data['estimate']['id']
|
||||
]);
|
||||
|
||||
return $this->from($this->data['from'])
|
||||
$mailContent = $this->from($this->data['from'], config('mail.from.name'))
|
||||
->subject($this->data['subject'])
|
||||
->markdown('emails.send.estimate', ['data', $this->data]);
|
||||
|
||||
if ($this->data['attach']['data'])
|
||||
$mailContent->attachData(
|
||||
$this->data['attach']['data']->output(),
|
||||
$this->data['estimate']['estimate_number'] . '.pdf'
|
||||
);
|
||||
|
||||
return $mailContent;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Crater\Mail;
|
||||
|
||||
use Config;
|
||||
use Crater\Models\EmailLog;
|
||||
use Crater\Models\Invoice;
|
||||
use Illuminate\Bus\Queueable;
|
||||
@ -40,8 +41,16 @@ class SendInvoiceMail extends Mailable
|
||||
'mailable_id' => $this->data['invoice']['id']
|
||||
]);
|
||||
|
||||
return $this->from($this->data['from'])
|
||||
->subject($this->data['subject'])
|
||||
->markdown('emails.send.invoice', ['data', $this->data]);
|
||||
$mailContent = $this->from($this->data['from'], config('mail.from.name'))
|
||||
->subject($this->data['subject'])
|
||||
->markdown('emails.send.invoice', ['data', $this->data]);
|
||||
|
||||
if ($this->data['attach']['data'])
|
||||
$mailContent->attachData(
|
||||
$this->data['attach']['data']->output(),
|
||||
$this->data['invoice']['invoice_number'] . '.pdf'
|
||||
);
|
||||
|
||||
return $mailContent;
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,9 +41,16 @@ class SendPaymentMail extends Mailable
|
||||
'mailable_id' => $this->data['payment']['id']
|
||||
]);
|
||||
|
||||
return $this->from($this->data['from'])
|
||||
$mailContent = $this->from($this->data['from'], config('mail.from.name'))
|
||||
->subject($this->data['subject'])
|
||||
->markdown('emails.send.payment', ['data', $this->data]);
|
||||
|
||||
if ($this->data['attach']['data'])
|
||||
$mailContent->attachData(
|
||||
$this->data['attach']['data']->output(),
|
||||
$this->data['payment']['payment_number'] . '.pdf'
|
||||
);
|
||||
|
||||
return $mailContent;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Models;
|
||||
|
||||
use Crater\Models\Address;
|
||||
@ -17,15 +18,34 @@ class Company extends Model implements HasMedia
|
||||
|
||||
protected $fillable = ['name', 'logo', 'unique_hash'];
|
||||
|
||||
protected $appends=['logo'];
|
||||
protected $appends = ['logo', 'logo_path'];
|
||||
|
||||
public function getLogoPathAttribute()
|
||||
{
|
||||
$logo = $this->getMedia('logo')->first();
|
||||
|
||||
$isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
|
||||
|
||||
if ($logo) {
|
||||
if ($isSystem) {
|
||||
return $logo->getPath();
|
||||
} else {
|
||||
return $logo->getFullUrl();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getLogoAttribute()
|
||||
{
|
||||
$logo = $this->getMedia('logo')->first();
|
||||
|
||||
if ($logo) {
|
||||
return asset($logo->getUrl());
|
||||
return $logo->getFullUrl();
|
||||
}
|
||||
return ;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function user()
|
||||
|
||||
@ -22,17 +22,26 @@ class CustomFieldValue extends Model
|
||||
|
||||
public function setDateAnswerAttribute($value)
|
||||
{
|
||||
$this->attributes['date_answer'] = Carbon::createFromFormat('Y-m-d', $value);
|
||||
if ($value && $value != null) {
|
||||
$this->attributes['date_answer'] = Carbon::createFromFormat('Y-m-d', $value);
|
||||
}
|
||||
$this->attributes['date_answer'] = null;
|
||||
}
|
||||
|
||||
public function setTimeAnswerAttribute($value)
|
||||
{
|
||||
$this->attributes['time_answer'] = date("H:i:s", strtotime($value));
|
||||
if ($value && $value != null) {
|
||||
$this->attributes['time_answer'] = date("H:i:s", strtotime($value));
|
||||
}
|
||||
$this->attributes['time_answer'] = null;
|
||||
}
|
||||
|
||||
public function setDateTimeAnswerAttribute($value)
|
||||
{
|
||||
$this->attributes['date_time_answer'] = Carbon::createFromFormat('Y-m-d H:i', $value);
|
||||
if ($value && $value != null) {
|
||||
$this->attributes['date_time_answer'] = Carbon::createFromFormat('Y-m-d H:i', $value);
|
||||
}
|
||||
$this->attributes['time_answer'] = null;
|
||||
}
|
||||
|
||||
public function getDefaultAnswerAttribute()
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Crater\Models;
|
||||
|
||||
use App;
|
||||
use Crater\Models\EstimateTemplate;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\Tax;
|
||||
@ -33,9 +34,7 @@ class Estimate extends Model implements HasMedia
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'deleted_at',
|
||||
'estimate_date',
|
||||
'expiry_date'
|
||||
'deleted_at'
|
||||
];
|
||||
|
||||
protected $appends = [
|
||||
@ -77,9 +76,13 @@ class Estimate extends Model implements HasMedia
|
||||
{
|
||||
// Get the last created order
|
||||
$lastOrder = Estimate::where('estimate_number', 'LIKE', $value . '-%')
|
||||
->orderBy('created_at', 'desc')
|
||||
->orderBy('estimate_number', 'desc')
|
||||
->first();
|
||||
|
||||
// Get number length config
|
||||
$numberLength = CompanySetting::getSetting('estimate_number_length', request()->header('company'));
|
||||
$numberLengthText = "%0{$numberLength}d";
|
||||
|
||||
if (!$lastOrder) {
|
||||
// We get here if there is no order at all
|
||||
// If there is no number set it to 0, which will be 1 at the end.
|
||||
@ -96,7 +99,7 @@ class Estimate extends Model implements HasMedia
|
||||
// the %05d part makes sure that there are always 6 numbers in the string.
|
||||
// so it adds the missing zero's when needed.
|
||||
|
||||
return sprintf('%06d', intval($number) + 1);
|
||||
return sprintf($numberLengthText, intval($number) + 1);
|
||||
}
|
||||
|
||||
public function emailLogs()
|
||||
@ -381,6 +384,7 @@ class Estimate extends Model implements HasMedia
|
||||
$data['user'] = $this->user->toArray();
|
||||
$data['company'] = $this->company->toArray();
|
||||
$data['body'] = $this->getEmailBody($data['body']);
|
||||
$data['attach']['data'] = ($this->getEmailAttachmentSetting()) ? $this->getPDFData() : null;
|
||||
|
||||
\Mail::to($data['to'])->send(new SendEstimateMail($data));
|
||||
|
||||
@ -428,11 +432,11 @@ class Estimate extends Model implements HasMedia
|
||||
$estimateTemplate = EstimateTemplate::find($this->estimate_template_id);
|
||||
|
||||
$company = Company::find($this->company_id);
|
||||
$logo = $company->getMedia('logo')->first();
|
||||
$locale = CompanySetting::getSetting('language', $company->id);
|
||||
|
||||
if ($logo) {
|
||||
$logo = $logo->getFullUrl();
|
||||
}
|
||||
App::setLocale($locale);
|
||||
|
||||
$logo = $company->logo_path;
|
||||
|
||||
view()->share([
|
||||
'estimate' => $this,
|
||||
@ -474,6 +478,17 @@ class Estimate extends Model implements HasMedia
|
||||
return $this->getFormattedString($this->notes);
|
||||
}
|
||||
|
||||
public function getEmailAttachmentSetting()
|
||||
{
|
||||
$estimateAsAttachment = CompanySetting::getSetting('estimate_email_attachment', $this->company_id);
|
||||
|
||||
if ($estimateAsAttachment == 'NO') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getEmailBody($body)
|
||||
{
|
||||
$values = array_merge($this->getFieldsArray(), $this->getExtraFields());
|
||||
|
||||
@ -22,7 +22,8 @@ class EstimateItem extends Model
|
||||
'discount_val',
|
||||
'tax',
|
||||
'total',
|
||||
'discount'
|
||||
'discount',
|
||||
'unit_name',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
|
||||
@ -8,6 +8,9 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
class FileDisk extends Model
|
||||
{
|
||||
CONST DISK_TYPE_SYSTEM = 'SYSTEM';
|
||||
CONST DISK_TYPE_REMOTE = 'REMOTE';
|
||||
|
||||
use HasFactory;
|
||||
|
||||
protected $guarded = [
|
||||
@ -184,4 +187,14 @@ class FileDisk extends Model
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isSystem()
|
||||
{
|
||||
return $this->type === self::DISK_TYPE_SYSTEM;
|
||||
}
|
||||
|
||||
public function isRemote()
|
||||
{
|
||||
return $this->type === self::DISK_TYPE_REMOTE;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Crater\Models;
|
||||
|
||||
use App;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\Currency;
|
||||
@ -39,9 +40,7 @@ class Invoice extends Model implements HasMedia
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'deleted_at',
|
||||
'invoice_date',
|
||||
'due_date'
|
||||
'deleted_at'
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
@ -81,9 +80,12 @@ class Invoice extends Model implements HasMedia
|
||||
{
|
||||
// Get the last created order
|
||||
$lastOrder = Invoice::where('invoice_number', 'LIKE', $value . '-%')
|
||||
->orderBy('created_at', 'desc')
|
||||
->orderBy('invoice_number', 'desc')
|
||||
->first();
|
||||
|
||||
// Get number length config
|
||||
$numberLength = CompanySetting::getSetting('invoice_number_length', request()->header('company'));
|
||||
$numberLengthText = "%0{$numberLength}d";
|
||||
|
||||
if (!$lastOrder) {
|
||||
// We get here if there is no order at all
|
||||
@ -100,7 +102,7 @@ class Invoice extends Model implements HasMedia
|
||||
// the %06d part makes sure that there are always 6 numbers in the string.
|
||||
// so it adds the missing zero's when needed.
|
||||
|
||||
return sprintf('%06d', intval($number) + 1);
|
||||
return sprintf($numberLengthText, intval($number) + 1);
|
||||
}
|
||||
|
||||
public function emailLogs()
|
||||
@ -363,11 +365,11 @@ class Invoice extends Model implements HasMedia
|
||||
}
|
||||
|
||||
$invoice = Invoice::with([
|
||||
'items',
|
||||
'user',
|
||||
'invoiceTemplate',
|
||||
'taxes'
|
||||
])
|
||||
'items',
|
||||
'user',
|
||||
'invoiceTemplate',
|
||||
'taxes'
|
||||
])
|
||||
->find($invoice->id);
|
||||
|
||||
return $invoice;
|
||||
@ -431,6 +433,7 @@ class Invoice extends Model implements HasMedia
|
||||
$data['user'] = $this->user->toArray();
|
||||
$data['company'] = Company::find($this->company_id);
|
||||
$data['body'] = $this->getEmailBody($data['body']);
|
||||
$data['attach']['data'] = ($this->getEmailAttachmentSetting()) ? $this->getPDFData() : null;
|
||||
|
||||
if ($this->status == Invoice::STATUS_DRAFT) {
|
||||
$this->status = Invoice::STATUS_SENT;
|
||||
@ -511,12 +514,11 @@ class Invoice extends Model implements HasMedia
|
||||
$invoiceTemplate = InvoiceTemplate::find($this->invoice_template_id);
|
||||
|
||||
$company = Company::find($this->company_id);
|
||||
$locale = CompanySetting::getSetting('language', $company->id);
|
||||
|
||||
$logo = $company->getMedia('logo')->first();
|
||||
App::setLocale($locale);
|
||||
|
||||
if ($logo) {
|
||||
$logo = $logo->getFullUrl();
|
||||
}
|
||||
$logo = $company->logo_path;
|
||||
|
||||
view()->share([
|
||||
'invoice' => $this,
|
||||
@ -532,6 +534,17 @@ class Invoice extends Model implements HasMedia
|
||||
return PDF::loadView('app.pdf.invoice.' . $invoiceTemplate->view);
|
||||
}
|
||||
|
||||
public function getEmailAttachmentSetting()
|
||||
{
|
||||
$invoiceAsAttachment = CompanySetting::getSetting('invoice_email_attachment', $this->company_id);
|
||||
|
||||
if ($invoiceAsAttachment == 'NO') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getCompanyAddress()
|
||||
{
|
||||
$format = CompanySetting::getSetting('invoice_company_address_format', $this->company_id);
|
||||
|
||||
@ -25,7 +25,8 @@ class InvoiceItem extends Model
|
||||
'discount_val',
|
||||
'total',
|
||||
'tax',
|
||||
'discount'
|
||||
'discount',
|
||||
'unit_name',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Crater\Models;
|
||||
|
||||
use App;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\User;
|
||||
use Crater\Models\Invoice;
|
||||
@ -31,7 +32,7 @@ class Payment extends Model implements HasMedia
|
||||
const PAYMENT_MODE_CREDIT_CARD = 'CREDIT_CARD';
|
||||
const PAYMENT_MODE_BANK_TRANSFER = 'BANK_TRANSFER';
|
||||
|
||||
protected $dates = ['created_at', 'updated_at', 'payment_date'];
|
||||
protected $dates = ['created_at', 'updated_at'];
|
||||
|
||||
protected $guarded = ['id'];
|
||||
|
||||
@ -124,6 +125,7 @@ class Payment extends Model implements HasMedia
|
||||
$data['user'] = $this->user->toArray();
|
||||
$data['company'] = Company::find($this->company_id);
|
||||
$data['body'] = $this->getEmailBody($data['body']);
|
||||
$data['attach']['data'] = ($this->getEmailAttachmentSetting()) ? $this->getPDFData() : null;
|
||||
|
||||
\Mail::to($data['to'])->send(new SendPaymentMail($data));
|
||||
|
||||
@ -216,10 +218,10 @@ class Payment extends Model implements HasMedia
|
||||
}
|
||||
|
||||
$payment = Payment::with([
|
||||
'user',
|
||||
'invoice',
|
||||
'paymentMethod',
|
||||
])
|
||||
'user',
|
||||
'invoice',
|
||||
'paymentMethod',
|
||||
])
|
||||
->find($this->id);
|
||||
|
||||
return $payment;
|
||||
@ -268,8 +270,13 @@ class Payment extends Model implements HasMedia
|
||||
{
|
||||
// Get the last created order
|
||||
$payment = Payment::where('payment_number', 'LIKE', $value . '-%')
|
||||
->orderBy('created_at', 'desc')
|
||||
->orderBy('payment_number', 'desc')
|
||||
->first();
|
||||
|
||||
// Get number length config
|
||||
$numberLength = CompanySetting::getSetting('payment_number_length', request()->header('company'));
|
||||
$numberLengthText = "%0{$numberLength}d";
|
||||
|
||||
if (!$payment) {
|
||||
// We get here if there is no order at all
|
||||
// If there is no number set it to 0, which will be 1 at the end.
|
||||
@ -285,7 +292,7 @@ class Payment extends Model implements HasMedia
|
||||
// the %05d part makes sure that there are always 6 numbers in the string.
|
||||
// so it adds the missing zero's when needed.
|
||||
|
||||
return sprintf('%06d', intval($number) + 1);
|
||||
return sprintf($numberLengthText, intval($number) + 1);
|
||||
}
|
||||
|
||||
public function scopeWhereSearch($query, $search)
|
||||
@ -372,12 +379,11 @@ class Payment extends Model implements HasMedia
|
||||
public function getPDFData()
|
||||
{
|
||||
$company = Company::find($this->company_id);
|
||||
$locale = CompanySetting::getSetting('language', $company->id);
|
||||
|
||||
$logo = $company->getMedia('logo')->first();
|
||||
\App::setLocale($locale);
|
||||
|
||||
if ($logo) {
|
||||
$logo = $logo->getFullUrl();
|
||||
}
|
||||
$logo = $company->logo_path;
|
||||
|
||||
view()->share([
|
||||
'payment' => $this,
|
||||
@ -404,6 +410,17 @@ class Payment extends Model implements HasMedia
|
||||
return $this->getFormattedString($format);
|
||||
}
|
||||
|
||||
public function getEmailAttachmentSetting()
|
||||
{
|
||||
$paymentAsAttachment = CompanySetting::getSetting('payment_email_attachment', $this->company_id);
|
||||
|
||||
if ($paymentAsAttachment == 'NO') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getNotes()
|
||||
{
|
||||
return $this->getFormattedString($this->notes);
|
||||
|
||||
@ -14,11 +14,10 @@ trait GeneratesPdfTrait
|
||||
public function getGeneratedPDFOrStream($collection_name)
|
||||
{
|
||||
$pdf = $this->getGeneratedPDF($collection_name);
|
||||
|
||||
if($pdf && file_exists($pdf['path'])) {
|
||||
return response()->make(file_get_contents($pdf['path']), 200, [
|
||||
'Content-Type' => 'application/pdf',
|
||||
'Content-Disposition' => 'inline; filename="'.$pdf['file_name'].'"'
|
||||
'Content-Disposition' => 'inline; filename="'.$pdf['file_name'].'.pdf"'
|
||||
]);
|
||||
}
|
||||
|
||||
@ -30,7 +29,7 @@ trait GeneratesPdfTrait
|
||||
|
||||
return response()->make($pdf->stream(), 200, [
|
||||
'Content-Type' => 'application/pdf',
|
||||
'Content-Disposition' => 'inline; filename="'.$this[$collection_name.'_number'].'"'
|
||||
'Content-Disposition' => 'inline; filename="'.$this[$collection_name.'_number'].'.pdf"'
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -8,9 +8,9 @@
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": "^7.3",
|
||||
"php": "^7.4 || ^8.0",
|
||||
"aws/aws-sdk-php": "^3.142",
|
||||
"barryvdh/laravel-dompdf": "^0.8.1",
|
||||
"barryvdh/laravel-dompdf": "^0.9.0",
|
||||
"doctrine/dbal": "^2.10",
|
||||
"fideloper/proxy": "^4.0",
|
||||
"fruitcake/laravel-cors": "^1.0",
|
||||
|
||||
3504
composer.lock
generated
3504
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -16,9 +16,16 @@ return [
|
||||
["code"=>"en", "name" => "English"],
|
||||
["code"=>"fr", "name" => "French"],
|
||||
["code"=>"de", "name" => "German"],
|
||||
["code"=>"ja", "name" => "Japanese"],
|
||||
["code"=>"it", "name" => "Italian"],
|
||||
["code"=>"pt-br", "name" => "Portuguese (Brazilian)"],
|
||||
["code"=>"lv", "name" => "Latvian"],
|
||||
["code"=>"pt_BR", "name" => "Portuguese (Brazilian)"],
|
||||
["code"=>"sr", "name" => "Serbian Latin"],
|
||||
["code"=>"ko", "name" => "Korean"],
|
||||
["code"=>"es", "name" => "Spanish"],
|
||||
["code"=>"sv", "name"=> "Svenska"],
|
||||
["code"=>"sk", "name"=> "Slovak"],
|
||||
["code"=>"vi", "name"=> "Tiếng Việt"]
|
||||
],
|
||||
|
||||
/*
|
||||
|
||||
@ -41,19 +41,19 @@ return [
|
||||
|
||||
'connections' => [
|
||||
Invoice::class => [
|
||||
'salt' => Invoice::class.'7623e9b0009feff8e024a689d6ef59ce',
|
||||
'salt' => Invoice::class.config('app.key'),
|
||||
'length' => '20',
|
||||
'alphabet' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
|
||||
'alphabet' => 'XKyIAR7mgt8jD2vbqPrOSVenNGpiYLx4M61T'
|
||||
],
|
||||
Estimate::class => [
|
||||
'salt' => Estimate::class.'7623e9b0009feff8e024a689d6ef59ce',
|
||||
'salt' => Estimate::class.config('app.key'),
|
||||
'length' => '20',
|
||||
'alphabet' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
|
||||
'alphabet' => 'yLJWP79M8rYVqbn1NXjulO6IUDdvekRQGo40'
|
||||
],
|
||||
Payment::class => [
|
||||
'salt' => Payment::class.'7623e9b0009feff8e024a689d6ef59ce',
|
||||
'salt' => Payment::class.config('app.key'),
|
||||
'length' => '20',
|
||||
'alphabet' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
|
||||
'alphabet' => 'asqtW3eDRIxB65GYl7UVLS1dybn9XrKTZ4zO'
|
||||
],
|
||||
],
|
||||
|
||||
|
||||
@ -80,16 +80,16 @@ class UpdateCraterVersion400 extends Migration
|
||||
|
||||
FileDisk::create([
|
||||
'credentials' => json_encode($publicDisk),
|
||||
'name'=> 'local_public',
|
||||
'type'=> 'SYSTEM',
|
||||
'name' => 'local_public',
|
||||
'type' => 'SYSTEM',
|
||||
'driver' => 'local',
|
||||
'set_as_default' => false,
|
||||
]);
|
||||
|
||||
FileDisk::create([
|
||||
'credentials' => json_encode($privateDisk),
|
||||
'name'=> 'local_private',
|
||||
'type'=> 'SYSTEM',
|
||||
'name' => 'local_private',
|
||||
'type' => 'SYSTEM',
|
||||
'driver' => 'local',
|
||||
'set_as_default' => true,
|
||||
]);
|
||||
@ -107,9 +107,9 @@ class UpdateCraterVersion400 extends Migration
|
||||
|
||||
private function updateCompanySettings($user)
|
||||
{
|
||||
$defaultInvoiceEmailBody = 'You have received a new invoice from <b>{COMPANY_NAME}</b>.</br>Please download using the button below:';
|
||||
$defaultEstimateEmailBody = 'You have received a new estimate from <b>{COMPANY_NAME}</b>.</br>Please download using the button below:';
|
||||
$defaultPaymentEmailBody = 'Thank you for the payment.</b></br>Please download your payment receipt using the button below:';
|
||||
$defaultInvoiceEmailBody = 'You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:';
|
||||
$defaultEstimateEmailBody = 'You have received a new estimate from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:';
|
||||
$defaultPaymentEmailBody = 'Thank you for the payment.</b></br> Please download your payment receipt using the button below:';
|
||||
$billingAddressFormat = '<h3>{BILLING_ADDRESS_NAME}</h3><p>{BILLING_ADDRESS_STREET_1}</p><p>{BILLING_ADDRESS_STREET_2}</p><p>{BILLING_CITY} {BILLING_STATE}</p><p>{BILLING_COUNTRY} {BILLING_ZIP_CODE}</p><p>{BILLING_PHONE}</p>';
|
||||
$shippingAddressFormat = '<h3>{SHIPPING_ADDRESS_NAME}</h3><p>{SHIPPING_ADDRESS_STREET_1}</p><p>{SHIPPING_ADDRESS_STREET_2}</p><p>{SHIPPING_CITY} {SHIPPING_STATE}</p><p>{SHIPPING_COUNTRY} {SHIPPING_ZIP_CODE}</p><p>{SHIPPING_PHONE}</p>';
|
||||
$companyAddressFormat = '<h3><strong>{COMPANY_NAME}</strong></h3><p>{COMPANY_ADDRESS_STREET_1}</p><p>{COMPANY_ADDRESS_STREET_2}</p><p>{COMPANY_CITY} {COMPANY_STATE}</p><p>{COMPANY_COUNTRY} {COMPANY_ZIP_CODE}</p><p>{COMPANY_PHONE}</p>';
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class ChangeDescriptionAndNotesColumnType extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('estimates', function (Blueprint $table) {
|
||||
$table->text('notes')->nullable()->change();
|
||||
});
|
||||
|
||||
Schema::table('expenses', function (Blueprint $table) {
|
||||
$table->text('notes')->nullable()->change();
|
||||
});
|
||||
|
||||
Schema::table('estimate_items', function (Blueprint $table) {
|
||||
$table->text('description')->nullable()->change();
|
||||
});
|
||||
|
||||
Schema::table('invoice_items', function (Blueprint $table) {
|
||||
$table->text('description')->nullable()->change();
|
||||
});
|
||||
|
||||
Schema::table('items', function (Blueprint $table) {
|
||||
$table->text('description')->nullable()->change();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use Crater\Models\Setting;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class UpdateCraterVersion401 extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Setting::setSetting('version', '4.0.1');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use Crater\Models\Setting;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class UpdateCraterVersion402 extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Setting::setSetting('version', '4.0.2');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use Crater\Models\Setting;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class UpdateCraterVersion403 extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Setting::setSetting('version', '4.0.3');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use Crater\Models\Setting;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class UpdateCraterVersion404 extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Setting::setSetting('version', '4.0.4');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class AddUnitNameToPdf extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('invoice_items', function (Blueprint $table) {
|
||||
$table->string('unit_name')->nullable()->after('quantity');
|
||||
});
|
||||
Schema::table('estimate_items', function (Blueprint $table) {
|
||||
$table->string('unit_name')->nullable()->after('quantity');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('invoice_items', function (Blueprint $table) {
|
||||
$table->dropColumn('unit_name');
|
||||
});
|
||||
Schema::table('estimate_items', function (Blueprint $table) {
|
||||
$table->dropColumn('unit_name');
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\User;
|
||||
|
||||
class AddNumberLengthSetting extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
$user = User::where('role', 'super admin')->first();
|
||||
|
||||
if ($user) {
|
||||
$invoice_number_length = CompanySetting::getSetting('invoice_number_length', $user->company_id);
|
||||
if (empty($invoice_number_length)) {
|
||||
CompanySetting::setSettings(['invoice_number_length' => '6'], $user->company_id);
|
||||
}
|
||||
|
||||
$estimate_number_length = CompanySetting::getSetting('estimate_number_length', $user->company_id);
|
||||
if (empty($estimate_number_length)) {
|
||||
CompanySetting::setSettings(['estimate_number_length' => '6'], $user->company_id);
|
||||
}
|
||||
|
||||
$payment_number_length = CompanySetting::getSetting('payment_number_length', $user->company_id);
|
||||
if (empty($payment_number_length)) {
|
||||
CompanySetting::setSettings(['payment_number_length' => '6'], $user->company_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use Crater\Models\Setting;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class UpdateCraterVersion410 extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Setting::setSetting('version', '4.1.0');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -37,7 +37,8 @@ class CurrenciesTableSeeder extends Seeder
|
||||
'symbol' => '€',
|
||||
'precision' => '2',
|
||||
'thousand_separator' => '.',
|
||||
'decimal_separator' => ','
|
||||
'decimal_separator' => ',',
|
||||
'swap_currency_symbol' => true
|
||||
],
|
||||
[
|
||||
'name' => 'South African Rand',
|
||||
@ -550,6 +551,22 @@ class CurrenciesTableSeeder extends Seeder
|
||||
'thousand_separator' => ',',
|
||||
'decimal_separator' => '.'
|
||||
],
|
||||
[
|
||||
'name' => 'Peruvian Soles',
|
||||
'code' => 'PEN',
|
||||
'symbol' => 'S/',
|
||||
'precision' => '2',
|
||||
'thousand_separator' => ',',
|
||||
'decimal_separator' => '.'
|
||||
],
|
||||
[
|
||||
'name' => 'Moroccan Dirham',
|
||||
'code' => 'MAD',
|
||||
'symbol' => 'DH',
|
||||
'precision' => '2',
|
||||
'thousand_separator' => ',',
|
||||
'decimal_separator' => '.'
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($currencies as $currency) {
|
||||
|
||||
@ -18,9 +18,9 @@ class DefaultSettingsSeeder extends Seeder
|
||||
{
|
||||
$user = User::where('role', 'super admin')->first();
|
||||
|
||||
$defaultInvoiceEmailBody = 'You have received a new invoice from <b>{COMPANY_NAME}</b>.</br>Please download using the button below:';
|
||||
$defaultEstimateEmailBody = 'You have received a new estimate from <b>{COMPANY_NAME}</b>.</br>Please download using the button below:';
|
||||
$defaultPaymentEmailBody = 'Thank you for the payment.</b></br>Please download your payment receipt using the button below:';
|
||||
$defaultInvoiceEmailBody = 'You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:';
|
||||
$defaultEstimateEmailBody = 'You have received a new estimate from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:';
|
||||
$defaultPaymentEmailBody = 'Thank you for the payment.</b></br> Please download your payment receipt using the button below:';
|
||||
$billingAddressFormat = '<h3>{BILLING_ADDRESS_NAME}</h3><p>{BILLING_ADDRESS_STREET_1}</p><p>{BILLING_ADDRESS_STREET_2}</p><p>{BILLING_CITY} {BILLING_STATE}</p><p>{BILLING_COUNTRY} {BILLING_ZIP_CODE}</p><p>{BILLING_PHONE}</p>';
|
||||
$shippingAddressFormat = '<h3>{SHIPPING_ADDRESS_NAME}</h3><p>{SHIPPING_ADDRESS_STREET_1}</p><p>{SHIPPING_ADDRESS_STREET_2}</p><p>{SHIPPING_CITY} {SHIPPING_STATE}</p><p>{SHIPPING_COUNTRY} {SHIPPING_ZIP_CODE}</p><p>{SHIPPING_PHONE}</p>';
|
||||
$companyAddressFormat = '<h3><strong>{COMPANY_NAME}</strong></h3><p>{COMPANY_ADDRESS_STREET_1}</p><p>{COMPANY_ADDRESS_STREET_2}</p><p>{COMPANY_CITY} {COMPANY_STATE}</p><p>{COMPANY_COUNTRY} {COMPANY_ZIP_CODE}</p><p>{COMPANY_PHONE}</p>';
|
||||
@ -53,12 +53,18 @@ class DefaultSettingsSeeder extends Seeder
|
||||
'notify_estimate_viewed' => 'NO',
|
||||
'tax_per_item' => 'NO',
|
||||
'discount_per_item' => 'NO',
|
||||
'invoice_auto_generate' => 'YES',
|
||||
'invoice_prefix' => 'INV',
|
||||
'invoice_auto_generate' => 'YES',
|
||||
'invoice_number_length' => 6,
|
||||
'invoice_email_attachment' => 'NO',
|
||||
'estimate_prefix' => 'EST',
|
||||
'estimate_auto_generate' => 'YES',
|
||||
'estimate_number_length' => 6,
|
||||
'estimate_email_attachment' => 'NO',
|
||||
'payment_prefix' => 'PAY',
|
||||
'payment_auto_generate' => 'YES',
|
||||
'payment_number_length' => 6,
|
||||
'payment_email_attachment' => 'NO',
|
||||
'save_pdf_to_disk' => 'NO',
|
||||
];
|
||||
|
||||
|
||||
13060
package-lock.json
generated
13060
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
94
package.json
94
package.json
@ -1,49 +1,49 @@
|
||||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"watch-poll": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --watch-poll --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^8.2.6",
|
||||
"cross-env": "^5.1",
|
||||
"eslint": "^4.19.1",
|
||||
"eslint-config-prettier": "^6.10.1",
|
||||
"eslint-loader": "^3.0.3",
|
||||
"eslint-plugin-prettier": "^3.1.2",
|
||||
"eslint-plugin-vue": "^4.7.1",
|
||||
"laravel-mix": "^5.0.7",
|
||||
"prettier": "^2.0.2",
|
||||
"resolve-url-loader": "3.1.0",
|
||||
"sass": "^1.29.0",
|
||||
"sass-loader": "^8.0.2",
|
||||
"tailwindcss-plugins": "^0.3.0",
|
||||
"vue-template-compiler": "^2.6.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"@bytefury/spacewind": "^0.3.3",
|
||||
"@vue-hero-icons/outline": "^1.6.3",
|
||||
"@vue-hero-icons/solid": "^1.6.3",
|
||||
"axios": "^0.19",
|
||||
"chart.js": "^2.7.3",
|
||||
"guid": "0.0.12",
|
||||
"lodash": "^4.17.13",
|
||||
"moment": "^2.29.1",
|
||||
"sweet-modal-vue": "^2.0.0",
|
||||
"sweetalert": "^2.1.2",
|
||||
"tailwindcss": "^1.9.1",
|
||||
"toastr": "^2.1.4",
|
||||
"v-tooltip": "^2.0.2",
|
||||
"vue": "^2.6.10",
|
||||
"vue-i18n": "^8.22.0",
|
||||
"vue-loader": "^15.9.3",
|
||||
"vue-router": "2.7.0",
|
||||
"vue2-transitions": "^0.3.0",
|
||||
"vuedraggable": "^2.24.2",
|
||||
"vuelidate": "^0.6.2",
|
||||
"vuex": "^3.0.1"
|
||||
}
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "mix",
|
||||
"watch": "mix watch",
|
||||
"watch-poll": "mix watch -- --watch-options-poll=1000",
|
||||
"hot": "mix watch --hot",
|
||||
"production": "mix --production"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^8.2.6",
|
||||
"cross-env": "^5.1",
|
||||
"eslint": "^4.19.1",
|
||||
"eslint-config-prettier": "^6.15.0",
|
||||
"eslint-loader": "^3.0.4",
|
||||
"eslint-plugin-prettier": "^3.3.0",
|
||||
"eslint-plugin-vue": "^4.7.1",
|
||||
"laravel-mix": "^6.0.6",
|
||||
"postcss": "^8.1",
|
||||
"prettier": "^2.2.1",
|
||||
"resolve-url-loader": "3.1.0",
|
||||
"sass": "^1.29.0",
|
||||
"sass-loader": "^8.0.2",
|
||||
"tailwindcss-plugins": "^0.3.0",
|
||||
"vue-template-compiler": "^2.6.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"@bytefury/spacewind": "^0.5.3",
|
||||
"@vue-hero-icons/outline": "^1.6.3",
|
||||
"@vue-hero-icons/solid": "^1.6.3",
|
||||
"axios": "^0.21",
|
||||
"chart.js": "^2.7.3",
|
||||
"guid": "0.0.12",
|
||||
"lodash": "^4.17.13",
|
||||
"moment": "^2.29.1",
|
||||
"sweet-modal-vue": "^2.0.0",
|
||||
"tailwindcss": "^2.0.1",
|
||||
"v-tooltip": "^2.0.2",
|
||||
"vue": "^2.6.10",
|
||||
"vue-i18n": "^8.22.0",
|
||||
"vue-loader": "^15.9.3",
|
||||
"vue-router": "2.7.0",
|
||||
"vue-sweetalert2": "^4.2.1",
|
||||
"vue2-transitions": "^0.3.0",
|
||||
"vuedraggable": "^2.24.2",
|
||||
"vuelidate": "^0.6.2",
|
||||
"vuex": "^3.0.1"
|
||||
}
|
||||
}
|
||||
|
||||
2
public/assets/css/crater.css
vendored
2
public/assets/css/crater.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,5 +1,3 @@
|
||||
/* flatpickr v4.6.6, @license MIT */
|
||||
|
||||
/*!
|
||||
* tiptap v1.29.6
|
||||
* (c) 2020 überdosis GbR (limited liability)
|
||||
@ -24,33 +22,6 @@
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*!
|
||||
*
|
||||
* Copyright 2009-2017 Kris Kowal under the terms of the MIT
|
||||
* license found at https://github.com/kriskowal/q/blob/v1/LICENSE
|
||||
*
|
||||
* With parts by Tyler Close
|
||||
* Copyright 2007-2009 Tyler Close under the terms of the MIT X license found
|
||||
* at http://www.opensource.org/licenses/mit-license.html
|
||||
* Forked at ref_send.js version: 2009-05-11
|
||||
*
|
||||
* With parts by Mark Miller
|
||||
* Copyright (C) 2011 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Chart.js v2.9.4
|
||||
* https://www.chartjs.org
|
||||
@ -58,44 +29,12 @@
|
||||
* Released under the MIT License
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Sizzle CSS Selector Engine v2.3.5
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://js.foundation/
|
||||
*
|
||||
* Date: 2020-03-14
|
||||
*/
|
||||
|
||||
/*!
|
||||
* The buffer module from node.js, for the browser.
|
||||
*
|
||||
* @author Feross Aboukhadijeh <http://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Vue.js v2.6.12
|
||||
* (c) 2014-2020 Evan You
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.5.1
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2020-05-04T22:49Z
|
||||
*/
|
||||
|
||||
/*!
|
||||
* vue2-transitions v0.3.0
|
||||
* (c) 2019-present cristij <joracristi@gmail.com>
|
||||
@ -103,40 +42,13 @@
|
||||
*/
|
||||
|
||||
/*!
|
||||
* vuex v3.5.1
|
||||
* vuex v3.6.0
|
||||
* (c) 2020 Evan You
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*! *****************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
|
||||
/*! For license information please see index.js.LICENSE.txt */
|
||||
|
||||
/*! https://mths.be/punycode v1.4.1 by @mathias */
|
||||
|
||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
|
||||
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
|
||||
/**
|
||||
* vue-router v2.7.0
|
||||
* (c) 2017 Evan You
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license
|
||||
* Lodash <https://lodash.com/>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
{
|
||||
"/assets/js/app.js": "/assets/js/app.js?id=f8c1167e861af23971a2",
|
||||
"/assets/css/crater.css": "/assets/css/crater.css?id=262352bd0c724bad8f2f"
|
||||
"/assets/js/app.js": "/assets/js/app.js?id=ccf2d83d1f924a997810",
|
||||
"/assets/css/crater.css": "/assets/css/crater.css?id=6ba60df7635dc2f5fbc5"
|
||||
}
|
||||
|
||||
16
readme.md
16
readme.md
@ -68,14 +68,26 @@ Crater is a product of [Bytefury](https://bytefury.com)
|
||||
**Special thanks to:**
|
||||
|
||||
- [Birkhoff Lee](https://github.com/BirkhoffLee)
|
||||
- [Hassan A. Ba Abdullah](https://github.com/hsnapps)
|
||||
- [Akaunting](https://github.com/akaunting/akaunting)
|
||||
- [MakerLab](https://github.com/MakerLab-Dev)
|
||||
- [Sebastian Cretu](https://github.com/sebastiancretu)
|
||||
- [Florian Gareis](https://github.com/TheZoker)
|
||||
|
||||
## Translate
|
||||
|
||||
Help us translate on https://crowdin.com/project/crater-invoice
|
||||
|
||||
**Thanks to Translation Contributors:**
|
||||
|
||||
- [Hassan A. Ba Abdullah (Arabic)](https://github.com/hsnapps)
|
||||
- [Clément de Louvencourt (French)](https://github.com/PHClement)
|
||||
- [Robin Delattre (French)](https://github.com/RobinDev)
|
||||
- [René Loos (Dutch)](https://github.com/Loosie94)
|
||||
- [Stefan Azarić (Serbian)](https://github.com/azaricstefan)
|
||||
- [Emmanuel Lampe (German)](https://github.com/rexlManu)
|
||||
- [edevrob (Latvian)](https://github.com/edevrob)
|
||||
|
||||
## License
|
||||
|
||||
Crater is released under the Attribution Assurance License.
|
||||
See [LICENSE](LICENSE) for details.
|
||||
See [LICENSE](https://craterapp.com/license) for full details & use-cases.
|
||||
|
||||
@ -3,15 +3,15 @@
|
||||
* include Vue and Vue Resource. This gives a great starting point for
|
||||
* building robust, powerful web applications using Vue and Laravel.
|
||||
*/
|
||||
import Vue from 'vue'
|
||||
import router from './router.js'
|
||||
import store from './store/index'
|
||||
import utils from './helpers/utilities'
|
||||
import i18n from './plugins/i18n'
|
||||
import swal from 'sweetalert'
|
||||
|
||||
require('./bootstrap')
|
||||
|
||||
window.Vue.prototype.$utils = utils
|
||||
Vue.prototype.$utils = utils
|
||||
|
||||
/**
|
||||
* Next, we will create a fresh Vue application instance and attach it to
|
||||
@ -26,5 +26,4 @@ new Vue({
|
||||
router,
|
||||
store,
|
||||
i18n,
|
||||
swal,
|
||||
}).$mount('#app')
|
||||
|
||||
69
resources/assets/js/bootstrap.js
vendored
69
resources/assets/js/bootstrap.js
vendored
@ -8,6 +8,8 @@ import money from 'v-money'
|
||||
import VTooltip from 'v-tooltip'
|
||||
import Transitions from 'vue2-transitions'
|
||||
import SpaceWind from '@bytefury/spacewind'
|
||||
import swal from 'vue-sweetalert2'
|
||||
import 'sweetalert2/dist/sweetalert2.min.css'
|
||||
|
||||
/**
|
||||
* Theme
|
||||
@ -22,16 +24,36 @@ Vue.use(SpaceWind, { theme })
|
||||
|
||||
Vue.use(Vuelidate)
|
||||
|
||||
Vue.use(swal, {
|
||||
customClass: {
|
||||
container:
|
||||
'fixed z-50 inset-0 overflow-y-auto bg-black bg-opacity-25 flex justify-center min-h-screen items-center sm:p-0 swal2-container',
|
||||
popup:
|
||||
'flex items-center flex-col justify-center align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full sm:p-6',
|
||||
header: 'swal2-header',
|
||||
title: 'swal2-title',
|
||||
closeButton: '',
|
||||
icon: 'swal2-icon',
|
||||
image: '',
|
||||
content: 'swal2-content',
|
||||
input: '',
|
||||
inputLabel: '',
|
||||
validationMessage: '',
|
||||
actions: 'swal2-actions',
|
||||
confirmButton:
|
||||
'w-full inline-flex py-2 px-4 text-sm leading-5 rounded items-center justify-center text-white font-normal transition duration-150 ease-in-out border border-transparent focus:outline-none bg-primary-500 hover:bg-opacity-75 whitespace-nowrap',
|
||||
denyButton: '',
|
||||
cancelButton:
|
||||
'w-full inline-flex py-2 px-4 text-sm leading-5 rounded justify-center items-center focus:outline-none font-normal transition ease-in-out duration-150 border border-transparent border border-solid border-primary-500 text-primary-500 hover:bg-primary-200 shadow-inner whitespace-nowrap',
|
||||
loader: '',
|
||||
footer: '',
|
||||
},
|
||||
buttonsStyling: false,
|
||||
})
|
||||
|
||||
Vue.use(Transitions)
|
||||
|
||||
window._ = require('lodash')
|
||||
/**
|
||||
* Vue is a modern JavaScript library for building interactive web interfaces
|
||||
* using reactive data binding and reusable components. Vue's API is clean
|
||||
* and simple, leaving you to focus on building your next great project.
|
||||
*/
|
||||
|
||||
window.Vue = require('vue')
|
||||
|
||||
/**
|
||||
* Custom Directives
|
||||
@ -96,9 +118,11 @@ global.axios.interceptors.response.use(undefined, function (err) {
|
||||
return true
|
||||
}
|
||||
if (!err.response) {
|
||||
window.toastr['error'](
|
||||
'Network error: Please check your internet connection or wait until servers are back online'
|
||||
)
|
||||
store.dispatch('notification/showNotification', {
|
||||
type: 'error',
|
||||
message:
|
||||
'Please check your internet connection or wait until servers are back online.',
|
||||
})
|
||||
} else {
|
||||
if (
|
||||
err.response.data &&
|
||||
@ -106,23 +130,30 @@ global.axios.interceptors.response.use(undefined, function (err) {
|
||||
err.response.data === ' Unauthorized.')
|
||||
) {
|
||||
// Unauthorized and log out
|
||||
window.toastr['error'](
|
||||
err.response.data.message ? err.response.data.message : 'Unauthorized'
|
||||
)
|
||||
store.dispatch('notification/showNotification', {
|
||||
type: 'error',
|
||||
message: err.response.data.message
|
||||
? err.response.data.message
|
||||
: 'Unauthorized',
|
||||
})
|
||||
store.dispatch('auth/logout', true)
|
||||
} else if (err.response.data.errors) {
|
||||
// Show a notification per error
|
||||
const errors = JSON.parse(JSON.stringify(err.response.data.errors))
|
||||
for (const i in errors) {
|
||||
window.toastr['error'](errors[i])
|
||||
store.dispatch('notification/showNotification', {
|
||||
type: 'error',
|
||||
message: errors[i],
|
||||
})
|
||||
}
|
||||
} else {
|
||||
// Unknown error
|
||||
window.toastr['error'](
|
||||
err.response.data.message
|
||||
store.dispatch('notification/showNotification', {
|
||||
type: 'error',
|
||||
message: err.response.data.message
|
||||
? err.response.data.message
|
||||
: 'Unknown error occurred'
|
||||
)
|
||||
: err.response.data || 'Unknown error occurred',
|
||||
})
|
||||
}
|
||||
}
|
||||
return Promise.reject(err)
|
||||
@ -131,8 +162,6 @@ global.axios.interceptors.response.use(undefined, function (err) {
|
||||
/**
|
||||
* Global plugins
|
||||
*/
|
||||
window.toastr = require('toastr')
|
||||
|
||||
Vue.use(VueRouter)
|
||||
Vue.use(Vuex)
|
||||
Vue.use(VTooltip)
|
||||
|
||||
@ -18,8 +18,6 @@
|
||||
import { mapGetters } from 'vuex'
|
||||
import SwDatePicker from '@bytefury/spacewind/src/components/SwDatePicker'
|
||||
import moment from 'moment'
|
||||
const fromMomentDate = (date, format = 'YYYY-MM-DD') =>
|
||||
moment(new Date(date), format)
|
||||
|
||||
export default {
|
||||
components: {
|
||||
@ -76,13 +74,17 @@ export default {
|
||||
}),
|
||||
},
|
||||
watch: {
|
||||
value(val) {
|
||||
if (val && !this.enableTime) {
|
||||
this.date = fromMomentDate(val, 'YYYY-MM-DD').format('YYYY-MM-DD')
|
||||
} else {
|
||||
this.date = fromMomentDate(val, 'YYYY-MM-DD').format('YYYY-MM-DD H:m:s')
|
||||
}
|
||||
},
|
||||
// value(val) {
|
||||
// console.log(val)
|
||||
|
||||
// if (val && !this.enableTime) {
|
||||
// this.date = moment(new Date(val), 'YYYY-MM-DD').format('YYYY-MM-DD')
|
||||
// } else {
|
||||
// this.date = moment(new Date(val), 'YYYY-MM-DD').format(
|
||||
// 'YYYY-MM-DD H:m:s'
|
||||
// )
|
||||
// }
|
||||
// },
|
||||
enableTime(val) {
|
||||
this.$set(this.config, 'enableTime', this.enableTime)
|
||||
},
|
||||
@ -104,6 +106,7 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
this.$set(this.config, 'enableTime', this.enableTime)
|
||||
|
||||
if (!this.enableTime) {
|
||||
this.$set(
|
||||
this.config,
|
||||
@ -117,12 +120,16 @@ export default {
|
||||
this.carbonFormat ? `${this.carbonFormat} H:i ` : 'd M Y H:i'
|
||||
)
|
||||
}
|
||||
|
||||
if (this.value && !this.enableTime) {
|
||||
this.date = fromMomentDate(this.value, 'YYYY-MM-DD').format('YYYY-MM-DD')
|
||||
this.date = moment(new Date(this.value), 'YYYY-MM-DD').format(
|
||||
'YYYY-MM-DD'
|
||||
)
|
||||
return true
|
||||
}
|
||||
|
||||
if (this.value) {
|
||||
this.date = fromMomentDate(this.value, 'YYYY-MM-DD').format(
|
||||
this.date = moment(new Date(this.value), 'YYYY-MM-DD').format(
|
||||
'YYYY-MM-DD HH:mm:SS'
|
||||
)
|
||||
}
|
||||
@ -130,7 +137,6 @@ export default {
|
||||
methods: {
|
||||
onDateChange(date) {
|
||||
this.$emit('input', date)
|
||||
this.$emit('change', date)
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
147
resources/assets/js/components/base/BaseNotification.vue
Normal file
147
resources/assets/js/components/base/BaseNotification.vue
Normal file
@ -0,0 +1,147 @@
|
||||
<template>
|
||||
<transition
|
||||
enter-class="translate-y-2 opacity-0 sm:translate-y-0 sm:translate-x-2 "
|
||||
enter-active-class="transition duration-300 ease-out transform"
|
||||
enter-to-class="duration-300 translate-y-0 opacity-100 sm:translate-x-0"
|
||||
leave-active-class="transition duration-100 ease-in"
|
||||
leave-class="duration-200 opacity-100"
|
||||
leave-to-class="duration-200 opacity-0"
|
||||
>
|
||||
<div
|
||||
v-if="notificationActive"
|
||||
class="fixed inset-0 z-50 flex items-end justify-center px-4 py-6 pointer-events-none sm:p-6 sm:items-start sm:justify-end"
|
||||
>
|
||||
<div
|
||||
:class="success || info ? 'bg-white' : 'bg-red-50'"
|
||||
class="w-full max-w-sm rounded-lg shadow-lg cursor-pointer pointer-events-auto"
|
||||
@click="hideNotification"
|
||||
>
|
||||
<div class="overflow-hidden rounded-lg shadow-xs">
|
||||
<div class="p-4">
|
||||
<div class="flex items-start">
|
||||
<div class="flex-shrink-0">
|
||||
<svg
|
||||
v-if="success"
|
||||
class="w-6 h-6 text-green-400"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"
|
||||
/>
|
||||
</svg>
|
||||
<exclamation-circle-icon
|
||||
v-if="info"
|
||||
class="w-6 h-6 text-blue-400"
|
||||
/>
|
||||
<svg
|
||||
v-if="error"
|
||||
class="w-6 h-6 text-red-400"
|
||||
fill="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="flex-1 w-0 ml-3">
|
||||
<p
|
||||
:class="`text-sm leading-5 font-medium ${
|
||||
success || info ? 'text-gray-900' : 'text-red-800'
|
||||
}`"
|
||||
>
|
||||
{{
|
||||
notificationTitle ? notificationTitle : success ? 'Success!' : 'Error'
|
||||
}}
|
||||
</p>
|
||||
<p
|
||||
:class="`mt-1 text-sm leading-5 ${
|
||||
success || info ? 'text-gray-500' : 'text-red-700'
|
||||
}`"
|
||||
>
|
||||
{{
|
||||
notificationMessage
|
||||
? notificationMessage
|
||||
: success
|
||||
? 'Successful'
|
||||
: 'Somthing went wrong'
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex flex-shrink-0">
|
||||
<button
|
||||
:class="
|
||||
success || info
|
||||
? ' text-gray-400 focus:text-gray-500'
|
||||
: 'text-red-400 focus:text-red-500'
|
||||
"
|
||||
class="inline-flex w-5 h-5 transition duration-150 ease-in-out focus:outline-none"
|
||||
@click="hideNotification"
|
||||
>
|
||||
<x-icon />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapActions, mapGetters } from 'vuex'
|
||||
import { XIcon } from '@vue-hero-icons/outline'
|
||||
import { ExclamationCircleIcon } from '@vue-hero-icons/solid'
|
||||
export default {
|
||||
components: {
|
||||
XIcon,
|
||||
ExclamationCircleIcon,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
hasFocus: false,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('notification', [
|
||||
'notificationActive',
|
||||
'notificationTitle',
|
||||
'notificationType',
|
||||
'notificationAutoHide',
|
||||
'notificationMessage',
|
||||
]),
|
||||
success() {
|
||||
return this.notificationType.toLowerCase() === 'success'
|
||||
},
|
||||
error() {
|
||||
return this.notificationType.toLowerCase() === 'error'
|
||||
},
|
||||
info() {
|
||||
return this.notificationType.toLowerCase() === 'info'
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
notificationActive(val) {
|
||||
if (val && this.notificationAutoHide) {
|
||||
window.setTimeout(this.hideNotification, 5000)
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
if (this.notificationActive && this.notificationAutoHide) {
|
||||
window.setTimeout(this.hideNotification, 5000)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapActions('notification', ['showNotification', 'hideNotification']),
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@ -1,3 +1,5 @@
|
||||
import Vue from 'vue'
|
||||
|
||||
import BaseModal from './modal/BaseModal.vue'
|
||||
import BaseLoader from './BaseLoader.vue'
|
||||
import BaseCustomerSelect from './BaseCustomerSelect.vue'
|
||||
@ -11,6 +13,7 @@ import NoteSelectPopup from './popup/NoteSelectPopup.vue'
|
||||
import BaseDatePicker from '../base/BaseDatePicker.vue'
|
||||
import BaseTimePicker from './BaseTimePicker.vue'
|
||||
import BasePage from './BasePage.vue'
|
||||
import BaseNotification from './BaseNotification.vue'
|
||||
|
||||
import GlobalSearch from '../GlobalSearch.vue'
|
||||
|
||||
@ -37,6 +40,7 @@ Vue.component('tax-select-popup', TaxSelectPopup)
|
||||
Vue.component('note-select-popup', NoteSelectPopup)
|
||||
|
||||
Vue.component('base-time-picker', BaseTimePicker)
|
||||
Vue.component('base-notification', BaseNotification)
|
||||
|
||||
Vue.component('dot-icon', DotIcon)
|
||||
Vue.component('save-icon', SaveIcon)
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
<div class="relative customer-modal">
|
||||
<base-loader
|
||||
v-if="isRequestOngoing"
|
||||
class="h-130"
|
||||
:show-bg-overlay="true"
|
||||
class="h-130"
|
||||
/>
|
||||
<form @submit.prevent="createNewBackup">
|
||||
<div class="p-6">
|
||||
@ -21,7 +21,7 @@
|
||||
:show-labels="false"
|
||||
:placeholder="$t('settings.backup.select_backup_type')"
|
||||
:allow-empty="false"
|
||||
:maxHeight="100"
|
||||
:max-height="100"
|
||||
/>
|
||||
</sw-input-group>
|
||||
<sw-input-group
|
||||
@ -38,11 +38,11 @@
|
||||
:show-labels="false"
|
||||
:placeholder="$t('settings.disk.select_disk')"
|
||||
:allow-empty="false"
|
||||
track-by="id"
|
||||
:preselect-first="true"
|
||||
:custom-label="getCustomLabel"
|
||||
:maxHeight="100"
|
||||
:max-height="100"
|
||||
:loading="isLoading"
|
||||
track-by="id"
|
||||
/>
|
||||
</sw-input-group>
|
||||
</div>
|
||||
@ -59,9 +59,9 @@
|
||||
</sw-button>
|
||||
<sw-button
|
||||
:loading="isCreateLoading"
|
||||
:disabled="isCreateLoading"
|
||||
variant="primary"
|
||||
type="submit"
|
||||
:disabled="isCreateLoading"
|
||||
>
|
||||
<save-icon v-if="!isCreateLoading" class="mr-2" />
|
||||
{{ $t('general.create') }}
|
||||
@ -140,6 +140,8 @@ export default {
|
||||
|
||||
...mapActions('modal', ['closeModal']),
|
||||
|
||||
...mapActions('notification', ['showNotification']),
|
||||
|
||||
getCustomLabel({ driver, name }) {
|
||||
return `${name} — [${driver}]`
|
||||
},
|
||||
@ -154,12 +156,18 @@ export default {
|
||||
this.isCreateLoading = true
|
||||
await this.createBackup(data)
|
||||
this.isCreateLoading = false
|
||||
window.toastr['success'](this.$t('settings.backup.created_message'))
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.backup.created_message'),
|
||||
})
|
||||
this.refreshData ? this.refreshData() : ''
|
||||
this.cancelBackup()
|
||||
} catch (e) {
|
||||
this.isCreateLoading = false
|
||||
window.toastr['error'](e.response.data.message)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: e.response.data.message,
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
</sw-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { XIcon } from '@vue-hero-icons/solid'
|
||||
import { mapActions, mapGetters } from 'vuex'
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
>
|
||||
{{ $t('general.cancel') }}
|
||||
</sw-button>
|
||||
<sw-button variant="primary" type="submit" :loading="isLoading">
|
||||
<sw-button :loading="isLoading" variant="primary" type="submit">
|
||||
<save-icon v-if="!isLoading" class="mr-2" />
|
||||
{{ !isEdit ? $t('general.save') : $t('general.update') }}
|
||||
</sw-button>
|
||||
@ -135,6 +135,8 @@ export default {
|
||||
methods: {
|
||||
...mapActions('modal', ['closeModal']),
|
||||
...mapActions('category', ['addCategory', 'updateCategory']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
|
||||
resetFormData() {
|
||||
this.formData = {
|
||||
id: null,
|
||||
@ -159,13 +161,15 @@ export default {
|
||||
|
||||
if (response.data) {
|
||||
if (!this.isEdit) {
|
||||
window.toastr['success'](
|
||||
this.$t('settings.expense_category.created_message')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.expense_category.created_message'),
|
||||
})
|
||||
} else {
|
||||
window.toastr['success'](
|
||||
this.$t('settings.expense_category.updated_message')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.expense_category.updated_message'),
|
||||
})
|
||||
}
|
||||
window.hub.$emit('newCategory', response.data.category)
|
||||
this.refreshData ? this.refreshData() : ''
|
||||
@ -173,7 +177,10 @@ export default {
|
||||
this.isLoading = false
|
||||
return true
|
||||
}
|
||||
window.toastr['error'](response.data.error)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: response.data.error,
|
||||
})
|
||||
},
|
||||
async setData() {
|
||||
this.formData = {
|
||||
|
||||
@ -78,9 +78,9 @@
|
||||
/>
|
||||
</sw-input-group>
|
||||
<sw-input-group
|
||||
v-if="isDropdownSelected"
|
||||
:label="$t('settings.custom_fields.options')"
|
||||
class="mt-5"
|
||||
v-if="isDropdownSelected"
|
||||
horizontal
|
||||
>
|
||||
<option-create @onAdd="addNewOptions" />
|
||||
@ -92,28 +92,28 @@
|
||||
>
|
||||
<sw-input v-model="option.name" type="text" style="width: 90%" />
|
||||
<minus-circle-icon
|
||||
@click="removeOption(index)"
|
||||
class="ml-1 cursor-pointer icon text-danger"
|
||||
@click="removeOption(index)"
|
||||
/>
|
||||
</div>
|
||||
</sw-input-group>
|
||||
<sw-input-group
|
||||
v-if="formData.type"
|
||||
:label="$t('settings.custom_fields.default_value')"
|
||||
horizontal
|
||||
class="relative mt-5"
|
||||
v-if="formData.type"
|
||||
>
|
||||
<component
|
||||
:value="formData.default_answer"
|
||||
:is="formData.type + 'Type'"
|
||||
:options="formData.options"
|
||||
:defaultDateTime="formData.dateTimeValue"
|
||||
:default-date-time="formData.dateTimeValue"
|
||||
v-model="formData.default_answer"
|
||||
/>
|
||||
</sw-input-group>
|
||||
<sw-input-group
|
||||
:label="$t('settings.custom_fields.placeholder')"
|
||||
v-if="!isSwitchTypeSelected"
|
||||
:label="$t('settings.custom_fields.placeholder')"
|
||||
class="mt-5"
|
||||
horizontal
|
||||
>
|
||||
@ -376,6 +376,7 @@ export default {
|
||||
'fetchCustomField',
|
||||
]),
|
||||
...mapActions('modal', ['closeModal']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
resetFormData() {
|
||||
this.formData = {
|
||||
label: null,
|
||||
@ -433,9 +434,10 @@ export default {
|
||||
if (this.isEdit) {
|
||||
this.isLoading = true
|
||||
response = await this.updateCustomField(data)
|
||||
window.toastr['success'](
|
||||
this.$tc('settings.custom_fields.updated_message')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$tc('settings.custom_fields.updated_message'),
|
||||
})
|
||||
this.refreshData()
|
||||
this.closeCategoryModal()
|
||||
return true
|
||||
@ -444,7 +446,10 @@ export default {
|
||||
this.isLoading = true
|
||||
response = await this.addCustomField(data)
|
||||
|
||||
window.toastr['success'](this.$tc('settings.custom_fields.added_message'))
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$tc('settings.custom_fields.added_message'),
|
||||
})
|
||||
this.refreshData()
|
||||
this.closeCategoryModal()
|
||||
return true
|
||||
|
||||
@ -62,7 +62,7 @@
|
||||
:allow-empty="false"
|
||||
:show-labels="false"
|
||||
:placeholder="$t('customers.select_currency')"
|
||||
:maxHeight="200"
|
||||
:max-height="200"
|
||||
label="name"
|
||||
class="mt-1 md:mt-0"
|
||||
track-by="id"
|
||||
@ -343,7 +343,7 @@
|
||||
>
|
||||
{{ $t('general.cancel') }}
|
||||
</sw-button>
|
||||
<sw-button variant="primary" type="submit" :loading="isLoading">
|
||||
<sw-button :loading="isLoading" variant="primary" type="submit">
|
||||
<save-icon v-if="!isLoading" class="mr-2" />
|
||||
{{ $t('general.save') }}
|
||||
</sw-button>
|
||||
@ -444,6 +444,7 @@ export default {
|
||||
...mapGetters(['currencies', 'countries']),
|
||||
...mapGetters('company', ['defaultCurrency']),
|
||||
...mapGetters('modal', ['modalDataID', 'modalData', 'modalActive']),
|
||||
|
||||
nameError() {
|
||||
if (!this.$v.formData.name.$error) {
|
||||
return ''
|
||||
@ -586,6 +587,7 @@ export default {
|
||||
'updateCustomer',
|
||||
]),
|
||||
...mapActions('modal', ['closeModal']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
resetData() {
|
||||
this.formData = {
|
||||
name: null,
|
||||
@ -700,9 +702,15 @@ export default {
|
||||
}
|
||||
if (response.data) {
|
||||
if (this.modalDataID) {
|
||||
window.toastr['success'](this.$tc('customers.updated_message'))
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$tc('customers.updated_message'),
|
||||
})
|
||||
} else {
|
||||
window.toastr['success'](this.$tc('customers.created_message'))
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$tc('customers.created_message'),
|
||||
})
|
||||
}
|
||||
|
||||
this.isLoading = false
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="template-modal">
|
||||
<div class="px-8 py-8 sm:p-6">
|
||||
<div class="flex flex-wrap justify-start p-1 overflow-x-auto sw-scroll">
|
||||
<div class="grid grid-cols-3 gap-2 p-1 overflow-x-auto sw-scroll">
|
||||
<div
|
||||
v-for="(template, index) in modalData"
|
||||
:key="index"
|
||||
@ -9,21 +9,28 @@
|
||||
'border border-solid border-primary-500':
|
||||
selectedTemplate === template.id,
|
||||
}"
|
||||
class="relative m-2 border border-gray-200 border-solid"
|
||||
class="relative flex flex-col m-2 border border-gray-200 border-solid cursor-pointer hover:border-primary-300"
|
||||
@click="selectedTemplate = template.id"
|
||||
>
|
||||
<img
|
||||
:src="template.path"
|
||||
alt="template-image"
|
||||
height="200"
|
||||
width="140"
|
||||
@click="selectedTemplate = template.id"
|
||||
/>
|
||||
<img :src="template.path" alt="template-image" />
|
||||
<img
|
||||
v-if="selectedTemplate === template.id"
|
||||
class="absolute z-10 w-5 h-5 text-primary-500"
|
||||
style="top: -6px; right: -5px"
|
||||
src="/assets/img/tick.png"
|
||||
/>
|
||||
<span
|
||||
:class="[
|
||||
'w-full p-1 bg-gray-200 text-sm text-center absolute bottom-0 left-0',
|
||||
{
|
||||
'text-primary-500 bg-primary-100':
|
||||
selectedTemplate === template.id,
|
||||
'text-gray-600': selectedTemplate != template.id,
|
||||
},
|
||||
]"
|
||||
>
|
||||
{{ template.name }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
:is="selected_disk"
|
||||
:loading="isLoading"
|
||||
:disks="getDiskDrivers"
|
||||
:is-edit="isEdit"
|
||||
@on-change-disk="(disk) => (selected_disk = disk.value)"
|
||||
@submit="createNewDisk"
|
||||
:is-edit="isEdit"
|
||||
>
|
||||
<template v-slot="slotProps">
|
||||
<div
|
||||
@ -16,15 +16,15 @@
|
||||
<sw-button
|
||||
class="mr-3 text-sm"
|
||||
variant="primary-outline"
|
||||
@click="closeDisk"
|
||||
type="button"
|
||||
@click="closeDisk"
|
||||
>
|
||||
{{ $t('general.cancel') }}
|
||||
</sw-button>
|
||||
<sw-button
|
||||
:loading="isRequestFire(slotProps)"
|
||||
variant="primary"
|
||||
:disabled="isRequestFire(slotProps)"
|
||||
variant="primary"
|
||||
type="submit"
|
||||
>
|
||||
<save-icon v-if="!isRequestFire(slotProps)" class="mr-2" />
|
||||
@ -96,6 +96,8 @@ export default {
|
||||
|
||||
...mapActions('modal', ['closeModal']),
|
||||
|
||||
...mapActions('notification', ['showNotification']),
|
||||
|
||||
isRequestFire(slotProps) {
|
||||
return slotProps && (slotProps.diskData.isLoading || this.isLoading)
|
||||
},
|
||||
@ -131,14 +133,21 @@ export default {
|
||||
this.refreshData()
|
||||
this.closeDisk()
|
||||
if (this.isEdit) {
|
||||
window.toastr['success'](this.$t('settings.disk.success_update'))
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.disk.success_update'),
|
||||
})
|
||||
} else {
|
||||
window.toastr['success'](this.$t('settings.disk.success_create'))
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.disk.success_create'),
|
||||
})
|
||||
}
|
||||
} else {
|
||||
window.toastr['error'](
|
||||
this.$t('settings.disk.invalid_disk_credentials')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: this.$t('settings.disk.invalid_disk_credentials'),
|
||||
})
|
||||
}
|
||||
this.isLoading = false
|
||||
},
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="template-modal">
|
||||
<div class="px-8 py-8 sm:p-6">
|
||||
<div class="flex flex-wrap justify-start p-1 overflow-x-auto sw-scroll">
|
||||
<div class="grid grid-cols-3 gap-2 p-1 overflow-x-auto sw-scroll">
|
||||
<div
|
||||
v-for="(template, index) in modalData"
|
||||
:key="index"
|
||||
@ -9,21 +9,28 @@
|
||||
'border border-solid border-primary-500':
|
||||
selectedTemplate === template.id,
|
||||
}"
|
||||
class="relative m-2 border border-gray-200 border-solid"
|
||||
class="relative flex flex-col m-2 border border-gray-200 border-solid cursor-pointer hover:border-primary-300"
|
||||
@click="selectedTemplate = template.id"
|
||||
>
|
||||
<img
|
||||
:src="template.path"
|
||||
alt="template-image"
|
||||
height="200"
|
||||
width="140"
|
||||
@click="selectedTemplate = template.id"
|
||||
/>
|
||||
<img :src="template.path" alt="template-image" />
|
||||
<img
|
||||
v-if="selectedTemplate === template.id"
|
||||
class="absolute z-10 w-5 h-5 text-primary-500"
|
||||
style="top: -6px; right: -5px"
|
||||
src="/assets/img/tick.png"
|
||||
/>
|
||||
<span
|
||||
:class="[
|
||||
'w-full p-1 bg-gray-200 text-sm text-center absolute bottom-0 left-0',
|
||||
{
|
||||
'text-primary-500 bg-primary-100':
|
||||
selectedTemplate === template.id,
|
||||
'text-gray-600': selectedTemplate != template.id,
|
||||
},
|
||||
]"
|
||||
>
|
||||
{{ template.name }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
:options="itemUnits"
|
||||
:searchable="true"
|
||||
:show-labels="false"
|
||||
:maxHeight="200"
|
||||
:max-height="200"
|
||||
label="name"
|
||||
>
|
||||
</sw-select>
|
||||
@ -160,7 +160,7 @@ export default {
|
||||
return this.formData.price / 100
|
||||
},
|
||||
set: function (newValue) {
|
||||
this.formData.price = newValue * 100
|
||||
this.formData.price = Math.round(newValue * 100)
|
||||
},
|
||||
},
|
||||
|
||||
@ -251,6 +251,7 @@ export default {
|
||||
...mapActions('modal', ['closeModal', 'resetModalData']),
|
||||
...mapActions('item', ['addItem', 'updateItem', 'fetchItemUnits']),
|
||||
...mapActions('invoice', ['setItem']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
|
||||
resetFormData() {
|
||||
this.formData = {
|
||||
@ -304,7 +305,10 @@ export default {
|
||||
response = await this.addItem(data)
|
||||
}
|
||||
if (response.data) {
|
||||
window.toastr['success'](this.$tc('items.created_message'))
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$tc('items.created_message'),
|
||||
})
|
||||
this.setItem(response.data.item)
|
||||
|
||||
window.hub.$emit('newItem', response.data.item)
|
||||
@ -314,7 +318,10 @@ export default {
|
||||
this.closeModal()
|
||||
return true
|
||||
}
|
||||
window.toastr['error'](response.data.error)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: response.data.error,
|
||||
})
|
||||
},
|
||||
|
||||
closeItemModal() {
|
||||
|
||||
30
resources/assets/js/components/base/modal/ItemUnitModal.vue
Normal file → Executable file
30
resources/assets/js/components/base/modal/ItemUnitModal.vue
Normal file → Executable file
@ -68,6 +68,14 @@ export default {
|
||||
if (!this.$v.formData.name.required) {
|
||||
return this.$tc('validation.required')
|
||||
}
|
||||
|
||||
if (!this.$v.formData.name.minLength) {
|
||||
return this.$tc(
|
||||
'validation.name_min_length',
|
||||
this.$v.formData.name.$params.minLength.min,
|
||||
{ count: this.$v.formData.name.$params.minLength.min }
|
||||
)
|
||||
}
|
||||
},
|
||||
},
|
||||
validations: {
|
||||
@ -89,6 +97,7 @@ export default {
|
||||
methods: {
|
||||
...mapActions('modal', ['closeModal', 'resetModalData']),
|
||||
...mapActions('item', ['addItemUnit', 'updateItemUnit', 'fatchItemUnit']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
resetFormData() {
|
||||
this.formData = {
|
||||
id: null,
|
||||
@ -115,13 +124,17 @@ export default {
|
||||
if (response.data) {
|
||||
this.isLoading = false
|
||||
if (!this.isEdit) {
|
||||
window.toastr['success'](
|
||||
this.$t('settings.customization.items.item_unit_added')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.customization.items.item_unit_added'),
|
||||
})
|
||||
} else {
|
||||
window.toastr['success'](
|
||||
this.$t('settings.customization.items.item_unit_updated')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t(
|
||||
'settings.customization.items.item_unit_updated'
|
||||
),
|
||||
})
|
||||
}
|
||||
this.refreshData ? this.refreshData() : ''
|
||||
this.closeItemUnitModal()
|
||||
@ -129,7 +142,10 @@ export default {
|
||||
}
|
||||
} catch (error) {
|
||||
this.isLoading = false
|
||||
window.toastr['error'](response.data.error)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: response.data.error,
|
||||
})
|
||||
}
|
||||
},
|
||||
async setData() {
|
||||
|
||||
@ -4,8 +4,8 @@
|
||||
<div class="p-4 md:p-8">
|
||||
<sw-input-group
|
||||
:label="$t('general.to')"
|
||||
class="mt-3"
|
||||
:error="emailError"
|
||||
class="mt-3"
|
||||
variant="horizontal"
|
||||
required
|
||||
>
|
||||
@ -19,8 +19,8 @@
|
||||
</sw-input-group>
|
||||
<sw-input-group
|
||||
:label="$t('general.subject')"
|
||||
class="mt-3"
|
||||
:error="subjectError"
|
||||
class="mt-3"
|
||||
variant="horizontal"
|
||||
required
|
||||
>
|
||||
@ -33,8 +33,8 @@
|
||||
</sw-input-group>
|
||||
<sw-input-group
|
||||
:label="$t('general.message')"
|
||||
class="mt-3"
|
||||
:error="messageError"
|
||||
class="mt-3"
|
||||
variant="horizontal"
|
||||
required
|
||||
>
|
||||
@ -57,7 +57,7 @@
|
||||
>
|
||||
{{ $t('general.cancel') }}
|
||||
</sw-button>
|
||||
<sw-button variant="primary" type="submit" :loading="isLoading">
|
||||
<sw-button :loading="isLoading" variant="primary" type="submit">
|
||||
<paper-airplane-icon v-if="!isLoading" class="mr-2" />
|
||||
{{ !isEdit ? $t('general.send') : $t('general.update') }}
|
||||
</sw-button>
|
||||
@ -149,6 +149,7 @@ export default {
|
||||
methods: {
|
||||
...mapActions('modal', ['closeModal', 'resetModalData']),
|
||||
...mapActions('company', ['sendTestMail']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
resetFormData() {
|
||||
this.formData = {
|
||||
to: null,
|
||||
@ -169,18 +170,26 @@ export default {
|
||||
|
||||
if (response.data) {
|
||||
if (response.data.success) {
|
||||
window.toastr['success'](this.$tc('general.send_mail_successfully'))
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$tc('general.send_mail_successfully'),
|
||||
})
|
||||
this.closeTaxModal()
|
||||
this.isLoading = false
|
||||
return true
|
||||
}
|
||||
|
||||
window.toastr['error'](this.$tc('validation.something_went_wrong'))
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: this.$tc('validation.something_went_wrong'),
|
||||
})
|
||||
this.closeTaxModal()
|
||||
this.isLoading = false
|
||||
return true
|
||||
}
|
||||
window.toastr['error'](response.data.error)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: response.data.error,
|
||||
})
|
||||
},
|
||||
closeTaxModal() {
|
||||
this.resetModalData()
|
||||
|
||||
43
resources/assets/js/components/base/modal/NoteModal.vue
Normal file → Executable file
43
resources/assets/js/components/base/modal/NoteModal.vue
Normal file → Executable file
@ -105,6 +105,14 @@ export default {
|
||||
if (!this.$v.formData.name.required) {
|
||||
return this.$tc('validation.required')
|
||||
}
|
||||
|
||||
if (!this.$v.formData.name.minLength) {
|
||||
return this.$tc(
|
||||
'validation.name_min_length',
|
||||
this.$v.formData.name.$params.minLength.min,
|
||||
{ count: this.$v.formData.name.$params.minLength.min }
|
||||
)
|
||||
}
|
||||
},
|
||||
noteError() {
|
||||
if (!this.$v.formData.notes.$error) {
|
||||
@ -139,6 +147,11 @@ export default {
|
||||
required,
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
noteType() {
|
||||
this.setFields()
|
||||
},
|
||||
},
|
||||
async mounted() {
|
||||
this.setFields()
|
||||
if (this.modalDataID) {
|
||||
@ -150,14 +163,10 @@ export default {
|
||||
: (this.noteType = 'Invoice')
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
noteType() {
|
||||
this.setFields()
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions('modal', ['closeModal', 'resetModalData']),
|
||||
...mapActions('notes', ['addNote', 'updateNote']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
...mapActions('invoice', {
|
||||
setInvoiceNote: 'selectNote',
|
||||
}),
|
||||
@ -214,15 +223,19 @@ export default {
|
||||
|
||||
let res = await this.updateNote(data)
|
||||
if (res.data) {
|
||||
window.toastr['success'](
|
||||
this.$t('settings.customization.notes.note_updated')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.customization.notes.note_updated'),
|
||||
})
|
||||
|
||||
this.refreshData ? this.refreshData() : ''
|
||||
this.closeNoteModal()
|
||||
return true
|
||||
}
|
||||
window.toastr['error'](res.data.error)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: res.data.error,
|
||||
})
|
||||
} else {
|
||||
try {
|
||||
let data = {
|
||||
@ -235,9 +248,10 @@ export default {
|
||||
|
||||
if (response.data && response.data.note) {
|
||||
this.isLoading = false
|
||||
window.toastr['success'](
|
||||
this.$t('settings.customization.notes.note_added')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.customization.notes.note_added'),
|
||||
})
|
||||
if (
|
||||
(this.$route.name === 'invoices.create' &&
|
||||
response.data.note.type === 'Invoice') ||
|
||||
@ -269,7 +283,10 @@ export default {
|
||||
this.closeNoteModal()
|
||||
return true
|
||||
}
|
||||
window.toastr['error'](response.data.error)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: response.data.error,
|
||||
})
|
||||
} catch (err) {
|
||||
if (err.response.data.errors.name) {
|
||||
this.isLoading = true
|
||||
|
||||
46
resources/assets/js/components/base/modal/PaymentModeModal.vue
Normal file → Executable file
46
resources/assets/js/components/base/modal/PaymentModeModal.vue
Normal file → Executable file
@ -26,7 +26,7 @@
|
||||
{{ $t('general.cancel') }}
|
||||
</sw-button>
|
||||
<sw-button :loading="isLoading" variant="primary" type="submit">
|
||||
<save-icon class="mr-2" v-if="!isLoading" />
|
||||
<save-icon v-if="!isLoading" class="mr-2" />
|
||||
{{ !isEdit ? $t('general.save') : $t('general.update') }}
|
||||
</sw-button>
|
||||
</div>
|
||||
@ -62,6 +62,14 @@ export default {
|
||||
if (!this.$v.formData.name.required) {
|
||||
return this.$tc('validation.required')
|
||||
}
|
||||
|
||||
if (!this.$v.formData.name.minLength) {
|
||||
return this.$tc(
|
||||
'validation.name_min_length',
|
||||
this.$v.formData.name.$params.minLength.min,
|
||||
{ count: this.$v.formData.name.$params.minLength.min }
|
||||
)
|
||||
}
|
||||
},
|
||||
},
|
||||
validations: {
|
||||
@ -82,6 +90,7 @@ export default {
|
||||
methods: {
|
||||
...mapActions('modal', ['closeModal', 'resetModalData']),
|
||||
...mapActions('payment', ['addPaymentMode', 'updatePaymentMode']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
resetFormData() {
|
||||
this.formData = {
|
||||
id: null,
|
||||
@ -100,34 +109,41 @@ export default {
|
||||
if (this.isEdit) {
|
||||
response = await this.updatePaymentMode(this.formData)
|
||||
if (response.data) {
|
||||
window.toastr['success'](
|
||||
this.$t('settings.customization.payments.payment_mode_updated')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t(
|
||||
'settings.customization.payments.payment_mode_updated'
|
||||
),
|
||||
})
|
||||
this.refreshData ? this.refreshData() : ''
|
||||
this.closePaymentModeModal()
|
||||
return true
|
||||
}
|
||||
window.toastr['error'](response.data.error)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: response.data.error,
|
||||
})
|
||||
} else {
|
||||
try {
|
||||
response = await this.addPaymentMode(this.formData)
|
||||
if (response.data) {
|
||||
this.isLoading = false
|
||||
window.toastr['success'](
|
||||
this.$t('settings.customization.payments.payment_mode_added')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t(
|
||||
'settings.customization.payments.payment_mode_added'
|
||||
),
|
||||
})
|
||||
this.refreshData ? this.refreshData() : ''
|
||||
this.closePaymentModeModal()
|
||||
return true
|
||||
}
|
||||
window.toastr['error'](response.data.error)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: response.data.error,
|
||||
})
|
||||
} catch (err) {
|
||||
if (err.response.data.errors.name) {
|
||||
this.isLoading = false
|
||||
window.toastr['error'](
|
||||
this.$t('validation.payment_mode_already_taken')
|
||||
)
|
||||
}
|
||||
this.isLoading = false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -61,8 +61,8 @@
|
||||
v-model="formData.body"
|
||||
:fields="estimateMailFields"
|
||||
:invalid="$v.formData.body.$error"
|
||||
@input="$v.formData.body.$touch()"
|
||||
class="mt-2"
|
||||
@input="$v.formData.body.$touch()"
|
||||
/>
|
||||
</sw-input-group>
|
||||
</div>
|
||||
@ -140,6 +140,7 @@ export default {
|
||||
computed: {
|
||||
...mapGetters('modal', ['modalDataID', 'modalData', 'modalActive']),
|
||||
...mapGetters('user', ['currentUser']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
getEmailUrl() {
|
||||
return this.url
|
||||
},
|
||||
@ -224,15 +225,31 @@ export default {
|
||||
if (this.$v.$invalid) {
|
||||
return true
|
||||
}
|
||||
swal({
|
||||
this.$swal({
|
||||
title: this.$t('general.are_you_sure'),
|
||||
text: this.$t('estimates.confirm_send_estimate'),
|
||||
icon: '/assets/icon/check-circle-solid.svg',
|
||||
buttons: true,
|
||||
dangerMode: true,
|
||||
}).then(async (value) => {
|
||||
icon: 'question',
|
||||
iconHtml: `<svg
|
||||
aria-hidden="true"
|
||||
class="w-6 h-6"
|
||||
focusable="false"
|
||||
data-prefix="fas"
|
||||
data-icon="check-circle"
|
||||
class="svg-inline--fa fa-check-circle fa-w-16"
|
||||
role="img"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 512 512"
|
||||
>
|
||||
<path
|
||||
fill="#55547A"
|
||||
d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"
|
||||
></path>
|
||||
</svg>`,
|
||||
showCancelButton: true,
|
||||
showConfirmButton: true,
|
||||
}).then(async (result) => {
|
||||
try {
|
||||
if (value) {
|
||||
if (result.value) {
|
||||
let data = {
|
||||
...this.formData,
|
||||
id: this.modalDataID,
|
||||
@ -244,21 +261,26 @@ export default {
|
||||
this.closeModal()
|
||||
if (res.data.success) {
|
||||
this.isLoading = false
|
||||
window.toastr['success'](
|
||||
this.$tc('estimates.send_estimate_successfully')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$tc('estimates.send_estimate_successfully'),
|
||||
})
|
||||
return true
|
||||
}
|
||||
if (res.data.error === 'estimates.user_email_does_not_exist') {
|
||||
window.toastr['error'](
|
||||
this.$tc('estimates.user_email_does_not_exist')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: this.$tc('estimates.user_email_does_not_exist'),
|
||||
})
|
||||
return false
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
this.isLoading = false
|
||||
window.toastr['error'](this.$tc('estimates.something_went_wrong'))
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: this.$tc('estimates.something_went_wrong'),
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@ -55,8 +55,8 @@
|
||||
v-model="formData.body"
|
||||
:fields="InvoiceMailFields"
|
||||
:invalid="$v.formData.body.$error"
|
||||
@input="$v.formData.body.$touch()"
|
||||
class="mt-2"
|
||||
@input="$v.formData.body.$touch()"
|
||||
/>
|
||||
</sw-input-group>
|
||||
</div>
|
||||
@ -194,6 +194,8 @@ export default {
|
||||
|
||||
...mapActions('company', ['fetchCompanySettings', 'fetchMailConfig']),
|
||||
|
||||
...mapActions('notification', ['showNotification']),
|
||||
|
||||
async setInitialData() {
|
||||
let admin = await this.fetchMailConfig()
|
||||
|
||||
@ -220,15 +222,31 @@ export default {
|
||||
if (this.$v.$invalid) {
|
||||
return true
|
||||
}
|
||||
swal({
|
||||
this.$swal({
|
||||
title: this.$t('general.are_you_sure'),
|
||||
text: this.$t('invoices.confirm_send_invoice'),
|
||||
icon: '/assets/icon/check-circle-solid.svg',
|
||||
buttons: true,
|
||||
dangerMode: true,
|
||||
}).then(async (value) => {
|
||||
icon: 'question',
|
||||
iconHtml: `<svg
|
||||
aria-hidden="true"
|
||||
class="w-6 h-6"
|
||||
focusable="false"
|
||||
data-prefix="fas"
|
||||
data-icon="check-circle"
|
||||
class="svg-inline--fa fa-check-circle fa-w-16"
|
||||
role="img"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 512 512"
|
||||
>
|
||||
<path
|
||||
fill="#55547A"
|
||||
d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"
|
||||
></path>
|
||||
</svg>`,
|
||||
showCancelButton: true,
|
||||
showConfirmButton: true,
|
||||
}).then(async (result) => {
|
||||
try {
|
||||
if (value) {
|
||||
if (result.value) {
|
||||
let data = {
|
||||
...this.formData,
|
||||
id: this.modalDataID,
|
||||
@ -239,21 +257,26 @@ export default {
|
||||
this.closeModal()
|
||||
if (res.data.success) {
|
||||
this.isLoading = false
|
||||
window.toastr['success'](
|
||||
this.$tc('invoices.send_invoice_successfully')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$tc('invoices.send_invoice_successfully'),
|
||||
})
|
||||
return true
|
||||
}
|
||||
if (res.data.error === 'invoices.user_email_does_not_exist') {
|
||||
window.toastr['error'](
|
||||
this.$tc('invoices.user_email_does_not_exist')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: this.$tc('invoices.user_email_does_not_exist'),
|
||||
})
|
||||
return false
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
this.isLoading = false
|
||||
window.toastr['error'](this.$tc('invoices.something_went_wrong'))
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: this.$tc('invoices.something_went_wrong'),
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@ -4,9 +4,9 @@
|
||||
<div class="px-8 py-8 sm:p-6">
|
||||
<sw-input-group
|
||||
:label="$t('general.from')"
|
||||
:error="fromError"
|
||||
class="mb-4"
|
||||
variant="vertical"
|
||||
:error="fromError"
|
||||
required
|
||||
>
|
||||
<sw-input
|
||||
@ -25,8 +25,8 @@
|
||||
>
|
||||
<sw-input
|
||||
v-model="formData.to"
|
||||
type="text"
|
||||
:invalid="$v.formData.to.$error"
|
||||
type="text"
|
||||
@input="$v.formData.to.$touch()"
|
||||
/>
|
||||
</sw-input-group>
|
||||
@ -188,6 +188,8 @@ export default {
|
||||
|
||||
...mapActions('company', ['fetchCompanySettings', 'fetchMailConfig']),
|
||||
|
||||
...mapActions('notification', ['showNotification']),
|
||||
|
||||
async setInitialData() {
|
||||
let admin = await this.fetchMailConfig()
|
||||
|
||||
@ -216,15 +218,31 @@ export default {
|
||||
if (this.$v.$invalid) {
|
||||
return true
|
||||
}
|
||||
swal({
|
||||
this.$swal({
|
||||
title: this.$t('general.are_you_sure'),
|
||||
text: this.$t('payments.confirm_send_payment'),
|
||||
icon: '/assets/icon/check-circle-solid.svg',
|
||||
buttons: true,
|
||||
dangerMode: true,
|
||||
}).then(async (value) => {
|
||||
icon: 'question',
|
||||
iconHtml: `<svg
|
||||
aria-hidden="true"
|
||||
class="w-6 h-6"
|
||||
focusable="false"
|
||||
data-prefix="fas"
|
||||
data-icon="check-circle"
|
||||
class="svg-inline--fa fa-check-circle fa-w-16"
|
||||
role="img"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 512 512"
|
||||
>
|
||||
<path
|
||||
fill="#55547A"
|
||||
d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"
|
||||
></path>
|
||||
</svg>`,
|
||||
showCancelButton: true,
|
||||
showConfirmButton: true,
|
||||
}).then(async (result) => {
|
||||
try {
|
||||
if (value) {
|
||||
if (result.value) {
|
||||
let data = {
|
||||
...this.formData,
|
||||
id: this.modalDataID,
|
||||
@ -236,21 +254,26 @@ export default {
|
||||
this.closeModal()
|
||||
if (res.data.success) {
|
||||
this.isLoading = false
|
||||
window.toastr['success'](
|
||||
this.$tc('payments.send_payment_successfully')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$tc('payments.send_payment_successfully'),
|
||||
})
|
||||
return true
|
||||
}
|
||||
if (res.data.error === 'payments.user_email_does_not_exist') {
|
||||
window.toastr['error'](
|
||||
this.$tc('payments.user_email_does_not_exist')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: this.$tc('payments.user_email_does_not_exist'),
|
||||
})
|
||||
return false
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
this.isLoading = false
|
||||
window.toastr['error'](this.$tc('payments.something_went_wrong'))
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: this.$tc('payments.something_went_wrong'),
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@ -9,9 +9,9 @@
|
||||
:searchable="true"
|
||||
:allow-empty="false"
|
||||
:show-labels="false"
|
||||
:custom-label="getCustomLabel"
|
||||
class="mt-2"
|
||||
track-by="id"
|
||||
:custom-label="getCustomLabel"
|
||||
/>
|
||||
</sw-input-group>
|
||||
</div>
|
||||
@ -90,6 +90,8 @@ export default {
|
||||
|
||||
...mapActions('modal', ['closeModal']),
|
||||
|
||||
...mapActions('notification', ['showNotification']),
|
||||
|
||||
async loadData() {
|
||||
this.loading = true
|
||||
|
||||
@ -107,7 +109,10 @@ export default {
|
||||
if (response.data.success) {
|
||||
this.refreshData()
|
||||
this.closeDisk()
|
||||
window.toastr['success'](this.$t('settings.disk.success'))
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.disk.success'),
|
||||
})
|
||||
}
|
||||
this.isLoading = true
|
||||
},
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
{{ $t('general.cancel') }}
|
||||
</sw-button>
|
||||
<sw-button :loading="isLoading" variant="primary" type="submit">
|
||||
<save-icon class="mr-2" v-if="!isLoading" />
|
||||
<save-icon v-if="!isLoading" class="mr-2" />
|
||||
{{ !isEdit ? $t('general.save') : $t('general.update') }}
|
||||
</sw-button>
|
||||
</div>
|
||||
@ -174,6 +174,7 @@ export default {
|
||||
methods: {
|
||||
...mapActions('modal', ['closeModal', 'resetModalData']),
|
||||
...mapActions('taxType', ['addTaxType', 'updateTaxType', 'fetchTaxType']),
|
||||
...mapActions('notification', ['showNotification']),
|
||||
resetFormData() {
|
||||
this.formData = {
|
||||
id: null,
|
||||
@ -198,13 +199,15 @@ export default {
|
||||
}
|
||||
if (response.data) {
|
||||
if (!this.isEdit) {
|
||||
window.toastr['success'](
|
||||
this.$t('settings.tax_types.created_message')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.tax_types.created_message'),
|
||||
})
|
||||
} else {
|
||||
window.toastr['success'](
|
||||
this.$t('settings.tax_types.updated_message')
|
||||
)
|
||||
this.showNotification({
|
||||
type: 'success',
|
||||
message: this.$t('settings.tax_types.updated_message'),
|
||||
})
|
||||
}
|
||||
window.hub.$emit('newTax', response.data.taxType)
|
||||
this.refreshData ? this.refreshData() : ''
|
||||
@ -212,7 +215,10 @@ export default {
|
||||
this.isLoading = false
|
||||
return true
|
||||
}
|
||||
window.toastr['error'](response.data.error)
|
||||
this.showNotification({
|
||||
type: 'error',
|
||||
message: response.data.error,
|
||||
})
|
||||
},
|
||||
async setData() {
|
||||
this.formData = {
|
||||
|
||||
@ -36,12 +36,12 @@
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="flex items-center justify-center w-full px-2 py-3 bg-gray-200 border-none outline-none"
|
||||
class="flex items-center justify-center w-full px-2 py-3 bg-gray-200 border-none outline-none hover:bg-gray-300"
|
||||
@click="openNoteModal"
|
||||
>
|
||||
<check-circle-icon class="h-5" />
|
||||
<label
|
||||
class="m-0 ml-3 text-sm leading-none cursor-pointer font-base text-primary-400"
|
||||
class="m-0 ml-1 text-sm leading-none cursor-pointer font-base text-primary-400"
|
||||
>
|
||||
{{ $t('settings.customization.notes.add_new_note') }}
|
||||
</label>
|
||||
|
||||
@ -12,7 +12,7 @@ export default {
|
||||
disabledMultiSelectTags: 'bg-gray-200 text-gray-400',
|
||||
multiselectTagsWrap: 'multiselect__tags-wrap inline',
|
||||
multiselectTag:
|
||||
'multiselect__tag relative inline-block pt-1 pr-6 pb-1 pl-2 rounded mr-2 text-white leading-none mb-1 whitespace-no-wrap overflow-hidden max-w-full',
|
||||
'multiselect__tag relative inline-block pt-1 pr-6 pb-1 pl-2 rounded mr-2 text-white leading-none mb-1 whitespace-nowrap overflow-hidden max-w-full',
|
||||
multiselectTagIcon:
|
||||
'multiselect__tag-icon cursor-pointer ml-2 absolute right-0 top-0 bottom-0 font-bold w-5 text-center leading-5 delay-200 transition-all ease-linear rounded',
|
||||
multiselectStrong: 'mb-2 leading-5 inline-block align-top',
|
||||
@ -26,6 +26,6 @@ export default {
|
||||
multiselectContent:
|
||||
'multiselect__content list-none inline-block p-0 m-0 min-w-full align-top',
|
||||
multiselectOption:
|
||||
'multiselect__option block p-3 no-underline leading-4 normal-case align-middle relative cursor-pointer whitespace-no-wrap text-sm',
|
||||
'multiselect__option block p-3 no-underline leading-4 normal-case align-middle relative cursor-pointer whitespace-nowrap text-sm',
|
||||
multiselectElement: 'multiselect__element block',
|
||||
}
|
||||
|
||||
@ -73,7 +73,7 @@ export default {
|
||||
callbacks: {
|
||||
label: function (tooltipItem, data) {
|
||||
return self.FormatGraphMoney(
|
||||
tooltipItem.value * 100,
|
||||
Math.round(tooltipItem.value * 100),
|
||||
self.defaultCurrency
|
||||
)
|
||||
},
|
||||
|
||||
@ -72,11 +72,9 @@ export default {
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
created() {
|
||||
this.date =
|
||||
this.field && this.field.defaultAnswer
|
||||
? this.field.defaultAnswer
|
||||
: new Date()
|
||||
this.field && this.field.defaultAnswer && this.field.defaultAnswer
|
||||
this.placeholder =
|
||||
this.field && this.field.placeholder ? this.field.placeholder : ''
|
||||
},
|
||||
|
||||
@ -13,4 +13,10 @@ export default {
|
||||
'inline-flex items-center justify-center text-black transition px-2 duration-150 ease-in-out border border-gray-300 border-solid focus:outline-none bg-white',
|
||||
},
|
||||
},
|
||||
sizes: {
|
||||
discount: {
|
||||
button: 'py-2 px-2 text-sm leading-5 rounded',
|
||||
loadingIcon: 'w-4 h-4 -ml-2',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ export default {
|
||||
itemContainer:
|
||||
'z-10 p-2 max-h-60 text-base text-left list-none rounded border-0 shadow bg-white text-black overflow-auto sw-scroll',
|
||||
item:
|
||||
'flex p-2 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-no-wrap',
|
||||
'flex p-2 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-nowrap',
|
||||
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
||||
},
|
||||
variants: {
|
||||
@ -16,7 +16,7 @@ export default {
|
||||
divider:
|
||||
'border-t border-solid border-gray-200 my-2 mx-0 overflow-hidden',
|
||||
item:
|
||||
'flex p-0 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-no-wrap',
|
||||
'flex p-0 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-nowrap',
|
||||
itemContainer:
|
||||
'z-10 p-2 text-base text-left list-none rounded border-0 shadow bg-white text-black',
|
||||
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import Vue from 'vue'
|
||||
|
||||
Vue.directive('click-outside', {
|
||||
bind: function (el, binding, vnode) {
|
||||
el.event = function (event) {
|
||||
@ -17,7 +19,9 @@ Vue.directive('click-outside', {
|
||||
Vue.directive('autoresize', {
|
||||
inserted: function (el) {
|
||||
el.style.height = el.scrollHeight + 'px'
|
||||
el.style.overflow.y = 'hidden'
|
||||
if (el.style.overflow && el.style.overflow.y) {
|
||||
el.style.overflow.y = 'hidden'
|
||||
}
|
||||
el.style.resize = 'none'
|
||||
function OnInput() {
|
||||
this.style.height = 'auto'
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import i18n from '../plugins/i18n';
|
||||
|
||||
export default {
|
||||
addClass(el, className) {
|
||||
if (el.classList) el.classList.add(className)
|
||||
@ -23,7 +25,13 @@ export default {
|
||||
|
||||
amount = amount / 100
|
||||
|
||||
let { precision, decimal_separator, thousand_separator, symbol } = currency
|
||||
let {
|
||||
precision,
|
||||
decimal_separator,
|
||||
thousand_separator,
|
||||
symbol,
|
||||
swap_currency_symbol,
|
||||
} = currency
|
||||
|
||||
try {
|
||||
precision = Math.abs(precision)
|
||||
@ -37,20 +45,22 @@ export default {
|
||||
let j = i.length > 3 ? i.length % 3 : 0
|
||||
|
||||
let moneySymbol = `<span style="font-family: sans-serif">${symbol}</span>`
|
||||
let thousandText = j ? i.substr(0, j) + thousand_separator : ''
|
||||
let amountText = i
|
||||
.substr(j)
|
||||
.replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator)
|
||||
let precisionText = precision
|
||||
? decimal_separator +
|
||||
Math.abs(amount - i)
|
||||
.toFixed(precision)
|
||||
.slice(2)
|
||||
: ''
|
||||
let combinedAmountText =
|
||||
negativeSign + thousandText + amountText + precisionText
|
||||
|
||||
return (
|
||||
moneySymbol +
|
||||
' ' +
|
||||
negativeSign +
|
||||
(j ? i.substr(0, j) + thousand_separator : '') +
|
||||
i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator) +
|
||||
(precision
|
||||
? decimal_separator +
|
||||
Math.abs(amount - i)
|
||||
.toFixed(precision)
|
||||
.slice(2)
|
||||
: '')
|
||||
)
|
||||
return swap_currency_symbol
|
||||
? combinedAmountText + ' ' + moneySymbol
|
||||
: moneySymbol + ' ' + combinedAmountText
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
@ -68,7 +78,13 @@ export default {
|
||||
|
||||
amount = amount / 100
|
||||
|
||||
let { precision, decimal_separator, thousand_separator, symbol } = currency
|
||||
let {
|
||||
precision,
|
||||
decimal_separator,
|
||||
thousand_separator,
|
||||
symbol,
|
||||
swap_currency_symbol,
|
||||
} = currency
|
||||
|
||||
try {
|
||||
precision = Math.abs(precision)
|
||||
@ -82,20 +98,22 @@ export default {
|
||||
let j = i.length > 3 ? i.length % 3 : 0
|
||||
|
||||
let moneySymbol = `${symbol}`
|
||||
let thousandText = j ? i.substr(0, j) + thousand_separator : ''
|
||||
let amountText = i
|
||||
.substr(j)
|
||||
.replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator)
|
||||
let precisionText = precision
|
||||
? decimal_separator +
|
||||
Math.abs(amount - i)
|
||||
.toFixed(precision)
|
||||
.slice(2)
|
||||
: ''
|
||||
let combinedAmountText =
|
||||
negativeSign + thousandText + amountText + precisionText
|
||||
|
||||
return (
|
||||
moneySymbol +
|
||||
' ' +
|
||||
negativeSign +
|
||||
(j ? i.substr(0, j) + thousand_separator : '') +
|
||||
i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator) +
|
||||
(precision
|
||||
? decimal_separator +
|
||||
Math.abs(amount - i)
|
||||
.toFixed(precision)
|
||||
.slice(2)
|
||||
: '')
|
||||
)
|
||||
return swap_currency_symbol
|
||||
? combinedAmountText + ' ' + moneySymbol
|
||||
: moneySymbol + ' ' + combinedAmountText
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
@ -245,6 +263,36 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
getStatusTranslation(status) {
|
||||
switch (status) {
|
||||
case 'DRAFT':
|
||||
return i18n.t('general.draft')
|
||||
case 'PAID':
|
||||
return i18n.t('invoices.paid')
|
||||
case 'UNPAID':
|
||||
return i18n.t('invoices.unpaid')
|
||||
case 'SENT':
|
||||
return i18n.t('general.sent')
|
||||
case 'REJECTED':
|
||||
return i18n.t('estimates.rejected')
|
||||
case 'ACCEPTED':
|
||||
return i18n.t('estimates.accepted')
|
||||
case 'VIEWED':
|
||||
return i18n.t('invoices.viewed')
|
||||
case 'EXPIRED':
|
||||
return i18n.t('estimates.expired')
|
||||
case 'PARTIALLY PAID':
|
||||
return i18n.t('estimates.partially_paid')
|
||||
case 'OVERDUE':
|
||||
return i18n.t('invoices.overdue')
|
||||
case 'COMPLETED':
|
||||
return i18n.t('invoices.completed')
|
||||
case 'DUE':
|
||||
return i18n.t('general.due')
|
||||
default:
|
||||
return status
|
||||
}
|
||||
},
|
||||
compareVersion(v1, v2, options) {
|
||||
const lexicographical = options && options.lexicographical
|
||||
const zeroExtend = options && options.zeroExtend
|
||||
@ -280,5 +328,5 @@ export default {
|
||||
return -1
|
||||
}
|
||||
return 0
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@ -1,28 +1,28 @@
|
||||
{
|
||||
"navigation": {
|
||||
"dashboard": "الرئيسية",
|
||||
"dashboard": "لوحة القيادة",
|
||||
"customers": "العملاء",
|
||||
"items": "الأصناف",
|
||||
"items": "بضائع/خدمات",
|
||||
"invoices": "الفواتير",
|
||||
"expenses": "النفقات",
|
||||
"estimates": "التقديرات",
|
||||
"payments": "المدفوعات",
|
||||
"payments": "الدفوعات",
|
||||
"reports": "التقارير",
|
||||
"settings": "الإعدادات",
|
||||
"logout": "خروج",
|
||||
"logout": "تسجيل الخروج",
|
||||
"users": "المستخدمون"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "أضف شركة",
|
||||
"view_pdf": "عرض PDF",
|
||||
"copy_pdf_url": "Copy PDF Url",
|
||||
"copy_pdf_url": "نسخ رابط PDF",
|
||||
"download_pdf": "تنزيل PDF",
|
||||
"save": "حفظ",
|
||||
"create": "خلق",
|
||||
"cancel": "إلغاء الأمر",
|
||||
"create": "إنشاء",
|
||||
"cancel": "تراجع",
|
||||
"update": "تحديث",
|
||||
"deselect": "Deselect",
|
||||
"download": "تنزيل",
|
||||
"deselect": "إلغاء الإختيار",
|
||||
"download": "تحميل",
|
||||
"from_date": "من تاريخ",
|
||||
"to_date": "إلى تاريخ",
|
||||
"from": "من",
|
||||
@ -50,43 +50,44 @@
|
||||
"discount": "خصم",
|
||||
"fixed": "ثابت",
|
||||
"percentage": "نسبة",
|
||||
"tax": "ضريبة",
|
||||
"tax": "اداء",
|
||||
"total_amount": "المبلغ الإجمالي",
|
||||
"bill_to": "مطلوب من",
|
||||
"bill_to": "الفاتورة لـ",
|
||||
"ship_to": "يشحن إلى",
|
||||
"due": "واجبة السداد",
|
||||
"due": "المتبقي",
|
||||
"draft": "مسودة",
|
||||
"sent": "مرسلة",
|
||||
"sent": "ارسلت",
|
||||
"all": "الكل",
|
||||
"select_all": "تحديد الل",
|
||||
"select_all": "تحديد الكل",
|
||||
"choose_file": "اضغط هنا لاختيار ملف",
|
||||
"choose_template": "اختيار القالب",
|
||||
"choose": "اختر",
|
||||
"remove": "إزالة",
|
||||
"powered_by": "تصميم",
|
||||
"bytefury": "باترفوري",
|
||||
"remove": "حذف",
|
||||
"powered_by": "بدعم من",
|
||||
"bytefury": "Bytefury",
|
||||
"select_a_status": "اختر الحالة",
|
||||
"select_a_tax": "اختر الضريبة",
|
||||
"select_a_tax": "اختر الاداء",
|
||||
"search": "بحث",
|
||||
"are_you_sure": "هل أنت متأكد?",
|
||||
"are_you_sure": "هل أنت متأكد؟",
|
||||
"list_is_empty": "القائمة فارغة.",
|
||||
"no_tax_found": "لا يوجد ضريبة!",
|
||||
"four_zero_four": "404",
|
||||
"you_got_lost": "عفواً! يبدو أنك قد تهت!",
|
||||
"go_home": "عودة إلى الرئيسية",
|
||||
"test_mail_conf": "اختبار تكوين البريد",
|
||||
"send_mail_successfully": "Mail sent successfully",
|
||||
"go_home": "الذهاب الى الصفحة الرئيسية",
|
||||
"test_mail_conf": "اختبار اعدادات البريد",
|
||||
"send_mail_successfully": "تم إرسال البريد بنجاح",
|
||||
"setting_updated": "تم تحديث الإعدادات بنجاح",
|
||||
"select_state": "اختر الولاية/المنطقة",
|
||||
"select_country": "اختر الدولة",
|
||||
"select_city": "اختر المدينة",
|
||||
"street_1": "عنوان الشارع 1",
|
||||
"street_2": "عنوان الشارع 2",
|
||||
"street_2": "الشارع 2",
|
||||
"action_failed": "فشلت العملية",
|
||||
"retry": "أعد المحاولة",
|
||||
"choose_note": "Choose Note",
|
||||
"no_note_found": "No Note Found",
|
||||
"insert_note": "أدخل ملاحظة"
|
||||
"choose_note": "اختر ملاحظة",
|
||||
"no_note_found": "لم يتم العثور على الملاحظة",
|
||||
"insert_note": "أدخل ملاحظة",
|
||||
"copied_pdf_url_clipboard": "Copied PDF url to clipboard!"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "اختر السنة",
|
||||
@ -143,8 +144,8 @@
|
||||
"add_customer": "إضافة عميل",
|
||||
"contacts_list": "قائمة العملاء",
|
||||
"name": "الاسم",
|
||||
"mail": "Mail | Mails",
|
||||
"statement": "Statement",
|
||||
"mail": "البريد",
|
||||
"statement": "البيان",
|
||||
"display_name": "اسم العرض",
|
||||
"primary_contact_name": "اسم التواصل الرئيسي",
|
||||
"contact_name": "اسم تواصل آخر",
|
||||
@ -153,8 +154,8 @@
|
||||
"address": "العنوان",
|
||||
"phone": "الهاتف",
|
||||
"website": "موقع الإنترنت",
|
||||
"overview": "Overview",
|
||||
"enable_portal": "Enable Portal",
|
||||
"overview": "استعراض",
|
||||
"enable_portal": "تفعيل البوابة",
|
||||
"country": "الدولة",
|
||||
"state": "الولاية/المنطقة",
|
||||
"city": "المدينة",
|
||||
@ -177,6 +178,8 @@
|
||||
"copy_billing_address": "نسخ من عنوان الفوترة",
|
||||
"no_customers": "لا يوجد عملاء حتى الآن!",
|
||||
"no_customers_found": "لم يتم الحصول على عملاء!",
|
||||
"no_contact": "No contact",
|
||||
"no_contact_name": "No contact name",
|
||||
"list_of_customers": "سوف يحتوي هذا القسم على قائمة العملاء.",
|
||||
"primary_display_name": "اسم العرض الرئيسي",
|
||||
"select_currency": "اختر العملة",
|
||||
@ -200,6 +203,7 @@
|
||||
"added_on": "أضيف في",
|
||||
"price": "السعر",
|
||||
"date_of_creation": "تاريخ الإنشاء",
|
||||
"not_selected": "No item selected",
|
||||
"action": "إجراء",
|
||||
"add_item": "إضافة صنف",
|
||||
"save_item": "حفظ الصنف",
|
||||
@ -270,6 +274,7 @@
|
||||
"required": "حقل مطلوب"
|
||||
},
|
||||
"accepted": "مقبول",
|
||||
"rejected": "Rejected",
|
||||
"sent": "مرسل",
|
||||
"draft": "مسودة",
|
||||
"declined": "مرفوض",
|
||||
@ -316,6 +321,9 @@
|
||||
"all": "الكل",
|
||||
"paid": "مدفوع",
|
||||
"unpaid": "غير مدفوع",
|
||||
"viewed": "Viewed",
|
||||
"overdue": "Overdue",
|
||||
"completed": "Completed",
|
||||
"customer": "العميل",
|
||||
"paid_status": "حالة الدفع",
|
||||
"ref_no": "رقم المرجع.",
|
||||
@ -428,18 +436,20 @@
|
||||
"edit_payment": "تعديل الدفعة",
|
||||
"view_payment": "عرض الدفعة",
|
||||
"add_new_payment": "إضافة دفعة جديدة",
|
||||
"send_payment_receipt": "Send Payment Receipt",
|
||||
"send_payment_receipt": "إرسال إيصال الدفع",
|
||||
"send_payment": "إرسال الدفعة",
|
||||
"save_payment": "حفظ الدفعة",
|
||||
"update_payment": "تحديث الدفعة",
|
||||
"payment": "دفعة | مدفوعات",
|
||||
"no_payments": "لا يوجد مدفوعات حتى الآن!",
|
||||
"not_selected": "Not selected",
|
||||
"no_invoice": "No invoice",
|
||||
"no_matching_payments": "لا توجد مدفوعات مطابقة!",
|
||||
"list_of_payments": "سوف تحتوي هذه القائمة على مدفوعات الفواتير.",
|
||||
"select_payment_mode": "اختر طريقة الدفع",
|
||||
"confirm_mark_as_sent": "سيتم التحديد كمرسل على هذا التقدير",
|
||||
"confirm_send_payment": "This payment will be sent via email to the customer",
|
||||
"send_payment_successfully": "Payment sent successfully",
|
||||
"confirm_send_payment": "سيتم إرسال هذه الدفعة عبر البريد الإلكتروني إلى العميل",
|
||||
"send_payment_successfully": "تم إرسال الدفعة بنجاح",
|
||||
"user_email_does_not_exist": "البريد الإلكتروني للمستخدم غير موجود!",
|
||||
"something_went_wrong": "خطأ غير معروف!",
|
||||
"confirm_delete": "لن تكون قادر على استرجاع هذه الدفعة | لن تكون قادراً على استرجاع هذه المدفوعات",
|
||||
@ -463,6 +473,7 @@
|
||||
"receipt": "سند القبض",
|
||||
"amount": "المبلغ المطلوب",
|
||||
"action": "إجراء",
|
||||
"not_selected": "Not selected",
|
||||
"note": "ملاحظة",
|
||||
"category_id": "رمز الفئة",
|
||||
"date": "تاريخ النفقات",
|
||||
@ -505,7 +516,7 @@
|
||||
"enter_email": "أدخل البريد الالكتروني",
|
||||
"enter_password": "أكتب كلمة المرور",
|
||||
"retype_password": "أعد كتابة كلمة المرور",
|
||||
"login_placeholder": "mail@example.com"
|
||||
"login_placeholder": "name@example.com"
|
||||
},
|
||||
"users": {
|
||||
"title": "المستخدمون",
|
||||
@ -740,10 +751,13 @@
|
||||
"title": "الفواتير",
|
||||
"notes": "ملاحظات",
|
||||
"invoice_prefix": "بادئة رقم الفاتورة",
|
||||
"invoice_number_length": "Invoice number length",
|
||||
"default_invoice_email_body": "نص الفاتورة الافتراضي للبريد الإلكتروني",
|
||||
"invoice_settings": "إعدادات الفاتورة",
|
||||
"autogenerate_invoice_number": "ترقيم آلي للفاتورة",
|
||||
"invoice_setting_description": "تعطيل الترقيم الآلي ، إذا كنت لا ترغب في إنشاء أرقام الفاتورة تلقائيًا في كل مرة تقوم فيها بإنشاء فاتورة جديدة.",
|
||||
"invoice_email_attachment": "Send invoices as attachments",
|
||||
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_invoice_prefix": "أدخل بادئة رقم الفاتورة",
|
||||
"terms_and_conditions": "الأحكام والشروط",
|
||||
"company_address_format": "تنسيق عنوان الشركة",
|
||||
@ -754,10 +768,13 @@
|
||||
"estimates": {
|
||||
"title": "التقديرات",
|
||||
"estimate_prefix": "بادئة رقم التقدير",
|
||||
"estimate_number_length": "Estimate number length",
|
||||
"default_estimate_email_body": "تقدير نص البريد الإلكتروني الافتراضي",
|
||||
"estimate_settings": "إعدادت التقدير",
|
||||
"autogenerate_estimate_number": "ترقيم آلي للتقدير",
|
||||
"estimate_setting_description": "تعطيل الترقيم الآلي ، إذا كنت لا ترغب في إنشاء أرقام التقديرات تلقائيًا في كل مرة تقوم فيها بإنشاء تقدير جديد.",
|
||||
"estimate_email_attachment": "Send estimates as attachments",
|
||||
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_estimate_prefix": "أدخل بادئة رقم التقدير",
|
||||
"estimate_setting_updated": "تم تحديث إعدادات التقدير بنجاح",
|
||||
"company_address_format": "تنسيق عنوان الشركة",
|
||||
@ -766,12 +783,15 @@
|
||||
},
|
||||
"payments": {
|
||||
"title": "المدفوعات",
|
||||
"description": "Modes of transaction for payments",
|
||||
"description": "أساليب المعاملات المتعلقة بالمدفوعات",
|
||||
"payment_prefix": "بادئة رقم الدفعة",
|
||||
"payment_number_length": "Payment number lenght",
|
||||
"default_payment_email_body": "نص البريد الإلكتروني للدفع الافتراضي",
|
||||
"payment_settings": "إعدادات الدفعة",
|
||||
"autogenerate_payment_number": "ترقيم آلي للمدفوعات",
|
||||
"payment_setting_description": "تعطيل الترقيم الآلي ، إذا كنت لا ترغب في إنشاء أرقام الدفعة تلقائيًا في كل مرة تقوم فيها بإنشاء دفعة جديدة.",
|
||||
"payment_email_attachment": "Send payments as attachments",
|
||||
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_payment_prefix": "أدخل بادئة رقم الدفعة",
|
||||
"payment_setting_updated": "تم تحديث إعدادات الدفعة بنجاح",
|
||||
"payment_modes": "طرق الدفع",
|
||||
@ -800,7 +820,7 @@
|
||||
},
|
||||
"notes": {
|
||||
"title": "ملاحظات",
|
||||
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
|
||||
"description": "توفير الوقت عن طريق إنشاء الملاحظات وإعادة استخدامها على الفواتير والتقديرات والمدفوعات.",
|
||||
"notes": "ملاحظات",
|
||||
"type": "نوع",
|
||||
"add_note": "اضف ملاحظة",
|
||||
@ -892,7 +912,7 @@
|
||||
"updated_message": "تم تحديث التفضيلات بنجاح",
|
||||
"select_language": "اختر اللغة",
|
||||
"select_time_zone": "اختر المنطة الزمنية",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_date_format": "اختر صيغة التاريخ",
|
||||
"select_financial_year": "اختر السنة المالية"
|
||||
},
|
||||
"update_app": {
|
||||
@ -901,7 +921,7 @@
|
||||
"check_update": "تحقق من التحديثات",
|
||||
"avail_update": "تحديث جديد متوفر",
|
||||
"next_version": "النسخة الجديدة",
|
||||
"requirements": "Requirements",
|
||||
"requirements": "المتطلبات",
|
||||
"update": "حدث الآن",
|
||||
"update_progress": "قيد التحديث...",
|
||||
"progress_text": "سوف يستغرق التحديث بضع دقائق. يرجى عدم تحديث الشاشة أو إغلاق النافذة قبل انتهاء التحديث",
|
||||
@ -911,6 +931,7 @@
|
||||
"download_zip_file": "تنزيل ملف ZIP",
|
||||
"unzipping_package": "حزمة فك الضغط",
|
||||
"copying_files": "نسخ الملفات",
|
||||
"deleting_files": "Deleting Unused files",
|
||||
"running_migrations": "إدارة عمليات الترحيل",
|
||||
"finishing_update": "تحديث التشطيب",
|
||||
"update_failed": "فشل التحديث",
|
||||
@ -926,7 +947,7 @@
|
||||
"path": "مسار",
|
||||
"new_disk": "قرص جديد",
|
||||
"created_at": "أنشئت في",
|
||||
"size": "size",
|
||||
"size": "حجم الملف",
|
||||
"dropbox": "بصندوق الإسقاط",
|
||||
"local": "محلي",
|
||||
"healthy": "صحي",
|
||||
@ -936,7 +957,7 @@
|
||||
"select_disk": "حدد القرص",
|
||||
"action": "عمل",
|
||||
"deleted_message": "تم حذف النسخة الاحتياطية بنجاح",
|
||||
"created_message": "Backup created successfully",
|
||||
"created_message": "تم إنشاء النسخة الاحتياطية بنجاح",
|
||||
"invalid_disk_credentials": "بيانات اعتماد غير صالحة للقرص المحدد"
|
||||
},
|
||||
"disk": {
|
||||
@ -1038,10 +1059,10 @@
|
||||
"port": "منفذ قاعدة البيانات",
|
||||
"password": "كلمة مرور قاعدة البيانات",
|
||||
"app_url": "عنوان الإنترنت للنظام",
|
||||
"app_domain": "App Domain",
|
||||
"app_domain": "رابط التطبيق",
|
||||
"username": "اسم المستخدم لقاعدة البيانات",
|
||||
"db_name": "سم قاعدة البيانات",
|
||||
"db_path": "Database Path",
|
||||
"db_path": "مسار قاعدة البيانات",
|
||||
"desc": "قم بإنشاء قاعدة بيانات على الخادم الخاص بك وتعيين بيانات الاعتماد باستخدام النموذج أدناه."
|
||||
},
|
||||
"permissions": {
|
||||
@ -1123,49 +1144,54 @@
|
||||
"amount_maxlength": "يجب ألا يزيد المبلغ عن 20 رقماً.",
|
||||
"amount_minvalue": "يجب أن يكون المبلغ أكبر من صفر.",
|
||||
"description_maxlength": "يجب ألا يزيد الوصف عن 255 حرفاً.",
|
||||
"subject_maxlength": "Subject should not be greater than 100 characters.",
|
||||
"message_maxlength": "Message should not be greater than 255 characters.",
|
||||
"subject_maxlength": "يجب الا يزيد العنوان عن 100 حرف.",
|
||||
"message_maxlength": "يجب ألا يزيد حجم النص عن 255 حرف.",
|
||||
"maximum_options_error": "الحد الأعلى هو {max} خيارات. قم بإزالة أحد الخيارات لتحديد خيار آخر.",
|
||||
"notes_maxlength": "يجب ألا يزيد حجم الملاحظات عن 255 حرفاً.",
|
||||
"address_maxlength": "يجب ألا يزيد العنوان عن 255 حرفاً.",
|
||||
"ref_number_maxlength": "يجب ألا يزيد الرقم المرجعي عن 255 حرفاً.",
|
||||
"prefix_maxlength": "يجب ألا تزيد البادئة عن 5 أحرف.",
|
||||
"something_went_wrong": "خطأ غير معروف!"
|
||||
"something_went_wrong": "خطأ غير معروف!",
|
||||
"number_length_minvalue": "Number lenght should be greater than 0"
|
||||
},
|
||||
"pdf_estimate_label": "تقدير",
|
||||
"pdf_estimate_number": "رقم تقدير",
|
||||
"pdf_estimate_date": "تاريخ التقدير",
|
||||
"pdf_estimate_expire_date": "Expiry date",
|
||||
"pdf_estimate_expire_date": "تاريخ انتهاء الصلاحية",
|
||||
"pdf_invoice_label": "الفاتورة",
|
||||
"pdf_invoice_number": "رقم الفاتورة",
|
||||
"pdf_invoice_date": "تاريخ الفاتورة",
|
||||
"pdf_invoice_due_date": "Due date",
|
||||
"pdf_invoice_due_date": "تاريخ الاستحقاق",
|
||||
"pdf_notes": "ملاحظات",
|
||||
"pdf_items_label": "الأصناف",
|
||||
"pdf_quantity_label": "الكمية",
|
||||
"pdf_price_label": "السعر",
|
||||
"pdf_discount_label": "الخصم",
|
||||
"pdf_amount_label": "المبلغ المطلوب",
|
||||
"pdf_subtotal": "Subtotal",
|
||||
"pdf_subtotal": "المجموع الفرعي",
|
||||
"pdf_total": "الإجمالي",
|
||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||
"pdf_payment_date": "Payment Date",
|
||||
"pdf_payment_label": "Payment",
|
||||
"pdf_payment_receipt_label": "ايصال الدفع",
|
||||
"pdf_payment_date": "تاريخ الدفع",
|
||||
"pdf_payment_number": "رقم الدفعة",
|
||||
"pdf_payment_mode": "نوع الدفعة",
|
||||
"pdf_payment_amount_received_label": "Amount Received",
|
||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||
"pdf_income_label": "INCOME",
|
||||
"pdf_net_profit_label": "NET PROFIT",
|
||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||
"pdf_total_sales_label": "TOTAL SALES",
|
||||
"pdf_item_sales_label": "Sales Report: By Item",
|
||||
"pdf_tax_report_label": "TAX REPORT",
|
||||
"pdf_total_tax_label": "TOTAL TAX",
|
||||
"pdf_payment_amount_received_label": "المبلغ المستلم",
|
||||
"pdf_expense_report_label": "تقرير المصاريف",
|
||||
"pdf_total_expenses_label": "مجموع المصاريف",
|
||||
"pdf_profit_loss_label": "تقرير الارباح و الخسائر",
|
||||
"pdf_sales_customers_label": "Sales Customer Report",
|
||||
"pdf_sales_items_label": "Sales Item Report",
|
||||
"pdf_tax_summery_label": "Tax Summary Report",
|
||||
"pdf_income_label": "الايرادات",
|
||||
"pdf_net_profit_label": "صافي الأرباح",
|
||||
"pdf_customer_sales_report": "تقرير المبيعات: حسب العميل",
|
||||
"pdf_total_sales_label": "مجموع المبيعات",
|
||||
"pdf_item_sales_label": "تقرير المبيعات: حسب البضاعة او الخدمة",
|
||||
"pdf_tax_report_label": "تقرير الاداءات",
|
||||
"pdf_total_tax_label": "اجمالي الاداءات",
|
||||
"pdf_tax_types_label": "أنواع الضرائب",
|
||||
"pdf_expenses_label": "النفقات",
|
||||
"pdf_bill_to": "مطلوب من,",
|
||||
"pdf_ship_to": "يشحن إلى,",
|
||||
"pdf_received_from": "Received from:"
|
||||
"pdf_received_from": "تم الاستلام من:"
|
||||
}
|
||||
|
||||
@ -4,42 +4,42 @@
|
||||
"customers": "Kunden",
|
||||
"items": "Artikel",
|
||||
"invoices": "Rechnungen",
|
||||
"expenses": "Kosten",
|
||||
"expenses": "Ausgaben",
|
||||
"estimates": "Kostenvoranschläge",
|
||||
"payments": "Zahlungen",
|
||||
"reports": "Berichte",
|
||||
"settings": "Einstellungen",
|
||||
"logout": "Abmelden",
|
||||
"users": "Users"
|
||||
"users": "Benutzer"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "Add Company",
|
||||
"add_company": "Unternehmen hinzufügen",
|
||||
"view_pdf": "PDF anzeigen",
|
||||
"copy_pdf_url": "Copy PDF Url",
|
||||
"copy_pdf_url": "PDF-Link kopieren",
|
||||
"download_pdf": "PDF herunterladen",
|
||||
"save": "Speichern",
|
||||
"create": "Create",
|
||||
"cancel": "Abrechen",
|
||||
"create": "Erstellen",
|
||||
"cancel": "Abbrechen",
|
||||
"update": "Aktualisieren",
|
||||
"deselect": "Entfernen",
|
||||
"deselect": "Abwählen",
|
||||
"download": "Herunterladen",
|
||||
"from_date": "Von Datum",
|
||||
"to_date": "bis Datum",
|
||||
"from": "Von",
|
||||
"to": "bis",
|
||||
"to": "An",
|
||||
"sort_by": "Sortieren nach",
|
||||
"ascending": "Aufsteigend",
|
||||
"descending": "Absteigend",
|
||||
"subject": "Betreff",
|
||||
"body": "Körper",
|
||||
"body": "Inhalt",
|
||||
"message": "Nachricht",
|
||||
"send": "Send",
|
||||
"send": "Absenden",
|
||||
"go_back": "zurück",
|
||||
"back_to_login": "Zurück zum Login?",
|
||||
"home": "Startseite",
|
||||
"filter": "Filter",
|
||||
"delete": "Löschen",
|
||||
"edit": "Ändern",
|
||||
"edit": "Bearbeiten",
|
||||
"view": "Anzeigen",
|
||||
"add_new_item": "Artikel hinzufügen",
|
||||
"clear_all": "Alle entfernen",
|
||||
@ -48,12 +48,12 @@
|
||||
"actions": "Aktionen",
|
||||
"subtotal": "ZWISCHENSUMME",
|
||||
"discount": "RABATT",
|
||||
"fixed": "Behoben",
|
||||
"fixed": "Festsatz",
|
||||
"percentage": "Prozentsatz",
|
||||
"tax": "Steuer",
|
||||
"total_amount": "GESAMTSUMME",
|
||||
"bill_to": "Rechnungsempfänger",
|
||||
"ship_to": "Versand ein",
|
||||
"ship_to": "Versand an",
|
||||
"due": "Fällig",
|
||||
"draft": "Entwurf",
|
||||
"sent": "Gesendet",
|
||||
@ -63,7 +63,7 @@
|
||||
"choose_template": "Wählen Sie eine Vorlage",
|
||||
"choose": "Wählen",
|
||||
"remove": "Entfernen",
|
||||
"powered_by": "Powered by",
|
||||
"powered_by": "Betrieben durch",
|
||||
"bytefury": "Bytefury",
|
||||
"select_a_status": "Status wählen",
|
||||
"select_a_tax": "Steuersatz wählen",
|
||||
@ -75,18 +75,19 @@
|
||||
"you_got_lost": "Hoppla! Du hast dich verirrt!",
|
||||
"go_home": "Geh zurück",
|
||||
"test_mail_conf": "E-Mail Konfiguration testen",
|
||||
"send_mail_successfully": "E-Mail versendet erfolgreich",
|
||||
"send_mail_successfully": "E-Mail erfolgreich versendet",
|
||||
"setting_updated": "Einstellungen erfolgreich aktualisiert",
|
||||
"select_state": "Bundesland wählen",
|
||||
"select_country": "Land wählen",
|
||||
"select_city": "Stadt wählen",
|
||||
"street_1": "Straße",
|
||||
"street_2": "Zusatz Strasse",
|
||||
"street_1": "Straße und Hausnummer",
|
||||
"street_2": "Adresszusatz",
|
||||
"action_failed": "Aktion fehlgeschlagen",
|
||||
"retry": "Wiederholen",
|
||||
"choose_note": "Choose Note",
|
||||
"no_note_found": "No Note Found",
|
||||
"insert_note": "Insert Note"
|
||||
"choose_note": "Notiz auswählen",
|
||||
"no_note_found": "Keine Notizen gefunden",
|
||||
"insert_note": "Notiz einfügen",
|
||||
"copied_pdf_url_clipboard": "Copied PDF url to clipboard!"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Jahr wählen",
|
||||
@ -94,12 +95,12 @@
|
||||
"due_amount": "Offene Beträge",
|
||||
"customers": "Kunden",
|
||||
"invoices": "Rechnungen",
|
||||
"estimates": "Kostenvoranschläge"
|
||||
"estimates": "Angebote"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "Verkäufe gesamt",
|
||||
"total_receipts": "Eingänge gesamt",
|
||||
"total_expense": "Gesamtausgaben",
|
||||
"total_sales": "Aufträge gesamt",
|
||||
"total_receipts": "Zahlungen gesamt",
|
||||
"total_expense": "Ausgaben",
|
||||
"net_income": "Einnahmen Netto",
|
||||
"year": "Jahr"
|
||||
},
|
||||
@ -107,7 +108,7 @@
|
||||
"title": "Wöchentliche Rechnungen"
|
||||
},
|
||||
"monthly_chart": {
|
||||
"title": "Umsatz & Kosten"
|
||||
"title": "Umsatz & Ausgaben"
|
||||
},
|
||||
"recent_invoices_card": {
|
||||
"title": "Fällige Rechnungen",
|
||||
@ -118,7 +119,7 @@
|
||||
"view_all": "Alle Anzeigen"
|
||||
},
|
||||
"recent_estimate_card": {
|
||||
"title": "Aktuelle Kostenvoranschläge",
|
||||
"title": "Aktuelle Angebote",
|
||||
"date": "Datum",
|
||||
"customer": "Kunden",
|
||||
"amount_due": "Betrag",
|
||||
@ -133,18 +134,18 @@
|
||||
"compound_tax": "zusammengesetzte Steuer"
|
||||
},
|
||||
"global_search": {
|
||||
"search": "Search...",
|
||||
"search": "Suchen...",
|
||||
"customers": "Kunden",
|
||||
"users": "Users",
|
||||
"no_results_found": "No Results Found"
|
||||
"users": "Benutzer",
|
||||
"no_results_found": "Keine Ergebnisse gefunden"
|
||||
},
|
||||
"customers": {
|
||||
"title": "Kunden",
|
||||
"add_customer": "Kunde hinzufügen",
|
||||
"contacts_list": "Kunden-Liste",
|
||||
"name": "Name",
|
||||
"mail": "Mail | Mails",
|
||||
"statement": "Statement",
|
||||
"mail": "E-Mail| E-Mails",
|
||||
"statement": "Stellungnahme",
|
||||
"display_name": "Anzeige Name",
|
||||
"primary_contact_name": "Ansprechpartner",
|
||||
"contact_name": "Kontakt Name",
|
||||
@ -153,8 +154,8 @@
|
||||
"address": "Adresse",
|
||||
"phone": "Telefon",
|
||||
"website": "Webseite",
|
||||
"overview": "Overview",
|
||||
"enable_portal": "Enable Portal",
|
||||
"overview": "Übersicht",
|
||||
"enable_portal": "Kunden-Portal aktivieren",
|
||||
"country": "Land",
|
||||
"state": "Bundesland",
|
||||
"city": "Stadt",
|
||||
@ -177,7 +178,9 @@
|
||||
"copy_billing_address": "Rechnungsadresse kopieren",
|
||||
"no_customers": "Noch keine Kunden!",
|
||||
"no_customers_found": "Keine Kunden gefunden!",
|
||||
"list_of_customers": "Dieser Abschnitt enthält die Liste der Kunden.",
|
||||
"no_contact": "Kein Kontakt",
|
||||
"no_contact_name": "Kein Kontaktname",
|
||||
"list_of_customers": "Dieser Bereich zeigt alle Kunden.",
|
||||
"primary_display_name": "Primärer Anzeige Name",
|
||||
"select_currency": "Währung wählen",
|
||||
"select_a_customer": "Wählen Sie einen Kunden",
|
||||
@ -187,7 +190,7 @@
|
||||
"phone_number": "Telefonnummer",
|
||||
"create_date": "Erstellungsdatum",
|
||||
"confirm_delete": "Sie können diesen Kunden und alle zugehörigen Rechnungen, Schätzungen und Zahlungen nicht wiederherstellen. | Sie können diesen Kunden und alle zugehörigen Rechnungen, Schätzungen und Zahlungen nicht wiederherstellen.",
|
||||
"created_message": "Customer created successfully",
|
||||
"created_message": "Benutzer erfolgreich erstellt",
|
||||
"updated_message": "Kunde erfolgreich aktualisiert",
|
||||
"deleted_message": "Kunden erfolgreich gelöscht | Kunden erfolgreich gelöscht"
|
||||
},
|
||||
@ -200,6 +203,7 @@
|
||||
"added_on": "Hinzugefügt am",
|
||||
"price": "Preis",
|
||||
"date_of_creation": "Erstellt am",
|
||||
"not_selected": "Keine ausgewählt",
|
||||
"action": "Aktion",
|
||||
"add_item": "Artikel hinzufügen",
|
||||
"save_item": "Artikel speichern",
|
||||
@ -209,8 +213,8 @@
|
||||
"new_item": "Neuer Artikel",
|
||||
"edit_item": "Artikel bearbeiten",
|
||||
"no_items": "Keine Artikel vorhanden!",
|
||||
"list_of_items": "Dieser Abschnitt enthält die Liste der Artikel.",
|
||||
"select_a_unit": "wählen Sie die Einheit",
|
||||
"list_of_items": "Dieser Bereich zeigt alle Artikel.",
|
||||
"select_a_unit": "Einheit auswählen",
|
||||
"taxes": "Steuern",
|
||||
"item_attached_message": "Ein Artikel der bereits verwendet wird kann nicht gelöscht werden",
|
||||
"confirm_delete": "Sie können diesen Artikel nicht wiederherstellen | Sie können diese Artikel nicht wiederherstellen",
|
||||
@ -219,24 +223,24 @@
|
||||
"deleted_message": "Artikel erfolgreich gelöscht | Artikel erfolgreich gelöscht"
|
||||
},
|
||||
"estimates": {
|
||||
"title": "Kostenvoranschläge",
|
||||
"estimate": "Kostenvoranschlag | Kostenvoranschläge",
|
||||
"estimates_list": "Liste Kostenvoranschläge",
|
||||
"title": "Angebote",
|
||||
"estimate": "Angebot | Angebote",
|
||||
"estimates_list": "Angebotsübersicht",
|
||||
"days": "{days} Tage",
|
||||
"months": "{months} Monat",
|
||||
"years": "{years} Jahre",
|
||||
"all": "Alle",
|
||||
"paid": "Bezahlt",
|
||||
"unpaid": "Unbezahlte",
|
||||
"unpaid": "Unbezahlt",
|
||||
"customer": "KUNDEN",
|
||||
"ref_no": "REF. - NR.",
|
||||
"number": "ANZAHL",
|
||||
"number": "NUMMER",
|
||||
"amount_due": "OFFENER BETRAG",
|
||||
"partially_paid": "Teilweise bezahlt",
|
||||
"total": "Gesamt",
|
||||
"discount": "Rabatt",
|
||||
"sub_total": "Zwischensumme",
|
||||
"estimate_number": "Kostenvoran. Nummer",
|
||||
"estimate_number": "Angebotsnummer",
|
||||
"ref_number": "Ref-Nummer",
|
||||
"contact": "Kontakt",
|
||||
"add_item": "Fügen Sie ein Artikel hinzu",
|
||||
@ -247,49 +251,50 @@
|
||||
"add_tax": "Steuer hinzufügen",
|
||||
"amount": "Summe",
|
||||
"action": "Aktion",
|
||||
"notes": "Hinweise",
|
||||
"notes": "Notizen",
|
||||
"tax": "Steuer",
|
||||
"estimate_template": "Vorlage",
|
||||
"convert_to_invoice": "Konvertieren in Rechnung",
|
||||
"mark_as_sent": "Als gesendet markieren",
|
||||
"send_estimate": "Kostenvoranschlag senden",
|
||||
"resend_estimate": "Resend Estimate",
|
||||
"send_estimate": "Angebot senden",
|
||||
"resend_estimate": "Angebot erneut senden",
|
||||
"record_payment": "Zahlung erfassen",
|
||||
"add_estimate": "Kostenvoranschlag hinzufügen",
|
||||
"save_estimate": "Kostenvoranschlag speichern",
|
||||
"add_estimate": "Angebote hinzufügen",
|
||||
"save_estimate": "Angebot speichern",
|
||||
"confirm_conversion": "Sie möchten, konvertieren Sie diese Schätzung in die Rechnung?",
|
||||
"conversion_message": "Rechnung erfolgreich erstellt",
|
||||
"confirm_send_estimate": "Der Kostenvoranschlag wird per E-Mail an den Kunden gesendet",
|
||||
"confirm_mark_as_sent": "Dieser Kostenvoranschlag wird als gesendet markiert",
|
||||
"confirm_mark_as_accepted": "Dieser Kostenvoranschlag wird als angenommen markiert",
|
||||
"confirm_mark_as_rejected": "Dieser Kostenvoranschlag wird als abgelehnt markiert",
|
||||
"no_matching_estimates": "Es gibt keine übereinstimmenden Kostenvoranschläge!",
|
||||
"mark_as_sent_successfully": "Kostenvoranschlag als gesendet markiert.",
|
||||
"send_estimate_successfully": "Kostenvoranschlag erfolgreich gesendet",
|
||||
"confirm_send_estimate": "Das Angebot wird per E-Mail an den Kunden gesendet",
|
||||
"confirm_mark_as_sent": "Dieses Angebot wird als gesendet markiert",
|
||||
"confirm_mark_as_accepted": "Dieses Angebot wird als angenommen markiert",
|
||||
"confirm_mark_as_rejected": "Dieses Angebot wird als abgelehnt markiert",
|
||||
"no_matching_estimates": "Es gibt keine übereinstimmenden Angebote!",
|
||||
"mark_as_sent_successfully": "Angebot als gesendet markiert",
|
||||
"send_estimate_successfully": "Angebot erfolgreich gesendet",
|
||||
"errors": {
|
||||
"required": "Feld ist erforderlich"
|
||||
},
|
||||
"accepted": "Angenommen",
|
||||
"rejected": "Abgelehnt",
|
||||
"sent": "Gesendet",
|
||||
"draft": "Entwurf",
|
||||
"declined": "Abgelehnt",
|
||||
"new_estimate": "Neuer Kostenvoranschlag",
|
||||
"add_new_estimate": "Neuen Kostenvoranschlag hinzufügen",
|
||||
"update_Estimate": "Kostenvoranschlag aktualisieren",
|
||||
"edit_estimate": "Kostenvoranschlag ändern",
|
||||
"new_estimate": "Neues Angebot",
|
||||
"add_new_estimate": "Neues Angebot hinzufügen",
|
||||
"update_Estimate": "Angebot aktualisieren",
|
||||
"edit_estimate": "Angebot ändern",
|
||||
"items": "Artikel",
|
||||
"Estimate": "Kostenvoranschlag | Kostenvoranschläge",
|
||||
"Estimate": "Angebot | Angebote",
|
||||
"add_new_tax": "neuen Steuersatz hinzufügen",
|
||||
"no_estimates": "Keine Kostenvoranschläge vorhanden!",
|
||||
"list_of_estimates": "Dieser Abschnitt enthält die Liste der Kostenvoranschläge.",
|
||||
"no_estimates": "Keine Angebote vorhanden!",
|
||||
"list_of_estimates": "Dieser Bereich zeigt alle Angebote.",
|
||||
"mark_as_rejected": "Markiert als abgelehnt",
|
||||
"mark_as_accepted": "Markiert als angenommen",
|
||||
"marked_as_accepted_message": "Kostenvoranschlag als angenommen markiert",
|
||||
"marked_as_rejected_message": "Kostenvoranschlag als abgelehnt markiert",
|
||||
"confirm_delete": "Der Kostenvoranschlag kann nicht wiederhergestellt werden | Die Kostenvoranschläge können nicht wiederhergestellt werden",
|
||||
"created_message": "Kostenvoranschlag erfolgreich erstellt",
|
||||
"updated_message": "Kostenvoranschlag erfolgreich aktualisiert",
|
||||
"deleted_message": "Kostenvoranschlag erfolgreich gelöscht | Kostenvoranschläge erfolgreich gelöscht",
|
||||
"marked_as_accepted_message": "Angebot als angenommen markiert",
|
||||
"marked_as_rejected_message": "Angebot als abgelehnt markiert",
|
||||
"confirm_delete": "Das Angebot kann nicht wiederhergestellt werden | Die Angebote können nicht wiederhergestellt werden",
|
||||
"created_message": "Angebot erfolgreich erstellt",
|
||||
"updated_message": "Angebot erfolgreich aktualisiert",
|
||||
"deleted_message": "Angebot(e) erfolgreich gelöscht",
|
||||
"user_email_does_not_exist": "Benutzer-E-Mail nicht vorhanden",
|
||||
"something_went_wrong": "Da ging etwas schief",
|
||||
"item": {
|
||||
@ -315,11 +320,14 @@
|
||||
"years": "{years} Jahre",
|
||||
"all": "Alle",
|
||||
"paid": "Bezahlt",
|
||||
"unpaid": "Unbezahlte",
|
||||
"unpaid": "Unbezahlt",
|
||||
"viewed": "Gesehen",
|
||||
"overdue": "Überfällig",
|
||||
"completed": "Abgeschlossen",
|
||||
"customer": "KUNDEN",
|
||||
"paid_status": "BEZAHLT-STATUS",
|
||||
"paid_status": "ZAHLUNGSSTATUS",
|
||||
"ref_no": "REF. - NR.",
|
||||
"number": "ANZAHL",
|
||||
"number": "NUMMER",
|
||||
"amount_due": "OFFENER BETRAG",
|
||||
"partially_paid": "Teilzahlung",
|
||||
"total": "Gesamt",
|
||||
@ -336,10 +344,10 @@
|
||||
"add_tax": "Steuersatz hinzufügen",
|
||||
"amount": "Summe",
|
||||
"action": "Aktion",
|
||||
"notes": "Hinweise",
|
||||
"notes": "Notizen",
|
||||
"view": "Anzeigen",
|
||||
"send_invoice": "Rechnung senden",
|
||||
"resend_invoice": "Resend Invoice",
|
||||
"resend_invoice": "Rechnung erneut senden",
|
||||
"invoice_template": "Rechnungs-Vorlage",
|
||||
"template": "Vorlage",
|
||||
"mark_as_sent": "Als gesendet markieren",
|
||||
@ -356,7 +364,7 @@
|
||||
"update_invoice": "Rechnung ändern",
|
||||
"add_new_tax": "Neuen Steuersatz hinzufügen",
|
||||
"no_invoices": "Keine Rechnungen vorhanden!",
|
||||
"list_of_invoices": "Dieser Abschnitt enthält die Liste der Rechnungen.",
|
||||
"list_of_invoices": "Dieser Bereich zeigt alle Rechnungen.",
|
||||
"select_invoice": "Wählen Sie eine Rechnung",
|
||||
"no_matching_invoices": "Es gibt keine entsprechenden Rechnungen!",
|
||||
"mark_as_sent_successfully": "Rechnung gekennzeichnet als erfolgreich gesendet",
|
||||
@ -397,7 +405,7 @@
|
||||
"amount": "Summe",
|
||||
"action": "Aktion",
|
||||
"credit_number": "Kreditkarten-Nummer",
|
||||
"notes": "Hinweise",
|
||||
"notes": "Notizen",
|
||||
"confirm_delete": "Wollen Sie diese Gutschrift löschen?",
|
||||
"item": {
|
||||
"title": "Titel",
|
||||
@ -428,18 +436,20 @@
|
||||
"edit_payment": "Zahlung bearbeiten",
|
||||
"view_payment": "Zahlung anzeigen",
|
||||
"add_new_payment": "Neue Zahlung hinzufügen",
|
||||
"send_payment_receipt": "Send Payment Receipt",
|
||||
"send_payment_receipt": "Zahlungsbeleg senden",
|
||||
"send_payment": "Senden Sie die Zahlung",
|
||||
"save_payment": "Zahlung speichern",
|
||||
"update_payment": "Zahlung ändern",
|
||||
"payment": "Zahlung | Zahlungen",
|
||||
"no_payments": "Keine Zahlungen vorhanden!",
|
||||
"not_selected": "Nicht ausgewählt",
|
||||
"no_invoice": "Keine Rechnung",
|
||||
"no_matching_payments": "Es gibt keine passenden Zahlungen!",
|
||||
"list_of_payments": "Dieser Abschnitt enthält die Liste der Zahlungen.",
|
||||
"list_of_payments": "Dieser Bereich zeigt alle Zahlungen.",
|
||||
"select_payment_mode": "Wählen Sie den Zahlungsmodus",
|
||||
"confirm_mark_as_sent": "Dieser Kostenvoranschlag wird als gesendet markiert",
|
||||
"confirm_send_payment": "This payment will be sent via email to the customer",
|
||||
"send_payment_successfully": "Payment sent successfully",
|
||||
"confirm_mark_as_sent": "Dieses Angebot wird als gesendet markiert",
|
||||
"confirm_send_payment": "Diese Zahlung wird per E-Mail an den Kunden gesendet",
|
||||
"send_payment_successfully": "Zahlung erfolgreich gesendet",
|
||||
"user_email_does_not_exist": "Benutzer-E-Mail existiert nicht",
|
||||
"something_went_wrong": "Da ist etwas schief gelaufen",
|
||||
"confirm_delete": "Sie können diese Zahlung nicht wiederherstellen. | Sie können diese Zahlungen nicht wiederherstellen.",
|
||||
@ -449,37 +459,38 @@
|
||||
"invalid_amount_message": "Zahlungsbetrag ist ungültig"
|
||||
},
|
||||
"expenses": {
|
||||
"title": "Aufwendungen/Ausgaben",
|
||||
"expenses_list": "Liste der Ausgaben",
|
||||
"title": "Ausgaben",
|
||||
"expenses_list": "Ausgabenübersicht",
|
||||
"select_a_customer": "Wählen Sie einen Kunden",
|
||||
"expense_title": "Titel",
|
||||
"customer": "Kundin",
|
||||
"customer": "Kunde",
|
||||
"contact": "Kontakt",
|
||||
"category": "Kategorie",
|
||||
"from_date": "Von Datum",
|
||||
"to_date": "bis Datum",
|
||||
"expense_date": "Datum",
|
||||
"description": "Beschreibung",
|
||||
"receipt": "Eingang",
|
||||
"receipt": "Rechnung",
|
||||
"amount": "Summe",
|
||||
"action": "Aktion",
|
||||
"not_selected": "Nicht ausgewählt",
|
||||
"note": "Hinweis",
|
||||
"category_id": "Kategorie-Id",
|
||||
"date": "Aufwandsdatum",
|
||||
"add_expense": "Aufwendung hinzufügen",
|
||||
"add_new_expense": "Neue Aufwendung hinzufügen",
|
||||
"save_expense": "Aufwendung speichern",
|
||||
"update_expense": "Aufwendung aktualisieren",
|
||||
"date": "Ausgabedatum",
|
||||
"add_expense": "Ausgabe hinzufügen",
|
||||
"add_new_expense": "Neue Ausgabe hinzufügen",
|
||||
"save_expense": "Ausgabe speichern",
|
||||
"update_expense": "Ausgabe aktualisieren",
|
||||
"download_receipt": "Quittung herunterladen",
|
||||
"edit_expense": "Aufwendung ändern",
|
||||
"new_expense": "Neue Aufwendung",
|
||||
"expense": "Aufwendung | Aufwendungen",
|
||||
"edit_expense": "Ausgabe bearbeiten",
|
||||
"new_expense": "Neue Ausgabe",
|
||||
"expense": "Ausgabe | Ausgaben",
|
||||
"no_expenses": "Noch keine Ausgaben!",
|
||||
"list_of_expenses": "Dieser Abschnitt enthält die Liste der Ausgaben.",
|
||||
"list_of_expenses": "Dieser Bereich enthält alle Ausgaben.",
|
||||
"confirm_delete": "Sie können diese Ausgabe nicht wiederherstellen. | Sie können diese Ausgaben nicht wiederherstellen.",
|
||||
"created_message": "Aufwand erfolgreich erstellt",
|
||||
"updated_message": "Aufwand erfolgreich aktualisiert",
|
||||
"deleted_message": "Aufwand erfolgreich gelöscht | Aufwand erfolgreich gelöscht",
|
||||
"created_message": "Ausgabe erfolgreich erstellt",
|
||||
"updated_message": "Ausgabe erfolgreich aktualisiert",
|
||||
"deleted_message": "Ausgabe erfolgreich gelöscht | Ausgaben erfolgreich gelöscht",
|
||||
"categories": {
|
||||
"categories_list": "Liste der Kategorien",
|
||||
"title": "Titel",
|
||||
@ -508,30 +519,30 @@
|
||||
"login_placeholder": "mail@beispiel.de"
|
||||
},
|
||||
"users": {
|
||||
"title": "Users",
|
||||
"users_list": "Users List",
|
||||
"title": "Benutzer",
|
||||
"users_list": "Benutzerliste",
|
||||
"name": "Name",
|
||||
"description": "Beschreibung",
|
||||
"added_on": "Hinzugefügt am",
|
||||
"date_of_creation": "Erstellt am",
|
||||
"action": "Aktion",
|
||||
"add_user": "Add User",
|
||||
"save_user": "Save User",
|
||||
"update_user": "Update User",
|
||||
"user": "User | Users",
|
||||
"add_new_user": "Add New User",
|
||||
"new_user": "New User",
|
||||
"edit_user": "Edit User",
|
||||
"no_users": "No users yet!",
|
||||
"list_of_users": "This section will contain the list of users.",
|
||||
"add_user": "Benutzer hinzufügen",
|
||||
"save_user": "Benutzer speichern",
|
||||
"update_user": "Benutzer aktualisieren",
|
||||
"user": "Benutzer",
|
||||
"add_new_user": "Neuen Benutzer hinzufügen",
|
||||
"new_user": "Neuer Benutzer",
|
||||
"edit_user": "Benutzer bearbeiten",
|
||||
"no_users": "Noch keine Benutzer!",
|
||||
"list_of_users": "Dieser Bereich zeigt alle Benutzer.",
|
||||
"email": "E-Mail",
|
||||
"phone": "Telefon",
|
||||
"password": "Passwort",
|
||||
"user_attached_message": "Ein Artikel der bereits verwendet wird kann nicht gelöscht werden",
|
||||
"confirm_delete": "You will not be able to recover this User | You will not be able to recover these Users",
|
||||
"created_message": "User created successfully",
|
||||
"updated_message": "User updated successfully",
|
||||
"deleted_message": "User deleted successfully | User deleted successfully"
|
||||
"confirm_delete": "Sie werden diesen Benutzer nicht wiederherstellen können | Sie werden nicht in der Lage sein, diese Benutzer wiederherzustellen",
|
||||
"created_message": "Benutzer erfolgreich erstellt",
|
||||
"updated_message": "Benutzer wurde erfolgreich aktualisiert",
|
||||
"deleted_message": "Benutzer erfolgreich gelöscht | Benutzer erfolgreich gelöscht"
|
||||
},
|
||||
"reports": {
|
||||
"title": "Bericht",
|
||||
@ -551,7 +562,7 @@
|
||||
"date_range": "Datumsbereich auswählen"
|
||||
},
|
||||
"sales": {
|
||||
"sales": "Vertrieb",
|
||||
"sales": "Umsatz",
|
||||
"date_range": "Datumsbereich auswählen",
|
||||
"to_date": "bis Datum",
|
||||
"from_date": "Ab Datum",
|
||||
@ -575,17 +586,17 @@
|
||||
"status": "Status"
|
||||
},
|
||||
"estimates": {
|
||||
"estimate": "Kostenvoranschlag",
|
||||
"estimate_date": "Datum Kostenvoranschlag",
|
||||
"estimate": "Angebot",
|
||||
"estimate_date": "Angebotsdatum",
|
||||
"due_date": "Fälligkeit",
|
||||
"estimate_number": "Kostenvoranschlag-Nr.",
|
||||
"estimate_number": "Angebotsnummer",
|
||||
"ref_number": "Ref-Nummer",
|
||||
"amount": "Summe",
|
||||
"contact_name": "Ansprechpartner",
|
||||
"status": "Status"
|
||||
},
|
||||
"expenses": {
|
||||
"expenses": "Aufwendungen",
|
||||
"expenses": "Ausgaben",
|
||||
"category": "Kategorie",
|
||||
"date": "Datum",
|
||||
"amount": "Summe",
|
||||
@ -598,17 +609,17 @@
|
||||
"menu_title": {
|
||||
"account_settings": "Konto-Einstellungen",
|
||||
"company_information": "Informationen zum Unternehmen",
|
||||
"customization": "Anpassung",
|
||||
"customization": "Personalisierung",
|
||||
"preferences": "Einstellungen",
|
||||
"notifications": "Benachrichtigungen",
|
||||
"tax_types": "Steuersätze",
|
||||
"expense_category": "Ausgabenkategorien",
|
||||
"update_app": "Applikation aktualisieren",
|
||||
"backup": "Backup",
|
||||
"file_disk": "File Disk",
|
||||
"backup": "Sicherung",
|
||||
"file_disk": "Dateispeicher",
|
||||
"custom_fields": "Benutzerdefinierte Felder",
|
||||
"payment_modes": "Payment Modes",
|
||||
"notes": "Hinweise"
|
||||
"payment_modes": "Zahlungsarten",
|
||||
"notes": "Notizen"
|
||||
},
|
||||
"title": "Einstellungen",
|
||||
"setting": "Einstellung | Einstellungen",
|
||||
@ -641,7 +652,7 @@
|
||||
"driver": "E-Mail Treiber",
|
||||
"secret": "Verschlüsselung",
|
||||
"mailgun_secret": "Mailgun Verschlüsselung",
|
||||
"mailgun_domain": "Domain",
|
||||
"mailgun_domain": "Mailgun Adresse",
|
||||
"mailgun_endpoint": "Mailgun-Endpunkt",
|
||||
"ses_secret": "SES Verschlüsselung",
|
||||
"ses_key": "SES-Taste",
|
||||
@ -662,7 +673,7 @@
|
||||
"company_info": "Firmeninfo",
|
||||
"company_name": "Name des Unternehmens",
|
||||
"company_logo": "Firmenlogo",
|
||||
"section_description": "Informationen zu Ihrem Unternehmen, die auf Rechnungen, Kostenvoranschlägen und anderen von Crater erstellten Dokumenten angezeigt werden.",
|
||||
"section_description": "Informationen zu Ihrem Unternehmen, die auf Rechnungen, Angeboten und anderen von Crater erstellten Dokumenten angezeigt werden.",
|
||||
"phone": "Telefon",
|
||||
"country": "Land",
|
||||
"state": "Bundesland",
|
||||
@ -674,11 +685,11 @@
|
||||
},
|
||||
"custom_fields": {
|
||||
"title": "Benutzerdefinierte Felder",
|
||||
"section_description": "Customize your Invoices, Estimates & Payment Receipts with your own fields. Make sure to use the below added fields on the address formats on Customization settings page.",
|
||||
"section_description": "Passen Sie Ihre Rechnungen, Kostenvoranschläge und Zahlungseinnahmen mit Ihren eigenen Feldern an. Benutzen Sie die unten aufgeführten Felder in den Adressformaten auf der Seite Anpassungseinstellungen.",
|
||||
"add_custom_field": "Benutzerdefiniertes Feld hinzufügen",
|
||||
"edit_custom_field": "Benutzerdefiniertes Feld bearbeiten",
|
||||
"field_name": "Feldname",
|
||||
"label": "Etikette",
|
||||
"label": "Bezeichnung",
|
||||
"type": "Art",
|
||||
"name": "Name",
|
||||
"required": "Erforderlich",
|
||||
@ -689,10 +700,10 @@
|
||||
"starting_number": "Startnummer",
|
||||
"model": "Modell",
|
||||
"help_text_description": "Geben Sie einen Text ein, damit Benutzer den Zweck dieses benutzerdefinierten Felds verstehen.",
|
||||
"suffix": "Suffix",
|
||||
"suffix": "Vorzeichen",
|
||||
"yes": "Ja",
|
||||
"no": "Nein",
|
||||
"order": "Auftrag",
|
||||
"order": "Reihenfolge",
|
||||
"custom_field_confirm_delete": "Sie können dieses benutzerdefinierte Feld nicht wiederherstellen",
|
||||
"already_in_use": "Benutzerdefiniertes Feld wird bereits verwendet",
|
||||
"deleted_message": "Benutzerdefiniertes Feld erfolgreich gelöscht",
|
||||
@ -709,7 +720,7 @@
|
||||
"added_message": "Benutzerdefiniertes Feld erfolgreich hinzugefügt"
|
||||
},
|
||||
"customization": {
|
||||
"customization": "Anpassung",
|
||||
"customization": "Personalisierung",
|
||||
"save": "Speichern",
|
||||
"addresses": {
|
||||
"title": "Adressen",
|
||||
@ -729,8 +740,8 @@
|
||||
"state": "Bundesland",
|
||||
"city": "Stadt",
|
||||
"company_name": "Name des Unternehmens",
|
||||
"address_street_1": "Strasse",
|
||||
"address_street_2": "Zusatz Strasse",
|
||||
"address_street_1": "Straße und Hausnummer",
|
||||
"address_street_2": "Adresszusatz",
|
||||
"phone": "Telefon",
|
||||
"zip_code": "PLZ",
|
||||
"address_setting_updated": "Adresse-Einstellung erfolgreich aktualisiert"
|
||||
@ -738,43 +749,52 @@
|
||||
"updated_message": "Unternehmensinformationen wurden erfolgreich aktualisiert",
|
||||
"invoices": {
|
||||
"title": "Rechnungen",
|
||||
"notes": "Hinweise",
|
||||
"notes": "Notizen",
|
||||
"invoice_prefix": "Rechnung Präfix",
|
||||
"default_invoice_email_body": "Default Invoice Email Body",
|
||||
"invoice_number_length": "Rechnungsnummerlänge",
|
||||
"default_invoice_email_body": "Standard Rechnung E-Mail Inhalt",
|
||||
"invoice_settings": "Rechnungseinstellungen",
|
||||
"autogenerate_invoice_number": "Rechnungsnummer automatisch generieren",
|
||||
"invoice_setting_description": "Deaktivieren Sie diese Option, wenn Sie Rechnungsnummern nicht jedes Mal automatisch generieren möchten, wenn Sie eine neue Rechnung erstellen.",
|
||||
"invoice_email_attachment": "Send invoices as attachments",
|
||||
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_invoice_prefix": "Rechnungspräfix eingeben",
|
||||
"terms_and_conditions": "Allgemeine Geschäftsbedingungen",
|
||||
"company_address_format": "Company Address Format",
|
||||
"shipping_address_format": "Shipping Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"company_address_format": "Firmenadressformat",
|
||||
"shipping_address_format": "Versandadressen Format",
|
||||
"billing_address_format": "Rechnungsadressen Format",
|
||||
"invoice_setting_updated": "Rechnungseinstellung erfolgreich aktualisiert"
|
||||
},
|
||||
"estimates": {
|
||||
"title": "Kostenvoranschläge",
|
||||
"estimate_prefix": "Kostenvoranschlag Präfix",
|
||||
"default_estimate_email_body": "Default Estimate Email Body",
|
||||
"estimate_settings": "Einstellungen Kostenvoranschlag",
|
||||
"autogenerate_estimate_number": "Kostenvoranschlagsnummer automatisch generieren",
|
||||
"estimate_setting_description": "Deaktivieren Sie diese Option, wenn Sie nicht jedes Mal, wenn Sie einen neue Kostenvoranschlag erstellen, automatisch eine Schätzung generieren möchten.",
|
||||
"enter_estimate_prefix": "Geben Sie das Kostenvoranschlag Präfix ein",
|
||||
"estimate_setting_updated": "Einstellungen Kostenvoranschläge erfolgreich aktualisiert",
|
||||
"company_address_format": "Company Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"shipping_address_format": "Shipping Address Format"
|
||||
"title": "Angebote",
|
||||
"estimate_prefix": "Angebotspräfix",
|
||||
"estimate_number_length": "Angebotsnummerlänge",
|
||||
"default_estimate_email_body": "Rechnung - E-Mail Text",
|
||||
"estimate_settings": "Einstellungen Angebot",
|
||||
"autogenerate_estimate_number": "Angebotsnummer automatisch generieren",
|
||||
"estimate_setting_description": "Deaktivieren Sie diese Option, wenn Sie nicht jedes Mal, wenn Sie ein neues Angebot erstellen, automatisch eine Angebotsnummer generieren möchten.",
|
||||
"estimate_email_attachment": "Send estimates as attachments",
|
||||
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_estimate_prefix": "Geben Sie das Angebotspräfix ein",
|
||||
"estimate_setting_updated": "Angebotseinstellungen erfolgreich aktualisiert",
|
||||
"company_address_format": "Firmenadresse Format",
|
||||
"billing_address_format": "Rechnungsadressen Format",
|
||||
"shipping_address_format": "Versandadressen Format"
|
||||
},
|
||||
"payments": {
|
||||
"title": "Zahlungen",
|
||||
"description": "Modes of transaction for payments",
|
||||
"description": "Transaktionsmodi für Zahlungen",
|
||||
"payment_prefix": "Zahlung Präfix",
|
||||
"default_payment_email_body": "Default Payment Email Body",
|
||||
"payment_number_length": "Zahlungsnummerlänge",
|
||||
"default_payment_email_body": "Zahlung - E-Mail Text",
|
||||
"payment_settings": "Zahlung Einstellungen",
|
||||
"autogenerate_payment_number": "Zahlungsnummer automatisch generieren",
|
||||
"payment_setting_description": "Deaktivieren Sie diese Option, wenn Sie nicht jedes Mal, wenn Sie eine neue Zahlung erstellen, automatisch Zahlungsnummern generieren möchten.",
|
||||
"payment_email_attachment": "Send payments as attachments",
|
||||
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_payment_prefix": "Zahlungspräfix eingeben",
|
||||
"payment_setting_updated": "Zahlungseinstellung erfolgreich aktualisiert",
|
||||
"payment_modes": "Payment Modes",
|
||||
"payment_modes": "Zahlungsarten",
|
||||
"add_payment_mode": "Zahlungsmethode hinzufügen",
|
||||
"edit_payment_mode": "Zahlungsmodus bearbeiten",
|
||||
"mode_name": "Methodenname",
|
||||
@ -783,8 +803,8 @@
|
||||
"payment_mode_confirm_delete": "Du kannst diese Zahlungsmethode nicht wiederherstellen",
|
||||
"already_in_use": "Zahlungsmethode bereits in Verwendung",
|
||||
"deleted_message": "Zahlungsmethode erfolgreich",
|
||||
"company_address_format": "Company Address Format",
|
||||
"from_customer_address_format": "From Customer Address Format"
|
||||
"company_address_format": "Firmenadressformat",
|
||||
"from_customer_address_format": "Rechnungsadressen Format"
|
||||
},
|
||||
"items": {
|
||||
"title": "Artikel",
|
||||
@ -799,19 +819,19 @@
|
||||
"deleted_message": "Artikeleinheit erfolgreich gelöscht"
|
||||
},
|
||||
"notes": {
|
||||
"title": "Hinweise",
|
||||
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
|
||||
"title": "Notizen",
|
||||
"description": "Sparen Sie Zeit, indem Sie Notizen erstellen und diese auf Ihren Rechnungen, Angeboten und Zahlungen wiederverwenden.",
|
||||
"notes": "Hinweise",
|
||||
"type": "Art",
|
||||
"add_note": "Add Note",
|
||||
"add_new_note": "Add New Note",
|
||||
"add_note": "Notiz hinzufügen",
|
||||
"add_new_note": "Neue Notiz hinzufügen",
|
||||
"name": "Name",
|
||||
"edit_note": "Edit Note",
|
||||
"note_added": "Note added successfully",
|
||||
"note_updated": "Note Updated successfully",
|
||||
"note_confirm_delete": "You will not be able to recover this Note",
|
||||
"already_in_use": "Note is already in use",
|
||||
"deleted_message": "Note deleted successfully"
|
||||
"edit_note": "Notiz bearbeiten",
|
||||
"note_added": "Notiz erfolgreich hinzugefügt",
|
||||
"note_updated": "Notiz erfolgreich aktualisiert",
|
||||
"note_confirm_delete": "Dieser Hinweis wird unwiderruflich gelöscht",
|
||||
"already_in_use": "Hinweis bereits in verwendet",
|
||||
"deleted_message": "Notiz erfolgreich gelöscht"
|
||||
}
|
||||
},
|
||||
"account_settings": {
|
||||
@ -837,8 +857,8 @@
|
||||
"description": "Welche E-Mail-Benachrichtigungen möchten Sie erhalten wenn sich etwas ändert?",
|
||||
"invoice_viewed": "Rechnung angezeigt",
|
||||
"invoice_viewed_desc": "Wenn Ihr Kunde die gesendete Rechnung anzeigt bekommt.",
|
||||
"estimate_viewed": "Kostenvoranschlag angesehen",
|
||||
"estimate_viewed_desc": "Wenn Ihr Kunde den gesendeten Kostenvoranschlag anzeigt bekommt.",
|
||||
"estimate_viewed": "Angebot angesehen",
|
||||
"estimate_viewed_desc": "Wenn Ihr Kunde das gesendete Angebot anzeigt bekommt.",
|
||||
"save": "Speichern",
|
||||
"email_save_message": "Email erfolgreich gespeichert",
|
||||
"please_enter_email": "Bitte E-Mail eingeben"
|
||||
@ -863,7 +883,7 @@
|
||||
"already_in_use": "Steuersatz wird bereits verwendet"
|
||||
},
|
||||
"expense_category": {
|
||||
"title": "Kategorien Kosten",
|
||||
"title": "Ausgabenkategorien",
|
||||
"action": "Aktion",
|
||||
"description": "Für das Hinzufügen von Ausgabeneinträgen sind Kategorien erforderlich. Sie können diese Kategorien nach Ihren Wünschen hinzufügen oder entfernen.",
|
||||
"add_new_category": "Neue Kategorie hinzufügen",
|
||||
@ -879,7 +899,7 @@
|
||||
},
|
||||
"preferences": {
|
||||
"currency": "Währung",
|
||||
"default_language": "Default Language",
|
||||
"default_language": "Standardsprache",
|
||||
"time_zone": "Zeitzone",
|
||||
"fiscal_year": "Geschäftsjahr",
|
||||
"date_format": "Datum-Format",
|
||||
@ -892,7 +912,7 @@
|
||||
"updated_message": "Einstellungen erfolgreich aktualisiert",
|
||||
"select_language": "Sprache auswählen",
|
||||
"select_time_zone": "Zeitzone auswählen",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_date_format": "Wähle das Datumsformat",
|
||||
"select_financial_year": "Geschäftsjahr auswählen"
|
||||
},
|
||||
"update_app": {
|
||||
@ -901,7 +921,7 @@
|
||||
"check_update": "Nach Updates suchen",
|
||||
"avail_update": "Neues Update verfügbar",
|
||||
"next_version": "Nächste Version",
|
||||
"requirements": "Requirements",
|
||||
"requirements": "Voraussetzungen",
|
||||
"update": "Jetzt aktualisieren",
|
||||
"update_progress": "Update läuft ...",
|
||||
"progress_text": "Es dauert nur ein paar Minuten. Bitte aktualisieren Sie den Bildschirm nicht und schließen Sie das Fenster nicht, bevor das Update abgeschlossen ist.",
|
||||
@ -911,91 +931,92 @@
|
||||
"download_zip_file": "Laden Sie die ZIP-Datei herunter",
|
||||
"unzipping_package": "Paket entpacken",
|
||||
"copying_files": "Dateien kopieren",
|
||||
"deleting_files": "Deleting Unused files",
|
||||
"running_migrations": "Ausführen von Migrationen",
|
||||
"finishing_update": "Update beenden",
|
||||
"update_failed": "Update fehlgeschlagen",
|
||||
"update_failed_text": "Es tut uns leid! Ihr Update ist am folgenden Schritt fehlgeschlagen: {step}"
|
||||
},
|
||||
"backup": {
|
||||
"title": "Backup | Backups",
|
||||
"description": "The backup is a zipfile that contains all files in the directories you specify along with a dump of your database",
|
||||
"new_backup": "Add New Backup",
|
||||
"create_backup": "Create Backup",
|
||||
"select_backup_type": "Select Backup Type",
|
||||
"backup_confirm_delete": "You will not be able to recover this Backup",
|
||||
"path": "path",
|
||||
"new_disk": "New Disk",
|
||||
"created_at": "created at",
|
||||
"size": "size",
|
||||
"dropbox": "dropbox",
|
||||
"local": "local",
|
||||
"healthy": "healthy",
|
||||
"amount_of_backups": "amount of backups",
|
||||
"newest_backups": "newest backups",
|
||||
"used_storage": "used storage",
|
||||
"select_disk": "Select Disk",
|
||||
"title": "Sicherung | Sicherungen",
|
||||
"description": "Die Sicherung ist eine ZIP-Datei, die alle Dateien der ausgewählten Pfade und eine Kopie der Datenbank enthält",
|
||||
"new_backup": "Neues Backup",
|
||||
"create_backup": "Datensicherung erstellen",
|
||||
"select_backup_type": "Wählen Sie den Sicherungs-Typ",
|
||||
"backup_confirm_delete": "Dieses Backup wird unwiderruflich gelöscht",
|
||||
"path": "Pfad",
|
||||
"new_disk": "Speicher hinzufügen",
|
||||
"created_at": "erstellt am",
|
||||
"size": "Größe",
|
||||
"dropbox": "Dropbox",
|
||||
"local": "Lokal",
|
||||
"healthy": "intakt",
|
||||
"amount_of_backups": "Menge an Sicherungen",
|
||||
"newest_backups": "Neuste Sicherung",
|
||||
"used_storage": "Verwendeter Speicher",
|
||||
"select_disk": "Speicher auswählen",
|
||||
"action": "Aktion",
|
||||
"deleted_message": "Backup deleted successfully",
|
||||
"created_message": "Backup created successfully",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"deleted_message": "Sicherung erfolgreich gelöscht",
|
||||
"created_message": "Backup erfolgreich erstellt",
|
||||
"invalid_disk_credentials": "Ungültige Anmeldeinformationen für ausgewählten Speicher"
|
||||
},
|
||||
"disk": {
|
||||
"title": "File Disk | File Disks",
|
||||
"description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.",
|
||||
"created_at": "created at",
|
||||
"dropbox": "dropbox",
|
||||
"title": "Dateispeicher | Dateispeicher",
|
||||
"description": "Standardmäßig verwendet Crater Ihre lokale Festplatte zum Speichern von Sicherungen, Avatar und anderen Bilddateien. Sie können mehr als einen Speicherort wie DigitalOcean, S3 und Dropbox nach Ihren Wünschen konfigurieren.",
|
||||
"created_at": "erstellt am",
|
||||
"dropbox": "Dropbox",
|
||||
"name": "Name",
|
||||
"driver": "Driver",
|
||||
"driver": "Treiber",
|
||||
"disk_type": "Art",
|
||||
"disk_name": "Disk Name",
|
||||
"new_disk": "Add New Disk",
|
||||
"filesystem_driver": "Filesystem Driver",
|
||||
"local_driver": "local Driver",
|
||||
"local_root": "local Root",
|
||||
"public_driver": "Public Driver",
|
||||
"public_root": "Public Root",
|
||||
"public_url": "Public URL",
|
||||
"public_visibility": "Public Visibility",
|
||||
"media_driver": "Media Driver",
|
||||
"media_root": "Media Root",
|
||||
"aws_driver": "AWS Driver",
|
||||
"aws_key": "AWS Key",
|
||||
"aws_secret": "AWS Secret",
|
||||
"aws_region": "AWS Region",
|
||||
"disk_name": "Speicher Bezeichnung",
|
||||
"new_disk": "Speicher hinzufügen",
|
||||
"filesystem_driver": "Dateisystem-Treiber",
|
||||
"local_driver": "Lokaler Treiber",
|
||||
"local_root": "lokaler Pfad",
|
||||
"public_driver": "Öffentlicher Treiber",
|
||||
"public_root": "Öffentlicher Pfad",
|
||||
"public_url": "Öffentliche URL",
|
||||
"public_visibility": "Öffentliche Sichtbarkeit",
|
||||
"media_driver": "Medientreiber",
|
||||
"media_root": "Medienpfad",
|
||||
"aws_driver": "AWS-Treiber",
|
||||
"aws_key": "AWS-Schlüssel",
|
||||
"aws_secret": "AWS-Geheimnis",
|
||||
"aws_region": "AWS-Region",
|
||||
"aws_bucket": "AWS Bucket",
|
||||
"aws_root": "AWS Root",
|
||||
"do_spaces_type": "Do Spaces type",
|
||||
"do_spaces_key": "Do Spaces key",
|
||||
"do_spaces_secret": "Do Spaces Secret",
|
||||
"aws_root": "AWS-Pfad",
|
||||
"do_spaces_type": "Do Spaces-Typ",
|
||||
"do_spaces_key": "Do Spaces-Schlüssel",
|
||||
"do_spaces_secret": "Do Spaces-Geheimnis",
|
||||
"do_spaces_region": "Do Spaces Region",
|
||||
"do_spaces_bucket": "Do Spaces Bucket",
|
||||
"do_spaces_endpoint": "Do Spaces Endpoint",
|
||||
"do_spaces_root": "Do Spaces Root",
|
||||
"dropbox_type": "Dropbox Type",
|
||||
"dropbox_type": "Dropbox Typ",
|
||||
"dropbox_token": "Dropbox Token",
|
||||
"dropbox_key": "Dropbox Key",
|
||||
"dropbox_key": "Dropbox Schlüssel",
|
||||
"dropbox_secret": "Dropbox Secret",
|
||||
"dropbox_app": "Dropbox App",
|
||||
"dropbox_root": "Dropbox Root",
|
||||
"default_driver": "Default Driver",
|
||||
"is_default": "IS DEFAULT",
|
||||
"set_default_disk": "Set Default Disk",
|
||||
"default_driver": "Standard-Treiber",
|
||||
"is_default": "Standard",
|
||||
"set_default_disk": "Als Standard festlegen",
|
||||
"set_default_disk_confirm": "This disk will be set as default and all the new PDFs will be saved on this disk",
|
||||
"success_set_default_disk": "Disk set as default successfully",
|
||||
"save_pdf_to_disk": "Save PDFs to Disk",
|
||||
"disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.",
|
||||
"select_disk": "Select Disk",
|
||||
"disk_settings": "Disk Settings",
|
||||
"confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater",
|
||||
"success_set_default_disk": "Speicher wurde als Standard festgelegt",
|
||||
"save_pdf_to_disk": "PDFs auf Festplatte speichern",
|
||||
"disk_setting_description": " Aktivieren Sie dies, um eine Kopie von jeder Rechnung, jedem Angebot & jeder Zahlung als PDF automatisch auf ihrem Standard-Speicher abzulegen. Wenn Sie diese Option aktivieren, verringert sich die Ladezeit beim Betrachten der PDFs.",
|
||||
"select_disk": "Speicherort auswählen",
|
||||
"disk_settings": "Speichermedienkonfiguration",
|
||||
"confirm_delete": "Ihre existierenden Dateien und Ordner auf der angegebenen Festplatte werden nicht beeinflusst, aber Dieser Speicherort wird aus Crater gelöscht",
|
||||
"action": "Aktion",
|
||||
"edit_file_disk": "Edit File Disk",
|
||||
"success_create": "Disk added successfully",
|
||||
"success_update": "Disk updated successfully",
|
||||
"error": "Disk addition failed",
|
||||
"deleted_message": "File Disk deleted successfully",
|
||||
"disk_variables_save_successfully": "Disk Configured Successfully",
|
||||
"disk_variables_save_error": "Disk configuration failed.",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"edit_file_disk": "Speicherort editieren",
|
||||
"success_create": "Speicher erfolgreich hinzugefügt",
|
||||
"success_update": "Speicher erfolgreich bearbeitet",
|
||||
"error": "Hinzufügen des Speichers gescheitert",
|
||||
"deleted_message": "Speicher erfolgreich gelöscht",
|
||||
"disk_variables_save_successfully": "Speicher erfolgreich konfiguriert",
|
||||
"disk_variables_save_error": "Konfiguration des Speicher gescheitert",
|
||||
"invalid_disk_credentials": "Ungültige Anmeldeinformationen für ausgewählten Speicher"
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@ -1026,9 +1047,9 @@
|
||||
"time_zone": "Zeitzone",
|
||||
"fiscal_year": "Geschäftsjahr",
|
||||
"date_format": "Datumsformat",
|
||||
"from_address": "From Address",
|
||||
"from_address": "Absender",
|
||||
"username": "Benutzername",
|
||||
"next": "Next",
|
||||
"next": "Weiter",
|
||||
"continue": "Weiter",
|
||||
"skip": "Überspringen",
|
||||
"database": {
|
||||
@ -1038,10 +1059,10 @@
|
||||
"port": "Datenbank Port",
|
||||
"password": "Datenbank Passwort",
|
||||
"app_url": "App-URL",
|
||||
"app_domain": "App Domain",
|
||||
"app_domain": "Domain der App",
|
||||
"username": "Datenbank Benutzername",
|
||||
"db_name": "Datenbank Name",
|
||||
"db_path": "Database Path",
|
||||
"db_path": "Datenbankpfad",
|
||||
"desc": "Erstellen Sie eine Datenbank auf Ihrem Server und legen Sie die Anmeldeinformationen mithilfe des folgenden Formulars fest."
|
||||
},
|
||||
"permissions": {
|
||||
@ -1130,42 +1151,47 @@
|
||||
"address_maxlength": "Die Adresse sollte nicht länger als 255 Zeichen sein.",
|
||||
"ref_number_maxlength": "Ref Number sollte nicht länger als 255 Zeichen sein.",
|
||||
"prefix_maxlength": "Das Präfix sollte nicht länger als 5 Zeichen sein.",
|
||||
"something_went_wrong": "Etwas ist falsch gelaufen"
|
||||
"something_went_wrong": "Da ist etwas schief gelaufen",
|
||||
"number_length_minvalue": "Nummernlänge sollte größer als 0 sein"
|
||||
},
|
||||
"pdf_estimate_label": "Kostenvoranschlag",
|
||||
"pdf_estimate_number": "Kostenvoran. Nummer",
|
||||
"pdf_estimate_date": "Datum Kostenvoranschlag",
|
||||
"pdf_estimate_expire_date": "Expiry date",
|
||||
"pdf_estimate_label": "Angebot",
|
||||
"pdf_estimate_number": "Angebotsnummer",
|
||||
"pdf_estimate_date": "Angebotsdatum",
|
||||
"pdf_estimate_expire_date": "Ablaufdatum",
|
||||
"pdf_invoice_label": "Rechnung",
|
||||
"pdf_invoice_number": "Rechnungsnummer",
|
||||
"pdf_invoice_date": "Rechnungsdatum",
|
||||
"pdf_invoice_due_date": "Due date",
|
||||
"pdf_invoice_due_date": "Fälligkeitsdatum",
|
||||
"pdf_notes": "Hinweise",
|
||||
"pdf_items_label": "Artikel",
|
||||
"pdf_quantity_label": "Menge",
|
||||
"pdf_price_label": "Preis",
|
||||
"pdf_discount_label": "Rabatt",
|
||||
"pdf_amount_label": "Summe",
|
||||
"pdf_subtotal": "Subtotal",
|
||||
"pdf_subtotal": "Zwischensumme",
|
||||
"pdf_total": "Gesamt",
|
||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||
"pdf_payment_date": "Payment Date",
|
||||
"pdf_payment_label": "Zahlung",
|
||||
"pdf_payment_receipt_label": "Zahlungsbeleg",
|
||||
"pdf_payment_date": "Zahlungsdatum",
|
||||
"pdf_payment_number": "Zahlungsnummer",
|
||||
"pdf_payment_mode": "Zahlungsart",
|
||||
"pdf_payment_amount_received_label": "Amount Received",
|
||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||
"pdf_income_label": "INCOME",
|
||||
"pdf_net_profit_label": "NET PROFIT",
|
||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||
"pdf_total_sales_label": "TOTAL SALES",
|
||||
"pdf_item_sales_label": "Sales Report: By Item",
|
||||
"pdf_tax_report_label": "TAX REPORT",
|
||||
"pdf_total_tax_label": "TOTAL TAX",
|
||||
"pdf_payment_amount_received_label": "Betrag erhalten",
|
||||
"pdf_expense_report_label": "Ausgaben Bericht",
|
||||
"pdf_total_expenses_label": "Gesamtausgaben",
|
||||
"pdf_profit_loss_label": "Gewinn & Verlust Bericht",
|
||||
"pdf_sales_customers_label": "Kundenverkaufs Bericht",
|
||||
"pdf_sales_items_label": "Artikelverkaufs Bericht",
|
||||
"pdf_tax_summery_label": "Steuer Bericht",
|
||||
"pdf_income_label": "Einkommen",
|
||||
"pdf_net_profit_label": "Nettogewinn",
|
||||
"pdf_customer_sales_report": "Umsatzbericht: Nach Kunde",
|
||||
"pdf_total_sales_label": "GESAMTUMSATZ",
|
||||
"pdf_item_sales_label": "Umsatzbericht: Nach Artikel",
|
||||
"pdf_tax_report_label": "Umsatzsteuer BERICHT",
|
||||
"pdf_total_tax_label": "Gesamte Umsatzsteuer",
|
||||
"pdf_tax_types_label": "Steuersätze",
|
||||
"pdf_expenses_label": "Gesamtausgaben",
|
||||
"pdf_bill_to": "Rechnungsempfänger,",
|
||||
"pdf_ship_to": "Versand ein,",
|
||||
"pdf_received_from": "Received from:"
|
||||
"pdf_expenses_label": "Ausgaben",
|
||||
"pdf_bill_to": "Rechnungsempfänger:",
|
||||
"pdf_ship_to": "Versand an:",
|
||||
"pdf_received_from": "Erhalten von:"
|
||||
}
|
||||
|
||||
@ -178,6 +178,8 @@
|
||||
"copy_billing_address": "Copy from Billing",
|
||||
"no_customers": "No customers yet!",
|
||||
"no_customers_found": "No customers found!",
|
||||
"no_contact": "No contact",
|
||||
"no_contact_name": "No contact name",
|
||||
"list_of_customers": "This section will contain the list of customers.",
|
||||
"primary_display_name": "Primary Display Name",
|
||||
"select_currency": "Select currency",
|
||||
@ -201,6 +203,7 @@
|
||||
"added_on": "Added On",
|
||||
"price": "Price",
|
||||
"date_of_creation": "Date Of Creation",
|
||||
"not_selected": "No item selected",
|
||||
"action": "Action",
|
||||
"add_item": "Add Item",
|
||||
"save_item": "Save Item",
|
||||
@ -271,6 +274,7 @@
|
||||
"required": "Field is required"
|
||||
},
|
||||
"accepted": "Accepted",
|
||||
"rejected": "Rejected",
|
||||
"sent": "Sent",
|
||||
"draft": "Draft",
|
||||
"declined": "Declined",
|
||||
@ -317,6 +321,9 @@
|
||||
"all": "All",
|
||||
"paid": "Paid",
|
||||
"unpaid": "Unpaid",
|
||||
"viewed": "Viewed",
|
||||
"overdue": "Overdue",
|
||||
"completed": "Completed",
|
||||
"customer": "CUSTOMER",
|
||||
"paid_status": "PAID STATUS",
|
||||
"ref_no": "REF NO.",
|
||||
@ -435,6 +442,8 @@
|
||||
"update_payment": "Update Payment",
|
||||
"payment": "Payment | Payments",
|
||||
"no_payments": "No payments yet!",
|
||||
"not_selected": "Not selected",
|
||||
"no_invoice": "No invoice",
|
||||
"no_matching_payments": "There are no matching payments!",
|
||||
"list_of_payments": "This section will contain the list of payments.",
|
||||
"select_payment_mode": "Select payment mode",
|
||||
@ -464,6 +473,7 @@
|
||||
"receipt": "Receipt",
|
||||
"amount": "Amount",
|
||||
"action": "Action",
|
||||
"not_selected": "Not selected",
|
||||
"note": "Note",
|
||||
"category_id": "Category Id",
|
||||
"date": "Date",
|
||||
@ -741,10 +751,13 @@
|
||||
"title": "Invoices",
|
||||
"notes": "Notes",
|
||||
"invoice_prefix": "Invoice Prefix",
|
||||
"invoice_number_length": "Invoice number length",
|
||||
"default_invoice_email_body": "Default Invoice Email Body",
|
||||
"invoice_settings": "Invoice Settings",
|
||||
"autogenerate_invoice_number": "Auto-generate Invoice Number",
|
||||
"invoice_setting_description": "Disable this, If you don't wish to auto-generate invoice numbers each time you create a new invoice.",
|
||||
"invoice_email_attachment": "Send invoices as attachments",
|
||||
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_invoice_prefix": "Enter invoice prefix",
|
||||
"terms_and_conditions": "Terms and Conditions",
|
||||
"company_address_format": "Company Address Format",
|
||||
@ -755,10 +768,13 @@
|
||||
"estimates": {
|
||||
"title": "Estimates",
|
||||
"estimate_prefix": "Estimate Prefix",
|
||||
"estimate_number_length": "Estimate number length",
|
||||
"default_estimate_email_body": "Default Estimate Email Body",
|
||||
"estimate_settings": "Estimate Settings",
|
||||
"autogenerate_estimate_number": "Auto-generate Estimate Number",
|
||||
"estimate_setting_description": "Disable this, If you don't wish to auto-generate estimate numbers each time you create a new estimate.",
|
||||
"estimate_email_attachment": "Send estimates as attachments",
|
||||
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_estimate_prefix": "Enter estmiate prefix",
|
||||
"estimate_setting_updated": "Estimate Setting updated successfully",
|
||||
"company_address_format": "Company Address Format",
|
||||
@ -769,10 +785,13 @@
|
||||
"title": "Payments",
|
||||
"description": "Modes of transaction for payments",
|
||||
"payment_prefix": "Payment Prefix",
|
||||
"payment_number_length": "Payment number lenght",
|
||||
"default_payment_email_body": "Default Payment Email Body",
|
||||
"payment_settings": "Payment Settings",
|
||||
"autogenerate_payment_number": "Auto-generate Payment Number",
|
||||
"payment_setting_description": "Disable this, If you don't wish to auto-generate payment numbers each time you create a new payment.",
|
||||
"payment_email_attachment": "Send payments as attachments",
|
||||
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_payment_prefix": "Enter Payment Prefix",
|
||||
"payment_setting_updated": "Payment Setting updated successfully",
|
||||
"payment_modes": "Payment Modes",
|
||||
@ -912,6 +931,7 @@
|
||||
"download_zip_file": "Download ZIP file",
|
||||
"unzipping_package": "Unzipping Package",
|
||||
"copying_files": "Copying Files",
|
||||
"deleting_files": "Deleting Unused files",
|
||||
"running_migrations": "Running Migrations",
|
||||
"finishing_update": "Finishing Update",
|
||||
"update_failed": "Update Failed",
|
||||
@ -1123,15 +1143,16 @@
|
||||
"price_minvalue": "Price should be greater than 0.",
|
||||
"amount_maxlength": "Amount should not be greater than 20 digits.",
|
||||
"amount_minvalue": "Amount should be greater than 0.",
|
||||
"description_maxlength": "Description should not be greater than 255 characters.",
|
||||
"description_maxlength": "Description should not be greater than 65,000 characters.",
|
||||
"subject_maxlength": "Subject should not be greater than 100 characters.",
|
||||
"message_maxlength": "Message should not be greater than 255 characters.",
|
||||
"maximum_options_error": "Maximum of {max} options selected. First remove a selected option to select another.",
|
||||
"notes_maxlength": "Notes should not be greater than 255 characters.",
|
||||
"notes_maxlength": "Notes should not be greater than 65,000 characters.",
|
||||
"address_maxlength": "Address should not be greater than 255 characters.",
|
||||
"ref_number_maxlength": "Ref Number should not be greater than 255 characters.",
|
||||
"prefix_maxlength": "Prefix should not be greater than 5 characters.",
|
||||
"something_went_wrong": "something went wrong"
|
||||
"something_went_wrong": "something went wrong",
|
||||
"number_length_minvalue": "Number lenght should be greater than 0"
|
||||
},
|
||||
"pdf_estimate_label": "Estimate",
|
||||
"pdf_estimate_number": "Estimate Number",
|
||||
@ -1149,6 +1170,7 @@
|
||||
"pdf_amount_label": "Amount",
|
||||
"pdf_subtotal": "Subtotal",
|
||||
"pdf_total": "Total",
|
||||
"pdf_payment_label": "Payment",
|
||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||
"pdf_payment_date": "Payment Date",
|
||||
"pdf_payment_number": "Payment Number",
|
||||
@ -1157,6 +1179,9 @@
|
||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||
"pdf_sales_customers_label": "Sales Customer Report",
|
||||
"pdf_sales_items_label": "Sales Item Report",
|
||||
"pdf_tax_summery_label": "Tax Summary Report",
|
||||
"pdf_income_label": "INCOME",
|
||||
"pdf_net_profit_label": "NET PROFIT",
|
||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||
|
||||
@ -5,23 +5,23 @@
|
||||
"items": "Artículos",
|
||||
"invoices": "Facturas",
|
||||
"expenses": "Gastos",
|
||||
"estimates": "Presupuestos",
|
||||
"estimates": "Presupuesto",
|
||||
"payments": "Pagos",
|
||||
"reports": "Informes",
|
||||
"settings": "Configuraciones",
|
||||
"logout": "Cerrar sesión",
|
||||
"users": "Users"
|
||||
"users": "Usuarios"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "Add Company",
|
||||
"add_company": "Añadir empresa",
|
||||
"view_pdf": "Ver PDF",
|
||||
"copy_pdf_url": "Copiar URL del PDF",
|
||||
"copy_pdf_url": "Copiar dirección URL del archivo PDF",
|
||||
"download_pdf": "Descargar PDF",
|
||||
"save": "Guardar",
|
||||
"create": "Create",
|
||||
"create": "Crear",
|
||||
"cancel": "Cancelar",
|
||||
"update": "Actualizar",
|
||||
"deselect": "Deselect",
|
||||
"deselect": "Deseleccionar",
|
||||
"download": "Descargar",
|
||||
"from_date": "Desde la fecha",
|
||||
"to_date": "Hasta la fecha",
|
||||
@ -30,10 +30,10 @@
|
||||
"sort_by": "Ordenar por",
|
||||
"ascending": "Ascendente",
|
||||
"descending": "Descendente",
|
||||
"subject": "Sujeta",
|
||||
"subject": "Asunto",
|
||||
"body": "Cuerpo",
|
||||
"message": "Mensaje",
|
||||
"send": "Send",
|
||||
"send": "Enviar",
|
||||
"go_back": "Volver",
|
||||
"back_to_login": "¿Volver al inicio de sesión?",
|
||||
"home": "Inicio",
|
||||
@ -84,9 +84,10 @@
|
||||
"street_2": "Calle 2",
|
||||
"action_failed": "Accion Fallida",
|
||||
"retry": "Procesar de nuevo",
|
||||
"choose_note": "Choose Note",
|
||||
"no_note_found": "No Note Found",
|
||||
"insert_note": "Insert Note"
|
||||
"choose_note": "Elegir nota",
|
||||
"no_note_found": "No se encontró ninguna nota",
|
||||
"insert_note": "Insertar una nota",
|
||||
"copied_pdf_url_clipboard": "Copied PDF url to clipboard!"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Seleccionar año",
|
||||
@ -133,28 +134,28 @@
|
||||
"compound_tax": "Impuesto compuesto"
|
||||
},
|
||||
"global_search": {
|
||||
"search": "Search...",
|
||||
"search": "Buscar...",
|
||||
"customers": "Clientes",
|
||||
"users": "Users",
|
||||
"no_results_found": "No Results Found"
|
||||
"users": "Usuarios",
|
||||
"no_results_found": "No se encontraron resultados"
|
||||
},
|
||||
"customers": {
|
||||
"title": "Clientes",
|
||||
"add_customer": "Agregar cliente",
|
||||
"contacts_list": "Lista de clientes",
|
||||
"name": "Nombre",
|
||||
"mail": "Mail | Mails",
|
||||
"statement": "Statement",
|
||||
"mail": "Correo | Correos",
|
||||
"statement": "Declaración",
|
||||
"display_name": "Nombre para mostrar",
|
||||
"primary_contact_name": "Nombre de contacto primario",
|
||||
"contact_name": "Nombre de contacto",
|
||||
"amount_due": "Cantidad Debida",
|
||||
"email": "Email",
|
||||
"email": "Correo electrónico",
|
||||
"address": "Dirección",
|
||||
"phone": "Teléfono",
|
||||
"website": "Sitio web",
|
||||
"overview": "Overview",
|
||||
"enable_portal": "Enable Portal",
|
||||
"overview": "Descripción general",
|
||||
"enable_portal": "Habilitar Portal",
|
||||
"country": "País",
|
||||
"state": "Estado",
|
||||
"city": "Ciudad",
|
||||
@ -177,6 +178,8 @@
|
||||
"copy_billing_address": "Copia de facturación",
|
||||
"no_customers": "¡Aún no hay clientes!",
|
||||
"no_customers_found": "¡No se encontraron clientes!",
|
||||
"no_contact": "No contact",
|
||||
"no_contact_name": "No contact name",
|
||||
"list_of_customers": "Esta sección contendrá la lista de clientes.",
|
||||
"primary_display_name": "Nombre de visualización principal",
|
||||
"select_currency": "Seleccione el tipo de moneda",
|
||||
@ -200,6 +203,7 @@
|
||||
"added_on": "Añadido",
|
||||
"price": "Precio",
|
||||
"date_of_creation": "Fecha de creación",
|
||||
"not_selected": "No item selected",
|
||||
"action": "Acción",
|
||||
"add_item": "Añadir artículo",
|
||||
"save_item": "Guardar artículo",
|
||||
@ -253,7 +257,7 @@
|
||||
"convert_to_invoice": "Convertir a factura",
|
||||
"mark_as_sent": "Marcar como enviado",
|
||||
"send_estimate": "Enviar presupuesto",
|
||||
"resend_estimate": "Resend Estimate",
|
||||
"resend_estimate": "Reenviar estimado",
|
||||
"record_payment": "Registro de pago",
|
||||
"add_estimate": "Agregar presupuesto",
|
||||
"save_estimate": "Guardar presupuesto",
|
||||
@ -270,6 +274,7 @@
|
||||
"required": "Se requiere campo"
|
||||
},
|
||||
"accepted": "Aceptado",
|
||||
"rejected": "Rejected",
|
||||
"sent": "Enviado",
|
||||
"draft": "Borrador",
|
||||
"declined": "Rechazado",
|
||||
@ -316,6 +321,9 @@
|
||||
"all": "Todas",
|
||||
"paid": "Pagada",
|
||||
"unpaid": "No pagado",
|
||||
"viewed": "Viewed",
|
||||
"overdue": "Overdue",
|
||||
"completed": "Completed",
|
||||
"customer": "CLIENTE",
|
||||
"paid_status": "ESTADO PAGADO",
|
||||
"ref_no": "NÚMERO DE REFERENCIA.",
|
||||
@ -339,7 +347,7 @@
|
||||
"notes": "Notas",
|
||||
"view": "Ver",
|
||||
"send_invoice": "Enviar la factura",
|
||||
"resend_invoice": "Reenviar la factura",
|
||||
"resend_invoice": "Reenviar factura",
|
||||
"invoice_template": "Plantilla de factura",
|
||||
"template": "Modelo",
|
||||
"mark_as_sent": "Marcar como enviada",
|
||||
@ -434,12 +442,14 @@
|
||||
"update_payment": "Actualizar pago",
|
||||
"payment": "Pago | Pagos",
|
||||
"no_payments": "¡Aún no hay pagos!",
|
||||
"not_selected": "Not selected",
|
||||
"no_invoice": "No invoice",
|
||||
"no_matching_payments": "¡No hay pagos equivalentes!",
|
||||
"list_of_payments": "Esta sección contendrá la lista de pagos.",
|
||||
"select_payment_mode": "Seleccionar modo de pago",
|
||||
"confirm_mark_as_sent": "Este presupuesto se marcará como enviado",
|
||||
"confirm_send_payment": "This payment will be sent via email to the customer",
|
||||
"send_payment_successfully": "Payment sent successfully",
|
||||
"confirm_send_payment": "Este pago se enviará por correo electrónico al cliente",
|
||||
"send_payment_successfully": "Pago enviado correctamente",
|
||||
"user_email_does_not_exist": "El email del usuario no existe",
|
||||
"something_went_wrong": "Algo fue mal",
|
||||
"confirm_delete": "No podrá recuperar este pago | No podrá recuperar estos pagos",
|
||||
@ -463,6 +473,7 @@
|
||||
"receipt": "Recibo",
|
||||
"amount": "Cantidad",
|
||||
"action": "Acción",
|
||||
"not_selected": "Not selected",
|
||||
"note": "Nota",
|
||||
"category_id": "Categoria ID",
|
||||
"date": "Fecha de gastos",
|
||||
@ -494,7 +505,7 @@
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"email": "Email",
|
||||
"email": "Correo electrónico",
|
||||
"password": "Contraseña",
|
||||
"forgot_password": "¿Olvidaste tu contraseña?",
|
||||
"or_signIn_with": "o Inicia sesión con",
|
||||
@ -505,33 +516,33 @@
|
||||
"enter_email": "Escriba el correo electrónico",
|
||||
"enter_password": "Escriba la contraseña",
|
||||
"retype_password": "Reescriba la contraseña",
|
||||
"login_placeholder": "mail@example.com"
|
||||
"login_placeholder": "correo@ejemplo.com"
|
||||
},
|
||||
"users": {
|
||||
"title": "Users",
|
||||
"users_list": "Users List",
|
||||
"title": "Usuarios",
|
||||
"users_list": "Lista de usuarios",
|
||||
"name": "Nombre",
|
||||
"description": "Descripción",
|
||||
"added_on": "Añadido",
|
||||
"date_of_creation": "Fecha de creación",
|
||||
"action": "Acción",
|
||||
"add_user": "Add User",
|
||||
"save_user": "Save User",
|
||||
"update_user": "Update User",
|
||||
"user": "User | Users",
|
||||
"add_new_user": "Add New User",
|
||||
"new_user": "New User",
|
||||
"edit_user": "Edit User",
|
||||
"no_users": "No users yet!",
|
||||
"list_of_users": "This section will contain the list of users.",
|
||||
"email": "Email",
|
||||
"add_user": "Agregar usuario",
|
||||
"save_user": "Guardar usuario",
|
||||
"update_user": "Actualizar usuario",
|
||||
"user": "Usuario | Usuarios",
|
||||
"add_new_user": "Agregar Nuevo Usuario",
|
||||
"new_user": "Nuevo usuario",
|
||||
"edit_user": "Editar usuario",
|
||||
"no_users": "¡Aún no hay usuarios!",
|
||||
"list_of_users": "Esta sección contendrá la lista de usuarios.",
|
||||
"email": "Correo",
|
||||
"phone": "Teléfono",
|
||||
"password": "Contraseña",
|
||||
"user_attached_message": "No se puede eliminar un elemento que ya está en uso.",
|
||||
"confirm_delete": "You will not be able to recover this User | You will not be able to recover these Users",
|
||||
"created_message": "User created successfully",
|
||||
"updated_message": "User updated successfully",
|
||||
"deleted_message": "User deleted successfully | User deleted successfully"
|
||||
"confirm_delete": "No podrá recuperar este Usuario | No podrá recuperar estos Usuarios",
|
||||
"created_message": "Usuario creado satisfactoriamente",
|
||||
"updated_message": "Usuario actualizado satisfactoriamente",
|
||||
"deleted_message": "Usuario eliminado exitosamente | Usuario eliminado correctamente"
|
||||
},
|
||||
"reports": {
|
||||
"title": "Informe",
|
||||
@ -604,10 +615,10 @@
|
||||
"tax_types": "Tipos de impuestos",
|
||||
"expense_category": "Categorías de gastos",
|
||||
"update_app": "Actualizar aplicación",
|
||||
"backup": "Backup",
|
||||
"file_disk": "File Disk",
|
||||
"backup": "Copias de seguridad",
|
||||
"file_disk": "Disco de archivo",
|
||||
"custom_fields": "Campos Personalizados",
|
||||
"payment_modes": "Payment Modes",
|
||||
"payment_modes": "Modos de pago",
|
||||
"notes": "Notas"
|
||||
},
|
||||
"title": "Configuraciones",
|
||||
@ -674,7 +685,7 @@
|
||||
},
|
||||
"custom_fields": {
|
||||
"title": "Campos Personalizados",
|
||||
"section_description": "Customize your Invoices, Estimates & Payment Receipts with your own fields. Make sure to use the below added fields on the address formats on Customization settings page.",
|
||||
"section_description": "Personalice sus facturas, estimaciones y recibos de pago en sus propios campos. Asegúrese de usar los siguientes campos añadidos en los formatos de dirección de la página de configuración de personalización.",
|
||||
"add_custom_field": "Agregar campo personalizado",
|
||||
"edit_custom_field": "Editar campo personalizado",
|
||||
"field_name": "Nombre del campo",
|
||||
@ -722,7 +733,7 @@
|
||||
"address": "Dirección",
|
||||
"display_name": "Nombre para mostrar",
|
||||
"primary_contact_name": "Nombre de contacto principal",
|
||||
"email": "Email",
|
||||
"email": "Correo electrónico",
|
||||
"website": "Sitio web",
|
||||
"name": "Nombre",
|
||||
"country": "País",
|
||||
@ -740,41 +751,50 @@
|
||||
"title": "Facturas",
|
||||
"notes": "Notas",
|
||||
"invoice_prefix": "Prefijo de las facturas",
|
||||
"default_invoice_email_body": "Default Invoice Email Body",
|
||||
"invoice_number_length": "Invoice number length",
|
||||
"default_invoice_email_body": "Cuerpo predeterminado del correo electrónico de la factura",
|
||||
"invoice_settings": "Ajustes de facturas",
|
||||
"autogenerate_invoice_number": "Autogenerar número de factura",
|
||||
"invoice_setting_description": "Desactive esto, si no desea generar automáticamente números de factura cada vez que cree una nueva factura.",
|
||||
"invoice_email_attachment": "Send invoices as attachments",
|
||||
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_invoice_prefix": "Introduzca el prefijo de factura",
|
||||
"terms_and_conditions": "Términos y Condiciones",
|
||||
"company_address_format": "Company Address Format",
|
||||
"shipping_address_format": "Shipping Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"company_address_format": "Formato de dirección de la empresa",
|
||||
"shipping_address_format": "Formato de la dirección de envío",
|
||||
"billing_address_format": "Formato de dirección de facturación",
|
||||
"invoice_setting_updated": "Configuración de factura actualizada correctamente"
|
||||
},
|
||||
"estimates": {
|
||||
"title": "Estimaciones",
|
||||
"estimate_prefix": "Prefijo de los presupuestos",
|
||||
"default_estimate_email_body": "Default Estimate Email Body",
|
||||
"estimate_number_length": "Estimate number length",
|
||||
"default_estimate_email_body": "Cuerpo predeterminado estimado del correo electrónico",
|
||||
"estimate_settings": "Ajustes de presupuestos",
|
||||
"autogenerate_estimate_number": "Autogenerar número de presupuesto",
|
||||
"estimate_setting_description": "Desactive esto, si no desea generar automáticamente números de presupuesto cada vez que cree un nuevo presupuesto.",
|
||||
"estimate_email_attachment": "Send estimates as attachments",
|
||||
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_estimate_prefix": "Introduzca el prefijo de presupuesto",
|
||||
"estimate_setting_updated": "Configuración de presupuestos actualizada correctamente",
|
||||
"company_address_format": "Company Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"shipping_address_format": "Shipping Address Format"
|
||||
"company_address_format": "Formato de dirección de la empresa",
|
||||
"billing_address_format": "Formato de la dirección de facturación",
|
||||
"shipping_address_format": "Formato de dirección de envío"
|
||||
},
|
||||
"payments": {
|
||||
"title": "Pagos",
|
||||
"description": "Modes of transaction for payments",
|
||||
"description": "Modos de transacción de pagos",
|
||||
"payment_prefix": "Prefijo de los pagos",
|
||||
"default_payment_email_body": "Default Payment Email Body",
|
||||
"payment_number_length": "Payment number lenght",
|
||||
"default_payment_email_body": "Cuerpo predeterminado del correo electrónico del pago",
|
||||
"payment_settings": "Ajustes de pagos",
|
||||
"autogenerate_payment_number": "Autogenerar número de pago",
|
||||
"payment_setting_description": "Desactive esto, si no desea generar automáticamente números de pago cada vez que cree un nuevo pago.",
|
||||
"payment_email_attachment": "Send payments as attachments",
|
||||
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_payment_prefix": "Introduzca el prefijo de pago",
|
||||
"payment_setting_updated": "Configuración de pagos actualizada correctamente",
|
||||
"payment_modes": "Payment Modes",
|
||||
"payment_modes": "Modos de pago",
|
||||
"add_payment_mode": "Agregar modo de pago",
|
||||
"edit_payment_mode": "Editar modo de pago",
|
||||
"mode_name": "Nombre del modo",
|
||||
@ -783,8 +803,8 @@
|
||||
"payment_mode_confirm_delete": "No podrá recuperar este modo de pago",
|
||||
"already_in_use": "El modo de pago ya está en uso",
|
||||
"deleted_message": "Modo de pago eliminado correctamente",
|
||||
"company_address_format": "Company Address Format",
|
||||
"from_customer_address_format": "From Customer Address Format"
|
||||
"company_address_format": "Formato de dirección de la empresa",
|
||||
"from_customer_address_format": "Desde el formato de dirección del cliente"
|
||||
},
|
||||
"items": {
|
||||
"title": "Artículos",
|
||||
@ -800,24 +820,24 @@
|
||||
},
|
||||
"notes": {
|
||||
"title": "Notas",
|
||||
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
|
||||
"description": "Ahorre tiempo creando notas y reutilizándolas en sus facturas, cálculos y pagos.",
|
||||
"notes": "Notas",
|
||||
"type": "Tipo",
|
||||
"add_note": "Add Note",
|
||||
"add_new_note": "Add New Note",
|
||||
"add_note": "Agregar nota",
|
||||
"add_new_note": "Agregar nueva nota",
|
||||
"name": "Nombre",
|
||||
"edit_note": "Edit Note",
|
||||
"note_added": "Note added successfully",
|
||||
"note_updated": "Note Updated successfully",
|
||||
"note_confirm_delete": "You will not be able to recover this Note",
|
||||
"already_in_use": "Note is already in use",
|
||||
"deleted_message": "Note deleted successfully"
|
||||
"edit_note": "Editar nota",
|
||||
"note_added": "Nota agregada correctamente",
|
||||
"note_updated": "Nota actualizada correctamente",
|
||||
"note_confirm_delete": "No podrá recuperar esta nota",
|
||||
"already_in_use": "Nota ya está en uso",
|
||||
"deleted_message": "Nota eliminada correctamente"
|
||||
}
|
||||
},
|
||||
"account_settings": {
|
||||
"profile_picture": "Foto de perfil",
|
||||
"name": "Nombre",
|
||||
"email": "Email",
|
||||
"email": "Correo electrónico",
|
||||
"password": "Contraseña",
|
||||
"confirm_password": "Confirmar contraseña",
|
||||
"account_settings": "Configuraciones de la cuenta",
|
||||
@ -827,7 +847,7 @@
|
||||
},
|
||||
"user_profile": {
|
||||
"name": "Nombre",
|
||||
"email": "Email",
|
||||
"email": "Correo electrónico",
|
||||
"password": "Contraseña",
|
||||
"confirm_password": "Confirmar contraseña"
|
||||
},
|
||||
@ -879,7 +899,7 @@
|
||||
},
|
||||
"preferences": {
|
||||
"currency": "Moneda",
|
||||
"default_language": "Default Language",
|
||||
"default_language": "Idioma predeterminado",
|
||||
"time_zone": "Zona horaria",
|
||||
"fiscal_year": "Año financiero",
|
||||
"date_format": "Formato de fecha",
|
||||
@ -892,7 +912,7 @@
|
||||
"updated_message": "Preferencias actualizadas exitosamente",
|
||||
"select_language": "seleccione el idioma",
|
||||
"select_time_zone": "selecciona la zona horaria",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_date_format": "Seleccionar formato de fecha",
|
||||
"select_financial_year": "seleccione año financiero"
|
||||
},
|
||||
"update_app": {
|
||||
@ -901,7 +921,7 @@
|
||||
"check_update": "Buscar actualizaciones",
|
||||
"avail_update": "Nueva actualización disponible",
|
||||
"next_version": "Próxima versión",
|
||||
"requirements": "Requirements",
|
||||
"requirements": "Requisitos",
|
||||
"update": "Actualizar",
|
||||
"update_progress": "Actualización en progreso...",
|
||||
"progress_text": "Solo tomará unos minutos. No actualice la pantalla ni cierre la ventana antes de que finalice la actualización.",
|
||||
@ -911,98 +931,99 @@
|
||||
"download_zip_file": "Descargar archivo ZIP",
|
||||
"unzipping_package": "Descomprimir paquete",
|
||||
"copying_files": "Copiando documentos",
|
||||
"deleting_files": "Deleting Unused files",
|
||||
"running_migrations": "Ejecutar migraciones",
|
||||
"finishing_update": "Actualización final",
|
||||
"update_failed": "Actualización fallida",
|
||||
"update_failed_text": "¡Lo siento! Su actualización falló el: {step} paso"
|
||||
},
|
||||
"backup": {
|
||||
"title": "Backup | Backups",
|
||||
"description": "The backup is a zipfile that contains all files in the directories you specify along with a dump of your database",
|
||||
"new_backup": "Add New Backup",
|
||||
"create_backup": "Create Backup",
|
||||
"select_backup_type": "Select Backup Type",
|
||||
"backup_confirm_delete": "You will not be able to recover this Backup",
|
||||
"path": "path",
|
||||
"new_disk": "New Disk",
|
||||
"created_at": "created at",
|
||||
"size": "size",
|
||||
"title": "Copia de seguridad | Copias de seguridad",
|
||||
"description": "La copia de seguridad es un archivo comprimido zip que contiene todos los archivos en los directorios que especifiques junto con tu base de datos",
|
||||
"new_backup": "Agregar nueva copia de seguridad",
|
||||
"create_backup": "Crear copia de seguridad",
|
||||
"select_backup_type": "Seleccione Tipo de Copia de Seguridad",
|
||||
"backup_confirm_delete": "No podrá recuperar esta copia de seguridad",
|
||||
"path": "ruta",
|
||||
"new_disk": "Nuevo Disco",
|
||||
"created_at": "creado el",
|
||||
"size": "tamaño",
|
||||
"dropbox": "dropbox",
|
||||
"local": "local",
|
||||
"healthy": "healthy",
|
||||
"amount_of_backups": "amount of backups",
|
||||
"newest_backups": "newest backups",
|
||||
"used_storage": "used storage",
|
||||
"select_disk": "Select Disk",
|
||||
"healthy": "saludable",
|
||||
"amount_of_backups": "cantidad de copias de seguridad",
|
||||
"newest_backups": "copias de seguridad más recientes",
|
||||
"used_storage": "almacenamiento utilizado",
|
||||
"select_disk": "Seleccionar Disco",
|
||||
"action": "Acción",
|
||||
"deleted_message": "Backup deleted successfully",
|
||||
"created_message": "Backup created successfully",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"deleted_message": "Copia de seguridad eliminada exitosamente",
|
||||
"created_message": "Copia de seguridad creada satisfactoriamente",
|
||||
"invalid_disk_credentials": "Credencial no válida del disco seleccionado"
|
||||
},
|
||||
"disk": {
|
||||
"title": "File Disk | File Disks",
|
||||
"description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.",
|
||||
"created_at": "created at",
|
||||
"title": "Disco de archivos | Discos de archivos",
|
||||
"description": "Por defecto, Crater utilizará su disco local para guardar copias de seguridad, avatar y otros archivos de imagen. Puede configurar varios controladores de disco como DigitalOcean, S3 y Dropbox según sus preferencias.",
|
||||
"created_at": "creado el",
|
||||
"dropbox": "dropbox",
|
||||
"name": "Nombre",
|
||||
"driver": "Driver",
|
||||
"driver": "Controlador",
|
||||
"disk_type": "Tipo",
|
||||
"disk_name": "Disk Name",
|
||||
"new_disk": "Add New Disk",
|
||||
"filesystem_driver": "Filesystem Driver",
|
||||
"local_driver": "local Driver",
|
||||
"local_root": "local Root",
|
||||
"public_driver": "Public Driver",
|
||||
"public_root": "Public Root",
|
||||
"public_url": "Public URL",
|
||||
"public_visibility": "Public Visibility",
|
||||
"media_driver": "Media Driver",
|
||||
"media_root": "Media Root",
|
||||
"aws_driver": "AWS Driver",
|
||||
"aws_key": "AWS Key",
|
||||
"aws_secret": "AWS Secret",
|
||||
"aws_region": "AWS Region",
|
||||
"aws_bucket": "AWS Bucket",
|
||||
"aws_root": "AWS Root",
|
||||
"do_spaces_type": "Do Spaces type",
|
||||
"do_spaces_key": "Do Spaces key",
|
||||
"do_spaces_secret": "Do Spaces Secret",
|
||||
"do_spaces_region": "Do Spaces Region",
|
||||
"do_spaces_bucket": "Do Spaces Bucket",
|
||||
"do_spaces_endpoint": "Do Spaces Endpoint",
|
||||
"do_spaces_root": "Do Spaces Root",
|
||||
"dropbox_type": "Dropbox Type",
|
||||
"dropbox_token": "Dropbox Token",
|
||||
"dropbox_key": "Dropbox Key",
|
||||
"disk_name": "Nombre del disco",
|
||||
"new_disk": "Agregar nuevo disco",
|
||||
"filesystem_driver": "Controlador del sistema de archivos",
|
||||
"local_driver": "controlador local",
|
||||
"local_root": "raíz local",
|
||||
"public_driver": "Controlador público",
|
||||
"public_root": "Raíz pública",
|
||||
"public_url": "URL pública",
|
||||
"public_visibility": "Visibilidad pública",
|
||||
"media_driver": "Controlador multimedia",
|
||||
"media_root": "Raíz multimedia",
|
||||
"aws_driver": "Controlador AWS",
|
||||
"aws_key": "Clave AWS",
|
||||
"aws_secret": "Secreto AWS",
|
||||
"aws_region": "Región de AWS",
|
||||
"aws_bucket": "Cubo AWS",
|
||||
"aws_root": "Raíz AWS",
|
||||
"do_spaces_type": "Hacer Espacios tipo",
|
||||
"do_spaces_key": "Disponer espacios",
|
||||
"do_spaces_secret": "Disponer espacios secretos",
|
||||
"do_spaces_region": "Disponer región de espacios",
|
||||
"do_spaces_bucket": "Disponer espacios",
|
||||
"do_spaces_endpoint": "Disponer espacios extremos",
|
||||
"do_spaces_root": "Disponer espacios en la raíz",
|
||||
"dropbox_type": "Tipo de Dropbox",
|
||||
"dropbox_token": "Token de DropBox",
|
||||
"dropbox_key": "Clave Dropbox",
|
||||
"dropbox_secret": "Dropbox Secret",
|
||||
"dropbox_app": "Dropbox App",
|
||||
"dropbox_root": "Dropbox Root",
|
||||
"default_driver": "Default Driver",
|
||||
"is_default": "IS DEFAULT",
|
||||
"set_default_disk": "Set Default Disk",
|
||||
"dropbox_app": "Aplicación Dropbox",
|
||||
"dropbox_root": "Raíz Dropbox",
|
||||
"default_driver": "Controlador por defecto",
|
||||
"is_default": "ES PREDETERMINADO",
|
||||
"set_default_disk": "Establecer disco predeterminado",
|
||||
"set_default_disk_confirm": "This disk will be set as default and all the new PDFs will be saved on this disk",
|
||||
"success_set_default_disk": "Disk set as default successfully",
|
||||
"save_pdf_to_disk": "Save PDFs to Disk",
|
||||
"disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.",
|
||||
"select_disk": "Select Disk",
|
||||
"disk_settings": "Disk Settings",
|
||||
"confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater",
|
||||
"success_set_default_disk": "Disco establecido correctamente como predeterminado",
|
||||
"save_pdf_to_disk": "Guardar PDFs a disco",
|
||||
"disk_setting_description": " Habilite esto, si desea guardar automáticamente una copia en formato pdf de cada factura, cálculo y recibo de pago en su disco predeterminado. Al activar esta opción, se reducirá el tiempo de carga al visualizar los archivos PDFs.",
|
||||
"select_disk": "Seleccionar Disco",
|
||||
"disk_settings": "Configuración del disco",
|
||||
"confirm_delete": "Los archivos y carpetas existentes en el disco especificado no se verán afectados, pero su configuración de disco será eliminada de Crater",
|
||||
"action": "Acción",
|
||||
"edit_file_disk": "Edit File Disk",
|
||||
"success_create": "Disk added successfully",
|
||||
"success_update": "Disk updated successfully",
|
||||
"error": "Disk addition failed",
|
||||
"deleted_message": "File Disk deleted successfully",
|
||||
"disk_variables_save_successfully": "Disk Configured Successfully",
|
||||
"disk_variables_save_error": "Disk configuration failed.",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"edit_file_disk": "Editar disco de ficheros",
|
||||
"success_create": "Disco añadido satisfactoriamente",
|
||||
"success_update": "Disco actualizado satisfactoriamente",
|
||||
"error": "Error al añadir disco",
|
||||
"deleted_message": "Disco de archivo borrado correctamente",
|
||||
"disk_variables_save_successfully": "Disco configurado correctamente",
|
||||
"disk_variables_save_error": "La configuración del disco ha fallado.",
|
||||
"invalid_disk_credentials": "Credencial no válida del disco seleccionado"
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
"account_info": "Información de la cuenta",
|
||||
"account_info_desc": "Los detalles a continuación se utilizarán para crear la cuenta principal de administrador. También puede cambiar los detalles en cualquier momento después de iniciar sesión.",
|
||||
"name": "Nombre",
|
||||
"email": "Email",
|
||||
"email": "Correo",
|
||||
"password": "Contraseña",
|
||||
"confirm_password": "Confirmar contraseña",
|
||||
"save_cont": "Guardar y continuar",
|
||||
@ -1038,10 +1059,10 @@
|
||||
"port": "Puerto de la base de datos",
|
||||
"password": "Contraseña de la base de datos",
|
||||
"app_url": "URL de la aplicación",
|
||||
"app_domain": "App Domain",
|
||||
"app_domain": "Dominio",
|
||||
"username": "Nombre de usuario de la base de datos",
|
||||
"db_name": "Nombre de la base de datos",
|
||||
"db_path": "Database Path",
|
||||
"db_path": "Ruta de la base de datos",
|
||||
"desc": "Cree una base de datos en su servidor y establezca las credenciales utilizando el siguiente formulario."
|
||||
},
|
||||
"permissions": {
|
||||
@ -1102,7 +1123,7 @@
|
||||
"email_incorrect": "Email incorrecto.",
|
||||
"email_already_taken": "Este email ya está en uso",
|
||||
"email_does_not_exist": "El usuario con el correo electrónico dado no existe",
|
||||
"item_unit_already_taken": "This item unit name has already been taken",
|
||||
"item_unit_already_taken": "El nombre de la unidad ya está en uso",
|
||||
"payment_mode_already_taken": "El modo de pago ya ha sido tomado",
|
||||
"send_reset_link": "Enviar enlace de restablecimiento",
|
||||
"not_yet": "¿Aún no? Envíalo de nuevo",
|
||||
@ -1123,23 +1144,24 @@
|
||||
"amount_maxlength": "La cantidad no debe ser mayor de 20 dígitos.",
|
||||
"amount_minvalue": "La cantidad debe ser mayor que 0 dígitos",
|
||||
"description_maxlength": "La descripción no debe tener más de 255 caracteres.",
|
||||
"subject_maxlength": "Subject should not be greater than 100 characters.",
|
||||
"message_maxlength": "Message should not be greater than 255 characters.",
|
||||
"subject_maxlength": "El asunto no debe tener más de 100 caracteres.",
|
||||
"message_maxlength": "El mensaje no debe tener más de 255 caracteres.",
|
||||
"maximum_options_error": "Máximo de {max} opciones seleccionadas. Primero elimine una opción seleccionada para seleccionar otra.",
|
||||
"notes_maxlength": "Las notas no deben tener más de 255 caracteres.",
|
||||
"address_maxlength": "La dirección no debe tener más de 255 caracteres.",
|
||||
"ref_number_maxlength": "El número de referencia no debe tener más de 255 caracteres.",
|
||||
"prefix_maxlength": "El prefijo no debe tener más de 5 caracteres.",
|
||||
"something_went_wrong": "Algo fue mal"
|
||||
"something_went_wrong": "Algo fue mal",
|
||||
"number_length_minvalue": "Number lenght should be greater than 0"
|
||||
},
|
||||
"pdf_estimate_label": "Presupuestar",
|
||||
"pdf_estimate_number": "Número de Presupuesto",
|
||||
"pdf_estimate_date": "Fecha presupuesto",
|
||||
"pdf_estimate_expire_date": "Expiry date",
|
||||
"pdf_estimate_expire_date": "Fecha de caducidad",
|
||||
"pdf_invoice_label": "Factura",
|
||||
"pdf_invoice_number": "Numero de factura",
|
||||
"pdf_invoice_date": "Fecha de la factura",
|
||||
"pdf_invoice_due_date": "Due date",
|
||||
"pdf_invoice_due_date": "Fecha final",
|
||||
"pdf_notes": "Notas",
|
||||
"pdf_items_label": "Artículos",
|
||||
"pdf_quantity_label": "Cantidad",
|
||||
@ -1148,24 +1170,28 @@
|
||||
"pdf_amount_label": "Cantidad",
|
||||
"pdf_subtotal": "Subtotal",
|
||||
"pdf_total": "Total",
|
||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||
"pdf_payment_date": "Payment Date",
|
||||
"pdf_payment_label": "Payment",
|
||||
"pdf_payment_receipt_label": "RECIBO DE PAGO",
|
||||
"pdf_payment_date": "Fecha de pago",
|
||||
"pdf_payment_number": "Numero de pago",
|
||||
"pdf_payment_mode": "Modo de pago",
|
||||
"pdf_payment_amount_received_label": "Amount Received",
|
||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||
"pdf_income_label": "INCOME",
|
||||
"pdf_net_profit_label": "NET PROFIT",
|
||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||
"pdf_total_sales_label": "TOTAL SALES",
|
||||
"pdf_item_sales_label": "Sales Report: By Item",
|
||||
"pdf_tax_report_label": "TAX REPORT",
|
||||
"pdf_total_tax_label": "TOTAL TAX",
|
||||
"pdf_payment_amount_received_label": "Monto Recibido",
|
||||
"pdf_expense_report_label": "INFORME DE GASTOS",
|
||||
"pdf_total_expenses_label": "GASTO TOTAL",
|
||||
"pdf_profit_loss_label": "INFORME PERDIDAS & GANANCIAS",
|
||||
"pdf_sales_customers_label": "Sales Customer Report",
|
||||
"pdf_sales_items_label": "Sales Item Report",
|
||||
"pdf_tax_summery_label": "Tax Summary Report",
|
||||
"pdf_income_label": "INGRESO",
|
||||
"pdf_net_profit_label": "GANANCIA NETA",
|
||||
"pdf_customer_sales_report": "Informe de ventas: Por cliente",
|
||||
"pdf_total_sales_label": "VENTAS TOTALES",
|
||||
"pdf_item_sales_label": "Informe de ventas: por artículo",
|
||||
"pdf_tax_report_label": "INFORME DE IMPUESTOS",
|
||||
"pdf_total_tax_label": "TOTAL IMPUESTOS",
|
||||
"pdf_tax_types_label": "Tipos de impuestos",
|
||||
"pdf_expenses_label": "Gastos",
|
||||
"pdf_bill_to": "Cobrar a,",
|
||||
"pdf_ship_to": "Enviar a,",
|
||||
"pdf_received_from": "Received from:"
|
||||
"pdf_received_from": "Recibido desde:"
|
||||
}
|
||||
|
||||
1197
resources/assets/js/plugins/fi.json
Normal file
1197
resources/assets/js/plugins/fi.json
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -86,7 +86,8 @@
|
||||
"retry": "Retry",
|
||||
"choose_note": "Choose Note",
|
||||
"no_note_found": "No Note Found",
|
||||
"insert_note": "Insert Note"
|
||||
"insert_note": "Insert Note",
|
||||
"copied_pdf_url_clipboard": "Copied PDF url to clipboard!"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Select year",
|
||||
@ -177,6 +178,8 @@
|
||||
"copy_billing_address": "Copy from Billing",
|
||||
"no_customers": "No customers yet!",
|
||||
"no_customers_found": "No customers found!",
|
||||
"no_contact": "No contact",
|
||||
"no_contact_name": "No contact name",
|
||||
"list_of_customers": "This section will contain the list of customers.",
|
||||
"primary_display_name": "Primary Display Name",
|
||||
"select_currency": "Select currency",
|
||||
@ -200,6 +203,7 @@
|
||||
"added_on": "Added On",
|
||||
"price": "Price",
|
||||
"date_of_creation": "Date Of Creation",
|
||||
"not_selected": "No item selected",
|
||||
"action": "Action",
|
||||
"add_item": "Add Item",
|
||||
"save_item": "Save Item",
|
||||
@ -270,6 +274,7 @@
|
||||
"required": "Field is required"
|
||||
},
|
||||
"accepted": "Accepted",
|
||||
"rejected": "Rejected",
|
||||
"sent": "Sent",
|
||||
"draft": "Draft",
|
||||
"declined": "Declined",
|
||||
@ -316,6 +321,9 @@
|
||||
"all": "All",
|
||||
"paid": "Paid",
|
||||
"unpaid": "Unpaid",
|
||||
"viewed": "Viewed",
|
||||
"overdue": "Overdue",
|
||||
"completed": "Completed",
|
||||
"customer": "CUSTOMER",
|
||||
"paid_status": "PAID STATUS",
|
||||
"ref_no": "REF NO.",
|
||||
@ -434,6 +442,8 @@
|
||||
"update_payment": "Update Payment",
|
||||
"payment": "Payment | Payments",
|
||||
"no_payments": "No payments yet!",
|
||||
"not_selected": "Not selected",
|
||||
"no_invoice": "No invoice",
|
||||
"no_matching_payments": "There are no matching payments!",
|
||||
"list_of_payments": "This section will contain the list of payments.",
|
||||
"select_payment_mode": "Select payment mode",
|
||||
@ -463,6 +473,7 @@
|
||||
"receipt": "Receipt",
|
||||
"amount": "Amount",
|
||||
"action": "Action",
|
||||
"not_selected": "Not selected",
|
||||
"note": "Note",
|
||||
"category_id": "Category Id",
|
||||
"date": "Date",
|
||||
@ -740,10 +751,13 @@
|
||||
"title": "Invoices",
|
||||
"notes": "Notes",
|
||||
"invoice_prefix": "Invoice Prefix",
|
||||
"invoice_number_length": "Invoice number length",
|
||||
"default_invoice_email_body": "Default Invoice Email Body",
|
||||
"invoice_settings": "Invoice Settings",
|
||||
"autogenerate_invoice_number": "Auto-generate Invoice Number",
|
||||
"invoice_setting_description": "Disable this, If you don't wish to auto-generate invoice numbers each time you create a new invoice.",
|
||||
"invoice_email_attachment": "Send invoices as attachments",
|
||||
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_invoice_prefix": "Enter invoice prefix",
|
||||
"terms_and_conditions": "Terms and Conditions",
|
||||
"company_address_format": "Company Address Format",
|
||||
@ -754,10 +768,13 @@
|
||||
"estimates": {
|
||||
"title": "Estimates",
|
||||
"estimate_prefix": "Estimate Prefix",
|
||||
"estimate_number_length": "Estimate number length",
|
||||
"default_estimate_email_body": "Default Estimate Email Body",
|
||||
"estimate_settings": "Estimate Settings",
|
||||
"autogenerate_estimate_number": "Auto-generate Estimate Number",
|
||||
"estimate_setting_description": "Disable this, If you don't wish to auto-generate estimate numbers each time you create a new estimate.",
|
||||
"estimate_email_attachment": "Send estimates as attachments",
|
||||
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_estimate_prefix": "Enter estmiate prefix",
|
||||
"estimate_setting_updated": "Estimate Setting updated successfully",
|
||||
"company_address_format": "Company Address Format",
|
||||
@ -768,10 +785,13 @@
|
||||
"title": "Payments",
|
||||
"description": "Modes of transaction for payments",
|
||||
"payment_prefix": "Payment Prefix",
|
||||
"payment_number_length": "Payment number lenght",
|
||||
"default_payment_email_body": "Default Payment Email Body",
|
||||
"payment_settings": "Payment Settings",
|
||||
"autogenerate_payment_number": "Auto-generate Payment Number",
|
||||
"payment_setting_description": "Disable this, If you don't wish to auto-generate payment numbers each time you create a new payment.",
|
||||
"payment_email_attachment": "Send payments as attachments",
|
||||
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_payment_prefix": "Enter Payment Prefix",
|
||||
"payment_setting_updated": "Payment Setting updated successfully",
|
||||
"payment_modes": "Payment Modes",
|
||||
@ -911,6 +931,7 @@
|
||||
"download_zip_file": "Download ZIP file",
|
||||
"unzipping_package": "Unzipping Package",
|
||||
"copying_files": "Copying Files",
|
||||
"deleting_files": "Deleting Unused files",
|
||||
"running_migrations": "Running Migrations",
|
||||
"finishing_update": "Finishing Update",
|
||||
"update_failed": "Update Failed",
|
||||
@ -1130,7 +1151,8 @@
|
||||
"address_maxlength": "Address should not be greater than 255 characters.",
|
||||
"ref_number_maxlength": "Ref Number should not be greater than 255 characters.",
|
||||
"prefix_maxlength": "Prefix should not be greater than 5 characters.",
|
||||
"something_went_wrong": "something went wrong"
|
||||
"something_went_wrong": "something went wrong",
|
||||
"number_length_minvalue": "Number lenght should be greater than 0"
|
||||
},
|
||||
"pdf_estimate_label": "Estimate",
|
||||
"pdf_estimate_number": "Estimate Number",
|
||||
@ -1148,6 +1170,7 @@
|
||||
"pdf_amount_label": "Amount",
|
||||
"pdf_subtotal": "Subtotal",
|
||||
"pdf_total": "Total",
|
||||
"pdf_payment_label": "Payment",
|
||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||
"pdf_payment_date": "Payment Date",
|
||||
"pdf_payment_number": "Payment Number",
|
||||
@ -1156,6 +1179,9 @@
|
||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||
"pdf_sales_customers_label": "Sales Customer Report",
|
||||
"pdf_sales_items_label": "Sales Item Report",
|
||||
"pdf_tax_summery_label": "Tax Summary Report",
|
||||
"pdf_income_label": "INCOME",
|
||||
"pdf_net_profit_label": "NET PROFIT",
|
||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||
|
||||
@ -5,25 +5,38 @@ import fr from './fr.json'
|
||||
import es from './es.json'
|
||||
import ar from './ar.json'
|
||||
import de from './de.json'
|
||||
import ja from './ja.json'
|
||||
import pt_BR from './pt-br.json'
|
||||
import it from './it.json'
|
||||
import sr_LA from './sr-latn.json'
|
||||
import sr from './sr.json'
|
||||
import nl from './nl.json'
|
||||
import ko from './ko.json'
|
||||
import lv from './lv.json'
|
||||
import sv from './sv.json'
|
||||
import sk from './sk.json'
|
||||
import vi from './vi.json'
|
||||
|
||||
Vue.use(VueI18n)
|
||||
|
||||
const i18n = new VueI18n({
|
||||
locale: 'en',
|
||||
fallbackLocale: 'en',
|
||||
messages: {
|
||||
en,
|
||||
fr,
|
||||
es,
|
||||
ar,
|
||||
de,
|
||||
ja,
|
||||
pt_BR,
|
||||
it,
|
||||
sr_LA,
|
||||
sr,
|
||||
nl,
|
||||
ko,
|
||||
lv,
|
||||
sv,
|
||||
sk,
|
||||
vi,
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@ -1,28 +1,28 @@
|
||||
{
|
||||
"navigation": {
|
||||
"dashboard": "Dashboard",
|
||||
"dashboard": "Pannello di controllo",
|
||||
"customers": "Clienti",
|
||||
"items": "Commesse",
|
||||
"invoices": "Fatture",
|
||||
"expenses": "Spese",
|
||||
"estimates": "Preventivi",
|
||||
"payments": "Pagamenti",
|
||||
"reports": "Reports",
|
||||
"reports": "Rapporti",
|
||||
"settings": "Configurazione",
|
||||
"logout": "Logout",
|
||||
"users": "Users"
|
||||
"logout": "Disconnessione",
|
||||
"users": "Utenti"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "Add Company",
|
||||
"add_company": "Aggiungi azienda",
|
||||
"view_pdf": "Vedi PDF",
|
||||
"copy_pdf_url": "Copy PDF Url",
|
||||
"copy_pdf_url": "Copia URL PDF",
|
||||
"download_pdf": "Scarica PDF",
|
||||
"save": "Salva",
|
||||
"create": "Create",
|
||||
"create": "Crea",
|
||||
"cancel": "Elimina",
|
||||
"update": "Aggiorna",
|
||||
"deselect": "Deseleziona",
|
||||
"download": "Download",
|
||||
"download": "Scarica",
|
||||
"from_date": "Dalla Data",
|
||||
"to_date": "Alla Data",
|
||||
"from": "Da",
|
||||
@ -33,7 +33,7 @@
|
||||
"subject": "Oggetto",
|
||||
"body": "Corpo",
|
||||
"message": "Messaggio",
|
||||
"send": "Send",
|
||||
"send": "Invia",
|
||||
"go_back": "Torna indietro",
|
||||
"back_to_login": "Torna al Login?",
|
||||
"home": "Home",
|
||||
@ -43,7 +43,7 @@
|
||||
"view": "Visualizza",
|
||||
"add_new_item": "Aggiungi nuova Commessa",
|
||||
"clear_all": "Pulisci tutto",
|
||||
"showing": "Showing",
|
||||
"showing": "Visualizzo",
|
||||
"of": "di",
|
||||
"actions": "Azioni",
|
||||
"subtotal": "SUBTOTALE",
|
||||
@ -66,11 +66,11 @@
|
||||
"powered_by": "Prodotto da",
|
||||
"bytefury": "Bytefury",
|
||||
"select_a_status": "Seleziona uno Stato",
|
||||
"select_a_tax": "Seleziona una Tassa",
|
||||
"select_a_tax": "Seleziona imposta",
|
||||
"search": "Cerca",
|
||||
"are_you_sure": "Sei sicuro/a?",
|
||||
"list_is_empty": "La lista è vuota.",
|
||||
"no_tax_found": "Nessuna Tassa trovata!",
|
||||
"no_tax_found": "Nessuna imposta trovata!",
|
||||
"four_zero_four": "404",
|
||||
"you_got_lost": "Hoops! Ti sei perso",
|
||||
"go_home": "Vai alla Home",
|
||||
@ -83,10 +83,11 @@
|
||||
"street_1": "Indirizzo 1",
|
||||
"street_2": "Indirizzo 2",
|
||||
"action_failed": "Errore",
|
||||
"retry": "Retry",
|
||||
"choose_note": "Choose Note",
|
||||
"no_note_found": "No Note Found",
|
||||
"insert_note": "Insert Note"
|
||||
"retry": "Riprova",
|
||||
"choose_note": "Scegli Nota",
|
||||
"no_note_found": "Nessuna Nota Trovata",
|
||||
"insert_note": "Inserisci Nota",
|
||||
"copied_pdf_url_clipboard": "Copied PDF url to clipboard!"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Seleziona anno",
|
||||
@ -130,13 +131,13 @@
|
||||
"name": "Nome",
|
||||
"description": "Descrizione",
|
||||
"percent": "Percento",
|
||||
"compound_tax": "Tassa composta"
|
||||
"compound_tax": "Imposta composta"
|
||||
},
|
||||
"global_search": {
|
||||
"search": "Search...",
|
||||
"search": "Cerca...",
|
||||
"customers": "Clienti",
|
||||
"users": "Users",
|
||||
"no_results_found": "No Results Found"
|
||||
"users": "Utenti",
|
||||
"no_results_found": "Nessun Risultato Trovato"
|
||||
},
|
||||
"customers": {
|
||||
"title": "Clienti",
|
||||
@ -144,8 +145,8 @@
|
||||
"contacts_list": "Lista clienti",
|
||||
"name": "Nome",
|
||||
"mail": "Mail | Mails",
|
||||
"statement": "Statement",
|
||||
"display_name": "Mostra nome",
|
||||
"statement": "Dichiarazione",
|
||||
"display_name": "Nome Visibile",
|
||||
"primary_contact_name": "Riferimento",
|
||||
"contact_name": "Nome Contatto",
|
||||
"amount_due": "Ammontare dovuto",
|
||||
@ -153,10 +154,10 @@
|
||||
"address": "Indirizzo",
|
||||
"phone": "Telefono",
|
||||
"website": "Sito web",
|
||||
"overview": "Overview",
|
||||
"enable_portal": "Enable Portal",
|
||||
"overview": "Panoramica",
|
||||
"enable_portal": "Abilita Portale",
|
||||
"country": "Paese",
|
||||
"state": "Stato",
|
||||
"state": "Provincia",
|
||||
"city": "Città",
|
||||
"zip_code": "Codice Postale",
|
||||
"added_on": "Aggiunto il",
|
||||
@ -177,6 +178,8 @@
|
||||
"copy_billing_address": "Copia da Fatturazione",
|
||||
"no_customers": "Ancora nessun Cliente!",
|
||||
"no_customers_found": "Nessun cliente trovato!",
|
||||
"no_contact": "No contact",
|
||||
"no_contact_name": "No contact name",
|
||||
"list_of_customers": "Qui ci sarà la lista dei tuoi clienti",
|
||||
"primary_display_name": "Mostra il Nome Principale",
|
||||
"select_currency": "Selezione Valùta",
|
||||
@ -200,6 +203,7 @@
|
||||
"added_on": "Aggiunto il",
|
||||
"price": "Prezzo",
|
||||
"date_of_creation": "Data di creazione",
|
||||
"not_selected": "No item selected",
|
||||
"action": "Azione",
|
||||
"add_item": "Aggiungi Commessa",
|
||||
"save_item": "Salva",
|
||||
@ -253,7 +257,7 @@
|
||||
"convert_to_invoice": "Converti in Fattura",
|
||||
"mark_as_sent": "Segna come Inviata",
|
||||
"send_estimate": "Invia preventivo",
|
||||
"resend_estimate": "Resend Estimate",
|
||||
"resend_estimate": "Reinvia Preventivo",
|
||||
"record_payment": "Registra Pagamento",
|
||||
"add_estimate": "Aggiungi Preventivo",
|
||||
"save_estimate": "Salva Preventivo",
|
||||
@ -270,6 +274,7 @@
|
||||
"required": "Campo obbligatorio"
|
||||
},
|
||||
"accepted": "Accettato",
|
||||
"rejected": "Rejected",
|
||||
"sent": "Inviato",
|
||||
"draft": "Bozza",
|
||||
"declined": "Rifiutato",
|
||||
@ -315,7 +320,10 @@
|
||||
"years": "{years} Anno",
|
||||
"all": "Tutti",
|
||||
"paid": "Pagato",
|
||||
"unpaid": "Insoluto",
|
||||
"unpaid": "Insoluta",
|
||||
"viewed": "Viewed",
|
||||
"overdue": "Overdue",
|
||||
"completed": "Completed",
|
||||
"customer": "CLIENTE",
|
||||
"paid_status": "STATO DI PAGAMENTO",
|
||||
"ref_no": "RIF N.",
|
||||
@ -339,7 +347,7 @@
|
||||
"notes": "Note",
|
||||
"view": "Vedi",
|
||||
"send_invoice": "Invia Fattura",
|
||||
"resend_invoice": "Resend Invoice",
|
||||
"resend_invoice": "Reinvia Fattura",
|
||||
"invoice_template": "Modello Fattura",
|
||||
"template": "Modello",
|
||||
"mark_as_sent": "Segna come inviata",
|
||||
@ -434,6 +442,8 @@
|
||||
"update_payment": "Aggiorna pagamento",
|
||||
"payment": "Pagamento | Pagamenti",
|
||||
"no_payments": "Ancora nessun pagamento!",
|
||||
"not_selected": "Not selected",
|
||||
"no_invoice": "No invoice",
|
||||
"no_matching_payments": "Non ci sono pagamenti!",
|
||||
"list_of_payments": "Questa sezione conterrà la lista dei pagamenti.",
|
||||
"select_payment_mode": "Seleziona modalità di pagamento",
|
||||
@ -463,6 +473,7 @@
|
||||
"receipt": "Ricevuta",
|
||||
"amount": "Ammontare",
|
||||
"action": "Azione",
|
||||
"not_selected": "Not selected",
|
||||
"note": "Nota",
|
||||
"category_id": "Id categoria",
|
||||
"date": "Data Spesa",
|
||||
@ -498,43 +509,43 @@
|
||||
"password": "Password",
|
||||
"forgot_password": "Password dimenticata?",
|
||||
"or_signIn_with": "o fai login con",
|
||||
"login": "Login",
|
||||
"login": "Accedi",
|
||||
"register": "Registrati",
|
||||
"reset_password": "Resetta Password",
|
||||
"password_reset_successfully": "Password Resettata con successo",
|
||||
"enter_email": "Inserisci email",
|
||||
"enter_password": "Inserisci Password",
|
||||
"retype_password": "Ridigita Password",
|
||||
"login_placeholder": "mail@example.com"
|
||||
"login_placeholder": "mail@esempio.com"
|
||||
},
|
||||
"users": {
|
||||
"title": "Users",
|
||||
"users_list": "Users List",
|
||||
"title": "Utenti",
|
||||
"users_list": "Lista Utenti",
|
||||
"name": "Nome",
|
||||
"description": "Descrizione",
|
||||
"added_on": "Aggiunto il",
|
||||
"date_of_creation": "Data di creazione",
|
||||
"action": "Azione",
|
||||
"add_user": "Add User",
|
||||
"save_user": "Save User",
|
||||
"update_user": "Update User",
|
||||
"user": "User | Users",
|
||||
"add_new_user": "Add New User",
|
||||
"new_user": "New User",
|
||||
"edit_user": "Edit User",
|
||||
"no_users": "No users yet!",
|
||||
"list_of_users": "This section will contain the list of users.",
|
||||
"add_user": "Aggiungi Utente",
|
||||
"save_user": "Salva Utente",
|
||||
"update_user": "Aggiorna Utente",
|
||||
"user": "Utente | Utenti",
|
||||
"add_new_user": "Aggiungi Nuovo Utente",
|
||||
"new_user": "Nuovo Utente",
|
||||
"edit_user": "Modifica Utente",
|
||||
"no_users": "Ancora nessun utente!",
|
||||
"list_of_users": "Questa sezione conterrà l'elenco degli utenti.",
|
||||
"email": "Email",
|
||||
"phone": "Telefono",
|
||||
"password": "Password",
|
||||
"user_attached_message": "Non puoi eliminare una Commessa che è già attiva",
|
||||
"confirm_delete": "You will not be able to recover this User | You will not be able to recover these Users",
|
||||
"created_message": "User created successfully",
|
||||
"updated_message": "User updated successfully",
|
||||
"deleted_message": "User deleted successfully | User deleted successfully"
|
||||
"confirm_delete": "Non sarai in grado di recuperare questo utente | Non sarai in grado di recuperare questi utenti",
|
||||
"created_message": "Utente creato correttamente",
|
||||
"updated_message": "Utente aggiornato correttamente",
|
||||
"deleted_message": "Utente eliminato con successo | Utenti eliminati con successo"
|
||||
},
|
||||
"reports": {
|
||||
"title": "Report",
|
||||
"title": "Segnala",
|
||||
"from_date": "Da",
|
||||
"to_date": "A",
|
||||
"status": "Stato",
|
||||
@ -543,7 +554,7 @@
|
||||
"download_pdf": "Scarica PDF",
|
||||
"view_pdf": "Vedi PDF",
|
||||
"update_report": "Aggiorna Report",
|
||||
"report": "Report | Reports",
|
||||
"report": "Segnalazione | Segnalazioni",
|
||||
"profit_loss": {
|
||||
"profit_loss": "Guadagni & Perdite",
|
||||
"to_date": "A",
|
||||
@ -601,13 +612,13 @@
|
||||
"customization": "Personalizzazione",
|
||||
"preferences": "Opzioni",
|
||||
"notifications": "Notifiche",
|
||||
"tax_types": "Tupi di Tasse",
|
||||
"tax_types": "Tipi di Imposte",
|
||||
"expense_category": "Categorie di spesa",
|
||||
"update_app": "Aggiorna App",
|
||||
"backup": "Backup",
|
||||
"file_disk": "File Disk",
|
||||
"file_disk": "Disco File",
|
||||
"custom_fields": "Campi personalizzati",
|
||||
"payment_modes": "Payment Modes",
|
||||
"payment_modes": "Modalità di Pagamento",
|
||||
"notes": "Note"
|
||||
},
|
||||
"title": "Impostazioni",
|
||||
@ -615,7 +626,7 @@
|
||||
"general": "Generale",
|
||||
"language": "Lingua",
|
||||
"primary_currency": "Valuta Principale",
|
||||
"timezone": "Time Zone",
|
||||
"timezone": "Fuso Orario",
|
||||
"date_format": "Formato data",
|
||||
"currencies": {
|
||||
"title": "Valute",
|
||||
@ -636,17 +647,17 @@
|
||||
"add_currency": "Aggiungi Valùta"
|
||||
},
|
||||
"mail": {
|
||||
"host": "Mail Host",
|
||||
"host": "Host Mail",
|
||||
"port": "Mail - Porta",
|
||||
"driver": "Mail Driver",
|
||||
"secret": "Secret",
|
||||
"mailgun_secret": "Mailgun Secret",
|
||||
"mailgun_domain": "Domain",
|
||||
"mailgun_endpoint": "Mailgun Endpoint",
|
||||
"ses_secret": "SES Secret",
|
||||
"ses_key": "SES Key",
|
||||
"password": "Mail Password",
|
||||
"username": "Mail Username",
|
||||
"driver": "Driver Mail",
|
||||
"secret": "Segreto",
|
||||
"mailgun_secret": "Segreto Mailgun",
|
||||
"mailgun_domain": "Dominio",
|
||||
"mailgun_endpoint": "Endpoint Mailgun",
|
||||
"ses_secret": "Segreto SES",
|
||||
"ses_key": "Chiave SES",
|
||||
"password": "Password Email",
|
||||
"username": "Nome Utente Email",
|
||||
"mail_config": "Configurazione Mail",
|
||||
"from_name": "Nome Mittente Mail",
|
||||
"from_mail": "Indirizzo Mittente Mail",
|
||||
@ -665,7 +676,7 @@
|
||||
"section_description": "Informazioni sulla tua azienda che saranno mostrate in fattura, preventivi ed altri documenti creati dell'applicazione.",
|
||||
"phone": "Telefono",
|
||||
"country": "Paese",
|
||||
"state": "Stato",
|
||||
"state": "Provincia",
|
||||
"city": "Città",
|
||||
"address": "Indirizzo",
|
||||
"zip": "CAP",
|
||||
@ -674,7 +685,7 @@
|
||||
},
|
||||
"custom_fields": {
|
||||
"title": "Campi personalizzati",
|
||||
"section_description": "Customize your Invoices, Estimates & Payment Receipts with your own fields. Make sure to use the below added fields on the address formats on Customization settings page.",
|
||||
"section_description": "Personalizza le tue fatture, preventivi e ricevute di pagamento con i tuoi campi. Assicurati di utilizzare i campi aggiunti qui sotto nei campi della pagina Personalizzazione delle impostazioni.",
|
||||
"add_custom_field": "Aggiungi campo personalizzato",
|
||||
"edit_custom_field": "Modifica campo personalizzato",
|
||||
"field_name": "Nome campo",
|
||||
@ -726,7 +737,7 @@
|
||||
"website": "Sito web",
|
||||
"name": "Nome",
|
||||
"country": "Paese",
|
||||
"state": "Stato",
|
||||
"state": "Provincia",
|
||||
"city": "Città",
|
||||
"company_name": "Nome Azienda",
|
||||
"address_street_1": "Indirizzo 1",
|
||||
@ -740,41 +751,50 @@
|
||||
"title": "Fatture",
|
||||
"notes": "Note",
|
||||
"invoice_prefix": "Prefisso Fattura",
|
||||
"default_invoice_email_body": "Default Invoice Email Body",
|
||||
"invoice_number_length": "Invoice number length",
|
||||
"default_invoice_email_body": "Corpo Email Fattura Predefinito",
|
||||
"invoice_settings": "Impostazioni fattura",
|
||||
"autogenerate_invoice_number": "Auto genera numero di fattura",
|
||||
"invoice_setting_description": "Disabilita, se non vuoi auto-generare i numeri delle fatture ogni volta che crei una nuova fattura.",
|
||||
"invoice_email_attachment": "Send invoices as attachments",
|
||||
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_invoice_prefix": "Inserisci prefisso fattura",
|
||||
"terms_and_conditions": "Termini e Condizioni",
|
||||
"company_address_format": "Company Address Format",
|
||||
"shipping_address_format": "Shipping Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"company_address_format": "Formato Indirizzo Azienda",
|
||||
"shipping_address_format": "Formato Indirizzo Di Spedizione",
|
||||
"billing_address_format": "Formato Indirizzo Fatturazione",
|
||||
"invoice_setting_updated": "Impostazioni fatture aggiornate con successo"
|
||||
},
|
||||
"estimates": {
|
||||
"title": "Preventivi",
|
||||
"estimate_prefix": "Prefisso Preventivi",
|
||||
"default_estimate_email_body": "Default Estimate Email Body",
|
||||
"estimate_number_length": "Estimate number length",
|
||||
"default_estimate_email_body": "Corpo Email Preventivo Predefinito",
|
||||
"estimate_settings": "Impostazioni Preventivi",
|
||||
"autogenerate_estimate_number": "Auto-genera Numero di preventivo",
|
||||
"estimate_setting_description": "Disabilita, se non vuoi autogenerare il numero di preventivo ogni volta che ne viene creato uno nuovo.",
|
||||
"estimate_email_attachment": "Send estimates as attachments",
|
||||
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_estimate_prefix": "Inserisci prefisso preventivo",
|
||||
"estimate_setting_updated": "Impostazioni preventivi aggiornate con successo",
|
||||
"company_address_format": "Company Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"shipping_address_format": "Shipping Address Format"
|
||||
"company_address_format": "Formato Indirizzo Azienda",
|
||||
"billing_address_format": "Formato Indirizzo Fatturazione",
|
||||
"shipping_address_format": "Formato Indirizzo Spedizione"
|
||||
},
|
||||
"payments": {
|
||||
"title": "Pagamenti",
|
||||
"description": "Modes of transaction for payments",
|
||||
"description": "Modalità di pagamento",
|
||||
"payment_prefix": "Prefisso Pagamento",
|
||||
"default_payment_email_body": "Default Payment Email Body",
|
||||
"payment_number_length": "Payment number lenght",
|
||||
"default_payment_email_body": "Corpo Email Pagamento Predefinito",
|
||||
"payment_settings": "Impostazioni Pagamento",
|
||||
"autogenerate_payment_number": "Auto genera il numero di Pagamento",
|
||||
"payment_setting_description": "Disabilita, se non vuoi autogenerare il numero di pagamento ogni volta che ne viene creato uno nuovo.",
|
||||
"payment_email_attachment": "Send payments as attachments",
|
||||
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_payment_prefix": "Inserisci prefisso di pagamento",
|
||||
"payment_setting_updated": "Impostazioni di pagamento aggiornate con successo",
|
||||
"payment_modes": "Payment Modes",
|
||||
"payment_modes": "Modalità di pagamento",
|
||||
"add_payment_mode": "Aggiungi modalità di pagamento",
|
||||
"edit_payment_mode": "Modifica modalità di pagamento",
|
||||
"mode_name": "Nome modalità",
|
||||
@ -782,9 +802,9 @@
|
||||
"payment_mode_updated": "Modalità di pagamento aggiornata",
|
||||
"payment_mode_confirm_delete": "Non potrai ripristinare la modalità di pagamento",
|
||||
"already_in_use": "Modalità di pagamento già in uso",
|
||||
"deleted_message": "Payment Mode deleted successfully",
|
||||
"company_address_format": "Company Address Format",
|
||||
"from_customer_address_format": "From Customer Address Format"
|
||||
"deleted_message": "Modalità di pagamento eliminata con successo",
|
||||
"company_address_format": "Formato Indirizzo Azienda",
|
||||
"from_customer_address_format": "Dal Formato Indirizzo Cliente"
|
||||
},
|
||||
"items": {
|
||||
"title": "Commesse",
|
||||
@ -800,18 +820,18 @@
|
||||
},
|
||||
"notes": {
|
||||
"title": "Note",
|
||||
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
|
||||
"description": "Risparmia tempo creando note e riutilizzandole sulle tue fatture, preventivi e pagamenti.",
|
||||
"notes": "Note",
|
||||
"type": "genere",
|
||||
"add_note": "Add Note",
|
||||
"add_new_note": "Add New Note",
|
||||
"add_note": "Aggiungi Nota",
|
||||
"add_new_note": "Aggiungi nuova nota",
|
||||
"name": "Nome",
|
||||
"edit_note": "Edit Note",
|
||||
"note_added": "Note added successfully",
|
||||
"note_updated": "Note Updated successfully",
|
||||
"note_confirm_delete": "You will not be able to recover this Note",
|
||||
"already_in_use": "Note is already in use",
|
||||
"deleted_message": "Note deleted successfully"
|
||||
"edit_note": "Modifica nota",
|
||||
"note_added": "Nota aggiunta correttamente",
|
||||
"note_updated": "Nota aggiornata correttamente",
|
||||
"note_confirm_delete": "Non sarà possibile recuperare questa nota",
|
||||
"already_in_use": "Nota già in uso",
|
||||
"deleted_message": "Nota eliminata con successo"
|
||||
}
|
||||
},
|
||||
"account_settings": {
|
||||
@ -844,7 +864,7 @@
|
||||
"please_enter_email": "Inserisci Email"
|
||||
},
|
||||
"tax_types": {
|
||||
"title": "Tipi di Imposta",
|
||||
"title": "Tipi di Imposte",
|
||||
"add_tax": "Aggiungi Imposta",
|
||||
"edit_tax": "Modifica imposta",
|
||||
"description": "Puoi aggiongere e rimuovere imposte a piacimento. Vengono supportate Tasse differenti per prodotti/servizi specifici esattamento come per le fatture.",
|
||||
@ -879,8 +899,8 @@
|
||||
},
|
||||
"preferences": {
|
||||
"currency": "Valùta",
|
||||
"default_language": "Default Language",
|
||||
"time_zone": "Time Zone",
|
||||
"default_language": "Lingua predefinita",
|
||||
"time_zone": "Fuso Orario",
|
||||
"fiscal_year": "Anno finanziario",
|
||||
"date_format": "Formato Data",
|
||||
"discount_setting": "Impostazione Sconto",
|
||||
@ -892,7 +912,7 @@
|
||||
"updated_message": "Preferenze aggiornate con successo",
|
||||
"select_language": "seleziona lingua",
|
||||
"select_time_zone": "Seleziona Time Zone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_date_format": "Seleziona Formato Data",
|
||||
"select_financial_year": "Seleziona anno finanziario"
|
||||
},
|
||||
"update_app": {
|
||||
@ -901,7 +921,7 @@
|
||||
"check_update": "Controllo aggiornamenti",
|
||||
"avail_update": "Aggiornamento disponibile",
|
||||
"next_version": "Versione successiva",
|
||||
"requirements": "Requirements",
|
||||
"requirements": "Requisiti",
|
||||
"update": "Aggiorna ora",
|
||||
"update_progress": "Aggiornamento in corso...",
|
||||
"progress_text": "Sarà necessario qualche minuto. Per favore non aggiornare la pagina e non chiudere la finestra prima che l'aggiornamento sia completato",
|
||||
@ -911,6 +931,7 @@
|
||||
"download_zip_file": "Scarica il file ZIP",
|
||||
"unzipping_package": "Pacchetto di decompressione",
|
||||
"copying_files": "Copia dei file",
|
||||
"deleting_files": "Deleting Unused files",
|
||||
"running_migrations": "Esecuzione delle migrazioni",
|
||||
"finishing_update": "Aggiornamento di finitura",
|
||||
"update_failed": "Aggiornamento non riuscito",
|
||||
@ -918,84 +939,84 @@
|
||||
},
|
||||
"backup": {
|
||||
"title": "Backup | Backups",
|
||||
"description": "The backup is a zipfile that contains all files in the directories you specify along with a dump of your database",
|
||||
"new_backup": "Add New Backup",
|
||||
"create_backup": "Create Backup",
|
||||
"select_backup_type": "Select Backup Type",
|
||||
"backup_confirm_delete": "You will not be able to recover this Backup",
|
||||
"path": "path",
|
||||
"new_disk": "New Disk",
|
||||
"created_at": "created at",
|
||||
"size": "size",
|
||||
"description": "Il backup è un file zip che contiene tutti i file nelle cartelle specificate con un dump del vostro database",
|
||||
"new_backup": "Nuovo Backup",
|
||||
"create_backup": "Crea Backup",
|
||||
"select_backup_type": "Scegli tipo di backup",
|
||||
"backup_confirm_delete": "Non sarà possibile recuperare questo backup",
|
||||
"path": "percorso",
|
||||
"new_disk": "Nuovo Disco",
|
||||
"created_at": "creato il",
|
||||
"size": "dimensioni",
|
||||
"dropbox": "dropbox",
|
||||
"local": "local",
|
||||
"healthy": "healthy",
|
||||
"amount_of_backups": "amount of backups",
|
||||
"newest_backups": "newest backups",
|
||||
"used_storage": "used storage",
|
||||
"select_disk": "Select Disk",
|
||||
"local": "locale",
|
||||
"healthy": "sano",
|
||||
"amount_of_backups": "quantità di backup",
|
||||
"newest_backups": "backup più recenti",
|
||||
"used_storage": "spazio utilizzato",
|
||||
"select_disk": "Seleziona Disco",
|
||||
"action": "Azione",
|
||||
"deleted_message": "Backup deleted successfully",
|
||||
"created_message": "Backup created successfully",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"deleted_message": "Backup eliminato con successo",
|
||||
"created_message": "Backup creato con successo",
|
||||
"invalid_disk_credentials": "Credenziali del disco selezionato non valide"
|
||||
},
|
||||
"disk": {
|
||||
"title": "File Disk | File Disks",
|
||||
"description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.",
|
||||
"created_at": "created at",
|
||||
"title": "Disco File | Dischi File",
|
||||
"description": "Per impostazione predefinita, Crater utilizzerà il disco locale per salvare backup, avatar e altri file di immagine. Puoi configurare più di un driver disco come DigitalOcean, S3 e Dropbox in base alle tue preferenze.",
|
||||
"created_at": "creato il",
|
||||
"dropbox": "dropbox",
|
||||
"name": "Nome",
|
||||
"driver": "Driver",
|
||||
"disk_type": "genere",
|
||||
"disk_name": "Disk Name",
|
||||
"new_disk": "Add New Disk",
|
||||
"filesystem_driver": "Filesystem Driver",
|
||||
"local_driver": "local Driver",
|
||||
"local_root": "local Root",
|
||||
"public_driver": "Public Driver",
|
||||
"public_root": "Public Root",
|
||||
"public_url": "Public URL",
|
||||
"public_visibility": "Public Visibility",
|
||||
"media_driver": "Media Driver",
|
||||
"disk_name": "Nome Disco",
|
||||
"new_disk": "Aggiungi Nuovo Disco",
|
||||
"filesystem_driver": "Driver Filesystem",
|
||||
"local_driver": "driver locale",
|
||||
"local_root": "radice locale",
|
||||
"public_driver": "Driver Pubblico",
|
||||
"public_root": "Root Pubblica",
|
||||
"public_url": "Url Pubblico",
|
||||
"public_visibility": "Visibilità Pubblica",
|
||||
"media_driver": "Driver Media",
|
||||
"media_root": "Media Root",
|
||||
"aws_driver": "AWS Driver",
|
||||
"aws_key": "AWS Key",
|
||||
"aws_secret": "AWS Secret",
|
||||
"aws_region": "AWS Region",
|
||||
"aws_bucket": "AWS Bucket",
|
||||
"aws_root": "AWS Root",
|
||||
"do_spaces_type": "Do Spaces type",
|
||||
"do_spaces_key": "Do Spaces key",
|
||||
"do_spaces_secret": "Do Spaces Secret",
|
||||
"do_spaces_region": "Do Spaces Region",
|
||||
"do_spaces_bucket": "Do Spaces Bucket",
|
||||
"do_spaces_endpoint": "Do Spaces Endpoint",
|
||||
"do_spaces_root": "Do Spaces Root",
|
||||
"dropbox_type": "Dropbox Type",
|
||||
"dropbox_token": "Dropbox Token",
|
||||
"dropbox_key": "Dropbox Key",
|
||||
"dropbox_secret": "Dropbox Secret",
|
||||
"dropbox_app": "Dropbox App",
|
||||
"dropbox_root": "Dropbox Root",
|
||||
"default_driver": "Default Driver",
|
||||
"is_default": "IS DEFAULT",
|
||||
"set_default_disk": "Set Default Disk",
|
||||
"aws_driver": "Driver AWS",
|
||||
"aws_key": "Chiave AWS",
|
||||
"aws_secret": "Segreto AWS",
|
||||
"aws_region": "Regione AWS",
|
||||
"aws_bucket": "Bucket AWS",
|
||||
"aws_root": "Root AWS",
|
||||
"do_spaces_type": "tipo Do Spaces",
|
||||
"do_spaces_key": "chiave Do Spaces",
|
||||
"do_spaces_secret": "segreto Do Spaces",
|
||||
"do_spaces_region": "regione Do Spaces",
|
||||
"do_spaces_bucket": "bucket Do Spaces",
|
||||
"do_spaces_endpoint": "endpoint Do Spaces",
|
||||
"do_spaces_root": "root Do Spaces",
|
||||
"dropbox_type": "Tipo Dropbox",
|
||||
"dropbox_token": "Token Dropbox",
|
||||
"dropbox_key": "Chiave Dropbox",
|
||||
"dropbox_secret": "Segreto Dropbox",
|
||||
"dropbox_app": "App Dropbox",
|
||||
"dropbox_root": "Root Dropbox",
|
||||
"default_driver": "Driver Predefinito",
|
||||
"is_default": "È DEFAULT",
|
||||
"set_default_disk": "Imposta Disco Predefinito",
|
||||
"set_default_disk_confirm": "This disk will be set as default and all the new PDFs will be saved on this disk",
|
||||
"success_set_default_disk": "Disk set as default successfully",
|
||||
"save_pdf_to_disk": "Save PDFs to Disk",
|
||||
"disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.",
|
||||
"select_disk": "Select Disk",
|
||||
"disk_settings": "Disk Settings",
|
||||
"confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater",
|
||||
"success_set_default_disk": "Disco impostato come predefinito correttamente",
|
||||
"save_pdf_to_disk": "Salva i PDF su disco",
|
||||
"disk_setting_description": " Abilita questa opzione, se vuoi salvare automaticamente una copia di ogni PDF Fattura, Preventivo e Ricevuta di Pagamento sul tuo disco predefinito. Attivare questa opzione diminuirà il tempo di caricamento durante la visualizzazione dei PDF.",
|
||||
"select_disk": "Seleziona Disco",
|
||||
"disk_settings": "Impostazioni Disco",
|
||||
"confirm_delete": "I file e le cartelle esistenti nel disco specificato non saranno toccati, ma la configurazione del disco sarà eliminata dal Crater",
|
||||
"action": "Azione",
|
||||
"edit_file_disk": "Edit File Disk",
|
||||
"success_create": "Disk added successfully",
|
||||
"success_update": "Disk updated successfully",
|
||||
"error": "Disk addition failed",
|
||||
"deleted_message": "File Disk deleted successfully",
|
||||
"disk_variables_save_successfully": "Disk Configured Successfully",
|
||||
"disk_variables_save_error": "Disk configuration failed.",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"edit_file_disk": "Modifica Disco File",
|
||||
"success_create": "Disco aggiunto correttamente",
|
||||
"success_update": "Disco aggiornato correttamente",
|
||||
"error": "Aggiunta del disco fallita",
|
||||
"deleted_message": "Disco file eliminato con successo",
|
||||
"disk_variables_save_successfully": "Disco Configurato Con successo",
|
||||
"disk_variables_save_error": "Configurazione disco fallita.",
|
||||
"invalid_disk_credentials": "Credenziali del disco selezionato non valide"
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@ -1014,7 +1035,7 @@
|
||||
"preferences": "Impostazioni",
|
||||
"preferences_desc": "Impostazioni di default del sistema.",
|
||||
"country": "Paese",
|
||||
"state": "Stato",
|
||||
"state": "Provincia",
|
||||
"city": "Città",
|
||||
"address": "Indirizzo",
|
||||
"street": "Indirizzo1 | Indirizzo2",
|
||||
@ -1023,25 +1044,25 @@
|
||||
"go_back": "Torna indietro",
|
||||
"currency": "Valùta",
|
||||
"language": "Lingua",
|
||||
"time_zone": "Time Zone",
|
||||
"time_zone": "Fuso Orario",
|
||||
"fiscal_year": "Anno Finanziario",
|
||||
"date_format": "Formato Date",
|
||||
"from_address": "Indirizzo - Da",
|
||||
"username": "Username",
|
||||
"username": "Nome utente",
|
||||
"next": "Successivo",
|
||||
"continue": "Continua",
|
||||
"skip": "Salta",
|
||||
"database": {
|
||||
"database": "URL del sito & database",
|
||||
"connection": "Connessione Database",
|
||||
"host": "Database Host",
|
||||
"host": "Host Database",
|
||||
"port": "Database - Porta",
|
||||
"password": "Database Password",
|
||||
"app_url": "App URL",
|
||||
"app_domain": "App Domain",
|
||||
"username": "Database Username",
|
||||
"password": "Password Database",
|
||||
"app_url": "URL dell'App",
|
||||
"app_domain": "Dominio App",
|
||||
"username": "Nome Utente del Database",
|
||||
"db_name": "Database Nome",
|
||||
"db_path": "Database Path",
|
||||
"db_path": "Percorso del database",
|
||||
"desc": "Crea un database sul tuo server e setta le credenziali usando il form qui sotto."
|
||||
},
|
||||
"permissions": {
|
||||
@ -1051,17 +1072,17 @@
|
||||
"permission_desc": "Qui sotto la lista dei permessi richiesti per far funzionare correttamente l'App. Se il controllo dei permessi fallisce, assicurati di aggiornare/modificare i permessi sulle cartelle."
|
||||
},
|
||||
"mail": {
|
||||
"host": "Mail Host",
|
||||
"host": "Host Mail",
|
||||
"port": "Mail - Porta",
|
||||
"driver": "Mail Driver",
|
||||
"secret": "Secret",
|
||||
"mailgun_secret": "Mailgun Secret",
|
||||
"mailgun_domain": "Domain",
|
||||
"mailgun_endpoint": "Mailgun Endpoint",
|
||||
"ses_secret": "SES Secret",
|
||||
"ses_key": "SES Key",
|
||||
"password": "Mail Password",
|
||||
"username": "Mail Username",
|
||||
"driver": "Driver Mail",
|
||||
"secret": "Segreto",
|
||||
"mailgun_secret": "Segreto Mailgun",
|
||||
"mailgun_domain": "Dominio",
|
||||
"mailgun_endpoint": "Endpoint Mailgun",
|
||||
"ses_secret": "Segreto SES",
|
||||
"ses_key": "Chiave SES",
|
||||
"password": "Password Email",
|
||||
"username": "Nome Utente Email",
|
||||
"mail_config": "Configurazione Mail",
|
||||
"from_name": "Nome mittente mail",
|
||||
"from_mail": "Indirizzo mittente mail",
|
||||
@ -1075,11 +1096,11 @@
|
||||
"system_req_desc": "Crater ha alcuni requisiti di sistema. Assicurati che il server ha la versione di php richiesta e tutte le estensioni necessarie."
|
||||
},
|
||||
"errors": {
|
||||
"migrate_failed": "Migrate Failed",
|
||||
"database_variables_save_error": "Cannot write configuration to .env file. Please check its file permissions",
|
||||
"mail_variables_save_error": "Email configuration failed.",
|
||||
"connection_failed": "Database connection failed",
|
||||
"database_should_be_empty": "Database should be empty"
|
||||
"migrate_failed": "Migrazione Fallita",
|
||||
"database_variables_save_error": "Impossibile scrivere la configurazione nel file .env. Si prega di controllare i permessi dei file",
|
||||
"mail_variables_save_error": "Configurazione email fallita.",
|
||||
"connection_failed": "Connessione al Database fallita",
|
||||
"database_should_be_empty": "Il database dovrebbe essere vuoto"
|
||||
},
|
||||
"success": {
|
||||
"mail_variables_save_successfully": "Email configurata con successo",
|
||||
@ -1130,42 +1151,47 @@
|
||||
"address_maxlength": "L'Indirizzo non può eccedere i 255 caratteri.",
|
||||
"ref_number_maxlength": "Il Numero di Riferimento non può superare i 255 caratteri.",
|
||||
"prefix_maxlength": "Il Prefisso non può superare i 5 caratteri.",
|
||||
"something_went_wrong": "Si è verificato un errore"
|
||||
"something_went_wrong": "Si è verificato un errore",
|
||||
"number_length_minvalue": "Number lenght should be greater than 0"
|
||||
},
|
||||
"pdf_estimate_label": "Preventivo",
|
||||
"pdf_estimate_number": "Preventivo Numero",
|
||||
"pdf_estimate_date": "Data preventivo",
|
||||
"pdf_estimate_expire_date": "Expiry date",
|
||||
"pdf_estimate_expire_date": "Data di scadenza",
|
||||
"pdf_invoice_label": "Fattura",
|
||||
"pdf_invoice_number": "Numero Fattura",
|
||||
"pdf_invoice_date": "Data fattura",
|
||||
"pdf_invoice_due_date": "Due date",
|
||||
"pdf_invoice_due_date": "Data di pagamento",
|
||||
"pdf_notes": "Note",
|
||||
"pdf_items_label": "Commesse",
|
||||
"pdf_quantity_label": "Quantità",
|
||||
"pdf_price_label": "Prezzo",
|
||||
"pdf_discount_label": "Sconto",
|
||||
"pdf_amount_label": "Ammontare",
|
||||
"pdf_subtotal": "Subtotal",
|
||||
"pdf_subtotal": "Parziale",
|
||||
"pdf_total": "Totale",
|
||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||
"pdf_payment_date": "Payment Date",
|
||||
"pdf_payment_label": "Payment",
|
||||
"pdf_payment_receipt_label": "RICEVUTA DI PAGAMENTO",
|
||||
"pdf_payment_date": "Data di pagamento",
|
||||
"pdf_payment_number": "Numero di pagamento",
|
||||
"pdf_payment_mode": "Modalità di Pagamento",
|
||||
"pdf_payment_amount_received_label": "Amount Received",
|
||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||
"pdf_income_label": "INCOME",
|
||||
"pdf_net_profit_label": "NET PROFIT",
|
||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||
"pdf_total_sales_label": "TOTAL SALES",
|
||||
"pdf_item_sales_label": "Sales Report: By Item",
|
||||
"pdf_tax_report_label": "TAX REPORT",
|
||||
"pdf_total_tax_label": "TOTAL TAX",
|
||||
"pdf_payment_amount_received_label": "Importo Ricevuto",
|
||||
"pdf_expense_report_label": "RELAZIONE SPESE",
|
||||
"pdf_total_expenses_label": "TOTALE SPESE",
|
||||
"pdf_profit_loss_label": "RELAZIONE PROFITTO E PERDITE",
|
||||
"pdf_sales_customers_label": "Sales Customer Report",
|
||||
"pdf_sales_items_label": "Sales Item Report",
|
||||
"pdf_tax_summery_label": "Tax Summary Report",
|
||||
"pdf_income_label": "REDDITO",
|
||||
"pdf_net_profit_label": "PROFITTO NETTO",
|
||||
"pdf_customer_sales_report": "Relazione Vendite: Per Cliente",
|
||||
"pdf_total_sales_label": "TOTALE VENDITE",
|
||||
"pdf_item_sales_label": "Relazione Vendite: Per Articolo",
|
||||
"pdf_tax_report_label": "RELAZIONE FISCALE",
|
||||
"pdf_total_tax_label": "TOTALE IMPOSTA",
|
||||
"pdf_tax_types_label": "Tipi di Imposta",
|
||||
"pdf_expenses_label": "Uscite",
|
||||
"pdf_bill_to": "Fattura a,",
|
||||
"pdf_ship_to": "Invia a,",
|
||||
"pdf_received_from": "Received from:"
|
||||
"pdf_received_from": "Ricevuto da:"
|
||||
}
|
||||
|
||||
1193
resources/assets/js/plugins/ja.json
Normal file
1193
resources/assets/js/plugins/ja.json
Normal file
File diff suppressed because it is too large
Load Diff
1193
resources/assets/js/plugins/ko.json
Normal file
1193
resources/assets/js/plugins/ko.json
Normal file
File diff suppressed because it is too large
Load Diff
1197
resources/assets/js/plugins/lv.json
Normal file
1197
resources/assets/js/plugins/lv.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
{
|
||||
"navigation": {
|
||||
"dashboard": "Dashboard",
|
||||
"dashboard": "Overzicht",
|
||||
"customers": "Klanten",
|
||||
"items": "Artikelen",
|
||||
"invoices": "Facturen",
|
||||
@ -10,15 +10,15 @@
|
||||
"reports": "Rapporten",
|
||||
"settings": "Instellingen",
|
||||
"logout": "Uitloggen",
|
||||
"users": "Users"
|
||||
"users": "Gebruikers"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "Add Company",
|
||||
"add_company": "Bedrijf toevoegen",
|
||||
"view_pdf": "Bekijk PDF",
|
||||
"copy_pdf_url": "Kopieer PDF-URL",
|
||||
"download_pdf": "Download PDF",
|
||||
"save": "Opslaan",
|
||||
"create": "Create",
|
||||
"create": "Maak",
|
||||
"cancel": "annuleren",
|
||||
"update": "Bijwerken",
|
||||
"deselect": "Maak de selectie ongedaan",
|
||||
@ -30,10 +30,10 @@
|
||||
"sort_by": "Sorteer op",
|
||||
"ascending": "Oplopend",
|
||||
"descending": "Aflopend",
|
||||
"subject": "Onderwerpen",
|
||||
"body": "Body",
|
||||
"subject": "Onderwerp",
|
||||
"body": "Inhoud",
|
||||
"message": "Bericht",
|
||||
"send": "Send",
|
||||
"send": "Verstuur",
|
||||
"go_back": "Ga terug",
|
||||
"back_to_login": "Terug naar Inloggen?",
|
||||
"home": "Home",
|
||||
@ -84,9 +84,10 @@
|
||||
"street_2": "Straat # 2",
|
||||
"action_failed": "Actie: mislukt",
|
||||
"retry": "Retr",
|
||||
"choose_note": "Choose Note",
|
||||
"no_note_found": "No Note Found",
|
||||
"insert_note": "Insert Note"
|
||||
"choose_note": "Kies notitie",
|
||||
"no_note_found": "Geen notitie gevonden",
|
||||
"insert_note": "Notitie invoegen",
|
||||
"copied_pdf_url_clipboard": "Copied PDF url to clipboard!"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Selecteer jaar",
|
||||
@ -94,7 +95,7 @@
|
||||
"due_amount": "Openstaand bedrag",
|
||||
"customers": "Klanten",
|
||||
"invoices": "Facturen",
|
||||
"estimates": "Offerte"
|
||||
"estimates": "Offertes"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "Verkoop",
|
||||
@ -133,10 +134,10 @@
|
||||
"compound_tax": "Verbinding Ta"
|
||||
},
|
||||
"global_search": {
|
||||
"search": "Search...",
|
||||
"search": "Zoeken...",
|
||||
"customers": "Klanten",
|
||||
"users": "Users",
|
||||
"no_results_found": "No Results Found"
|
||||
"users": "Gebruikers",
|
||||
"no_results_found": "Geen zoekresultaten"
|
||||
},
|
||||
"customers": {
|
||||
"title": "Klanten",
|
||||
@ -144,7 +145,7 @@
|
||||
"contacts_list": "Klantenlijst",
|
||||
"name": "Naam",
|
||||
"mail": "Mail | Mails",
|
||||
"statement": "Statement",
|
||||
"statement": "Verklaring",
|
||||
"display_name": "Weergavenaam",
|
||||
"primary_contact_name": "Naam primaire contactpersoon",
|
||||
"contact_name": "Contactnaam",
|
||||
@ -153,8 +154,8 @@
|
||||
"address": "Adres",
|
||||
"phone": "Telefoon",
|
||||
"website": "Website",
|
||||
"overview": "Overview",
|
||||
"enable_portal": "Enable Portal",
|
||||
"overview": "Overzicht",
|
||||
"enable_portal": "Activeer Portaal",
|
||||
"country": "Land",
|
||||
"state": "Provincie",
|
||||
"city": "Stad",
|
||||
@ -166,7 +167,7 @@
|
||||
"primary_currency": "Primaire valuta",
|
||||
"description": "Omschrijving",
|
||||
"add_new_customer": "Nieuwe klant toevoegen",
|
||||
"save_customer": "Klant redden",
|
||||
"save_customer": "Klant opslaan",
|
||||
"update_customer": "Klant bijwerken",
|
||||
"customer": "Klant | Klanten",
|
||||
"new_customer": "Nieuwe klant",
|
||||
@ -177,16 +178,18 @@
|
||||
"copy_billing_address": "Kopiëren van facturering",
|
||||
"no_customers": "Nog geen klanten!",
|
||||
"no_customers_found": "Geen klanten gevonden!",
|
||||
"no_contact": "No contact",
|
||||
"no_contact_name": "No contact name",
|
||||
"list_of_customers": "Hier vind je jouw klanten terug.",
|
||||
"primary_display_name": "Primaire weergavenaam",
|
||||
"select_currency": "Selecteer valuta",
|
||||
"select_a_customer": "Selecteer een klant",
|
||||
"type_or_click": "Typ of klik om te selecteren",
|
||||
"new_transaction": "New Transaction",
|
||||
"no_matching_customers": "There are no matching customers!",
|
||||
"phone_number": "Phone Number",
|
||||
"create_date": "Create Date",
|
||||
"confirm_delete": "U kunt deze klant en alle gerelateerde facturen, offertes en betalingen niet terugkrijgen. | U zult deze klanten en alle gerelateerde facturen, offertes en betalingen niet kunnen terugkrijgen.",
|
||||
"new_transaction": "Nieuwe transactie",
|
||||
"no_matching_customers": "Er zijn geen overeenkomende klanten!",
|
||||
"phone_number": "Telefoonnummer",
|
||||
"create_date": "Aangemaakt op",
|
||||
"confirm_delete": "Deze klant en alle gerelateerde facturen, offertes en betalingen worden permanent verwijderd. | Deze klanten en alle gerelateerde facturen, offertes en betalingen worden permanent verwijderd.",
|
||||
"created_message": "Klant succesvol aangemaakt",
|
||||
"updated_message": "Klant succesvol geüpdatet",
|
||||
"deleted_message": "Klant succesvol verwijderd | Klanten zijn succesvol verwijderd"
|
||||
@ -200,6 +203,7 @@
|
||||
"added_on": "Toegevoegd",
|
||||
"price": "Prijs",
|
||||
"date_of_creation": "Datum van creatie",
|
||||
"not_selected": "No item selected",
|
||||
"action": "Actie",
|
||||
"add_item": "Voeg item toe",
|
||||
"save_item": "Item opslaan",
|
||||
@ -236,14 +240,14 @@
|
||||
"total": "Totaal",
|
||||
"discount": "Korting",
|
||||
"sub_total": "Subtotaal",
|
||||
"estimate_number": "Geschat aantal",
|
||||
"estimate_number": "Offerte nummer",
|
||||
"ref_number": "Referentie nummer",
|
||||
"contact": "Contact",
|
||||
"add_item": "Voeg een item toe",
|
||||
"date": "Datum",
|
||||
"due_date": "Opleveringsdatum",
|
||||
"expiry_date": "Vervaldatum",
|
||||
"status": "Statu",
|
||||
"status": "Status",
|
||||
"add_tax": "Belasting toevoegen",
|
||||
"amount": "Bedrag",
|
||||
"action": "Actie",
|
||||
@ -254,7 +258,7 @@
|
||||
"mark_as_sent": "Markeren als verzonden",
|
||||
"send_estimate": "Verzend offerte",
|
||||
"resend_estimate": "Offerte opnieuw verzenden",
|
||||
"record_payment": "Bestaling registreren",
|
||||
"record_payment": "Betaling registreren",
|
||||
"add_estimate": "Offerte toevoegen",
|
||||
"save_estimate": "Bewaar offerte",
|
||||
"confirm_conversion": "Deze offerte wordt gebruikt om een nieuwe factuur te maken.",
|
||||
@ -270,6 +274,7 @@
|
||||
"required": "Veld is vereist"
|
||||
},
|
||||
"accepted": "Geaccepteerd",
|
||||
"rejected": "Rejected",
|
||||
"sent": "Verzonden",
|
||||
"draft": "Concept",
|
||||
"declined": "Geweigerd",
|
||||
@ -316,6 +321,9 @@
|
||||
"all": "Allemaal",
|
||||
"paid": "Betaald",
|
||||
"unpaid": "Onbetaald",
|
||||
"viewed": "Viewed",
|
||||
"overdue": "Overdue",
|
||||
"completed": "Completed",
|
||||
"customer": "Klant",
|
||||
"paid_status": "Betaling",
|
||||
"ref_no": "REF NR.",
|
||||
@ -332,7 +340,7 @@
|
||||
"add_item": "Voeg een item toe",
|
||||
"date": "Datum",
|
||||
"due_date": "Opleveringsdatum",
|
||||
"status": "Statu",
|
||||
"status": "Status",
|
||||
"add_tax": "Belasting toevoegen",
|
||||
"amount": "Bedrag",
|
||||
"action": "Actie",
|
||||
@ -347,7 +355,7 @@
|
||||
"invoice_mark_as_sent": "Deze factuur wordt gemarkeerd als verzonden",
|
||||
"confirm_send": "Deze factuur wordt via e-mail naar de klant gestuurd",
|
||||
"invoice_date": "Factuur datum",
|
||||
"record_payment": "Bestaling registreren",
|
||||
"record_payment": "Betaling registreren",
|
||||
"add_new_invoice": "Nieuwe factuur toevoegen",
|
||||
"update_expense": "Onkosten bijwerken",
|
||||
"edit_invoice": "Factuur bewerken",
|
||||
@ -379,7 +387,7 @@
|
||||
"type_item_description": "Type Item Beschrijving (optioneel)"
|
||||
},
|
||||
"payment_attached_message": "Aan een van de geselecteerde facturen is al een betaling gekoppeld. Zorg ervoor dat u eerst de bijgevoegde betalingen verwijdert om door te gaan met de verwijdering",
|
||||
"confirm_delete": "U kunt deze factuur | niet terugvorderen U kunt deze facturen niet terugkrijgen",
|
||||
"confirm_delete": "Deze factuur wordt permanent verwijderd | Deze facturen worden permanent verwijderd",
|
||||
"created_message": "Factuur succesvol aangemaakt",
|
||||
"updated_message": "Factuur succesvol bijgewerkt",
|
||||
"deleted_message": "Factuur succesvol verwijderd | Facturen succesvol verwijderd",
|
||||
@ -429,11 +437,13 @@
|
||||
"view_payment": "Bekijk betaling",
|
||||
"add_new_payment": "Nieuwe betaling toevoegen",
|
||||
"send_payment_receipt": "Betaalbewijs verzenden",
|
||||
"send_payment": "Send Payment",
|
||||
"send_payment": "Verstuur betaling",
|
||||
"save_payment": "Betaling opslaan",
|
||||
"update_payment": "Betaling bijwerken",
|
||||
"payment": "Betaling | Betalingen",
|
||||
"no_payments": "Nog geen betalingen!",
|
||||
"not_selected": "Not selected",
|
||||
"no_invoice": "No invoice",
|
||||
"no_matching_payments": "Er zijn geen overeenkomende betalingen!",
|
||||
"list_of_payments": "Hier vind je jouw betalingen terug.",
|
||||
"select_payment_mode": "Selecteer betalingswijze",
|
||||
@ -442,7 +452,7 @@
|
||||
"send_payment_successfully": "Betaling succesvol verzonden",
|
||||
"user_email_does_not_exist": "E-mailadres van gebruiker bestaat niet",
|
||||
"something_went_wrong": "Er is iets fout gegaan",
|
||||
"confirm_delete": "U kunt deze betaling niet herstellen U kunt deze betalingen niet terugkrijgen",
|
||||
"confirm_delete": "Deze betaling wordt permanent verwijderd | Deze betalingen worden permanent verwijderd",
|
||||
"created_message": "De betaling is succesvol aangemaakt",
|
||||
"updated_message": "Betaling succesvol bijgewerkt",
|
||||
"deleted_message": "Betaling succesvol verwijderd | Betalingen zijn verwijderd",
|
||||
@ -463,6 +473,7 @@
|
||||
"receipt": "Bon",
|
||||
"amount": "Bedrag",
|
||||
"action": "Actie",
|
||||
"not_selected": "Not selected",
|
||||
"note": "Notitie",
|
||||
"category_id": "Categorie ID",
|
||||
"date": "Uitgavendatum",
|
||||
@ -476,7 +487,7 @@
|
||||
"expense": "Uitgaven | Uitgaven",
|
||||
"no_expenses": "Nog geen kosten!",
|
||||
"list_of_expenses": "Hier vind je jouw uitgaven terug.",
|
||||
"confirm_delete": "U kunt deze kosten | niet terugkrijgen U kunt deze kosten niet terugvorderen",
|
||||
"confirm_delete": "Deze uitgave wordt permanent verwijderd | Deze kosten worden permanent verwijderd",
|
||||
"created_message": "Kosten succesvol gemaakt",
|
||||
"updated_message": "Kosten succesvol bijgewerkt",
|
||||
"deleted_message": "Kosten succesvol verwijderd | Uitgaven zijn verwijderd",
|
||||
@ -508,36 +519,36 @@
|
||||
"login_placeholder": "mail@voorbeeld.co"
|
||||
},
|
||||
"users": {
|
||||
"title": "Users",
|
||||
"users_list": "Users List",
|
||||
"title": "Gebruikers",
|
||||
"users_list": "Gebruikerslijst",
|
||||
"name": "Naam",
|
||||
"description": "Omschrijving",
|
||||
"added_on": "Toegevoegd",
|
||||
"date_of_creation": "Datum van creatie",
|
||||
"action": "Actie",
|
||||
"add_user": "Add User",
|
||||
"save_user": "Save User",
|
||||
"update_user": "Update User",
|
||||
"user": "User | Users",
|
||||
"add_new_user": "Add New User",
|
||||
"new_user": "New User",
|
||||
"edit_user": "Edit User",
|
||||
"no_users": "No users yet!",
|
||||
"list_of_users": "This section will contain the list of users.",
|
||||
"add_user": "Gebruiker toevoegen",
|
||||
"save_user": "Gebruiker opslaan",
|
||||
"update_user": "Gebruiker bijwerken",
|
||||
"user": "Gebruiker | Gebruikers",
|
||||
"add_new_user": "Nieuwe gebruiker toevoegen",
|
||||
"new_user": "Nieuwe gebruiker",
|
||||
"edit_user": "Gebruiker bewerken",
|
||||
"no_users": "Nog geen gebruikers!",
|
||||
"list_of_users": "Deze sectie zal de lijst met gebruikers bevatten.",
|
||||
"email": "E-mail",
|
||||
"phone": "Telefoon",
|
||||
"password": "Wachtwoord",
|
||||
"user_attached_message": "Kan een item dat al in gebruik is niet verwijderen",
|
||||
"confirm_delete": "You will not be able to recover this User | You will not be able to recover these Users",
|
||||
"created_message": "User created successfully",
|
||||
"updated_message": "User updated successfully",
|
||||
"deleted_message": "User deleted successfully | User deleted successfully"
|
||||
"confirm_delete": "Je kunt deze gebruiker later niet herstellen | Je kunt deze gebruikers later niet herstellen",
|
||||
"created_message": "Gebruiker succesvol aangemaakt",
|
||||
"updated_message": "Gebruiker met succes bijgewerkt",
|
||||
"deleted_message": "Gebruiker succesvol verwijderd | Gebruikers succesvol verwijderd"
|
||||
},
|
||||
"reports": {
|
||||
"title": "Verslag doen van",
|
||||
"from_date": "Van datum",
|
||||
"to_date": "Tot datum",
|
||||
"status": "Statu",
|
||||
"status": "Status",
|
||||
"paid": "Betaald",
|
||||
"unpaid": "Onbetaald",
|
||||
"download_pdf": "Download PDF",
|
||||
@ -572,17 +583,17 @@
|
||||
"due_date": "Opleveringsdatum",
|
||||
"amount": "Bedrag",
|
||||
"contact_name": "Contactnaam",
|
||||
"status": "Statu"
|
||||
"status": "Status"
|
||||
},
|
||||
"estimates": {
|
||||
"estimate": "Offerte",
|
||||
"estimate_date": "Geschatte datum",
|
||||
"estimate_date": "Offerte Datum",
|
||||
"due_date": "Opleveringsdatum",
|
||||
"estimate_number": "Geschat aantal",
|
||||
"estimate_number": "Offerte nummer",
|
||||
"ref_number": "Referentie nummer",
|
||||
"amount": "Bedrag",
|
||||
"contact_name": "Contactnaam",
|
||||
"status": "Statu"
|
||||
"status": "Status"
|
||||
},
|
||||
"expenses": {
|
||||
"expenses": "Uitgaven",
|
||||
@ -604,10 +615,10 @@
|
||||
"tax_types": "Belastingtypen",
|
||||
"expense_category": "Onkostencategorieën",
|
||||
"update_app": "App bijwerken",
|
||||
"backup": "Backup",
|
||||
"file_disk": "File Disk",
|
||||
"custom_fields": "Custom Fields",
|
||||
"payment_modes": "Payment Modes",
|
||||
"backup": "Back-up",
|
||||
"file_disk": "Bestandsopslag",
|
||||
"custom_fields": "Aangepaste velden",
|
||||
"payment_modes": "Betaalmethodes",
|
||||
"notes": "Opmerkingen"
|
||||
},
|
||||
"title": "Instellingen",
|
||||
@ -636,7 +647,7 @@
|
||||
"add_currency": "Valuta toevoegen"
|
||||
},
|
||||
"mail": {
|
||||
"host": "Mail Host",
|
||||
"host": "Mail host",
|
||||
"port": "Mail Port",
|
||||
"driver": "Mail-stuurprogramma",
|
||||
"secret": "Geheim",
|
||||
@ -668,45 +679,45 @@
|
||||
"state": "Provincie",
|
||||
"city": "Stad",
|
||||
"address": "Adres",
|
||||
"zip": "Zip",
|
||||
"zip": "Postcode",
|
||||
"save": "Opslaan",
|
||||
"updated_message": "Bedrijfsinformatie succesvol bijgewerkt"
|
||||
},
|
||||
"custom_fields": {
|
||||
"title": "Custom Fields",
|
||||
"section_description": "Customize your Invoices, Estimates & Payment Receipts with your own fields. Make sure to use the below added fields on the address formats on Customization settings page.",
|
||||
"add_custom_field": "Add Custom Field",
|
||||
"edit_custom_field": "Edit Custom Field",
|
||||
"field_name": "Field Name",
|
||||
"title": "Aangepaste velden",
|
||||
"section_description": "Uw facturen, offertes & betalingsbewijzen aanpassen met uw eigen velden. Gebruik onderstaande velden op het adres format op de Customization instellings pagina.",
|
||||
"add_custom_field": "Extra veld toevoegen",
|
||||
"edit_custom_field": "Veld wijzigen",
|
||||
"field_name": "Veld naam",
|
||||
"label": "Label",
|
||||
"type": "Type",
|
||||
"name": "Naam",
|
||||
"required": "Required",
|
||||
"placeholder": "Placeholder",
|
||||
"help_text": "Help Text",
|
||||
"default_value": "Default Value",
|
||||
"prefix": "Prefix",
|
||||
"required": "Verplicht",
|
||||
"placeholder": "Tijdelijke plaatshouder",
|
||||
"help_text": "Hulp Text",
|
||||
"default_value": "Standaard waarde",
|
||||
"prefix": "Voorvoegsel",
|
||||
"starting_number": "Starting Number",
|
||||
"model": "Model",
|
||||
"help_text_description": "Enter some text to help users understand the purpose of this custom field.",
|
||||
"suffix": "Suffix",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"order": "Order",
|
||||
"custom_field_confirm_delete": "You will not be able to recover this Custom Field",
|
||||
"already_in_use": "Custom Field is already in use",
|
||||
"deleted_message": "Custom Field deleted successfully",
|
||||
"options": "options",
|
||||
"add_option": "Add Options",
|
||||
"add_another_option": "Add another option",
|
||||
"sort_in_alphabetical_order": "Sort in Alphabetical Order",
|
||||
"add_options_in_bulk": "Add options in bulk",
|
||||
"use_predefined_options": "Use Predefined Options",
|
||||
"select_custom_date": "Select Custom Date",
|
||||
"select_relative_date": "Select Relative Date",
|
||||
"ticked_by_default": "Ticked by default",
|
||||
"updated_message": "Custom Field updated successfully",
|
||||
"added_message": "Custom Field added successfully"
|
||||
"help_text_description": "Voer tekst in om gebruikers te helpen het doel van dit aangepaste veld te begrijpen.",
|
||||
"suffix": "Achtervoegsel",
|
||||
"yes": "Ja",
|
||||
"no": "Nee",
|
||||
"order": "Volgorde",
|
||||
"custom_field_confirm_delete": "U kunt dit veld niet herstellen",
|
||||
"already_in_use": "Aangepast veld is al in gebruik",
|
||||
"deleted_message": "Aangepast veld is succesvol verwijderd",
|
||||
"options": "opties",
|
||||
"add_option": "Optie toevoegen",
|
||||
"add_another_option": "Nog een optie toevoegen",
|
||||
"sort_in_alphabetical_order": "Sorteer op alfabetische volgorde",
|
||||
"add_options_in_bulk": "Voeg opties toe in bulk",
|
||||
"use_predefined_options": "Gebruik voorgedefinieerde opties",
|
||||
"select_custom_date": "Selecteer een aangepaste datum",
|
||||
"select_relative_date": "Selecteer relatieve datum",
|
||||
"ticked_by_default": "Standaard aangevinkt",
|
||||
"updated_message": "Aangepast veld is succesvol aangepast",
|
||||
"added_message": "Aangepast veld is succesvol toegevoegd"
|
||||
},
|
||||
"customization": {
|
||||
"customization": "aanpassen",
|
||||
@ -740,41 +751,50 @@
|
||||
"title": "Facturen",
|
||||
"notes": "Opmerkingen",
|
||||
"invoice_prefix": "Factuurvoorvoegsel",
|
||||
"default_invoice_email_body": "Default Invoice Email Body",
|
||||
"invoice_number_length": "Invoice number length",
|
||||
"default_invoice_email_body": "Standaard factuur email text",
|
||||
"invoice_settings": "Factuurinstellingen",
|
||||
"autogenerate_invoice_number": "Factuurnummer automatisch genereren",
|
||||
"invoice_setting_description": "Schakel dit uit als u niet automatisch factuurnummers wilt genereren telkens wanneer u een nieuwe factuur maakt.",
|
||||
"invoice_email_attachment": "Send invoices as attachments",
|
||||
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_invoice_prefix": "Voer het factuurvoorvoegsel in",
|
||||
"terms_and_conditions": "Voorwaarden",
|
||||
"company_address_format": "Company Address Format",
|
||||
"shipping_address_format": "Shipping Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"company_address_format": "Bedrijfsadres format",
|
||||
"shipping_address_format": "Verzendadres format",
|
||||
"billing_address_format": "Factuuradres format",
|
||||
"invoice_setting_updated": "Factuurinstelling succesvol bijgewerkt"
|
||||
},
|
||||
"estimates": {
|
||||
"title": "Offertes",
|
||||
"estimate_prefix": "Voorvoegsel schatten",
|
||||
"default_estimate_email_body": "Default Estimate Email Body",
|
||||
"estimate_number_length": "Estimate number length",
|
||||
"default_estimate_email_body": "Standaard offerte email text",
|
||||
"estimate_settings": "Instellingen schatten",
|
||||
"autogenerate_estimate_number": "Automatisch geschat nummer genereren",
|
||||
"estimate_setting_description": "Schakel dit uit als u niet automatisch offertesaantallen wilt genereren telkens wanneer u een nieuwe offerte maakt.",
|
||||
"estimate_email_attachment": "Send estimates as attachments",
|
||||
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_estimate_prefix": "Voer het prefixnummer in",
|
||||
"estimate_setting_updated": "Instelling Offerte succesvol bijgewerkt",
|
||||
"company_address_format": "Company Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"shipping_address_format": "Shipping Address Format"
|
||||
"company_address_format": "Bedrijfsadres format",
|
||||
"billing_address_format": "Factuuradres Format",
|
||||
"shipping_address_format": "Verzendadres format"
|
||||
},
|
||||
"payments": {
|
||||
"title": "Betalingen",
|
||||
"description": "Modes of transaction for payments",
|
||||
"description": "Manieren om te betalen",
|
||||
"payment_prefix": "Betalingsvoorvoegsel",
|
||||
"default_payment_email_body": "Default Payment Email Body",
|
||||
"payment_number_length": "Payment number lenght",
|
||||
"default_payment_email_body": "Standaard format betalingsmail",
|
||||
"payment_settings": "Betalingsinstellingen",
|
||||
"autogenerate_payment_number": "Betalingsnummer automatisch genereren",
|
||||
"payment_setting_description": "Schakel dit uit als u niet elke keer dat u een nieuwe betaling aanmaakt, automatisch betalingsnummers wilt genereren.",
|
||||
"payment_email_attachment": "Send payments as attachments",
|
||||
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_payment_prefix": "Voer het betalingsvoorvoegsel in",
|
||||
"payment_setting_updated": "Betalingsinstelling geüpdatet",
|
||||
"payment_modes": "Payment Modes",
|
||||
"payment_modes": "Betaalmethodes",
|
||||
"add_payment_mode": "Betaalmodus toevoegen",
|
||||
"edit_payment_mode": "Betaalmodus bewerken",
|
||||
"mode_name": "Mode naam",
|
||||
@ -783,8 +803,8 @@
|
||||
"payment_mode_confirm_delete": "U kunt deze betalingsmodus niet herstellen",
|
||||
"already_in_use": "De betalingsmodus is al in gebruik",
|
||||
"deleted_message": "Betaalwijze succesvol verwijderd",
|
||||
"company_address_format": "Company Address Format",
|
||||
"from_customer_address_format": "From Customer Address Format"
|
||||
"company_address_format": "Bedrijfsadres format",
|
||||
"from_customer_address_format": "Van klant adres formaat"
|
||||
},
|
||||
"items": {
|
||||
"title": "Artikelen",
|
||||
@ -800,18 +820,18 @@
|
||||
},
|
||||
"notes": {
|
||||
"title": "Opmerkingen",
|
||||
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
|
||||
"description": "Bespaar tijd door notities te maken en ze opnieuw te gebruiken op uw facturen, ramingen en betalingen.",
|
||||
"notes": "Opmerkingen",
|
||||
"type": "Type",
|
||||
"add_note": "Add Note",
|
||||
"add_new_note": "Add New Note",
|
||||
"add_note": "Notitie toevoegen",
|
||||
"add_new_note": "Voeg een nieuwe notitie toe",
|
||||
"name": "Naam",
|
||||
"edit_note": "Edit Note",
|
||||
"note_added": "Note added successfully",
|
||||
"note_updated": "Note Updated successfully",
|
||||
"note_confirm_delete": "You will not be able to recover this Note",
|
||||
"already_in_use": "Note is already in use",
|
||||
"deleted_message": "Note deleted successfully"
|
||||
"edit_note": "Notitie bewerken",
|
||||
"note_added": "Notitie toegevoegd",
|
||||
"note_updated": "Notitie bijgewerkt",
|
||||
"note_confirm_delete": "U kunt deze notitie niet terughalen",
|
||||
"already_in_use": "Notitie is reeds in gebruik",
|
||||
"deleted_message": "Notitie verwijderd"
|
||||
}
|
||||
},
|
||||
"account_settings": {
|
||||
@ -859,7 +879,7 @@
|
||||
"created_message": "Belastingtype is gemaakt",
|
||||
"updated_message": "Belastingtype succesvol bijgewerkt",
|
||||
"deleted_message": "Belastingtype succesvol verwijderd",
|
||||
"confirm_delete": "U kunt dit belastingtype niet terugkrijgen",
|
||||
"confirm_delete": "Dit belastingtype wordt permanent verwijderd",
|
||||
"already_in_use": "Belasting al in gebruik"
|
||||
},
|
||||
"expense_category": {
|
||||
@ -879,7 +899,7 @@
|
||||
},
|
||||
"preferences": {
|
||||
"currency": "Valuta",
|
||||
"default_language": "Default Language",
|
||||
"default_language": "Standaard taal",
|
||||
"time_zone": "Tijdzone",
|
||||
"fiscal_year": "Financieel jaar",
|
||||
"date_format": "Datumnotatie",
|
||||
@ -892,7 +912,7 @@
|
||||
"updated_message": "Voorkeuren succesvol bijgewerkt",
|
||||
"select_language": "Selecteer taal",
|
||||
"select_time_zone": "Selecteer Tijdzone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_date_format": "Selecteer datum/tijdindeling",
|
||||
"select_financial_year": "Selecteer financieel ja"
|
||||
},
|
||||
"update_app": {
|
||||
@ -901,7 +921,7 @@
|
||||
"check_update": "Controleer op updates",
|
||||
"avail_update": "Nieuwe update beschikbaar",
|
||||
"next_version": "Volgende versie",
|
||||
"requirements": "Requirements",
|
||||
"requirements": "Vereisten",
|
||||
"update": "Nu updaten",
|
||||
"update_progress": "Update wordt uitgevoerd...",
|
||||
"progress_text": "Het duurt maar een paar minuten. Vernieuw het scherm niet en sluit het venster niet voordat de update is voltooid",
|
||||
@ -911,6 +931,7 @@
|
||||
"download_zip_file": "Download ZIP-bestand",
|
||||
"unzipping_package": "Pakket uitpakken",
|
||||
"copying_files": "Bestanden kopiëren",
|
||||
"deleting_files": "Deleting Unused files",
|
||||
"running_migrations": "Migraties uitvoeren",
|
||||
"finishing_update": "Afwerking Update",
|
||||
"update_failed": "Update mislukt",
|
||||
@ -918,56 +939,56 @@
|
||||
},
|
||||
"backup": {
|
||||
"title": "Backup | Backups",
|
||||
"description": "The backup is a zipfile that contains all files in the directories you specify along with a dump of your database",
|
||||
"new_backup": "Add New Backup",
|
||||
"create_backup": "Create Backup",
|
||||
"select_backup_type": "Select Backup Type",
|
||||
"backup_confirm_delete": "You will not be able to recover this Backup",
|
||||
"path": "path",
|
||||
"new_disk": "New Disk",
|
||||
"created_at": "created at",
|
||||
"size": "size",
|
||||
"description": "De back-up is een zipfile met alle bestanden in de mappen die je opgeeft samen met een dump van je database",
|
||||
"new_backup": "Nieuwe back-up",
|
||||
"create_backup": "Backup maken",
|
||||
"select_backup_type": "Backup-type selecteren",
|
||||
"backup_confirm_delete": "U kunt deze back-up niet terughalen",
|
||||
"path": "pad",
|
||||
"new_disk": "Nieuwe schijf",
|
||||
"created_at": "aangemaakt op",
|
||||
"size": "grootte",
|
||||
"dropbox": "dropbox",
|
||||
"local": "local",
|
||||
"healthy": "healthy",
|
||||
"amount_of_backups": "amount of backups",
|
||||
"newest_backups": "newest backups",
|
||||
"used_storage": "used storage",
|
||||
"select_disk": "Select Disk",
|
||||
"local": "lokaal",
|
||||
"healthy": "gezond",
|
||||
"amount_of_backups": "aantal back-ups",
|
||||
"newest_backups": "nieuwste back-ups",
|
||||
"used_storage": "gebruikte opslag",
|
||||
"select_disk": "Selecteer Disk",
|
||||
"action": "Actie",
|
||||
"deleted_message": "Backup deleted successfully",
|
||||
"created_message": "Backup created successfully",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"deleted_message": "Back-up is succesvol verwijderd",
|
||||
"created_message": "Back-up successvol gemaakt",
|
||||
"invalid_disk_credentials": "Ongeldige inloggegevens voor geselecteerde schijf"
|
||||
},
|
||||
"disk": {
|
||||
"title": "File Disk | File Disks",
|
||||
"description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.",
|
||||
"created_at": "created at",
|
||||
"title": "Bestandsschijf | Bestandsschijven",
|
||||
"description": "Standaard gebruikt Crater uw lokale schijf om back-ups, avatars en andere afbeeldingen op te slaan. U kunt indien gewenst meer dan één opslaglocatie configureren zoals DigitalOcean, S3 en Dropbox.",
|
||||
"created_at": "aangemaakt op",
|
||||
"dropbox": "dropbox",
|
||||
"name": "Naam",
|
||||
"driver": "Driver",
|
||||
"driver": "Stuurprogramma",
|
||||
"disk_type": "Type",
|
||||
"disk_name": "Disk Name",
|
||||
"new_disk": "Add New Disk",
|
||||
"filesystem_driver": "Filesystem Driver",
|
||||
"local_driver": "local Driver",
|
||||
"disk_name": "Naam van de schijf",
|
||||
"new_disk": "Nieuwe schijf toevoegen",
|
||||
"filesystem_driver": "Bestandssysteem locatie",
|
||||
"local_driver": "lokaal besturingsprogramma",
|
||||
"local_root": "local Root",
|
||||
"public_driver": "Public Driver",
|
||||
"public_driver": "Publiek besturingsprogramma",
|
||||
"public_root": "Public Root",
|
||||
"public_url": "Public URL",
|
||||
"public_visibility": "Public Visibility",
|
||||
"media_driver": "Media Driver",
|
||||
"public_url": "Publieke URL",
|
||||
"public_visibility": "Publieke zichtbaarheid",
|
||||
"media_driver": "Media stuurprogramma",
|
||||
"media_root": "Media Root",
|
||||
"aws_driver": "AWS Driver",
|
||||
"aws_key": "AWS Key",
|
||||
"aws_driver": "AWS Stuurprogramma",
|
||||
"aws_key": "AWS Sleutel",
|
||||
"aws_secret": "AWS Secret",
|
||||
"aws_region": "AWS Region",
|
||||
"aws_region": "AWS Regio",
|
||||
"aws_bucket": "AWS Bucket",
|
||||
"aws_root": "AWS Root",
|
||||
"do_spaces_type": "Do Spaces type",
|
||||
"do_spaces_key": "Do Spaces key",
|
||||
"do_spaces_key": "Do Spaces Key",
|
||||
"do_spaces_secret": "Do Spaces Secret",
|
||||
"do_spaces_region": "Do Spaces Region",
|
||||
"do_spaces_region": "Do Spaces Regio",
|
||||
"do_spaces_bucket": "Do Spaces Bucket",
|
||||
"do_spaces_endpoint": "Do Spaces Endpoint",
|
||||
"do_spaces_root": "Do Spaces Root",
|
||||
@ -977,25 +998,25 @@
|
||||
"dropbox_secret": "Dropbox Secret",
|
||||
"dropbox_app": "Dropbox App",
|
||||
"dropbox_root": "Dropbox Root",
|
||||
"default_driver": "Default Driver",
|
||||
"is_default": "IS DEFAULT",
|
||||
"set_default_disk": "Set Default Disk",
|
||||
"default_driver": "Standaard stuurprogramma",
|
||||
"is_default": "IS STANDAARD",
|
||||
"set_default_disk": "Standaardschijf instellen",
|
||||
"set_default_disk_confirm": "This disk will be set as default and all the new PDFs will be saved on this disk",
|
||||
"success_set_default_disk": "Disk set as default successfully",
|
||||
"save_pdf_to_disk": "Save PDFs to Disk",
|
||||
"disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.",
|
||||
"select_disk": "Select Disk",
|
||||
"disk_settings": "Disk Settings",
|
||||
"confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater",
|
||||
"success_set_default_disk": "Standaardschijf ingesteld",
|
||||
"save_pdf_to_disk": "PDF's opslaan op schijf",
|
||||
"disk_setting_description": " Schakel dit in als je een kopie van elke factuur, raming en betalingsbewijs automatisch op je standaard schijf wilt opslaan. Het inschakelen van deze optie zal de laadtijd verminderen wanneer de PDF's worden bekeken.",
|
||||
"select_disk": "Selecteer Schijf",
|
||||
"disk_settings": "Schijfinstellingen",
|
||||
"confirm_delete": "Uw bestaande bestanden en mappen in de opgegeven schijf worden niet beïnvloed, maar uw schijfconfiguratie wordt uit Crater verwijderd",
|
||||
"action": "Actie",
|
||||
"edit_file_disk": "Edit File Disk",
|
||||
"success_create": "Disk added successfully",
|
||||
"success_update": "Disk updated successfully",
|
||||
"error": "Disk addition failed",
|
||||
"deleted_message": "File Disk deleted successfully",
|
||||
"disk_variables_save_successfully": "Disk Configured Successfully",
|
||||
"disk_variables_save_error": "Disk configuration failed.",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"edit_file_disk": "Bestandsschijf bewerken",
|
||||
"success_create": "Schijf toegevoegd",
|
||||
"success_update": "Schijf bijgewerkt",
|
||||
"error": "Schijf niet toegevoegd",
|
||||
"deleted_message": "Bestandsschijf verwijderd",
|
||||
"disk_variables_save_successfully": "Schijf geconfigureerd",
|
||||
"disk_variables_save_error": "Schijfconfiguratie mislukt.",
|
||||
"invalid_disk_credentials": "Ongeldige inloggegevens voor geselecteerde schijf"
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@ -1034,14 +1055,14 @@
|
||||
"database": {
|
||||
"database": "Site-URL en database",
|
||||
"connection": "Database verbinding",
|
||||
"host": "Database Host",
|
||||
"host": "Database host",
|
||||
"port": "Databasepoort",
|
||||
"password": "Database wachtwoord",
|
||||
"app_url": "App-URL",
|
||||
"app_domain": "App Domain",
|
||||
"app_domain": "App Domein",
|
||||
"username": "Database gebruikersnaam",
|
||||
"db_name": "Database naam",
|
||||
"db_path": "Database Path",
|
||||
"db_path": "Databankpad",
|
||||
"desc": "Maak een database op uw server en stel de referenties in via het onderstaande formulier."
|
||||
},
|
||||
"permissions": {
|
||||
@ -1051,8 +1072,8 @@
|
||||
"permission_desc": "Hieronder vindt u de lijst met mapmachtigingen die vereist zijn om de app te laten werken. Als de machtigingscontrole mislukt, moet u de mapmachtigingen bijwerken."
|
||||
},
|
||||
"mail": {
|
||||
"host": "Mail Host",
|
||||
"port": "Mail Port",
|
||||
"host": "E-mail server",
|
||||
"port": "E-mail Poort",
|
||||
"driver": "Mail-stuurprogramma",
|
||||
"secret": "Geheim",
|
||||
"mailgun_secret": "Mailgun Secret",
|
||||
@ -1095,7 +1116,7 @@
|
||||
"invoices_and_estimates": "facturen en offertes met de mogelijkheid om meerdere sjablonen te kiezen."
|
||||
},
|
||||
"validation": {
|
||||
"invalid_phone": "Invalid Phone Number",
|
||||
"invalid_phone": "Ongeldig Telefoonnummer",
|
||||
"invalid_url": "Ongeldige URL (bijvoorbeeld: http://www.crater.com))",
|
||||
"invalid_domain_url": "Ongeldige URL (bijvoorbeeld: crater.com))",
|
||||
"required": "Veld is verplicht",
|
||||
@ -1130,42 +1151,47 @@
|
||||
"address_maxlength": "Adres mag niet groter zijn dan 255 tekens.",
|
||||
"ref_number_maxlength": "Ref-nummer mag niet groter zijn dan 255 tekens.",
|
||||
"prefix_maxlength": "Het voorvoegsel mag niet meer dan 5 tekens bevatten.",
|
||||
"something_went_wrong": "Er is iets fout gegaan"
|
||||
"something_went_wrong": "Er is iets fout gegaan",
|
||||
"number_length_minvalue": "Number lenght should be greater than 0"
|
||||
},
|
||||
"pdf_estimate_label": "Offerte",
|
||||
"pdf_estimate_number": "Geschat aantal",
|
||||
"pdf_estimate_date": "Geschatte datum",
|
||||
"pdf_estimate_expire_date": "Expiry date",
|
||||
"pdf_estimate_number": "Offerte nummer",
|
||||
"pdf_estimate_date": "Offerte Datum",
|
||||
"pdf_estimate_expire_date": "Vervaldatum",
|
||||
"pdf_invoice_label": "Factuur",
|
||||
"pdf_invoice_number": "Factuurnummer",
|
||||
"pdf_invoice_date": "Factuur datum",
|
||||
"pdf_invoice_due_date": "Due date",
|
||||
"pdf_invoice_due_date": "Opleveringsdatum",
|
||||
"pdf_notes": "Opmerkingen",
|
||||
"pdf_items_label": "Artikelen",
|
||||
"pdf_quantity_label": "Aantal stuks",
|
||||
"pdf_price_label": "Prijs",
|
||||
"pdf_discount_label": "Korting",
|
||||
"pdf_amount_label": "Bedrag",
|
||||
"pdf_subtotal": "Subtotal",
|
||||
"pdf_subtotal": "Subtotaal",
|
||||
"pdf_total": "Totaal",
|
||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||
"pdf_payment_date": "Payment Date",
|
||||
"pdf_payment_label": "Payment",
|
||||
"pdf_payment_receipt_label": "Betalingsafschrift",
|
||||
"pdf_payment_date": "Betalingsdatum",
|
||||
"pdf_payment_number": "Betalingsnummer",
|
||||
"pdf_payment_mode": "Betaalmethode",
|
||||
"pdf_payment_amount_received_label": "Amount Received",
|
||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||
"pdf_income_label": "INCOME",
|
||||
"pdf_net_profit_label": "NET PROFIT",
|
||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||
"pdf_total_sales_label": "TOTAL SALES",
|
||||
"pdf_item_sales_label": "Sales Report: By Item",
|
||||
"pdf_tax_report_label": "TAX REPORT",
|
||||
"pdf_total_tax_label": "TOTAL TAX",
|
||||
"pdf_payment_amount_received_label": "Ontvangen bedrag",
|
||||
"pdf_expense_report_label": "UITGAVEN RAPPORT",
|
||||
"pdf_total_expenses_label": "TOTALE UITGAVEN",
|
||||
"pdf_profit_loss_label": "WINST & VERLIES RAPPORT",
|
||||
"pdf_sales_customers_label": "Sales Customer Report",
|
||||
"pdf_sales_items_label": "Sales Item Report",
|
||||
"pdf_tax_summery_label": "Tax Summary Report",
|
||||
"pdf_income_label": "INKOMEN",
|
||||
"pdf_net_profit_label": "NETTO WINST",
|
||||
"pdf_customer_sales_report": "Verkooprapport: per klant",
|
||||
"pdf_total_sales_label": "TOTALE VERKOPEN",
|
||||
"pdf_item_sales_label": "Verkooprapport: Per Item",
|
||||
"pdf_tax_report_label": "BELASTINGEN RAPPORT",
|
||||
"pdf_total_tax_label": "TOTALE BELASTINGEN",
|
||||
"pdf_tax_types_label": "Belastingtypen",
|
||||
"pdf_expenses_label": "Uitgaven",
|
||||
"pdf_bill_to": "Rekening naar,",
|
||||
"pdf_ship_to": "Verzend naar,",
|
||||
"pdf_received_from": "Received from:"
|
||||
"pdf_received_from": "Ontvangen van:"
|
||||
}
|
||||
|
||||
@ -158,6 +158,8 @@
|
||||
"copy_billing_address": "Cópia de faturamento",
|
||||
"no_customers": "Ainda não há clientes!",
|
||||
"no_customers_found": "Clientes não encontrados!",
|
||||
"no_contact": "No contact",
|
||||
"no_contact_name": "No contact name",
|
||||
"list_of_customers": "Esta seção conterá a lista de clientes.",
|
||||
"primary_display_name": "Nome de exibição principal",
|
||||
"select_currency": "Selecione o tipo de moeda",
|
||||
@ -181,6 +183,7 @@
|
||||
"added_on": "Adicionado",
|
||||
"price": "Preço",
|
||||
"date_of_creation": "Data de criação",
|
||||
"not_selected": "No item selected",
|
||||
"action": "Ação",
|
||||
"add_item": "Adicionar item",
|
||||
"save_item": "Salvar item",
|
||||
@ -250,6 +253,7 @@
|
||||
"required": "Campo obrigatório"
|
||||
},
|
||||
"accepted": "Aceito",
|
||||
"rejected": "Rejected",
|
||||
"sent": "Enviado",
|
||||
"draft": "Rascunho",
|
||||
"declined": "Rejeitado",
|
||||
@ -296,6 +300,9 @@
|
||||
"all": "Todas",
|
||||
"paid": "Paga",
|
||||
"unpaid": "Não Paga",
|
||||
"viewed": "Viewed",
|
||||
"overdue": "Overdue",
|
||||
"completed": "Completed",
|
||||
"customer": "CLIENTE",
|
||||
"paid_status": "STATUS PAGAMENTO",
|
||||
"ref_no": "REFERÊNCIA",
|
||||
@ -413,6 +420,8 @@
|
||||
"update_payment": "Atualizar Pagamento",
|
||||
"payment": "Pagamento | Pagamentos",
|
||||
"no_payments": "Ainda sem pagamentos!",
|
||||
"not_selected": "Not selected",
|
||||
"no_invoice": "No invoice",
|
||||
"no_matching_payments": "Não há pagamentos correspondentes!",
|
||||
"list_of_payments": "Esta seção conterá a lista de pagamentos.",
|
||||
"select_payment_mode": "Selecione a forma de pagamento",
|
||||
@ -436,6 +445,7 @@
|
||||
"receipt": "Receita",
|
||||
"amount": "Montante",
|
||||
"action": "Ação",
|
||||
"not_selected": "Not selected",
|
||||
"note": "Observação",
|
||||
"category_id": "Categoria",
|
||||
"date": "Data da Despesa",
|
||||
|
||||
@ -10,15 +10,15 @@
|
||||
"reports": "Relatórios",
|
||||
"settings": "Configurações",
|
||||
"logout": "Encerrar sessão",
|
||||
"users": "Users"
|
||||
"users": "Usuários"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "Add Company",
|
||||
"add_company": "Adicionar Empresa",
|
||||
"view_pdf": "Ver PDF",
|
||||
"copy_pdf_url": "Copy PDF Url",
|
||||
"copy_pdf_url": "Copiar URL do PDF",
|
||||
"download_pdf": "Baixar PDF",
|
||||
"save": "Salvar",
|
||||
"create": "Create",
|
||||
"create": "Criar",
|
||||
"cancel": "Cancelar",
|
||||
"update": "Atualizar",
|
||||
"deselect": "Desmarcar",
|
||||
@ -33,10 +33,10 @@
|
||||
"subject": "Sujeita",
|
||||
"body": "Corpo",
|
||||
"message": "Mensagem",
|
||||
"send": "Send",
|
||||
"send": "Enviar",
|
||||
"go_back": "Voltar",
|
||||
"back_to_login": "Voltar ao Login",
|
||||
"home": "Home",
|
||||
"back_to_login": "Voltar ao Login?",
|
||||
"home": "Painel",
|
||||
"filter": "Filtrar",
|
||||
"delete": "Excluir",
|
||||
"edit": "Editar",
|
||||
@ -59,7 +59,7 @@
|
||||
"sent": "Enviado",
|
||||
"all": "Todos",
|
||||
"select_all": "Selecionar tudo",
|
||||
"choose_file": "Escolha um arquivo.",
|
||||
"choose_file": "Clique aqui para escolher um arquivo",
|
||||
"choose_template": "Escolha um modelo",
|
||||
"choose": "Escolher",
|
||||
"remove": "Excluir",
|
||||
@ -84,14 +84,15 @@
|
||||
"street_2": "Rua # 2",
|
||||
"action_failed": "Ação: Falhou",
|
||||
"retry": "Atualização falhou",
|
||||
"choose_note": "Choose Note",
|
||||
"no_note_found": "No Note Found",
|
||||
"insert_note": "Insert Note"
|
||||
"choose_note": "Escolher Nota",
|
||||
"no_note_found": "Nenhuma Nota Encontrada",
|
||||
"insert_note": "Inserir Nota",
|
||||
"copied_pdf_url_clipboard": "Copied PDF url to clipboard!"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Selecione Ano",
|
||||
"cards": {
|
||||
"due_amount": "Montante devido",
|
||||
"due_amount": "Valor devido",
|
||||
"customers": "Clientes",
|
||||
"invoices": "Faturas",
|
||||
"estimates": "Orçamentos"
|
||||
@ -111,7 +112,7 @@
|
||||
},
|
||||
"recent_invoices_card": {
|
||||
"title": "Faturas vencidas",
|
||||
"due_on": "vencido em",
|
||||
"due_on": "Vencido em",
|
||||
"customer": "Cliente",
|
||||
"amount_due": "Valor Devido",
|
||||
"actions": "Ações",
|
||||
@ -130,21 +131,21 @@
|
||||
"name": "Nome",
|
||||
"description": "Descrição",
|
||||
"percent": "Porcentagem",
|
||||
"compound_tax": "Imposto compuesto"
|
||||
"compound_tax": "Imposto Composto"
|
||||
},
|
||||
"global_search": {
|
||||
"search": "Search...",
|
||||
"search": "Buscar...",
|
||||
"customers": "Clientes",
|
||||
"users": "Users",
|
||||
"no_results_found": "No Results Found"
|
||||
"users": "Usuários",
|
||||
"no_results_found": "Nenhum Resultado Encontrado"
|
||||
},
|
||||
"customers": {
|
||||
"title": "Clientes",
|
||||
"add_customer": "Adicionar cliente",
|
||||
"contacts_list": "Lista de clientes",
|
||||
"name": "Nome",
|
||||
"mail": "Mail | Mails",
|
||||
"statement": "Statement",
|
||||
"mail": "Email | Emails",
|
||||
"statement": "Declaração",
|
||||
"display_name": "Nome de exibição",
|
||||
"primary_contact_name": "Nome do contato principal",
|
||||
"contact_name": "Nome de Contato",
|
||||
@ -153,13 +154,13 @@
|
||||
"address": "Endereço",
|
||||
"phone": "Telefone",
|
||||
"website": "Site",
|
||||
"overview": "Overview",
|
||||
"enable_portal": "Enable Portal",
|
||||
"overview": "Visão Geral",
|
||||
"enable_portal": "Habilitar Portal",
|
||||
"country": "Pais",
|
||||
"state": "Estado",
|
||||
"city": "Cidade",
|
||||
"zip_code": "Código postal",
|
||||
"added_on": "Adicionado",
|
||||
"zip_code": "CEP",
|
||||
"added_on": "Adicionado em",
|
||||
"action": "Ação",
|
||||
"password": "Senha",
|
||||
"street_number": "Número",
|
||||
@ -169,14 +170,16 @@
|
||||
"save_customer": "Salvar cliente",
|
||||
"update_customer": "Atualizar cliente",
|
||||
"customer": "Cliente | Clientes",
|
||||
"new_customer": "Novo cliente",
|
||||
"edit_customer": "Editar cliente",
|
||||
"basic_info": "Informação basica",
|
||||
"new_customer": "Novo Cliente",
|
||||
"edit_customer": "Editar Cliente",
|
||||
"basic_info": "Informação Básica",
|
||||
"billing_address": "Endereço de cobrança",
|
||||
"shipping_address": "Endereço de entrega",
|
||||
"copy_billing_address": "Cópia de faturamento",
|
||||
"copy_billing_address": "Copiar Endereço de Faturamento",
|
||||
"no_customers": "Ainda não há clientes!",
|
||||
"no_customers_found": "Clientes não encontrados!",
|
||||
"no_contact": "No contact",
|
||||
"no_contact_name": "No contact name",
|
||||
"list_of_customers": "Esta seção conterá a lista de clientes.",
|
||||
"primary_display_name": "Nome de exibição principal",
|
||||
"select_currency": "Selecione o tipo de moeda",
|
||||
@ -186,7 +189,7 @@
|
||||
"no_matching_customers": "Não há clientes correspondentes!",
|
||||
"phone_number": "Número de telefone",
|
||||
"create_date": "Criar Data",
|
||||
"confirm_delete": "Você não poderá recuperar este cliente e todas as faturas, estimativas e pagamentos relacionados. | Você não poderá recuperar esses clientes e todas as faturas, estimativas e pagamentos relacionados.",
|
||||
"confirm_delete": "Você não poderá recuperar este cliente e todas as faturas, orçamentos e pagamentos relacionados. | Você não poderá recuperar esses clientes e todas as faturas, estimativas e pagamentos relacionados.",
|
||||
"created_message": "Cliente criado com sucesso",
|
||||
"updated_message": "Cliente atualizado com sucesso",
|
||||
"deleted_message": "Cliente excluído com sucesso | Clientes excluídos com sucesso"
|
||||
@ -200,6 +203,7 @@
|
||||
"added_on": "Adicionado",
|
||||
"price": "Preço",
|
||||
"date_of_creation": "Data de criação",
|
||||
"not_selected": "No item selected",
|
||||
"action": "Ação",
|
||||
"add_item": "Adicionar item",
|
||||
"save_item": "Salvar item",
|
||||
@ -208,11 +212,11 @@
|
||||
"add_new_item": "Adicionar novo item",
|
||||
"new_item": "Novo item",
|
||||
"edit_item": "Editar item",
|
||||
"no_items": "Ainda não existe itens",
|
||||
"no_items": "Ainda não existe itens!",
|
||||
"list_of_items": "Esta seção conterá a lista de itens.",
|
||||
"select_a_unit": "Seleciona unidade",
|
||||
"select_a_unit": "selecionar unidade",
|
||||
"taxes": "Impostos",
|
||||
"item_attached_message": "Não é possível excluir um item que já está em uso.",
|
||||
"item_attached_message": "Não é possível excluir um item que já está em uso",
|
||||
"confirm_delete": "Você não poderá recuperar este item | Você não poderá recuperar esses itens",
|
||||
"created_message": "Item criado com sucesso",
|
||||
"updated_message": "Item atualizado com sucesso",
|
||||
@ -222,9 +226,9 @@
|
||||
"title": "Orçamentos",
|
||||
"estimate": "Orçamento | Orçamentos",
|
||||
"estimates_list": "Lista de orçamentos",
|
||||
"days": "{dias} dias",
|
||||
"months": "{meses} Mês",
|
||||
"years": "{Anos} Ano",
|
||||
"days": "{days} Dias",
|
||||
"months": "{months} Mês",
|
||||
"years": "{years} Ano",
|
||||
"all": "Todos",
|
||||
"paid": "Pago",
|
||||
"unpaid": "Não pago",
|
||||
@ -245,7 +249,7 @@
|
||||
"expiry_date": "Data de expiração",
|
||||
"status": "Status",
|
||||
"add_tax": "Adicionar Imposto",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"action": "Ação",
|
||||
"notes": "Observações",
|
||||
"tax": "Imposto",
|
||||
@ -253,12 +257,12 @@
|
||||
"convert_to_invoice": "Converter em fatura",
|
||||
"mark_as_sent": "Marcar como enviado",
|
||||
"send_estimate": "Enviar orçamento",
|
||||
"resend_estimate": "Resend Estimate",
|
||||
"resend_estimate": "Reenviar Orçamento",
|
||||
"record_payment": "Registro de pago",
|
||||
"add_estimate": "Adicionar orçamento",
|
||||
"save_estimate": "Salvar Orçamento",
|
||||
"confirm_conversion": "Deseja converter este orçamento em uma fatura?",
|
||||
"conversion_message": "Converção realizada com sucesso",
|
||||
"confirm_conversion": "Esse orçamento será usado para criar uma nova Fatura.",
|
||||
"conversion_message": "Fatura criada com sucesso",
|
||||
"confirm_send_estimate": "Este orçamento será enviado por email ao cliente",
|
||||
"confirm_mark_as_sent": "Este orçamento será marcado como enviado",
|
||||
"confirm_mark_as_accepted": "Este orçamento será marcado como Aceito",
|
||||
@ -270,6 +274,7 @@
|
||||
"required": "Campo obrigatório"
|
||||
},
|
||||
"accepted": "Aceito",
|
||||
"rejected": "Rejected",
|
||||
"sent": "Enviado",
|
||||
"draft": "Rascunho",
|
||||
"declined": "Rejeitado",
|
||||
@ -277,10 +282,10 @@
|
||||
"add_new_estimate": "Adicionar novo orçamento",
|
||||
"update_Estimate": "Atualizar orçamento",
|
||||
"edit_estimate": "Editar orçamento",
|
||||
"items": "artículos",
|
||||
"items": "itens",
|
||||
"Estimate": "Orçamento | Orçamentos",
|
||||
"add_new_tax": "Adicionar novo imposto",
|
||||
"no_estimates": "Ainda não há orcamentos",
|
||||
"no_estimates": "Ainda não há orçamentos ainda!",
|
||||
"list_of_estimates": "Esta seção contém a lista de orçamentos.",
|
||||
"mark_as_rejected": "Marcar como rejeitado",
|
||||
"mark_as_accepted": "Marcar como aceito",
|
||||
@ -291,7 +296,7 @@
|
||||
"updated_message": "Orçamento atualizado com sucesso",
|
||||
"deleted_message": "Orçamento excluído com sucesso | Orçamentos excluídos com sucesso",
|
||||
"user_email_does_not_exist": "Email de usuário não existe",
|
||||
"something_went_wrong": "Algo deu errado",
|
||||
"something_went_wrong": "algo deu errado",
|
||||
"item": {
|
||||
"title": "Titulo do item",
|
||||
"description": "Descrição",
|
||||
@ -302,26 +307,29 @@
|
||||
"total_discount": "Desconto total",
|
||||
"sub_total": "Subtotal",
|
||||
"tax": "Imposto",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"select_an_item": "Escreva ou clique para selecionar um item",
|
||||
"type_item_description": "Tipo Item Descrição (opcional)"
|
||||
"type_item_description": "Descrição do Item (opcional)"
|
||||
}
|
||||
},
|
||||
"invoices": {
|
||||
"title": "Faturas",
|
||||
"invoices_list": "Lista de faturas",
|
||||
"days": "{dias} dias",
|
||||
"months": "{meses} Mês",
|
||||
"years": "{anos} Ano",
|
||||
"days": "{days} dias",
|
||||
"months": "{months} Mês",
|
||||
"years": "{years} Ano",
|
||||
"all": "Todas",
|
||||
"paid": "Paga",
|
||||
"unpaid": "Não Paga",
|
||||
"viewed": "Viewed",
|
||||
"overdue": "Overdue",
|
||||
"completed": "Completed",
|
||||
"customer": "CLIENTE",
|
||||
"paid_status": "STATUS PAGAMENTO",
|
||||
"ref_no": "REFERÊNCIA",
|
||||
"ref_no": "REF NO.",
|
||||
"number": "NÚMERO",
|
||||
"amount_due": "VALOR DEVIDO",
|
||||
"partially_paid": "Parcialmente pago",
|
||||
"partially_paid": "Parcialmente Pago",
|
||||
"total": "Total",
|
||||
"discount": "Desconto",
|
||||
"sub_total": "Subtotal",
|
||||
@ -329,17 +337,17 @@
|
||||
"invoice_number": "Número da fatura",
|
||||
"ref_number": "Referência",
|
||||
"contact": "Contato",
|
||||
"add_item": "Adicionar um item",
|
||||
"add_item": "Adicionar um Item",
|
||||
"date": "Data",
|
||||
"due_date": "Data de Vencimento",
|
||||
"status": "Status",
|
||||
"add_tax": "Adicionar imposto",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"action": "Ação",
|
||||
"notes": "Observações",
|
||||
"view": "Ver",
|
||||
"send_invoice": "Enviar Fatura",
|
||||
"resend_invoice": "Resend Invoice",
|
||||
"resend_invoice": "Reenviar Fatura",
|
||||
"invoice_template": "Modelo da Fatura",
|
||||
"template": "Modelo",
|
||||
"mark_as_sent": "Marcar como enviada",
|
||||
@ -372,20 +380,20 @@
|
||||
"discount": "Desconto",
|
||||
"total": "Total",
|
||||
"total_discount": "Desconto Total",
|
||||
"sub_total": "SubTotal",
|
||||
"sub_total": "Subtotal",
|
||||
"tax": "Imposto",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"select_an_item": "Digite ou clique para selecionar um item",
|
||||
"type_item_description": "Tipo Descrição do item (opcional)"
|
||||
"type_item_description": "Descrição do item (opcional)"
|
||||
},
|
||||
"payment_attached_message": "Uma das faturas selecionadas já possui um pagamento anexado. Certifique-se de excluir os pagamentos anexados primeiro, a fim de prosseguir com a remoção",
|
||||
"payment_attached_message": "Uma das faturas selecionadas já possui um pagamento anexado. Certifique-se de excluir os pagamentos anexados primeiro, para continuar com a exclusão",
|
||||
"confirm_delete": "Você não poderá recuperar esta fatura | Você não poderá recuperar essas faturas",
|
||||
"created_message": "Fatura criada com sucesso",
|
||||
"updated_message": "Fatura atualizada com sucesso",
|
||||
"deleted_message": "Fatura excluída com sucesso | Faturas excluídas com sucesso",
|
||||
"marked_as_sent_message": "Fatura marcada como enviada com sucesso",
|
||||
"user_email_does_not_exist": "O email do usuário não existe",
|
||||
"something_went_wrong": "Algo deu errado",
|
||||
"something_went_wrong": "algo deu errado",
|
||||
"invalid_due_amount_message": "O valor total da fatura não pode ser menor que o valor total pago para esta fatura. Atualize a fatura ou exclua os pagamentos associados para continuar."
|
||||
},
|
||||
"credit_notes": {
|
||||
@ -394,7 +402,7 @@
|
||||
"credit_notes": "Notas de credito",
|
||||
"contact": "Contato",
|
||||
"date": "Data",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"action": "Ação",
|
||||
"credit_number": "Número de crédito",
|
||||
"notes": "Observações",
|
||||
@ -407,7 +415,7 @@
|
||||
"discount": "Desconto",
|
||||
"total": "Total",
|
||||
"total_discount": "Desconto Total",
|
||||
"sub_total": "SubTotal",
|
||||
"sub_total": "Subtotal",
|
||||
"tax": "Imposto"
|
||||
}
|
||||
},
|
||||
@ -417,9 +425,9 @@
|
||||
"record_payment": "Gravar Pagamento",
|
||||
"customer": "Cliente",
|
||||
"date": "Data",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"action": "Ação",
|
||||
"payment_number": "Número do Pagamento",
|
||||
"payment_number": "Número de Pagamento",
|
||||
"payment_mode": "Forma de Pagamento",
|
||||
"invoice": "Fatura",
|
||||
"note": "Observação",
|
||||
@ -429,19 +437,21 @@
|
||||
"view_payment": "Ver Pagamento",
|
||||
"add_new_payment": "Adicionar novo Pagamento",
|
||||
"send_payment_receipt": "Enviar recibo de pagamento",
|
||||
"send_payment": "Mande o pagamento",
|
||||
"send_payment": "Enviar Pagamento",
|
||||
"save_payment": "Salvar Pagamento",
|
||||
"update_payment": "Atualizar Pagamento",
|
||||
"payment": "Pagamento | Pagamentos",
|
||||
"no_payments": "Ainda sem pagamentos!",
|
||||
"no_payments": "Não há pagamentos ainda!",
|
||||
"not_selected": "Not selected",
|
||||
"no_invoice": "No invoice",
|
||||
"no_matching_payments": "Não há pagamentos correspondentes!",
|
||||
"list_of_payments": "Esta seção conterá a lista de pagamentos.",
|
||||
"select_payment_mode": "Selecione a forma de pagamento",
|
||||
"confirm_mark_as_sent": "Este orçamento será marcado como enviado",
|
||||
"confirm_send_payment": "This payment will be sent via email to the customer",
|
||||
"send_payment_successfully": "Payment sent successfully",
|
||||
"confirm_send_payment": "Este pagamento será enviado por e-mail para o cliente",
|
||||
"send_payment_successfully": "Pagamento enviado com sucesso",
|
||||
"user_email_does_not_exist": "O email do usuário não existe",
|
||||
"something_went_wrong": "Algo deu errado",
|
||||
"something_went_wrong": "algo deu errado",
|
||||
"confirm_delete": "Você não poderá recuperar este Pagamento | Você não poderá recuperar esses Pagamentos",
|
||||
"created_message": "Pagamento criado com sucesso",
|
||||
"updated_message": "Pagamento atualizado com sucesso",
|
||||
@ -460,9 +470,10 @@
|
||||
"to_date": "Até a Data",
|
||||
"expense_date": "Data",
|
||||
"description": "Descrição",
|
||||
"receipt": "Receita",
|
||||
"amount": "Montante",
|
||||
"receipt": "Recibo",
|
||||
"amount": "Valor",
|
||||
"action": "Ação",
|
||||
"not_selected": "Not selected",
|
||||
"note": "Observação",
|
||||
"category_id": "Categoria",
|
||||
"date": "Data da Despesa",
|
||||
@ -485,7 +496,7 @@
|
||||
"title": "Título",
|
||||
"name": "Nome",
|
||||
"description": "Descrição",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"actions": "Ações",
|
||||
"add_category": "Adicionar Categoria",
|
||||
"new_category": "Nova Categoria",
|
||||
@ -499,8 +510,8 @@
|
||||
"forgot_password": "Esqueceu a senha?",
|
||||
"or_signIn_with": "ou Entre com",
|
||||
"login": "Entrar",
|
||||
"register": "Registre-se",
|
||||
"reset_password": "Resetar Senha",
|
||||
"register": "Cadastre-se",
|
||||
"reset_password": "Redefinir Senha",
|
||||
"password_reset_successfully": "Senha redefinida com sucesso",
|
||||
"enter_email": "Digite email",
|
||||
"enter_password": "Digite a senha",
|
||||
@ -508,30 +519,30 @@
|
||||
"login_placeholder": "mail@exemplo.com"
|
||||
},
|
||||
"users": {
|
||||
"title": "Users",
|
||||
"users_list": "Users List",
|
||||
"title": "Usuários",
|
||||
"users_list": "Lista de Usuários",
|
||||
"name": "Nome",
|
||||
"description": "Descrição",
|
||||
"added_on": "Adicionado",
|
||||
"date_of_creation": "Data de criação",
|
||||
"action": "Ação",
|
||||
"add_user": "Add User",
|
||||
"save_user": "Save User",
|
||||
"update_user": "Update User",
|
||||
"user": "User | Users",
|
||||
"add_new_user": "Add New User",
|
||||
"new_user": "New User",
|
||||
"edit_user": "Edit User",
|
||||
"no_users": "No users yet!",
|
||||
"list_of_users": "This section will contain the list of users.",
|
||||
"add_user": "Adicionar Usuário",
|
||||
"save_user": "Salvar Usuário",
|
||||
"update_user": "Atualizar Usuário",
|
||||
"user": "Usuário | Usuários",
|
||||
"add_new_user": "Adicionar Novo Usuário",
|
||||
"new_user": "Novo Usuário",
|
||||
"edit_user": "Editar Usuário",
|
||||
"no_users": "Nenhum usuário ainda!",
|
||||
"list_of_users": "Esta seção conterá a lista de usuários.",
|
||||
"email": "Email",
|
||||
"phone": "Telefone",
|
||||
"password": "Senha",
|
||||
"user_attached_message": "Não é possível excluir um item que já está em uso.",
|
||||
"confirm_delete": "You will not be able to recover this User | You will not be able to recover these Users",
|
||||
"created_message": "User created successfully",
|
||||
"updated_message": "User updated successfully",
|
||||
"deleted_message": "User deleted successfully | User deleted successfully"
|
||||
"user_attached_message": "Não é possível excluir um item que já está em uso",
|
||||
"confirm_delete": "Você não poderá recuperar este Usuário | Você não poderá recuperar esses Usuários",
|
||||
"created_message": "Usuário criado com sucesso",
|
||||
"updated_message": "Usuário atualizado com sucesso",
|
||||
"deleted_message": "Usuário excluído com sucesso | Usuários excluídos com sucesso"
|
||||
},
|
||||
"reports": {
|
||||
"title": "Relatório",
|
||||
@ -545,7 +556,7 @@
|
||||
"update_report": "Atualizar Relatório",
|
||||
"report": "Relatório | Relatórios",
|
||||
"profit_loss": {
|
||||
"profit_loss": "Perda de lucro",
|
||||
"profit_loss": "Lucro & Perda",
|
||||
"to_date": "Até a Data",
|
||||
"from_date": "A partir da Data",
|
||||
"date_range": "Selecionar período"
|
||||
@ -570,7 +581,7 @@
|
||||
"invoice": "Fatura",
|
||||
"invoice_date": "Data da Fatura",
|
||||
"due_date": "Data de Vencimento",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"contact_name": "Nome de Contato",
|
||||
"status": "Status"
|
||||
},
|
||||
@ -580,7 +591,7 @@
|
||||
"due_date": "Data de Vencimento",
|
||||
"estimate_number": "Número do Orçamento",
|
||||
"ref_number": "Referência",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"contact_name": "Nome de Contato",
|
||||
"status": "Status"
|
||||
},
|
||||
@ -588,7 +599,7 @@
|
||||
"expenses": "Despesas",
|
||||
"category": "Categoria",
|
||||
"date": "Data",
|
||||
"amount": "Montante",
|
||||
"amount": "Valor",
|
||||
"to_date": "Até a Data",
|
||||
"from_date": "A partir da Data",
|
||||
"date_range": "Selecionar período"
|
||||
@ -605,16 +616,16 @@
|
||||
"expense_category": "Categorias de Despesas",
|
||||
"update_app": "Atualizar Aplicativo",
|
||||
"backup": "Backup",
|
||||
"file_disk": "File Disk",
|
||||
"file_disk": "Disco de Arquivos",
|
||||
"custom_fields": "Os campos personalizados",
|
||||
"payment_modes": "Payment Modes",
|
||||
"payment_modes": "Meios de Pagamento",
|
||||
"notes": "Observações"
|
||||
},
|
||||
"title": "Configurações",
|
||||
"setting": "Configuração | Configurações",
|
||||
"general": "Geral",
|
||||
"language": "Idioma",
|
||||
"primary_currency": "Moéda Principal",
|
||||
"primary_currency": "Moeda Principal",
|
||||
"timezone": "Fuso horário",
|
||||
"date_format": "Formato de data",
|
||||
"currencies": {
|
||||
@ -640,16 +651,16 @@
|
||||
"port": "Porta de Email",
|
||||
"driver": "Driver do email",
|
||||
"secret": "Segredo",
|
||||
"mailgun_secret": "Mailgun Segredo",
|
||||
"mailgun_secret": "Segredo Mailgun",
|
||||
"mailgun_domain": "Domínio",
|
||||
"mailgun_endpoint": "Endpoint do Mailgun",
|
||||
"ses_secret": "SES Segredo",
|
||||
"ses_key": "SES Chave",
|
||||
"ses_secret": "Segredo SES",
|
||||
"ses_key": "Chave SES",
|
||||
"password": "Senha do Email",
|
||||
"username": "Nome de Usuário do Email",
|
||||
"mail_config": "Configuração de Email",
|
||||
"from_name": "Do Nome de Email",
|
||||
"from_mail": "Do Endereço de Email",
|
||||
"from_name": "Nome do Remetente",
|
||||
"from_mail": "Endereço Email do Remetente",
|
||||
"encryption": "Criptografia de Email",
|
||||
"mail_config_desc": "Abaixo está o formulário para configurar o driver de email para enviar emails do aplicativo. Você também pode configurar provedores de terceiros como Sendgrid, SES etc."
|
||||
},
|
||||
@ -674,7 +685,7 @@
|
||||
},
|
||||
"custom_fields": {
|
||||
"title": "Os campos personalizados",
|
||||
"section_description": "Customize your Invoices, Estimates & Payment Receipts with your own fields. Make sure to use the below added fields on the address formats on Customization settings page.",
|
||||
"section_description": "Personalize as suas faturas, Orçamentos & Recibos de Pagamento com seus próprios campos. Certifique-se de usar os campos abaixo adicionados nos formatos de endereço na página de Configurações de Personalização.",
|
||||
"add_custom_field": "Adicionar campo personalizado",
|
||||
"edit_custom_field": "Editar campo personalizado",
|
||||
"field_name": "Nome do campo",
|
||||
@ -682,7 +693,7 @@
|
||||
"type": "Tipo",
|
||||
"name": "Nome",
|
||||
"required": "Requeridas",
|
||||
"placeholder": "Placeholder",
|
||||
"placeholder": "Dica de Preenchimento",
|
||||
"help_text": "Texto de ajuda",
|
||||
"default_value": "Valor padrão",
|
||||
"prefix": "Prefixo",
|
||||
@ -690,7 +701,7 @@
|
||||
"model": "Modelo",
|
||||
"help_text_description": "Digite algum texto para ajudar os usuários a entender a finalidade desse campo personalizado.",
|
||||
"suffix": "Sufixo",
|
||||
"yes": "sim",
|
||||
"yes": "Sim",
|
||||
"no": "Não",
|
||||
"order": "Ordem",
|
||||
"custom_field_confirm_delete": "Você não poderá recuperar este campo personalizado",
|
||||
@ -701,7 +712,7 @@
|
||||
"add_another_option": "Adicione outra opção",
|
||||
"sort_in_alphabetical_order": "Classificar em ordem alfabética",
|
||||
"add_options_in_bulk": "Adicionar opções em massa",
|
||||
"use_predefined_options": "Use Predefined Options",
|
||||
"use_predefined_options": "Usar Opções Predefinidas",
|
||||
"select_custom_date": "Selecionar data personalizada",
|
||||
"select_relative_date": "Selecionar data relativa",
|
||||
"ticked_by_default": "Marcado por padrão",
|
||||
@ -709,11 +720,11 @@
|
||||
"added_message": "Campo personalizado adicionado com sucesso"
|
||||
},
|
||||
"customization": {
|
||||
"customization": "Personalizar",
|
||||
"customization": "personalização",
|
||||
"save": "Salvar",
|
||||
"addresses": {
|
||||
"title": "Endereço",
|
||||
"section_description": "Você pode definir o endereço de cobrança do cliente e o formato do endereço de entrega do cliente (exibido apenas em PDF).",
|
||||
"section_description": "Você pode definir o endereço de cobrança do cliente e o formato do endereço de entrega do cliente (exibido apenas em PDF). ",
|
||||
"customer_billing_address": "Endereço de Cobrança do Cliente",
|
||||
"customer_shipping_address": "Endereço de Entrega do Cliente",
|
||||
"company_address": "Endereço da Empresa",
|
||||
@ -740,41 +751,50 @@
|
||||
"title": "Faturas",
|
||||
"notes": "Notas",
|
||||
"invoice_prefix": "Fatura Prefixo",
|
||||
"default_invoice_email_body": "Default Invoice Email Body",
|
||||
"invoice_settings": "Configrações da Fatura",
|
||||
"invoice_number_length": "Invoice number length",
|
||||
"default_invoice_email_body": "Corpo Padrão de Email de Fatura",
|
||||
"invoice_settings": "Configurações de Fatura",
|
||||
"autogenerate_invoice_number": "Gerar automaticamente o número da Fatura",
|
||||
"invoice_setting_description": "Desative isso, se você não deseja gerar automaticamente números da Fatura sempre que criar uma nova.",
|
||||
"invoice_email_attachment": "Send invoices as attachments",
|
||||
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_invoice_prefix": "Digite o prefixo da Fatura",
|
||||
"terms_and_conditions": "Termos e Condições",
|
||||
"company_address_format": "Company Address Format",
|
||||
"shipping_address_format": "Shipping Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"company_address_format": "Formato de Endereço de Empresa",
|
||||
"shipping_address_format": "Formato de Endereço de Envio",
|
||||
"billing_address_format": "Formato de Endereço de Faturamento",
|
||||
"invoice_setting_updated": "Configuração da Fatura atualizada com sucesso"
|
||||
},
|
||||
"estimates": {
|
||||
"title": "Orçamentos",
|
||||
"estimate_prefix": "Orçamento Prefixo",
|
||||
"default_estimate_email_body": "Default Estimate Email Body",
|
||||
"estimate_number_length": "Estimate number length",
|
||||
"default_estimate_email_body": "Corpo Padrão de Email de Orçamento",
|
||||
"estimate_settings": "Configurações do Orçamento",
|
||||
"autogenerate_estimate_number": "Gerar automaticamente o número do Orçamento",
|
||||
"estimate_setting_description": "Desative isso, se você não deseja gerar automaticamente números do Orçamento sempre que criar um novo.",
|
||||
"estimate_email_attachment": "Send estimates as attachments",
|
||||
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_estimate_prefix": "Digite o prefixo do Orçamento",
|
||||
"estimate_setting_updated": "Configuração do Orçamento atualizada com sucesso",
|
||||
"company_address_format": "Company Address Format",
|
||||
"billing_address_format": "Billing Address Format",
|
||||
"shipping_address_format": "Shipping Address Format"
|
||||
"estimate_setting_updated": "Configuração de Orçamento atualizada com sucesso",
|
||||
"company_address_format": "Formato de Endereço de Empresa",
|
||||
"billing_address_format": "Formato de Endereço de Faturamento",
|
||||
"shipping_address_format": "Formato de Endereço de Envio"
|
||||
},
|
||||
"payments": {
|
||||
"title": "Pagamentos",
|
||||
"description": "Modes of transaction for payments",
|
||||
"description": "Modos de transação para pagamentos",
|
||||
"payment_prefix": "Pagamento Prefixo",
|
||||
"default_payment_email_body": "Default Payment Email Body",
|
||||
"payment_number_length": "Payment number lenght",
|
||||
"default_payment_email_body": "Corpo Padrão de Email de Pagamento",
|
||||
"payment_settings": "Configurações de Pagamento",
|
||||
"autogenerate_payment_number": "Gerar automaticamente número do Pagamento",
|
||||
"payment_setting_description": "Desative isso, se você não deseja gerar automaticamente números do Pagamento sempre que criar um novo.",
|
||||
"payment_email_attachment": "Send payments as attachments",
|
||||
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_payment_prefix": "Digite o Prefixo do Pagamento",
|
||||
"payment_setting_updated": "Configurações de Pagamento atualizada com sucesso",
|
||||
"payment_modes": "Payment Modes",
|
||||
"payment_modes": "Meios de Pagamento",
|
||||
"add_payment_mode": "Adicionar modo de pagamento",
|
||||
"edit_payment_mode": "Editar modo de pagamento",
|
||||
"mode_name": "Nome do modo",
|
||||
@ -783,35 +803,35 @@
|
||||
"payment_mode_confirm_delete": "Você não poderá recuperar este modo de pagamento",
|
||||
"already_in_use": "O modo de pagamento já está em uso",
|
||||
"deleted_message": "Modo de pagamento excluído com sucesso",
|
||||
"company_address_format": "Company Address Format",
|
||||
"from_customer_address_format": "From Customer Address Format"
|
||||
"company_address_format": "Formato de Endereço de Empresa",
|
||||
"from_customer_address_format": "Formato de Endereço de Cliente Remetente"
|
||||
},
|
||||
"items": {
|
||||
"title": "Itens",
|
||||
"units": "unidades",
|
||||
"units": "Unidades",
|
||||
"add_item_unit": "Adicionar unidade de item",
|
||||
"edit_item_unit": "Editar unidade de item",
|
||||
"unit_name": "Nome da unidade",
|
||||
"item_unit_added": "Item Unit Added",
|
||||
"item_unit_updated": "Item Unit Updated",
|
||||
"item_unit_added": "Unidade de Item Adicionada",
|
||||
"item_unit_updated": "Unidade de Item Atualizada",
|
||||
"item_unit_confirm_delete": "Você não poderá recuperar esta unidade de item",
|
||||
"already_in_use": "A unidade do item já está em uso",
|
||||
"deleted_message": "Unidade de item excluída com sucesso"
|
||||
},
|
||||
"notes": {
|
||||
"title": "Observações",
|
||||
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
|
||||
"notes": "Observações",
|
||||
"description": "Economize tempo criando notas e reutilizando-as nas suas faturas, orçamentos e pagamentos.",
|
||||
"notes": "Notas",
|
||||
"type": "Tipo",
|
||||
"add_note": "Add Note",
|
||||
"add_new_note": "Add New Note",
|
||||
"add_note": "Adicionar Nota",
|
||||
"add_new_note": "Adicionar Nova Nota",
|
||||
"name": "Nome",
|
||||
"edit_note": "Edit Note",
|
||||
"note_added": "Note added successfully",
|
||||
"note_updated": "Note Updated successfully",
|
||||
"note_confirm_delete": "You will not be able to recover this Note",
|
||||
"already_in_use": "Note is already in use",
|
||||
"deleted_message": "Note deleted successfully"
|
||||
"edit_note": "Editar Nota",
|
||||
"note_added": "Nota adicionada com sucesso",
|
||||
"note_updated": "Nota atualizada com sucesso",
|
||||
"note_confirm_delete": "Você não poderá recuperar essa nota",
|
||||
"already_in_use": "A nota já está em uso",
|
||||
"deleted_message": "Nota excluída com sucesso"
|
||||
}
|
||||
},
|
||||
"account_settings": {
|
||||
@ -855,7 +875,7 @@
|
||||
"compound_tax": "Imposto Composto",
|
||||
"percent": "Porcentagem",
|
||||
"action": "Ação",
|
||||
"tax_setting_description": "Habilite isso se desejar adicionar Impostos a itens da Fatura Idividualmente. Por padrão, os impostos são adicionados diretamente à Fatura.",
|
||||
"tax_setting_description": "Habilite isso se desejar adicionar Impostos a itens da Fatura Individualmente. Por padrão, os impostos são adicionados diretamente à Fatura.",
|
||||
"created_message": "Tipo de Imposto criado com sucesso",
|
||||
"updated_message": "Tipo de Imposto Atualizado com sucesso",
|
||||
"deleted_message": "Tipo de Imposto Deletado com sucesso",
|
||||
@ -879,7 +899,7 @@
|
||||
},
|
||||
"preferences": {
|
||||
"currency": "Moeda",
|
||||
"default_language": "Default Language",
|
||||
"default_language": "Idioma padrão",
|
||||
"time_zone": "Fuso Horário",
|
||||
"fiscal_year": "Ano Financeiro",
|
||||
"date_format": "Formato da Data",
|
||||
@ -892,16 +912,16 @@
|
||||
"updated_message": "Preferências atualizadas com sucesso",
|
||||
"select_language": "Selecione um Idioma",
|
||||
"select_time_zone": "Selecione um fuso horário",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_date_format": "Selecionar um Formato de Data",
|
||||
"select_financial_year": "Selecione o ano financeiro"
|
||||
},
|
||||
"update_app": {
|
||||
"title": "Atualizar Aplicativo",
|
||||
"description": "Você pode atualizar facilmente o Crater, verifique se hà novas atualizações, clicando no botão abaixo",
|
||||
"description": "Você pode atualizar facilmente o Crater, verifique se há novas atualizações, clicando no botão abaixo",
|
||||
"check_update": "Verifique se há atualizações",
|
||||
"avail_update": "Nova atualização disponível",
|
||||
"next_version": "Próxima versão",
|
||||
"requirements": "Requirements",
|
||||
"requirements": "Requisitos",
|
||||
"update": "Atualizar agora",
|
||||
"update_progress": "Atualização em progresso...",
|
||||
"progress_text": "Levará apenas alguns minutos. Não atualize a tela ou feche a janela antes que a atualização seja concluída",
|
||||
@ -911,91 +931,92 @@
|
||||
"download_zip_file": "Baixar arquivo ZIP",
|
||||
"unzipping_package": "Descompactando o pacote",
|
||||
"copying_files": "Copiando arquivos",
|
||||
"deleting_files": "Deleting Unused files",
|
||||
"running_migrations": "Executando migrações",
|
||||
"finishing_update": "Atualização de acabamento",
|
||||
"finishing_update": "Acabando a Atualização",
|
||||
"update_failed": "Atualização falhou",
|
||||
"update_failed_text": "Desculpa! Sua atualização falhou em: {step} step"
|
||||
"update_failed_text": "Desculpa! Sua atualização falhou no passo: {step}"
|
||||
},
|
||||
"backup": {
|
||||
"title": "Backup | Backups",
|
||||
"description": "The backup is a zipfile that contains all files in the directories you specify along with a dump of your database",
|
||||
"new_backup": "Add New Backup",
|
||||
"create_backup": "Create Backup",
|
||||
"select_backup_type": "Select Backup Type",
|
||||
"backup_confirm_delete": "You will not be able to recover this Backup",
|
||||
"path": "path",
|
||||
"new_disk": "New Disk",
|
||||
"created_at": "created at",
|
||||
"size": "size",
|
||||
"description": "O backup é um arquivo zip que contém todos os arquivos nas pastas que você especificou juntamente com um arquivo de backup de sua base de dados",
|
||||
"new_backup": "Adicionar Novo Backup",
|
||||
"create_backup": "Criar Backup",
|
||||
"select_backup_type": "Selecionar Tipo de Backup",
|
||||
"backup_confirm_delete": "Você não poderá recuperar este backup",
|
||||
"path": "caminho",
|
||||
"new_disk": "Novo disco",
|
||||
"created_at": "criado em",
|
||||
"size": "tamanho",
|
||||
"dropbox": "dropbox",
|
||||
"local": "local",
|
||||
"healthy": "healthy",
|
||||
"amount_of_backups": "amount of backups",
|
||||
"newest_backups": "newest backups",
|
||||
"used_storage": "used storage",
|
||||
"select_disk": "Select Disk",
|
||||
"healthy": "sem erros",
|
||||
"amount_of_backups": "quantidade de backups",
|
||||
"newest_backups": "backups mais recentes",
|
||||
"used_storage": "armazenamento utilizado",
|
||||
"select_disk": "Selecionar Disco",
|
||||
"action": "Ação",
|
||||
"deleted_message": "Backup deleted successfully",
|
||||
"created_message": "Backup created successfully",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"deleted_message": "Backup excluído com sucesso",
|
||||
"created_message": "Backup criado com sucesso",
|
||||
"invalid_disk_credentials": "Credencial inválida para o disco selecionado"
|
||||
},
|
||||
"disk": {
|
||||
"title": "File Disk | File Disks",
|
||||
"description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.",
|
||||
"created_at": "created at",
|
||||
"title": "Disco de Arquivo | Discos de Arquivo",
|
||||
"description": "Por padrão, o Crater usará o seu disco local para salvar os backups, avatar e outros arquivos de imagem. Você pode configurar mais de um drivers de disco como DigitalOcean, S3 e Dropbox de acordo com sua preferência.",
|
||||
"created_at": "criado em",
|
||||
"dropbox": "dropbox",
|
||||
"name": "Nome",
|
||||
"driver": "Driver",
|
||||
"disk_type": "Tipo",
|
||||
"disk_name": "Disk Name",
|
||||
"new_disk": "Add New Disk",
|
||||
"filesystem_driver": "Filesystem Driver",
|
||||
"local_driver": "local Driver",
|
||||
"local_root": "local Root",
|
||||
"public_driver": "Public Driver",
|
||||
"public_root": "Public Root",
|
||||
"public_url": "Public URL",
|
||||
"public_visibility": "Public Visibility",
|
||||
"media_driver": "Media Driver",
|
||||
"media_root": "Media Root",
|
||||
"aws_driver": "AWS Driver",
|
||||
"aws_key": "AWS Key",
|
||||
"aws_secret": "AWS Secret",
|
||||
"aws_region": "AWS Region",
|
||||
"aws_bucket": "AWS Bucket",
|
||||
"aws_root": "AWS Root",
|
||||
"do_spaces_type": "Do Spaces type",
|
||||
"do_spaces_key": "Do Spaces key",
|
||||
"do_spaces_secret": "Do Spaces Secret",
|
||||
"do_spaces_region": "Do Spaces Region",
|
||||
"do_spaces_bucket": "Do Spaces Bucket",
|
||||
"do_spaces_endpoint": "Do Spaces Endpoint",
|
||||
"do_spaces_root": "Do Spaces Root",
|
||||
"dropbox_type": "Dropbox Type",
|
||||
"dropbox_token": "Dropbox Token",
|
||||
"dropbox_key": "Dropbox Key",
|
||||
"dropbox_secret": "Dropbox Secret",
|
||||
"dropbox_app": "Dropbox App",
|
||||
"dropbox_root": "Dropbox Root",
|
||||
"default_driver": "Default Driver",
|
||||
"is_default": "IS DEFAULT",
|
||||
"set_default_disk": "Set Default Disk",
|
||||
"disk_name": "Nome do disco",
|
||||
"new_disk": "Adicionar novo disco",
|
||||
"filesystem_driver": "Driver de Sistema de Arquivo",
|
||||
"local_driver": "Driver local",
|
||||
"local_root": "Root local",
|
||||
"public_driver": "Driver Público",
|
||||
"public_root": "Root Público",
|
||||
"public_url": "URL Pública",
|
||||
"public_visibility": "Visibilidade Pública",
|
||||
"media_driver": "Driver de Mídia",
|
||||
"media_root": "Root de Mídia",
|
||||
"aws_driver": "Driver AWS",
|
||||
"aws_key": "Chave AWS",
|
||||
"aws_secret": "Segredo AWS",
|
||||
"aws_region": "Região AWS",
|
||||
"aws_bucket": "Bucket AWS",
|
||||
"aws_root": "Root AWS",
|
||||
"do_spaces_type": "Tipo de Spaces Do",
|
||||
"do_spaces_key": "Chave de Spaces Do",
|
||||
"do_spaces_secret": "Segredo de Spaces Do",
|
||||
"do_spaces_region": "Região de Spaces Do",
|
||||
"do_spaces_bucket": "Bucket de Spaces Do",
|
||||
"do_spaces_endpoint": "Endpoint de Spaces Do",
|
||||
"do_spaces_root": "Root de Spaces Do",
|
||||
"dropbox_type": "Tipo de Dropbox",
|
||||
"dropbox_token": "Token Dropbox",
|
||||
"dropbox_key": "Chave Dropbox",
|
||||
"dropbox_secret": "Segredo Dropbox",
|
||||
"dropbox_app": "Aplicativo Dropbox",
|
||||
"dropbox_root": "Root Dropbox",
|
||||
"default_driver": "Driver Padrão",
|
||||
"is_default": "ESTÁ PADRÃO",
|
||||
"set_default_disk": "Definir Disco Padrão",
|
||||
"set_default_disk_confirm": "This disk will be set as default and all the new PDFs will be saved on this disk",
|
||||
"success_set_default_disk": "Disk set as default successfully",
|
||||
"save_pdf_to_disk": "Save PDFs to Disk",
|
||||
"disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.",
|
||||
"select_disk": "Select Disk",
|
||||
"disk_settings": "Disk Settings",
|
||||
"confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater",
|
||||
"success_set_default_disk": "Disco definido como padrão com sucesso",
|
||||
"save_pdf_to_disk": "Salvar PDFs no Disco",
|
||||
"disk_setting_description": " Ative isso, se você deseja salvar uma cópia de cada fatura, Orçamento e Pagamento PDF em seu disco padrão automaticamente. Virar esta opção irá diminuir o tempo de carregamento ao visualizar os PDFs.",
|
||||
"select_disk": "Selecionar Disco",
|
||||
"disk_settings": "Configurações de Disco",
|
||||
"confirm_delete": "Seus arquivos e pastas existentes no disco especificado não serão afetados, mas sua configuração de disco será excluída do Crater",
|
||||
"action": "Ação",
|
||||
"edit_file_disk": "Edit File Disk",
|
||||
"success_create": "Disk added successfully",
|
||||
"success_update": "Disk updated successfully",
|
||||
"error": "Disk addition failed",
|
||||
"deleted_message": "File Disk deleted successfully",
|
||||
"disk_variables_save_successfully": "Disk Configured Successfully",
|
||||
"disk_variables_save_error": "Disk configuration failed.",
|
||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
||||
"edit_file_disk": "Editar Disco de Arquivos",
|
||||
"success_create": "Disco adicionado com sucesso",
|
||||
"success_update": "Disco atualizado com sucesso",
|
||||
"error": "Falha na adição de disco",
|
||||
"deleted_message": "Disco de arquivo excluído com sucesso",
|
||||
"disk_variables_save_successfully": "Disco configurado com sucesso",
|
||||
"disk_variables_save_error": "Configuração do disco falhou.",
|
||||
"invalid_disk_credentials": "Credencial inválida para o disco selecionado"
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@ -1010,10 +1031,10 @@
|
||||
"company_info_desc": "Esta informação será exibida nas Faturas. Observe que você pode editar isso mais tarde na página de configurações.",
|
||||
"company_name": "Nome da Empresa",
|
||||
"company_logo": "Logotipo da Empresa",
|
||||
"logo_preview": "Previsualizar Logotipo",
|
||||
"logo_preview": "Pré-visualizar Logotipo",
|
||||
"preferences": "Preferências",
|
||||
"preferences_desc": "Preferências padrão para o sistema.",
|
||||
"country": "Pais",
|
||||
"country": "País",
|
||||
"state": "Estado",
|
||||
"city": "Cidade",
|
||||
"address": "Endereço",
|
||||
@ -1038,10 +1059,10 @@
|
||||
"port": "Porta da Base de Dados",
|
||||
"password": "Senha da Base de Dados",
|
||||
"app_url": "URL do Aplicativo",
|
||||
"app_domain": "App Domain",
|
||||
"app_domain": "Domínio do Aplicativo",
|
||||
"username": "Usuário da Base de Dados",
|
||||
"db_name": "Nome da Base de Dados",
|
||||
"db_path": "Database Path",
|
||||
"db_path": "Pasta do Banco de Dados",
|
||||
"desc": "Crie um Banco de Dados no seu servidor e defina as credenciais usando o formulário abaixo."
|
||||
},
|
||||
"permissions": {
|
||||
@ -1089,24 +1110,24 @@
|
||||
"layout_login": {
|
||||
"copyright_crater": "Copyright @ Crater - 2020",
|
||||
"super_simple_invoicing": "Faturamento super simples",
|
||||
"for_freelancer": "Para Freelancers &",
|
||||
"for_freelancer": "para Freelancers &",
|
||||
"small_businesses": "Pequenos Negócios ",
|
||||
"crater_help": "Crater ajuda a rastrear despesas, registrar pagamentos e gerar belas",
|
||||
"invoices_and_estimates": "Faturas e Orçamentos com capacidade de escolher vários modelos."
|
||||
"invoices_and_estimates": "faturas e orçamentos com possibilidade de escolher vários modelos."
|
||||
},
|
||||
"validation": {
|
||||
"invalid_phone": "Número de telefone inválido",
|
||||
"invalid_url": "url inválidas (ex: http://www.crater.com)",
|
||||
"invalid_domain_url": "url inválidas (ex: crater.com)",
|
||||
"invalid_url": "URL inválida (ex: http://www.crater.com)",
|
||||
"invalid_domain_url": "URL inválida (ex: crater.com)",
|
||||
"required": "Campo obrigatório",
|
||||
"email_incorrect": "E-mail incorreto",
|
||||
"email_already_taken": "O email já foi recebido.",
|
||||
"email_incorrect": "E-mail incorreto.",
|
||||
"email_already_taken": "O email já está em uso.",
|
||||
"email_does_not_exist": "O usuário com determinado email não existe",
|
||||
"item_unit_already_taken": "This item unit name has already been taken",
|
||||
"payment_mode_already_taken": "This payment mode name has already been taken",
|
||||
"item_unit_already_taken": "Este nome de unidade de item já está em uso",
|
||||
"payment_mode_already_taken": "Este meio de pagamento já foi utilizado",
|
||||
"send_reset_link": "Enviar link de redefinição",
|
||||
"not_yet": "Ainda não? Envie novamente",
|
||||
"password_min_length": "A senha deve conter {count} caracteres",
|
||||
"password_min_length": "A senha deve ter {count} caracteres",
|
||||
"name_min_length": "O nome deve ter pelo menos {count} letras.",
|
||||
"enter_valid_tax_rate": "Insira uma taxa de imposto válida",
|
||||
"numbers_only": "Apenas Números.",
|
||||
@ -1120,52 +1141,57 @@
|
||||
"quantity_maxlength": "A quantidade não deve exceder 20 dígitos.",
|
||||
"price_maxlength": "O preço não deve ser superior a 20 dígitos.",
|
||||
"price_minvalue": "O preço deve ser maior que 0.",
|
||||
"amount_maxlength": "Montante não deve ser superior a 20 dígitos.",
|
||||
"amount_minvalue": "Montante deve ser maior que zero",
|
||||
"amount_maxlength": "Valor não deve ter mais de 20 dígitos.",
|
||||
"amount_minvalue": "O valor deve ser maior que 0.",
|
||||
"description_maxlength": "A descrição não deve ter mais que 255 caracteres.",
|
||||
"subject_maxlength": "Subject should not be greater than 100 characters.",
|
||||
"message_maxlength": "Message should not be greater than 255 characters.",
|
||||
"subject_maxlength": "O assunto não deve ter mais que 100 caracteres.",
|
||||
"message_maxlength": "A mensagem não deve ter mais que 255 caracteres.",
|
||||
"maximum_options_error": "Máximo de {max} opções selecionadas. Primeiro remova uma opção selecionada para selecionar outra.",
|
||||
"notes_maxlength": "As anotações não devem ter mais que 255 caracteres.",
|
||||
"address_maxlength": "O endereço não deve ter mais que 255 caracteres.",
|
||||
"ref_number_maxlength": "O número de referência não deve ter mais que 255 caracteres.",
|
||||
"prefix_maxlength": "O prefixo não deve ter mais que 5 caracteres.",
|
||||
"something_went_wrong": "Algo deu errado"
|
||||
"something_went_wrong": "algo deu errado",
|
||||
"number_length_minvalue": "Number lenght should be greater than 0"
|
||||
},
|
||||
"pdf_estimate_label": "Orçamento",
|
||||
"pdf_estimate_number": "Numero do Orçamento",
|
||||
"pdf_estimate_date": "Data do Orçamento",
|
||||
"pdf_estimate_expire_date": "Expiry date",
|
||||
"pdf_estimate_expire_date": "Data de expiração",
|
||||
"pdf_invoice_label": "Fatura",
|
||||
"pdf_invoice_number": "Número da fatura",
|
||||
"pdf_invoice_date": "Data da Fatura",
|
||||
"pdf_invoice_due_date": "Due date",
|
||||
"pdf_invoice_due_date": "Data de Vencimento",
|
||||
"pdf_notes": "Observações",
|
||||
"pdf_items_label": "Itens",
|
||||
"pdf_quantity_label": "Quantidade",
|
||||
"pdf_price_label": "Preço",
|
||||
"pdf_discount_label": "Desconto",
|
||||
"pdf_amount_label": "Montante",
|
||||
"pdf_amount_label": "Valor",
|
||||
"pdf_subtotal": "Subtotal",
|
||||
"pdf_total": "Total",
|
||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||
"pdf_payment_date": "Payment Date",
|
||||
"pdf_payment_label": "Payment",
|
||||
"pdf_payment_receipt_label": "RECIBO DE PAGAMENTO",
|
||||
"pdf_payment_date": "Data de Pagamento",
|
||||
"pdf_payment_number": "Número do Pagamento",
|
||||
"pdf_payment_mode": "Forma de Pagamento",
|
||||
"pdf_payment_amount_received_label": "Amount Received",
|
||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||
"pdf_income_label": "INCOME",
|
||||
"pdf_net_profit_label": "NET PROFIT",
|
||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||
"pdf_total_sales_label": "TOTAL SALES",
|
||||
"pdf_item_sales_label": "Sales Report: By Item",
|
||||
"pdf_tax_report_label": "TAX REPORT",
|
||||
"pdf_total_tax_label": "TOTAL TAX",
|
||||
"pdf_payment_amount_received_label": "Valor Recebido",
|
||||
"pdf_expense_report_label": "RELATÓRIO DE DESPESAS",
|
||||
"pdf_total_expenses_label": "TOTAL DESPESAS",
|
||||
"pdf_profit_loss_label": "RELATÓRIO LUCRO & PERDA",
|
||||
"pdf_sales_customers_label": "Sales Customer Report",
|
||||
"pdf_sales_items_label": "Sales Item Report",
|
||||
"pdf_tax_summery_label": "Tax Summary Report",
|
||||
"pdf_income_label": "RENDA",
|
||||
"pdf_net_profit_label": "LUCRO LÍQUIDO",
|
||||
"pdf_customer_sales_report": "Relatório de Vendas: Por Cliente",
|
||||
"pdf_total_sales_label": "VENDAS TOTAIS",
|
||||
"pdf_item_sales_label": "Relatório de Vendas: Por Item",
|
||||
"pdf_tax_report_label": "RELATÓRIO DE IMPOSTOS",
|
||||
"pdf_total_tax_label": "IMPOSTOS TOTAIS",
|
||||
"pdf_tax_types_label": "Tipos de Impostos",
|
||||
"pdf_expenses_label": "Despesas",
|
||||
"pdf_bill_to": "Cobrar a,",
|
||||
"pdf_ship_to": "Envie a,",
|
||||
"pdf_received_from": "Received from:"
|
||||
"pdf_received_from": "Remetente:"
|
||||
}
|
||||
|
||||
1197
resources/assets/js/plugins/sk.json
Normal file
1197
resources/assets/js/plugins/sk.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -6,29 +6,34 @@
|
||||
"invoices": "Fakture",
|
||||
"expenses": "Rashodi",
|
||||
"estimates": "Profakture",
|
||||
"payments": "Plaćanja",
|
||||
"payments": "Uplate",
|
||||
"reports": "Izveštaji",
|
||||
"settings": "Podešavanja",
|
||||
"logout": "Odjavi se"
|
||||
"logout": "Odjavi se",
|
||||
"users": "Korisnici"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "Dodaj kompaniju",
|
||||
"view_pdf": "Pogledaj PDF",
|
||||
"copy_pdf_url": "Kopiraj PDF link",
|
||||
"download_pdf": "Preuzmi PDF",
|
||||
"save": "Sačuvaj",
|
||||
"create": "Napravi",
|
||||
"cancel": "Otkaži",
|
||||
"update": "Ažuriraj",
|
||||
"deselect": "Poništi izbor",
|
||||
"download": "Preuzmi",
|
||||
"from_date": "Od Datuma",
|
||||
"to_date": "Do Datuma",
|
||||
"from": "Od",
|
||||
"to": "Do",
|
||||
"from": "Pošiljalac",
|
||||
"to": "Primalac",
|
||||
"sort_by": "Rasporedi Po",
|
||||
"ascending": "Rastuće",
|
||||
"descending": "Opadajuće",
|
||||
"subject": "Predmet",
|
||||
"body": "Telo",
|
||||
"message": "Poruka",
|
||||
"send": "Pošalji",
|
||||
"go_back": "Idi nazad",
|
||||
"back_to_login": "Nazad na prijavu?",
|
||||
"home": "Početna",
|
||||
@ -78,7 +83,11 @@
|
||||
"street_1": "Adresa 1",
|
||||
"street_2": "Adresa 2",
|
||||
"action_failed": "Akcija nije uspela",
|
||||
"retry": "Pokušaj ponovo"
|
||||
"retry": "Pokušaj ponovo",
|
||||
"choose_note": "Odaberi napomenu",
|
||||
"no_note_found": "Ne postoje sačuvane napomene",
|
||||
"insert_note": "Unesi belešku",
|
||||
"copied_pdf_url_clipboard": "Link do PDF fajla kopiran!"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Odaberi godinu",
|
||||
@ -124,11 +133,19 @@
|
||||
"percent": "Procenat",
|
||||
"compound_tax": "Složeni porez"
|
||||
},
|
||||
"global_search": {
|
||||
"search": "Pretraga...",
|
||||
"customers": "Klijenti",
|
||||
"users": "Korisnici",
|
||||
"no_results_found": "Nema rezultata"
|
||||
},
|
||||
"customers": {
|
||||
"title": "Klijenti",
|
||||
"add_customer": "Dodaj Klijenta",
|
||||
"contacts_list": "Lista klijenata",
|
||||
"name": "Naziv",
|
||||
"mail": "Mail | Mail-ovi",
|
||||
"statement": "Izjava",
|
||||
"display_name": "Naziv koji se prikazuje",
|
||||
"primary_contact_name": "Primarna kontakt osoba",
|
||||
"contact_name": "Naziv kontakt osobe",
|
||||
@ -137,6 +154,8 @@
|
||||
"address": "Adresa",
|
||||
"phone": "Telefon",
|
||||
"website": "Veb stranica",
|
||||
"overview": "Pregled",
|
||||
"enable_portal": "Uključi portal",
|
||||
"country": "Država",
|
||||
"state": "Savezna država",
|
||||
"city": "Grad",
|
||||
@ -146,6 +165,7 @@
|
||||
"password": "Šifra",
|
||||
"street_number": "Broj ulice",
|
||||
"primary_currency": "Primarna valuta",
|
||||
"description": "Opis",
|
||||
"add_new_customer": "Dodaj novog klijenta",
|
||||
"save_customer": "Sačuvaj klijenta",
|
||||
"update_customer": "Ažuriraj klijenta",
|
||||
@ -158,12 +178,17 @@
|
||||
"copy_billing_address": "Kopiraj iz adrese za naplatu",
|
||||
"no_customers": "Još uvek nema klijenata!",
|
||||
"no_customers_found": "Klijenti nisu pronađeni!",
|
||||
"no_contact": "No contact",
|
||||
"no_contact_name": "No contact name",
|
||||
"list_of_customers": "Ova sekcija će da sadrži spisak klijenata.",
|
||||
"primary_display_name": "Primarni naziv koji se prikazuje",
|
||||
"select_currency": "Odaberi valutu",
|
||||
"select_a_customer": "Odaberi klijenta",
|
||||
"type_or_click": "Unesi tekst ili klikni da izabereš",
|
||||
|
||||
"new_transaction": "Nova transakcija",
|
||||
"no_matching_customers": "Ne postoje klijenti koji odgovaraju pretrazi!",
|
||||
"phone_number": "Broj telefona",
|
||||
"create_date": "Datum kreiranja",
|
||||
"confirm_delete": "Nećeš moći da povratiš ovog klijenta i sve njegove Fakture, Profakture i Uplate. | Nećeš moći da povratiš ove klijente i njihove Fakture, Profakture i Uplate.",
|
||||
"created_message": "Klijent uspešno kreiran",
|
||||
"updated_message": "Klijent uspešno ažuriran",
|
||||
@ -178,6 +203,7 @@
|
||||
"added_on": "Datum dodavanja",
|
||||
"price": "Cena",
|
||||
"date_of_creation": "Datum kreiranja",
|
||||
"not_selected": "No item selected",
|
||||
"action": "Akcije",
|
||||
"add_item": "Dodaj Stavku",
|
||||
"save_item": "Sačuvaj Stavku",
|
||||
@ -213,7 +239,7 @@
|
||||
"partially_paid": "Delimično Plaćeno",
|
||||
"total": "Ukupno za plaćanje",
|
||||
"discount": "Popust",
|
||||
"sub_total": "Ukupno",
|
||||
"sub_total": "Osnovica za obračun PDV-a",
|
||||
"estimate_number": "Broj profakture",
|
||||
"ref_number": "Poziv na broj",
|
||||
"contact": "Kontakt",
|
||||
@ -248,6 +274,7 @@
|
||||
"required": "Polje je obavezno"
|
||||
},
|
||||
"accepted": "Prihvaćeno",
|
||||
"rejected": "Rejected",
|
||||
"sent": "Poslato",
|
||||
"draft": "U izradi",
|
||||
"declined": "Odbijeno",
|
||||
@ -262,7 +289,6 @@
|
||||
"list_of_estimates": "Ova sekcija će da sadrži spisak Profaktura.",
|
||||
"mark_as_rejected": "Označi kao odbijeno",
|
||||
"mark_as_accepted": "Označi kao prihvaćeno",
|
||||
|
||||
"marked_as_accepted_message": "Profaktura označena kao prihvaćena",
|
||||
"marked_as_rejected_message": "Profaktura označena kao odbijena",
|
||||
"confirm_delete": "Nećeš moći da povratiš ovu Profakturu | Nećeš moći da povratiš ove Profakture",
|
||||
@ -295,6 +321,9 @@
|
||||
"all": "Sve",
|
||||
"paid": "Plaćeno",
|
||||
"unpaid": "Neplaćeno",
|
||||
"viewed": "Viewed",
|
||||
"overdue": "Overdue",
|
||||
"completed": "Completed",
|
||||
"customer": "KLIJENT",
|
||||
"paid_status": "STATUS UPLATE",
|
||||
"ref_no": "POZIV NA BROJ",
|
||||
@ -303,7 +332,7 @@
|
||||
"partially_paid": "Delimično plaćeno",
|
||||
"total": "Ukupno za plaćanje",
|
||||
"discount": "Popust",
|
||||
"sub_total": "Ukupno",
|
||||
"sub_total": "Osnovica za obračun PDV-a",
|
||||
"invoice": "Faktura | Fakture",
|
||||
"invoice_number": "Broj Fakture",
|
||||
"ref_number": "Poziv na broj",
|
||||
@ -407,19 +436,22 @@
|
||||
"edit_payment": "Izmeni Uplatu",
|
||||
"view_payment": "Vidi Uplatu",
|
||||
"add_new_payment": "Dodaj Novu Uplatu",
|
||||
"send_payment_receipt": "Pošalji potvrdu o plaćanju",
|
||||
"send_payment_receipt": "Pošalji potvrdu o uplati",
|
||||
"send_payment": "Pošalji Uplatu",
|
||||
"save_payment": "Sačuvaj Uplatu",
|
||||
"update_payment": "Ažuriraj Uplatu",
|
||||
"payment": "Uplata | Uplate",
|
||||
"no_payments": "Još uvek nema uplata!",
|
||||
"not_selected": "Not selected",
|
||||
"no_invoice": "No invoice",
|
||||
"no_matching_payments": "Ne postoje uplate koje odgovaraju pretrazi!",
|
||||
"list_of_payments": "Ova sekcija će da sadrži listu uplata.",
|
||||
"select_payment_mode": "Odaberi način plaćanja",
|
||||
"confirm_mark_as_sent": "Ovo plaćanje će biti označena kao Poslata",
|
||||
"confirm_send_payment": "Ovo plaćanje će biti poslato putem Email-a klijentu",
|
||||
"send_payment_successfully": "Plaćanje uspešno poslato",
|
||||
"user_email_does_not_exist": "Email adresa klijenta ne postoji",
|
||||
"something_went_wrong": "nešto je krenulo naopako",
|
||||
|
||||
"confirm_delete": "Nećeš moći da povratiš ovu Uplatu | Nećeš moći da povratiš ove Uplate",
|
||||
"created_message": "Uplata uspešno kreirana",
|
||||
"updated_message": "Uplata uspešno ažurirana",
|
||||
@ -428,7 +460,7 @@
|
||||
},
|
||||
"expenses": {
|
||||
"title": "Rashodi",
|
||||
"expenses_list": "List Rashoda",
|
||||
"expenses_list": "Lista Rashoda",
|
||||
"select_a_customer": "Odaberi klijenta",
|
||||
"expense_title": "Naslov",
|
||||
"customer": "Klijent",
|
||||
@ -441,9 +473,10 @@
|
||||
"receipt": "Račun",
|
||||
"amount": "Iznos",
|
||||
"action": "Akcija",
|
||||
"not_selected": "Not selected",
|
||||
"note": "Napomena",
|
||||
"category_id": "ID kategorije",
|
||||
"date": "Datum Rashoda",
|
||||
"date": "Datum",
|
||||
"add_expense": "Dodaj Rashod",
|
||||
"add_new_expense": "Dodaj Novi Rashod",
|
||||
"save_expense": "Sačuvaj Rashod",
|
||||
@ -454,7 +487,6 @@
|
||||
"expense": "Rashod | Rashodi",
|
||||
"no_expenses": "Još uvek nema rashoda!",
|
||||
"list_of_expenses": "Ova sekcija će da sadrži listu rashoda.",
|
||||
|
||||
"confirm_delete": "Nećeš moći da povratiš ovaj Rashod | Nećeš moći da povratiš ove Rashode",
|
||||
"created_message": "Rashod uspešno kreiran",
|
||||
"updated_message": "Rashod uspešno ažuriran",
|
||||
@ -486,6 +518,32 @@
|
||||
"retype_password": "Ponovo unesi šifru",
|
||||
"login_placeholder": "mail@example.com"
|
||||
},
|
||||
"users": {
|
||||
"title": "Korisnici",
|
||||
"users_list": "Lista korisnika",
|
||||
"name": "Ime i prezime",
|
||||
"description": "Opis",
|
||||
"added_on": "Datum dodavanja",
|
||||
"date_of_creation": "Datum kreiranja",
|
||||
"action": "Akcija",
|
||||
"add_user": "Dodaj Korisnika",
|
||||
"save_user": "Sačuvaj Korisnika",
|
||||
"update_user": "Ažuriraj Korisnika",
|
||||
"user": "Korisnik | Korisnici",
|
||||
"add_new_user": "Dodaj novog korisnika",
|
||||
"new_user": "Nov Korisnik",
|
||||
"edit_user": "Izmeni Korisnika",
|
||||
"no_users": "Još uvek nema korisnika!",
|
||||
"list_of_users": "Ova sekcija će da sadrži listu korisnika.",
|
||||
"email": "Email",
|
||||
"phone": "Broj telefona",
|
||||
"password": "Šifra",
|
||||
"user_attached_message": "Ne možete obrisati stavku koja je već u upotrebi",
|
||||
"confirm_delete": "Nećeš moći da povratiš ovog Korisnika | Nećeš moći da povratiš ove Korisnike",
|
||||
"created_message": "Korisnik uspešno napravljen",
|
||||
"updated_message": "Korisnik uspešno ažuriran",
|
||||
"deleted_message": "Korisnik uspešno obrisan | Korisnici uspešno obrisani"
|
||||
},
|
||||
"reports": {
|
||||
"title": "Izveštaj",
|
||||
"from_date": "Datum od",
|
||||
@ -556,7 +614,12 @@
|
||||
"notifications": "Obaveštenja",
|
||||
"tax_types": "Tipovi Poreza",
|
||||
"expense_category": "Kategorije Rashoda",
|
||||
"update_app": "Ažuriraj Aplikaciju"
|
||||
"update_app": "Ažuriraj Aplikaciju",
|
||||
"backup": "Bekap",
|
||||
"file_disk": "File Disk",
|
||||
"custom_fields": "Prilagođena polja",
|
||||
"payment_modes": "Način plaćanja",
|
||||
"notes": "Napomene"
|
||||
},
|
||||
"title": "Podešavanja",
|
||||
"setting": "Podešavanje | Podešavanja",
|
||||
@ -620,6 +683,42 @@
|
||||
"save": "Sačuvaj",
|
||||
"updated_message": "Podaci o firmi uspešno sačuvani"
|
||||
},
|
||||
"custom_fields": {
|
||||
"title": "Prilagođena polja",
|
||||
"section_description": "Prilagodite vaše Fakture, Profakture i Uplate (priznanice) sa svojim poljima. Postarajte se da koristite polja navedena ispod na formatu adrese na stranici Podešavanja/Prilagođavanje.",
|
||||
"add_custom_field": "Dodaj prilagođeno polje",
|
||||
"edit_custom_field": "Izmeni prilagođeno polje",
|
||||
"field_name": "Naziv polja",
|
||||
"label": "Oznaka",
|
||||
"type": "Tip",
|
||||
"name": "Naziv",
|
||||
"required": "Obavezno",
|
||||
"placeholder": "Opis polja (Placeholder)",
|
||||
"help_text": "Pomoćni tekst",
|
||||
"default_value": "Podrazumevana vrednost",
|
||||
"prefix": "Prefiks",
|
||||
"starting_number": "Početni broj",
|
||||
"model": "Model",
|
||||
"help_text_description": "Unesite opis koji će pomoći korisnicima da razumeju svrhu ovog prilagođenog polja.",
|
||||
"suffix": "Sufiks",
|
||||
"yes": "Da",
|
||||
"no": "Ne",
|
||||
"order": "Redosled",
|
||||
"custom_field_confirm_delete": "Nećeš moći da povratiš ovo prilagođeno polje",
|
||||
"already_in_use": "Prilagođeno polje je već u upotrebi",
|
||||
"deleted_message": "Prilagođeno polje je uspešno obrisano",
|
||||
"options": "opcije",
|
||||
"add_option": "Dodaj opcije",
|
||||
"add_another_option": "Dodaj još jednu opciju",
|
||||
"sort_in_alphabetical_order": "Poređaj po Abecedi",
|
||||
"add_options_in_bulk": "Grupno dodavanje opcija",
|
||||
"use_predefined_options": "Koristi predefinisane opcije",
|
||||
"select_custom_date": "Odaberi datum",
|
||||
"select_relative_date": "Odaberi relativan datum",
|
||||
"ticked_by_default": "Podrazumevano odabrano",
|
||||
"updated_message": "Prilagođeno polje uspešno ažurirano",
|
||||
"added_message": "Prilagođeno polje uspešno dodato"
|
||||
},
|
||||
"customization": {
|
||||
"customization": "prilagođavanje",
|
||||
"save": "Sačuvaj",
|
||||
@ -648,38 +747,54 @@
|
||||
"address_setting_updated": "Podešavanje adrese uspešno ažurirano"
|
||||
},
|
||||
"updated_message": "Podaci o firmi su uspešno ažurirani",
|
||||
|
||||
"invoices": {
|
||||
"title": "Fakture",
|
||||
"notes": "Napomene",
|
||||
"invoice_prefix": "Prefiks faktura",
|
||||
"invoice_number_length": "Invoice number length",
|
||||
"default_invoice_email_body": "Podrazumevan sadržaj email-a za Fakture",
|
||||
"invoice_settings": "Podešavanje za fakture",
|
||||
"autogenerate_invoice_number": "Automatski-generiši broj fakture",
|
||||
"invoice_setting_description": "Onemogući ovo, Ako Vi ne želite da automatski-generišete broj fakture kada pravite novu fakturu.",
|
||||
"invoice_email_attachment": "Send invoices as attachments",
|
||||
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_invoice_prefix": "Unesite prefiks fakture",
|
||||
"terms_and_conditions": "Uslovi Korišćenja",
|
||||
"company_address_format": "Format adrese firme",
|
||||
"shipping_address_format": "Format adrese za dostavu firme",
|
||||
"billing_address_format": "Format adrese za naplatu firme",
|
||||
"invoice_setting_updated": "Podešavanje za fakture je uspešno sačuvano"
|
||||
},
|
||||
|
||||
"estimates": {
|
||||
"title": "Profakture",
|
||||
"estimate_prefix": "Prefiks profaktura",
|
||||
"estimate_number_length": "Estimate number length",
|
||||
"default_estimate_email_body": "Podrazumevan sadržaj email-a za Profakture",
|
||||
"estimate_settings": "Podešavanje za profakture",
|
||||
"autogenerate_estimate_number": "Automatski-generiši broj profakture",
|
||||
"estimate_setting_description": "Onemogući ovo, Ako Vi ne želite da automatski-generišete broj profakture kada pravite novu profakturu.",
|
||||
"estimate_email_attachment": "Send estimates as attachments",
|
||||
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_estimate_prefix": "Unesite prefiks profakture",
|
||||
"estimate_setting_updated": "Podešavanje za profakture je uspešno sačuvano"
|
||||
"estimate_setting_updated": "Podešavanje za profakture je uspešno sačuvano",
|
||||
"company_address_format": "Format adrese firme",
|
||||
"billing_address_format": "Format adrese za naplatu firme",
|
||||
"shipping_address_format": "Format adrese za dostavu firme"
|
||||
},
|
||||
|
||||
"payments": {
|
||||
"title": "Plaćanja",
|
||||
"title": "Uplate",
|
||||
"description": "Način plaćanja",
|
||||
"payment_prefix": "Prefiks uplata",
|
||||
"payment_number_length": "Payment number lenght",
|
||||
"default_payment_email_body": "Podrazumevan sadržaj email-a za potvrdu o plaćanju (račun)",
|
||||
"payment_settings": "Podešavanje za plaćanja",
|
||||
"autogenerate_payment_number": "Automatski-generiši broj uplate",
|
||||
"payment_setting_description": "Onemogući ovo, Ako ne želite da automatski-generišete broj uplate kada pravite novu uplatu.",
|
||||
"payment_email_attachment": "Send payments as attachments",
|
||||
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||
"enter_payment_prefix": "Unesite prefiks uplate",
|
||||
"payment_setting_updated": "Podešavanje za plaćanja je uspešno sačuvano",
|
||||
"payment_mode": "Način Plaćanja",
|
||||
"payment_modes": "Način Plaćanja",
|
||||
"add_payment_mode": "Dodaj način plaćanja",
|
||||
"edit_payment_mode": "Izmeni način plaćanja",
|
||||
"mode_name": "Način plaćanja",
|
||||
@ -687,12 +802,13 @@
|
||||
"payment_mode_updated": "Način plaćanja ažuriran",
|
||||
"payment_mode_confirm_delete": "Nećeš moći da povratiš ovaj Način Plaćanja",
|
||||
"already_in_use": "Način plaćanja se već koristi",
|
||||
"deleted_message": "Način plaćanja uspešno obrisan"
|
||||
"deleted_message": "Način plaćanja uspešno obrisan",
|
||||
"company_address_format": "Format adrese firme",
|
||||
"from_customer_address_format": "Format adrese klijenta"
|
||||
},
|
||||
|
||||
"items": {
|
||||
"title": "Stavke",
|
||||
"units": "jedinice",
|
||||
"units": "Jedinice",
|
||||
"add_item_unit": "Dodaj jedinicu stavke",
|
||||
"edit_item_unit": "Izmeni jedinicu stavke",
|
||||
"unit_name": "Naziv jedinice",
|
||||
@ -701,6 +817,21 @@
|
||||
"item_unit_confirm_delete": "Nećeš moći da povratiš ovu jedinicu stavke",
|
||||
"already_in_use": "Jedinica stavke se već koristi",
|
||||
"deleted_message": "Jedinica stavke uspešno obrisana"
|
||||
},
|
||||
"notes": {
|
||||
"title": "Napomene",
|
||||
"description": "Uštedite vreme pravljeći napomene i koristeći ih na fakturama, profakturama i uplatama.",
|
||||
"notes": "Napomene",
|
||||
"type": "Tip",
|
||||
"add_note": "Dodaj Napomenu",
|
||||
"add_new_note": "Dodaj novu Napomenu",
|
||||
"name": "Naziv",
|
||||
"edit_note": "Izmeni Napomenu",
|
||||
"note_added": "Napomena uspešno dodata",
|
||||
"note_updated": "Napomena uspešno ažurirana",
|
||||
"note_confirm_delete": "Nećeš moći da povratiš ovu Napomenu",
|
||||
"already_in_use": "Napomena se već koristi",
|
||||
"deleted_message": "Napomena uspešno obrisana"
|
||||
}
|
||||
},
|
||||
"account_settings": {
|
||||
@ -768,7 +899,7 @@
|
||||
},
|
||||
"preferences": {
|
||||
"currency": "Valuta",
|
||||
"language": "Jezik",
|
||||
"default_language": "Jezik",
|
||||
"time_zone": "Vremenska Zona",
|
||||
"fiscal_year": "Finansijska Godina",
|
||||
"date_format": "Format datuma",
|
||||
@ -779,10 +910,10 @@
|
||||
"preference": "Preferencija | Preferencije",
|
||||
"general_settings": "Podrazumevane preferencije za sistem",
|
||||
"updated_message": "Preferencije su uspešno ažurirane",
|
||||
"select_language": "izaberi jezik",
|
||||
"select_time_zone": "izaberi vremensku zonu",
|
||||
"select_date_formate": "izaberi format datuma",
|
||||
"select_financial_year": "izaberi finansijsku godinu"
|
||||
"select_language": "Izaberi Jezik",
|
||||
"select_time_zone": "Izaberi Vremensku Zonu",
|
||||
"select_date_format": "Izaberi Format Datuma",
|
||||
"select_financial_year": "Izaberi Finansijsku Godinu"
|
||||
},
|
||||
"update_app": {
|
||||
"title": "Ažuriraj aplikaciju",
|
||||
@ -790,6 +921,7 @@
|
||||
"check_update": "Proveri ažuriranost",
|
||||
"avail_update": "Dostupna je nova verzija",
|
||||
"next_version": "Sledeća verzija",
|
||||
"requirements": "Zahtevi",
|
||||
"update": "Ažuriraj sad",
|
||||
"update_progress": "Ažuriranje je u toku...",
|
||||
"progress_text": "Trajaće svega par minuta. Nemojte osvežavati ili zatvoriti stranicu dok ažuriranje ne bude gotovo",
|
||||
@ -799,10 +931,92 @@
|
||||
"download_zip_file": "Preuzmi ZIP paket",
|
||||
"unzipping_package": "Raspakivanje paketa",
|
||||
"copying_files": "Kopiranje datoteka",
|
||||
"deleting_files": "Brisanje fajlova koji nisu u upotrebi",
|
||||
"running_migrations": "Migracije u toku",
|
||||
"finishing_update": "Završavanje ažuriranja",
|
||||
"update_failed": "Neuspešno ažuriranje",
|
||||
"update_failed_text": "Žao mi je! Tvoje ažuriranje nije uspelo na koraku broj: {step} "
|
||||
"update_failed_text": "Žao mi je! Tvoje ažuriranje nije uspelo na koraku broj: {step} korak"
|
||||
},
|
||||
"backup": {
|
||||
"title": "Bekap | Bekapi",
|
||||
"description": "Bekap je zip arhiva koja sadrži sve fajlove iz foldera koje ste specificirali, takođe sadrži bekap baze.",
|
||||
"new_backup": "Dodaj novi Bekap",
|
||||
"create_backup": "Napravi Bekap",
|
||||
"select_backup_type": "Izaberi tip Bekapa",
|
||||
"backup_confirm_delete": "Nećeš moći da povratiš ovaj Bekap",
|
||||
"path": "putanja",
|
||||
"new_disk": "Novi Disk",
|
||||
"created_at": "datum kreiranja",
|
||||
"size": "veličina",
|
||||
"dropbox": "dropbox",
|
||||
"local": "lokalni",
|
||||
"healthy": "zdrav",
|
||||
"amount_of_backups": "broj bekapa",
|
||||
"newest_backups": "najnoviji bekapi",
|
||||
"used_storage": "korišćeno skladište",
|
||||
"select_disk": "Izaberi Disk",
|
||||
"action": "Akcija",
|
||||
"deleted_message": "Bekap uspešno obrisan",
|
||||
"created_message": "Bekap uspešno napravljen",
|
||||
"invalid_disk_credentials": "Pogrešni kredencijali za odabrani disk"
|
||||
},
|
||||
"disk": {
|
||||
"title": "File Disk | File Disks",
|
||||
"description": "Podrazumevano ponašanje je da Crater koristi lokalni disk za čuvanje bekapa, avatara i ostalih slika. Možete podesiti više od jednog disk drajvera od provajdera poput DigitalOcean, S3 i Dropbox po vašoj želji.",
|
||||
"created_at": "datum kreiranja",
|
||||
"dropbox": "dropbox",
|
||||
"name": "Naziv",
|
||||
"driver": "Drajver",
|
||||
"disk_type": "Tip",
|
||||
"disk_name": "Naziv Diska",
|
||||
"new_disk": "Dodaj novi Disk",
|
||||
"filesystem_driver": "Filesystem Driver",
|
||||
"local_driver": "lokalni Drajver",
|
||||
"local_root": "local Root",
|
||||
"public_driver": "Public Driver",
|
||||
"public_root": "Public Root",
|
||||
"public_url": "Public URL",
|
||||
"public_visibility": "Public Visibility",
|
||||
"media_driver": "Media Driver",
|
||||
"media_root": "Media Root",
|
||||
"aws_driver": "AWS Driver",
|
||||
"aws_key": "AWS Key",
|
||||
"aws_secret": "AWS Secret",
|
||||
"aws_region": "AWS Region",
|
||||
"aws_bucket": "AWS Bucket",
|
||||
"aws_root": "AWS Root",
|
||||
"do_spaces_type": "Do Spaces type",
|
||||
"do_spaces_key": "Do Spaces key",
|
||||
"do_spaces_secret": "Do Spaces Secret",
|
||||
"do_spaces_region": "Do Spaces Region",
|
||||
"do_spaces_bucket": "Do Spaces Bucket",
|
||||
"do_spaces_endpoint": "Do Spaces Endpoint",
|
||||
"do_spaces_root": "Do Spaces Root",
|
||||
"dropbox_type": "Dropbox Type",
|
||||
"dropbox_token": "Dropbox Token",
|
||||
"dropbox_key": "Dropbox Key",
|
||||
"dropbox_secret": "Dropbox Secret",
|
||||
"dropbox_app": "Dropbox App",
|
||||
"dropbox_root": "Dropbox Root",
|
||||
"default_driver": "Podrazumevani Drajver",
|
||||
"is_default": "DA LI JE PODRAZUMEVAN",
|
||||
"set_default_disk": "Postavi Podrazumevani Disk",
|
||||
"set_default_disk_confirm": "Ovaj disk će biti postavljen kao podrazumevan i svi novi PDF fajlovi će biti sačuvani na ovom disku",
|
||||
"success_set_default_disk": "Disk je uspešno postavljen kao podrazumevan",
|
||||
"save_pdf_to_disk": "Sačuvaj PDF fajlove na Disk",
|
||||
"disk_setting_description": " Uključite ovo ako želite da sačuvate kopiju PDF fajla svake Fakture, Profakture i Uplate na vaš podrazumevani disk automatski. Uključivanjem ove opcije ćete smanjiti vreme učitavanja pri pregledu PDF fajlova.",
|
||||
"select_disk": "Izaberi Disk",
|
||||
"disk_settings": "Disk Podešavanja",
|
||||
"confirm_delete": "Ovo neće uticati na vaše postojeće fajlove i foldere na navedenom disku, ali će se konfiguracija vašeg diska izbrisati iz Cratera.",
|
||||
"action": "Akcija",
|
||||
"edit_file_disk": "Izmeni File Disk",
|
||||
"success_create": "Disk uspešno dodat",
|
||||
"success_update": "Disk uspešno ažuriran",
|
||||
"error": "Dodavanje diska nije uspelo",
|
||||
"deleted_message": "File Disk uspešno obrisan",
|
||||
"disk_variables_save_successfully": "Disk uspešno podešen",
|
||||
"disk_variables_save_error": "Podešavanje diska nije uspelo.",
|
||||
"invalid_disk_credentials": "Pogrešan kredencijal za disk koji je naveden"
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@ -845,8 +1059,10 @@
|
||||
"port": "Port baze podataka",
|
||||
"password": "Šifra baze podataka",
|
||||
"app_url": "URL aplikacije",
|
||||
"app_domain": "Domen aplikacije",
|
||||
"username": "Korisničko ime baze podataka",
|
||||
"db_name": "Naziv baze podataka",
|
||||
"db_path": "Putanja do baze",
|
||||
"desc": "Kreiraj bazu podataka na svom serveru i postavi kredencijale prateći obrazac u nastavku."
|
||||
},
|
||||
"permissions": {
|
||||
@ -872,7 +1088,6 @@
|
||||
"from_mail": "E-mail adresa pošiljaoca",
|
||||
"encryption": "E-mail enkripcija",
|
||||
"mail_config_desc": "Ispod se nalazi forma za podešavanje E-mail drajvera za slanje pošte iz aplikacije. Takođe možete podesiti provajdere treće strane kao Sendgrid, SES itd."
|
||||
|
||||
},
|
||||
"req": {
|
||||
"system_req": "Sistemski zahtevi",
|
||||
@ -901,7 +1116,9 @@
|
||||
"invoices_and_estimates": "fakture i profakture sa mogućnošću odabira više obrazaca"
|
||||
},
|
||||
"validation": {
|
||||
"invalid_url": "Nevažeći URL (ex: http://www.crater.com)",
|
||||
"invalid_phone": "Pogrešan Broj Telefona",
|
||||
"invalid_url": "Nevažeći URL (primer: http://www.crater.com)",
|
||||
"invalid_domain_url": "Pogrešan URL (primer: crater.com)",
|
||||
"required": "Obavezno polje",
|
||||
"email_incorrect": "Pogrešan E-mail",
|
||||
"email_already_taken": "Navedeni E-mail je zauzet",
|
||||
@ -926,14 +1143,55 @@
|
||||
"price_minvalue": "Cena mora biti veća od 0",
|
||||
"amount_maxlength": "Iznos ne može da ima više od 20 cifara",
|
||||
"amount_minvalue": "Iznos mora biti veći od 0",
|
||||
"description_maxlength": "Opis ne može da ima više od 255 karaktera",
|
||||
"description_maxlength": "Opis ne može da ima više od 65,000 karaktera",
|
||||
"subject_maxlength": "Predmet ne može da ima više od 100 karaktera",
|
||||
"message_maxlength": "Poruka ne može da ima više od 255 karaktera",
|
||||
"maximum_options_error": "Maksimalan broj opcija je izabran. Prvo uklonite izabranu opciju da biste izabrali drugu",
|
||||
"notes_maxlength": "Napomena ne može da ima više od 255 karaktera",
|
||||
"notes_maxlength": "Napomena ne može da ima više od 65,000 karaktera",
|
||||
"address_maxlength": "Adresa ne može da ima više od 255 karaktera",
|
||||
"ref_number_maxlength": "Poziv na broj ne može da ima više od 225 karaktera",
|
||||
"prefix_maxlength": "Prefiks ne može da ima više od 5 karaktera",
|
||||
"something_went_wrong": "nešto je krenulo naopako"
|
||||
}
|
||||
"something_went_wrong": "nešto je krenulo naopako",
|
||||
"number_length_minvalue": "Number lenght should be greater than 0"
|
||||
},
|
||||
"pdf_estimate_label": "Profaktura",
|
||||
"pdf_estimate_number": "Broj Profakture",
|
||||
"pdf_estimate_date": "Datum Profakture",
|
||||
"pdf_estimate_expire_date": "Datum isteka Profakture",
|
||||
"pdf_invoice_label": "Faktura",
|
||||
"pdf_invoice_number": "Broj Fakture",
|
||||
"pdf_invoice_date": "Datum Fakture",
|
||||
"pdf_invoice_due_date": "Datum dospeća Fakture",
|
||||
"pdf_notes": "Napomena",
|
||||
"pdf_items_label": "Stavke",
|
||||
"pdf_quantity_label": "Količina",
|
||||
"pdf_price_label": "Cena",
|
||||
"pdf_discount_label": "Popust",
|
||||
"pdf_amount_label": "Iznos",
|
||||
"pdf_subtotal": "Osnovica za obračun PDV-a",
|
||||
"pdf_total": "Ukupan iznos",
|
||||
"pdf_payment_label": "Payment",
|
||||
"pdf_payment_receipt_label": "POTVRDA O UPLATI",
|
||||
"pdf_payment_date": "Datum Uplate",
|
||||
"pdf_payment_number": "Broj Uplate",
|
||||
"pdf_payment_mode": "Način Uplate",
|
||||
"pdf_payment_amount_received_label": "Iznos Uplate",
|
||||
"pdf_expense_report_label": "IZVEŠTAJ O RASHODIMA",
|
||||
"pdf_total_expenses_label": "RASHODI UKUPNO",
|
||||
"pdf_profit_loss_label": "IZVEŠTAJ O PRIHODIMA I RASHODIMA",
|
||||
"pdf_sales_customers_label": "Sales Customer Report",
|
||||
"pdf_sales_items_label": "Sales Item Report",
|
||||
"pdf_tax_summery_label": "Tax Summary Report",
|
||||
"pdf_income_label": "PRIHOD",
|
||||
"pdf_net_profit_label": "NETO PROFIT",
|
||||
"pdf_customer_sales_report": "Izveštaj o Prodaji: Po Klijentu",
|
||||
"pdf_total_sales_label": "PRODAJA UKUPNO",
|
||||
"pdf_item_sales_label": "Izveštaj o Prodaji: Po Stavci",
|
||||
"pdf_tax_report_label": "IZVEŠTAJ O POREZIMA",
|
||||
"pdf_total_tax_label": "UKUPNO POREZ",
|
||||
"pdf_tax_types_label": "Tipovi Poreza",
|
||||
"pdf_expenses_label": "Rashodi",
|
||||
"pdf_bill_to": "Račun za,",
|
||||
"pdf_ship_to": "Isporučiti za,",
|
||||
"pdf_received_from": "Poslat od strane:"
|
||||
}
|
||||
1197
resources/assets/js/plugins/sv.json
Normal file
1197
resources/assets/js/plugins/sv.json
Normal file
File diff suppressed because it is too large
Load Diff
1197
resources/assets/js/plugins/tr.json
Normal file
1197
resources/assets/js/plugins/tr.json
Normal file
File diff suppressed because it is too large
Load Diff
1193
resources/assets/js/plugins/vi.json
Normal file
1193
resources/assets/js/plugins/vi.json
Normal file
File diff suppressed because it is too large
Load Diff
1197
resources/assets/js/plugins/zh.json
Normal file
1197
resources/assets/js/plugins/zh.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -26,6 +26,7 @@ import estimateTemplate from './modules/estimate-template'
|
||||
import invoiceTemplate from './modules/invoice-template'
|
||||
import search from './modules/search'
|
||||
import notes from './modules/notes'
|
||||
import notification from './modules/notification'
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
||||
@ -76,5 +77,6 @@ export default new Vuex.Store({
|
||||
invoiceTemplate,
|
||||
search,
|
||||
notes,
|
||||
notification,
|
||||
},
|
||||
})
|
||||
|
||||
@ -13,7 +13,6 @@ export const login = ({ commit }, data) => {
|
||||
commit('user/' + userTypes.RESET_CURRENT_USER, null, { root: true })
|
||||
commit(rootTypes.UPDATE_APP_LOADING_STATUS, false, { root: true })
|
||||
|
||||
window.toastr['success']('Login Successful')
|
||||
resolve(response)
|
||||
})
|
||||
.catch((err) => {
|
||||
@ -28,7 +27,7 @@ export const setLogoutFalse = ({ state, commit }) => {
|
||||
commit(types.SET_LOGOUT, false)
|
||||
}
|
||||
|
||||
export const logout = ({ state, commit }) => {
|
||||
export const logout = ({ state, commit, dispatch }) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (state.isLoggedOut) {
|
||||
resolve()
|
||||
@ -40,7 +39,14 @@ export const logout = ({ state, commit }) => {
|
||||
.get('/auth/logout')
|
||||
.then(() => {
|
||||
router.push('/login')
|
||||
window.toastr['success']('Logged out!', 'Success')
|
||||
dispatch(
|
||||
'notification/showNotification',
|
||||
{
|
||||
type: 'success',
|
||||
message: 'Logged out successfully.',
|
||||
},
|
||||
{ root: true }
|
||||
)
|
||||
})
|
||||
.catch((err) => {
|
||||
router.push('/login')
|
||||
@ -48,16 +54,3 @@ export const logout = ({ state, commit }) => {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export const checkMail = ({ commit }, data) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.axios
|
||||
.post('/api/v1/is-registered', data)
|
||||
.then((response) => {
|
||||
resolve(response)
|
||||
})
|
||||
.catch((err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user