Merge branch 'master' of github.com:akaunting/akaunting into 2.1-dev

# Conflicts:
#	app/Http/Controllers/Common/Items.php
#	resources/views/modules/item/documentation.blade.php
#	resources/views/modules/item/show.blade.php
#	resources/views/partials/admin/header.blade.php
#	resources/views/purchases/bills/show.blade.php
#	resources/views/purchases/vendors/show.blade.php
#	resources/views/sales/customers/show.blade.php
#	resources/views/sales/invoices/show.blade.php
#	resources/views/wizard/companies/edit.blade.php
#	resources/views/wizard/currencies/index.blade.php
#	resources/views/wizard/finish/index.blade.php
#	resources/views/wizard/taxes/index.blade.php
This commit is contained in:
Cüneyt Şentürk
2020-08-28 19:24:26 +03:00
824 changed files with 14086 additions and 5612 deletions

View File

@ -19,9 +19,12 @@
<el-carousel-item v-for="(screenshot, index) in screenshots" :key="index">
<img class="d-block w-100 carousel-frame" height="365px" :src="screenshot.path_string" :alt="screenshot.alt_attribute">
<div class="carousel-description py-2">
<div class="carousel-description py-2" v-if="screenshot.description">
{{ screenshot.description }}
</div>
<div class="carousel-description py-2" v-else>
{{ name }}
</div>
</el-carousel-item>
</el-carousel>
</div>

View File

@ -0,0 +1,201 @@
<template>
<div class="countdown">
<section class="flex text-6xl justify-center content-center">
<div class="days mr-2 relative">
{{ displayDays}}
<div class="label text-sm absolut bottom-0"> {{ textDays }} </div>
</div>
<span class="leading-snug">:</span>
<div class="hours mx-2 relative">
{{ displayHours }}
<div class="label text-sm absolut bottom-0">{{ textHours }} </div>
</div>
<span class="leading-snug">:</span>
<div class="minutes mx-2 relative">
{{ displayMinutes }}
<div class="label text-sm absolut bottom-0"> {{ textMinutes }} </div>
</div>
<span class="leading-snug">:</span>
<div class="seconds ml-2 relative">
{{ displaySeconds }}
<div class="label text-sm absolut bottom-0"> {{ textSeconds }} </div>
</div>
</section>
</div>
</template>
<script>
export default {
name: 'akaunting-countdown',
props: {
textDays: {
type: String,
default: 'days',
description: "Modal header title"
},
textHours: {
type: String,
default: 'hours',
description: "Modal header title"
},
textMinutes: {
type: String,
default: 'minutes',
description: "Modal header title"
},
textSeconds: {
type: String,
default: 'seconds',
description: "Modal header title"
},
year: {
type: Number,
default: 0,
description: "Modal header title"
},
month: {
type: Number,
default: 0,
description: "Modal header title"
},
date: {
type: Number,
default: 0,
description: "Input readonly status"
},
hour: {
type: Number,
default: 0,
description: "Input disabled status"
},
minute: {
type: Number,
default: 0,
description: "Input value defalut"
},
second: {
type: Number,
default: 0,
description: "Input model defalut"
},
millisecond: {
type: Number,
default: 0,
description: "Prepend icon (left)"
}
},
data:() => ({
displayDays: 0,
displayHours: 0,
displayMinutes: 0,
displaySeconds: 0,
loaded: false,
expired: false
}),
computed: {
_seconds: () => 1000,
_minutes() {
return this._seconds * 60;
},
_hours() {
return this._minutes * 60;
},
_days() {
return this._hours * 24;
},
end() {
return new Date(
this.year,
this.month,
this.date,
this.hour,
this.minute,
this.second,
this.millisecond
);
}
},
mounted() {
this.showRemainig();
},
methods: {
formatNum: num =>(num < 10 ? '0' + num : num),
showRemainig() {
const timer = setInterval(() => {
const now = new Date();
const distance = this.end.getTime() - now.getTime();
if (distance < 0) {
clearInterval(timer);
this.expired = true;
return;
}
const days = Math.floor(distance / this._days);
const hours = Math.floor((distance % this._days) / this._hours);
const minutes = Math.floor((distance % this._hours) / this._minutes);
const seconds = Math.floor((distance % this._minutes) / this._seconds);
this.displayMinutes = this.formatNum(minutes);
this.displaySeconds = this.formatNum(seconds);
this.displayHours = this.formatNum(hours);
this.displayDays = this.formatNum(days);
this.loaded = true;
}, 1000);
}
}
}
</script>
<style scoped>
.countdown {
text-align: justify;
}
.relative {
position: relative;
}
.flex {
display: flex;
}
.justify-center {
justify-content: center;
}
.content-center {
align-content: center;
}
.seconds {
max-width: 60px;
}
.leading-snug {
line-height: 1.375;
}
.days, .hours, .minutes, .seconds {
text-align: center;
}
</style>

View File

@ -6,7 +6,7 @@
{'disabled': disabled},
formClasses
]"
:error="formError"
:footer-error="formError"
:prependIcon="icon"
:readonly="readonly"
:disabled="disabled"

View File

@ -49,45 +49,64 @@
let editorRef = this.$refs.editor;
let node = editorRef.children[0];
this.editor.on('text-change', () => {
let html = node.innerHTML
let html = node.innerHTML;
if (html === '<p><br></p>') {
html = '';
}
this.content = html
this.content = html;
this.$emit('input', this.content);
})
},
pasteHTML () {
if (!this.editor) {
return
}
this.editor.pasteHTML(this.value)
this.editor.pasteHTML(this.value);
},
randomString() {
let text = "";
let possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for (let i = 0; i < 5; i++)
for (let i = 0; i < 5; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
}
},
async mounted () {
let Quill = await import('quill')
Quill = Quill.default || Quill
this.content = this.value;
let Quill = await import('quill');
Quill = Quill.default || Quill;
this.editorId = this.randomString();
this.toolbarId = this.randomString();
this.$nextTick(() => {
this.initialize(Quill)
});
},
watch: {
value (newVal) {
if (newVal !== this.content) {
this.pasteHTML(newVal);
}
},
content (newVal) {
this.$emit('input', newVal);
}
}
}

View File

@ -22,6 +22,7 @@
</div>
<div class="modal-body pb-0" v-else>
<form id="form-create" method="POST" action="#"/>
<component v-bind:is="component"></component>
</div>
</slot>
@ -33,7 +34,11 @@
{{ buttons.cancel.text }}
</button>
<button :disabled="form.loading" type="button" class="btn button-submit" :class="buttons.confirm.class" @click="onSubmit">
<a v-if="buttons.payment" :href="buttons.payment.url" class="btn btn-white" :class="buttons.payment.class">
{{ buttons.payment.text }}
</a>
<button :disabled="form.loading" type="button" class="btn button-submit" :class="buttons.confirm.class" @click="onSubmit">
<div class="aka-loader"></div><span>{{ buttons.confirm.text }}</span>
</button>
</div>
@ -139,10 +144,12 @@ export default {
},
mounted() {
let form_prefix = this._uid;
if (this.is_component) {
this.component = Vue.component('add-new-component', (resolve, reject) => {
resolve({
template : '<div id="modal-add-new-form">' + this.message + '</div>',
template : '<div id="modal-add-new-form-' + form_prefix + '">' + this.message + '</div>',
components: {
AkauntingRadioGroup,
@ -159,7 +166,7 @@ export default {
},
mounted() {
let form_id = document.getElementById('modal-add-new-form').children[0].id;
let form_id = document.getElementById('modal-add-new-form-' + form_prefix).children[0].id;
this.form = new Form(form_id);
},
@ -217,7 +224,24 @@ export default {
})
.catch(error => {
});
}
},
// Change bank account get money and currency rate
async onChangePaymentAccount(account_id) {
let payment_account = Promise.resolve(window.axios.get(url + '/banking/accounts/currency', {
params: {
account_id: account_id
}
}));
payment_account.then(response => {
this.form.currency = response.data.currency_name;
this.form.currency_code = response.data.currency_code;
this.form.currency_rate = response.data.currency_rate;
})
.catch(error => {
});
},
}
})
});

View File

