mirror of
https://github.com/mokuappio/serverless-invoices.git
synced 2025-10-27 16:01:07 -04:00
Review and fix translations.
This commit is contained in:
9
package-lock.json
generated
9
package-lock.json
generated
@ -3260,8 +3260,7 @@
|
||||
"version": "4.6.0",
|
||||
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
|
||||
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"coa": {
|
||||
"version": "2.0.2",
|
||||
@ -9031,8 +9030,7 @@
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
|
||||
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"pify": {
|
||||
"version": "4.0.1",
|
||||
@ -10567,8 +10565,7 @@
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
|
||||
"integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"rx-lite-aggregates": {
|
||||
"version": "4.0.8",
|
||||
|
||||
@ -4,20 +4,22 @@
|
||||
"done": "Done",
|
||||
"create": "Create",
|
||||
"loading": "Loading",
|
||||
"tabs": {
|
||||
"general": "General",
|
||||
"invoicing": "Invoicing",
|
||||
"address": "Address"
|
||||
},
|
||||
"general": {
|
||||
"title": "General",
|
||||
"company_name": "Company name",
|
||||
"invoice_email": "Email"
|
||||
},
|
||||
"invoicing": {
|
||||
"title": "Invoicing",
|
||||
"currency": "Currency",
|
||||
"rate": "Hourly rate",
|
||||
"has_tax": "Apply taxes",
|
||||
"bank_account": "Bank account"
|
||||
},
|
||||
"address": {
|
||||
"title": "Address",
|
||||
"company_address": "Company address",
|
||||
"company_postal_code": "Postal code",
|
||||
"company_city": "City",
|
||||
|
||||
@ -4,16 +4,9 @@
|
||||
"download_pdf": "Download PDF",
|
||||
"delete": "Delete",
|
||||
"delete_modal": {
|
||||
"title": "Delete client",
|
||||
"title": "Delete invoice",
|
||||
"ok_title": "Delete",
|
||||
"cancel_title": "Dismiss"
|
||||
},
|
||||
"statuses": {
|
||||
"draft": "draft",
|
||||
"booked": "booked",
|
||||
"sent": "sent",
|
||||
"paid": "paid",
|
||||
"cancelled": "cancelled"
|
||||
},
|
||||
"notification_deleted": "Deleted"
|
||||
}
|
||||
|
||||
@ -2,9 +2,9 @@
|
||||
"invoice_title": "Invoice ",
|
||||
"invoice_number": "No.",
|
||||
"issued_at": "Issued at: ",
|
||||
"due_at": "Due at",
|
||||
"due_at": "Due at:",
|
||||
"late_fee": "Late fee:",
|
||||
"add_late_fee": "Add late fee",
|
||||
"modal_issued_at_title": "Issued at"
|
||||
|
||||
"modal_issued_at_title": "Issued at",
|
||||
"modal_due_at_title": "Due at"
|
||||
}
|
||||
|
||||
7
public/locales/en/statuses.json
Normal file
7
public/locales/en/statuses.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"draft": "draft",
|
||||
"booked": "booked",
|
||||
"sent": "sent",
|
||||
"paid": "paid",
|
||||
"cancelled": "cancelled"
|
||||
}
|
||||
@ -1,24 +1,27 @@
|
||||
{
|
||||
"title": "Team",
|
||||
"title": "Your company",
|
||||
"done": "Done",
|
||||
"updated": "Updated",
|
||||
"loading": "Loading",
|
||||
"tabs": {
|
||||
"general": "General",
|
||||
"invoicing": "Invoicing",
|
||||
"address": "Address",
|
||||
"taxes": "Taxes"
|
||||
},
|
||||
"general": {
|
||||
"title": "General",
|
||||
"company_name": "Company Name",
|
||||
"company_name": "Company name",
|
||||
"contact_email": "Email",
|
||||
"contact_phone": "Phone",
|
||||
"website": "Website"
|
||||
},
|
||||
"invoicing": {
|
||||
"title": "Invoicing",
|
||||
"invoice_late_fee": "Late fee (%)",
|
||||
"invoice_due_days": "Payment terms, days",
|
||||
"currency": "Default currency"
|
||||
},
|
||||
"address": {
|
||||
"title": "Address",
|
||||
"company_address": "Company Address",
|
||||
"company_address": "Company address",
|
||||
"company_postal_code": "Postal code",
|
||||
"company_city": "City",
|
||||
"company_county": "County/State",
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"modal_title": "Choose logo",
|
||||
"button_text": "Select from files",
|
||||
"logo_url": "Insert web url",
|
||||
"logo_url": "Insert image web url",
|
||||
"logo_url_err": "Logo has to be under 512kb.",
|
||||
"or": "or"
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"lights": "Lights",
|
||||
"lights-on": "Lights on",
|
||||
"lights-off": "Lights off",
|
||||
"title": "All your data is saved in your browser and not on any server.\n This application is truly serverless and only you have access to your data.",
|
||||
"what_about_my_data": "What about my data? ",
|
||||
"made_with": "Made with",
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<footer class="col-12 d-flex justify-content-between align-items-center text-secondary px-0 mt-3 d-print-none">
|
||||
<button class="btn btn-sm text-secondary" @click="toggleTheme">
|
||||
{{ $t('lights') }}{{ theme === 'dark' ? 'on' : 'off' }}
|
||||
{{ theme === 'dark' ? $t('lights-on') : $t('lights-off') }}
|
||||
<i class="material-icons material-icons-round md-14 align-text-bottom ml-1">
|
||||
{{ theme === 'dark' ? 'wb_sunny' : 'brightness_2' }}
|
||||
</i>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h4>{{ $t('bank_account') }}</h4>
|
||||
<h4>{{ $t('title') }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="bankAccount" class="row">
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
</div>
|
||||
|
||||
<b-tabs v-if="client" nav-class="nav-tabs--simple mb-4" active-tab-class="active" class="row">
|
||||
<b-tab :title="$t('general.title')" class="col-12">
|
||||
<b-tab :title="$t('tabs.general')" class="col-12">
|
||||
<div class="row">
|
||||
<AppInput :value="client.company_name" @change="updateProp({ company_name: $event })"
|
||||
:label="$t('general.company_name')" field="company_name" :errors="errors" class="col-12"/>
|
||||
@ -36,7 +36,7 @@
|
||||
<ClientFields class="row" :client="client"/>
|
||||
</b-tab>
|
||||
|
||||
<b-tab :title="$t('invoicing.title')" class="col-12">
|
||||
<b-tab :title="$t('tabs.invoicing')" class="col-12">
|
||||
<div class="row">
|
||||
<AppInput :value="client.currency" @change="updateProp({ currency: $event })"
|
||||
:label="$t('invoicing.currency')" field="currency" :errors="errors" class="col-sm-4"/>
|
||||
@ -54,7 +54,7 @@
|
||||
</div>
|
||||
</b-tab>
|
||||
|
||||
<b-tab :title="$t('address.title')" class="col-12">
|
||||
<b-tab :title="$t('tabs.address')" class="col-12">
|
||||
<div class="row">
|
||||
<AppInput :value="client.company_address" @change="updateProp({ company_address: $event })"
|
||||
:label="$t('address.company_address')" field="company_address" :errors="errors"
|
||||
@ -170,9 +170,9 @@ export default {
|
||||
},
|
||||
async deleteClient() {
|
||||
const confirmed = await this.$bvModal.msgBoxConfirm(`${this.$t('delete_modal.title')} ${this.client.company_name}?`, {
|
||||
okTitle: this.$t('ok_title'),
|
||||
okTitle: this.$t('delete_modal.ok_title'),
|
||||
okVariant: 'danger',
|
||||
cancelTitle: this.$t('cancel_title'),
|
||||
cancelTitle: this.$t('delete_modal.cancel_title'),
|
||||
cancelVariant: 'btn-link',
|
||||
contentClass: 'bg-base dp--24',
|
||||
});
|
||||
|
||||
@ -35,7 +35,7 @@ import { BDropdown, BDropdownItemButton } from 'bootstrap-vue';
|
||||
import AppSelect from '@/components/form/AppSelect';
|
||||
|
||||
export default {
|
||||
i18nOptions: { namespaces: 'invoice-controls' },
|
||||
i18nOptions: { namespaces: ['invoice-controls', 'statuses'] },
|
||||
components: {
|
||||
BDropdown,
|
||||
BDropdownItemButton,
|
||||
@ -46,9 +46,8 @@ export default {
|
||||
invoice: 'invoices/invoice',
|
||||
}),
|
||||
getStatusObj() {
|
||||
const test = this.invoiceStatuses
|
||||
return this.invoiceStatuses
|
||||
.find(obj => obj.value === this.invoice.status);
|
||||
return test;
|
||||
},
|
||||
invoiceStatuses() {
|
||||
return [{
|
||||
|
||||
@ -22,12 +22,12 @@
|
||||
:inline="true"
|
||||
field="issued_at"/>
|
||||
</BModal>
|
||||
<br>{{ $t('due_at') }}:
|
||||
<br>{{ $t('due_at') }}
|
||||
<span class="editable__item"
|
||||
v-b-modal.modal_due_at>{{ invoice.due_at | date('D. MMM YYYY', 'YYYY-MM-DD') }}</span>
|
||||
<BModal id="modal_due_at"
|
||||
centered
|
||||
:title="$t('due_at')"
|
||||
:title="$t('modal_due_at_title')"
|
||||
hide-footer
|
||||
size="sm"
|
||||
content-class="bg-base dp--24">
|
||||
@ -37,7 +37,7 @@
|
||||
:inline="true"
|
||||
field="due_at"/>
|
||||
</BModal>
|
||||
<br>{{ $t('due_at') }}
|
||||
<br>{{ $t('late_fee') }}
|
||||
<AppEditable :value="invoice.late_fee | currency"
|
||||
:errors="errors"
|
||||
suffix="%"
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<template>
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="!invoices" class="col-12">{{ $t('loading') }}</div>
|
||||
<table class="table table--card table-hover" v-else-if="invoices && invoices.length > 0">
|
||||
@ -29,7 +29,7 @@
|
||||
v-b-tooltip.hover title="Overdue">warning</i>
|
||||
<i class="material-icons material-icons-round md-18 mr-2 text-success"
|
||||
v-else-if="invoice.status === 'paid'">done</i>
|
||||
{{ invoice.status }}
|
||||
{{ $t(`statuses.${invoice.status}`) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@ -46,7 +46,7 @@ import dayjs from 'dayjs';
|
||||
import { VBTooltip } from 'bootstrap-vue';
|
||||
|
||||
export default {
|
||||
i18nOptions: { namespaces: 'invoices-list' },
|
||||
i18nOptions: { namespaces: ['invoices-list', 'statuses'] },
|
||||
components: {
|
||||
EmptyState,
|
||||
},
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
</div>
|
||||
|
||||
<b-tabs v-if="team" nav-class="nav-tabs--simple mb-4" active-tab-class="active" class="row">
|
||||
<b-tab :title="$t('general.title')" class="col-12">
|
||||
<b-tab :title="$t('tabs.general')" class="col-12">
|
||||
<div class="row">
|
||||
<TeamLogo :errors="errors" class="col-sm-4"/>
|
||||
</div>
|
||||
@ -20,17 +20,17 @@
|
||||
<AppInput :value="team.company_name" @change="updateProp({ company_name: $event })"
|
||||
:label="$t('general.company_name')" field="company_name" :errors="errors" class="col-12"/>
|
||||
<AppInput :value="team.contact_email" @change="updateProp({ contact_email: $event })"
|
||||
:label="$t('email')" field="contact_email" :errors="errors" class="col-sm-7"/>
|
||||
:label="$t('general.contact_email')" field="contact_email" :errors="errors" class="col-sm-7"/>
|
||||
<AppInput :value="team.contact_phone" @change="updateProp({ contact_phone: $event })"
|
||||
:label="$t('contact_phone')" field="contact_phone" :errors="errors" class="col-sm-7"/>
|
||||
:label="$t('general.contact_phone')" field="contact_phone" :errors="errors" class="col-sm-7"/>
|
||||
<AppInput :value="team.website" @change="updateProp({ website: $event })"
|
||||
:label="$t('website')" field="website" :errors="errors" class="col-sm-7"/>
|
||||
:label="$t('general.website')" field="website" :errors="errors" class="col-sm-7"/>
|
||||
</div>
|
||||
|
||||
<TeamFields class="row" :team="team"/>
|
||||
</b-tab>
|
||||
|
||||
<b-tab :title="$t('invoicing.title')" class="col-12">
|
||||
<b-tab :title="$t('tabs.invoicing')" class="col-12">
|
||||
<div class="row">
|
||||
<AppInput :value="team.invoice_late_fee" @change="updateProp({ invoice_late_fee: $event })"
|
||||
type="number"
|
||||
@ -43,7 +43,7 @@
|
||||
</div>
|
||||
</b-tab>
|
||||
|
||||
<b-tab :title="$t('address.title')" class="col-12">
|
||||
<b-tab :title="$t('tabs.address')" class="col-12">
|
||||
<div class="row">
|
||||
<AppInput :value="team.company_address" @change="updateProp({ company_address: $event })"
|
||||
:label="$t('address.company_address')" field="company_address" :errors="errors"
|
||||
@ -61,7 +61,7 @@
|
||||
</div>
|
||||
</b-tab>
|
||||
|
||||
<b-tab title="Taxes" class="col-12">
|
||||
<b-tab :title="$t('tabs.taxes')" class="col-12">
|
||||
<TeamTaxes class="row"/>
|
||||
</b-tab>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user