Compare commits

...

49 Commits
4.0.1 ... 4.0.3

Author SHA1 Message Date
d4550e62f8 add 403 migration 2020-12-31 15:39:01 +05:30
ff3846137e fix translations & build 403 2020-12-31 12:33:56 +05:30
b55f8e5391 fix floating errors 2020-12-31 12:16:04 +05:30
0f1d7627ea fix next number issue on estimate & invoice 2020-12-31 11:52:42 +05:30
1be462ef82 fix eslint and prettier config 2020-12-31 11:52:10 +05:30
fa512629d9 build 402 2020-12-23 11:43:31 +05:30
0f99be6cf1 change template button and note-button styles 2020-12-23 11:41:23 +05:30
fae3af2592 fix infinite-looping issue 2020-12-22 17:48:21 +05:30
d1e70c8989 Merge branch 'template-refactor' into 'master'
Template Refactor

See merge request mohit.panjvani/crater-web!653
2020-12-22 08:16:47 +00:00
63094e8112 re-style template selection modals 2020-12-22 13:46:15 +05:30
1b46bddf56 Merge branch 'master' of https://gitlab.com/mohit.panjvani/crater-web into template-refactor 2020-12-22 13:15:55 +05:30
422bf74600 refactor template 2020-12-22 13:15:09 +05:30
d003e61d41 Merge branch 'master' 2020-12-22 13:07:06 +05:30
09f74eb37c Merge branch 'master-date-refactor' into 'master'
Refactor Date Issue

See merge request mohit.panjvani/crater-web!652
2020-12-22 07:24:03 +00:00
9227973a7a refactor date issue 2020-12-22 12:51:44 +05:30
5011543198 Merge branch 'master' 2020-12-22 12:15:27 +05:30
d07b63c365 Merge branch 'fix-user-issue' into 'master'
fix isLoading issue

See merge request mohit.panjvani/crater-web!646
2020-12-22 06:43:23 +00:00
c12e27dbfe remove unnecessary comment 2020-12-22 12:12:58 +05:30
4ea32b94ed Merge branch fix-amount issue on payment 2020-12-22 12:00:28 +05:30
fe93d5236c Merge branch 'fix-price-issue' into 'master'
fix amount int issue

See merge request mohit.panjvani/crater-web!648
2020-12-22 06:29:44 +00:00
5992394bca remove change emit from BaseDatePicker 2020-12-22 11:55:59 +05:30
6c9f5800e5 Sync language files from crowdin 2020-12-22 11:55:47 +05:30
227cebcb0b update license readme 2020-12-19 14:57:50 +05:30
6fd4cc6b3f Merge branch 'master' of https://github.com/bytefury/crater 2020-12-19 14:55:57 +05:30
594c8965c1 Merge pull request #311 from artfuld/master
Swedish locale
2020-12-18 14:03:03 +05:30
2241145a17 Merge branch 'master' into master 2020-12-18 09:31:40 +01:00
34f252b1c9 fix reset-app 2020-12-15 21:02:22 +05:30
89e1d7bc84 no message 2020-12-14 19:21:24 +01:00
f0368deda2 no message 2020-12-14 19:20:42 +01:00
4028551fd8 no message 2020-12-14 19:07:31 +01:00
06f385a28e More corrections after using the program 2020-12-14 19:05:11 +01:00
44aeff425b fix amount int issue 2020-12-14 19:17:54 +05:30
35a38d719c Merge pull request #314 from azaricstefan/SerbianLang
update code for SR
2020-12-14 10:03:32 +05:30
f6ba81e8b7 Some more changes after using the translation 2020-12-12 12:25:53 +01:00
64cb55fd5d Skatt => Moms
Fixed a misspelling
2020-12-12 12:23:26 +01:00
13fe38517c Merge pull request #307 from azaricstefan/SerbianLang
Serbian lang
2020-12-12 16:06:42 +05:30
3bdb501d1d update code for SR 2020-12-12 11:21:08 +01:00
b8adbf4b07 Merge pull request #306 from edevrob/master
PDF templates fix
2020-12-11 20:11:25 +05:30
aa85a9950c no message 2020-12-11 11:31:17 +01:00
8e63efee1b Fullständig översättning till svenska 2020-12-11 11:17:03 +01:00
ea98f03aeb fix isLoading issue 2020-12-11 14:23:04 +05:30
90cd6226be Snart klar med översättningen 2020-12-11 01:38:23 +01:00
9d2df64b2e yarn run production 2020-12-10 23:42:35 +01:00
bade86a24f yarn run dev 2020-12-09 23:35:05 +01:00
c3b57b4888 Adapt Serbian language to 4.0.1 2020-12-09 23:22:05 +01:00
fcfedc5414 Adapt Serbian language to 4.0.1 2020-12-09 23:21:51 +01:00
8dee0da434 PDF templates fix
DomPDF font-weight problems fix
2020-12-09 21:13:56 +02:00
e4ab024422 Svenska 2020-12-09 12:04:42 +01:00
2bd01c4014 update readme and fix #303 2020-12-09 15:10:13 +05:30
56 changed files with 3082 additions and 1561 deletions

View File

@ -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
View 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',
},
}

View File

@ -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');
}
}

View File

@ -77,7 +77,7 @@ 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();
if (!$lastOrder) {
@ -435,7 +435,7 @@ class Estimate extends Model implements HasMedia
if ($logo && $isLocalhost && $isSystem) {
$logo = $logo->getPath();
} else if($logo) {
} else if ($logo) {
$logo = $logo->getFullUrl();
}

View File

@ -81,7 +81,7 @@ 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();
@ -363,11 +363,11 @@ class Invoice extends Model implements HasMedia
}
$invoice = Invoice::with([
'items',
'user',
'invoiceTemplate',
'taxes'
])
'items',
'user',
'invoiceTemplate',
'taxes'
])
->find($invoice->id);
return $invoice;
@ -519,7 +519,7 @@ class Invoice extends Model implements HasMedia
if ($logo && $isLocalhost && $isSystem) {
$logo = $logo->getPath();
} else if($logo) {
} else if ($logo) {
$logo = $logo->getFullUrl();
}

View File