@ -10,7 +10,7 @@
</span>
</div>
<money :name="name" @input="input" :placeholder="placeholder" v-bind="money" :value="value" :disabled="disabled" :masked="masked" class="form-control"></money>
<money :name="name" @input="input" :placeholder="placeholder" v-bind="money" :value="model" :disabled="disabled" :masked="masked" class="form-control"></money>
</div>
<div class="invalid-feedback d-block" v-if="error" v-html="error"></div>
@ -126,6 +126,8 @@ export default {
},
mounted() {
//this.model = this.value;
this.$emit('interface', this.model);
},
@ -133,10 +135,15 @@ export default {
change() {
//this.$emit('change', this.model);
//this.$emit('interface', this.model);
this.$emit('input', this.model);
},
input(event) {
this.model = event;
this.$emit('input', event);
//this.$emit('change', this.model);
//this.$emit('interface', this.model);
}
@ -144,6 +151,10 @@ export default {
watch: {
dynamicCurrency: function (currency) {
if (!currency) {
return;
}
this.money = {
decimal: currency.decimal_mark,
thousands: currency.thousands_separator,
@ -153,9 +164,11 @@ export default {
masked: this.masked
};
},
value: function (value) {
this.model = value;
},
model: function (model) {
this.$emit('change', this.model);
this.$emit('interface', this.model);

View File

@ -763,7 +763,7 @@
<span slot="infoBlock" class="badge badge-success badge-resize float-right" v-if="new_options[real_model]">{{ new_text }}</span>
<select :name="name" v-model="real_model" class="d-none">
<select :name="name" :id="name" v-model="real_model" class="d-none">
<option v-for="(label, value) in selectOptions" :key="value" :value="value">{{ label }}</option>
</select>
</span>
@ -923,6 +923,7 @@ export default {
add_new_html: '',
form: {},
new_options: false,
couunt: 1,
}
},
@ -989,6 +990,24 @@ export default {
this.$emit('interface', this.real_model);
this.$emit('change', this.real_model);
//this.$children[0].$children[0].$emit('keydown.native.tab');
//this.$children[0].$children[0].handleMenuEnter();
this.$children[0].$children[0].visible = false;
/*
this.$children[0].$children[0].setSoftFocus();
if (this.$children[0].$children[0].visible) return;
let option = {};
option.value = this.real_model;
this.$children[0].$children[0].$nextTick(() => {
this.$children[0].$children[0].scrollToOption(option);
});
*/
},
async onAddItem() {
@ -1180,7 +1199,17 @@ export default {
return;
}
this.change();
if (this.real_model != value) {
this.change();
}
let e = $.Event('keyup');
e.keyCode= 9; // tab
$('#' + this.name).trigger(e);
let event = new window.KeyboardEvent('keydown', { keyCode: 9 }); // Tab key
window.dispatchEvent(event);
},
value: function (value) {
@ -1246,4 +1275,4 @@ export default {
margin-right: 35px;
position: relative;
}
</style>
</style>

View File

@ -12,7 +12,11 @@
]"
:error="formError">
<el-select v-model="real_model" @input="change" disabled filterable v-if="disabled"
:placeholder="placeholder">
remote
reserve-keyword
:placeholder="placeholder"
:remote-method="remoteMethod"
:loading="loading">
<div v-if="addNew.status && options.length != 0" class="el-select-dropdown__wrap" slot="empty">
<p class="el-select-dropdown__empty">
{{ noMatchingDataText }}
@ -85,7 +89,11 @@
</el-select>
<el-select v-model="real_model" @input="change" filterable v-if="!disabled && !multiple"
:placeholder="placeholder">
remote
reserve-keyword
:placeholder="placeholder"
:remote-method="remoteMethod"
:loading="loading">
<div v-if="addNew.status && options.length != 0" class="el-select-dropdown__wrap" slot="empty">
<p class="el-select-dropdown__empty">
{{ noMatchingDataText }}
@ -158,7 +166,11 @@
</el-select>
<el-select v-model="real_model" @input="change" filterable v-if="!disabled && multiple && !collapse" multiple
:placeholder="placeholder">
remote
reserve-keyword
:placeholder="placeholder"
:remote-method="remoteMethod"
:loading="loading">
<div v-if="addNew.status && options.length != 0" class="el-select-dropdown__wrap" slot="empty">
<p class="el-select-dropdown__empty">
{{ noMatchingDataText }}
@ -231,7 +243,11 @@
</el-select>
<el-select v-model="real_model" @input="change" filterable v-if="!disabled && multiple && collapse" multiple collapse-tags
:placeholder="placeholder">
remote
reserve-keyword
:placeholder="placeholder"
:remote-method="remoteMethod"
:loading="loading">
<div v-if="addNew.status && options.length != 0" class="el-select-dropdown__wrap" slot="empty">
<p class="el-select-dropdown__empty">
{{ noMatchingDataText }}
@ -464,14 +480,14 @@ export default {
},
value: {
type: [String, Number, Array],
default: null,
default: '',
description: "Selectbox selected value"
},
options: null,
model: {
type: [String, Number],
default: '',
default: null,
description: "Selectbox selected model"
},
@ -582,10 +598,21 @@ export default {
},
mounted() {
this.real_model = this.value;
if (this.multiple) {
if (!this.value.length) {
this.real_model = [];
} else {
let pre_value = [];
if (this.multiple && !this.real_model.length) {
this.real_model = [];
this.value.forEach(item => {
pre_value.push(item.toString());
});
this.real_model = pre_value;
}
} else {
this.real_model = this.value;
}
this.$emit('interface', this.real_model);
@ -593,6 +620,10 @@ export default {
methods: {
remoteMethod(query) {
if (document.getElementById('form-select-' + this.name)) {
document.getElementById('form-select-' + this.name).getElementsByTagName("input")[0].readOnly = false;
}
if (query !== '') {
this.loading = true;
@ -634,21 +665,27 @@ export default {
},
change() {
if (typeof(this.real_model) === 'object') {
if (typeof(this.real_model) === 'object' && !Array.isArray(this.real_model)) {
return false;
}
if (Array.isArray(this.real_model) && !this.real_model.length) {
return false;
}
this.$emit('interface', this.real_model);
this.$emit('change', this.real_model);
this.selectOptions.forEach(item => {
if (item.id == this.real_model) {
this.$emit('label', item.name);
this.$emit('option', item);
if (Array.isArray(this.selectOptions)) {
this.selectOptions.forEach(item => {
if (item.id == this.real_model) {
this.$emit('label', item.name);
this.$emit('option', item);
return true;
}
});
return true;
}
});
}
},
onPressEnter() {
@ -871,9 +908,37 @@ export default {
}
},
real_model: function (value) {
if (this.multiple) {
return;
}
if (this.real_model != value) {
this.change();
}
let e = $.Event('keyup');
e.keyCode= 9; // tab
$('#' + this.name).trigger(e);
let event = new window.KeyboardEvent('keydown', { keyCode: 9 }); // Tab key
window.dispatchEvent(event);
},
value: function (value) {
if (this.multiple) {
this.real_model = value;
if (Array.isArray(this.real_model) && !this.real_model.length) {
this.real_model = value;
} else {
let pre_value = [];
value.forEach(item => {
pre_value.push(item.toString());
});
this.real_model = pre_value;
}
} else {
//this.real_model = value.toString();
this.real_model = value;

View File

@ -52,6 +52,11 @@
</div>
</slot>
</div>
<slot name="error">
<div v-if="footerError" class="invalid-feedback d-block"
v-html="footerError">
</div>
</slot>
</div>
</template>
<script>
@ -84,6 +89,10 @@
type: String,
description: "Input error (below input)"
},
footerError: {
type: String,
description: "Input error (below input)"
},
successMessage: {
type: String,
description: "Input success message",

View File

@ -12,6 +12,7 @@ import AkauntingSelectRemote from './../components/AkauntingSelectRemote';
import AkauntingDate from './../components/AkauntingDate';
import AkauntingRecurring from './../components/AkauntingRecurring';
import AkauntingHtmlEditor from './../components/AkauntingHtmlEditor';
import AkauntingCountdown from './../components/AkauntingCountdown';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
@ -33,6 +34,7 @@ export default {
AkauntingDate,
AkauntingRecurring,
AkauntingHtmlEditor,
AkauntingCountdown,
[Select.name]: Select,
[Option.name]: Option,
[Steps.name]: Steps,
@ -56,6 +58,10 @@ export default {
mounted() {
this.checkNotify();
if (aka_currency) {
this.currency = aka_currency;
}
},
methods: {
@ -137,7 +143,7 @@ export default {
this.component = Vue.component('add-new-component', (resolve, reject) => {
resolve({
template : '<div id="dynamic-component"><akaunting-modal v-if="confirm.show" :show="confirm.show" :title="confirm.title" :message="confirm.message" :button_cancel="confirm.button_cancel" :button_delete="confirm.button_delete" @confirm="onDelete" @cancel="cancelDelete"></akaunting-modal></div>',
template : '<div id="dynamic-delete-component"><akaunting-modal v-if="confirm.show" :show="confirm.show" :title="confirm.title" :message="confirm.message" :button_cancel="confirm.button_cancel" :button_delete="confirm.button_delete" @confirm="onDelete" @cancel="cancelDelete"></akaunting-modal></div>',
components: {
AkauntingModal,
@ -184,10 +190,10 @@ export default {
}
})
.then(response => {
this.currency = response.data;
this.form.currency_code = response.data.currency_code;
this.form.currency_rate = response.data.currency_rate;
this.currency = response.data;
})
.catch(error => {
});
@ -308,5 +314,79 @@ export default {
// always executed
});
},
// Delete attachment file
onDeleteFile(file_id, url, title, message, button_cancel, button_delete) {
let file_data = {
page: null,
key: null,
value: null,
ajax: true,
redirect: window.location.href
};
if (this.form['page' + file_id]) {
file_data.page = this.form['page' + file_id];
}
if (this.form['key' + file_id]) {
file_data.key = this.form['key' + file_id];
}
if (this.form['value' + file_id]) {
file_data.value = this.form['value' + file_id];
}
let confirm = {
url: url,
title: title,
message: message,
button_cancel: button_cancel,
button_delete: button_delete,
file_data: file_data,
show: true
};
this.component = Vue.component('add-new-component', (resolve, reject) => {
resolve({
template : '<div id="dynamic-delete-file-component"><akaunting-modal v-if="confirm.show" :show="confirm.show" :title="confirm.title" :message="confirm.message" :button_cancel="confirm.button_cancel" :button_delete="confirm.button_delete" @confirm="onDelete" @cancel="cancelDelete"></akaunting-modal></div>',
components: {
AkauntingModal,
},
data: function () {
return {
confirm: confirm,
}
},
methods: {
// Delete action post
async onDelete() {
let promise = Promise.resolve(axios({
method: 'DELETE',
url: this.confirm.url,
data: file_data
}));
promise.then(response => {
if (response.data.redirect) {
window.location.href = response.data.redirect;
}
})
.catch(error => {
this.success = false;
});
},
// Close modal empty default value
cancelDelete() {
this.confirm.show = false;
},
}
})
});
},
}
}

View File

@ -48,9 +48,35 @@ export default class Form {
this[form_element.getAttribute('data-field')] = field;
}
/*
if (!this[form_element.getAttribute('data-field')][name]) {
this[form_element.getAttribute('data-field')][name] = '';
}
*/
if (type == 'radio') {
if (!this[form_element.getAttribute('data-field')][name]) {
this[form_element.getAttribute('data-field')][name] = (form_element.getAttribute('value') ? 1 : 0) || 0;
}
} else if (type == 'checkbox') {
if (this[form_element.getAttribute('data-field')][name]) {
if (!this[form_element.getAttribute('data-field')][name].push) {
this[form_element.getAttribute('data-field')][name] = [this[form_element.getAttribute('data-field')][name]];
}
if (form_element.checked) {
this[form_element.getAttribute('data-field')][name].push(form_element.value);
}
} else {
if (form_element.checked) {
this[form_element.getAttribute('data-field')][name] = form_element.value;
} else {
this[form_element.getAttribute('data-field')][name] = [];
}
}
} else {
this[form_element.getAttribute('data-field')][name] = form_element.getAttribute('value') || '';
}
continue;
}

View File

@ -40,7 +40,13 @@ const app = new Vue({
},
mounted() {
this.totals.closing_balance = parseFloat(document.getElementById('closing_balance').value);
if (document.getElementById('closing_balance') != null) {
this.totals.closing_balance = parseFloat(document.getElementById('closing_balance').value);
}
if (this.form._method == 'PATCH') {
this.onCalculate();
}
},
methods:{
@ -59,10 +65,13 @@ const app = new Vue({
let transactions = this.form.transactions;
let cleared_amount = 0;
let closing_balance = parseFloat(this.form.closing_balance);
let difference = 0;
let income_total = 0;
let expense_total = 0;
this.totals.closing_balance = closing_balance;
if (transactions) {
// get all transactions.
Object.keys(transactions).forEach(function(transaction) {
@ -86,9 +95,9 @@ const app = new Vue({
}
if (cleared_amount > 0) {
difference = parseFloat(this.form.closing_balance) - parseFloat(cleared_amount);
difference = (parseFloat(this.form.closing_balance) - parseFloat(cleared_amount)).toFixed(this.currency.precision);
} else {
difference = parseFloat(this.form.closing_balance) + parseFloat(cleared_amount);
difference = (parseFloat(this.form.closing_balance) + parseFloat(cleared_amount)).toFixed(this.currency.precision);
}
if (difference != 0) {

View File

@ -38,15 +38,6 @@ const app = new Vue({
tax: 0,
total: 0
},
transaction_form: new Form('transaction'),
payment: {
modal: false,
amount: 0,
title: '',
message: '',
html: '',
errors: new Error()
},
transaction: [],
items: '',
discount: false,
@ -60,7 +51,9 @@ const app = new Vue({
},
mounted() {
this.colspan = document.getElementById("items").rows[0].cells.length - 1;
if ((document.getElementById('items') != null) && (document.getElementById('items').rows)) {
this.colspan = document.getElementById("items").rows[0].cells.length - 1;
}
this.form.items = [];
if (this.form.method) {
@ -71,6 +64,7 @@ const app = new Vue({
let items = [];
let item_backup = this.form.item_backup[0];
let currency_code = this.form.currency_code;
let currency = this.currency;
this.edit.status = true;
@ -80,11 +74,11 @@ const app = new Vue({
currency: currency_code,
item_id: item.item_id,
name: item.name,
price: (item.price).toFixed(2),
price: (item.price).toFixed(currency.precision),
quantity: item.quantity,
tax_id: item.tax_id,
discount: item.discount_rate,
total: (item.total).toFixed(2)
total: (item.total).toFixed(currency.precision)
});
});
@ -183,10 +177,11 @@ const app = new Vue({
case 'fixed':
item_tax_total += tax.rate * item.quantity;
break;
case 'withholding':
item_tax_total += 0 - item_discounted_total * (tax.rate / 100);
break;
default:
let item_tax_amount = (item_discounted_total / 100) * tax.rate;
item_tax_total += item_tax_amount;
item_tax_total += item_discounted_total * (tax.rate / 100);
break;
}
}
@ -294,10 +289,10 @@ const app = new Vue({
this.form.items[index].item_id = item.id;
this.form.items[index].name = item.name;
this.form.items[index].price = (item.purchase_price).toFixed(2);
this.form.items[index].price = (item.purchase_price).toFixed(this.currency.precision);
this.form.items[index].quantity = 1;
this.form.items[index].tax_id = tax_id;
this.form.items[index].total = (item.purchase_price).toFixed(2);
this.form.items[index].total = (item.purchase_price).toFixed(this.currency.precision);
},
// remove bill item row => row_id = index
@ -322,51 +317,120 @@ const app = new Vue({
this.onCalculateTotal();
},
onPayment() {
this.payment.modal = true;
async onPayment() {
let bill_id = document.getElementById('bill_id').value;
let form = this.transaction_form;
this.transaction_form = new Form('transaction');
this.transaction_form.paid_at = form.paid_at;
this.transaction_form.account_id = form.account_id;
this.transaction_form.payment_method = form.payment_method;
},
addPayment() {
this.transaction_form.submit();
this.payment.errors = this.transaction_form.errors;
this.form.loading = true;
this.$emit("confirm");
},
closePayment() {
this.payment = {
let payment = {
modal: false,
amount: 0,
url: url + '/modals/bills/' + bill_id + '/transactions/create',
title: '',
message: '',
errors: this.transaction_form.errors
html: '',
buttons:{}
};
},
// Change bank account get money and currency rate
onChangePaymentAccount(account_id) {
axios.get(url + '/banking/accounts/currency', {
params: {
account_id: account_id
}
})
.then(response => {
this.transaction_form.currency = response.data.currency_name;
this.transaction_form.currency_code = response.data.currency_code;
this.transaction_form.currency_rate = response.data.currency_rate;
let payment_promise = Promise.resolve(window.axios.get(payment.url));
payment_promise.then(response => {
payment.modal = true;
payment.title = response.data.data.title;
payment.html = response.data.html;
payment.buttons = response.data.data.buttons;
this.component = Vue.component('add-new-component', (resolve, reject) => {
resolve({
template: '<div id="dynamic-payment-component"><akaunting-modal-add-new modal-dialog-class="modal-md" :show="payment.modal" @submit="onSubmit" @cancel="onCancel" :buttons="payment.buttons" :title="payment.title" :is_component=true :message="payment.html"></akaunting-modal-add-new></div>',
mixins: [
Global
],
data: function () {
return {
form:{},
payment: payment,
}
},
methods: {
onSubmit(event) {
this.form = event;
this.form.response = {};
this.loading = true;
let data = this.form.data();
FormData.prototype.appendRecursive = function(data, wrapper = null) {
for(var name in data) {
if (wrapper) {
if ((typeof data[name] == 'object' || data[name].constructor === Array) && ((data[name] instanceof File != true ) && (data[name] instanceof Blob != true))) {
this.appendRecursive(data[name], wrapper + '[' + name + ']');
} else {
this.append(wrapper + '[' + name + ']', data[name]);
}
} else {
if ((typeof data[name] == 'object' || data[name].constructor === Array) && ((data[name] instanceof File != true ) && (data[name] instanceof Blob != true))) {
this.appendRecursive(data[name], name);
} else {
this.append(name, data[name]);
}
}
}
};
let form_data = new FormData();
form_data.appendRecursive(data);
window.axios({
method: this.form.method,
url: this.form.action,
data: form_data,
headers: {
'X-CSRF-TOKEN': window.Laravel.csrfToken,
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'multipart/form-data'
}
})
.then(response => {
if (response.data.success) {
if (response.data.redirect) {
this.form.loading = true;
window.location.href = response.data.redirect;
}
}
if (response.data.error) {
this.form.loading = false;
this.form.response = response.data;
}
})
.catch(error => {
this.form.loading = false;
this.form.onFail(error);
this.method_show_html = error.message;
});
},
onCancel() {
this.payment.modal = false;
this.payment.html = null;
let documentClasses = document.body.classList;
documentClasses.remove("modal-open");
},
}
})
});
})
.catch(error => {
})
.finally(function () {
// always executed
});
},
}

View File

@ -38,15 +38,6 @@ const app = new Vue({
tax: 0,
total: 0
},
transaction_form: new Form('transaction'),
payment: {
modal: false,
amount: 0,
title: '',
message: '',
html: '',
errors: new Error()
},
transaction: [],
items: '',
discount: false,
@ -60,7 +51,10 @@ const app = new Vue({
},
mounted() {
this.colspan = document.getElementById("items").rows[0].cells.length - 1;
if ((document.getElementById('items') != null) && (document.getElementById('items').rows)) {
this.colspan = document.getElementById("items").rows[0].cells.length - 1;
}
this.form.items = [];
if (this.form.method) {
@ -71,6 +65,7 @@ const app = new Vue({
let items = [];
let item_backup = this.form.item_backup[0];
let currency_code = this.form.currency_code;
let currency = this.currency;
this.edit.status = true;
@ -80,11 +75,11 @@ const app = new Vue({
currency: currency_code,
item_id: item.item_id,
name: item.name,
price: (item.price).toFixed(2),
price: (item.price).toFixed(currency.precision),
quantity: item.quantity,
tax_id: item.tax_id,
discount: item.discount_rate,
total: (item.total).toFixed(2)
total: (item.total).toFixed(currency.precision)
});
});
@ -183,10 +178,11 @@ const app = new Vue({
case 'fixed':
item_tax_total += tax.rate * item.quantity;
break;
case 'withholding':
item_tax_total += 0 - item_discounted_total * (tax.rate / 100);
break;
default:
let item_tax_amount = (item_discounted_total / 100) * tax.rate;
item_tax_total += item_tax_amount;
item_tax_total += item_discounted_total * (tax.rate / 100);
break;
}
}
@ -231,7 +227,7 @@ const app = new Vue({
// set global total variable.
this.totals.sub = sub_total;
this.totals.tax = tax_total;
this.totals.tax = Math.abs(tax_total);
this.totals.item_discount = line_item_discount_total;
// Apply discount to total
@ -294,10 +290,10 @@ const app = new Vue({
this.form.items[index].item_id = item.id;
this.form.items[index].name = item.name;
this.form.items[index].price = (item.sale_price).toFixed(2);
this.form.items[index].price = (item.sale_price).toFixed(this.currency.precision);
this.form.items[index].quantity = 1;
this.form.items[index].tax_id = tax_id;
this.form.items[index].total = (item.sale_price).toFixed(2);
this.form.items[index].total = (item.sale_price).toFixed(this.currency.precision);
},
// remove invocie item row => row_id = index
@ -322,51 +318,120 @@ const app = new Vue({
this.onCalculateTotal();
},
onPayment() {
this.payment.modal = true;
async onPayment() {
let invoice_id = document.getElementById('invoice_id').value;
let form = this.transaction_form;
this.transaction_form = new Form('transaction');
this.transaction_form.paid_at = form.paid_at;
this.transaction_form.account_id = form.account_id;
this.transaction_form.payment_method = form.payment_method;
},
addPayment() {
this.transaction_form.submit();
this.payment.errors = this.transaction_form.errors;
this.form.loading = true;
this.$emit("confirm");
},
closePayment() {
this.payment = {
let payment = {
modal: false,
amount: 0,
url: url + '/modals/invoices/' + invoice_id + '/transactions/create',
title: '',
message: '',
errors: this.transaction_form.errors
html: '',
buttons:{}
};
},
// Change bank account get money and currency rate
onChangePaymentAccount(account_id) {
axios.get(url + '/banking/accounts/currency', {
params: {
account_id: account_id
}
})
.then(response => {
this.transaction_form.currency = response.data.currency_name;
this.transaction_form.currency_code = response.data.currency_code;
this.transaction_form.currency_rate = response.data.currency_rate;
let payment_promise = Promise.resolve(window.axios.get(payment.url));
payment_promise.then(response => {
payment.modal = true;
payment.title = response.data.data.title;
payment.html = response.data.html;
payment.buttons = response.data.data.buttons;
this.component = Vue.component('add-new-component', (resolve, reject) => {
resolve({
template: '<div id="dynamic-payment-component"><akaunting-modal-add-new modal-dialog-class="modal-md" :show="payment.modal" @submit="onSubmit" @cancel="onCancel" :buttons="payment.buttons" :title="payment.title" :is_component=true :message="payment.html"></akaunting-modal-add-new></div>',
mixins: [
Global
],
data: function () {
return {
form:{},
payment: payment,
}
},
methods: {
onSubmit(event) {
this.form = event;
this.form.response = {};
this.loading = true;
let data = this.form.data();
FormData.prototype.appendRecursive = function(data, wrapper = null) {
for(var name in data) {
if (wrapper) {
if ((typeof data[name] == 'object' || data[name].constructor === Array) && ((data[name] instanceof File != true ) && (data[name] instanceof Blob != true))) {
this.appendRecursive(data[name], wrapper + '[' + name + ']');
} else {
this.append(wrapper + '[' + name + ']', data[name]);
}
} else {
if ((typeof data[name] == 'object' || data[name].constructor === Array) && ((data[name] instanceof File != true ) && (data[name] instanceof Blob != true))) {
this.appendRecursive(data[name], name);
} else {
this.append(name, data[name]);
}
}
}
};
let form_data = new FormData();
form_data.appendRecursive(data);
window.axios({
method: this.form.method,
url: this.form.action,
data: form_data,
headers: {
'X-CSRF-TOKEN': window.Laravel.csrfToken,
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'multipart/form-data'
}
})
.then(response => {
if (response.data.success) {
if (response.data.redirect) {
this.form.loading = true;
window.location.href = response.data.redirect;
}
}
if (response.data.error) {
this.form.loading = false;
this.form.response = response.data;
}
})
.catch(error => {
this.form.loading = false;
this.form.onFail(error);
this.method_show_html = error.message;
});
},
onCancel() {
this.payment.modal = false;
this.payment.html = null;
let documentClasses = document.body.classList;
documentClasses.remove("modal-open");
},
}
})
});
})
.catch(error => {
})
.finally(function () {
// always executed
});
},
}

View File

@ -45,13 +45,13 @@ return [
'paid' => 'مدفوع',
'overdue' => 'متأخر',
'unpaid' => 'غير مدفوع',
'cancelled' => 'Cancelled',
'cancelled' => 'ملغى',
],
'messages' => [
'marked_received' => 'Bill marked as received!',
'marked_received' => 'تم وضع علامة الاستلام على الفاتورة!',
'marked_paid' => 'الفاتورة عُلّمت كمدفوعة!',
'marked_cancelled' => 'Bill marked as cancelled!',
'marked_cancelled' => 'تم وضع علامة الإلغاء على الفاتورة!',
'draft' => 'هذة فاتورة شراء عبارة عن <b> مسودة </b> و سوف يتم اظهارها بالنظام بعد ان يتم استحقاقها.',
'status' => [

View File

@ -21,7 +21,8 @@ return [
'disabled' => 'يجب تعطيل :feature!',
'extension' => 'يجب تثبيت وتشغيل ملحق :extension!',
'directory' => 'يجب منح صلاحية الكتابة على مجلد :directory!',
'executable' => 'The PHP CLI executable file is not defined/working or its version is not :php_version or higher! Please, ask your hosting company to set PHP_BINARY or PHP_PATH environment variable correctly.',
'executable' => 'ان الملف التنفيذى ل PHP CLI غير معرف او لا يعمل او ان اصداره ليس :php_version او اعلى منه, من فضلك اطلب من شركه الاستضافه تعيين متغير بيئة PHP_BINARY أو PHP_PATH بشكل صحيح.
',
],
'database' => [
@ -39,6 +40,7 @@ return [
],
'error' => [
'php_version' => 'حدث خطأ: اطلب من المتعهد مزود الخدمه ان يستخدم PHP :php_version او اعلى منه لكلا من HTTP و CLI',
'connection' => 'خطأ: لا يمكن الاتصال بقاعدة البيانات! من فضلك، تأكد من صحة المعلومات.',
],

View File

@ -13,7 +13,7 @@ return [
'price' => 'السعر',
'sub_total' => 'المجموع الجزئي',
'discount' => 'الخصم',
'item_discount' => 'Line Discount',
'item_discount' => 'خصم على هذه المنتجات',
'tax_total' => 'إجمالي الضريبة',
'total' => 'الإجمالي',
@ -31,7 +31,7 @@ return [
'mark_paid' => 'التحديد كمدفوع',
'mark_sent' => 'التحديد كمرسل',
'mark_viewed' => 'وضع علامة مشاهدة',
'mark_cancelled' => 'Mark Cancelled',
'mark_cancelled' => 'العلامه ألغيت',
'download_pdf' => 'تحميل PDF',
'send_mail' => 'إرسال بريد إلكتروني',
'all_invoices' => 'سجّل الدخول لعرض جميع الفواتير',
@ -49,15 +49,15 @@ return [
'paid' => 'مدفوع',
'overdue' => 'متأخر',
'unpaid' => 'غير مدفوع',
'cancelled' => 'Cancelled',
'cancelled' => 'تم الإلغاء',
],
'messages' => [
'email_sent' => 'تم إرسال الفاتورة عبر البريد اﻹلكتروني!',
'marked_sent' => 'الفاتورة عُلّمت كمرسلة!',
'marked_paid' => 'الفاتورة عُلّمت كمدفوع!',
'marked_viewed' => 'Invoice marked as viewed!',
'marked_cancelled' => 'Invoice marked as cancelled!',
'marked_viewed' => 'تم رأيت الفاتورة',
'marked_cancelled' => 'تم الغاء الفاتورة',
'email_required' => 'لا يوجد عنوان البريد إلكتروني لهذا العميل!',
'draft' => 'هذه <b>مسودة</b> الفاتورة و سوف تظهر في النظام بعد ارسالها.',

View File

@ -28,8 +28,8 @@ return [
'warning' => [
'deleted' => 'تنبيه: لا يمكنك حذف <b>:name</b> لأنه لديه :text مرتبط به.',
'disabled' => 'تنبيه: لا يمكنك تعطيل <b>:name</b> لأنه لديه :text مرتبط به.',
'reconciled_tran' => 'Warning: You are not allowed to change/delete transaction because it is reconciled!',
'reconciled_doc' => 'Warning: You are not allowed to change/delete :type because it has reconciled transactions!',
'reconciled_tran' => 'تحذير: غير مسموح لك تغيير او حذف الصفقة لان هذا ما تم التوفيق به',
'reconciled_doc' => 'تحذير: غير مسموح لك تغيير او حذف :type لانه يمتلك صفقه متوافق عليها ',
'disable_code' => 'تنبيه: لا يمكنك تعطيل او تغير عملة <b>:name</b> بسبب ارتباطه ب :text.',
'payment_cancel' => 'تنبيه: قمت بالغاء اخر طريقة :method دفع!',
],

View File

@ -9,7 +9,6 @@ return [
'new' => 'جديد',
'top_free' => 'أعلى مجانيات ',
'free' => 'مجاناً',
'search' => 'بحث',
'install' => 'تثبيت',
'buy_now' => 'الشراء الآن',
'get_api_key' => '<a href=":url" target="_blank">إضغط هنا</a>للحصول على مفتاح API الخاص بك.',

View File

@ -30,10 +30,10 @@ return [
'after' => 'بعد الرقم',
],
'discount_location' => [
'name' => 'Discount Location',
'item' => 'At line',
'total' => 'At total',
'both' => 'Both line and total',
'name' => 'خصم على الموقع',
'item' => 'فى السطر',
'total' => 'ف الاجمالى',
'both' => 'كلا من الخط و الاجمالى',
],
],

View File

@ -8,4 +8,5 @@ return [
'inclusive' => 'شامل',
'compound' => 'مُركب',
'fixed' => 'ثابت',
'withholding' => 'حجز',
];

View File

@ -104,7 +104,7 @@ return [
],
'invalid_currency' => 'رمز خانة :attribute غير صحيحة.',
'invalid_amount' => 'خانة المبلغ :attribute غير صالحة.',
'invalid_extension' => 'هذا الملف غير صالح.',
'invalid_extension' => 'امتداد الملف غير صالح.',
],
/*

View File

@ -24,7 +24,7 @@ return [
'error' => [
'self_delete' => 'Грешка: Не може да изтриете себе си!',
'self_disable' => 'Грешка: Не може да изтриете себе си!',
'self_disable' => 'Грешка: Не може да деактивирате себе си!',
'no_company' => 'Грешка: Няма компания, добавена към вашия акаунт. Моля, обърнете се към системния администратор.',
],
@ -34,7 +34,7 @@ return [
'notification' => [
'message_1' => 'Вие получавате този имейл, защото сме получили искане за нулиране на паролата за вашия акаунт.',
'message_2' => 'Ако не поискате възстановяване на паролата, не са позволени по-нататъчни действия.',
'message_2' => 'Ако не сте поискали възстановяване на паролата, не са необходими по-нататъшни действия.',
'button' => 'Възстановяване на парола',
],

View File

@ -15,7 +15,9 @@ return [
'paid' => 'Наистина ли искате да маркирате записа като <b>платен</b>?|Наистина ли искате да маркирате записите като <b>платени</b>?',
'sent' => 'Наистина ли искате да маркирате записа като <b>изпратен</b>?|Наистина ли искате да маркирате записите като <b>изпратени</b>?',
'received' => 'Наистина ли искате да маркирате записа като <b>получен</b>?|Наистина ли искате да маркирате записите като <b>получени</b>?',
'cancelled' => 'Are you sure you want to <b>cancel</b> selected invoice/bill?|Are you sure you want to <b>cancel</b> selected invoices/bills?',
'cancelled' => 'Наистина ли искате да <b>откажете</b> избрания запис?|Наистина ли искате да <b>откажете</b> избраните записи?',
'reconcile' => 'Наистина ли искате да <b>консолидирате</b> избрания запис?|Наистина ли искате да <b>консолидирате</b> избраните записи?',
'unreconcile' => 'Наистина ли искате да <b>деконсолидирате</b> избрания запис?|Наистина ли искате да <b>деконсолидирате</b> избраните записи?',
],
];

View File

@ -2,11 +2,11 @@
return [
'dashboards' => 'ТаблоІТабла',
'dashboards' => 'Табло | Табла',
'items' => 'Стока | Стоки',
'incomes' => 'Приход | Приходи',
'invoices' => 'Фактура | Фактури',
'revenues' => 'Приходи | Приходи',
'revenues' => 'Приход | Приходи',
'customers' => 'Клиент | Клиенти',
'expenses' => 'Разход| Разходи',
'bills' => 'Фактура| Фактура',
@ -42,13 +42,13 @@ return [
'contacts' => 'Контакт|Контакти',
'reconciliations' => 'Съгласуване|Съгласувания',
'developers' => 'Разработчик|Разработчици',
'schedules' => 'ПрограмаІПрограми',
'groups' => 'ГрупаІГрупи',
'charts' => 'ДиаграмаІДиаграми',
'localisations' => 'ЛокализиранеІЛокализиране',
'defaults' => 'По подразбиранеІПо подразбиране',
'widgets' => 'ДобавкаІДобавки',
'templates' => 'Образец|Образци',
'schedules' => 'График | Графици',
'groups' => 'Група | Групи',
'charts' => 'Диаграма | Диаграми',
'localisations' => 'Локализиране | Локализиране',
'defaults' => 'По подразбиране | По подразбиране',
'widgets' => 'Добавка | Добавки',
'templates' => 'Образец | Образци',
'sales' => 'Продажба|Продажби',
'purchases' => 'Покупка|Покупки',
@ -193,7 +193,7 @@ return [
'documentation' => 'Разгледайте <a href=":url" target="_blank">документите</a> за повече подробности.',
'items' => 'Артикулите могат да бъдат продукти или услуги. Можете да използвате артикули, когато създавате фактури и сметки, за да се въведат автоматично цената, данъка и т. н.',
'invoices' => 'Фактурите могат да бъдат еднократни или повтарящи се. Може да ги изпращате на клиентите и да приемате плащания онлайн.',
'revenues' => 'Оборотът е платения приход. Той може да бъде независим запис (например депозит) или свързан с фактура.',
'revenues' => 'Приходът е платена входяща транзакция. Той може да бъде независим запис (например депозит) или свързан с фактура.',
'customers' => 'Клиентите са задължителни ако желаете да създадете фактура. Те могат да влязат в техния профил и да разгледат баланса си.',
'bills' => 'Фактурите могат да бъдат еднократни или повтарящи се. Те посочват какво дължите на доставчиците си за продуктите или услугите, които купувате.',
'payments' => 'Плащането е транзакция с платен разход. Той може да бъде независим запис (т.е. разписка за храна) или приложен към сметката.',

View File

@ -39,6 +39,7 @@ return [
],
'error' => [
'php_version' => 'Грешка: Поискайте от своя хостинг доставчик да инсталира PHP :php_version или по-висока за HTTP and CLI едновременно.',
'connection' => 'Грешка: Не можа да се свърже с базата данни! Моля, уверете се, че данните са правилни.',
],

View File

@ -56,8 +56,8 @@ return [
'email_sent' => 'Фактурата беше изпратена!',
'marked_sent' => 'Фактурата е маркирана като изпратена!',
'marked_paid' => 'Фактурата е маркирана като платена!',
'marked_viewed' => 'Invoice marked as viewed!',
'marked_cancelled' => 'Invoice marked as cancelled!',
'marked_viewed' => 'Фактурата е маркирана като видяна!',
'marked_cancelled' => 'Сметката е маркирана като отказана!',
'email_required' => 'Няма имейл адрес за този клиент!',
'draft' => 'Това е <b>ЧЕРНОВА</b> фактура и няма да бъде отразена в графиките след като бъде изпратена.',

View File

@ -9,7 +9,6 @@ return [
'new' => 'Нов',
'top_free' => 'Топ безплатни',
'free' => 'БЕЗПЛАТНО',
'search' => 'Търси',
'install' => 'Инсталирай',
'buy_now' => 'Купете сега',
'get_api_key' => '<a href=":url" target="_blank">Натиснете тук</a> за да получите вашия API ключ.',

View File

@ -2,8 +2,10 @@
return [
'reconcile' => 'Оспори',
'reconcile' => 'Консолидация',
'unreconcile' => 'Деконсолидация',
'reconciled' => 'Оспорен',
'opening_balance' => 'Начално салдо',
'closing_balance' => 'Краен Баланс',
'unreconciled' => 'Не подлежи на оспорване',
'transactions' => 'Плащания',

View File

@ -2,10 +2,11 @@
return [
'rate' => 'Данък',
'rate' => 'Ставка',
'rate_percent' => 'Ставка (%)',
'normal' => 'Нормално',
'inclusive' => 'Включително',
'compound' => 'Сложен',
'compound' => 'С натрупване',
'fixed' => 'Фиксиран',
'withholding' => 'Удържан',
];

View File

@ -4,11 +4,11 @@ return [
'account_name' => 'অ্যাকাউন্টের নাম',
'number' => 'সংখ্যা',
'opening_balance' => 'প্রারম্ভিক স্থিতি',
'current_balance' => 'বর্তমান হিসাব',
'opening_balance' => 'শুরুর ব্যালেন্স',
'current_balance' => 'বর্তমান ব্যালেন্স',
'bank_name' => 'ব্যাংকের নাম',
'bank_phone' => 'ব্যাংকের ফোন নাম্বার',
'bank_address' => 'ব্যাংকের ঠিকানা',
'default_account' => 'পূর্ব-নির্ধারিত হিসাব',
'default_account' => 'ডিফল্ট একাউন্ট',
];

View File

@ -2,16 +2,17 @@
return [
'profile' => 'বৃত্তান্ত',
'profile' => 'প্রোফাইল',
'logout' => 'প্রস্থান',
'login' => 'প্রবেশ',
'login_to' => 'আপনার সেশন শুরু করতে প্রবেশ করুন',
'remember_me' => 'আমাকে মনে রেখো',
'login_to' => 'আপনার সেশন শুরু করতে লগ ইন করুন',
'remember_me' => 'আমাকে মনে রাখুন',
'forgot_password' => 'আমি আমার পাসওয়ার্ড ভুলে গেছি',
'reset_password' => 'পাসওয়ার্ড পুনরুদ্ধার করুন',
'reset_password' => 'পাসওয়ার্ড রিসেট করুন
',
'enter_email' => 'আপনার ই-মেইল ঠিকানা লিখুন',
'current_email' => 'বর্তমান ই-মেইল',
'reset' => 'পূর্বাবস্থায় ফিরুন',
'reset' => 'রিসেট',
'never' => 'কখনো না',
'landing_page' => 'প্রথম পাতা ',
@ -29,13 +30,14 @@ return [
],
'failed' => 'এই পরিচয়পত্র আমাদের রেকর্ডের সাথে মেলে না।',
'disabled' => 'এই অ্যাকাউন্টটি নিষ্ক্রিয় করা হয়েছে। দয়া করে সিস্টেম পরিচালকের সাথে যোগাযোগ করুন।',
'disabled' => 'এই অ্যাকাউন্টটি নিষ্ক্রিয় করা হয়েছে। দয়া করে সিস্টেম অ্যাডমিনস্ট্রেটরের সাথে যোগাযোগ করুন।',
'throttle' => 'প্রবেশ করার জন্য অনেকবার চেষ্টা করেছেন। :seconds সেকেন্ড পরে আবার চেষ্টা করুন।',
'notification' => [
'message_1' => 'আপনি এই ই-মেলটি গ্রহণ করছেন কারণ আমরা আপনার অ্যাকাউন্টের জন্য পাসওয়ার্ড পুনরুদ্ধার করার একটি অনুরোধ পেয়েছি।',
'message_2' => 'যদি আপনি পাসওয়ার্ড পুনরুদ্ধারের অনুরোধ না করে থাকেন, তবে কোনও পদক্ষেপের প্রয়োজন নেই।',
'button' => 'পাসওয়ার্ড পুনরুদ্ধার করুন',
'button' => 'পাসওয়ার্ড রিসেট করুন
',
],
];

View File

@ -9,15 +9,15 @@ return [
'order_number' => 'অর্ডার নম্বর',
'bill_from' => 'বিল থেকে',
'quantity' => 'পরিমা',
'quantity' => 'পরিমা',
'price' => 'মূল্য',
'sub_total' => 'সাবটোটাল',
'discount' => 'ডিসকাউন্ট',
'discount' => 'ছাড়',
'item_discount' => 'লাইন ছাড়/রেয়াত',
'tax_total' => 'মোট ট্যাক্স',
'total' => 'মোট',
'item_name' => 'আইটেম নাম|আইটেম নাম',
'item_name' => 'আইটেমের নাম | আইটেমগুলোর নাম',
'show_discount' => ':discount% ছাড়',
'add_discount' => 'ডিসকাউন্ট যুক্ত করুন',
@ -25,12 +25,11 @@ return [
'payment_due' => 'বাকি টাকা',
'amount_due' => 'বাকি আছে',
'paid' => 'দেওয়া',
'paid' => 'পরিশোধিত',
'histories' => 'ইতিহাস',
'payments' => 'টাকা প্রদান
',
'payments' => 'পেমেন্টগুলো',
'add_payment' => 'পেমেন্ট যুক্ত করুন',
'mark_paid' => 'পরিশোধিত হিসাবে চিহ্নিত কর',
'mark_paid' => 'পরিশোধিত হিসাবে চিহ্নিত করুন',
'mark_received' => 'পেয়েছেন হিসাবে চিহ্নত করুন',
'mark_cancelled' => 'বাতিলকৃত হিসাবে চিহ্নিত',
'download_pdf' => 'PDF ডাউনলোড',
@ -43,7 +42,7 @@ return [
'draft' => 'খসড়া',
'received' => 'প্রাপ্ত',
'partial' => 'আংশিক',
'paid' => 'দেওয়া',
'paid' => 'পরিশোধিত',
'overdue' => 'বিলম্বিত',
'unpaid' => 'অপরিশোধিত',
'cancelled' => 'বাতিলকৃত',
@ -53,16 +52,16 @@ return [
'marked_received' => 'বিলটি পরিশোধিত হিসাবে চিহ্নিত করা হয়েছে!',
'marked_paid' => 'বিলটি পরিশোধিত হিসাবে চিহ্নিত করা হয়েছে!',
'marked_cancelled' => 'বিলটি বাতিলকৃত হিসাবে চিহ্নিত করা হয়েছে',
'draft' => 'এটি একটি খসড়া বিল এবং এটি চার্টে দ্যাখা যাবে যখন এটি গ্রহণ করা হবে ।',
'draft' => 'এটি একটি <b>খসড়া </b>বিল এবং এটি গৃহীত হওয়ার পর চার্টে দখা যাবে।',
'status' => [
'created' => 'তৈরি করা: তারিখ ',
'created' => 'তৈরি করা: :date',
'receive' => [
'draft' => 'পাঠানো না',
'received' => 'গ্রহণ করা হয়েছে : তারিখ ',
'draft' => 'অপ্রেরিত',
'received' => 'গ্রহণ করা হয়েছে :date',
],
'paid' => [
'await' => 'পেমেন্ট অপেক্ষ',
'await' => 'পেমেন্ট অপেক্ষমান',
],
],
],

View File

@ -4,18 +4,18 @@ return [
'bulk_actions' => 'গণ পদক্ষেপ | গণ পদক্ষেপসমূহ',
'selected' => 'নির্বাচিত',
'no_action' => 'কোন পদক্ষেপ উপলভ্য নেই',
'no_action' => 'কোন কার্যক্রম নেই',
'message' => [
'duplicate' => 'আপনি কি নির্বাচিত <b>দ্বিনকল</b> ভুক্তিটি মুছে ফেলতে বদ্ধপরিকর ?',
'delete' => 'আপনি কি নির্বাচিত ভুক্তিটি <b>মুছে </b> ফেলতে বদ্ধ পরিকর ?| আপনি কি নির্বাচিত ভুক্তিসমূহ <b>মুছে </b> ফেলতে বদ্ধ পরিকর ?',
'export' => 'আপনি কি নির্বাচিত ভুক্তি টি <b>রপ্তানী</b> করতে বদ্ধপরিকর ? | আপনি কি নির্বাচিত ভুক্তি সমূহ <b>রপ্তানী</b> করতে বদ্ধপরিকর ? ',
'enable' => 'আপনি কি নির্বাচিত ভুক্তিটি <b>সক্রিয় </b>করতে বদ্ধপরিকর ? | আপনি কি নির্বাচিত ভুক্তি সমূহ <b>রপ্তানী</b> করতে বদ্ধপরিকর ? ',
'disable' => 'আপনি কি নির্বাচিত ভুক্তিটি <b>নিষ্ক্রিয় </b>করতে বদ্ধপরিকর ? | আপনি কি নির্বাচিত ভুক্তি সমূহ <b>নিষ্ক্রিয়</b> করতে বদ্ধপরিকর ? ',
'duplicate' => 'আপনি কি নির্বাচিত রেকর্ডটি <b>ডুপ্লিকেট</b> করতে নিশ্চিত?',
'delete' => 'আপনি কি নির্বাচিত রেকর্ডটি <b>মুছে </b> ফেলতে নিশ্চিত?| আপনি কি নির্বাচিত রেকর্ডসমূহ <b>মুছে </b> ফেলতে নিশ্চিত ?',
'export' => 'আপনি কি নির্বাচিত রেকর্ডটি <b>এক্সপোর্ট</b> করতে নিশ্চিত ? | আপনি কি নির্বাচিত রেকর্ডসমূহ <b>এক্সপোর্ট</b> করতে নিশ্চিত ? ',
'enable' => 'আপনি কি নির্বাচিত রেকর্ডটি <b>সক্রিয় </b>করতে নিশ্চিত ? | আপনি কি নির্বাচিত রেকর্ডসমূহ <b>সক্রিয়</b> করতে নিশ্চিত ? ',
'disable' => 'আপনি কি নির্বাচিত রেকর্ডটি <b>নিষ্ক্রিয় </b>করতে নিশ্চিত ? | আপনি কি নির্বাচিত রেকর্ডসমূহ <b>নিষ্ক্রিয়</b> করতে নিশ্চিত ? ',
'paid' => 'আপনি কি নির্বাচিত ইনভয়েসটিকে <b>পরিশোধিত</b> হিসাবে চিহ্নিত করতে চান ? | আপনি কি নির্বাচিত ইনভয়েসটিগুলোকে <b>পরিশোধিত</b> হিসাবে চিহ্নিত করতে চান ?',
'sent' => 'আপনি কি নির্বাচিত ইনভয়েসটিকে <b> পাঠানো</b> হিসাবে চিহ্নিত করতে চান ? | আপনি কি নির্বাচিত ইনভয়েসগুলোকে <b> পাঠানো</b> হিসাবে চিহ্নিত করতে চান',
'received' => 'আপনি কি নির্বাচিত বিলটিকে <b>প্রাপ্ত </b>হিসাবে চিহ্নিত করতে চান ? | আপনি কি নির্বাচিত বিলগুলোকে প্রাপ্ত হিসাবে <b> চিহ্নিত</b> করতে চান ? ',
'cancelled' => 'আপনি কি নির্বাচিত বিল/ইনভয়েসটি <b> বাতিল </b> করতে বদ্ধপরিকর ?| আপনি কি নির্বাচিত বিল/ইনভয়েসগুলোকে <b> বাতিল </b> করতে বদ্ধপরিকর ?',
'cancelled' => 'আপনি কি নির্বাচিত বিল/ইনভয়েসটি <b> বাতিল </b> করতে নিশ্চিত?| আপনি কি নির্বাচিত বিল/ইনভয়েসগুলোকে <b> বাতিল </b> করতে নিশ্চিত?',
],
];

View File

@ -20,7 +20,7 @@ return [
'offline_payments' => [
'cash' => 'নগদ',
'bank' => 'ব্যাংক হিসাবে স্থানান্তর',
'bank' => 'ব্যাংক ট্রান্সফার',
],
'reports' => [

View File

@ -4,12 +4,12 @@ return [
'invoice_new_customer' => [
'subject' => '{invoice_number} ইনভয়েস তৈরি করা হয়েছে',
'body' => 'সুপ্রিয় {customer_name},<br /><br /> আমরা আপনার সুবিধার্থে এই ইনভয়েসটি তৈরি করেছিঃ <strong>{invoice_number}</strong>.<br /><br /> ইনভয়েসের বিস্তারিত বিবরণ দেখতে এবং পে-মেন্ট করতে অগ্রসর হতে নিচের লিংকে ক্লিক করুনঃ <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br /> কোন জিজ্ঞাসা থাকলে নিঃসংকোচে যোগাযোগ করুন । <br /><br />ধন্যবাদান্তে,<br />{company_name}',
'body' => 'সুপ্রিয় {customer_name},<br /><br /> আমরা আপনার সুবিধার্থে এই ইনভয়েসটি তৈরি করেছিঃ <strong>{invoice_number}</strong>.<br /><br /> ইনভয়েসের বিস্তারিত বিবরণ দেখতে এবং পে-মেন্ট করতে নিচের লিংকে ক্লিক করুনঃ <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br /> কোন জিজ্ঞাসা থাকলে নিঃসংকোচে যোগাযোগ করুন । <br /><br />ধন্যবাদান্তে,<br />{company_name}',
],
'invoice_remind_customer' => [
'subject' => '{invoice_number} সময়োত্তীর্ণ ইনভয়েসের বিজ্ঞপ্তি',
'body' => 'প্রিয় সুধী {customer_name},<br /><br />This is an overdue notice for <strong>{invoice_number}</strong> invoice.<br /><br />The invoice total is {invoice_total} and was due <strong>{invoice_due_date}</strong>.<br /><br />You can see the invoice details and proceed with the payment from the following link: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />ধন্যবাদান্তে,<br />{company_name}',
'body' => 'প্রিয় {customer_name},<br /><br />এটি ইনভয়েস নম্বর: <strong>{invoice_number}</strong> এর সময় উত্তীর্ণ হওয়ার নোটিশ।<br /><br />ইনভয়েসের সর্বমোট মূল্য {invoice_total} এবং সময়সীমা <strong>{invoice_due_date}</strong> পর্যন্ত ছিল।<br /><br />ইনভয়েসের বিস্তারিত দেখতে এবং পেমেন্ট করতে এই লিংক ভিজিট করুন: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />ধন্যবাদান্তে,<br />{company_name}',
],
'invoice_remind_admin' => [
@ -24,7 +24,7 @@ return [
'invoice_recur_admin' => [
'subject' => '{invoice_number} আবর্তক ইনভয়েস তৈরি করা হয়েছে',
'body' => 'সুপ্রিয় সুধী<br /><br />{customer_name} আবর্তক চক্রের ভিত্তিতে <strong>{invoice_number}</strong> স্বয়ংক্রিয়ভাবে ইনভয়েসটি তৈরি করা হয়েছে। <br /><br />নিচের লিংকে ইনভয়েসের বিস্তারিত বিবরণ পাবেনঃ <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br /> ধন্যবাদান্তে,<br />{company_name}',
'body' => 'প্রিয়<br /><br />{customer_name} আবর্তক চক্রের ভিত্তিতে <strong>{invoice_number}</strong> স্বয়ংক্রিয়ভাবে ইনভয়েসটি তৈরি করা হয়েছে। <br /><br />নিচের লিংকে ইনভয়েসের বিস্তারিত বিবরণ পাবেনঃ <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br /> ধন্যবাদান্তে,<br />{company_name}',
],
'invoice_payment_customer' => [
@ -33,13 +33,13 @@ return [
],
'invoice_payment_admin' => [
'subject' => 'এই {invoice_number} ইনভয়েসের জন্য পেমেন্ট গৃহীত হয়েছে',
'subject' => '{invoice_number} ইনভয়েসের জন্য পেমেন্ট গৃহীত হয়েছে',
'body' => 'প্রিয়,<br /><br />{customer_name} <strong>{invoice_number}</strong> ইনভয়েসের জন্য একটি পেমেন্ট নথিভুক্ত করেছেন<br /><br />ইনভয়েসের বিস্তারিত বিবরণ নিচের লিংকে পাবেনঃ <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br />ধন্যবাদান্তে,<br />{company_name}।',
],
'bill_remind_admin' => [
'subject' => '{bill_number} বিল অনুস্মারক বিজ্ঞপ্তি',
'body' => 'প্রিয় ,<br /><br />এটি {vendor_name} কে প্রদত্ত <strong>{bill_number}</strong> বিল পরিোধের অনুস্মারক বিজ্ঞপ্তি।<br /><br />মোট বিল {bill_total} এবং পরিশোধের তারিখ <strong>{bill_due_date}</strong>। <br /><br />নিচের লিংক থেকে আপনি বিলের বিশদ বিবরণ দেখতে পাবেনঃ <a href="{bill_admin_link}">{bill_number}</a>.<br /><br />ধন্যবাদান্তে,<br />{company_name}।',
'body' => 'প্রিয় ,<br /><br />এটি {vendor_name} কে প্রদত্ত <strong>{bill_number}</strong> বিল পরিোধের অনুস্মারক বিজ্ঞপ্তি।<br /><br />মোট বিল {bill_total} এবং পরিশোধের তারিখ <strong>{bill_due_date}</strong>। <br /><br />নিচের লিংক থেকে আপনি বিলের বিশদ বিবরণ দেখতে পাবেনঃ <a href="{bill_admin_link}">{bill_number}</a>.<br /><br />ধন্যবাদান্তে,<br />{company_name}।',
],
'bill_recur_admin' => [

View File

@ -3,7 +3,7 @@
return [
'title' => [
'403' => 'ওহহো! অননুমোদিত অনুপ্রবেশের চেষ্টা',
'403' => 'ওহহো! প্রবেশাধিকার সংরক্ষিত',
'404' => 'ওহহো ! পৃষ্ঠাটি খুঁজে পাওয়া গেল না',
'500' => 'ওহহো! কিছু একটা সমস্যা হয়েছে।',
],
@ -15,8 +15,8 @@ return [
],
'message' => [
'403' => 'আপনি এই পৃষ্ঠায় অনুপ্রবেশ করতে পারবেন না',
'404' => 'আপনার উদ্দিষ্ট পৃষ্ঠাটি খুঁজে পাওয়া গেল না ।',
'403' => 'আপনি এই পৃষ্ঠায় প্রবেশ করতে পারবেন না',
'404' => 'আপনার সন্ধানকৃত পৃষ্ঠাটি খুঁজে পাওয়া গেল না ।',
'500' => 'আমরা এই বিষয়টি দ্রুত সমাধানের চেষ্টা করবো।',
],

View File

@ -3,7 +3,7 @@
return [
'version' => 'সংস্করণ',
'powered' => 'চালিত হচ্ছে Akaunting দিয়েঃ ',
'powered' => 'অ্যাকাউন্টিং(Akaunting)্বারা চালিত',
'link' => 'https://akaunting.com',
'software' => 'মুক্ত হিসাবরক্ষণ সফটওয়্যার',

View File

@ -3,60 +3,60 @@
return [
'dashboards' => 'ড্যাসবোর্ড | ড্যাসবোর্ড গুলো',
'items' => 'আইটেম | আইটেমগুলো',
'incomes' => 'আয় | আয়',
'invoices' => 'ইনভয়েস | ইনভয়েসগুলো',
'revenues' => 'রাজস্ব | রাজস্ব',
'items' => 'আইটেম | আইটেমসমূহ',
'incomes' => 'আয় | আয়সমূহ',
'invoices' => 'ইনভয়েস | ইনভয়েসসমূহ',
'revenues' => 'রাজস্ব | রাজস্বসমূহ',
'customers' => 'ক্রেতা | ক্রেতাবৃন্দ',
'expenses' => 'খরচ | খরচসমূহ',
'bills' => 'বিল | বিলগুলো',
'payments' => 'পেমেন্ট | পেমেন্টগুলো',
'bills' => 'বিল | বিলসমূহ',
'payments' => 'পেমেন্ট | পেমেন্টসমূহ',
'vendors' => 'সরবরাহকারী | সরবরাহকারীবৃন্দ
',
'accounts' => 'একাউন্ট | একাউন্টগুলো',
'transfers' => 'স্থানান্তর | স্থানান্তরসমূহ',
'accounts' => 'একাউন্ট | একাউন্টসমূহ',
'transfers' => 'ট্রান্সফার|ট্রান্সফারসমূহ',
'transactions' => 'লেনদেন | লেনদেনসমূহ',
'reports' => 'প্রতিবেদন | প্রতিবেদনসমূহ',
'settings' => 'নিয়ামক | নিয়ামকসমূহ',
'categories' => 'ক্যাটেগরি | ক্যাটেগরিগুলো',
'settings' => 'সেটিংস| সেটিংস',
'categories' => 'ধরণ | ধরণসমূহ',
'currencies' => 'মুদ্রা | মুদ্রাসমূহ',
'tax_rates' => 'করের হার | করের হার সমূহ',
'users' => 'ব্যবহারকারি | ব্যবহারকারিবৃন্দ',
'roles' => 'ভুমিকা | ভুমিকাসমূহ',
'permissions' => 'অনুমতি | অনুমতিসমূহ',
'modules' => 'অ্যাপ | অ্যাপগুলো',
'modules' => 'অ্যাপ | অ্যাপসমূহ',
'companies' => 'প্রতিষ্ঠান | প্রতিষ্ঠানসমূহ',
'profits' => 'লাভ | লাভ',
'taxes' => 'কর | করসমূহ',
'logos' => 'লোগো | লোগোগুলো',
'pictures' => 'ছবি | ছবিগুলো',
'logos' => 'লোগো | লোগোসমূহ',
'pictures' => 'ছবি | ছবিসমূহ',
'types' => 'ধরণ | ধরণসমূহ',
'payment_methods' => 'পেমেন্টের পদ্ধতি | পেমেন্টের পদ্ধতিসমূহ',
'compares' => 'আয় বনাম ব্যয় | আয়সমূহ বনাম ব্যয়সমূহ',
'notes' => 'দ্রষ্টব্য | দ্রষ্টব্যসমূহ',
'totals' => 'সর্বমোট | সর্বমোটসমূহ',
'languages' => 'ভাষা | ভাষাসমূহ',
'updates' => 'পরিবর্ধন | পরিবর্ধনসমূহ',
'updates' => 'আপডেট| আপডেটসমূহ',
'numbers' => 'সংখ্যা | সংখ্যাগুলো',
'statuses' => 'অবস্থা | অবস্থাসমূহ',
'others' => 'অন্যান্য | অন্যান্যগুলো',
'contacts' => 'কন্টাক্ট | কন্টাক্টগুলো',
'reconciliations' => 'সমন্বয় | সমন্বয়সমূহ',
'developers' => 'ডেভেলপার | ডেভেলপাররা',
'developers' => 'ডেভেলপার | ডেভেলপারবৃন্দ',
'schedules' => 'তফসিল | তফসিলসমূহ',
'groups' => 'গোষ্ঠী | গোষ্ঠীসমূহ',
'charts' => 'চার্ট | চার্টগুলো',
'localisations' => 'স্থানীয়করণ | স্থানীয়করণসমূহ',
'defaults' => 'পূর্বনির্ধারিত | পূর্বনির্ধারিতসমূহ',
'widgets' => 'উইজেট | উইজেটগুলো',
'templates' => 'ছাঁচ | ছাঁচসমূহ',
'templates' => 'টেমপ্লেট| টেমপ্লেটসমূহ',
'sales' => 'বিক্রয় | বিক্রয়সমূহ',
'purchases' => 'ক্রয় | ক্রয়সমূহ',
'welcome' => 'সুস্বাগতম',
'welcome' => 'স্বাগতম',
'banking' => 'ব্যাংকিং',
'general' => 'সাধারণ',
'no_records' => 'কোন ভুক্তি নেই',
'no_records' => 'রেকর্ড নেই',
'date' => 'তারিখ',
'amount' => 'পরিমাণ',
'enabled' => 'সক্রিয়',
@ -71,13 +71,13 @@ return [
'quarterly' => 'ত্রৈমাসিক',
'yearly' => 'বাৎসরিক',
'add' => 'যোগ',
'add_new' => 'যোগ কর নতুন',
'add_income' => 'আয় যোগ কর',
'add_expense' => 'ব্যয় যোগ কর',
'show' => 'দেখা',
'add_new' => 'নতুন যোগ করুন',
'add_income' => 'আয় যোগ করুন',
'add_expense' => 'ব্যয় যোগ করুন',
'show' => 'দেখা',
'edit' => 'সম্পাদনা',
'delete' => 'মুছে ফেল',
'send' => 'পাঠা',
'delete' => 'মুছুন',
'send' => 'পাঠা',
'share' => 'শেয়ার করুন',
'download' => 'ডাউনলোড',
'delete_confirm' => 'নিশ্চিতভাবে মুছে ফেলতে চান :name :type?',
@ -87,7 +87,7 @@ return [
'phone' => 'ফোন',
'address' => 'ঠিকানা',
'website' => 'ওয়েবসাইট',
'actions' => 'কর্মকান্ডসমহ',
'actions' => 'ব্যবস্থাসমহ',
'description' => 'বিবরণ',
'manage' => 'ব্যবস্থাপনা',
'code' => 'কোড',
@ -95,27 +95,27 @@ return [
'balance' => 'স্থিতি',
'reference' => 'সুত্র',
'attachment' => 'সংযুক্তি',
'change' => 'পরিবর্তন কর',
'change_type' => 'পরিবর্তন কর :type',
'switch' => 'সুইচ কর',
'change' => 'পরিবর্তন',
'change_type' => 'পরিবর্তন করুন :type',
'switch' => 'সুইচ করুন',
'color' => 'রং',
'save' => 'সংরক্ষণ',
'confirm' => 'নিশ্চিত',
'cancel' => 'বাতিল',
'loading' => 'লোড হচ্ছে…',
'loading' => 'লোডিং…',
'from' => 'প্রেরক',
'to' => 'প্রাপক',
'print' => 'প্রিন্ট কর',
'print' => 'প্রিন্ট',
'search' => 'অনুসন্ধান',
'search_placeholder' => 'অনুসন্ধান করতে লিখুন.....',
'filter' => 'ছাঁকনি',
'filter' => 'ফিল্টার',
'help' => 'সহায়িকা',
'all' => 'সকল',
'all_type' => 'সকল :type',
'upcoming' => 'আসন্ন',
'created' => 'তৈরির নির্ঘন্ট',
'created' => 'তৈরি',
'id' => 'আইডি',
'more_actions' => 'আরও কর্মকান্ড',
'more_actions' => 'আরও ব্যবস্থা',
'duplicate' => 'প্রতিলিপি',
'unpaid' => 'অপরিশোধিত',
'paid' => 'পরিশোধিত',
@ -125,18 +125,18 @@ return [
'partially_paid' => 'আংশিক পরিশোধিত',
'export' => 'রপ্তানি',
'finish' => 'সম্পন্ন',
'wizard' => 'যাদুকর',
'skip' => 'এড়িয়ে চল',
'enable' => 'সক্রিয় কর',
'disable' => 'নিষ্ক্রিয় কর',
'select_all' => 'সব নির্বাচন কর',
'unselect_all' => 'সবকিছু অনির্বাচিত কর',
'wizard' => 'উইজার্ড',
'skip' => 'এড়িয়ে যান',
'enable' => 'সক্রিয় করুন',
'disable' => 'নিষ্ক্রিয় করুন',
'select_all' => 'সব নির্বাচন করুন',
'unselect_all' => 'সবকিছু অনির্বাচিত করুন',
'created_date' => 'তৈরির তারিখ',
'period' => 'ব্যপ্তি',
'frequency' => 'স্পন্দনহার',
'start' => 'শুরু',
'end' => 'শেষ',
'clear' => 'মুছে ফেল',
'clear' => 'মুছে ফেলুন',
'difference' => 'পার্থক্য',
'footer' => 'ফুটার',
'start_date' => 'শুরুর তারিখ',
@ -145,16 +145,16 @@ return [
'accrual' => 'উপচিতি',
'cash' => 'নগদ',
'group_by' => 'গোষ্ঠীবদ্ধকরণের ভিত্তি',
'accounting' => 'হিসাব রক্ষণ',
'sort' => 'বিন্যস্ত কর',
'accounting' => 'হিসাবরক্ষণ',
'sort' => 'সাজান',
'width' => 'প্রস্থ',
'month' => 'মাস',
'year' => 'বছর',
'type_item_name' => 'আইটেমের নামটি লিখুন',
'no_data' => 'কোন উপাত্ত নেই',
'type_item_name' => 'আইটেমের নাম লিখুন',
'no_data' => 'কোন তথ্য নেই',
'no_matching_data' => 'সামঞ্জস্যপূর্ণ কোন উপাত্ত নেই',
'clear_cache' => 'ক্যাসে মুছে ফেল',
'go_to_dashboard' => 'ড্যাসবোর্ডে যা',
'clear_cache' => 'ক্যাশ ক্লিয়ার করুন',
'go_to_dashboard' => 'ড্যাসবোর্ডে যা',
'card' => [
'name' => 'কার্ডে লিখিত নাম',
@ -166,21 +166,21 @@ return [
'title' => [
'new' => 'নতুন :type',
'edit' => 'সম্পাদনা :type',
'delete' => 'তৈরি কর :type',
'delete' => 'তৈরি করুন :type',
'create' => 'তৈরি কর :type',
'send' => 'পাঠা :type',
'get' => 'পা :type',
'add' => 'যোগ কর :type',
'send' => 'পাঠা :type',
'get' => 'পা :type',
'add' => 'যোগ করুন :type',
'manage' => 'ব্যবস্থাপনা :type',
],
'form' => [
'enter' => 'প্রবেশ করান :field',
'select' => [
'field' => '- নির্বাচন কর :field -',
'file' => 'ফাইল নির্বাচন কর',
'field' => '- নির্বাচন করুন :field -',
'file' => 'ফাইল নির্বাচন করুন',
],
'add_new' => 'নতুন :field যোগ কর',
'add_new' => 'নতুন :field যোগ করুন',
'no_file_selected' => 'কোন ফাইল নির্বাচন করা হয়নি......',
],
@ -193,17 +193,17 @@ return [
],
'empty' => [
'documentation' => 'বিস্তারিত জানতে <a href=":url" target="_blank"> ডকুমেন্টেন </a> ঘেঁটে দেখুন।',
'documentation' => 'বিস্তারিত জানতে <a href=":url" target="_blank"> ডকুমেন্টেন </a> ঘেঁটে দেখুন।',
'items' => 'আইটেমগুলো হতে পারে পণ্য কিংবা সেবা। ইনভয়েস এবং বিল তৈরির করার সময় আপনি আইটেম ব্যবহার করে পূর্ব থেকেই মূল্য, ট্যাক্স ইত্যাদি তৈরি অবস্থায় দেখতে পাবেন ।',
'invoices' => 'ইনভয়েসগুলো হতে পারে একবারের কিংবা আবর্তক। আপনি সেগুলো ক্রেতাকে পাঠাতে পারেন এবং অনলাইন পেমন্ট গ্রহণ করতে শুরু করুন।',
'revenues' => 'রাজস্ব হলো মূল্য পরিশোধিত আয় লেনদেন। এটি হতে পারে একটি একক ভুক্তি (যেমনঃ জমা) কিংবা কোন ইনভয়েসে সংযুক্ত ।',
'customers' => 'আপনি ইনভয়েস তৈরি করতে চাইলে ক্রেতা আবশ্যক। তারাও \'ক্লায়েন্ট পোর্টাল\' এ প্রবেশ করে তাদের স্থিতির অবস্থা পর্যবেক্ষণ করতে পারেন।',
'bills' => 'বিল এককালীন কিংবা আবর্তক হতে পারে। বিল বলতে বোঝায় আপনার ক্রয়কৃত পণ্য কিংবা সেবা সরবরাহকারীদের নিকট আপনার দেনা।',
'payments' => 'পেমেন্ট হলো মূল্য পরিশোধিত ব্যয়ের লেনদেন। বিল হতে পারে একটি একক ভুক্তি (যেমনঃ খাবারের রশিদ) কিংবা বিলের সাথে সংযুক্ত।',
'vendors' => 'বিল তৈরি করতে চাইলে সরবরাহকারী থাকা আবশ্যক । You can see the balance you owe and filter reports by the vendor.',
'transfers' => 'স্থানান্তর আপনাকে সুযোগ করে দেয় একটা একাউন্ট থেকে অন্য অ্যাকাউন্টে টাকা হস্তান্তর, তাতে তারা একই মুদ্রা ব্যবহার করুক বা না করুক।',
'taxes' => 'ট্যাক্স বলতে বোঝায় ইনভয়েস কিংবা বিলে প্রযোজ্য অতিরিক্ত ফি। Your financials are affected by these regulatory taxes.',
'reconciliations' => 'ব্যাংক সমন্বয়করণ এমন একটি ব্যবস্থা যাতে নিশ্চিত করা হয় যে আপনার ব্যাংকের ভুক্তিসমূহও সঠিকভাবে ভুক্ত করা হয়েছে কি না।',
'vendors' => 'বিল তৈরি করতে চাইলে সরবরাহকারী থাকা আবশ্যক । সরবরাহকারীদের কাছে আপনার দেনার স্থিতি ও রিপোর্ট দেখতে পারেন।',
'transfers' => 'ট্রান্সফার আপনাকে সুযোগ করে দেয় একটা একাউন্ট থেকে অন্য অ্যাকাউন্টে টাকা হস্তান্তর, তাতে তারা একই মুদ্রা ব্যবহার করুক বা না করুক।',
'taxes' => 'ট্যাক্স বলতে বোঝায় ইনভয়েস কিংবা বিলে প্রযোজ্য অতিরিক্ত ফি। নির্ধারিত করসমূহ আপনার বিভিন্ন অর্থনৈতিক কার্যক্রম প্রভাবিত করবে।',
'reconciliations' => 'ব্যাংক সমন্বয়করণ এমন একটি ব্যবস্থা যাতে নিশ্চিত করা হয় যে আপনার ব্যাংকের রেকর্ডসমূহও সঠিকভাবে সংরক্ষণ করা হয়েছে কি না।',
],
];

View File

@ -3,12 +3,12 @@
return [
'change_language' => 'ভাষা পরিবর্তন',
'last_login' => 'সর্বশেষ প্রবেশ :time',
'last_login' => 'সর্বশেষ লগইন :time',
'notifications' => [
'counter' => '{0} কোন অবহিতকরণ নেই |{1} : count টি বিজ্ঞপ্তি |[2,*] :count টি বিজ্ঞপ্তি',
'counter' => '{0} কোন নোটিফিকেশন নেই |{1} : count টি বিজ্ঞপ্তি |[2,*] :count টি বিজ্ঞপ্তি',
'overdue_invoices' => '{1} :count টি সময়োত্তীর্ণ ইনভয়েস |[2,*] :count টি সময়োত্তীর্ণ ইনভয়েস |',
'upcoming_bills' => '{1} :count টি সমাগত বিল|[2,*] :count টি সমাগত বিল',
'view_all' => 'সবগুলো দেখাও'
'upcoming_bills' => '{1} :count টি আসন্ন বিল|[2,*] :count টি আসন্ন বিল',
'view_all' => 'সবগুলো দেখুন'
],
'docs_link' => 'https://akaunting.com/docs',
'support_link' => 'https://akaunting.com/support',

View File

@ -2,8 +2,8 @@
return [
'import' => 'আমদানি',
'title' => 'আমদানি :type',
'import' => 'ইমপোর্ট',
'title' => 'ইমপোর্ট :type',
'message' => 'অনুমোদিত ফাইলের ধরণসমূহ হলোঃ XLS, XLSX । দয়া করে নমুনা ফাইল <a target="_blank" href=":link"><strong> ডাউনলোড </strong></a> করুন।',
];

View File

@ -3,13 +3,13 @@
return [
'next' => 'পরবর্তী',
'refresh' => 'নবোদ্যম',
'refresh' => 'রিফ্রেশ',
'steps' => [
'requirements' => 'দয়া করে আপনার হোস্টিং সেবা প্রদানকারীকে অনুরোধ করুন সমস্যা গুলোর সমাধান করে দিতে!',
'language' => 'ধাপ ১/৩ : ভাষা নির্বাচন',
'database' => 'ধাপ ২/৩ : ডাটাবেজ সেট-আপ',
'settings' => 'ধাপ ৩/৩ : কোম্পানি এবং প্রশাসকের বিশদ বিবরণ',
'settings' => 'ধাপ ৩/৩ : কোম্পানি এবং এডমিনের বিবরণ',
],
'language' => [
@ -19,26 +19,27 @@ return [
'requirements' => [
'enabled' => ':feature সক্রিয় করা আবশ্যক!',
'disabled' => ':feature নিষ্ক্রিয় করা আবশ্যক!',
'extension' => ':extension এক্সটেসনটি সংস্থাপন করে লোড করা আবশ্যক!',
'extension' => ':extension এক্সটেসনটি ইন্সটল করে লোড করা আবশ্যক!',
'directory' => ':directory ডিরেক্টরিটি লিখনযোগ্য হওয়া আবশ্যক!',
'executable' => 'PHP CLI ফাইলটি চালানো যাচ্ছে না কিংবা এটি সংজ্ঞায়িত নয় , অথবা এর ভার্সনটি :php_version কিংবা তার উর্দ্ধে নয় ! দয়া করে আপনার হোস্টিং কোম্পানিকে PHP_BINARY কিংবা PHP_PATH environment variable টি সঠিক ভাবে নির্ধারণ করে দিতে বলুন।',
],
'database' => [
'hostname' => 'হোস্টের নাম',
'username' => 'ব্যবহারকারি নাম',
'password' => 'কূটশব্দ',
'username' => 'ব্যবহারকারীর নাম',
'password' => 'পাসওয়ার্ড',
'name' => 'ডেটাবেজ',
],
'settings' => [
'company_name' => 'কোম্পানির নাম',
'company_email' => 'কোম্পানির ই-মেইল',
'admin_email' => 'প্রশাসকের ই-মেইল',
'admin_password' => 'প্রশাসকের কূটশব্দ',
'admin_email' => 'এ্যাডমিন ই-মেইল',
'admin_password' => 'এ্যাডমিন পাসওয়ার্ড',
],
'error' => [
'php_version' => 'সমস্যাঃ HTTP এবং CLI উভয়েরই জন্য PHP :php_version অথবা তদুর্দ্ধ ব্যবহার করার জন্য আপনার হোস্টিং প্রোভাইডারকে অনুরোধ করুন।',
'connection' => 'সমস্যাঃ ডেটাবেজের সাথে সংযুক্ত হওয়া সম্ভবপর হলো না! দয়া করে দেখে নিন যে প্রদত্ত বিবরণ সঠিক কি না।',
],

View File

@ -9,7 +9,6 @@ return [
'new' => 'নতুন',
'top_free' => 'বিনামূল্যের জনপ্রিয় গুলো',
'free' => 'বিনামূল্যের',
'search' => 'অনুসন্ধান',
'install' => 'ইনস্টল',
'buy_now' => 'এখুনি কিনুন',
'get_api_key' => 'আপনার API কী টি পেতে <a href=":url" target="_blank">এখানে ক্লিক</a> করুন।',

View File

@ -8,4 +8,5 @@ return [
'inclusive' => 'অন্তর্ভুক্তি',
'compound' => 'যৌগিক',
'fixed' => 'স্থায়ী',
'withholding' => 'আটকে যাওয়া',
];

View File

@ -13,6 +13,7 @@ return [
'current_email' => 'Aktuální e-mail',
'reset' => 'Obnovit',
'never' => 'nikdy',
'landing_page' => 'Úvodní stránka',
'password' => [
'current' => 'Heslo',
@ -23,7 +24,7 @@ return [
'error' => [
'self_delete' => 'Chyba: nemůžete smazat sám sebe!',
'self_disable' => 'Chyba: Nemůžete zakázat sebe!',
'self_disable' => 'Chyba: Nemůžete zakázat sami sebe!',
'no_company' => 'Chyba: Váš účet nemá přidělenou firmu/společnost. Prosím, kontaktujte systémového administrátora.',
],

View File

@ -6,7 +6,7 @@ return [
'user_created' => 'Uživatel byl vytvořen',
'error' => [
'email' => 'Tato e-mailová adresa je již obsazena.'
'email' => 'Tato e-mailová adresa je již obsazena.',
],
];

View File

@ -8,4 +8,4 @@ return [
'last-updated' => 'Tato zpráva byla naposledy aktualizována :timestamp',
];
];

View File

@ -4,7 +4,7 @@ return [
'previous' => '&laquo; předchozí',
'next' => 'další &raquo;',
'showing' => ':first-:last of :total records.',
'showing' => ':first-:last z :total záznamů.',
'page' => 'na stránku.',
];

View File

@ -4,11 +4,11 @@ return [
'account_name' => 'Kontonavn',
'number' => 'Nummer',
'opening_balance' => 'Primo',
'opening_balance' => 'Åbningsbalance',
'current_balance' => 'Nuværende saldo',
'bank_name' => 'Banknavn',
'bank_phone' => 'Telefon bank',
'bank_address' => 'Bank adresse',
'default_account' => 'Standard konto',
'default_account' => 'Standardkonto',
];

View File

@ -10,10 +10,10 @@ return [
'forgot_password' => 'Jeg har glemt min adgangskode',
'reset_password' => 'Nulstil adgangskode',
'enter_email' => 'Indtast din mailadresse',
'current_email' => 'Nuværende E-mail',
'current_email' => 'Nuværende e-mail',
'reset' => 'Nulstil',
'never' => 'Aldrig',
'landing_page' => 'Landingsside',
'landing_page' => 'Startside',
'password' => [
'current' => 'Adgangskode',
@ -24,13 +24,13 @@ return [
'error' => [
'self_delete' => 'Fejl: Du kan ikke slette dig selv!',
'self_disable' => 'Fejl: Du kan ikke disable dig selv!',
'self_disable' => 'Fejl: Du kan ikke deaktivere dig selv!',
'no_company' => 'Error: Ingen virksomhed er tilknyttet din konto. Kontakt systemadministratoren.',
],
'failed' => 'Disse legitimationsoplysninger passer ikke med de gemte.',
'disabled' => 'Denne konto er deaktiveret. Kontakt systemadministratoren.',
'throttle' => 'For mange login forsøg. Prøv igen om :seconds sekunder.',
'throttle' => 'For mange loginforsøg. Prøv igen om :seconds sekunder.',
'notification' => [
'message_1' => 'Du modtager denne e-mail, fordi vi modtog en anmodning om nulstilling af password.',

View File

@ -3,7 +3,7 @@
return [
'bill_number' => 'Fakturanummer',
'bill_date' => 'Faktura dato',
'bill_date' => 'Fakturadato',
'total_price' => 'Total pris',
'due_date' => 'Forfaldsdato',
'order_number' => 'Ordrenummer',
@ -19,9 +19,9 @@ return [
'item_name' => 'Varenavn|Varenavne',
'show_discount' => ':discount% Rabat',
'show_discount' => ':discount% rabat',
'add_discount' => 'Tilføj rabat',
'discount_desc' => 'subtotal',
'discount_desc' => 'af subtotal',
'payment_due' => 'Betalingsfrist',
'amount_due' => 'Forfaldent beløb',
@ -29,13 +29,13 @@ return [
'histories' => 'Historik',
'payments' => 'Betalinger',
'add_payment' => 'Tilføj betaling',
'mark_paid' => 'Marker Betalt',
'mark_paid' => 'Marker som betalt',
'mark_received' => 'Modtagelse godkendt',
'mark_cancelled' => 'Marker Annuller',
'mark_cancelled' => 'Marker som annulleret',
'download_pdf' => 'Download PDF',
'send_mail' => 'Send E-mail',
'create_bill' => 'Opret regning',
'receive_bill' => 'Modtag regning',
'send_mail' => 'Send e-mail',
'create_bill' => 'Opret faktura',
'receive_bill' => 'Modtag faktura',
'make_payment' => 'Opret betaling',
'statuses' => [
@ -45,7 +45,7 @@ return [
'paid' => 'Betalt',
'overdue' => 'Overskredet',
'unpaid' => 'Ubetalt',
'cancelled' => 'Annuleret',
'cancelled' => 'Annulleret',
],
'messages' => [

View File

@ -28,7 +28,7 @@ return [
'expense' => 'Månedlig udgiftsoversigt efter kategori',
'income_expense' => 'Månedlig Indkomstoversigt efter kategori',
'tax' => 'Kvartalsvis afgifts-oversigt',
'profit_loss' => 'Kvartalsvis indtægt & tab efter kategori ',
'profit_loss' => 'Kvartalsvise indtægter & udgifter efter kategori',
],
];

View File

@ -9,12 +9,12 @@ return [
],
'invoice_remind_customer' => [
'subject' => '{invoice_number} forfalden faktura notifikation',
'subject' => 'Din faktura nr. {invoice_number} er forfalden',
'body' => 'Kære {customer_name},<br /><br />Vi gør opmærksom på at fakturaen på {invoice_total} hvor sidste betalingsdag var den <strong>{invoice_due_date}</strong> med faktura nr. <strong>{invoice_number}</strong> ikke er betalt.<br /><br />Du kan se faktura detaljerne og betale på dette link: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />Med venlig hilsen,<br />{company_name}',
],
'invoice_remind_admin' => [
'subject' => '{invoice_number} faktura overskredet notificering',
'subject' => 'Betalingen af faktura nr. {invoice_number} er overskredet',
'body' => 'Hej,<br /><br />{customer_name} har modtaget en forfaldsmeddelelse for <strong>{invoice_number}</strong> faktura.<br /><br />Fakturaens samlede beløb er {invoice_total} og skulle betales < strong>{invoice_due_date}</strong>.<br /><br />Du kan se fakturaoplysningerne fra følgende link: <a href="{invoice_admin_link}">{invoice_number}</a>.<br / ><br />Med venlig hilsen<br />{company_name}',
],
@ -45,7 +45,7 @@ return [
'bill_recur_admin' => [
'subject' => '{bill_number} tilbagevendende regning er oprettet',
'body' => 'Hej,<br /><br /> Baseret på {vendor_name} tilbagevendende betaling, er regnings nummer <strong>{bill_number}</strong> automatisk genereret.<br /><br />Du kan se regningsdetaljerne på dette link: <a href="{bill_admin_link}">{bill_number}</a>.<br /><br />Med venlig,<br />{company_name}',
'body' => 'Hej,<br /><br /> Baseret på {vendor_name}\'s tilbagevendende betaling, er faktura nummer <strong>{bill_number}</strong> automatisk genereret.<br /><br />Du kan se fakturadetaljerne på dette link: <a href="{bill_admin_link}">{bill_number}</a>.<br /><br />Med venlig hilsen,<br />{company_name}',
],
];

View File

@ -163,8 +163,8 @@ return [
'title' => [
'new' => 'Ny :type',
'edit' => 'Rediger :type',
'delete' => 'Slet !type',
'create' => 'Opret !type',
'delete' => 'Slet :type',
'create' => 'Opret :type',
'send' => 'Send :type',
'get' => 'Hent :type',
'add' => 'Tilføj :type',

View File

@ -21,7 +21,7 @@ return [
'disabled' => ':feature skal være deaktiveret!',
'extension' => ':extension udvidelse skal være indlæst!',
'directory' => ':directory folderen skal være skrivbar!',
'executable' => 'PHP CLI eksekverbar file virker ikke! Venligst forespørg anmod din host om at sætte PHP_BINARY eller PHP_PATH miljøvariablen korrekt.',
'executable' => 'PHP CLI eksekverbar file virker ikke! Venligst anmod din host om at sætte PHP_BINARY eller PHP_PATH miljøvariablen korrekt.',
],
'database' => [
@ -39,6 +39,7 @@ return [
],
'error' => [
'php_version' => 'Fejl: Anmod din host om at bruge PHP :php_version eller højere for både HTTP og CLI',
'connection' => 'Error: Kunne ikke forbinde til databasen! Kontroller, at oplysningerne er korrekte.',
],

View File

@ -28,8 +28,8 @@ return [
'warning' => [
'deleted' => 'Advarsel: Du har ikke tilladelse tiil at slette <b>:name</b> fordi den er :text relateret.',
'disabled' => 'Advarsel: Du har ikke tilladelse tiil at deaktivere <b>:name</b> fordi den er :text relateret.',
'reconciled_tran' => 'Warning: You are not allowed to change/delete transaction because it is reconciled!',
'reconciled_doc' => 'Warning: You are not allowed to change/delete :type because it has reconciled transactions!',
'reconciled_tran' => 'Advarsel: Du kan ikke ændre eller slette denne transaktion, da den er afstemt.',
'reconciled_doc' => 'Advarsel: Du kan ikke ændre eller slette :type, da den er afstemt.',
'disable_code' => 'Advarsel: Du må ikke deaktivere eller ændre valutaen i <b>:name</b> , fordi den er :text relateret.',
'payment_cancel' => 'Advarsel: Du har annulleret den seneste :method betaling!',
],

View File

@ -9,7 +9,6 @@ return [
'new' => 'Ny',
'top_free' => 'Top gratis',
'free' => 'GRATIS',
'search' => 'Søg',
'install' => 'Installer',
'buy_now' => 'Køb nu',
'get_api_key' => '<a href=":url" target="_blank">Klik her</a> for at få din API nøgle.',

View File

@ -4,6 +4,7 @@ return [
'reconcile' => 'Afstemme',
'reconciled' => 'Afstemt',
'opening_balance' => 'Åbningsbalance',
'closing_balance' => 'Primo saldo',
'unreconciled' => 'Uafstemt',
'transactions' => 'Transaktioner',

View File

@ -3,7 +3,7 @@
return [
'company' => [
'description' => 'Ændre firmanavn, email, adresse, momsnummer etc',
'description' => 'Ændre navn, email, adresse, CVR-nummer mv.',
'name' => 'Navn',
'email' => 'E-mail',
'phone' => 'Telefon',
@ -65,7 +65,7 @@ return [
],
'default' => [
'description' => 'Standard konto, valuta, firmasprog',
'description' => 'Standard konto, valuta og sprog',
'list_limit' => 'Poster pr side',
'use_gravatar' => 'Brug Gravatar',
],
@ -91,14 +91,14 @@ return [
'subject' => 'Emne',
'body' => 'Indhold',
'tags' => '<strong>Tilgængelige Tags:</strong> :tag_list',
'invoice_new_customer' => 'Ny fakturaskabelon (sendt til kunder)',
'invoice_remind_customer' => 'Faktura påmindelses skabelon (sendt til kunder)',
'invoice_remind_admin' => 'Faktura påmindelsesskabelon (sendt til administrator)',
'invoice_new_customer' => 'Skabelon til ny faktura (sendt til kunder)',
'invoice_remind_customer' => 'Fakturapåmindelses-skabelon (sendt til kunder)',
'invoice_remind_admin' => 'Fakturapåmindelses-skabelon (sendt til administrator)',
'invoice_recur_customer' => 'Tilbagevendende skabelon for faktura (sendt til kunde)',
'invoice_recur_admin' => 'Tilbagevendende skabelon for faktura (sendt til administrator)',
'invoice_payment_customer' => 'Modtaget betalingsskabelon (sendt til kunder)',
'invoice_payment_admin' => 'Modtaget betalingsskabelon (sendt til administrator)',
'bill_remind_admin' => 'Regnings påmindelsesskabelon (sendt til administrator)',
'invoice_recur_admin' => 'Skabelon for tilbagevendende faktura (sendt til administrator)',
'invoice_payment_customer' => 'Skabelon for modtaget betaling (sendt til kunder)',
'invoice_payment_admin' => 'Skabelon for modtaget betaling (sendt til administrator)',
'bill_remind_admin' => 'Skabelon for regningspåmindelse (sendt til administrator)',
'bill_recur_admin' => 'Tilbagevendende skabelon for regning (sendt til administrator)',
],
],
@ -106,12 +106,12 @@ return [
'scheduling' => [
'name' => 'Planlægning',
'description' => 'Automatiske påmindelser og gentagelser',
'send_invoice' => 'Send faktura påmindelse',
'invoice_days' => 'Send efter forfalds dato',
'send_bill' => 'Send regningens påmindelse',
'bill_days' => 'Send før forfalds dage',
'send_invoice' => 'Send fakturapåmindelse',
'invoice_days' => 'Send efter forfaldsdato',
'send_bill' => 'Send regningspåmindelse',
'bill_days' => 'Send før forfaldsdato',
'cron_command' => 'Cron kommando',
'schedule_time' => 'Timer at køre',
'schedule_time' => 'Afsendingstid',
],
'categories' => [

View File

@ -8,4 +8,5 @@ return [
'inclusive' => 'Inklusiv',
'compound' => 'Sammensatte',
'fixed' => 'Fast',
'withholding' => 'Tilbageholdt',
];

View File

@ -2,22 +2,22 @@
return [
'total_income' => 'Total Indkomst',
'receivables' => 'Receivables',
'total_income' => 'Samlet indtægt',
'receivables' => 'Tilgodehavender',
'open_invoices' => 'Åbne fakturaer',
'overdue_invoices' => 'Overskredne fakturaer',
'total_expenses' => 'Total Udgifter',
'payables' => 'Betalingsparate',
'open_bills' => 'Åbne Regninger',
'overdue_bills' => 'Overskredne Regninger',
'total_profit' => 'Total Indtjening',
'open_profit' => 'Open Profit',
'overdue_profit' => 'Overdue Profit',
'cash_flow' => 'Cash Flow',
'no_profit_loss' => 'No Profit Loss',
'income_by_category' => 'Indkomst efter Kategori',
'expenses_by_category' => 'Udgifter efter Kategori',
'account_balance' => 'Konto Balance',
'latest_income' => 'Senest Indtægt',
'latest_expenses' => 'Seneste Udgifter',
'overdue_invoices' => 'Forfaldne fakturaer',
'total_expenses' => 'Samlede udgifter',
'payables' => 'Udeståender til betaling',
'open_bills' => 'Åbne regninger',
'overdue_bills' => 'Forfaldne regninger',
'total_profit' => 'Samlet resultat',
'open_profit' => 'Åbne indtægter',
'overdue_profit' => 'Forfaldne indtægter',
'cash_flow' => 'Pengestrøm',
'no_profit_loss' => 'Intet resultat',
'income_by_category' => 'Indkomst efter kategori',
'expenses_by_category' => 'Udgifter efter kategori',
'account_balance' => 'Kontobalance',
'latest_income' => 'Seneste indtægter',
'latest_expenses' => 'Seneste udgifter',
];

View File

@ -21,7 +21,7 @@ return [
'disabled' => ':feature muss deaktiviert sein!',
'extension' => ':extension Erweiterung muss installiert und geladen sein!',
'directory' => ':directory Verzeichnis muss schreibbar sein!',
'executable' => 'Die ausführbare PHP-CLI-Datei ist nicht definiert oder funktioniert nicht oder ihre Version ist nicht :php_version oder höher! Bitten Sie Ihre Hosting-Firma, PHP_BINARY oder PHP_PATH Umgebungsvariable korrekt zu setzen.',
'executable' => 'Die ausführbare PHP-CLI-Datei ist nicht definiert/funktioniert nicht oder die PHP-Version entspricht nicht :php_version oder höher! Bitten Sie Ihre Hosting-Firma, die Umgebungsvariablen PHP_BINARY oder PHP_PATH korrekt zu setzen.',
],
'database' => [
@ -39,6 +39,7 @@ return [
],
'error' => [
'php_version' => 'Fehler: Bitten Sie Ihren Hosting-Provider, PHP :php_version oder höher für HTTP und CLI zu verwenden.',
'connection' => 'Fehler: Es konnte keine Verbindung zur Datenbank hergestellt werden! Stellen Sie sicher, dass die Angaben korrekt sind.',
],

View File

@ -9,7 +9,6 @@ return [
'new' => 'Neu',
'top_free' => 'Top kostenlos',
'free' => 'Kostenlos',
'search' => 'Suchen',
'install' => 'Installieren',
'buy_now' => 'Jetzt kaufen',
'get_api_key' => '<a href=":url" target="_blank">Klicke hier</a> um Ihren API-Schlüssel zu erhalten.',

View File

@ -8,4 +8,5 @@ return [
'inclusive' => 'Inklusive',
'compound' => 'zusammengesetzt',
'fixed' => 'Fest',
'withholding' => 'Auszahlung',
];

View File

@ -13,6 +13,7 @@ return [
'current_email' => 'Τρέχον ηλεκτρονικό ταχυδρομείο',
'reset' => 'Επαναφορά',
'never' => 'ποτέ',
'landing_page' => 'Σελίδα Προορισμού',
'password' => [
'current' => 'Κωδικός πρόσβασης',

View File

@ -13,6 +13,7 @@ return [
'price' => 'Τιμή',
'sub_total' => 'Μερικό Σύνολο',
'discount' => 'Έκπτωση',
'item_discount' => 'Έκπτωση',
'tax_total' => 'Συνολικό ΦΠΑ',
'total' => 'Σύνολο',
@ -28,7 +29,9 @@ return [
'histories' => 'Ιστορικό',
'payments' => 'Πληρωμές',
'add_payment' => 'Προσθήκη πληρωμής',
'mark_paid' => 'Πληρώθηκε',
'mark_received' => 'Ειλημμένη σημείωση',
'mark_cancelled' => 'Ακύρωση',
'download_pdf' => 'Λήψη PDF',
'send_mail' => 'Αποστολή Email',
'create_bill' => 'Δημιουργία Λογαριασμού',
@ -40,10 +43,15 @@ return [
'received' => 'Ληφθέντα',
'partial' => 'Μερική',
'paid' => 'Πληρωμένο',
'overdue' => 'Εκπρόθεσμο',
'unpaid' => 'Απλήρωτο',
'cancelled' => 'Άκυρο',
],
'messages' => [
'received' => 'Λογαριασμός που σημειώθηκε ότι ελήφθη επιτυχώς!',
'marked_received' => 'Ο λογαριασμός επισημάνθηκε ως παραληφθείς!',
'marked_paid' => 'Ο λογαριασμός επισημάνθηκε ως πληρωμένος!',
'marked_cancelled' => 'Ο λογαριασμός επισημάνθηκε ως ακυρωμένος!',
'draft' => 'Αυτός ο λογαριασμός είναι <b>ΠΡΟΧΕΙΡΟΣ</b> και θα εμφανιστεί στα γραφήματα μετά την παραλαβή του.',
'status' => [

View File

@ -2,18 +2,20 @@
return [
'bulk_actions' => 'Μαζική Ενέργεια|Μαζικές Ενέργειες',
'selected' => 'επιλεγμένα',
'bulk_actions' => 'Μαζική Ενέργεια|Μαζικές Ενέργειες',
'selected' => 'επιλεγμένα',
'no_action' => 'Καμία διαθέσιμη ενέργεια',
'message' => [
'duplicate' => 'Are you sure you want to <b>duplicate</b> selected record?',
'delete' => 'Are you sure you want to <b>delete</b> selected record?|Are you sure you want to <b>delete</b> selected records?',
'export' => 'Are you sure you want to <b>export</b> selected record?|Are you sure you want to <b>export</b> selected records?',
'enable' => 'Are you sure you want to <b>enable</b> selected record?|Are you sure you want to <b>enable</b> selected records?',
'disable' => 'Are you sure you want to <b>disable</b> selected record?|Are you sure you want to <b>disable</b> selected records?',
'paid' => 'Are you sure you want to mark selected invoice as <b>paid</b>?|Are you sure you want to mark selected invoices as <b>paid</b>?',
'sent' => 'Are you sure you want to mark selected invoice as <b>sent</b>?|Are you sure you want to mark selected invoices as <b>sent</b>?',
'received' => 'Are you sure you want to mark selected bill as <b>received</b>?|Are you sure you want to mark selected bills as <b>received</b>?',
'duplicate' => 'Είστε σίγουροι ότι θέλετε να <b>αντιγράψετε</b> την επιλεγμένη εγγραφή;',
'delete' => 'Είστε σίγουροι ότι θέλετε να <b>διαγράψετε</b> την επιλεγμένη εγγραφή;|Είστε σίγουροι ότι θέλετε να <b>διαγράψετε</b> τις επιλεγμένες εγγραφές;',
'export' => 'Είστε σίγουροι ότι θέλετε να <b>εξάγετε</b> την επιλεγμένη εγγραφή;|Είστε σίγουροι ότι θέλετε να <b>εξάγετε</b> τις επιλεγμένες εγγραφές;',
'enable' => 'Είστε σίγουροι ότι θέλετε να <b>ενεργοποιήσετε</b> την επιλεγμένη εγγραφή;|Είστε σίγουροι ότι θέλετε να <b>ενεργοποιήσετε</b> τις επιλεγμένες εγγραφές;',
'disable' => 'Είστε σίγουροι ότι θέλετε να <b>απενεργοποιήσετε</b> την επιλεγμένη εγγραφή;|Είστε σίγουροι ότι θέλετε να <b>απενεργοποιήσετε</b> τις επιλεγμένες εγγραφές;',
'paid' => 'Είστε σίγουροι ότι θέλετε να σημειώσετε το επιλεγμένο τιμολόγιο ως <b>πληρωμένο</b>;Είστε σίγουροι ότι θέλετε να σημειώσετε τα επιλεγμένα τιμολόγια ως <b>πληρωμένα</b>;',
'sent' => 'Είστε σίγουροι ότι θέλετε να σημειώσετε το επιλεγμένο τιμολόγιο ως <b>απεσταλμένο</b>;Είστε σίγουροι ότι θέλετε να σημειώσετε τα επιλεγμένα τιμολόγια ως <b>απεσταλμένα</b>;',
'received' => 'Είστε σίγουροι ότι θέλετε να σημειώσετε το επιλεγμένο τιμολόγιο ως <b>ελήφθη</b>;Είστε σίγουροι ότι θέλετε να σημειώσετε τα επιλεγμένα τιμολόγια ως <b>ελήφθησαν</b>;',
'cancelled' => 'Είστε σίγουροι ότι θέλετε να <b>ακυρώσετε</b> το επιλεγμένο τιμολόγιο;|Είστε σίγουροι ότι θέλετε να <b>ακυρώσετε</b> τα επιλεγμένα τιμολόγια;',
],
];

View File

@ -4,12 +4,11 @@ return [
'domain' => 'Ιστοσελίδα',
'logo' => 'Λογότυπο',
'manage' => 'Διαχείριση εταιρειών',
'all' => 'Όλες οι εταιρείες',
'error' => [
'not_user_company' => 'Σφάλμα: Δεν επιτρέπεται να αλλάξετε αυτή την εταιρεία!',
'delete_active' => 'Σφάλμα: Δεν μπορείτε να διαγράψετε μια ενεργή εταιρεία, παρακαλώ πρέπει πρώτα να την τροποποιήσετε!',
'disable_active' => 'Σφάλμα: Δεν μπορείτε να απενεργοποιήσετε την ενεργή εταιρεία. Παρακαλούμε, πρώτα επιλέξτε μια άλλη εταιρία!',
],
];

View File

@ -6,7 +6,7 @@ return [
'user_created' => 'Ο χρήστης δημιουργήθηκε',
'error' => [
'email' => 'Το email αυτό χρησιμοποιείται ήδη.'
'email' => 'Το email αυτό χρησιμοποιείται ήδη.',
],
];

View File

@ -8,4 +8,4 @@ return [
'last-updated' => 'Το μήνυμα ανανεώθηκε στις :timestamp',
];
];

View File

@ -9,13 +9,11 @@ return [
'new' => 'Νέο',
'top_free' => 'Κορυφαία δωρεάν Προϊόντα',
'free' => 'ΔΩΡΕΑΝ',
'search' => 'Αναζήτηση',
'install' => 'Εγκατάσταση',
'buy_now' => 'Αγοράστε τώρα',
'api_key_link' => '<a class="text-red" href="https://akaunting.com/profile" target="_blank">Πατήστε εδώ</a> για να πάρετε το API κλειδί σας.',
'get_api_key' => '<a href=":url" target="_blank">Πατήστε εδώ</a> για να παραλάβετε το κλειδί API σας.',
'no_apps' => 'Δεν υπάρχουν εφαρμογές σε αυτή την κατηγορία, ακόμα.',
'developer' => 'Είστε προγραμματιστής;<a href="https://akaunting.com/developers" target="_blank">Εδώ</a> εδώ μπορείτε να μάθετε πώς να δημιουργήσετε μια εφαρμογή και να ξεκινήσετε να την πουλάτε σήμερα!',
'become_developer' => 'Είστε προγραματιστής; <a href=":url" target="_blank">Εδώ</a> μπορείτε να μάθετε πως να δημιουργήσετε μια εφαρμογή και να αρχίσετε να την πουλάτε σήμερα!',
'recommended_apps' => 'Προτεινόμενες Εφαρμογές',
'about' => 'Σχετικά με',
@ -80,5 +78,6 @@ return [
],
'na' => 'Δεν υπάρχουν αξιολογήσεις.'
]
],
];

View File

@ -4,7 +4,7 @@ return [
'previous' => '&laquo; Προηγούμενη',
'next' => 'Επόμενη &raquo;',
'showing' => ':first-:last of :total records.',
'showing' => ':first-:last από :total εγγραφές.',
'page' => 'ανά σελίδα.',
];

View File

@ -18,5 +18,6 @@ return [
'sent' => 'Η υπενθύμιση του συνθηματικού εστάλη στην ηλεκτρονική σας διεύθυνση!',
'token' => 'Το κλειδί επαναφοράς του συνθηματικού σας δεν είναι έγκυρο.',
'user' => "Δεν βρέθηκε χρήστης με τη συγκεκριμένη ηλεκτρονική διεύθυνση.",
'throttle' => 'Παρακαλούμε περιμένετε πριν προσπαθήσετε ξανά.',
];

View File

@ -12,7 +12,7 @@ return [
'net_profit' => 'Καθαρό Κέρδος',
'total_expenses' => 'Συνολικά Έξοδα',
'net' => 'Καθαρά',
'income-expense' => 'Έσοδα & Έξοδα',
'income_expense' => 'Έσοδα & Έξοδα',
'summary' => [
'income' => 'Σύνοψη εσόδων',

View File

@ -29,6 +29,12 @@ return [
'before' => 'Πριν από τον αριθμό',
'after' => 'Μετά από τον αριθμό',
],
'discount_location' => [
'name' => 'Εμφάνιση Έκπτωσης',
'item' => 'Αναλυτικά',
'total' => 'Συνολικά',
'both' => 'Αναλυτικά και Συνολικά',
],
],
'invoice' => [
@ -52,6 +58,10 @@ return [
'subheading' => 'Υποκεφαλίδα',
'due_receipt' => 'Εξοφλητέο με την παραλαβή',
'due_days' => 'Εξοφλητέο σε :days ημέρες',
'choose_template' => 'Επιλέξτε πρότυπο τιμολογίου',
'default' => 'Προεπιλεγμένο',
'classic' => 'Κλασικό',
'modern' => 'Μοντέρνο',
],
'default' => [

View File

@ -8,4 +8,5 @@ return [
'inclusive' => 'Συμπεριλαμβανόμενος',
'compound' => 'Μεικτός',
'fixed' => 'Πάγιο',
'withholding' => 'Κρατήσεις',
];

View File

@ -100,10 +100,11 @@ return [
'custom' => [
'attribute-name' => [
'rule-name' => 'προσαρμοσμένο-μήνυμα',
'rule-name' => 'προσαρμοσμένο-μήνυμα',
],
'invalid_currency' => 'Το πεδίο :attribute δεν είναι έγκυρος κωδικός νομίσματος.',
'invalid_amount' => 'Το πεδίο :attribute δεν είναι έγκυρο ποσό.',
'invalid_currency' => 'Το πεδίο :attribute δεν είναι έγκυρος κωδικός νομίσματος.',
'invalid_amount' => 'Το πεδίο :attribute δεν είναι έγκυρο ποσό.',
'invalid_extension' => 'Η επέκταση του αρχείου δεν είναι έγκυρη.',
],
/*

View File

@ -16,6 +16,8 @@ return [
'sent' => 'Are you sure you want to mark selected invoice as <b>sent</b>?|Are you sure you want to mark selected invoices as <b>sent</b>?',
'received' => 'Are you sure you want to mark selected bill as <b>received</b>?|Are you sure you want to mark selected bills as <b>received</b>?',
'cancelled' => 'Are you sure you want to <b>cancel</b> selected invoice/bill?|Are you sure you want to <b>cancel</b> selected invoices/bills?',
'reconcile' => 'Are you sure you want to <b>reconcile</b> selected record?|Are you sure you want to <b>reconcile</b> selected records?',
'unreconcile' => 'Are you sure you want to <b>unreconcile</b> selected record?|Are you sure you want to <b>unreconcile</b> selected records?',
],
];

View File

@ -39,6 +39,7 @@ return [
],
'error' => [
'php_version' => 'Error: Ask your hosting provider to use PHP :php_version or higher for both HTTP and CLI.',
'connection' => 'Error: Could not connect to the database! Please, make sure the details are correct.',
],

View File

@ -3,7 +3,9 @@
return [
'reconcile' => 'Reconcile',
'unreconcile' => 'Unreconcile',
'reconciled' => 'Reconciled',
'opening_balance' => 'Opening Balance',
'closing_balance' => 'Closing Balance',
'unreconciled' => 'Unreconciled',
'transactions' => 'Transactions',

View File

@ -8,4 +8,5 @@ return [
'inclusive' => 'Inclusive',
'compound' => 'Compound',
'fixed' => 'Fixed',
'withholding' => 'Withholding',
];

View File

@ -0,0 +1,14 @@
<?php
return [
'account_name' => 'Account Name',
'number' => 'Account Number',
'opening_balance' => 'Starting Balance',
'current_balance' => 'Current Balance',
'bank_name' => 'Bank Name',
'bank_phone' => 'Bank Phone',
'bank_address' => 'Bank Address',
'default_account' => 'Default Account',
];

View File

@ -0,0 +1,14 @@
<?php
return [
'account_name' => 'Nombre de cuenta',
'number' => 'Número',
'opening_balance' => 'Saldo de apertura',
'current_balance' => 'Saldo actual',
'bank_name' => 'Nombre del banco',
'bank_phone' => 'Teléfono del banco',
'bank_address' => 'Dirección del banco',
'default_account' => 'Cuenta predeterminada',
];

View File

@ -0,0 +1,41 @@
<?php
return [
'profile' => 'Perfil',
'logout' => 'Cerrar sesión',
'login' => 'Ingresar',
'login_to' => 'Inicia sesión para empezar',
'remember_me' => 'Recordarme',
'forgot_password' => 'Olvidé mi contraseña',
'reset_password' => 'Restablecer contraseña',
'enter_email' => 'Introduce tu dirección de correo',
'current_email' => 'Correo electrónico actual',
'reset' => 'Restablecer',
'never' => 'nunca',
'landing_page' => 'Página de destino',
'password' => [
'current' => 'Contraseña',
'current_confirm' => 'Confirmar contraseña',
'new' => 'Nueva contraseña',
'new_confirm' => 'Confirmar contraseña',
],
'error' => [
'self_delete' => 'Error: No puede eliminarse usted mismo!',
'self_disable' => 'Error: ¡No puedes desactivarte a ti mismo!',
'no_company' => 'Error: Ninguna empresa asignada a su cuenta. Por favor, póngase en contacto con el administrador del sistema.',
],
'failed' => 'Estas credenciales no coinciden con nuestros registros.',
'disabled' => 'Esta cuenta está inhabilitada. Por favor, póngase en contacto con el administrador del sistema.',
'throttle' => 'Demasiados intentos fallidos de inicio de sesión. Por favor vuelva a intentarlo después de %s segundos.',
'notification' => [
'message_1' => 'Ha recibido este correo porque hemos recibido una solicitud de recuperación de contraseña para su cuenta.',
'message_2' => 'Si no solicitó un restablecimiento de contraseña, no es necesaria ninguna acción de su parte.',
'button' => 'Restablecer contraseña',
],
];

View File

@ -0,0 +1,69 @@
<?php
return [
'bill_number' => 'Número de factura',
'bill_date' => 'Fecha de factura',
'total_price' => 'Precio total',
'due_date' => 'Fecha de vencimiento',
'order_number' => 'Número de pedido',
'bill_from' => 'Factura de',
'quantity' => 'Cantidad',
'price' => 'Precio',
'sub_total' => 'Subtotal',
'discount' => 'Descuento',
'item_discount' => 'Descuento de línea',
'tax_total' => 'Total de impuestos',
'total' => 'Total ',
'item_name' => 'Nombre del artículo | Nombres de artículo',
'show_discount' => ':discount% de descuento',
'add_discount' => 'Agregar descuento',
'discount_desc' => 'de subtotal',
'payment_due' => 'Vencimiento del pago',
'amount_due' => 'Importe vencido',
'paid' => 'Pagado',
'histories' => 'Historial',
'payments' => 'Pagos',
'add_payment' => 'Añadir pago',
'mark_paid' => 'Marcar como pagada',
'mark_received' => 'Marcar como recibida',
'mark_cancelled' => 'Marcar como cancelada',
'download_pdf' => 'Descargar PDF',
'send_mail' => 'Enviar Email',
'create_bill' => 'Crear factura',
'receive_bill' => 'Recibir factura',
'make_payment' => 'Realizar pago',
'statuses' => [
'draft' => 'Borrador',
'received' => 'Recibido',
'partial' => 'Pago parcial',
'paid' => 'Pagada',
'overdue' => 'Vencida',
'unpaid' => 'No pagada',
'cancelled' => 'Cancelada',
],
'messages' => [
'marked_received' => '¡Factura marcada como recibida!',
'marked_paid' => '¡Factura marcada como pagada!',
'marked_cancelled' => '¡Factura marcada como cancelada!',
'draft' => 'Este es un<b>BORRADOR</b> de factura y se reflejará en los gráficos luego de que sea enviada.',
'status' => [
'created' => 'Creada el :date',
'receive' => [
'draft' => 'Sin enviar',
'received' => 'Recibida el :date',
],
'paid' => [
'await' => 'Pendiente de pago',
],
],
],
];

View File

@ -0,0 +1,23 @@
<?php
return [
'bulk_actions' => 'Acción masiva|Acciones masivas',
'selected' => 'seleccionado',
'no_action' => 'Ninguna acción disponible',
'message' => [
'duplicate' => '¿Está seguro de que desea <b>duplicar</b> el registro seleccionado?',
'delete' => '¿Está seguro de que desea <b>eliminar</b> el registro seleccionado?|¿Está seguro de que desea <b>eliminar</b> los registros seleccionados?',
'export' => '¿Está seguro de que desea <b>exportar</b> el registro seleccionado?|¿Está seguro de que desea <b>exportar</b> los registros seleccionados?',
'enable' => '¿Está seguro de que desea <b>habilitar</b> el registro seleccionado?|¿Está seguro de que desea <b>habilitar</b> los registros seleccionados?',
'disable' => '¿Está seguro de que desea <b>deshabilitar</b> el registro seleccionado?|¿Está seguro de que desea <b>deshabilitar</b> los registros seleccionados?',
'paid' => '¿Está seguro de que desea marcar la factura seleccionada como <b>pagada</b>? ¿Está seguro de que desea marcar las facturas seleccionadas como <b>pagadas</b>?',
'sent' => '¿Está seguro de que desea marcar la factura seleccionada como <b>enviada</b>? ¿Está seguro de que desea marcar las facturas seleccionadas como <b>enviadas</b>?',
'received' => '¿Está seguro de que desea marcar la factura seleccionada como <b>recibida</b>? ¿Está seguro de que desea marcar las facturas seleccionadas como <b>recibidas</b>?',
'cancelled' => '¿Está seguro de que desea <b>cancelar</b> la factura seleccionada?|¿Está seguro de que desea <b>cancelar</b> las facturas seleccionadas?',
'reconcile' => '¿Está seguro de que desea <b>conciliar</b> registro seleccionado?|¿Está seguro de que desea <b>conciliar</b> registros seleccionados?',
'unreconcile' => 'Are you sure you want to <b>unreconcile</b> selected record?|Are you sure you want to <b>unreconcile</b> selected records?',
],
];

View File

@ -0,0 +1,14 @@
<?php
return [
'domain' => 'Dominio',
'logo' => 'Logo',
'error' => [
'not_user_company' => 'Error: ¡No tiene permiso para cambiar esta empresa!',
'delete_active' => 'Error: No se puede eliminar la empresa activa. Por favor, cambie a otra primero!',
'disable_active' => 'Error: No se puede desactivar la empresa activa. ¡Por favor, cambie a otra primero!',
],
];

View File

@ -0,0 +1,18 @@
<?php
return [
'code' => 'Código',
'rate' => 'Cotización',
'default' => 'Moneda predeterminada',
'decimal_mark' => 'Punto decimal',
'thousands_separator' => 'Separador de miles',
'precision' => 'Precisión',
'symbol' => [
'symbol' => 'Símbolo',
'position' => 'Posición del símbolo',
'before' => 'Antes del importe',
'after' => 'Despues del importe',
]
];

View File

@ -0,0 +1,12 @@
<?php
return [
'can_login' => '¿Puede iniciar sesión?',
'user_created' => 'Usuario creado',
'error' => [
'email' => 'El correo electrónico ya está en uso.',
],
];

View File

@ -0,0 +1,11 @@
<?php
return [
'error' => [
'not_user_dashboard' => 'Error: No tiene permiso para cambiar este panel!',
'delete_last' => 'Error: No se puede eliminar el último tablero. ¡Por favor, crea uno nuevo primero!',
'disable_last' => 'Error: No se puede desactivar el último tablero. ¡Por favor, crea uno nuevo primero!',
],
];

View File

@ -0,0 +1,34 @@
<?php
return [
'accounts' => [
'cash' => 'Efectivo',
],
'categories' => [
'deposit' => 'Depósito',
'sales' => 'Ventas',
],
'currencies' => [
'usd' => 'Dólar EEUU',
'eur' => 'Euro',
'gbp' => 'Libra esterlina',
'try' => 'Lira turca',
],
'offline_payments' => [
'cash' => 'Efectivo',
'bank' => 'Transferencia bancaria',
],
'reports' => [
'income' => 'Resumen mensual de ingresos por categoría.',
'expense' => 'Resumen mensual de gastos por categoría.',
'income_expense' => 'Ingresos mensuales vs gastos por categoría.',
'tax' => 'Resumen trimestral de impuestos.',
'profit_loss' => 'Ganancias y pérdidas trimestrales por categoría.',
],
];

View File

@ -0,0 +1,50 @@
<?php
return [
'invoice_new_customer' => [
'subject' => '{invoice_number} factura creada',
'body' => 'Estimado {customer_name},<br /><br />Le hemos preparado la siguiente factura: <strong>{invoice_number}</strong>.<br /><br />Puede ver los detalles de la factura y proceder con el pago desde el siguiente enlace: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />Ponte en contacto con nosotros para cualquier pregunta.<br /><br />Saludos cordiales,<br />{company_name}',
],
'invoice_remind_customer' => [
'subject' => '{invoice_number} notificación de factura vencida',
'body' => 'Estimado {customer_name},<br /><br />Este es un aviso de factura vencida para <strong>{invoice_number}</strong>.<br /><br />El total de la factura es {invoice_total} y venció el <strong>{invoice_due_date}</strong>.<br /><br />Puede ver los detalles de la factura y proceder con el pago desde el siguiente enlace: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />Saludos cordiales,<br />{company_name}',
],
'invoice_remind_admin' => [
'subject' => '{invoice_number} notificación de factura vencida',
'body' => 'Hola,<br /><br />{customer_name} ha recibido un aviso de vencimiento por la factura <strong>{invoice_number}</strong>.<br /><br />El total de la factura es {invoice_total} y venció el <strong>{invoice_due_date}</strong>.<br /><br />Puede ver los detalles de la factura desde el siguiente enlace: <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br />Saludos cordiales,<br />{company_name}',
],
'invoice_recur_customer' => [
'subject' => '{invoice_number} factura recurrente creada',
'body' => 'Estimado {customer_name},<br /><br />Basado en su círculo recurrente, le hemos preparado la siguiente factura: <strong>{invoice_number}</strong>.<br /><br />Puede ver los detalles de la factura y proceder con el pago desde el siguiente enlace: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />Ponte en contacto con nosotros para cualquier pregunta.<br /><br />Saludos cordiales,<br />{company_name}',
],
'invoice_recur_admin' => [
'subject' => '{invoice_number} factura recurrente creada',
'body' => 'Hola,<br /><br />Basado en el círculo recurrente de {customer_name}, la factura <strong>{invoice_number}</strong> ha sido creada automáticamente.<br /><br />Puede ver los detalles de la factura desde el siguiente enlace: <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br />Saludos cordiales,<br />{company_name}',
],
'invoice_payment_customer' => [
'subject' => 'Pago recibido por factura {invoice_number}',
'body' => 'Estimado {customer_name},<br /><br />Gracias por el pago. Encuentre los detalles de pago a continuación:<br /><br />-------------------------------------------------<br /><br />Monto: <strong>{transaction_total}<br /></strong>Fecha: <strong>{transaction_paid_date}</strong><br />Número de factura: <strong>{invoice_number}<br /><br /></strong>-------------------------------------------------<br /><br />Siempre puede ver los detalles de la factura desde el siguiente enlace: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />Ponte en contacto con nosotros para cualquier pregunta.<br /><br />Saludos cordiales,<br />{company_name}',
],
'invoice_payment_admin' => [
'subject' => 'Pago recibido por factura {invoice_number}',
'body' => 'Hola,<br /><br />{customer_name} registró un pago por la factura <strong>{invoice_number}</strong>.<br /><br />Puede ver los detalles de la factura desde el siguiente enlace: <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br />Saludos cordiales,<br />{company_name}',
],
'bill_remind_admin' => [
'subject' => 'Aviso recordatorio de factura {bill_number}',
'body' => 'Hola,<br /><br />{customer_name} ha recibido un aviso de vencimiento por la factura <strong>{invoice_number}</strong>.<br /><br />El total de la factura es {invoice_total} y venció el <strong>{invoice_due_date}</strong>.<br /><br />Puede ver los detalles de la factura desde el siguiente enlace: <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br />Saludos cordiales,<br />{company_name}',
],
'bill_recur_admin' => [
'subject' => '{invoice_number} factura recurrente creada',
'body' => 'Hola,<br /><br />Basado en el círculo recurrente de {customer_name}, la factura <strong>{invoice_number}</strong> ha sido creada automáticamente.<br /><br />Puede ver los detalles de la factura desde el siguiente enlace: <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br />Saludos cordiales,<br />{company_name}',
],
];

View File

@ -0,0 +1,23 @@
<?php
return [
'title' => [
'403' => '¡Ups! Acceso prohibido',
'404' => '¡Ups! Página no encontrada',
'500' => '¡Ups! Algo salió mal',
],
'header' => [
'403' => '403 Prohibido',
'404' => '404 Página no encontrada',
'500' => '500 Error interno del servidor',
],
'message' => [
'403' => 'No puede acceder a esta página.',
'404' => 'No pudimos encontrar la página que estaba buscando.',
'500' => 'Trabajaremos para arreglarlo de inmediato.',
],
];

View File

@ -0,0 +1,10 @@
<?php
return [
'version' => 'Versión',
'powered' => 'Desarrollado por Akaunting',
'link' => 'https://akaunting.com',
'software' => 'Software de Contabilidad Libre',
];

View File

@ -0,0 +1,206 @@
<?php
return [
'dashboards' => 'Tablero|Tableros',
'items' => 'Producto/Servicio|Productos/Servicios',
'incomes' => 'Ingresos|Ingresos',
'invoices' => 'Factura|Facturas',
'revenues' => 'Ingresos|Ingresos',
'customers' => 'Cliente|Clientes',
'expenses' => 'Gastos|Gastos',
'bills' => 'Factura|Facturas',
'payments' => 'Pago|Pagos',
'vendors' => 'Proveedor|Proveedores',
'accounts' => 'Cuenta|Cuentas',
'transfers' => 'Transferencia|Transferencias',
'transactions' => 'Transacción|Transacciones',
'reports' => 'Informe|Informes',
'settings' => 'Ajuste|Ajustes',
'categories' => 'Categoría|Categorías',
'currencies' => 'Moneda|Monedas',
'tax_rates' => 'Tasa de impuestos|Tasas de impuestos',
'users' => 'Usuario|Usuarios',
'roles' => 'Rol|Roles',
'permissions' => 'Permiso|Permisos',
'modules' => 'App|Apps',
'companies' => 'Empresa|Empresas',
'profits' => 'Ganancia|Ganancias',
'taxes' => 'Impuestos|Impuestos',
'logos' => 'Logo|Logos',
'pictures' => 'Imagen|Imágenes',
'types' => 'Tipo|Tipos',
'payment_methods' => 'Forma de pago|Formas de pago',
'compares' => 'Ingreso vs Gasto|Ingresos vs Gastos',
'notes' => 'Nota|Notas',
'totals' => 'Total|Totales',
'languages' => 'Idioma|Idiomas',
'updates' => 'Actualización|Actualizaciones',
'numbers' => 'Número|Números',
'statuses' => 'Estado|Estados',
'others' => 'Otro|Otros',
'contacts' => 'Contacto|Contactos',
'reconciliations' => 'Conciliación|Conciliaciones',
'developers' => 'Desarrollador|Desarrolladores',
'schedules' => 'Horario|Horarios',
'groups' => 'Grupo|Grupos',
'charts' => 'Gráfico|Gráficos',
'localisations' => 'Localización|Localizaciones',
'defaults' => 'Por defecto|Por defecto',
'widgets' => 'Widget|Widgets',
'templates' => 'Plantilla|Plantillas',
'sales' => 'Venta|Ventas',
'purchases' => 'Compra|Compras',
'welcome' => 'Bienvenido/a',
'banking' => 'Bancos',
'general' => 'General',
'no_records' => 'No hay registros.',
'date' => 'Fecha',
'amount' => 'Importe',
'enabled' => 'Activo',
'disabled' => 'Inhabilitado',
'yes' => 'Sí',
'no' => 'No',
'na' => 'N/A',
'daily' => 'Diario',
'weekly' => 'Semanal',
'monthly' => 'Mensual',
'quarterly' => 'Trimestral',
'yearly' => 'Anual',
'add' => 'Añadir',
'add_new' => 'Agregar nuevo',
'add_income' => 'Agregar Ingreso',
'add_expense' => 'Agregar Gasto',
'show' => 'Mostrar',
'edit' => 'Editar',
'delete' => 'Borrar',
'send' => 'Enviar',
'share' => 'Compartir',
'download' => 'Descargar',
'delete_confirm' => 'Confirma el borrado de :name :type?',
'name' => 'Nombre',
'email' => 'Correo electrónico',
'tax_number' => 'CUIT',
'phone' => 'Teléfono',
'address' => 'Dirección',
'website' => 'Página web',
'actions' => 'Acciones',
'description' => 'Descripción',
'manage' => 'Administrar',
'code' => 'Código',
'alias' => 'Alias',
'balance' => 'Saldo',
'reference' => 'Referencia',
'attachment' => 'Adjunto',
'change' => 'Cambiar',
'change_type' => 'Cambiar :type',
'switch' => 'Cambiar',
'color' => 'Color',
'save' => 'Guardar',
'confirm' => 'Confirmar',
'cancel' => 'Cancelar',
'loading' => 'Cargando...',
'from' => 'De ',
'to' => 'Para',
'print' => 'Imprimir',
'search' => 'Buscar',
'search_placeholder' => 'Escriba para buscar..',
'filter' => 'Filtrar',
'help' => 'Ayuda',
'all' => 'Todos',
'all_type' => 'Todos :type',
'upcoming' => 'Próximos',
'created' => 'Creado',
'id' => 'ID',
'more_actions' => 'Más acciones',
'duplicate' => 'Duplicar',
'unpaid' => 'No Pagado',
'paid' => 'Pagado',
'overdue' => 'Vencido',
'partially' => 'Parcialmente',
'partially_paid' => 'Parcialmente pagado',
'export' => 'Exportar',
'finish' => 'Terminar',
'wizard' => 'Asistente',
'skip' => 'Omitir',
'enable' => 'Habilitar',
'disable' => 'Deshabilitar',
'select_all' => 'Seleccionar todo',
'unselect_all' => 'Deseleccionar todo',
'created_date' => 'Fecha de creación',
'period' => 'Período',
'frequency' => 'Frecuencia',
'start' => 'Inicio',
'end' => 'Fin',
'clear' => 'Limpiar',
'difference' => 'Diferencia',
'footer' => 'Pie de página',
'start_date' => 'Fecha de inicio',
'end_date' => 'Fecha de fin',
'basis' => 'Base',
'accrual' => 'Devengado',
'cash' => 'Efectivo',
'group_by' => 'Agrupar por',
'accounting' => 'Contabilidad',
'sort' => 'Ordenar',
'width' => 'Ancho',
'month' => 'Mes',
'year' => 'Año',
'type_item_name' => 'Escriba un nombre de artículo',
'no_data' => 'Sin datos',
'no_matching_data' => 'No hay datos coincidentes',
'clear_cache' => 'Limpiar caché',
'go_to_dashboard' => 'Ir al panel de control',
'card' => [
'name' => 'Nombre del titular',
'number' => 'Número de tarjeta',
'expiration_date' => 'Fecha de vencimiento',
'cvv' => 'CVV de tarjeta',
],
'title' => [
'new' => 'Nuevo :type',
'edit' => 'Editar :type',
'delete' => 'Eliminar :type',
'create' => 'Crear :type',
'send' => 'Enviar :type',
'get' => 'Obtener :type',
'add' => 'Agregar :type',
'manage' => 'Administrar :type',
],
'form' => [
'enter' => 'Ingrese :field',
'select' => [
'field' => '- Seleccione :field -',
'file' => 'Seleccionar archivo',
],
'add_new' => 'Agregar Nuevo :field',
'no_file_selected' => 'Ningún archivo seleccionado...',
],
'date_range' => [
'today' => 'Hoy',
'yesterday' => 'Ayer',
'last_days' => 'Últimos :day Días',
'this_month' => 'Este mes',
'last_month' => 'Mes anterior',
],
'empty' => [
'documentation' => 'Revisa la <a href=":url" target="_blank" class="text-success">documentación</a> para más detalles.',
'items' => 'Los artículos pueden ser productos o servicios. Puede utilizar artículos al crear facturas para poblar los campos precio, impuestos, etc.',
'invoices' => 'Las facturas pueden ser una vez o recurrentes. Puedes enviarlas a los clientes y empezar a aceptar pagos en línea.',
'revenues' => 'El ingreso es una transacción de ingreso de pago. Puede ser un registro independiente (es decir, depósito) o adjunto a una factura.',
'customers' => 'Los clientes son necesarios si desea crear facturas. También pueden iniciar sesión en el Portal del Cliente y ver su balance de saldo.',
'bills' => 'Las facturas pueden ser una vez o recurrentes. Indican lo que debe a sus proveedores por los productos o servicios que compra.',
'payments' => 'El pago es una transacción de gastos pagados. Puede ser un registro independiente (por ejemplo, recibo de alimento) o adjunto a una factura.',
'vendors' => 'Los proveedores son necesarios si desea crear facturas. Puede ver el saldo que debe y filtrar los informes por proveedor.',
'transfers' => 'Las transferencias te permiten pasar dinero de una cuenta a otra, tanto si utilizan la misma moneda como si no.',
'taxes' => 'Los impuestos se utilizan para aplicar cargos adicionales a facturas. Sus finanzas se ven afectadas por estos impuestos regulatorios.',
'reconciliations' => 'La conciliación bancaria es un proceso realizado para asegurar que los registros bancarios de su empresa también sean correctos.',
],
];

View File

@ -0,0 +1,16 @@
<?php
return [
'change_language' => 'Cambiar idioma',
'last_login' => 'Último ingreso :time',
'notifications' => [
'counter' => '{0} No tiene notificaciones |{1} Tiene :count notificación | [2,*] Tiene :count notificaciones',
'overdue_invoices' => '{1} :count factura vencida | [2,*] :count facturas vencidas',
'upcoming_bills' => '{1} :count factura por vencer|[2,*] :count facturas por vencer',
'view_all' => 'Ver todas'
],
'docs_link' => 'https://akaunting.com/docs',
'support_link' => 'https://akaunting.com/support',
];

View File

@ -0,0 +1,9 @@
<?php
return [
'import' => 'Importar',
'title' => 'Importar :type',
'message' => 'Formatos permitidos: XLS, XLSX. Por favor, <a target="_blank" href=":link"> <strong>descargue</strong></a> el archivo de ejemplo.',
];

View File

@ -0,0 +1,46 @@
<?php
return [
'next' => 'Siguiente',
'refresh' => 'Actualizar',
'steps' => [
'requirements' => 'Por favor, pregúntele a su proveedor de hosting para corregir los errores!',
'language' => 'Paso 1/3: Selección de idioma',
'database' => 'Paso 2/3: Configuración de la base de datos',
'settings' => 'Paso 3/3: Detalles de la empresa y del administrador',
],
'language' => [
'select' => 'Seleccione el idioma',
],
'requirements' => [
'enabled' => ':feature debe estar habilitado!',
'disabled' => ':feature debe estar deshabilitado!',
'extension' => 'La extensión :extension necesita ser instalada y cargada!',
'directory' => 'El directorio :directorio necesita tener permiso de escritura!',
'executable' => '¡El archivo ejecutable PHP CLI no está definido/funcionando o su versión no es :php_version o superior! Por favor, pida a su compañía de hosting que configure correctamente la variable de entorno PHP_BINARY o PHP_PATH.',
],
'database' => [
'hostname' => 'Nombre del servidor',
'username' => 'Usuario',
'password' => 'Contraseña',
'name' => 'Base de datos',
],
'settings' => [
'company_name' => 'Nombre de la empresa',
'company_email' => 'Correo electrónico de la Empresa',
'admin_email' => 'Correo electrónico del Administrador',
'admin_password' => 'Contraseña de Administrador',
],
'error' => [
'php_version' => 'Error: Pídele a su proveedor de alojamiento que utilice PHP :php_version o superior tanto para HTTP como para CLI.',
'connection' => 'Error: No se pudo conectar a la base de datos! Por favor, asegúrese de que los datos son correctos.',
],
];

View File

@ -0,0 +1,77 @@
<?php
return [
'invoice_number' => 'Número de factura',
'invoice_date' => 'Fecha de factura',
'total_price' => 'Precio total',
'due_date' => 'Fecha de vencimiento',
'order_number' => 'Número de pedido',
'bill_to' => 'Facturar a',
'quantity' => 'Cantidad',
'price' => 'Precio',
'sub_total' => 'Subtotal',
'discount' => 'Descuento',
'item_discount' => 'Descuento de línea',
'tax_total' => 'Total de impuestos',
'total' => 'Total ',
'item_name' => 'Nombre del artículo | Nombres de artículo',
'show_discount' => ':discount% de descuento',
'add_discount' => 'Agregar descuento',
'discount_desc' => 'de subtotal',
'payment_due' => 'Vencimiento de pago',
'paid' => 'Pagado',
'histories' => 'Historial',
'payments' => 'Pagos',
'add_payment' => 'Añadir pago',
'mark_paid' => 'Marcar como pagada',
'mark_sent' => 'Marcar Como Enviada',
'mark_viewed' => 'Marcar como vista',
'mark_cancelled' => 'Marcar como cancelada',
'download_pdf' => 'Descargar PDF',
'send_mail' => 'Enviar Email',
'all_invoices' => 'Inicie sesión para ver todas las facturas',
'create_invoice' => 'Crear factura',
'send_invoice' => 'Enviar factura',
'get_paid' => 'Recibir Pago',
'accept_payments' => 'Aceptar pagos online',
'statuses' => [
'draft' => 'Borrador',
'sent' => 'Enviada',
'viewed' => 'Vista',
'approved' => 'Aprobada',
'partial' => 'Pago parcial',
'paid' => 'Pagada',
'overdue' => 'Vencida',
'unpaid' => 'No pagada',
'cancelled' => 'Cancelada',
],
'messages' => [
'email_sent' => '¡El correo electrónico de la factura ha sido enviado!',
'marked_sent' => '¡Factura marcada como enviada!',
'marked_paid' => '¡Factura marcada como pagada!',
'marked_viewed' => '¡Factura marcada como vista!',
'marked_cancelled' => '¡Factura marcada como cancelada!',
'email_required' => '¡No hay dirección de correo electrónico para este cliente!',
'draft' => 'Esta es una factura <b>BORRADOR</b> y se reflejará en gráficos después de ser enviada.',
'status' => [
'created' => 'Creada el :date',
'viewed' => 'Vista',
'send' => [
'draft' => 'Sin enviar',
'sent' => 'Enviada el :date',
],
'paid' => [
'await' => 'Pendiente de pago',
],
],
],
];

View File

@ -0,0 +1,8 @@
<?php
return [
'sales_price' => 'Precio de venta',
'purchase_price' => 'Precio de compra',
];

Some files were not shown because too many files have changed in this diff Show More