@ -17,10 +17,11 @@ return [
["code"=>"fr", "name" => "French"],
["code"=>"de", "name" => "German"],
["code"=>"it", "name" => "Italian"],
["code"=>"pt_BR", "name" => "Portuguese (Brazilian)"],
["code"=>"es", "name" => "Spanish"],
["code"=>"lv", "name" => "Latvian"],
["code"=>"sr_LA", "name" => "Serbian Latin"],
["code"=>"pt_BR", "name" => "Portuguese (Brazilian)"],
["code"=>"sr", "name" => "Serbian Latin"],
["code"=>"es", "name" => "Spanish"],
["code"=>"sv", "name"=> "Svenska"]
],
/*

View File

@ -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()
{
//
}
}

View File

@ -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()
{
//
}
}

49
package-lock.json generated
View File

@ -5569,22 +5569,6 @@
"which": "^1.2.9"
}
},
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"js-yaml": {
"version": "3.14.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
"integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
@ -5628,9 +5612,9 @@
}
},
"eslint-plugin-prettier": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz",
"integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==",
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.0.tgz",
"integrity": "sha512-tMTwO8iUWlSRZIwS9k7/E4vrTsfvsrcM5p1eftyuqWH25nKsz/o6/54I7jwQ/3zobISyC7wMy9ZsFwgTxOcOpQ==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
@ -5679,6 +5663,12 @@
}
}
},
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"esquery": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
@ -7585,6 +7575,16 @@
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
"dev": true
},
"js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
"integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
},
"jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@ -9412,9 +9412,9 @@
"dev": true
},
"prettier": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz",
"integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
"integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==",
"dev": true
},
"prettier-linter-helpers": {
@ -12076,11 +12076,6 @@
"dropzone": "^5.5.1"
}
},
"vue2-timepicker": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/vue2-timepicker/-/vue2-timepicker-1.1.5.tgz",
"integrity": "sha512-jMbw3BhVguuukwfzO7jvS2Ais7zDX/I9OjFO59IZU7cNv9EfxFAcU7MxDK85FwJLsSTm+ZTMIXAZPnGLLrFLwA=="
},
"vue2-transitions": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/vue2-transitions/-/vue2-transitions-0.3.0.tgz",

View File

@ -11,12 +11,12 @@
"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-config-prettier": "^6.15.0",
"eslint-loader": "^3.0.4",
"eslint-plugin-prettier": "^3.3.0",
"eslint-plugin-vue": "^4.7.1",
"laravel-mix": "^5.0.7",
"prettier": "^2.0.2",
"prettier": "^2.2.1",
"resolve-url-loader": "3.1.0",
"sass": "^1.29.0",
"sass-loader": "^8.0.2",

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

View File

@ -1,5 +1,3 @@
/* flatpickr v4.6.6, @license MIT */
/*!
* tiptap v1.29.6
* (c) 2020 überdosis GbR (limited liability)
@ -103,26 +101,11 @@
*/
/*!
* 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 */

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/assets/js/app.js": "/assets/js/app.js?id=bb2c4150e0caffb9f475",
"/assets/css/crater.css": "/assets/css/crater.css?id=180193a313e33aed1712"
"/assets/js/app.js": "/assets/js/app.js?id=311e432a0e58e62c984f",
"/assets/css/crater.css": "/assets/css/crater.css?id=912348e74f68a41a1b35"
}

View File

@ -68,14 +68,24 @@ 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)
## 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.

View File

@ -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)
},
},
}

View File

@ -15,6 +15,7 @@
</sw-modal>
</div>
</template>
<script>
import { XIcon } from '@vue-hero-icons/solid'
import { mapActions, mapGetters } from 'vuex'

View File

@ -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>

View File

@ -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>

View File

@ -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)
},
},

View File

@ -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>

View File

@ -73,7 +73,7 @@ export default {
callbacks: {
label: function (tooltipItem, data) {
return self.FormatGraphMoney(
tooltipItem.value * 100,
Math.round(tooltipItem.value * 100),
self.defaultCurrency
)
},

View File

@ -10,18 +10,18 @@
"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",
@ -31,15 +31,15 @@
"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,7 +48,7 @@
"actions": "Aktionen",
"subtotal": "ZWISCHENSUMME",
"discount": "RABATT",
"fixed": "Behoben",
"fixed": "Festsatz",
"percentage": "Prozentsatz",
"tax": "Steuer",
"total_amount": "GESAMTSUMME",
@ -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",
@ -84,9 +84,9 @@
"street_2": "Zusatz Strasse",
"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"
},
"dashboard": {
"select_year": "Jahr wählen",
@ -97,9 +97,9 @@
"estimates": "Kostenvoranschläge"
},
"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": "Kosten gesamt",
"net_income": "Einnahmen Netto",
"year": "Jahr"
},
@ -133,18 +133,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 +153,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",
@ -187,7 +187,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"
},
@ -253,7 +253,7 @@
"convert_to_invoice": "Konvertieren in Rechnung",
"mark_as_sent": "Als gesendet markieren",
"send_estimate": "Kostenvoranschlag senden",
"resend_estimate": "Resend Estimate",
"resend_estimate": "Kostenvoranschlag erneut senden",
"record_payment": "Zahlung erfassen",
"add_estimate": "Kostenvoranschlag hinzufügen",
"save_estimate": "Kostenvoranschlag speichern",
@ -339,7 +339,7 @@
"notes": "Hinweise",
"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",
@ -428,7 +428,7 @@
"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",
@ -438,8 +438,8 @@
"list_of_payments": "Dieser Abschnitt enthält die Liste der 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_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.",
@ -508,30 +508,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 Abschnitt enthält die Liste der 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 +551,7 @@
"date_range": "Datumsbereich auswählen"
},
"sales": {
"sales": "Vertrieb",
"sales": "Umsatz",
"date_range": "Datumsbereich auswählen",
"to_date": "bis Datum",
"from_date": "Ab Datum",
@ -604,10 +604,10 @@
"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",
"payment_modes": "Zahlungsarten",
"notes": "Hinweise"
},
"title": "Einstellungen",
@ -641,7 +641,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",
@ -674,7 +674,7 @@
},
"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",
@ -689,7 +689,7 @@
"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",
@ -740,41 +740,41 @@
"title": "Rechnungen",
"notes": "Hinweise",
"invoice_prefix": "Rechnung Präfix",
"default_invoice_email_body": "Default Invoice Email Body",
"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.",
"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",
"default_estimate_email_body": "Rechnung - E-Mail Text",
"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"
"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",
"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.",
"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 +783,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",
@ -800,18 +800,18 @@
},
"notes": {
"title": "Hinweise",
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
"description": "Sparen Sie Zeit, indem Sie Notizen erstellen und diese auf Ihren Rechnungen, Kostenvoranschlägen 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": {
@ -879,7 +879,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 +892,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 +901,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.",
@ -917,56 +917,56 @@
"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",
@ -977,24 +977,24 @@
"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",
"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",
"default_driver": "Standard-Treiber",
"is_default": "Standard",
"set_default_disk": "Als Standard festlegen",
"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 Kostenvoranschlag & jedem Zahlungsbelegung 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"
"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": {
@ -1025,9 +1025,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": {
@ -1037,10 +1037,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": {
@ -1134,37 +1134,37 @@
"pdf_estimate_label": "Kostenvoranschlag",
"pdf_estimate_number": "Kostenvoran. Nummer",
"pdf_estimate_date": "Datum Kostenvoranschlag",
"pdf_estimate_expire_date": "Expiry date",
"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_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_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 an,",
"pdf_received_from": "Received from:"
"pdf_received_from": "Erhalten von:"
}

View File

@ -10,18 +10,18 @@
"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": "Copy PDF Url",
"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",
@ -33,7 +33,7 @@
"subject": "Sujeta",
"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,9 @@
"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"
},
"dashboard": {
"select_year": "Seleccionar año",
@ -133,28 +133,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",
@ -253,7 +253,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",
@ -339,7 +339,7 @@
"notes": "Notas",
"view": "Ver",
"send_invoice": "Enviar la factura",
"resend_invoice": "Resend Invoice",
"resend_invoice": "Reenviar factura",
"invoice_template": "Plantilla de factura",
"template": "Modelo",
"mark_as_sent": "Marcar como enviada",
@ -438,8 +438,8 @@
"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",
@ -494,7 +494,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 +505,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 +604,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 +674,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 +722,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 +740,41 @@
"title": "Facturas",
"notes": "Notas",
"invoice_prefix": "Prefijo de las facturas",
"default_invoice_email_body": "Default Invoice Email Body",
"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.",
"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",
"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.",
"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",
"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.",
"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 +783,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 +800,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 +827,7 @@
},
"user_profile": {
"name": "Nombre",
"email": "Email",
"email": "Correo electrónico",
"password": "Contraseña",
"confirm_password": "Confirmar contraseña"
},
@ -879,7 +879,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 +892,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 +901,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.",
@ -917,91 +917,91 @@
"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",
"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",
"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",
"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",
@ -1037,10 +1037,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": {
@ -1101,7 +1101,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",
@ -1122,8 +1122,8 @@
"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.",
@ -1134,11 +1134,11 @@
"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",
@ -1147,24 +1147,24 @@
"pdf_amount_label": "Cantidad",
"pdf_subtotal": "Subtotal",
"pdf_total": "Total",
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
"pdf_payment_date": "Payment Date",
"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_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:"
}

File diff suppressed because it is too large Load Diff

View File

@ -7,9 +7,10 @@ import ar from './ar.json'
import de from './de.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 lv from './lv.json'
import sv from './sv.json'
Vue.use(VueI18n)
@ -23,9 +24,10 @@ const i18n = new VueI18n({
de,
pt_BR,
it,
sr_LA,
sr,
nl,
lv,
sv,
},
})

View File

@ -684,14 +684,14 @@
"required": "Required",
"placeholder": "Placeholder",
"help_text": "Help Text",
"default_value": "Default Value",
"prefix": "Prefix",
"starting_number": "Starting Number",
"model": "Model",
"default_value": "Noklusējuma vērtība",
"prefix": "Prefikss",
"starting_number": "Sākuma numurs",
"model": "Modelis",
"help_text_description": "Enter some text to help users understand the purpose of this custom field.",
"suffix": "Suffix",
"yes": "Yes",
"no": "No",
"yes": "",
"no": "Nē",
"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",

View File

@ -30,7 +30,7 @@
"sort_by": "Sorteer op",
"ascending": "Oplopend",
"descending": "Aflopend",
"subject": "Onderwerpen",
"subject": "Onderwerp",
"body": "Inhoud",
"message": "Bericht",
"send": "Verstuur",
@ -94,7 +94,7 @@
"due_amount": "Openstaand bedrag",
"customers": "Klanten",
"invoices": "Facturen",
"estimates": "Offerte"
"estimates": "Offertes"
},
"chart_info": {
"total_sales": "Verkoop",
@ -166,7 +166,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",
@ -186,7 +186,7 @@
"no_matching_customers": "Er zijn geen overeenkomende klanten!",
"phone_number": "Telefoonnummer",
"create_date": "Aangemaakt op",
"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.",
"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"
@ -236,14 +236,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",
@ -332,7 +332,7 @@
"add_item": "Voeg een item toe",
"date": "Datum",
"due_date": "Opleveringsdatum",
"status": "Statu",
"status": "Status",
"add_tax": "Belasting toevoegen",
"amount": "Bedrag",
"action": "Actie",
@ -379,7 +379,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",
@ -442,7 +442,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",
@ -476,7 +476,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",
@ -537,7 +537,7 @@
"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 +572,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",
@ -606,8 +606,8 @@
"update_app": "App bijwerken",
"backup": "Back-up",
"file_disk": "Bestandsopslag",
"custom_fields": "Custom Fields",
"payment_modes": "Payment Modes",
"custom_fields": "Aangepaste velden",
"payment_modes": "Betaalmethodes",
"notes": "Opmerkingen"
},
"title": "Instellingen",
@ -636,7 +636,7 @@
"add_currency": "Valuta toevoegen"
},
"mail": {
"host": "Mail Host",
"host": "Mail host",
"port": "Mail Port",
"driver": "Mail-stuurprogramma",
"secret": "Geheim",
@ -668,45 +668,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,29 +740,29 @@
"title": "Facturen",
"notes": "Opmerkingen",
"invoice_prefix": "Factuurvoorvoegsel",
"default_invoice_email_body": "Default Invoice Email Body",
"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.",
"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",
"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.",
"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",
@ -774,7 +774,7 @@
"payment_setting_description": "Schakel dit uit als u niet elke keer dat u een nieuwe betaling aanmaakt, automatisch betalingsnummers wilt genereren.",
"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 +783,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 +800,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 +859,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 +879,7 @@
},
"preferences": {
"currency": "Valuta",
"default_language": "Default Language",
"default_language": "Standaard taal",
"time_zone": "Tijdzone",
"fiscal_year": "Financieel jaar",
"date_format": "Datumnotatie",
@ -892,7 +892,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 +901,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",
@ -918,56 +918,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",
"disk_name": "Naam van de schijf",
"new_disk": "Nieuwe schijf toevoegen",
"filesystem_driver": "Filesystem Driver",
"local_driver": "local Driver",
"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,24 +977,24 @@
"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",
"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",
"default_driver": "Standaard stuurprogramma",
"is_default": "IS STANDAARD",
"set_default_disk": "Standaardschijf instellen",
"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": {
@ -1033,14 +1033,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": {
@ -1050,8 +1050,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",
@ -1094,7 +1094,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",
@ -1132,39 +1132,39 @@
"something_went_wrong": "Er is iets fout gegaan"
},
"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_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_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:"
}

View File

@ -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",
@ -163,7 +183,10 @@
"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",
@ -213,7 +236,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",
@ -262,7 +285,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",
@ -303,7 +325,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,7 +429,8 @@
"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",
@ -415,11 +438,11 @@
"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 +451,7 @@
},
"expenses": {
"title": "Rashodi",
"expenses_list": "List Rashoda",
"expenses_list": "Lista Rashoda",
"select_a_customer": "Odaberi klijenta",
"expense_title": "Naslov",
"customer": "Klijent",
@ -443,7 +466,7 @@
"action": "Akcija",
"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 +477,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 +508,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 +604,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 +673,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 +737,45 @@
"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",
"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.",
"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",
"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.",
"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",
"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.",
"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 +783,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 +798,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 +880,7 @@
},
"preferences": {
"currency": "Valuta",
"language": "Jezik",
"default_language": "Jezik",
"time_zone": "Vremenska Zona",
"fiscal_year": "Finansijska Godina",
"date_format": "Format datuma",
@ -779,10 +891,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 +902,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 +912,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 +1040,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 +1069,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 +1097,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 +1124,50 @@
"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"
}
},
"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_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_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:"
}

File diff suppressed because it is too large Load Diff

View File

@ -46,7 +46,6 @@
<script type="text/babel">
import { async } from 'q'
import { mapActions } from 'vuex'
const { required, email } = require('vuelidate/lib/validators')
export default {
@ -68,7 +67,6 @@ export default {
},
},
methods: {
...mapActions('auth'),
async validateBeforeSubmit(e) {
this.$v.formData.$touch()
if (!this.$v.formData.$invalid) {

View File

@ -7,23 +7,23 @@
<sw-page-header :title="pageTitle">
<sw-breadcrumb slot="breadcrumbs">
<sw-breadcrumb-item
to="/admin/dashboard"
:title="$t('general.home')"
to="/admin/dashboard"
/>
<sw-breadcrumb-item
to="/admin/estimates"
:title="$tc('estimates.estimate', 2)"
to="/admin/estimates"
/>
<sw-breadcrumb-item
v-if="$route.name === 'estimates.edit'"
to="#"
:title="$t('estimates.edit_estimate')"
to="#"
active
/>
<sw-breadcrumb-item
v-else
to="#"
:title="$t('estimates.new_estimate')"
to="#"
active
/>
</sw-breadcrumb>
@ -31,8 +31,8 @@
<template slot="actions">
<sw-button
v-if="$route.name === 'estimates.edit'"
tag-name="a"
:href="`/estimates/pdf/${newEstimate.unique_hash}`"
tag-name="a"
target="_blank"
class="mr-3"
variant="primary-outline"
@ -59,9 +59,9 @@
<!-- Select Customer & Basic Fields -->
<div class="grid-cols-12 gap-8 mt-6 mb-8 lg:grid">
<customer-select
class="col-span-5 pr-0"
:valid="$v.selectedCustomer"
:customer-id="customerId"
class="col-span-5 pr-0"
/>
<div
@ -77,7 +77,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.newEstimate.estimate_date.$touch()"
@input="$v.newEstimate.estimate_date.$touch()"
/>
</sw-input-group>
@ -92,7 +92,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.newEstimate.expiry_date.$touch()"
@input="$v.newEstimate.expiry_date.$touch()"
/>
</sw-input-group>
@ -235,8 +235,8 @@
</div>
<div
class="grid gap-x-4 gap-y-2 md:gap-x-8 md:gap-y-4 grid-col-1 md:grid-cols-2"
v-if="customFields.length > 0"
class="grid gap-x-4 gap-y-2 md:gap-x-8 md:gap-y-4 grid-col-1 md:grid-cols-2"
>
<sw-input-group
v-for="(field, index) in customFields"
@ -247,7 +247,7 @@
<component
:type="field.type.label"
:field="field"
:isEdit="isEdit"
:is-edit="isEdit"
:is="field.type + 'Field'"
:invalid-fields="invalidFields"
@update="setCustomFieldValue"
@ -262,7 +262,7 @@
>
<sw-button
type="button"
class="flex justify-center w-full text-sm lg:w-auto"
class="flex justify-center w-full text-sm lg:w-auto hover:bg-gray-400"
variant="gray"
@click="openTemplateModal"
>
@ -366,8 +366,8 @@
</div>
<sw-popup
ref="taxModal"
v-if="taxPerItem === 'NO' || taxPerItem === null"
ref="taxModal"
class="my-3 text-sm font-semibold leading-5 text-primary-400"
>
<div slot="activator" class="float-right pt-2 pb-4">
@ -425,8 +425,6 @@ const {
} = require('vuelidate/lib/validators')
export default {
mixins: [CustomFieldsMixin],
components: {
EstimateItem,
CustomerSelect,
@ -438,6 +436,7 @@ export default {
PlusSmIcon,
HashtagIcon,
},
mixins: [CustomFieldsMixin],
data() {
return {
@ -563,7 +562,7 @@ export default {
if (this.newEstimate.discount_type === 'percentage') {
this.newEstimate.discount_val = (this.subtotal * newValue) / 100
} else {
this.newEstimate.discount_val = newValue * 100
this.newEstimate.discount_val = Math.round(newValue * 100)
}
this.newEstimate.discount = newValue
@ -727,7 +726,9 @@ export default {
return
}
this.newEstimate.discount_val = this.newEstimate.discount * 100
this.newEstimate.discount_val = Math.round(
this.newEstimate.discount * 100
)
this.newEstimate.discount_type = 'fixed'
},

View File

@ -256,7 +256,7 @@ export default {
if (this.item.discount_type === 'percentage') {
this.item.discount_val = (this.subtotal * newValue) / 100
} else {
this.item.discount_val = newValue * 100
this.item.discount_val = Math.round(newValue * 100)
}
this.item.discount = newValue
@ -296,7 +296,7 @@ export default {
},
set: function (newValue) {
if (parseFloat(newValue) > 0) {
this.item.price = newValue * 100
this.item.price = Math.round(newValue * 100)
this.maxDiscount = this.item.price
} else {
this.item.price = newValue
@ -411,7 +411,7 @@ export default {
return
}
this.item.discount_val = this.item.discount * 100
this.item.discount_val = Math.round(this.item.discount * 100)
this.item.discount_type = 'fixed'
},
selectPercentage() {

View File

@ -2,29 +2,29 @@
<base-page class="relative">
<form action="" @submit.prevent="sendData">
<!-- Page Header -->
<sw-page-header class="mb-5" :title="pageTitle">
<sw-page-header :title="pageTitle" class="mb-5">
<sw-breadcrumb slot="breadcrumbs">
<sw-breadcrumb-item
to="/admin/dashboard"
:title="$t('general.home')"
to="/admin/dashboard"
/>
<sw-breadcrumb-item
to="/admin/expenses"
:title="$tc('expenses.expense', 2)"
to="/admin/expenses"
/>
<sw-breadcrumb-item
v-if="$route.name === 'expenses.edit'"
to="#"
:title="$t('expenses.edit_expense')"
to="#"
active
/>
<sw-breadcrumb-item
v-else
to="#"
:title="$t('expenses.new_expense')"
to="#"
active
/>
</sw-breadcrumb>
@ -32,8 +32,8 @@
<template slot="actions">
<sw-button
v-if="isReceiptAvailable"
tag-name="a"
:href="getReceiptUrl"
tag-name="a"
variant="primary"
outline
size="lg"
@ -110,7 +110,7 @@
:calendar-button="true"
class="mt-2"
calendar-button-icon="calendar"
@change="$v.formData.expense_date.$touch()"
@input="$v.formData.expense_date.$touch()"
/>
</sw-input-group>
@ -122,8 +122,8 @@
<sw-money
v-model="amount"
:currency="defaultCurrencyForInput"
class="focus:border focus:border-solid focus:border-primary-500"
:invalid="$v.formData.amount.$error"
class="focus:border focus:border-solid focus:border-primary-500"
@input="$v.formData.amount.$touch()"
/>
</sw-input-group>
@ -176,9 +176,9 @@
</div>
<sw-avatar
trigger="#receipt-box"
:preview-avatar="previewReceipt"
:enable-cropper="false"
trigger="#receipt-box"
@changed="onChange"
>
<template v-slot:icon>
@ -201,7 +201,7 @@
<component
:type="field.type.label"
:field="field"
:isEdit="isEdit"
:is-edit="isEdit"
:is="field.type + 'Field'"
:invalid-fields="invalidFields"
@update="setCustomFieldValue"
@ -242,13 +242,12 @@ import { CloudUploadIcon, ShoppingCartIcon } from '@vue-hero-icons/solid'
import CustomFieldsMixin from '../../mixins/customFields'
export default {
mixins: [CustomFieldsMixin],
components: {
CloudUploadIcon,
ShoppingCartIcon,
DownloadIcon,
},
mixins: [CustomFieldsMixin],
props: {
addname: {
@ -315,7 +314,7 @@ export default {
return this.formData.amount / 100
},
set: function (newValue) {
this.formData.amount = newValue * 100
this.formData.amount = Math.round(newValue * 100)
},
},

View File

@ -7,23 +7,23 @@
<sw-page-header :title="pageTitle">
<sw-breadcrumb slot="breadcrumbs">
<sw-breadcrumb-item
to="/admin/dashboard"
:title="$t('general.home')"
to="/admin/dashboard"
/>
<sw-breadcrumb-item
to="/admin/invoices"
:title="$tc('invoices.invoice', 2)"
to="/admin/invoices"
/>
<sw-breadcrumb-item
v-if="$route.name === 'invoice.edit'"
to="#"
:title="$t('invoices.edit_invoice')"
to="#"
active
/>
<sw-breadcrumb-item
v-else
to="#"
:title="$t('invoices.new_invoice')"
to="#"
active
/>
</sw-breadcrumb>
@ -32,8 +32,8 @@
<sw-button
v-if="$route.name === 'invoices.edit'"
:disabled="isLoading"
tag-name="a"
:href="`/invoices/pdf/${newInvoice.unique_hash}`"
tag-name="a"
variant="primary-outline"
class="mr-3"
target="_blank"
@ -58,9 +58,9 @@
<!-- Select Customer & Basic Fields -->
<div class="grid-cols-12 gap-8 mt-6 mb-8 lg:grid">
<customer-select
class="col-span-5 pr-0"
:valid="$v.selectedCustomer"
:customer-id="customerId"
class="col-span-5 pr-0"
/>
<div
@ -76,7 +76,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.newInvoice.invoice_date.$touch()"
@input="$v.newInvoice.invoice_date.$touch()"
/>
</sw-input-group>
@ -91,7 +91,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.newInvoice.due_date.$touch()"
@input="$v.newInvoice.due_date.$touch()"
/>
</sw-input-group>
@ -227,8 +227,8 @@
</div>
<div
class="grid gap-x-4 gap-y-2 md:gap-x-8 md:gap-y-4 grid-col-1 md:grid-cols-2"
v-if="customFields.length > 0"
class="grid gap-x-4 gap-y-2 md:gap-x-8 md:gap-y-4 grid-col-1 md:grid-cols-2"
>
<sw-input-group
v-for="(field, index) in customFields"
@ -239,7 +239,7 @@
<component
:type="field.type.label"
:field="field"
:isEdit="isEdit"
:is-edit="isEdit"
:is="field.type + 'Field'"
:invalid-fields="invalidFields"
@update="setCustomFieldValue"
@ -254,7 +254,7 @@
>
<sw-button
type="button"
class="flex justify-center w-full text-sm lg:w-auto"
class="flex justify-center w-full text-sm text-black lg:w-auto hover:bg-gray-400"
variant="gray"
@click="openTemplateModal"
>
@ -418,8 +418,6 @@ const {
} = require('vuelidate/lib/validators')
export default {
mixins: [CustomFieldsMixin],
components: {
InvoiceItem,
CustomerSelect,
@ -431,6 +429,7 @@ export default {
ShoppingCartIcon,
HashtagIcon,
},
mixins: [CustomFieldsMixin],
data() {
return {
@ -558,7 +557,7 @@ export default {
if (this.newInvoice.discount_type === 'percentage') {
this.newInvoice.discount_val = (this.subtotal * newValue) / 100
} else {
this.newInvoice.discount_val = newValue * 100
this.newInvoice.discount_val = Math.round(newValue * 100)
}
this.newInvoice.discount = newValue
@ -722,7 +721,7 @@ export default {
return
}
this.newInvoice.discount_val = this.newInvoice.discount * 100
this.newInvoice.discount_val = Math.round(this.newInvoice.discount * 100)
this.newInvoice.discount_type = 'fixed'
},

View File

@ -256,7 +256,7 @@ export default {
if (this.item.discount_type === 'percentage') {
this.item.discount_val = (this.subtotal * newValue) / 100
} else {
this.item.discount_val = newValue * 100
this.item.discount_val = Math.round(newValue * 100)
}
this.item.discount = newValue
@ -296,7 +296,7 @@ export default {
},
set: function (newValue) {
if (parseFloat(newValue) > 0) {
this.item.price = newValue * 100
this.item.price = Math.round(newValue * 100)
this.maxDiscount = this.item.price
} else {
this.item.price = newValue
@ -412,7 +412,7 @@ export default {
return
}
this.item.discount_val = this.item.discount * 100
this.item.discount_val = Math.round(this.item.discount * 100)
this.item.discount_type = 'fixed'
},
selectPercentage() {

View File

@ -1,20 +1,20 @@
<template>
<base-page>
<!-- Page Header -->
<sw-page-header class="mb-3" :title="pageTitle">
<sw-page-header :title="pageTitle" class="mb-3">
<sw-breadcrumb slot="breadcrumbs">
<sw-breadcrumb-item to="/admin/dashboard" :title="$t('general.home')" />
<sw-breadcrumb-item to="/admin/items" :title="$tc('items.item', 2)" />
<sw-breadcrumb-item :title="$t('general.home')" to="/admin/dashboard" />
<sw-breadcrumb-item :title="$tc('items.item', 2)" to="/admin/items" />
<sw-breadcrumb-item
v-if="$route.name === 'items.edit'"
to="#"
:title="$t('items.edit_item')"
to="#"
active
/>
<sw-breadcrumb-item
v-else
to="#"
:title="$t('items.new_item')"
to="#"
active
/>
</sw-breadcrumb>
@ -59,11 +59,11 @@
<sw-input-group :label="$t('items.unit')" class="mb-4">
<sw-select
v-model="formData.unit"
class="mt-2"
:options="itemUnits"
:searchable="true"
:show-labels="false"
:placeholder="$t('items.select_a_unit')"
class="mt-2"
label="name"
>
<div
@ -89,12 +89,12 @@
>
<sw-select
v-model="formData.taxes"
class="mt-2"
:options="getTaxTypes"
:searchable="true"
:show-labels="false"
:allow-empty="true"
:multiple="true"
class="mt-2"
track-by="tax_type_id"
label="tax_name"
/>
@ -187,7 +187,7 @@ export default {
return this.formData.price / 100
},
set: function (newValue) {
this.formData.price = newValue * 100
this.formData.price = Math.round(newValue * 100)
},
},

View File

@ -2,8 +2,8 @@
<base-page>
<sw-page-header :title="$t('items.title')">
<sw-breadcrumb slot="breadcrumbs">
<sw-breadcrumb-item to="dashboard" :title="$t('general.home')" />
<sw-breadcrumb-item to="#" :title="$tc('items.item', 2)" active />
<sw-breadcrumb-item :title="$t('general.home')" to="dashboard" />
<sw-breadcrumb-item :title="$tc('items.item', 2)" to="#" active />
</sw-breadcrumb>
<template slot="actions">
@ -50,9 +50,9 @@
v-model="filters.unit"
:options="itemUnits"
:searchable="true"
class="mt-2"
:show-labels="false"
:placeholder="$t('items.select_a_unit')"
class="mt-2"
label="name"
autocomplete="off"
/>
@ -225,8 +225,8 @@
<dot-icon slot="activator" />
<sw-dropdown-item
tag-name="router-link"
:to="`items/${row.id}/edit`"
tag-name="router-link"
>
<pencil-icon class="h-5 mr-3 text-gray-600" />
{{ $t('general.edit') }}
@ -356,7 +356,7 @@ export default {
let data = {
search: this.filters.name !== null ? this.filters.name : '',
unit_id: this.filters.unit !== null ? this.filters.unit.id : '',
price: this.filters.price * 100,
price: Math.round(this.filters.price * 100),
orderByField: sort.fieldName || 'created_at',
orderBy: sort.order || 'desc',
page,

View File

@ -1,26 +1,26 @@
<template>
<base-page class="relative payment-create">
<form action="" @submit.prevent="submitPaymentData">
<sw-page-header class="mb-5" :title="pageTitle">
<sw-page-header :title="pageTitle" class="mb-5">
<sw-breadcrumb slot="breadcrumbs">
<sw-breadcrumb-item
to="/admin/dashboard"
:title="$t('general.home')"
to="/admin/dashboard"
/>
<sw-breadcrumb-item
to="/admin/payments"
:title="$tc('payments.payment', 2)"
to="/admin/payments"
/>
<sw-breadcrumb-item
v-if="$route.name === 'payments.edit'"
to="#"
:title="$t('payments.edit_payment')"
to="#"
active
/>
<sw-breadcrumb-item
v-else
to="#"
:title="$t('payments.new_payment')"
to="#"
active
/>
</sw-breadcrumb>
@ -59,7 +59,7 @@
:calendar-button="true"
class="mt-1"
calendar-button-icon="calendar"
@change="$v.formData.payment_date.$touch()"
@input="$v.formData.payment_date.$touch()"
/>
</sw-input-group>
@ -134,8 +134,8 @@
:searchable="true"
:show-labels="false"
:placeholder="$t('payments.select_payment_mode')"
:max-height="150"
label="name"
:maxHeight="150"
class="mt-1"
>
<div slot="afterList">
@ -165,7 +165,7 @@
<component
:type="field.type.label"
:field="field"
:isEdit="isEdit"
:is-edit="isEdit"
:is="field.type + 'Field'"
:invalid-fields="invalidFields"
@update="setCustomFieldValue"
@ -218,9 +218,8 @@ import CustomFieldsMixin from '../../mixins/customFields'
const { required, between, numeric } = require('vuelidate/lib/validators')
export default {
mixins: [CustomFieldsMixin],
components: { ShoppingCartIcon },
mixins: [CustomFieldsMixin],
data() {
return {
@ -288,7 +287,7 @@ export default {
return this.formData.amount / 100
},
set: function (newValue) {
this.formData.amount = newValue * 100
this.formData.amount = Math.round(newValue * 100)
},
},
pageTitle() {
@ -552,9 +551,11 @@ export default {
},
id: this.$route.params.id,
}
try {
this.isLoading = true
let response = await this.updatePayment(data)
if (response.data.success) {
this.isLoading = false
this.$router.push(
@ -563,17 +564,21 @@ export default {
window.toastr['success'](this.$t('payments.updated_message'))
return true
}
if (response.data.error === 'invalid_amount') {
window.toastr['error'](this.$t('invalid_amount_message'))
return false
}
window.toastr['error'](response.data.error)
} catch (err) {
this.isLoading = false
if (err.response.data.errors.payment_number) {
window.toastr['error'](err.response.data.errors.payment_number)
return true
}
window.toastr['error'](err.response.data.message)
}
} else {
@ -584,9 +589,12 @@ export default {
: null,
payment_date: moment(this.formData.payment_date).format('YYYY-MM-DD'),
}
this.isLoading = true
try {
let response = await this.addPayment(data)
if (response.data.success) {
this.$router.push(
`/admin/payments/${response.data.payment.id}/view`
@ -595,17 +603,21 @@ export default {
this.isLoading = true
return true
}
if (response.data.error === 'invalid_amount') {
window.toastr['error'](this.$t('invalid_amount_message'))
return false
}
window.toastr['error'](response.data.error)
} catch (err) {
this.isLoading = false
if (err.response.data.errors.payment_number) {
window.toastr['error'](err.response.data.errors.payment_number)
return true
}
window.toastr['error'](err.response.data.message)
}
}

View File

@ -29,7 +29,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.formData.from_date.$touch()"
@input="$v.formData.from_date.$touch()"
/>
</sw-input-group>
@ -44,7 +44,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.formData.to_date.$touch()"
@input="$v.formData.to_date.$touch()"
/>
</sw-input-group>
</div>
@ -164,13 +164,13 @@ export default {
}
},
dateRangeUrl () {
dateRangeUrl() {
return `${this.siteURL}?from_date=${moment(
this.formData.from_date
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
'YYYY-MM-DD'
)}`
}
},
},
watch: {

View File

@ -29,7 +29,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.formData.from_date.$touch()"
@input="$v.formData.from_date.$touch()"
/>
</sw-input-group>
@ -44,7 +44,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.formData.to_date.$touch()"
@input="$v.formData.to_date.$touch()"
/>
</sw-input-group>
</div>
@ -163,13 +163,13 @@ export default {
}
},
dateRangeUrl () {
dateRangeUrl() {
return `${this.siteURL}?from_date=${moment(
this.formData.from_date
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
'YYYY-MM-DD'
)}`
}
},
},
watch: {

View File

@ -28,7 +28,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.formData.from_date.$touch()"
@input="$v.formData.from_date.$touch()"
/>
</sw-input-group>
@ -43,7 +43,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.formData.to_date.$touch()"
@input="$v.formData.to_date.$touch()"
/>
</sw-input-group>
</div>
@ -182,21 +182,21 @@ export default {
}
},
customerDateRangeUrl () {
customerDateRangeUrl() {
return `${this.customerSiteURL}?from_date=${moment(
this.formData.from_date
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
'YYYY-MM-DD'
)}`
this.formData.from_date
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
'YYYY-MM-DD'
)}`
},
itemDateRangeUrl () {
itemDateRangeUrl() {
return `${this.itemsSiteURL}?from_date=${moment(
this.formData.from_date
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
'YYYY-MM-DD'
)}`
}
},
},
watch: {

View File

@ -28,7 +28,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.formData.from_date.$touch()"
@input="$v.formData.from_date.$touch()"
/>
</sw-input-group>
@ -43,7 +43,7 @@
:calendar-button="true"
calendar-button-icon="calendar"
class="mt-2"
@change="$v.formData.to_date.$touch()"
@input="$v.formData.to_date.$touch()"
/>
</sw-input-group>
</div>
@ -152,13 +152,13 @@ export default {
}
},
dateRangeUrl () {
dateRangeUrl() {
return `${this.siteURL}?from_date=${moment(
this.formData.from_date
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
'YYYY-MM-DD'
)}`
}
},
},
watch: {

View File

@ -313,59 +313,53 @@ export default {
name: this.formData.name,
email: this.formData.email,
}
if (
this.formData.password != null &&
this.formData.password !== undefined &&
this.formData.password !== ''
) {
data = { ...data, password: this.formData.password }
}
let response = await this.updateCurrentUser(data)
let languageData = {
settings: {
language: this.language.code,
},
}
let languageRes = await this.updateUserSettings(languageData)
// if(languageRes) {
// window.i18n.locale = this.language.code
// }
if (response.data.success) {
this.isLoading = false
if (this.fileObject && this.previewAvatar) {
let avatarData = new FormData()
avatarData.append(
'admin_avatar',
JSON.stringify({
name: this.fileObject.name,
data: this.previewAvatar,
})
)
this.uploadAvatar(avatarData)
try {
if (
this.formData.password != null &&
this.formData.password !== undefined &&
this.formData.password !== ''
) {
data = { ...data, password: this.formData.password }
}
window.toastr['success'](
this.$t('settings.account_settings.updated_message')
)
let response = await this.updateCurrentUser(data)
this.formData.password = ''
this.formData.confirm_password = ''
let languageData = {
settings: {
language: this.language.code,
},
}
let languageRes = await this.updateUserSettings(languageData)
if (response.data.success) {
this.isLoading = false
if (this.fileObject && this.previewAvatar) {
let avatarData = new FormData()
avatarData.append(
'admin_avatar',
JSON.stringify({
name: this.fileObject.name,
data: this.previewAvatar,
})
)
this.uploadAvatar(avatarData)
}
window.toastr['success'](
this.$t('settings.account_settings.updated_message')
)
this.formData.password = ''
this.formData.confirm_password = ''
}
} catch (error) {
this.isLoading = false
return true
}
window.toastr['error'](response.data.error)
this.isLoading = false
return true
},
},
}

View File

@ -354,7 +354,7 @@
<h1 class="header-logo"> {{$estimate->user->company->name}} </h1>
@endif
</td>
<td width="50%" class="company-address-container company-address">
<td width="50%" class="company-address-container company-address text-right">
{!! $company_address !!}
</td>
</tr>

View File

@ -273,7 +273,7 @@
}
.total-table-attribute-value {
font-weight: 500;
font-weight: bold;
text-align: right;
font-size: 12px;
color: #040405;

View File

@ -314,7 +314,7 @@
<h1 class="header-logo"> {{$invoice->user->company->name}} </h1>
@endif
</td>
<td width="50%" class="company-address-container company-address">
<td width="50%" class="company-address-container company-address text-right">
{!! $company_address !!}
</td>
</tr>

View File

@ -65,6 +65,10 @@
float: right;
} */
.header-section-right {
text-align: right;
}
.header {
font-size: 20px;
color: rgba(0, 0, 0, 0.7);
@ -226,7 +230,7 @@
}
.content-heading span {
font-weight: 400;
font-weight: normal;
font-size: 14px;
line-height: 25px;
padding-bottom: 5px;
@ -248,7 +252,7 @@
.total-display-label {
display: inline;
font-weight: 600;
font-weight: bold;
font-size: 14px;
line-height: 21px;
color: #595959;
@ -256,7 +260,7 @@
.total-display-box span {
float: right;
font-weight: 500;
font-weight: bold;
font-size: 14px;
line-height: 21px;
text-align: right;

View File

@ -20,7 +20,7 @@
}
.heading-text {
font-weight: 600;
font-weight: bold;
font-size: 24px;
color: #5851D8;
width: 100%;
@ -30,7 +30,7 @@
}
.heading-date-range {
font-weight: 600;
font-weight: normal;
font-size: 15px;
color: #A5ACC1;
width: 100%;
@ -40,7 +40,7 @@
}
.sub-heading-text {
font-weight: 600;
font-weight: normal;
font-size: 16px;
color: #595959;
padding: 0px;
@ -98,7 +98,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 16px;
line-height: 21px;
text-align: right;
@ -117,7 +117,7 @@
padding: 0px;
margin: 0px;
text-align: left;
font-weight: 600;
font-weight: bold;
font-size: 16px;
line-height: 21px;
color: #595959;
@ -127,7 +127,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 20px;
line-height: 21px;
color: #5851D8;

View File

@ -20,7 +20,7 @@
}
.heading-text {
font-weight: 600;
font-weight: bold;
font-size: 24px;
color: #5851D8;
width: 100%;
@ -30,7 +30,7 @@
}
.heading-date-range {
font-weight: 600;
font-weight: normal;
font-size: 15px;
color: #A5ACC1;
width: 100%;
@ -40,7 +40,7 @@
}
.sub-heading-text {
font-weight: 600;
font-weight: normal;
font-size: 16px;
color: #595959;
padding: 0px;
@ -65,7 +65,7 @@
.income-amount {
padding: 0px;
margin: 0px;
font-weight: 500;
font-weight: bold;
font-size: 16px;
line-height: 21px;
text-align: right;
@ -123,7 +123,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 16px;
line-height: 21px;
text-align: right;
@ -142,7 +142,7 @@
padding: 0px;
margin: 0px;
text-align: left;
font-weight: 600;
font-weight: bold;
font-size: 16px;
line-height: 21px;
color: #595959;
@ -152,7 +152,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 20px;
line-height: 21px;
color: #5851D8;

View File

@ -20,7 +20,7 @@
}
.heading-text {
font-weight: 600;
font-weight: bold;
font-size: 24px;
color: #5851D8;
width: 100%;
@ -30,7 +30,7 @@
}
.heading-date-range {
font-weight: 600;
font-weight: normal;
font-size: 15px;
color: #A5ACC1;
width: 100%;
@ -40,7 +40,7 @@
}
.sub-heading-text {
font-weight: 600;
font-weight: bold;
font-size: 16px;
line-height: 21px;
color: #595959;
@ -98,7 +98,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 16px;
line-height: 21px;
text-align: right;
@ -117,7 +117,7 @@
padding: 0px;
margin: 0px;
text-align: left;
font-weight: 600;
font-weight: bold;
font-size: 16px;
line-height: 21px;
color: #595959;
@ -127,7 +127,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 20px;
line-height: 21px;
color: #5851D8;

View File

@ -20,7 +20,7 @@
}
.heading-text {
font-weight: 600;
font-weight: bold;
font-size: 24px;
color: #5851D8;
width: 100%;
@ -30,7 +30,7 @@
}
.heading-date-range {
font-weight: 600;
font-weight: normal;
font-size: 15px;
color: #A5ACC1;
width: 100%;
@ -40,7 +40,7 @@
}
.sub-heading-text {
font-weight: 600;
font-weight: bold;
font-size: 16px;
line-height: 21px;
color: #595959;
@ -98,7 +98,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 16px;
line-height: 21px;
text-align: right;
@ -117,7 +117,7 @@
padding: 0px;
margin: 0px;
text-align: left;
font-weight: 600;
font-weight: bold;
font-size: 16px;
line-height: 21px;
color: #595959;
@ -127,7 +127,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 20px;
line-height: 21px;
color: #5851D8;

View File

@ -21,7 +21,7 @@
}
.heading-text {
font-weight: 600;
font-weight: bold;
font-size: 24px;
color: #5851D8;
width: 100%;
@ -31,7 +31,7 @@
}
.heading-date-range {
font-weight: 600;
font-weight: normal;
font-size: 15px;
color: #A5ACC1;
width: 100%;
@ -41,7 +41,7 @@
}
.sub-heading-text {
font-weight: 600;
font-weight: bold;
font-size: 16px;
color: #595959;
padding: 0px;
@ -99,7 +99,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 16px;
line-height: 21px;
text-align: right;
@ -118,7 +118,7 @@
padding: 0px;
margin: 0px;
text-align: left;
font-weight: 600;
font-weight: bold;
font-size: 16px;
line-height: 21px;
color: #595959;
@ -128,7 +128,7 @@
padding: 0px;
margin: 0px;
text-align: right;
font-weight: 500;
font-weight: bold;
font-size: 20px;
line-height: 21px;
color: #5851D8;

815
yarn.lock

File diff suppressed because it is too large Load Diff