Compare commits
62 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c343b4b92 | ||
|
|
a60cac3e66 | ||
|
|
6a0d3a3bcc | ||
|
|
3e52b84fa8 | ||
|
|
d1f45a790b | ||
|
|
bec0c058a8 | ||
|
|
d862ee05e9 | ||
|
|
12d9d6c801 | ||
|
|
e9e52c60a7 | ||
|
|
34b9f52af7 | ||
|
|
fcf64c0b26 | ||
|
|
7e2d257f7d | ||
|
|
c617f7d169 | ||
|
|
1804481fc6 | ||
|
|
9bed81fe8f | ||
|
|
f52b73f517 | ||
|
|
32e03b98a3 | ||
|
|
3f560a1de2 | ||
|
|
ef9adbd6c9 | ||
|
|
969cbe9ad8 | ||
|
|
6031f0dbdd | ||
|
|
06a71fc7b3 | ||
|
|
fd1c7be1f8 | ||
|
|
c466d51fe0 | ||
|
|
e8dccb178b | ||
|
|
f5b36d7e6c | ||
|
|
a32bbb6268 | ||
|
|
9599814ae5 | ||
|
|
0d14da93d0 | ||
|
|
298c170867 | ||
|
|
b49228eabf | ||
|
|
99ada6fbcc | ||
|
|
ed4a59574c | ||
|
|
be2e1df442 | ||
|
|
ddca5a7b6d | ||
|
|
51d001aa0f | ||
|
|
5d817b5c45 | ||
|
|
ac2c73829c | ||
|
|
317f763a85 | ||
|
|
e112ed5875 | ||
|
|
84c10264ed | ||
|
|
b143642056 | ||
|
|
967c225df9 | ||
|
|
e1a0a2d8e4 | ||
|
|
748168ffa5 | ||
|
|
4db243e136 | ||
|
|
bc0c8d5348 | ||
|
|
6583569b1c | ||
|
|
134c99369e | ||
|
|
f2ae4e17c8 | ||
|
|
4ff62c0adf | ||
|
|
2604db32ce | ||
|
|
01d32d50b5 | ||
|
|
0c86563375 | ||
|
|
33c2949a7b | ||
|
|
547a2be0a3 | ||
|
|
59b43fa258 | ||
|
|
168b741936 | ||
|
|
022769ba38 | ||
|
|
068f48568e | ||
|
|
03b9defeb1 | ||
|
|
dd98df1c77 |
26
.github/ISSUE_TEMPLATE/bug_report.md
vendored
26
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,26 +0,0 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Please complete the following information:**
|
||||
- InvoiceShelf version:
|
||||
- PHP version:
|
||||
- Database type and version:
|
||||
|
||||
**Optional info**
|
||||
- OS: [e.g. Ubuntu]
|
||||
- Browser: [e.g. chrome, safari]
|
||||
202
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
202
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
name: Bug report
|
||||
description: Template for bug reports
|
||||
labels:
|
||||
- bug
|
||||
- triage
|
||||
projects: ["InvoiceShelf/2"]
|
||||
assignees:
|
||||
- rihards-simanovics
|
||||
|
||||
body:
|
||||
# Ask user to confirm they've tried to fix or research the issue before
|
||||
# posting a bug report.
|
||||
- type: checkboxes
|
||||
id: confirm-read-documentation
|
||||
attributes:
|
||||
label: Issue filing pre-requisites
|
||||
description: "Prior to filing an issue please confirm that:"
|
||||
options:
|
||||
- label: I've checked the documentation.
|
||||
required: true
|
||||
- label: I've looked for similar issues both Open and Closed.
|
||||
required: true
|
||||
- label: >-
|
||||
Ive tried clearing both cache and cookies in my browser or tried
|
||||
opening the app in the Incognito/InPrivate window.
|
||||
required: true
|
||||
|
||||
# Thank users for taking time to submit a bug report
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >-
|
||||
If you did all of the above, we first would like to thank you for taking
|
||||
the time to fill out this bug report, it will help us tremendously to
|
||||
find and fix the issue sooner!
|
||||
|
||||
# Description fo the bug
|
||||
- type: textarea
|
||||
id: bug-description
|
||||
attributes:
|
||||
label: Describe the bug
|
||||
description: A clear and concise description of what the bug is.
|
||||
placeholder: >-
|
||||
When doing `x`, `y`, and `z` in that order, an error occurs, but when x,
|
||||
z and then y is done, the error does not occur.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Reproduction steps
|
||||
- type: textarea
|
||||
id: reproduce
|
||||
attributes:
|
||||
label: Steps to Reproduce the issue
|
||||
description: A clear step-by-step explanation of how to reproduce your issue
|
||||
placeholder: >-
|
||||
## Produces an error:
|
||||
1. Do X;
|
||||
2. Do Y;
|
||||
3. Do Z;
|
||||
|
||||
## Works fine:
|
||||
4. Do X;
|
||||
5. Do Z;
|
||||
6. Do Y.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Expected Behaviour
|
||||
- type: textarea
|
||||
id: expected-behavior
|
||||
attributes:
|
||||
label: Expected behavior
|
||||
description: A clear and concise description of what you expected to happen.
|
||||
placeholder: doing `x`, `y`, and `z` in that order should not generate an error.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Actual Behaviour
|
||||
- type: textarea
|
||||
id: actual-behavior
|
||||
attributes:
|
||||
label: Actual behavior
|
||||
description: A clear and concise description of what actually happen.
|
||||
placeholder: doing `x`, `y`, and `z` in that order generate an error.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Section break
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |-
|
||||
## Envirment
|
||||
|
||||
Now lets collect some information about your environment.
|
||||
|
||||
# App Version
|
||||
- type: input
|
||||
id: invoiceshelf-version
|
||||
attributes:
|
||||
label: InvoiceShelf version
|
||||
placeholder: v0.0.0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# PHP Version
|
||||
- type: input
|
||||
id: php-version
|
||||
attributes:
|
||||
label: PHP version
|
||||
placeholder: v0.0.0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# DB Type
|
||||
- type: input
|
||||
id: database-type
|
||||
attributes:
|
||||
label: Database type
|
||||
placeholder: MariaDB / MySQL / PostreSQL / SQLite
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# DB Version
|
||||
- type: input
|
||||
id: db-version
|
||||
attributes:
|
||||
label: Database version
|
||||
placeholder: v0.0.0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Web Browser
|
||||
- type: input
|
||||
id: web-browser
|
||||
attributes:
|
||||
label: Web Browser
|
||||
placeholder: "Firefox / Safari / or any other (chromium based browser)"
|
||||
|
||||
# OS Version
|
||||
- type: input
|
||||
id: server-os
|
||||
attributes:
|
||||
label: Server OS
|
||||
description: If Linux please make sure to provide both distro name and it's version
|
||||
placeholder: Windows / Linux (e.g. Ubuntu 24.04)
|
||||
|
||||
# Associated Logs
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >-
|
||||
## Logs
|
||||
|
||||
|
||||
last but not least, could you please take some time to get us the logs
|
||||
for:
|
||||
|
||||
# Log Reverse proxy
|
||||
- type: textarea
|
||||
id: log-rev-proxy
|
||||
attributes:
|
||||
label: Reverse-proxy logs
|
||||
description: >-
|
||||
Please provide logs from your Apache, Nginx, Traefik, or any other
|
||||
reverse proxy application.
|
||||
placeholder: >-
|
||||
[2015-02-04 10:00:00] production.INFO: Laravel 5.0 released. The world rejoices.
|
||||
[2015-12-03 12:00:00] production.INFO: PHP 7.0 introduced scalar type declarations. Minds blown.
|
||||
[2016-05-15 14:00:00] production.INFO: Composer installed new dependencies. Dependency hell avoided.
|
||||
[2017-08-20 16:00:00] production.INFO: Artisan command executed: migrate. Smooth sailing.
|
||||
[2018-01-10 09:00:00] production.INFO: User login successful.
|
||||
[2018-01-10 09:05:00] production.ERROR: Database connection failed. Did you try turning it off and on again?
|
||||
[2018-01-10 09:10:00] production.WARNING: Deprecated function used in UserController.php. Time to refactor, again.
|
||||
[2018-01-10 09:15:00] production.ERROR: Uncaught Exception: Division by zero. Oops, math is hard.
|
||||
[2018-01-10 09:20:00] production.INFO: User logout successful. See you later, alligator.
|
||||
[2019-03-25 11:00:00] production.INFO: Cache cleared. Fresh start!
|
||||
[2019-06-30 13:00:00] production.ERROR: Syntax error. Missing semicolon strikes again.
|
||||
[2020-09-10 15:00:00] production.INFO: User registered. Welcome aboard!
|
||||
[2021-11-05 17:00:00] production.WARNING: Low disk space. Time to clean up.
|
||||
[2022-12-20 19:00:00] production.INFO: Server rebooted. All systems go.
|
||||
[2024-11-14 18:56:20] production.INFO: Unexpected item in the bagging area. Please wait for assistance.
|
||||
render: irc logs
|
||||
|
||||
# PHP/Laravel Logs
|
||||
- type: textarea
|
||||
id: log-laravel
|
||||
attributes:
|
||||
label: Laravel/PHP logs
|
||||
description: Please provide logs from either PHP or Laravel or both.
|
||||
placeholder: >-
|
||||
2023-04-12 10:15:32 [NGINX] 172.16.0.5 - - [12/Apr/2023:10:15:32 +0000] "GET /index.html HTTP/1.1" 200 1024 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
|
||||
2023-04-12 10:15:33 [NGINX] 172.16.0.7 - - [12/Apr/2023:10:15:33 +0000] "POST /login HTTP/1.1" 302 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8"
|
||||
2023-04-12 10:15:34 [NGINX] 172.16.0.9 - - [12/Apr/2023:10:15:34 +0000] "GET /about HTTP/1.1" 200 2048 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
|
||||
2023-04-12 10:15:35 [NGINX] 172.16.0.11 - - [12/Apr/2023:10:15:35 +0000] "PUT /api/v1/users/123 HTTP/1.1" 200 - "https://example.com/profile" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1"
|
||||
2023-04-12 10:15:36 [NGINX] 172.16.0.13 - - [12/Apr/2023:10:15:36 +0000] "DELETE /api/v1/products/456 HTTP/1.1" 204 - "-" "Dalvik/2.1.0 (Linux; U; Android 10; Pixel 4 Build/QD1A.190821.014.C2)"
|
||||
2023-04-12 10:15:37 [NGINX] 172.16.0.15 - - [12/Apr/2023:10:15:37 +0000] "GET /easter-egg HTTP/1.1" 200 42 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.3"
|
||||
render: irc logs
|
||||
|
||||
# Special thanks
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >-
|
||||
This template was generated with [Issue Forms
|
||||
Creator](https://issue-forms-creator.netlify.app)
|
||||
73
.github/ISSUE_TEMPLATE/code_quality_issue.yml
vendored
Normal file
73
.github/ISSUE_TEMPLATE/code_quality_issue.yml
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
# Big thanks to https://github.com/files-community/Files/ for a template of the code_quality_issue
|
||||
|
||||
name: Code Quality Issue
|
||||
description: Create a code quality issue to help InvoiceShelf keep a clean codebase
|
||||
labels:
|
||||
- code quality
|
||||
- triage
|
||||
projects: ["InvoiceShelf/2"]
|
||||
assignees:
|
||||
- rihards-simanovics
|
||||
|
||||
body:
|
||||
# Tip to warn of checking for existing issues
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
> [!TIP]
|
||||
|
||||
> Have you checked for similar code quality issues? There's a
|
||||
possibility your suggestion is already being tracked. Please do a
|
||||
thorough search before creating a new issue.
|
||||
|
||||
# Issue body
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: A clear and concise description of what the code quality issue is.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Related code
|
||||
- type: textarea
|
||||
id: code-in-question
|
||||
attributes:
|
||||
label: The code in question
|
||||
description: >-
|
||||
A list of the different InvoiceShelf and/or areas of the code concerned by the issue.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Gains
|
||||
- type: textarea
|
||||
id: gains
|
||||
attributes:
|
||||
label: Gains
|
||||
description: What would fixing this code quality issue bring to the source code?
|
||||
value: |
|
||||
- eg. A better readability.
|
||||
- eg. Uncoupling concepts X and Y.
|
||||
- eg. Clarifying the responsibility of class C.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Requirements
|
||||
- type: textarea
|
||||
id: requirements
|
||||
attributes:
|
||||
label: Requirements
|
||||
description: Describe all the requirements to solve the code quality issue.
|
||||
value: |
|
||||
- eg. Using a specific design pattern.
|
||||
- eg. Separating Interface I into three new interfaces I1, I2 and I3.
|
||||
- eg. Regrouping the duplicated process into a new helper.
|
||||
|
||||
# Remarks
|
||||
- type: textarea
|
||||
id: comments
|
||||
attributes:
|
||||
label: Comments
|
||||
description: >-
|
||||
Additional information, comments or screenshots about the code quality
|
||||
issue.
|
||||
11
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
11
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Documentation
|
||||
url: https://docs.invoiceshelf.com/
|
||||
about: App documentation.
|
||||
- name: Translation issue
|
||||
url: https://crowdin.com/project/invoiceshelf
|
||||
about: Help improve translations on Crowdin.
|
||||
- name: Question & Discussion
|
||||
url: https://discord.gg/hwg2FtwWHW
|
||||
about: Post your questions and join the discussion. You can participate in chats on every channel.
|
||||
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,17 +0,0 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
74
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
74
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
# Big thanks to https://github.com/files-community/Files/ for a template of the feature_request
|
||||
|
||||
name: Feature Request
|
||||
labels:
|
||||
- feature request
|
||||
- triage
|
||||
projects: ["InvoiceShelf/2"]
|
||||
assignees:
|
||||
- rihards-simanovics
|
||||
description: >-
|
||||
This project thrives from differentiation from competing apps. Suggest an idea
|
||||
for InvoiceShelf.
|
||||
body:
|
||||
# Tip to warn of checking for existing issues
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
> [!TIP]
|
||||
|
||||
>Have you checked for similar feature requests? There's a possibility
|
||||
your suggestion is already being tracked. Please do a thorough search
|
||||
before creating a new issue.
|
||||
|
||||
# Description
|
||||
- type: textarea
|
||||
id: what-feature
|
||||
attributes:
|
||||
label: What feature or improvement do you think would benefit InvoiceShelf?
|
||||
description: Please include your use case
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Tooltip about Requirements
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
---
|
||||
|
||||
|
||||
Please include a list changes required to make this improvement. A good
|
||||
rule of thumb is to start your proposal with no more than 7 high-level
|
||||
requirements.
|
||||
|
||||
# Requirements
|
||||
- type: textarea
|
||||
id: requirements
|
||||
attributes:
|
||||
label: Requirements
|
||||
description: Describe all the requirements to make your idea happen.
|
||||
value: |
|
||||
- This proposal will accomplish X
|
||||
- This proposal will accomplish Y
|
||||
- This proposal will accomplish Z
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# InvoiceShelf Version
|
||||
- type: input
|
||||
id: invoiceshelf_version
|
||||
attributes:
|
||||
label: App Version
|
||||
description: Which version of InvoiceShelf are you using?
|
||||
placeholder: v0.0.0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
# Additional Comments
|
||||
- type: textarea
|
||||
id: comments
|
||||
attributes:
|
||||
label: Comments
|
||||
description: >-
|
||||
Additional information, comments or screenshots about the feature
|
||||
request.
|
||||
4
.github/workflows/check.yaml
vendored
4
.github/workflows/check.yaml
vendored
@@ -7,11 +7,15 @@ on:
|
||||
- '**/*.md'
|
||||
- 'public/build/*.js'
|
||||
- 'public/build/**/*.js'
|
||||
branches-ignore:
|
||||
- 'translations'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'public/build/*.js'
|
||||
- 'public/build/**/*.js'
|
||||
branches-ignore:
|
||||
- 'translations'
|
||||
# Allow manually triggering the workflow.
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
27208
_ide_helper.php
27208
_ide_helper.php
File diff suppressed because it is too large
Load Diff
1629
_ide_helper_models.php
Normal file
1629
_ide_helper_models.php
Normal file
File diff suppressed because it is too large
Load Diff
@@ -2,8 +2,11 @@
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Space\PdfTemplateUtils;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class CreateTemplateCommand extends Command
|
||||
{
|
||||
@@ -37,26 +40,53 @@ class CreateTemplateCommand extends Command
|
||||
public function handle(): int
|
||||
{
|
||||
$templateName = $this->argument('name');
|
||||
$type = $this->option('type');
|
||||
$templateType = $this->option('type');
|
||||
|
||||
if (! $type) {
|
||||
$type = $this->choice('Create a template for?', ['invoice', 'estimate']);
|
||||
if (! $templateType) {
|
||||
$templateType = $this->choice('Create a template for?', ['invoice', 'estimate']);
|
||||
}
|
||||
|
||||
if (Storage::disk('views')->exists("/app/pdf/{$type}/{$templateName}.blade.php")) {
|
||||
if (PdfTemplateUtils::customTemplateFileExists($templateType, sprintf('%s.blade.php', $templateName))) {
|
||||
$this->info('Template with given name already exists.');
|
||||
|
||||
return 0;
|
||||
return self::INVALID;
|
||||
}
|
||||
|
||||
Storage::disk('views')->copy("/app/pdf/{$type}/{$type}1.blade.php", "/app/pdf/{$type}/{$templateName}.blade.php");
|
||||
copy(public_path("/build/img/PDF/{$type}1.png"), public_path("/build/img/PDF/{$templateName}.png"));
|
||||
copy(resource_path("/static/img/PDF/{$type}1.png"), resource_path("/static/img/PDF/{$templateName}.png"));
|
||||
if (! PdfTemplateUtils::toCustomTemplateMarkupFile(
|
||||
Str::replace(
|
||||
sprintf('app.pdf.%s', $templateType),
|
||||
sprintf('pdf_templates::%s', $templateType),
|
||||
Storage::disk('views')->get("/app/pdf/{$templateType}/{$templateType}1.blade.php"),
|
||||
),
|
||||
$templateType,
|
||||
$templateName
|
||||
)) {
|
||||
$this->error(sprintf('Unable to create %s template.', ucfirst($templateType)));
|
||||
|
||||
$path = resource_path("views/app/pdf/{$type}/{$templateName}.blade.php");
|
||||
$type = ucfirst($type);
|
||||
$this->info("{$type} Template created successfully at ".$path);
|
||||
return self::FAILURE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
PdfTemplateUtils::toCustomTemplateImageFile(
|
||||
File::get(resource_path("static/img/PDF/{$templateType}1.png")),
|
||||
$templateType,
|
||||
$templateName,
|
||||
);
|
||||
|
||||
if (! PdfTemplateUtils::customTemplateFileExists($templateType, 'partials/table.blade.php')) {
|
||||
PdfTemplateUtils::toCustomTemplateFile(
|
||||
Storage::disk('views')->get("/app/pdf/{$templateType}/partials/table.blade.php"),
|
||||
$templateType,
|
||||
'partials/table.blade.php'
|
||||
);
|
||||
}
|
||||
|
||||
$this->info(
|
||||
sprintf('%s Template created successfully at %s',
|
||||
ucfirst($templateType),
|
||||
PdfTemplateUtils::getCustomTemplateFilePath($templateType, sprintf('%s.blade.php', $templateName))
|
||||
)
|
||||
);
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ use Illuminate\Console\Command;
|
||||
use Illuminate\Console\ConfirmableTrait;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
use function Laravel\Prompts\confirm;
|
||||
|
||||
class ResetApp extends Command
|
||||
{
|
||||
use ConfirmableTrait;
|
||||
@@ -39,30 +41,49 @@ class ResetApp extends Command
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
/**
|
||||
* Execute the console command to reset the application.
|
||||
*
|
||||
* This will:
|
||||
* 1. Enable maintenance mode to prevent access during reset
|
||||
* 2. Fresh migrate the database with initial seeds
|
||||
* 3. Seed demo data using DemoSeeder
|
||||
* 4. Clear all application caches
|
||||
* 5. Disable maintenance mode
|
||||
*
|
||||
* The --force flag can be used to skip confirmation prompt.
|
||||
*/
|
||||
public function handle(): void
|
||||
{
|
||||
if (! $this->confirmToProceed()) {
|
||||
return;
|
||||
|
||||
if (! $this->option('force')) {
|
||||
if (! confirm('Are you sure you want to reset the application?')) {
|
||||
$this->components->error('Reset cancelled');
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$this->info('Running migrate:fresh');
|
||||
// Enable maintenance mode to prevent access during reset
|
||||
$this->info('Activating maintenance mode...');
|
||||
Artisan::call('down');
|
||||
|
||||
// Fresh migrate database and run initial seeds
|
||||
$this->info('Running migrate:fresh');
|
||||
Artisan::call('migrate:fresh --seed --force');
|
||||
|
||||
// Seed demo data
|
||||
$this->info('Seeding database');
|
||||
|
||||
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
|
||||
|
||||
$path = base_path('.env');
|
||||
// Clear all application caches
|
||||
$this->info('Clearing cache...');
|
||||
Artisan::call('optimize:clear');
|
||||
|
||||
if (file_exists($path)) {
|
||||
file_put_contents($path, str_replace(
|
||||
'APP_DEBUG=true',
|
||||
'APP_DEBUG=false',
|
||||
file_get_contents($path)
|
||||
));
|
||||
}
|
||||
// Disable maintenance mode
|
||||
$this->info('Deactivating maintenance mode...');
|
||||
Artisan::call('up');
|
||||
|
||||
$this->info('App has been reset successfully');
|
||||
$this->info('App reset completed successfully!');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ class BackupsController extends ApiController
|
||||
$this->authorize('manage backups');
|
||||
|
||||
$validated = $request->validate([
|
||||
'path' => ['required', new PathToZip()],
|
||||
'path' => ['required', new PathToZip],
|
||||
]);
|
||||
|
||||
$backupDestination = BackupDestination::create(config('filesystems.default'), config('backup.backup.name'));
|
||||
|
||||
@@ -18,7 +18,7 @@ class DownloadBackupController extends ApiController
|
||||
$this->authorize('manage backups');
|
||||
|
||||
$validated = $request->validate([
|
||||
'path' => ['required', new PathToZip()],
|
||||
'path' => ['required', new PathToZip],
|
||||
]);
|
||||
|
||||
$backupDestination = BackupDestination::create(config('filesystems.default'), config('backup.backup.name'));
|
||||
|
||||
@@ -24,7 +24,7 @@ class CloneEstimateController extends Controller
|
||||
|
||||
$date = Carbon::now();
|
||||
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel($estimate)
|
||||
->setCompany($estimate->company_id)
|
||||
->setCustomer($estimate->customer_id)
|
||||
|
||||
@@ -42,7 +42,7 @@ class ConvertEstimateController extends Controller
|
||||
$due_date = Carbon::now()->addDays($dueDateDays)->format('Y-m-d');
|
||||
}
|
||||
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel($invoice)
|
||||
->setCompany($estimate->company_id)
|
||||
->setCustomer($estimate->customer_id)
|
||||
|
||||
@@ -4,6 +4,8 @@ namespace App\Http\Controllers\V1\Admin\Estimate;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Estimate;
|
||||
use App\Space\PdfTemplateUtils;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class EstimateTemplatesController extends Controller
|
||||
@@ -11,13 +13,13 @@ class EstimateTemplatesController extends Controller
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$this->authorize('viewAny', Estimate::class);
|
||||
|
||||
$estimateTemplates = Estimate::estimateTemplates();
|
||||
$estimateTemplates = PdfTemplateUtils::getFormattedTemplates('estimate');
|
||||
|
||||
return response()->json([
|
||||
'estimateTemplates' => $estimateTemplates,
|
||||
|
||||
@@ -20,7 +20,7 @@ class NextNumberController extends Controller
|
||||
{
|
||||
$key = $request->key;
|
||||
$nextNumber = null;
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setCompany($request->header('company'))
|
||||
->setCustomer($request->userId);
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V1\Admin\General;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Space\TimeFormatter;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TimeFormatsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
return response()->json([
|
||||
'time_formats' => TimeFormatter::get_list(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ class CloneInvoiceController extends Controller
|
||||
|
||||
$date = Carbon::now();
|
||||
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel($invoice)
|
||||
->setCompany($invoice->company_id)
|
||||
->setCustomer($invoice->customer_id)
|
||||
@@ -46,6 +46,16 @@ class CloneInvoiceController extends Controller
|
||||
|
||||
$exchange_rate = $invoice->exchange_rate;
|
||||
|
||||
$dateFormat = 'Y-m-d';
|
||||
$invoiceTimeEnabled = CompanySetting::getSetting(
|
||||
'invoice_use_time',
|
||||
$request->header('company')
|
||||
);
|
||||
|
||||
if ($invoiceTimeEnabled === 'YES') {
|
||||
$dateFormat .= ' H:i';
|
||||
}
|
||||
|
||||
$newInvoice = Invoice::create([
|
||||
'invoice_date' => $date->format('Y-m-d'),
|
||||
'due_date' => $due_date,
|
||||
|
||||
@@ -4,6 +4,9 @@ namespace App\Http\Controllers\V1\Admin\Invoice;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Invoice;
|
||||
use App\Space\PdfTemplateUtils;
|
||||
use Illuminate\Auth\Access\AuthorizationException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class InvoiceTemplatesController extends Controller
|
||||
@@ -11,13 +14,16 @@ class InvoiceTemplatesController extends Controller
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*
|
||||
* @return JsonResponse
|
||||
*
|
||||
* @throws AuthorizationException
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$this->authorize('viewAny', Invoice::class);
|
||||
|
||||
$invoiceTemplates = Invoice::invoiceTemplates();
|
||||
$invoiceTemplates = PdfTemplateUtils::getFormattedTemplates('invoice');
|
||||
|
||||
return response()->json([
|
||||
'invoiceTemplates' => $invoiceTemplates,
|
||||
|
||||
@@ -21,12 +21,11 @@ class InvoicesController extends Controller
|
||||
{
|
||||
$this->authorize('viewAny', Invoice::class);
|
||||
|
||||
$limit = $request->has('limit') ? $request->limit : 10;
|
||||
$limit = $request->input('limit', 10);
|
||||
|
||||
$invoices = Invoice::whereCompany()
|
||||
->join('customers', 'customers.id', '=', 'invoices.customer_id')
|
||||
->applyFilters($request->all())
|
||||
->select('invoices.*', 'customers.name')
|
||||
->with('customer')
|
||||
->latest()
|
||||
->paginateData($limit);
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ class AppDomainController extends Controller
|
||||
{
|
||||
Artisan::call('optimize:clear');
|
||||
|
||||
$environmentManager = new EnvironmentManager();
|
||||
$environmentManager = new EnvironmentManager;
|
||||
|
||||
$results = $environmentManager->saveDomainVariables($request);
|
||||
|
||||
|
||||
@@ -38,6 +38,15 @@ class CompanySettingRequest extends FormRequest
|
||||
'carbon_date_format' => [
|
||||
'required',
|
||||
],
|
||||
'moment_time_format' => [
|
||||
'required',
|
||||
],
|
||||
'carbon_time_format' => [
|
||||
'required',
|
||||
],
|
||||
'invoice_use_time' => [
|
||||
'required',
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,8 +49,10 @@ class CustomerRequest extends FormRequest
|
||||
'prefix' => [
|
||||
'nullable',
|
||||
],
|
||||
'tax_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'enable_portal' => [
|
||||
|
||||
'boolean',
|
||||
],
|
||||
'currency_id' => [
|
||||
@@ -133,6 +135,7 @@ class CustomerRequest extends FormRequest
|
||||
'password',
|
||||
'phone',
|
||||
'prefix',
|
||||
'tax_id',
|
||||
'company_name',
|
||||
'contact_name',
|
||||
'website',
|
||||
|
||||
@@ -49,11 +49,10 @@ class InvoicesRequest extends FormRequest
|
||||
'required',
|
||||
],
|
||||
'sub_total' => [
|
||||
'integer',
|
||||
'numeric',
|
||||
'required',
|
||||
],
|
||||
'total' => [
|
||||
'integer',
|
||||
'numeric',
|
||||
'max:999999999999',
|
||||
'required',
|
||||
@@ -83,7 +82,7 @@ class InvoicesRequest extends FormRequest
|
||||
'required',
|
||||
],
|
||||
'items.*.price' => [
|
||||
'integer',
|
||||
'numeric',
|
||||
'required',
|
||||
],
|
||||
];
|
||||
@@ -112,7 +111,7 @@ class InvoicesRequest extends FormRequest
|
||||
return $rules;
|
||||
}
|
||||
|
||||
public function getInvoicePayload()
|
||||
public function getInvoicePayload(): array
|
||||
{
|
||||
$company_currency = CompanySetting::getSetting('currency', $this->header('company'));
|
||||
$current_currency = $this->currency_id;
|
||||
@@ -128,6 +127,8 @@ class InvoicesRequest extends FormRequest
|
||||
'tax_per_item' => CompanySetting::getSetting('tax_per_item', $this->header('company')) ?? 'NO ',
|
||||
'discount_per_item' => CompanySetting::getSetting('discount_per_item', $this->header('company')) ?? 'NO',
|
||||
'due_amount' => $this->total,
|
||||
'sent' => (bool) $this->sent ?? false,
|
||||
'viewed' => (bool) $this->viewed ?? false,
|
||||
'exchange_rate' => $exchange_rate,
|
||||
'base_total' => $this->total * $exchange_rate,
|
||||
'base_discount_val' => $this->discount_val * $exchange_rate,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use App\Models\CompanySetting;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class CustomFieldValueResource extends JsonResource
|
||||
@@ -48,11 +49,11 @@ class CustomFieldValueResource extends JsonResource
|
||||
}
|
||||
|
||||
if ($key == 'date_time_answer') {
|
||||
return $answer->format('Y-m-d H:i');
|
||||
return Carbon::parse($answer)->format('Y-m-d H:i');
|
||||
}
|
||||
|
||||
if ($key == 'date_answer') {
|
||||
return $answer->format(CompanySetting::getSetting('carbon_date_format', $this->company_id));
|
||||
return Carbon::parse($answer)->format(CompanySetting::getSetting('carbon_date_format', $this->company_id));
|
||||
}
|
||||
|
||||
return $answer;
|
||||
|
||||
@@ -30,6 +30,7 @@ class CustomerResource extends JsonResource
|
||||
'formatted_created_at' => $this->formattedCreatedAt,
|
||||
'avatar' => $this->avatar,
|
||||
'prefix' => $this->prefix,
|
||||
'tax_id' => $this->tax_id,
|
||||
'billing' => $this->when($this->billingAddress()->exists(), function () {
|
||||
return new AddressResource($this->billingAddress);
|
||||
}),
|
||||
|
||||
@@ -35,6 +35,7 @@ class CustomerResource extends JsonResource
|
||||
'due_amount' => $this->due_amount,
|
||||
'base_due_amount' => $this->base_due_amount,
|
||||
'prefix' => $this->prefix,
|
||||
'tax_id' => $this->tax_id,
|
||||
'billing' => $this->when($this->billingAddress()->exists(), function () {
|
||||
return new AddressResource($this->billingAddress);
|
||||
}),
|
||||
|
||||
@@ -227,6 +227,9 @@ class Company extends Model implements HasMedia
|
||||
'fiscal_year' => '1-12',
|
||||
'carbon_date_format' => 'Y/m/d',
|
||||
'moment_date_format' => 'YYYY/MM/DD',
|
||||
'carbon_time_format' => 'H:i',
|
||||
'moment_time_format' => 'HH:mm',
|
||||
'invoice_use_time' => 'NO',
|
||||
'notification_email' => 'noreply@invoiceshelf.com',
|
||||
'notify_invoice_viewed' => 'NO',
|
||||
'notify_estimate_viewed' => 'NO',
|
||||
|
||||
@@ -20,10 +20,10 @@ class EmailLog extends Model
|
||||
|
||||
public function isExpired()
|
||||
{
|
||||
$linkexpiryDays = CompanySetting::getSetting('link_expiry_days', $this->mailable()->get()->toArray()[0]['company_id']);
|
||||
$linkExpiryDays = (int) CompanySetting::getSetting('link_expiry_days', $this->mailable()->get()->toArray()[0]['company_id']);
|
||||
$checkExpiryLinks = CompanySetting::getSetting('automatically_expire_public_links', $this->mailable()->get()->toArray()[0]['company_id']);
|
||||
|
||||
$expiryDate = $this->created_at->addDays($linkexpiryDays);
|
||||
$expiryDate = $this->created_at->addDays($linkExpiryDays);
|
||||
|
||||
if ($checkExpiryLinks == 'YES' && Carbon::now()->format('Y-m-d') > $expiryDate->format('Y-m-d')) {
|
||||
return true;
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Models;
|
||||
use App;
|
||||
use App\Mail\SendEstimateMail;
|
||||
use App\Services\SerialNumberFormatter;
|
||||
use App\Space\PdfTemplateUtils;
|
||||
use App\Traits\GeneratesPdfTrait;
|
||||
use App\Traits\HasCustomFieldsTrait;
|
||||
use Barryvdh\DomPDF\Facade\Pdf as PDF;
|
||||
@@ -14,8 +15,6 @@ use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\Vite;
|
||||
use Illuminate\Support\Str;
|
||||
use Spatie\MediaLibrary\HasMedia;
|
||||
use Spatie\MediaLibrary\InteractsWithMedia;
|
||||
@@ -227,7 +226,7 @@ class Estimate extends Model implements HasMedia
|
||||
|
||||
$estimate = self::create($data);
|
||||
$estimate->unique_hash = Hashids::connection(Estimate::class)->encode($estimate->id);
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel($estimate)
|
||||
->setCompany($estimate->company_id)
|
||||
->setCustomer($estimate->customer_id)
|
||||
@@ -262,7 +261,7 @@ class Estimate extends Model implements HasMedia
|
||||
{
|
||||
$data = $request->getEstimatePayload();
|
||||
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel($this)
|
||||
->setCompany($this->company_id)
|
||||
->setCustomer($request->customer_id)
|
||||
@@ -424,11 +423,14 @@ class Estimate extends Model implements HasMedia
|
||||
'taxes' => $taxes,
|
||||
]);
|
||||
|
||||
$template = PdfTemplateUtils::findFormattedTemplate('estimate', $estimateTemplate, '');
|
||||
$templatePath = $template['custom'] ? sprintf('pdf_templates::estimate.%s', $estimateTemplate) : sprintf('app.pdf.estimate.%s', $estimateTemplate);
|
||||
|
||||
if (request()->has('preview')) {
|
||||
return view('app.pdf.estimate.'.$estimateTemplate);
|
||||
return view($templatePath);
|
||||
}
|
||||
|
||||
return PDF::loadView('app.pdf.estimate.'.$estimateTemplate);
|
||||
return PDF::loadView($templatePath);
|
||||
}
|
||||
|
||||
public function getCompanyAddress()
|
||||
@@ -499,27 +501,13 @@ class Estimate extends Model implements HasMedia
|
||||
];
|
||||
}
|
||||
|
||||
public static function estimateTemplates()
|
||||
{
|
||||
$templates = Storage::disk('views')->files('/app/pdf/estimate');
|
||||
$estimateTemplates = [];
|
||||
|
||||
foreach ($templates as $key => $template) {
|
||||
$templateName = Str::before(basename($template), '.blade.php');
|
||||
$estimateTemplates[$key]['name'] = $templateName;
|
||||
$estimateTemplates[$key]['path'] = Vite::asset('resources/static/img/PDF/'.$templateName.'.png');
|
||||
}
|
||||
|
||||
return $estimateTemplates;
|
||||
}
|
||||
|
||||
public function getInvoiceTemplateName()
|
||||
{
|
||||
$templateName = Str::replace('estimate', 'invoice', $this->template_name);
|
||||
|
||||
$name = [];
|
||||
|
||||
foreach (Invoice::invoiceTemplates() as $template) {
|
||||
foreach (PdfTemplateUtils::getFormattedTemplates('invoice') as $template) {
|
||||
$name[] = $template['name'];
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Models;
|
||||
use App;
|
||||
use App\Mail\SendInvoiceMail;
|
||||
use App\Services\SerialNumberFormatter;
|
||||
use App\Space\PdfTemplateUtils;
|
||||
use App\Traits\GeneratesPdfTrait;
|
||||
use App\Traits\HasCustomFieldsTrait;
|
||||
use Barryvdh\DomPDF\Facade\Pdf as PDF;
|
||||
@@ -14,9 +15,6 @@ use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\Vite;
|
||||
use Illuminate\Support\Str;
|
||||
use Nwidart\Modules\Facades\Module;
|
||||
use Spatie\MediaLibrary\HasMedia;
|
||||
use Spatie\MediaLibrary\InteractsWithMedia;
|
||||
@@ -195,6 +193,12 @@ class Invoice extends Model implements HasMedia
|
||||
public function getFormattedInvoiceDateAttribute($value)
|
||||
{
|
||||
$dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id);
|
||||
$timeFormat = CompanySetting::getSetting('carbon_time_format', $this->company_id);
|
||||
$invoiceTimeEnabled = CompanySetting::getSetting('invoice_use_time', $this->company_id);
|
||||
|
||||
if ($invoiceTimeEnabled === 'YES') {
|
||||
$dateFormat .= ' '.$timeFormat;
|
||||
}
|
||||
|
||||
return Carbon::parse($this->invoice_date)->translatedFormat($dateFormat);
|
||||
}
|
||||
@@ -248,53 +252,34 @@ class Invoice extends Model implements HasMedia
|
||||
|
||||
public function scopeApplyFilters($query, array $filters)
|
||||
{
|
||||
$filters = collect($filters);
|
||||
$filters = collect($filters)->filter()->all();
|
||||
|
||||
if ($filters->get('search')) {
|
||||
$query->whereSearch($filters->get('search'));
|
||||
}
|
||||
|
||||
if ($filters->get('status')) {
|
||||
if (
|
||||
$filters->get('status') == self::STATUS_UNPAID ||
|
||||
$filters->get('status') == self::STATUS_PARTIALLY_PAID ||
|
||||
$filters->get('status') == self::STATUS_PAID
|
||||
) {
|
||||
$query->wherePaidStatus($filters->get('status'));
|
||||
} elseif ($filters->get('status') == 'DUE') {
|
||||
$query->whereDueStatus($filters->get('status'));
|
||||
} else {
|
||||
$query->whereStatus($filters->get('status'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($filters->get('paid_status')) {
|
||||
$query->wherePaidStatus($filters->get('status'));
|
||||
}
|
||||
|
||||
if ($filters->get('invoice_id')) {
|
||||
$query->whereInvoice($filters->get('invoice_id'));
|
||||
}
|
||||
|
||||
if ($filters->get('invoice_number')) {
|
||||
$query->whereInvoiceNumber($filters->get('invoice_number'));
|
||||
}
|
||||
|
||||
if ($filters->get('from_date') && $filters->get('to_date')) {
|
||||
$start = Carbon::createFromFormat('Y-m-d', $filters->get('from_date'));
|
||||
$end = Carbon::createFromFormat('Y-m-d', $filters->get('to_date'));
|
||||
return $query->when($filters['search'] ?? null, function ($query, $search) {
|
||||
$query->whereSearch($search);
|
||||
})->when($filters['status'] ?? null, function ($query, $status) {
|
||||
match ($status) {
|
||||
self::STATUS_UNPAID, self::STATUS_PARTIALLY_PAID, self::STATUS_PAID => $query->wherePaidStatus($status),
|
||||
'DUE' => $query->whereDueStatus($status),
|
||||
default => $query->whereStatus($status),
|
||||
};
|
||||
})->when($filters['paid_status'] ?? null, function ($query, $paidStatus) {
|
||||
$query->wherePaidStatus($paidStatus);
|
||||
})->when($filters['invoice_id'] ?? null, function ($query, $invoiceId) {
|
||||
$query->whereInvoice($invoiceId);
|
||||
})->when($filters['invoice_number'] ?? null, function ($query, $invoiceNumber) {
|
||||
$query->whereInvoiceNumber($invoiceNumber);
|
||||
})->when(($filters['from_date'] ?? null) && ($filters['to_date'] ?? null), function ($query) use ($filters) {
|
||||
$start = Carbon::parse($filters['from_date']);
|
||||
$end = Carbon::parse($filters['to_date']);
|
||||
$query->invoicesBetween($start, $end);
|
||||
}
|
||||
|
||||
if ($filters->get('customer_id')) {
|
||||
$query->whereCustomer($filters->get('customer_id'));
|
||||
}
|
||||
|
||||
if ($filters->get('orderByField') || $filters->get('orderBy')) {
|
||||
$field = $filters->get('orderByField') ? $filters->get('orderByField') : 'sequence_number';
|
||||
$orderBy = $filters->get('orderBy') ? $filters->get('orderBy') : 'desc';
|
||||
$query->whereOrder($field, $orderBy);
|
||||
}
|
||||
})->when($filters['customer_id'] ?? null, function ($query, $customerId) {
|
||||
$query->where('customer_id', $customerId);
|
||||
})->when($filters['orderByField'] ?? null, function ($query, $orderByField) use ($filters) {
|
||||
$orderBy = $filters['orderBy'] ?? 'desc';
|
||||
$query->orderBy($orderByField, $orderBy);
|
||||
}, function ($query) {
|
||||
$query->orderBy('sequence_number', 'desc');
|
||||
});
|
||||
}
|
||||
|
||||
public function scopeWhereInvoice($query, $invoice_id)
|
||||
@@ -336,7 +321,7 @@ class Invoice extends Model implements HasMedia
|
||||
|
||||
$invoice = Invoice::create($data);
|
||||
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel($invoice)
|
||||
->setCompany($invoice->company_id)
|
||||
->setCustomer($invoice->customer_id)
|
||||
@@ -377,7 +362,7 @@ class Invoice extends Model implements HasMedia
|
||||
|
||||
public function updateInvoice($request)
|
||||
{
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel($this)
|
||||
->setCompany($this->company_id)
|
||||
->setCustomer($request->customer_id)
|
||||
@@ -393,7 +378,7 @@ class Invoice extends Model implements HasMedia
|
||||
return 'customer_cannot_be_changed_after_payment_is_added';
|
||||
}
|
||||
|
||||
if ($request->total < $total_paid_amount) {
|
||||
if ($request->total >= 0 && $request->total < $total_paid_amount) {
|
||||
return 'total_invoice_amount_must_be_more_than_paid_amount';
|
||||
}
|
||||
|
||||
@@ -595,11 +580,14 @@ class Invoice extends Model implements HasMedia
|
||||
'taxes' => $taxes,
|
||||
]);
|
||||
|
||||
$template = PdfTemplateUtils::findFormattedTemplate('invoice', $invoiceTemplate, '');
|
||||
$templatePath = $template['custom'] ? sprintf('pdf_templates::invoice.%s', $invoiceTemplate) : sprintf('app.pdf.invoice.%s', $invoiceTemplate);
|
||||
|
||||
if (request()->has('preview')) {
|
||||
return view('app.pdf.invoice.'.$invoiceTemplate);
|
||||
return view($templatePath);
|
||||
}
|
||||
|
||||
return PDF::loadView('app.pdf.invoice.'.$invoiceTemplate);
|
||||
return PDF::loadView($templatePath);
|
||||
}
|
||||
|
||||
public function getEmailAttachmentSetting()
|
||||
@@ -670,20 +658,6 @@ class Invoice extends Model implements HasMedia
|
||||
];
|
||||
}
|
||||
|
||||
public static function invoiceTemplates()
|
||||
{
|
||||
$templates = Storage::disk('views')->files('/app/pdf/invoice');
|
||||
$invoiceTemplates = [];
|
||||
|
||||
foreach ($templates as $key => $template) {
|
||||
$templateName = Str::before(basename($template), '.blade.php');
|
||||
$invoiceTemplates[$key]['name'] = $templateName;
|
||||
$invoiceTemplates[$key]['path'] = Vite::asset('resources/static/img/PDF/'.$templateName.'.png');
|
||||
}
|
||||
|
||||
return $invoiceTemplates;
|
||||
}
|
||||
|
||||
public function addInvoicePayment($amount)
|
||||
{
|
||||
$this->due_amount += $amount;
|
||||
|
||||
@@ -163,7 +163,7 @@ class Payment extends Model implements HasMedia
|
||||
$payment = Payment::create($data);
|
||||
$payment->unique_hash = Hashids::connection(Payment::class)->encode($payment->id);
|
||||
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel($payment)
|
||||
->setCompany($payment->company_id)
|
||||
->setCustomer($payment->customer_id)
|
||||
@@ -215,7 +215,7 @@ class Payment extends Model implements HasMedia
|
||||
$invoice->subtractInvoicePayment($request->amount);
|
||||
}
|
||||
|
||||
$serial = (new SerialNumberFormatter())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel($this)
|
||||
->setCompany($this->company_id)
|
||||
->setCustomer($request->customer_id)
|
||||
@@ -452,8 +452,8 @@ class Payment extends Model implements HasMedia
|
||||
{
|
||||
$invoice = Invoice::find($transaction->invoice_id);
|
||||
|
||||
$serial = (new SerialNumberFormatter())
|
||||
->setModel(new Payment())
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel(new Payment)
|
||||
->setCompany($invoice->company_id)
|
||||
->setCustomer($invoice->customer_id)
|
||||
->setNextNumbers();
|
||||
|
||||
@@ -307,9 +307,9 @@ class RecurringInvoice extends Model
|
||||
|
||||
public function createInvoice()
|
||||
{
|
||||
//get invoice_number
|
||||
$serial = (new SerialNumberFormatter())
|
||||
->setModel(new Invoice())
|
||||
// get invoice_number
|
||||
$serial = (new SerialNumberFormatter)
|
||||
->setModel(new Invoice)
|
||||
->setCompany($this->company_id)
|
||||
->setCustomer($this->customer_id)
|
||||
->setNextNumbers();
|
||||
@@ -375,7 +375,7 @@ class RecurringInvoice extends Model
|
||||
$invoice->addCustomFields($customField);
|
||||
}
|
||||
|
||||
//send automatically
|
||||
// send automatically
|
||||
if ($this->send_automatically == true) {
|
||||
$data = [
|
||||
'body' => CompanySetting::getSetting('invoice_mail_body', $this->company_id),
|
||||
|
||||
@@ -22,7 +22,7 @@ class Setting extends Model
|
||||
return;
|
||||
}
|
||||
|
||||
$set = new Setting();
|
||||
$set = new Setting;
|
||||
$set->option = $key;
|
||||
$set->value = $setting;
|
||||
$set->save();
|
||||
|
||||
@@ -65,10 +65,10 @@ class Transaction extends Model
|
||||
|
||||
public function isExpired()
|
||||
{
|
||||
$linkexpiryDays = CompanySetting::getSetting('link_expiry_days', $this->company_id);
|
||||
$linkExpiryDays = (int) CompanySetting::getSetting('link_expiry_days', $this->company_id);
|
||||
$checkExpiryLinks = CompanySetting::getSetting('automatically_expire_public_links', $this->company_id);
|
||||
|
||||
$expiryDate = $this->updated_at->addDays($linkexpiryDays);
|
||||
$expiryDate = $this->updated_at->addDays($linkExpiryDays);
|
||||
|
||||
if ($checkExpiryLinks == 'YES' && $this->status == self::SUCCESS && Carbon::now()->format('Y-m-d') > $expiryDate->format('Y-m-d')) {
|
||||
return true;
|
||||
|
||||
@@ -40,7 +40,7 @@ class CustomerMailResetPasswordNotification extends ResetPassword
|
||||
{
|
||||
$link = url("/{$notifiable->company->slug}/customer/reset/password/".$this->token);
|
||||
|
||||
return (new MailMessage())
|
||||
return (new MailMessage)
|
||||
->subject('Reset Password Notification')
|
||||
->line('Hello! You are receiving this email because we received a password reset request for your account.')
|
||||
->action('Reset Password', $link)
|
||||
|
||||
@@ -40,7 +40,7 @@ class MailResetPasswordNotification extends ResetPassword
|
||||
{
|
||||
$link = url('/reset-password/'.$this->token);
|
||||
|
||||
return (new MailMessage())
|
||||
return (new MailMessage)
|
||||
->subject('Reset Password Notification')
|
||||
->line('Hello! You are receiving this email because we received a password reset request for your account.')
|
||||
->action('Reset Password', $link)
|
||||
|
||||
@@ -25,6 +25,7 @@ use Illuminate\Support\Facades\Broadcast;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Silber\Bouncer\Database\Models as BouncerModels;
|
||||
use Silber\Bouncer\Database\Role;
|
||||
use View;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
@@ -58,8 +59,16 @@ class AppServiceProvider extends ServiceProvider
|
||||
|
||||
Gate::policy(Role::class, RolePolicy::class);
|
||||
|
||||
View::addNamespace('pdf_templates', storage_path('app/templates/pdf'));
|
||||
|
||||
$this->bootAuth();
|
||||
$this->bootBroadcast();
|
||||
|
||||
// In demo mode, prevent all outgoing emails and notifications
|
||||
if (config('app.env') === 'demo') {
|
||||
\Illuminate\Support\Facades\Mail::fake();
|
||||
\Illuminate\Support\Facades\Notification::fake();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -72,14 +81,14 @@ class AppServiceProvider extends ServiceProvider
|
||||
|
||||
public function addMenus()
|
||||
{
|
||||
//main menu
|
||||
// main menu
|
||||
\Menu::make('main_menu', function ($menu) {
|
||||
foreach (config('invoiceshelf.main_menu') as $data) {
|
||||
$this->generateMenu($menu, $data);
|
||||
}
|
||||
});
|
||||
|
||||
//setting menu
|
||||
// setting menu
|
||||
\Menu::make('setting_menu', function ($menu) {
|
||||
foreach (config('invoiceshelf.setting_menu') as $data) {
|
||||
$this->generateMenu($menu, $data);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Rules\Backup;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
|
||||
class BackupDisk implements ValidationRule
|
||||
@@ -18,8 +19,6 @@ class BackupDisk implements ValidationRule
|
||||
|
||||
/**
|
||||
* Run the validation rule.
|
||||
*
|
||||
* @param \Closure $fail
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
||||
@@ -36,7 +36,7 @@ class Module
|
||||
{
|
||||
static::$scripts[$name] = $path;
|
||||
|
||||
return new static();
|
||||
return new static;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -50,7 +50,7 @@ class Module
|
||||
{
|
||||
static::$styles[$name] = $path;
|
||||
|
||||
return new static();
|
||||
return new static;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -153,7 +153,7 @@ class ModuleInstaller
|
||||
File::makeDirectory($temp_extract_dir);
|
||||
}
|
||||
// Unzip the file
|
||||
$zip = new ZipArchive();
|
||||
$zip = new ZipArchive;
|
||||
|
||||
if ($zip->open($zip_file_path)) {
|
||||
$zip->extractTo($temp_extract_dir);
|
||||
|
||||
140
app/Space/PdfTemplateUtils.php
Normal file
140
app/Space/PdfTemplateUtils.php
Normal file
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
|
||||
namespace App\Space;
|
||||
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class PdfTemplateUtils
|
||||
{
|
||||
/**
|
||||
* Find the formatted template
|
||||
*
|
||||
* @param string $imageFormat
|
||||
* @return array|null
|
||||
*/
|
||||
public static function findFormattedTemplate($templateType, $templateName, $imageFormat = 'base64')
|
||||
{
|
||||
foreach (array_reverse(self::getFormattedTemplates($templateType, $imageFormat)) as $formattedTemplate) {
|
||||
if ($formattedTemplate['name'] === $templateName) {
|
||||
return $formattedTemplate;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the available formatted template paths
|
||||
*
|
||||
* @param string $imageFormat
|
||||
* @return array|array[]
|
||||
*/
|
||||
public static function getFormattedTemplates($templateType, $imageFormat = 'base64')
|
||||
{
|
||||
|
||||
$files_native = array_map(function ($file) {
|
||||
return [
|
||||
'path' => $file,
|
||||
'custom' => false,
|
||||
];
|
||||
}, Storage::disk('views')->files(sprintf('/app/pdf/%s', $templateType)));
|
||||
|
||||
$files_custom = array_map(function ($file) {
|
||||
return [
|
||||
'path' => $file,
|
||||
'custom' => true,
|
||||
];
|
||||
}, Storage::disk('pdf_templates')->files(sprintf('/%s', $templateType)));
|
||||
|
||||
$files = array_merge($files_native, $files_custom);
|
||||
$files = array_filter($files, function ($file) {
|
||||
return Str::endsWith($file['path'], '.blade.php');
|
||||
});
|
||||
|
||||
return array_map(function ($file) use ($templateType, $imageFormat) {
|
||||
$templateName = Str::before(basename($file['path']), '.blade.php');
|
||||
|
||||
if ($file['custom']) {
|
||||
$imagePath = self::getCustomTemplateFilePath($templateType, sprintf('%s.png', $templateName));
|
||||
$isCustomTemplate = true;
|
||||
} else {
|
||||
$imagePath = resource_path('static/img/PDF/'.$templateName.'.png');
|
||||
$isCustomTemplate = false;
|
||||
}
|
||||
|
||||
if (empty($imageFormat)) {
|
||||
$imageValue = '';
|
||||
} elseif ($imageFormat == 'path') {
|
||||
$imageValue = $imagePath;
|
||||
} else {
|
||||
$imageValue = File::exists($imagePath) ? ImageUtils::toBase64Src($imagePath) : '';
|
||||
}
|
||||
|
||||
return [
|
||||
'name' => $templateName,
|
||||
'path' => $imageValue,
|
||||
'custom' => $isCustomTemplate,
|
||||
];
|
||||
}, $files);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns custom template path
|
||||
*
|
||||
* @param string $fileName
|
||||
*/
|
||||
public static function getCustomTemplateFilePath($templateType, $fileName = ''): string
|
||||
{
|
||||
$path = ! empty($fileName) ? sprintf('/%s/%s', $templateType, $fileName) : sprintf('/%s/', $templateType);
|
||||
|
||||
return Storage::disk('pdf_templates')->path($path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if custom template exists.
|
||||
*
|
||||
* @param $templateName
|
||||
* @return string
|
||||
*/
|
||||
public static function customTemplateFileExists($templateType, $fileName)
|
||||
{
|
||||
return Storage::disk('pdf_templates')->exists(sprintf('/%s/%s', $templateType, $fileName));
|
||||
}
|
||||
|
||||
/**
|
||||
* Save template markup file
|
||||
*
|
||||
* @return bool|string
|
||||
*/
|
||||
public static function toCustomTemplateMarkupFile($contents, $templateType, $templateName)
|
||||
{
|
||||
return self::toCustomTemplateFile($contents, $templateType, $templateName.'.blade.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Save template image file
|
||||
*
|
||||
*
|
||||
* @return bool|string
|
||||
*/
|
||||
public static function toCustomTemplateImageFile($contents, $templateType, $templateName, $imageType = 'png')
|
||||
{
|
||||
return self::toCustomTemplateFile($contents, $templateType, $templateName.'.'.$imageType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save file contents into a template file of specific template type.
|
||||
*
|
||||
*
|
||||
* @return bool|string
|
||||
*/
|
||||
public static function toCustomTemplateFile($contents, $templateType, $fileName)
|
||||
{
|
||||
return Storage::disk('pdf_templates')->put(
|
||||
sprintf('/%s/%s', $templateType, $fileName),
|
||||
$contents
|
||||
);
|
||||
}
|
||||
}
|
||||
34
app/Space/TimeFormatter.php
Normal file
34
app/Space/TimeFormatter.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Space;
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
class TimeFormatter
|
||||
{
|
||||
protected static $formats = [
|
||||
[
|
||||
'carbon_format' => 'H:i',
|
||||
'moment_format' => 'HH:mm',
|
||||
],
|
||||
[
|
||||
'carbon_format' => 'g:i a',
|
||||
'moment_format' => 'h:mm a',
|
||||
],
|
||||
];
|
||||
|
||||
public static function get_list()
|
||||
{
|
||||
$new = [];
|
||||
|
||||
foreach (static::$formats as $format) {
|
||||
$new[] = [
|
||||
'display_time' => Carbon::now()->format($format['carbon_format']),
|
||||
'carbon_format_value' => $format['carbon_format'],
|
||||
'moment_format_value' => $format['moment_format'],
|
||||
];
|
||||
}
|
||||
|
||||
return $new;
|
||||
}
|
||||
}
|
||||
@@ -93,7 +93,7 @@ class Updater
|
||||
File::makeDirectory($temp_extract_dir);
|
||||
}
|
||||
// Unzip the file
|
||||
$zip = new ZipArchive();
|
||||
$zip = new ZipArchive;
|
||||
|
||||
if ($zip->open($zip_file_path)) {
|
||||
$zip->extractTo($temp_extract_dir);
|
||||
|
||||
@@ -111,9 +111,9 @@ trait GeneratesPdfTrait
|
||||
public function getFieldsArray()
|
||||
{
|
||||
$customer = $this->customer;
|
||||
$shippingAddress = $customer->shippingAddress ?? new Address();
|
||||
$billingAddress = $customer->billingAddress ?? new Address();
|
||||
$companyAddress = $this->company->address ?? new Address();
|
||||
$shippingAddress = $customer->shippingAddress ?? new Address;
|
||||
$billingAddress = $customer->billingAddress ?? new Address;
|
||||
$companyAddress = $this->company->address ?? new Address;
|
||||
|
||||
$fields = [
|
||||
'{SHIPPING_ADDRESS_NAME}' => $shippingAddress->name,
|
||||
@@ -140,11 +140,14 @@ trait GeneratesPdfTrait
|
||||
'{COMPANY_ADDRESS_STREET_2}' => $companyAddress->address_street_2,
|
||||
'{COMPANY_PHONE}' => $companyAddress->phone,
|
||||
'{COMPANY_ZIP_CODE}' => $companyAddress->zip,
|
||||
'{COMPANY_VAT}' => $this->company->vat_id,
|
||||
'{COMPANY_TAX}' => $this->company->tax_id,
|
||||
'{CONTACT_DISPLAY_NAME}' => $customer->name,
|
||||
'{PRIMARY_CONTACT_NAME}' => $customer->contact_name,
|
||||
'{CONTACT_EMAIL}' => $customer->email,
|
||||
'{CONTACT_PHONE}' => $customer->phone,
|
||||
'{CONTACT_WEBSITE}' => $customer->website,
|
||||
'{CONTACT_TAX_ID}' => __('pdf_tax_id').': '.$customer->tax_id,
|
||||
];
|
||||
|
||||
$customFields = $this->fields;
|
||||
|
||||
@@ -67,6 +67,7 @@ return Application::configure(basePath: dirname(__DIR__))
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
\Illuminate\Auth\Middleware\Authorize::class,
|
||||
]);
|
||||
|
||||
})
|
||||
->withExceptions(function (Exceptions $exceptions) {
|
||||
//
|
||||
|
||||
@@ -9,25 +9,25 @@
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": "^8.2",
|
||||
"aws/aws-sdk-php": "^3.297",
|
||||
"barryvdh/laravel-dompdf": "^2.1",
|
||||
"doctrine/dbal": "^4.0",
|
||||
"dragonmantank/cron-expression": "^3.3",
|
||||
"guzzlehttp/guzzle": "^7.2",
|
||||
"aws/aws-sdk-php": "^3.336",
|
||||
"barryvdh/laravel-dompdf": "^v3.0",
|
||||
"doctrine/dbal": "^4.2",
|
||||
"dragonmantank/cron-expression": "^v3.4",
|
||||
"guzzlehttp/guzzle": "^7.9",
|
||||
"invoiceshelf/modules": "^1.0.0",
|
||||
"jasonmccreary/laravel-test-assertions": "^2.4",
|
||||
"laravel/framework": "^11.3",
|
||||
"jasonmccreary/laravel-test-assertions": "^v2.4",
|
||||
"laravel/framework": "^11.31",
|
||||
"laravel/helpers": "^1.7",
|
||||
"laravel/sanctum": "^4.0",
|
||||
"laravel/tinker": "^2.9",
|
||||
"laravel/ui": "^4.4",
|
||||
"laravel/ui": "^4.6",
|
||||
"lavary/laravel-menu": "^1.8",
|
||||
"league/flysystem-aws-s3-v3": "^3.23",
|
||||
"predis/predis": "^2.2",
|
||||
"league/flysystem-aws-s3-v3": "^3.29",
|
||||
"predis/predis": "^2.3",
|
||||
"silber/bouncer": "v1.0.2",
|
||||
"spatie/flysystem-dropbox": "^3.0",
|
||||
"spatie/laravel-backup": "^8.6",
|
||||
"spatie/laravel-medialibrary": "^11.3",
|
||||
"spatie/laravel-backup": "^8.8",
|
||||
"spatie/laravel-medialibrary": "^11.11",
|
||||
"vinkla/hashids": "^12.0"
|
||||
},
|
||||
"require-dev": {
|
||||
@@ -35,14 +35,14 @@
|
||||
"laravel/pint": "^1.13",
|
||||
"laravel/sail": "^1.26",
|
||||
"mockery/mockery": "^1.6",
|
||||
"nunomaduro/collision": "^8.0",
|
||||
"phpunit/phpunit": "^10.5",
|
||||
"spatie/laravel-ignition": "^2.4",
|
||||
"barryvdh/laravel-ide-helper": "^3.0",
|
||||
"beyondcode/laravel-dump-server": "^2.0",
|
||||
"pestphp/pest": "^2.33",
|
||||
"pestphp/pest-plugin-faker": "^2.0",
|
||||
"pestphp/pest-plugin-laravel": "^2.2"
|
||||
"nunomaduro/collision": "^8.1",
|
||||
"phpunit/phpunit": "^11.0.1",
|
||||
"spatie/laravel-ignition": "^2.9",
|
||||
"barryvdh/laravel-ide-helper": "^3.5",
|
||||
"beyondcode/laravel-dump-server": "^2.0.0",
|
||||
"pestphp/pest": "^3.7",
|
||||
"pestphp/pest-plugin-faker": "^3.0",
|
||||
"pestphp/pest-plugin-laravel": "^3.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
||||
3211
composer.lock
generated
3211
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -119,7 +119,7 @@ return [
|
||||
* If pdflib present in web server and auto or selected explicitly above,
|
||||
* a real license code must exist!
|
||||
*/
|
||||
//"DOMPDF_PDFLIB_LICENSE" => "your license key here",
|
||||
// "DOMPDF_PDFLIB_LICENSE" => "your license key here",
|
||||
|
||||
/**
|
||||
* html target media view which should be rendered into pdf.
|
||||
|
||||
@@ -55,6 +55,11 @@ return [
|
||||
'driver' => 'local',
|
||||
'root' => resource_path('views'),
|
||||
],
|
||||
|
||||
'pdf_templates' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app/templates/pdf'),
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
@@ -136,7 +136,7 @@ return [
|
||||
'-m 6', // for the slowest compression method in order to get the best compression.
|
||||
'-pass 10', // for maximizing the amount of analysis pass.
|
||||
'-mt', // multithreading for some speed improvements.
|
||||
'-q 90', //quality factor that brings the least noticeable changes.
|
||||
'-q 90', // quality factor that brings the least noticeable changes.
|
||||
],
|
||||
Spatie\ImageOptimizer\Optimizers\Avifenc::class => [
|
||||
'-a cq-level=23', // constant quality level, lower values mean better quality and greater file size (0-63).
|
||||
|
||||
@@ -39,8 +39,8 @@ return [
|
||||
'resources/sass/module' => 'Resources/sass/module.scss',
|
||||
'resources/scripts/stores/sample-store' => 'Resources/scripts/stores/sample-store.js',
|
||||
'resources/scripts/views/SamplePage' => 'Resources/scripts/views/SamplePage.vue',
|
||||
'lang/en' => 'Lang/en.json',
|
||||
'lang/locales' => 'Lang/locales.js',
|
||||
'resources/locales/en' => 'Resources/locales/en.json',
|
||||
'resources/locales/locales' => 'Resources/locales/locales.js',
|
||||
'package' => 'package.json',
|
||||
'postcss.config' => 'postcss.config.js',
|
||||
'tailwind.config' => 'tailwind.config.js',
|
||||
@@ -63,8 +63,8 @@ return [
|
||||
'MODULE_NAMESPACE',
|
||||
'PROVIDER_NAMESPACE',
|
||||
],
|
||||
'assets/scripts/module' => ['LOWER_NAME'],
|
||||
'assets/scripts/stores/sample-store' => ['LOWER_NAME'],
|
||||
'resources/scripts/module' => ['LOWER_NAME'],
|
||||
'resources/scripts/stores/sample-store' => ['LOWER_NAME'],
|
||||
'vite.config' => ['LOWER_NAME'],
|
||||
],
|
||||
'gitkeep' => true,
|
||||
|
||||
@@ -68,8 +68,8 @@ class EstimateFactory extends Factory
|
||||
*/
|
||||
public function definition(): array
|
||||
{
|
||||
$sequenceNumber = (new SerialNumberFormatter())
|
||||
->setModel(new Estimate())
|
||||
$sequenceNumber = (new SerialNumberFormatter)
|
||||
->setModel(new Estimate)
|
||||
->setCompany(User::find(1)->companies()->first()->id)
|
||||
->setNextNumbers();
|
||||
|
||||
|
||||
@@ -78,8 +78,8 @@ class InvoiceFactory extends Factory
|
||||
*/
|
||||
public function definition(): array
|
||||
{
|
||||
$sequenceNumber = (new SerialNumberFormatter())
|
||||
->setModel(new Invoice())
|
||||
$sequenceNumber = (new SerialNumberFormatter)
|
||||
->setModel(new Invoice)
|
||||
->setCompany(User::find(1)->companies()->first()->id)
|
||||
->setNextNumbers();
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@ class PaymentFactory extends Factory
|
||||
*/
|
||||
public function definition(): array
|
||||
{
|
||||
$sequenceNumber = (new SerialNumberFormatter())
|
||||
->setModel(new Payment())
|
||||
$sequenceNumber = (new SerialNumberFormatter)
|
||||
->setModel(new Payment)
|
||||
->setCompany(User::find(1)->companies()->first()->id)
|
||||
->setNextNumbers();
|
||||
|
||||
|
||||
@@ -24,7 +24,5 @@ class AddUserIdToExpensesTable extends Migration
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
}
|
||||
public function down() {}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class() extends Migration
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('invoices', function (Blueprint $table) {
|
||||
$table->datetime('invoice_date')->change();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('invoices', function (Blueprint $table) {
|
||||
$table->date('invoice_date')->change();
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('customers', function (Blueprint $table) {
|
||||
$table->string('tax_id')->nullable()->after('github_id');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('customers', function (Blueprint $table) {
|
||||
$table->dropColumn('tax_id');
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
||||
Schema::table('invoices', function (Blueprint $table) {
|
||||
$table->bigInteger('discount_val')->nullable()->change();
|
||||
$table->bigInteger('sub_total')->change();
|
||||
$table->bigInteger('total')->change();
|
||||
$table->bigInteger('tax')->change();
|
||||
$table->bigInteger('due_amount')->change();
|
||||
$table->bigInteger('base_discount_val')->nullable()->change();
|
||||
$table->bigInteger('base_sub_total')->nullable()->change();
|
||||
$table->bigInteger('base_total')->nullable()->change();
|
||||
$table->bigInteger('base_tax')->nullable()->change();
|
||||
$table->bigInteger('base_due_amount')->nullable()->change();
|
||||
});
|
||||
|
||||
Schema::table('invoice_items', function (Blueprint $table) {
|
||||
$table->bigInteger('discount_val')->change();
|
||||
$table->bigInteger('tax')->change();
|
||||
$table->bigInteger('total')->change();
|
||||
$table->bigInteger('base_discount_val')->nullable()->change();
|
||||
$table->bigInteger('base_tax')->nullable()->change();
|
||||
$table->bigInteger('base_total')->nullable()->change();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
|
||||
Schema::table('invoices', function (Blueprint $table) {
|
||||
$table->unsignedBigInteger('discount_val')->nullable()->change();
|
||||
$table->unsignedBigInteger('sub_total')->change();
|
||||
$table->unsignedBigInteger('total')->change();
|
||||
$table->unsignedBigInteger('due_amount')->change();
|
||||
$table->unsignedBigInteger('base_discount_val')->nullable()->change();
|
||||
$table->unsignedBigInteger('base_sub_total')->nullable()->change();
|
||||
$table->unsignedBigInteger('base_total')->nullable()->change();
|
||||
$table->unsignedBigInteger('base_tax')->nullable()->change();
|
||||
$table->unsignedBigInteger('base_due_amount')->nullable()->change();
|
||||
});
|
||||
|
||||
Schema::table('invoice_items', function (Blueprint $table) {
|
||||
$table->unsignedBigInteger('discount_val')->change();
|
||||
$table->unsignedBigInteger('tax')->change();
|
||||
$table->unsignedBigInteger('total')->change();
|
||||
$table->unsignedBigInteger('base_discount_val')->nullable()->change();
|
||||
$table->unsignedBigInteger('base_tax')->nullable()->change();
|
||||
$table->unsignedBigInteger('base_total')->nullable()->change();
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -487,8 +487,8 @@ class CurrenciesTableSeeder extends Seeder
|
||||
[
|
||||
'name' => 'Tunisian Dinar',
|
||||
'code' => 'TND',
|
||||
'symbol' => 'د.ت',
|
||||
'precision' => '2',
|
||||
'symbol' => 'DT',
|
||||
'precision' => '3',
|
||||
'thousand_separator' => ',',
|
||||
'decimal_separator' => '.',
|
||||
],
|
||||
|
||||
@@ -2,11 +2,15 @@
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Address;
|
||||
use App\Models\Company;
|
||||
use App\Models\CompanySetting;
|
||||
use App\Models\Customer;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use App\Space\InstallUtils;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Silber\Bouncer\BouncerFacade;
|
||||
use Vinkla\Hashids\Facades\Hashids;
|
||||
|
||||
class DemoSeeder extends Seeder
|
||||
{
|
||||
@@ -15,14 +19,60 @@ class DemoSeeder extends Seeder
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$user = User::whereIs('super admin')->first();
|
||||
// Create demo user
|
||||
$user = User::factory()->create([
|
||||
'email' => 'demo@invoiceshelf.com',
|
||||
'name' => 'Demo User',
|
||||
'role' => 'super admin',
|
||||
'password' => 'demo',
|
||||
]);
|
||||
|
||||
$user->setSettings(['language' => 'en']);
|
||||
// Create demo company
|
||||
$company = Company::factory()->create([
|
||||
'name' => 'Demo Company',
|
||||
'owner_id' => $user->id,
|
||||
'slug' => 'demo-company',
|
||||
]);
|
||||
|
||||
Address::create(['company_id' => $user->companies()->first()->id, 'country_id' => 1]);
|
||||
$company->unique_hash = Hashids::connection(Company::class)->encode($company->id);
|
||||
$company->save();
|
||||
$company->setupDefaultData();
|
||||
$user->companies()->attach($company->id);
|
||||
BouncerFacade::scope()->to($company->id);
|
||||
|
||||
$user->assign('super admin');
|
||||
|
||||
// Set default user settings
|
||||
$user->setSettings([
|
||||
'language' => 'en',
|
||||
'timezone' => 'UTC',
|
||||
'date_format' => 'DD-MM-YYYY',
|
||||
'currency_id' => 1, // USD
|
||||
]);
|
||||
|
||||
// Set company settings
|
||||
CompanySetting::setSettings([
|
||||
'currency' => 1,
|
||||
'date_format' => 'DD-MM-YYYY',
|
||||
'language' => 'en',
|
||||
'timezone' => 'UTC',
|
||||
'fiscal_year' => 'calendar_year',
|
||||
'tax_per_item' => false,
|
||||
'discount_per_item' => false,
|
||||
'invoice_prefix' => 'INV-',
|
||||
'estimate_prefix' => 'EST-',
|
||||
'payment_prefix' => 'PAY-',
|
||||
], $company->id);
|
||||
|
||||
// Create demo customers
|
||||
Customer::factory()->count(5)->create([
|
||||
'company_id' => $company->id,
|
||||
]);
|
||||
|
||||
// Mark profile setup as complete
|
||||
Setting::setSetting('profile_complete', 'COMPLETED');
|
||||
|
||||
// Create installation marker
|
||||
InstallUtils::createDbMarker();
|
||||
}
|
||||
}
|
||||
|
||||
62
lang/ar.json
62
lang/ar.json
@@ -4,7 +4,7 @@
|
||||
"customers": "العملاء",
|
||||
"items": "بضائع/خدمات",
|
||||
"invoices": "الفواتير",
|
||||
"recurring-invoices": "Recurring Invoices",
|
||||
"recurring-invoices": "الفواتير المتكررة",
|
||||
"expenses": "النفقات",
|
||||
"estimates": "التقديرات",
|
||||
"payments": "الدفوعات",
|
||||
@@ -12,7 +12,7 @@
|
||||
"settings": "الإعدادات",
|
||||
"logout": "تسجيل الخروج",
|
||||
"users": "المستخدمون",
|
||||
"modules": "Modules"
|
||||
"modules": "الوَحَدات"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "أضف شركة",
|
||||
@@ -29,9 +29,9 @@
|
||||
"to_date": "إلى تاريخ",
|
||||
"from": "من",
|
||||
"to": "إلى",
|
||||
"ok": "Ok",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"ok": "تم",
|
||||
"yes": "نعم",
|
||||
"no": "لا",
|
||||
"sort_by": "ترتيب حسب",
|
||||
"ascending": "تصاعدي",
|
||||
"descending": "تنازلي",
|
||||
@@ -96,27 +96,27 @@
|
||||
"copied_url_clipboard": "Copied url to clipboard!",
|
||||
"docs": "Docs",
|
||||
"do_you_wish_to_continue": "Do you wish to continue?",
|
||||
"note": "Note",
|
||||
"pay_invoice": "Pay Invoice",
|
||||
"login_successfully": "Logged in successfully!",
|
||||
"logged_out_successfully": "Logged out successfully",
|
||||
"note": "ملاحظة",
|
||||
"pay_invoice": "دفع الفاتورة",
|
||||
"login_successfully": "تم تسجيل الدخول بنجاح!",
|
||||
"logged_out_successfully": "تم تسجيل الخروج بنجاح",
|
||||
"mark_as_default": "Mark as default",
|
||||
"no_data_found": "No data found",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"to": "إلى",
|
||||
"of": "من",
|
||||
"results": "النتائج"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
"drag_a_file": "اسحب ملف هنا أو",
|
||||
"browse": "تصفح",
|
||||
"to_choose": "لاختيار ملف"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"the_list_is_empty": "القائمة فارغة",
|
||||
"no_results_found": "No results found"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
@@ -172,16 +172,16 @@
|
||||
"company_switcher": {
|
||||
"label": "SWITCH COMPANY",
|
||||
"no_results_found": "No Results Found",
|
||||
"add_new_company": "Add new company",
|
||||
"new_company": "New company",
|
||||
"add_new_company": "أضف شركة جديدة",
|
||||
"new_company": "شركة جديدة",
|
||||
"created_message": "Company created successfully"
|
||||
},
|
||||
"dateRange": {
|
||||
"today": "Today",
|
||||
"this_week": "This Week",
|
||||
"this_month": "This Month",
|
||||
"today": "اليوم",
|
||||
"this_week": "هذا الأسبوع",
|
||||
"this_month": "هذا الشهر",
|
||||
"this_quarter": "This Quarter",
|
||||
"this_year": "This Year",
|
||||
"this_year": "هذا العام",
|
||||
"previous_week": "Previous Week",
|
||||
"previous_month": "Previous Month",
|
||||
"previous_quarter": "Previous Quarter",
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "العملاء",
|
||||
"prefix": "Prefix",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "إضافة عميل",
|
||||
"contacts_list": "قائمة العملاء",
|
||||
"name": "الاسم",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "تسجيل مدفوات",
|
||||
"add_estimate": "إضافة تقدير",
|
||||
"save_estimate": "حفظ التقدير",
|
||||
"cloned_successfully": "تم استنساخ العرض بنجاح",
|
||||
"clone_estimate": "استنساخ العرض",
|
||||
"confirm_clone": "سيتم استنساخ هذا العرض إلى عرض جديد",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "هل تريد تحويل هذا التقدير إلى فاتورة؟",
|
||||
"conversion_message": "تم إنشاء الفاتورة بنجاح",
|
||||
"confirm_send_estimate": "سيتم إرسال هذا التقدير بالبريد الإلكتروني إلى العميل",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "العملة الرئيسية",
|
||||
"timezone": "المنطقة الزمنية",
|
||||
"date_format": "صيغة التاريخ",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "العملات",
|
||||
"currency": "العملة | العملات",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "المنطة الزمنية",
|
||||
"fiscal_year": "السنة المالية",
|
||||
"date_format": "صيغة التاريخ",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "إعدادات الخصم",
|
||||
"discount_per_item": "خصم على الصنف ",
|
||||
"discount_setting_description": "قم بتمكين هذا إذا كنت تريد إضافة خصم إلى عناصر الفاتورة الفردية. بشكل افتراضي ، يتم إضافة الخصم مباشرة إلى الفاتورة.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "اختر اللغة",
|
||||
"select_time_zone": "اختر المنطة الزمنية",
|
||||
"select_date_format": "اختر صيغة التاريخ",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "اختر السنة المالية",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "المنطة الزمنية",
|
||||
"fiscal_year": "السنة المالية",
|
||||
"date_format": "صيغة التاريخ",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "من العنوان",
|
||||
"username": "اسم المستخدم",
|
||||
"next": "التالي",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
12
lang/bg.json
12
lang/bg.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Customers",
|
||||
"prefix": "Prefix",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Add Customer",
|
||||
"contacts_list": "Customer List",
|
||||
"name": "Name",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primary Currency",
|
||||
"timezone": "Time Zone",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Currencies",
|
||||
"currency": "Currency | Currencies",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Select Language",
|
||||
"select_time_zone": "Select Time Zone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "From Address",
|
||||
"username": "Username",
|
||||
"next": "Next",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
178
lang/cs.json
178
lang/cs.json
@@ -101,25 +101,25 @@
|
||||
"login_successfully": "Přihlášení proběhlo úspěšně!",
|
||||
"logged_out_successfully": "Odhlášení proběhlo úspěšně",
|
||||
"mark_as_default": "Označit jako výchozí",
|
||||
"no_data_found": "No data found",
|
||||
"no_data_found": "Data nenalezena",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "Předchozí",
|
||||
"next": "Další",
|
||||
"showing": "Zobrazeno",
|
||||
"to": "až",
|
||||
"of": "z",
|
||||
"results": "výsledků"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
"drag_a_file": "Sem přetáhněte soubor nebo",
|
||||
"browse": "procházet",
|
||||
"to_choose": "pro výběr souboru"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"the_list_is_empty": "Seznam je prázdný",
|
||||
"no_results_found": "Nebyly nalezeny žádné výsledky"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "Kopírovat do schránky"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Vybrat rok",
|
||||
@@ -190,7 +190,8 @@
|
||||
},
|
||||
"customers": {
|
||||
"title": "Zákazníci",
|
||||
"prefix": "Prefix",
|
||||
"prefix": "Předpona",
|
||||
"tax_id": "DIČ",
|
||||
"add_customer": "Přidat zákazníka",
|
||||
"contacts_list": "Seznam zákazníků",
|
||||
"name": "Jméno",
|
||||
@@ -200,7 +201,7 @@
|
||||
"primary_contact_name": "Jméno primárního kontaktu",
|
||||
"contact_name": "Jméno kontaktu",
|
||||
"amount_due": "Částka k zaplacení",
|
||||
"email": "Email",
|
||||
"email": "E-mail",
|
||||
"address": "Adresa",
|
||||
"phone": "Telefon",
|
||||
"website": "Webová stránka",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Zaznamenat platbu",
|
||||
"add_estimate": "Přidat nabídku",
|
||||
"save_estimate": "Uložit nabídku",
|
||||
"cloned_successfully": "Devis úspěšně zkopírován",
|
||||
"clone_estimate": "Klonovat devis",
|
||||
"confirm_clone": "Tento devis bude zkopírován do nového devisu",
|
||||
"cloned_successfully": "Odhad úspěšně naklonován",
|
||||
"clone_estimate": "Klonovat odhad",
|
||||
"confirm_clone": "Tento odhad bude klonován do nového odhadu",
|
||||
"confirm_conversion": "Tento odhad bude použit k vytvoření nové faktury.",
|
||||
"conversion_message": "Faktura byla úspěšně vytvořena",
|
||||
"confirm_send_estimate": "Tento odhad bude zaslán e-mailem zákazníkovi",
|
||||
@@ -564,24 +565,24 @@
|
||||
"type_item_description": "Zadejte popis položky (volitelné)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Četnost",
|
||||
"title": "Frekvence (pomocí formátu cron)",
|
||||
"select_frequency": "Vybrat četnost",
|
||||
"minute": "Minuta",
|
||||
"hour": "Hodina",
|
||||
"day_month": "Den v měsíci",
|
||||
"month": "Měsíc",
|
||||
"day_week": "Den v týdnu",
|
||||
"every_minute": "Every Minute",
|
||||
"every_30_minute": "Every 30 Minute",
|
||||
"every_hour": "Every Hour",
|
||||
"every_2_hour": "Every 2 Hour",
|
||||
"every_day_at_midnight": "Every day at midnight",
|
||||
"every_week": "Every Week",
|
||||
"every_15_days_at_midnight": "Every 15 days at midnight",
|
||||
"on_the_first_day_of_every_month_at_midnight": "On the first day of every month at 00:00",
|
||||
"every_6_month": "Every 6 Month",
|
||||
"every_year_on_the_first_day_of_january_at_midnight": "Every year on the first day of january at 00:00",
|
||||
"custom": "Custom"
|
||||
"every_minute": "Každou minutu",
|
||||
"every_30_minute": "Každých 30 minut",
|
||||
"every_hour": "Každou hodinu",
|
||||
"every_2_hour": "Každé 2 hodiny",
|
||||
"every_day_at_midnight": "Každý den o půlnoci",
|
||||
"every_week": "Každý týden",
|
||||
"every_15_days_at_midnight": "Každých 15 dní o půlnoci",
|
||||
"on_the_first_day_of_every_month_at_midnight": "První den každého měsíce ve 00:00",
|
||||
"every_6_month": "Každých 6 měsíců",
|
||||
"every_year_on_the_first_day_of_january_at_midnight": "Každý rok první den v lednu v 00:00",
|
||||
"custom": "Vlastní"
|
||||
},
|
||||
"confirm_delete": "Nebudete moci obnovit tuto fakturu | Nebudete moci obnovit tyto faktury",
|
||||
"created_message": "Opakující se faktura byla úspěšně vytvořena",
|
||||
@@ -592,9 +593,9 @@
|
||||
"something_went_wrong": "něco se nezdařilo",
|
||||
"invalid_due_amount_message": "Celková částka opakované faktury nemůže být nižší než celková částka zaplacená za tuto opakující se fakturu. Pro pokračování aktualizujte fakturu nebo odstraňte související platby.",
|
||||
"limit": {
|
||||
"none": "None",
|
||||
"date": "Date",
|
||||
"count": "Count"
|
||||
"none": "Žádné",
|
||||
"date": "Datum",
|
||||
"count": "Počet"
|
||||
}
|
||||
},
|
||||
"payments": {
|
||||
@@ -634,7 +635,7 @@
|
||||
"updated_message": "Platba úspěšně upravena",
|
||||
"deleted_message": "Platba úspěšně odstraněna | Platby úspěšně odstraněny",
|
||||
"invalid_amount_message": "Částka platby je neplatná",
|
||||
"amount_due": "Due Amount"
|
||||
"amount_due": "Částka k úhradě"
|
||||
},
|
||||
"expenses": {
|
||||
"title": "Výdaje",
|
||||
@@ -722,7 +723,7 @@
|
||||
"module_updated": "Modul byl úspěšně aktualizován!",
|
||||
"title": "Moduly",
|
||||
"module": "Modul | Moduly",
|
||||
"api_token": "API token",
|
||||
"api_token": "API Token",
|
||||
"invalid_api_token": "Neplatný API token.",
|
||||
"other_modules": "Další moduly",
|
||||
"view_all": "Zobrazit vše",
|
||||
@@ -740,7 +741,7 @@
|
||||
"no_modules_installed": "Nejsou nainstalovány žádné moduly!",
|
||||
"disable_warning": "Všechna nastavení pro tuto konkrétní položku budou vrácena zpět.",
|
||||
"what_you_get": "Co získáte",
|
||||
"sign_up_and_get_token": "Sign up & Get Token"
|
||||
"sign_up_and_get_token": "Zaregistrujte se a získejte Token"
|
||||
},
|
||||
"users": {
|
||||
"title": "Uživatelé",
|
||||
@@ -794,8 +795,8 @@
|
||||
"from_date": "Od data",
|
||||
"report_type": "Typ hlášení",
|
||||
"sort": {
|
||||
"by_customer": "By Customer",
|
||||
"by_item": "By Item"
|
||||
"by_customer": "Podle zákazníka",
|
||||
"by_item": "Podle položky"
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primární měna",
|
||||
"timezone": "Časová zóna",
|
||||
"date_format": "Formát data",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Měny",
|
||||
"currency": "Měna | Měny",
|
||||
@@ -886,11 +888,11 @@
|
||||
"port": "Port e-mailu",
|
||||
"driver": "Ovladač e-mailů",
|
||||
"secret": "Tajný klíč",
|
||||
"mailgun_secret": "Mailgun Secret",
|
||||
"mailgun_secret": "Mailgun tajný klíč (secret)",
|
||||
"mailgun_domain": "Doména",
|
||||
"mailgun_endpoint": "Mailgun Endpoint",
|
||||
"ses_secret": "SES Secret",
|
||||
"ses_key": "SES Key",
|
||||
"ses_secret": "SES tajný klíč (secret)",
|
||||
"ses_key": "Klíč SES",
|
||||
"password": "E-mailové heslo",
|
||||
"username": "Uživatelské jméno pro e-mail",
|
||||
"mail_config": "Konfigurace e-mailu",
|
||||
@@ -907,8 +909,8 @@
|
||||
"company_info": {
|
||||
"company_info": "Údaje o společnosti",
|
||||
"company_name": "Název společnosti",
|
||||
"tax_id": "Tax Identification Number",
|
||||
"vat_id": "VAT Identification Number",
|
||||
"tax_id": "Daňové identifikační číslo",
|
||||
"vat_id": "Daňové identifikační číslo",
|
||||
"company_logo": "Logo společnosti",
|
||||
"section_description": "Informace o vaší společnosti, která bude zobrazena na fakturách, odhadech a dalších dokladech vytvořených v InvoiceShelfu.",
|
||||
"phone": "Telefon",
|
||||
@@ -940,7 +942,7 @@
|
||||
"placeholder": "Zástupný text",
|
||||
"help_text": "Text nápovědy",
|
||||
"default_value": "Výchozí hodnota",
|
||||
"prefix": "Prefix",
|
||||
"prefix": "Předpona",
|
||||
"starting_number": "Počáteční číslo",
|
||||
"model": "Model",
|
||||
"help_text_description": "Zadejte nějaký text, který pomůže uživatelům pochopit účel tohoto vlastního pole.",
|
||||
@@ -966,11 +968,11 @@
|
||||
"model_in_use": "Nelze aktualizovat model pro pole, která jsou již používána.",
|
||||
"type_in_use": "Nelze aktualizovat typ pro pole, která jsou již používána.",
|
||||
"model_type": {
|
||||
"customer": "Customer",
|
||||
"invoice": "Invoice",
|
||||
"estimate": "Estimate",
|
||||
"expense": "Expense",
|
||||
"payment": "Payment"
|
||||
"customer": "Zákazník",
|
||||
"invoice": "Faktura",
|
||||
"estimate": "Odhad",
|
||||
"expense": "Výdaj",
|
||||
"payment": "Platba"
|
||||
}
|
||||
},
|
||||
"customization": {
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Jeden znak pro určení hranice mezi 2 samostatnými komponentami. Ve výchozím nastavení je nastaveno na -",
|
||||
"delimiter_param_label": "Hodnota oddělovače",
|
||||
"date_format": "Formát data",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "Pole pro formát místní data a času. Výchozí formát: 'Y' vykresluje aktuální rok.",
|
||||
"date_format_param_label": "Formát",
|
||||
"sequence": "Sekvence",
|
||||
@@ -1094,9 +1097,9 @@
|
||||
"already_in_use": "Poznámka je již používána",
|
||||
"deleted_message": "Poznámka byla úspěšně smazána",
|
||||
"types": {
|
||||
"estimate": "Estimate",
|
||||
"invoice": "Invoice",
|
||||
"payment": "Payment"
|
||||
"estimate": "Odhad",
|
||||
"invoice": "Faktura",
|
||||
"payment": "Platba"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Časové pásmo",
|
||||
"fiscal_year": "Fiskální rok",
|
||||
"date_format": "Formát data",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Nastavení slev",
|
||||
"discount_per_item": "Sleva za položku ",
|
||||
"discount_setting_description": "Povolte tuto možnost, pokud chcete přidat slevu do jednotlivých položek faktury. Ve výchozím nastavení je sleva přidána přímo na fakturu.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Vyberte jazyk",
|
||||
"select_time_zone": "Vyberte časové pásmo",
|
||||
"select_date_format": "Vyberte formát data",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Vyberte fiskální rok",
|
||||
"recurring_invoice_status": "Stav opakující se faktury",
|
||||
"create_status": "Vytvořit stav",
|
||||
@@ -1253,26 +1258,28 @@
|
||||
"update_status": "Upravit stav",
|
||||
"completed": "Dokončeno",
|
||||
"company_currency_unchangeable": "Měnu společnosti nelze měnit",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
"march_february": "March - February",
|
||||
"april_march": "April - March",
|
||||
"may_april": "May - April",
|
||||
"june_may": "June - May",
|
||||
"july_june": "July - June",
|
||||
"august_july": "August - July",
|
||||
"september_august": "September - August",
|
||||
"october_september": "October - September",
|
||||
"november_october": "November - October",
|
||||
"december_november": "December - November"
|
||||
"january_december": "Leden - Prosinec",
|
||||
"february_january": "Únor - Leden",
|
||||
"march_february": "Březen - Únor",
|
||||
"april_march": "Duben - Březen",
|
||||
"may_april": "Květen - Duben",
|
||||
"june_may": "Červen - Květen",
|
||||
"july_june": "Červenec - Červen",
|
||||
"august_july": "Srpen - Červenec",
|
||||
"september_august": "Září - Srpen",
|
||||
"october_september": "Říjen - Září",
|
||||
"november_october": "Listopad - Říjen",
|
||||
"december_november": "Prosinec - Listopad"
|
||||
}
|
||||
},
|
||||
"update_app": {
|
||||
"title": "Aktualizace aplikace",
|
||||
"description": "Kliknutím na tlačítko níže můžete jednoduše aktualizovat InvoiceShelf",
|
||||
"check_update": "Zkontrolovat aktualizace",
|
||||
"insider_consent": "Opt-in for Insider releases. Recommended for testing purposes only.",
|
||||
"insider_consent": "Přihlaste se k odběru novinek Insider. Doporučujeme pouze pro testovací účely.",
|
||||
"avail_update": "K dispozici je nová aktualizace",
|
||||
"next_version": "Další verze",
|
||||
"requirements": "Požadavky",
|
||||
@@ -1341,7 +1348,7 @@
|
||||
"aws_bucket": "AWS Bucket",
|
||||
"aws_root": "AWS Root",
|
||||
"s3_endpoint": "S3 Endpoint",
|
||||
"s3_key": "S3 Key",
|
||||
"s3_key": "S3 klíč",
|
||||
"s3_secret": "S3 Secret",
|
||||
"s3_region": "S3 Region",
|
||||
"s3_bucket": "S3 Bucket",
|
||||
@@ -1421,14 +1428,15 @@
|
||||
"time_zone": "Časové pásmo",
|
||||
"fiscal_year": "Fiskální rok",
|
||||
"date_format": "Formát data",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Z adresy",
|
||||
"username": "Uživatelské jméno",
|
||||
"next": "Další",
|
||||
"continue": "Pokračovat",
|
||||
"skip": "Přeskočit",
|
||||
"install_language": {
|
||||
"title": "Choose your language",
|
||||
"description": "Select language wizard to install InvoiceShelf"
|
||||
"title": "Vyberte svůj jazyk",
|
||||
"description": "Vyberte jazyk průvodce pro instalaci InvoiceShelf"
|
||||
},
|
||||
"database": {
|
||||
"database": "URL webu a databáze",
|
||||
@@ -1441,7 +1449,7 @@
|
||||
"username": "Uživatelské jméno k databázi",
|
||||
"db_name": "Název databáze",
|
||||
"db_path": "Cesta k databázi",
|
||||
"overwrite": "Overwrite existing database and proceed",
|
||||
"overwrite": "Přepsat existující databázi a pokračovat",
|
||||
"desc": "Vytvořte databázi na svém serveru a nastavte přihlašovací údaje pomocí níže uvedeného formuláře."
|
||||
},
|
||||
"permissions": {
|
||||
@@ -1459,11 +1467,11 @@
|
||||
"failed": "Ověření domény se nezdařilo. Zadejte prosím platný název domény.",
|
||||
"verify_and_continue": "Ověřit a pokračovat",
|
||||
"notes": {
|
||||
"notes": "Notes:",
|
||||
"not_contain": "App domain should not contain",
|
||||
"or": "or",
|
||||
"in_front": "in front of the domain.",
|
||||
"if_you": "If you're accessing the website on a different port, please mention the port. For example:"
|
||||
"notes": "Poznámky:",
|
||||
"not_contain": "Doména aplikace by neměla obsahovat",
|
||||
"or": "nebo",
|
||||
"in_front": "před doménou.",
|
||||
"if_you": "Pokud přistupujete k webu na jiném portu, uveďte prosím i port. Například:"
|
||||
}
|
||||
},
|
||||
"mail": {
|
||||
@@ -1614,15 +1622,17 @@
|
||||
"pdf_ship_to": "Příjemce",
|
||||
"pdf_received_from": "Přijato od:",
|
||||
"pdf_tax_label": "Daň",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_tax_id": "DIČ",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
"mail_view_invoice": "View Invoice",
|
||||
"mail_viewed_invoice": ":name viewed this Invoice.",
|
||||
"mail_view_payment": "View Payment",
|
||||
"notification_view_estimate": "[Notification] Estimate viewed",
|
||||
"notification_view_invoice": "[Notification] Invoice viewed",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:"
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Díky",
|
||||
"mail_view_estimate": "Zobrazit odhad",
|
||||
"mail_viewed_estimate": ":name si prohlédl tento odhad.",
|
||||
"mail_view_invoice": "Zobrazit fakturu",
|
||||
"mail_viewed_invoice": ":name si prohlédl tuto fakturu.",
|
||||
"mail_view_payment": "Zobrazit platbu",
|
||||
"notification_view_estimate": "[Notifikace] Zobrazený odhad",
|
||||
"notification_view_invoice": "[Notifikace] Zobrazená faktura",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "Obdrželi jste novou fakturu od <b>{COMPANY_NAME}</b>.</br> Stáhněte si pomocí tlačítka níže:"
|
||||
}
|
||||
|
||||
160
lang/de.json
160
lang/de.json
@@ -101,25 +101,25 @@
|
||||
"login_successfully": "Erfolgreich angemeldet!",
|
||||
"logged_out_successfully": "Erfolgreich abgemeldet",
|
||||
"mark_as_default": "Als Standard festlegen",
|
||||
"no_data_found": "No data found",
|
||||
"no_data_found": "Keine Daten gefunden",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "Zurück",
|
||||
"next": "Weiter",
|
||||
"showing": "Zeigt an",
|
||||
"to": "bis",
|
||||
"of": "von",
|
||||
"results": "Ergebnisse"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
"drag_a_file": "Ziehe eine Datei hierher oder",
|
||||
"browse": "durchsuchen",
|
||||
"to_choose": "um eine Datei auszuwählen"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"the_list_is_empty": "Die Liste ist leer",
|
||||
"no_results_found": "Keine Ergebnisse gefunden"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "In die Zwischenablage kopieren"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Jahr wählen",
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Kunden",
|
||||
"prefix": "Präfix",
|
||||
"tax_id": "USt-ID",
|
||||
"add_customer": "Kunde hinzufügen",
|
||||
"contacts_list": "Kunden-Liste",
|
||||
"name": "Name",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Zahlung erfassen",
|
||||
"add_estimate": "Angebote hinzufügen",
|
||||
"save_estimate": "Angebot speichern",
|
||||
"cloned_successfully": "Angebot erfolgreich geklont",
|
||||
"clone_estimate": "Angebot klonen",
|
||||
"confirm_clone": "Dieses Angebot wird in ein neues Angebot kopiert",
|
||||
"cloned_successfully": "Angebot erfolgreich kopiert",
|
||||
"clone_estimate": "Angebot kopieren",
|
||||
"confirm_clone": "Dieses Angebot wird als neues Angebot kopiert",
|
||||
"confirm_conversion": "Dieses Angebot wird verwendet, um eine neue Rechnung zu erstellen.",
|
||||
"conversion_message": "Rechnung erfolgreich erstellt",
|
||||
"confirm_send_estimate": "Das Angebot wird per E-Mail an den Kunden gesendet",
|
||||
@@ -564,24 +565,24 @@
|
||||
"type_item_description": "Artikel-Beschreibung (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Intervall",
|
||||
"title": "Frequenz (mit cron-Format)",
|
||||
"select_frequency": "Intervall auswählen",
|
||||
"minute": "Minute",
|
||||
"hour": "Stunde",
|
||||
"day_month": "Tag des Monats",
|
||||
"month": "Monat",
|
||||
"day_week": "Tag der Woche",
|
||||
"every_minute": "Every Minute",
|
||||
"every_30_minute": "Every 30 Minute",
|
||||
"every_hour": "Every Hour",
|
||||
"every_2_hour": "Every 2 Hour",
|
||||
"every_day_at_midnight": "Every day at midnight",
|
||||
"every_week": "Every Week",
|
||||
"every_15_days_at_midnight": "Every 15 days at midnight",
|
||||
"on_the_first_day_of_every_month_at_midnight": "On the first day of every month at 00:00",
|
||||
"every_6_month": "Every 6 Month",
|
||||
"every_year_on_the_first_day_of_january_at_midnight": "Every year on the first day of january at 00:00",
|
||||
"custom": "Custom"
|
||||
"every_minute": "Minütlich",
|
||||
"every_30_minute": "Alle 30 Minuten",
|
||||
"every_hour": "Stündlich",
|
||||
"every_2_hour": "Alle 2 Stunden",
|
||||
"every_day_at_midnight": "Jeden Tag um Mitternacht",
|
||||
"every_week": "Wöchentlich",
|
||||
"every_15_days_at_midnight": "Alle 15 Tage um Mitternacht",
|
||||
"on_the_first_day_of_every_month_at_midnight": "Am ersten Tag jeden Monats um 00:00 Uhr",
|
||||
"every_6_month": "Alle 6 Monate",
|
||||
"every_year_on_the_first_day_of_january_at_midnight": "Jedes Jahr am ersten Tag des Januar um 00:00 Uhr",
|
||||
"custom": "Benutzerdefiniert"
|
||||
},
|
||||
"confirm_delete": "Sie werden diese Rechnung nicht wiederherstellen können | Sie werden nicht in der Lage sein, diese Rechnungen wiederherzustellen",
|
||||
"created_message": "Serienrechnung erfolgreich erstellt",
|
||||
@@ -592,9 +593,9 @@
|
||||
"something_went_wrong": "etwas ist schief gelaufen",
|
||||
"invalid_due_amount_message": "Der Gesamtbetrag der Serienrechnung darf nicht kleiner als der bezahlte Gesamtbetrag für diese Serienrechnung sein. Bitte aktualisieren Sie die Rechnung oder löschen Sie die zugehörigen Zahlungen, um fortzufahren.",
|
||||
"limit": {
|
||||
"none": "None",
|
||||
"date": "Date",
|
||||
"count": "Count"
|
||||
"none": "Keine",
|
||||
"date": "Datum",
|
||||
"count": "Anzahl"
|
||||
}
|
||||
},
|
||||
"payments": {
|
||||
@@ -634,7 +635,7 @@
|
||||
"updated_message": "Zahlung erfolgreich aktualisiert",
|
||||
"deleted_message": "Zahlung erfolgreich gelöscht | Zahlungen erfolgreich gelöscht",
|
||||
"invalid_amount_message": "Zahlungsbetrag ist ungültig",
|
||||
"amount_due": "Due Amount"
|
||||
"amount_due": "Fälliger Betrag"
|
||||
},
|
||||
"expenses": {
|
||||
"title": "Ausgaben",
|
||||
@@ -740,7 +741,7 @@
|
||||
"no_modules_installed": "Noch keine Module installiert!",
|
||||
"disable_warning": "Alle Einstellungen für diesen speziellen Wert werden zurückgesetzt.",
|
||||
"what_you_get": "Was Sie erhalten",
|
||||
"sign_up_and_get_token": "Sign up & Get Token"
|
||||
"sign_up_and_get_token": "Registrieren & Token erhalten"
|
||||
},
|
||||
"users": {
|
||||
"title": "Benutzer",
|
||||
@@ -794,8 +795,8 @@
|
||||
"from_date": "Ab Datum",
|
||||
"report_type": "Berichtstyp",
|
||||
"sort": {
|
||||
"by_customer": "By Customer",
|
||||
"by_item": "By Item"
|
||||
"by_customer": "Vom Kunden",
|
||||
"by_item": "Nach Artikel"
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primäre Währung",
|
||||
"timezone": "Zeitzone",
|
||||
"date_format": "Datum-Format",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Währungen",
|
||||
"currency": "Währung | Währungen",
|
||||
@@ -966,11 +968,11 @@
|
||||
"model_in_use": "Das Modell kann für bereits verwendete Felder nicht aktualisiert werden.",
|
||||
"type_in_use": "Der Typ von bereits verwendeten Feldern kann nicht aktualisiert werden.",
|
||||
"model_type": {
|
||||
"customer": "Customer",
|
||||
"invoice": "Invoice",
|
||||
"estimate": "Estimate",
|
||||
"expense": "Expense",
|
||||
"payment": "Payment"
|
||||
"customer": "Kunde",
|
||||
"invoice": "Rechnung",
|
||||
"estimate": "Angebot",
|
||||
"expense": "Ausgabe",
|
||||
"payment": "Zahlung"
|
||||
}
|
||||
},
|
||||
"customization": {
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Einzelnes Zeichen für die Verwendung zwischen zwei separaten Komponenten. Standardmäßig ist dies -",
|
||||
"delimiter_param_label": "Trennzeichen",
|
||||
"date_format": "Datumsformat",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "Ein lokales Datums- und Zeitfeld, das einen Format-Parameter akzeptiert. Das Standardformat: 'Y' stellt das aktuelle Jahr dar.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Fortlaufende Nummer",
|
||||
@@ -1094,9 +1097,9 @@
|
||||
"already_in_use": "Hinweis bereits in verwendet",
|
||||
"deleted_message": "Notiz erfolgreich gelöscht",
|
||||
"types": {
|
||||
"estimate": "Estimate",
|
||||
"invoice": "Invoice",
|
||||
"payment": "Payment"
|
||||
"estimate": "Angebot",
|
||||
"invoice": "Rechnung",
|
||||
"payment": "Zahlung"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1171,8 +1174,8 @@
|
||||
"default_currency_error": "Diese Währung wird bereits in einem der aktiven Anbieter verwendet",
|
||||
"exchange_help_text": "Wechselkurs eingeben um von {currency} nach {baseCurrency} zu konvertieren",
|
||||
"currency_freak": "CurrencyFreaks",
|
||||
"currency_layer": "Currency Layer",
|
||||
"open_exchange_rate": "Open Exchange Rate",
|
||||
"currency_layer": "Währungsebene",
|
||||
"open_exchange_rate": "Öffne Wechselkurs",
|
||||
"currency_converter": "Währungsumrechner",
|
||||
"server": "Server",
|
||||
"url": "URL",
|
||||
@@ -1209,7 +1212,7 @@
|
||||
"payment_mode_updated": "Zahlungsart aktualisiert",
|
||||
"payment_mode_confirm_delete": "Sie werden diese Zahlungsart nicht wiederherstellen können",
|
||||
"payments_attached": "Diese Zahlungsmethode ist bereits mit anderen Beträgen verknüpft. Bitte löschen Sie die damit verbundenen Beträge, um mit der Löschung fortzufahren.",
|
||||
"expenses_attached": "This payment method is already attached to expenses. Please delete the attached expenses to proceed with deletion.",
|
||||
"expenses_attached": "Diese Zahlungsmethode ist bereits mit Ausgaben verknüpft. Bitte löschen Sie die angehängten Ausgaben, um mit der Löschung fortzufahren.",
|
||||
"deleted_message": "Zahlungsart erfolgreich gelöscht"
|
||||
},
|
||||
"expense_category": {
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Zeitzone",
|
||||
"fiscal_year": "Geschäftsjahr",
|
||||
"date_format": "Datum-Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Einstellung Rabatt",
|
||||
"discount_per_item": "Rabatt pro Artikel ",
|
||||
"discount_setting_description": "Aktivieren Sie diese Option, wenn Sie einzelnen Rechnungspositionen einen Rabatt hinzufügen möchten. Standardmäßig wird der Rabatt direkt zur Rechnung hinzugefügt.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Sprache auswählen",
|
||||
"select_time_zone": "Zeitzone auswählen",
|
||||
"select_date_format": "Wähle das Datumsformat",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Geschäftsjahr auswählen",
|
||||
"recurring_invoice_status": "Status der Serienrechnung",
|
||||
"create_status": "Status erstellen",
|
||||
@@ -1253,26 +1258,28 @@
|
||||
"update_status": "Status aktualisieren",
|
||||
"completed": "Abgeschlossen",
|
||||
"company_currency_unchangeable": "Die Währung des Unternehmens kann nicht geändert werden",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
"march_february": "March - February",
|
||||
"april_march": "April - March",
|
||||
"may_april": "May - April",
|
||||
"june_may": "June - May",
|
||||
"july_june": "July - June",
|
||||
"august_july": "August - July",
|
||||
"january_december": "Januar - Dezember",
|
||||
"february_january": "Februar - Januar",
|
||||
"march_february": "März - Februar",
|
||||
"april_march": "April - März",
|
||||
"may_april": "Mai - April",
|
||||
"june_may": "Juni - Mai",
|
||||
"july_june": "Juli - Juni",
|
||||
"august_july": "August - Juli",
|
||||
"september_august": "September - August",
|
||||
"october_september": "October - September",
|
||||
"november_october": "November - October",
|
||||
"december_november": "December - November"
|
||||
"october_september": "Oktober - September",
|
||||
"november_october": "November - Oktober",
|
||||
"december_november": "Dezember - November"
|
||||
}
|
||||
},
|
||||
"update_app": {
|
||||
"title": "Applikation aktualisieren",
|
||||
"description": "Sie können InvoiceShelf ganz einfach aktualisieren, indem Sie auf die Schaltfläche unten klicken, um nach einem neuen Update zu suchen.",
|
||||
"check_update": "Nach Updates suchen",
|
||||
"insider_consent": "Opt-in for Insider releases. Recommended for testing purposes only.",
|
||||
"insider_consent": "Opt-in für Insider-Releases. Nur für Testzwecke empfohlen.",
|
||||
"avail_update": "Neues Update verfügbar",
|
||||
"next_version": "Nächste Version",
|
||||
"requirements": "Voraussetzungen",
|
||||
@@ -1421,14 +1428,15 @@
|
||||
"time_zone": "Zeitzone",
|
||||
"fiscal_year": "Geschäftsjahr",
|
||||
"date_format": "Datumsformat",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Absender",
|
||||
"username": "Benutzername",
|
||||
"next": "Weiter",
|
||||
"continue": "Weiter",
|
||||
"skip": "Überspringen",
|
||||
"install_language": {
|
||||
"title": "Choose your language",
|
||||
"description": "Select language wizard to install InvoiceShelf"
|
||||
"title": "Wähle deine Sprache",
|
||||
"description": "Wähle eine Sprache aus in der InvoiceShelf installiert wird"
|
||||
},
|
||||
"database": {
|
||||
"database": "URL der Seite & Datenbank",
|
||||
@@ -1441,7 +1449,7 @@
|
||||
"username": "Datenbank Benutzername",
|
||||
"db_name": "Datenbank Name",
|
||||
"db_path": "Datenbankpfad",
|
||||
"overwrite": "Overwrite existing database and proceed",
|
||||
"overwrite": "Bestehende Datenbank überschreiben und fortfahren",
|
||||
"desc": "Erstellen Sie eine Datenbank auf Ihrem Server und legen Sie die Anmeldeinformationen mithilfe des folgenden Formulars fest."
|
||||
},
|
||||
"permissions": {
|
||||
@@ -1459,11 +1467,11 @@
|
||||
"failed": "Domainüberprüfung fehlgeschlagen. Bitte geben Sie einen gültigen Domainnamen ein.",
|
||||
"verify_and_continue": "Verifizieren und fortfahren",
|
||||
"notes": {
|
||||
"notes": "Notes:",
|
||||
"not_contain": "App domain should not contain",
|
||||
"or": "or",
|
||||
"in_front": "in front of the domain.",
|
||||
"if_you": "If you're accessing the website on a different port, please mention the port. For example:"
|
||||
"notes": "Notizen:",
|
||||
"not_contain": "App-Domain sollte nicht enthalten",
|
||||
"or": "oder",
|
||||
"in_front": "vor der Domain.",
|
||||
"if_you": "Wenn Sie auf die Website über einen anderen Port zugreifen, geben Sie bitte den Port an. Zum Beispiel:"
|
||||
}
|
||||
},
|
||||
"mail": {
|
||||
@@ -1616,13 +1624,15 @@
|
||||
"pdf_tax_label": "Steuer",
|
||||
"pdf_tax_id": "Steuer-Nr.",
|
||||
"pdf_vat_id": "USt.-ID",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
"mail_view_invoice": "View Invoice",
|
||||
"mail_viewed_invoice": ":name viewed this Invoice.",
|
||||
"mail_view_payment": "View Payment",
|
||||
"notification_view_estimate": "[Notification] Estimate viewed",
|
||||
"notification_view_invoice": "[Notification] Invoice viewed",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:"
|
||||
"pdf_amount_paid": "Bezahlter Betrag",
|
||||
"pdf_amount_due": "Offener Betrag",
|
||||
"mail_thanks": "Danke",
|
||||
"mail_view_estimate": "Angebot ansehen",
|
||||
"mail_viewed_estimate": ":name hat dieses Angebot angesehen.",
|
||||
"mail_view_invoice": "Rechnung anzeigen",
|
||||
"mail_viewed_invoice": ":name hat diese Rechnung angesehen.",
|
||||
"mail_view_payment": "Zahlung anzeigen",
|
||||
"notification_view_estimate": "[Benachrichtigung] Angebot angesehen",
|
||||
"notification_view_invoice": "[Benachrichtigung] Rechnung angesehen",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "Sie haben eine neue Rechnung von <b>{COMPANY_NAME}</b>erhalten.</br> Bitte laden Sie sich über den folgenden Button herunter:"
|
||||
}
|
||||
|
||||
30
lang/el.json
30
lang/el.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Πελάτες",
|
||||
"prefix": "Πρόθεμα",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Προσθήκη Πελάτη",
|
||||
"contacts_list": "Λίστα Πελατών",
|
||||
"name": "Όνομα",
|
||||
@@ -285,7 +286,7 @@
|
||||
"estimates": {
|
||||
"title": "Προσφορές",
|
||||
"accept_estimate": "Accept Estimate",
|
||||
"reject_estimate": "Reject Estimate",
|
||||
"reject_estimate": "Απόρριψη προσφοράς",
|
||||
"estimate": "Προσφορά | Προσφορές",
|
||||
"estimates_list": "Λίστα προσφορών",
|
||||
"days": "{days} Ημέρες",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Καταγραφή Πληρωμής",
|
||||
"add_estimate": "Νέα Εκτίμηση",
|
||||
"save_estimate": "Νέα Εκτίμηση",
|
||||
"cloned_successfully": "Η προσφορά κλωνοποιήθηκε με επιτυχία",
|
||||
"clone_estimate": "Κλωνοποίηση προσφοράς",
|
||||
"confirm_clone": "Αυτή η προσφορά θα κλωνοποιηθεί σε μια νέα προσφορά",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "Αυτή η εκτίμηση θα χρησιμοποιηθεί για τη δημιουργία ενός νέου τιμολογίου.",
|
||||
"conversion_message": "Το τιμολόγιο κλωνοποιήθηκε επιτυχώς",
|
||||
"confirm_send_estimate": "Αυτό το τιμολόγιο θα αποσταλεί μέσω email στον πελάτη",
|
||||
@@ -381,7 +382,7 @@
|
||||
},
|
||||
"invoices": {
|
||||
"title": "Τιμολόγια",
|
||||
"download": "Download",
|
||||
"download": "Λήψη",
|
||||
"pay_invoice": "Pay Invoice",
|
||||
"invoices_list": "Λίστα Τιμολογίων",
|
||||
"invoice_information": "Invoice Information",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Πληκτρολογήστε Περιγραφή Στοιχείου (προαιρετικό)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Συχνότητα",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Επιλογή συχνοτήτων",
|
||||
"minute": "Λεπτό",
|
||||
"hour": "Ώρα",
|
||||
@@ -634,7 +635,7 @@
|
||||
"updated_message": "Η πληρωμή εστάλη επιτυχώς",
|
||||
"deleted_message": "Ο υπολογισμός διαγράφηκε επιτυχώς",
|
||||
"invalid_amount_message": "Το ποσό δεν είναι έγκυρο",
|
||||
"amount_due": "Due Amount"
|
||||
"amount_due": "Ποσό Οφειλής"
|
||||
},
|
||||
"expenses": {
|
||||
"title": "Έξοδα",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Κύριο Νόμισμα",
|
||||
"timezone": "Ζώνη Ώρας",
|
||||
"date_format": "Μορφή Ημερομηνίας",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Συνάλλαγμα",
|
||||
"currency": "Νόμισμα",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Ενιαίος χαρακτήρας για τον καθορισμό του ορίου μεταξύ 2 ξεχωριστών στοιχείων. Από προεπιλογή το σετ του -",
|
||||
"delimiter_param_label": "Τιμή Οριοθέτη",
|
||||
"date_format": "Μορφή Ημερομηνίας",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "Ένα τοπικό πεδίο ημερομηνίας και ώρας που δέχεται μια παράμετρο μορφής. Η προεπιλεγμένη μορφή: 'Y' εμφανίζει το τρέχον έτος.",
|
||||
"date_format_param_label": "Μορφή",
|
||||
"sequence": "Αλληλουχία",
|
||||
@@ -1094,7 +1097,7 @@
|
||||
"already_in_use": "Το όνομα είναι ήδη σε χρήση",
|
||||
"deleted_message": "Ο ρόλος διαγράφηκε με επιτυχία",
|
||||
"types": {
|
||||
"estimate": "Estimate",
|
||||
"estimate": "Προσφορά",
|
||||
"invoice": "Invoice",
|
||||
"payment": "Payment"
|
||||
}
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Ζώνη Ώρας",
|
||||
"fiscal_year": "Οικονομικό έτος",
|
||||
"date_format": "Μορφή Ημερομηνίας",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Ρυθμίσεις Λογαριασμού",
|
||||
"discount_per_item": "Έκπτωση Ανά Στοιχείο ",
|
||||
"discount_setting_description": "Ενεργοποιήστε το αν θέλετε να προσθέσετε έκπτωση σε μεμονωμένα στοιχεία τιμολογίου. Από προεπιλογή, η έκπτωση προστίθεται απευθείας στο τιμολόγιο.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Επιλογή Γλώσσας",
|
||||
"select_time_zone": "Επιλέξτε ζώνη ώρας",
|
||||
"select_date_format": "Μορφή σύντομης ημερομηνίας",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Επιλογή Οικονομικού Έτους",
|
||||
"recurring_invoice_status": "Επαναλαμβανόμενα τιμολόγια",
|
||||
"create_status": "Δημιουργία κατάστασης",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Ενημέρωση Κατάστασης",
|
||||
"completed": "Ολοκληρώθηκε",
|
||||
"company_currency_unchangeable": "Το νόμισμα της εταιρείας δεν μπορεί να αλλάξει",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Ζώνη Ώρας",
|
||||
"fiscal_year": "Οικονομικό έτος",
|
||||
"date_format": "Μορφή Ημερομηνίας",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Διεύθυνση Αποστολής",
|
||||
"username": "Όνομα Χρήστη",
|
||||
"next": "Επόμενο",
|
||||
@@ -1565,7 +1573,7 @@
|
||||
"invalid_address": "Please enter a valid address.",
|
||||
"invalid_key": "Please enter valid key.",
|
||||
"invalid_state": "Please enter a valid state.",
|
||||
"invalid_city": "Please enter a valid city.",
|
||||
"invalid_city": "Παρακαλούμε εισάγετε μια έγκυρη πόλη.",
|
||||
"invalid_postal_code": "Please enter a valid zip.",
|
||||
"invalid_format": "Please enter valid query string format.",
|
||||
"api_error": "Server not responding.",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Φόρος",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
@@ -1624,5 +1634,5 @@
|
||||
"mail_view_payment": "View Payment",
|
||||
"notification_view_estimate": "[Notification] Estimate viewed",
|
||||
"notification_view_invoice": "[Notification] Invoice viewed",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:"
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "Λάβατε ένα νέο τιμολόγιο από <b>{COMPANY_NAME}</b>.</br> Κάντε λήψη χρησιμοποιώντας το παρακάτω κουμπί:"
|
||||
}
|
||||
|
||||
134
lang/en.json
134
lang/en.json
@@ -100,16 +100,35 @@
|
||||
"pay_invoice": "Pay Invoice",
|
||||
"login_successfully": "Logged in successfully!",
|
||||
"logged_out_successfully": "Logged out successfully",
|
||||
"mark_as_default": "Mark as default"
|
||||
"mark_as_default": "Mark as default",
|
||||
"no_data_found": "No data found",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Select year",
|
||||
"cards": {
|
||||
"due_amount": "Amount Due",
|
||||
"customers": "Customers",
|
||||
"invoices": "Invoices",
|
||||
"estimates": "Estimates",
|
||||
"payments": "Payments"
|
||||
"customers": "Customer | Customers",
|
||||
"invoices": "Invoice | Invoices",
|
||||
"estimates": "Estimate | Estimates",
|
||||
"payments": "Payment | Payments"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "Sales",
|
||||
@@ -172,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Customers",
|
||||
"prefix": "Prefix",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Add Customer",
|
||||
"contacts_list": "Customer List",
|
||||
"name": "Name",
|
||||
@@ -304,6 +324,9 @@
|
||||
"record_payment": "Record Payment",
|
||||
"add_estimate": "Add Estimate",
|
||||
"save_estimate": "Save Estimate",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "This estimate will be used to create a new Invoice.",
|
||||
"conversion_message": "Invoice created successful",
|
||||
"confirm_send_estimate": "This estimate will be sent via email to the customer",
|
||||
@@ -542,13 +565,24 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
"day_month": "Day of month",
|
||||
"month": "Month",
|
||||
"day_week": "Day of week"
|
||||
"day_week": "Day of week",
|
||||
"every_minute": "Every Minute",
|
||||
"every_30_minute": "Every 30 Minute",
|
||||
"every_hour": "Every Hour",
|
||||
"every_2_hour": "Every 2 Hour",
|
||||
"every_day_at_midnight": "Every day at midnight",
|
||||
"every_week": "Every Week",
|
||||
"every_15_days_at_midnight": "Every 15 days at midnight",
|
||||
"on_the_first_day_of_every_month_at_midnight": "On the first day of every month at 00:00",
|
||||
"every_6_month": "Every 6 Month",
|
||||
"every_year_on_the_first_day_of_january_at_midnight": "Every year on the first day of january at 00:00",
|
||||
"custom": "Custom"
|
||||
},
|
||||
"confirm_delete": "You will not be able to recover this Invoice | You will not be able to recover these Invoices",
|
||||
"created_message": "Recurring Invoice created successfully",
|
||||
@@ -557,7 +591,12 @@
|
||||
"marked_as_sent_message": "Recurring Invoice marked as sent successfully",
|
||||
"user_email_does_not_exist": "User email does not exist",
|
||||
"something_went_wrong": "something went wrong",
|
||||
"invalid_due_amount_message": "Total Recurring Invoice amount cannot be less than total paid amount for this Recurring Invoice. Please update the invoice or delete the associated payments to continue."
|
||||
"invalid_due_amount_message": "Total Recurring Invoice amount cannot be less than total paid amount for this Recurring Invoice. Please update the invoice or delete the associated payments to continue.",
|
||||
"limit": {
|
||||
"none": "None",
|
||||
"date": "Date",
|
||||
"count": "Count"
|
||||
}
|
||||
},
|
||||
"payments": {
|
||||
"title": "Payments",
|
||||
@@ -595,7 +634,8 @@
|
||||
"created_message": "Payment created successfully",
|
||||
"updated_message": "Payment updated successfully",
|
||||
"deleted_message": "Payment deleted successfully | Payments deleted successfully",
|
||||
"invalid_amount_message": "Payment amount is invalid"
|
||||
"invalid_amount_message": "Payment amount is invalid",
|
||||
"amount_due": "Due Amount"
|
||||
},
|
||||
"expenses": {
|
||||
"title": "Expenses",
|
||||
@@ -700,7 +740,8 @@
|
||||
"installed": "Installed",
|
||||
"no_modules_installed": "No Modules Installed Yet!",
|
||||
"disable_warning": "All the settings for this particular will be reverted.",
|
||||
"what_you_get": "What you get"
|
||||
"what_you_get": "What you get",
|
||||
"sign_up_and_get_token": "Sign up & Get Token"
|
||||
},
|
||||
"users": {
|
||||
"title": "Users",
|
||||
@@ -752,7 +793,11 @@
|
||||
"date_range": "Select Date Range",
|
||||
"to_date": "To Date",
|
||||
"from_date": "From Date",
|
||||
"report_type": "Report Type"
|
||||
"report_type": "Report Type",
|
||||
"sort": {
|
||||
"by_customer": "By Customer",
|
||||
"by_item": "By Item"
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
"taxes": "Taxes",
|
||||
@@ -819,6 +864,7 @@
|
||||
"primary_currency": "Primary Currency",
|
||||
"timezone": "Time Zone",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Currencies",
|
||||
"currency": "Currency | Currencies",
|
||||
@@ -920,7 +966,14 @@
|
||||
"added_message": "Custom Field added successfully",
|
||||
"press_enter_to_add": "Press enter to add new option",
|
||||
"model_in_use": "Cannot update model for fields which are already in use.",
|
||||
"type_in_use": "Cannot update type for fields which are already in use."
|
||||
"type_in_use": "Cannot update type for fields which are already in use.",
|
||||
"model_type": {
|
||||
"customer": "Customer",
|
||||
"invoice": "Invoice",
|
||||
"estimate": "Estimate",
|
||||
"expense": "Expense",
|
||||
"payment": "Payment"
|
||||
}
|
||||
},
|
||||
"customization": {
|
||||
"customization": "customization",
|
||||
@@ -938,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1041,7 +1095,12 @@
|
||||
"note_updated": "Note Updated successfully",
|
||||
"note_confirm_delete": "You will not be able to recover this Note",
|
||||
"already_in_use": "Note is already in use",
|
||||
"deleted_message": "Note deleted successfully"
|
||||
"deleted_message": "Note deleted successfully",
|
||||
"types": {
|
||||
"estimate": "Estimate",
|
||||
"invoice": "Invoice",
|
||||
"payment": "Payment"
|
||||
}
|
||||
}
|
||||
},
|
||||
"account_settings": {
|
||||
@@ -1177,6 +1236,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1189,6 +1249,7 @@
|
||||
"select_language": "Select Language",
|
||||
"select_time_zone": "Select Time Zone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1196,12 +1257,29 @@
|
||||
"on_hold": "On Hold",
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed"
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
"march_february": "March - February",
|
||||
"april_march": "April - March",
|
||||
"may_april": "May - April",
|
||||
"june_may": "June - May",
|
||||
"july_june": "July - June",
|
||||
"august_july": "August - July",
|
||||
"september_august": "September - August",
|
||||
"october_september": "October - September",
|
||||
"november_october": "November - October",
|
||||
"december_november": "December - November"
|
||||
}
|
||||
},
|
||||
"update_app": {
|
||||
"title": "Update App",
|
||||
"description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below",
|
||||
"check_update": "Check for updates",
|
||||
"insider_consent" : "Opt-in for Insider releases. Recommended for testing purposes only.",
|
||||
"avail_update": "New Update available",
|
||||
"next_version": "Next version",
|
||||
"requirements": "Requirements",
|
||||
@@ -1350,11 +1428,16 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "From Address",
|
||||
"username": "Username",
|
||||
"next": "Next",
|
||||
"continue": "Continue",
|
||||
"skip": "Skip",
|
||||
"install_language": {
|
||||
"title": "Choose your language",
|
||||
"description": "Select language wizard to install InvoiceShelf"
|
||||
},
|
||||
"database": {
|
||||
"database": "Site URL & Database",
|
||||
"connection": "Database Connection",
|
||||
@@ -1366,6 +1449,7 @@
|
||||
"username": "Database Username",
|
||||
"db_name": "Database Name",
|
||||
"db_path": "Database Path",
|
||||
"overwrite": "Overwrite existing database and proceed",
|
||||
"desc": "Create a database on your server and set the credentials using the form below."
|
||||
},
|
||||
"permissions": {
|
||||
@@ -1381,7 +1465,14 @@
|
||||
"verify_now": "Verify Now",
|
||||
"success": "Domain Verify Successfully.",
|
||||
"failed": "Domain verification failed. Please enter valid domain name.",
|
||||
"verify_and_continue": "Verify And Continue"
|
||||
"verify_and_continue": "Verify And Continue",
|
||||
"notes": {
|
||||
"notes" : "Notes:",
|
||||
"not_contain" : "App domain should not contain",
|
||||
"or" : "or",
|
||||
"in_front": "in front of the domain.",
|
||||
"if_you": "If you're accessing the website on a different port, please mention the port. For example:"
|
||||
}
|
||||
},
|
||||
"mail": {
|
||||
"host": "Mail Host",
|
||||
@@ -1532,5 +1623,16 @@
|
||||
"pdf_received_from": "Received from:",
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID"
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
"mail_view_invoice": "View Invoice",
|
||||
"mail_viewed_invoice": ":name viewed this Invoice.",
|
||||
"mail_view_payment": "View Payment",
|
||||
"notification_view_estimate": "[Notification] Estimate viewed",
|
||||
"notification_view_invoice": "[Notification] Invoice viewed",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:"
|
||||
}
|
||||
|
||||
200
lang/es.json
200
lang/es.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"navigation": {
|
||||
"dashboard": "Tablero",
|
||||
"dashboard": "Dashboard",
|
||||
"customers": "Clientes",
|
||||
"items": "Artículos",
|
||||
"invoices": "Facturas",
|
||||
@@ -47,7 +47,7 @@
|
||||
"delete": "Eliminar",
|
||||
"edit": "Editar",
|
||||
"view": "Ver",
|
||||
"add_new_item": "Agregar ítem nuevo",
|
||||
"add_new_item": "Agregar un Nuevo Artículo",
|
||||
"clear_all": "Limpiar todo",
|
||||
"showing": "Mostrar",
|
||||
"of": "de",
|
||||
@@ -101,25 +101,25 @@
|
||||
"login_successfully": "Logeado Satisfactoriamente!",
|
||||
"logged_out_successfully": "Logeado Satisfactoriamente",
|
||||
"mark_as_default": "Marcar como predeterminado",
|
||||
"no_data_found": "No data found",
|
||||
"no_data_found": "No se encontraron datos",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "Anterior",
|
||||
"next": "Siguiente",
|
||||
"showing": "Mostrando",
|
||||
"to": "a",
|
||||
"of": "de",
|
||||
"results": "resultados"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
"drag_a_file": "Arrastra un archivo aquí o",
|
||||
"browse": "explorar",
|
||||
"to_choose": "para elegir un archivo"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"the_list_is_empty": "La lista está vacía",
|
||||
"no_results_found": "No se encontraron resultados"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "Copiar al portapapeles"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Seleccionar año",
|
||||
@@ -128,7 +128,7 @@
|
||||
"customers": "Clientes",
|
||||
"invoices": "Facturas",
|
||||
"estimates": "Presupuestos",
|
||||
"payments": "Ver Medios de Pago"
|
||||
"payments": "Pagos"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "Ventas",
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Clientes",
|
||||
"prefix": "Prefijo",
|
||||
"tax_id": "ID del Impuesto",
|
||||
"add_customer": "Agregar cliente",
|
||||
"contacts_list": "Lista de clientes",
|
||||
"name": "Nombre",
|
||||
@@ -284,8 +285,8 @@
|
||||
},
|
||||
"estimates": {
|
||||
"title": "Presupuestos",
|
||||
"accept_estimate": "Aceptar cotización",
|
||||
"reject_estimate": "Rechazar cotización",
|
||||
"accept_estimate": "Aceptar presupuesto",
|
||||
"reject_estimate": "Rechazar presupuesto",
|
||||
"estimate": "Presupuesto | Presupuestos",
|
||||
"estimates_list": "Lista de presupuestos",
|
||||
"days": "{días} Días",
|
||||
@@ -319,12 +320,12 @@
|
||||
"convert_to_invoice": "Convertir a factura",
|
||||
"mark_as_sent": "Marcar como enviado",
|
||||
"send_estimate": "Enviar presupuesto",
|
||||
"resend_estimate": "Reenviar estimado",
|
||||
"resend_estimate": "Reenviar presupuesto",
|
||||
"record_payment": "Registro de pago",
|
||||
"add_estimate": "Agregar presupuesto",
|
||||
"save_estimate": "Guardar presupuesto",
|
||||
"cloned_successfully": "Presupuesto clonado con éxito",
|
||||
"clone_estimate": "Clonar presupuesto",
|
||||
"cloned_successfully": "Presupuesto clonado correctamente",
|
||||
"clone_estimate": "Clonar Presupuesto",
|
||||
"confirm_clone": "Este presupuesto será clonado en un nuevo presupuesto",
|
||||
"confirm_conversion": "¿Quiere convertir este presupuesto en una factura?",
|
||||
"conversion_message": "Conversión exitosa",
|
||||
@@ -564,24 +565,24 @@
|
||||
"type_item_description": "Descripción del tipo de elemento(opcional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frecuencia",
|
||||
"title": "Frecuencia (usando formato cron)",
|
||||
"select_frequency": "Seleccionar frecuencia",
|
||||
"minute": "Minuto",
|
||||
"hour": "Hora",
|
||||
"day_month": "Día del mes",
|
||||
"month": "Mes",
|
||||
"day_week": "Día de la semana",
|
||||
"every_minute": "Every Minute",
|
||||
"every_30_minute": "Every 30 Minute",
|
||||
"every_hour": "Every Hour",
|
||||
"every_2_hour": "Every 2 Hour",
|
||||
"every_day_at_midnight": "Every day at midnight",
|
||||
"every_week": "Every Week",
|
||||
"every_15_days_at_midnight": "Every 15 days at midnight",
|
||||
"on_the_first_day_of_every_month_at_midnight": "On the first day of every month at 00:00",
|
||||
"every_6_month": "Every 6 Month",
|
||||
"every_year_on_the_first_day_of_january_at_midnight": "Every year on the first day of january at 00:00",
|
||||
"custom": "Custom"
|
||||
"every_minute": "Cada Minuto",
|
||||
"every_30_minute": "Cada 30 Minutos",
|
||||
"every_hour": "Cada Hora",
|
||||
"every_2_hour": "Cada 2 Horas",
|
||||
"every_day_at_midnight": "Todos los días a la medianoche",
|
||||
"every_week": "Cada Semana",
|
||||
"every_15_days_at_midnight": "Cada 15 días a medianoche",
|
||||
"on_the_first_day_of_every_month_at_midnight": "En el primer día de cada mes a las 00:00",
|
||||
"every_6_month": "Cada 6 Meses",
|
||||
"every_year_on_the_first_day_of_january_at_midnight": "Cada año el primer día de enero a las 00:00",
|
||||
"custom": "Personalizado"
|
||||
},
|
||||
"confirm_delete": "No podrá recuperar esta factura | No podrás recuperar estas facturas",
|
||||
"created_message": "Factura recurrente creada con éxito",
|
||||
@@ -592,9 +593,9 @@
|
||||
"something_went_wrong": "algo ha ido mal",
|
||||
"invalid_due_amount_message": "La cantidad total de la factura recurrente no puede ser menor a la cantidad total pagada. Por favor, actualiza la factura o elimina los pagos asociados para continuar.",
|
||||
"limit": {
|
||||
"none": "None",
|
||||
"date": "Date",
|
||||
"count": "Count"
|
||||
"none": "Ninguno",
|
||||
"date": "Fecha",
|
||||
"count": "Cuenta"
|
||||
}
|
||||
},
|
||||
"payments": {
|
||||
@@ -634,7 +635,7 @@
|
||||
"updated_message": "Pago actualizado con éxito",
|
||||
"deleted_message": "Pago eliminado con éxito | Pagos eliminados exitosamente",
|
||||
"invalid_amount_message": "El importe del pago no es válido.",
|
||||
"amount_due": "Due Amount"
|
||||
"amount_due": "Cantidad Debida"
|
||||
},
|
||||
"expenses": {
|
||||
"title": "Gastos",
|
||||
@@ -740,7 +741,7 @@
|
||||
"no_modules_installed": "¡No hay módulos instalados todavía!",
|
||||
"disable_warning": "Se revertirán todos los ajustes para este particular.",
|
||||
"what_you_get": "Beneficios que obtiene",
|
||||
"sign_up_and_get_token": "Sign up & Get Token"
|
||||
"sign_up_and_get_token": "Regístrate y Consigue Token"
|
||||
},
|
||||
"users": {
|
||||
"title": "Usuarios",
|
||||
@@ -794,8 +795,8 @@
|
||||
"from_date": "A partir de la fecha",
|
||||
"report_type": "Tipo de informe",
|
||||
"sort": {
|
||||
"by_customer": "By Customer",
|
||||
"by_item": "By Item"
|
||||
"by_customer": "Por Cliente",
|
||||
"by_item": "Por artículo"
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Moneda primaria",
|
||||
"timezone": "Zona horaria",
|
||||
"date_format": "Formato de fecha",
|
||||
"time_format": "Formato de hora",
|
||||
"currencies": {
|
||||
"title": "Monedas",
|
||||
"currency": "Moneda | Monedas",
|
||||
@@ -923,7 +925,7 @@
|
||||
"delete_company": "Eliminar empresa",
|
||||
"delete_company_description": "Una vez que elimines tu empresa, perderás todos los datos y archivos asociados a ella permanentemente.",
|
||||
"are_you_absolutely_sure": "¿Estás realmente seguro?",
|
||||
"delete_company_modal_desc": "Est acción no se puede deshacer. Se eliminará de manera permanente {company} y todos sus datos asociados.",
|
||||
"delete_company_modal_desc": "Esta acción no se puede deshacer. Esto eliminará de manera permanente {company} y todos sus datos asociados.",
|
||||
"delete_company_modal_label": "Por favor escribe {company} para confirmar"
|
||||
},
|
||||
"custom_fields": {
|
||||
@@ -935,7 +937,7 @@
|
||||
"label": "Etiqueta",
|
||||
"type": "Tipo",
|
||||
"name": "Nombre",
|
||||
"slug": "Slug",
|
||||
"slug": "Nombre corto de URL",
|
||||
"required": "Necesaria",
|
||||
"placeholder": "Marcador de posición",
|
||||
"help_text": "texto de ayuda",
|
||||
@@ -966,11 +968,11 @@
|
||||
"model_in_use": "No se puede actualizar el modelo para los campos que ya están en uso.",
|
||||
"type_in_use": "No se puede actualizar el tipo de los campos que ya están en uso.",
|
||||
"model_type": {
|
||||
"customer": "Customer",
|
||||
"invoice": "Invoice",
|
||||
"estimate": "Estimate",
|
||||
"expense": "Expense",
|
||||
"payment": "Payment"
|
||||
"customer": "Cliente",
|
||||
"invoice": "Factura",
|
||||
"estimate": "Presupuesto",
|
||||
"expense": "Gasto",
|
||||
"payment": "Pago"
|
||||
}
|
||||
},
|
||||
"customization": {
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Carácter único para especificar el límite entre 2 componentes separados. Por defecto está configurado en -",
|
||||
"delimiter_param_label": "Valor delimitador",
|
||||
"date_format": "Formato de fecha",
|
||||
"time_format": "Formato de hora",
|
||||
"date_format_description": "Un campo de fecha y hora local que acepta un parámetro de formato. El formato predeterminado: 'Y' representa el año actual.",
|
||||
"date_format_param_label": "Formato",
|
||||
"sequence": "Secuencia",
|
||||
@@ -1094,9 +1097,9 @@
|
||||
"already_in_use": "Nota ya está en uso",
|
||||
"deleted_message": "Nota eliminada correctamente",
|
||||
"types": {
|
||||
"estimate": "Estimate",
|
||||
"invoice": "Invoice",
|
||||
"payment": "Payment"
|
||||
"estimate": "Presupuesto",
|
||||
"invoice": "Factura",
|
||||
"payment": "Pago"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Zona horaria",
|
||||
"fiscal_year": "Año financiero",
|
||||
"date_format": "Formato de fecha",
|
||||
"time_format": "Formato de hora",
|
||||
"discount_setting": "Ajuste de descuento",
|
||||
"discount_per_item": "Descuento por artículo",
|
||||
"discount_setting_description": "Habilítelo si desea agregar Descuento a artículos de factura individuales. Por defecto, los descuentos se agregan directamente a la factura.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "seleccione el idioma",
|
||||
"select_time_zone": "selecciona la zona horaria",
|
||||
"select_date_format": "Seleccionar formato de fecha",
|
||||
"select_time_format": "Seleccionar formato de hora",
|
||||
"select_financial_year": "seleccione año financiero",
|
||||
"recurring_invoice_status": "Estado de la factura recurrente",
|
||||
"create_status": "Crear estado",
|
||||
@@ -1253,26 +1258,28 @@
|
||||
"update_status": "Actualizar estado",
|
||||
"completed": "Completado",
|
||||
"company_currency_unchangeable": "No se puede cambiar la divisa de la empresa",
|
||||
"invoice_use_time": "Usar hora en las facturas",
|
||||
"invoice_use_time_description": "Active esta opción si desea seleccionar la hora exacta de la factura.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
"march_february": "March - February",
|
||||
"april_march": "April - March",
|
||||
"may_april": "May - April",
|
||||
"june_may": "June - May",
|
||||
"july_june": "July - June",
|
||||
"august_july": "August - July",
|
||||
"september_august": "September - August",
|
||||
"october_september": "October - September",
|
||||
"november_october": "November - October",
|
||||
"december_november": "December - November"
|
||||
"january_december": "Enero - Diciembre",
|
||||
"february_january": "Febrero - Enero",
|
||||
"march_february": "Marzo - Febrero",
|
||||
"april_march": "Abril - Marzo",
|
||||
"may_april": "Mayo - Abril",
|
||||
"june_may": "Junio - Mayo",
|
||||
"july_june": "Julio - Junio",
|
||||
"august_july": "Agosto - Julio",
|
||||
"september_august": "Septiembre - Agosto",
|
||||
"october_september": "Octubre - Septiembre",
|
||||
"november_october": "Noviembre - Octubre",
|
||||
"december_november": "Diciembre - Noviembre"
|
||||
}
|
||||
},
|
||||
"update_app": {
|
||||
"title": "Actualizar aplicación",
|
||||
"description": "Puedes actualizar InvoiceShelf fácilmente comprobando si existe una nueva actualización haciendo clic en el botón de abajo",
|
||||
"check_update": "Buscar actualizaciones",
|
||||
"insider_consent": "Opt-in for Insider releases. Recommended for testing purposes only.",
|
||||
"insider_consent": "Opt-in para versiones anticipadas. Recomendado sólo para fines de prueba.",
|
||||
"avail_update": "Nueva actualización disponible",
|
||||
"next_version": "Próxima versión",
|
||||
"requirements": "Requisitos",
|
||||
@@ -1402,7 +1409,7 @@
|
||||
"save_cont": "Guardar y continuar",
|
||||
"company_info": "Información de la empresa",
|
||||
"company_info_desc": "Esta información se mostrará en las facturas. Tenga en cuenta que puede editar esto más adelante en la página de configuración.",
|
||||
"company_name": "nombre de empresa",
|
||||
"company_name": "Nombre de empresa",
|
||||
"company_logo": "Logo de la compañía",
|
||||
"logo_preview": "Vista previa del logotipo",
|
||||
"preferences": "Preferencias",
|
||||
@@ -1421,17 +1428,18 @@
|
||||
"time_zone": "Zona horaria",
|
||||
"fiscal_year": "Año financiero",
|
||||
"date_format": "Formato de fecha",
|
||||
"time_format": "Formato de hora",
|
||||
"from_address": "Desde la Dirección",
|
||||
"username": "Nombre de usuario",
|
||||
"next": "Siguiente",
|
||||
"continue": "Continuar",
|
||||
"skip": "Saltar",
|
||||
"install_language": {
|
||||
"title": "Choose your language",
|
||||
"description": "Select language wizard to install InvoiceShelf"
|
||||
"title": "Elige tu idioma",
|
||||
"description": "Selecciona el asistente de idioma para instalar InvoiceShelf"
|
||||
},
|
||||
"database": {
|
||||
"database": "URL del sitio y base de datose",
|
||||
"database": "URL del sitio y base de datos",
|
||||
"connection": "Conexión de base de datos",
|
||||
"host": "Host de la base de datos",
|
||||
"port": "Puerto de la base de datos",
|
||||
@@ -1441,7 +1449,7 @@
|
||||
"username": "Nombre de usuario de la base de datos",
|
||||
"db_name": "Nombre de la base de datos",
|
||||
"db_path": "Ruta de la base de datos",
|
||||
"overwrite": "Overwrite existing database and proceed",
|
||||
"overwrite": "Sobrescribir la base de datos existente y continua",
|
||||
"desc": "Cree una base de datos en su servidor y establezca las credenciales utilizando el siguiente formulario."
|
||||
},
|
||||
"permissions": {
|
||||
@@ -1459,11 +1467,11 @@
|
||||
"failed": "La verificación del dominio falló. Ingrese un nombre de dominio válido.",
|
||||
"verify_and_continue": "Verificar y continuar",
|
||||
"notes": {
|
||||
"notes": "Notes:",
|
||||
"not_contain": "App domain should not contain",
|
||||
"or": "or",
|
||||
"in_front": "in front of the domain.",
|
||||
"if_you": "If you're accessing the website on a different port, please mention the port. For example:"
|
||||
"notes": "Notas:",
|
||||
"not_contain": "El dominio de la app no debería contener",
|
||||
"or": "o",
|
||||
"in_front": "delante del dominio.",
|
||||
"if_you": "Si estás accediendo al sitio web en un puerto diferente, por favor indica el puerto. Por ejemplo:"
|
||||
}
|
||||
},
|
||||
"mail": {
|
||||
@@ -1492,9 +1500,9 @@
|
||||
},
|
||||
"errors": {
|
||||
"migrate_failed": "La migración falló",
|
||||
"database_variables_save_error": "No se puede conectar a la base de datos con los valores proporcionados.",
|
||||
"database_variables_save_error": "No se puede escribir la configuración al archivo .env. Por favor, revisa los permisos de archivo",
|
||||
"mail_variables_save_error": "La configuración del correo electrónico ha fallado.",
|
||||
"connection_failed": "Conexión de base de datos fallida",
|
||||
"connection_failed": "La conexión a la base de datos falló",
|
||||
"database_should_be_empty": "La base de datos debe estar vacía"
|
||||
},
|
||||
"success": {
|
||||
@@ -1589,40 +1597,42 @@
|
||||
"pdf_amount_label": "Cantidad",
|
||||
"pdf_subtotal": "Subtotal",
|
||||
"pdf_total": "Total",
|
||||
"pdf_payment_label": "Pagos",
|
||||
"pdf_payment_label": "Pago",
|
||||
"pdf_payment_receipt_label": "RECIBO DE PAGO",
|
||||
"pdf_payment_date": "Fecha de pago",
|
||||
"pdf_payment_number": "Numero de pago",
|
||||
"pdf_payment_number": "Número de pago",
|
||||
"pdf_payment_mode": "Modo de pago",
|
||||
"pdf_payment_amount_received_label": "Importe recibido",
|
||||
"pdf_expense_report_label": "INFORME DE GASTOS",
|
||||
"pdf_total_expenses_label": "GASTO TOTAL",
|
||||
"pdf_profit_loss_label": "INFORME PERDIDAS & GANANCIAS",
|
||||
"pdf_profit_loss_label": "INFORME DE PERDIDAS Y GANANCIAS",
|
||||
"pdf_sales_customers_label": "Informe de ventas por cliente",
|
||||
"pdf_sales_items_label": "Informe de ventas por ítem",
|
||||
"pdf_tax_summery_label": "Informe de ventas impuestos",
|
||||
"pdf_sales_items_label": "Informe de ventas por artículo",
|
||||
"pdf_tax_summery_label": "Informe de resumen de impuestos",
|
||||
"pdf_income_label": "INGRESO",
|
||||
"pdf_net_profit_label": "GANANCIA NETA",
|
||||
"pdf_customer_sales_report": "Informe de ventas: Por cliente",
|
||||
"pdf_total_sales_label": "VENTAS TOTALES",
|
||||
"pdf_item_sales_label": "Informe de ventas: por artículo",
|
||||
"pdf_total_sales_label": "VENTA TOTAL",
|
||||
"pdf_item_sales_label": "Informe de ventas: Por artículo",
|
||||
"pdf_tax_report_label": "INFORME DE IMPUESTOS",
|
||||
"pdf_total_tax_label": "TOTAL IMPUESTOS",
|
||||
"pdf_total_tax_label": "IMPUESTO TOTAL",
|
||||
"pdf_tax_types_label": "Tipos de impuestos",
|
||||
"pdf_expenses_label": "Gastos",
|
||||
"pdf_bill_to": "Cobrar a,",
|
||||
"pdf_ship_to": "Enviar a,",
|
||||
"pdf_received_from": "Recibido desde:",
|
||||
"pdf_received_from": "Recibido de:",
|
||||
"pdf_tax_label": "Impuesto",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
"mail_view_invoice": "View Invoice",
|
||||
"mail_viewed_invoice": ":name viewed this Invoice.",
|
||||
"mail_view_payment": "View Payment",
|
||||
"notification_view_estimate": "[Notification] Estimate viewed",
|
||||
"notification_view_invoice": "[Notification] Invoice viewed",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:"
|
||||
"pdf_tax_id": "ID de impuesto",
|
||||
"pdf_vat_id": "ID de IVA",
|
||||
"pdf_amount_paid": "Importe pagado",
|
||||
"pdf_amount_due": "Importe pendiente",
|
||||
"mail_thanks": "Gracias",
|
||||
"mail_view_estimate": "Ver presupuesto",
|
||||
"mail_viewed_estimate": ":name ha visto este Presupuesto.",
|
||||
"mail_view_invoice": "Ver factura",
|
||||
"mail_viewed_invoice": ":name ha visto esta factura.",
|
||||
"mail_view_payment": "Ver pago",
|
||||
"notification_view_estimate": "[Notification] Presupuesto visto",
|
||||
"notification_view_invoice": "[Notification] Factura vista",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "Ha recibido una nueva factura de <b>{COMPANY_NAME}</b>.</br> Por favor descárguela usando el siguiente botón:"
|
||||
}
|
||||
|
||||
68
lang/fa.json
68
lang/fa.json
@@ -4,7 +4,7 @@
|
||||
"customers": "مشتریان",
|
||||
"items": "آیتم ها",
|
||||
"invoices": "صورت حسابها",
|
||||
"recurring-invoices": "Recurring Invoices",
|
||||
"recurring-invoices": "فاکتور تکرار شونده",
|
||||
"expenses": "هزینه ها",
|
||||
"estimates": "برآوردها",
|
||||
"payments": "پرداختها",
|
||||
@@ -12,7 +12,7 @@
|
||||
"settings": "تنظیمات",
|
||||
"logout": "خروج از حساب",
|
||||
"users": "کاربران",
|
||||
"modules": "Modules"
|
||||
"modules": "ماژولها"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "افزودن شرکت",
|
||||
@@ -93,42 +93,42 @@
|
||||
"no_note_found": "یادداشتی پیدا نشد",
|
||||
"insert_note": "درج یادداشت",
|
||||
"copied_pdf_url_clipboard": "لینک PDF در حافظه کپی شد!",
|
||||
"copied_url_clipboard": "Copied url to clipboard!",
|
||||
"copied_url_clipboard": "لینک PDF در حافظه کپی شد!",
|
||||
"docs": "مستندات",
|
||||
"do_you_wish_to_continue": "مایلید ادامه دهید؟",
|
||||
"note": "یادداشت",
|
||||
"pay_invoice": "Pay Invoice",
|
||||
"login_successfully": "Logged in successfully!",
|
||||
"logged_out_successfully": "Logged out successfully",
|
||||
"mark_as_default": "Mark as default",
|
||||
"no_data_found": "No data found",
|
||||
"pay_invoice": "پرداخت فاکتور",
|
||||
"login_successfully": "با موفقیت وارد شدید",
|
||||
"logged_out_successfully": "با موفقیت خارج شدید",
|
||||
"mark_as_default": "انتخاب به عنوان پیشفرض",
|
||||
"no_data_found": "هیچ دیتایی یافت نشد",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "قبلی",
|
||||
"next": "بعدی",
|
||||
"showing": "در حال نمایش",
|
||||
"to": "به",
|
||||
"of": "از",
|
||||
"results": "نتایج"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
"drag_a_file": "یه فایل به اینجا بکشید یا",
|
||||
"browse": "مرور کردن",
|
||||
"to_choose": "برای انتخاب فایل"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"the_list_is_empty": "لیست خالی است",
|
||||
"no_results_found": "نتیجهای یافت نشد"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "کپی در کلیپ بورد"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "انتخاب سال",
|
||||
"cards": {
|
||||
"due_amount": "مبلغ قابل پرداخت",
|
||||
"customers": "Customer | Customers",
|
||||
"invoices": "Invoice | Invoices",
|
||||
"estimates": "Estimate | Estimates",
|
||||
"payments": "Payment | Payments"
|
||||
"customers": "مشتری | مشتریان",
|
||||
"invoices": "فاکتور | فاکتورها",
|
||||
"estimates": "برآورد | برآوردها",
|
||||
"payments": "پرداخت | پرداخت ها"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "فروش ها",
|
||||
@@ -170,7 +170,7 @@
|
||||
"no_results_found": "نتیجهای یافت نشد"
|
||||
},
|
||||
"company_switcher": {
|
||||
"label": "SWITCH COMPANY",
|
||||
"label": "تعویض شرکت",
|
||||
"no_results_found": "نتیجهای یافت نشد",
|
||||
"add_new_company": "افزودن شرکت جدید",
|
||||
"new_company": "شرکت جدید",
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "مشتریان",
|
||||
"prefix": "پيشوند",
|
||||
"tax_id": "شناسه مالیاتی",
|
||||
"add_customer": "افزودن مشتری",
|
||||
"contacts_list": "لیست مشتریان",
|
||||
"name": "نام",
|
||||
@@ -206,8 +207,8 @@
|
||||
"website": "وب سایت",
|
||||
"overview": "نمای کلی",
|
||||
"invoice_prefix": "پیشوند صورتحساب",
|
||||
"estimate_prefix": "Estimate Prefix",
|
||||
"payment_prefix": "Payment Prefix",
|
||||
"estimate_prefix": "پیشوند برآورد",
|
||||
"payment_prefix": "پیشوند پرداخت",
|
||||
"enable_portal": "فعال کردن پرتال",
|
||||
"country": "كشور",
|
||||
"state": "استان/ایالت",
|
||||
@@ -216,7 +217,7 @@
|
||||
"added_on": "افزوده شده در",
|
||||
"action": "عملیات",
|
||||
"password": "رمز عبور",
|
||||
"confirm_password": "Confirm Password",
|
||||
"confirm_password": "تایید رمز عبور",
|
||||
"street_number": "خیابان و پلاک",
|
||||
"primary_currency": "واحد پول اصلی",
|
||||
"description": "توضیح",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primary Currency",
|
||||
"timezone": "Time Zone",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Currencies",
|
||||
"currency": "Currency | Currencies",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Select Language",
|
||||
"select_time_zone": "Select Time Zone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "From Address",
|
||||
"username": "Username",
|
||||
"next": "Next",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
12
lang/fi.json
12
lang/fi.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Asiakkaat",
|
||||
"prefix": "Prefix",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Lisää Asiakas",
|
||||
"contacts_list": "Asiakasluettelo",
|
||||
"name": "Nimi",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Ensisijainen valuutta",
|
||||
"timezone": "Aikavyöhyke",
|
||||
"date_format": "Päivämäärä muoto",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Valuutat",
|
||||
"currency": "Valuutta | Valuutat",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Aikavyöhyke",
|
||||
"fiscal_year": "Tilikausi",
|
||||
"date_format": "Päivämäärä formaatti",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Alennusten määritys",
|
||||
"discount_per_item": "Alennus per tuote ",
|
||||
"discount_setting_description": "Aktivoi tämä jos haluat lisätä alennuksen rivikohtaisesti. Oletuksena, Alennus lisätään suoraan laskun kokonaissummaan.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Valitse kieli",
|
||||
"select_time_zone": "Valitse aikavyöhyke",
|
||||
"select_date_format": "Valitse päivämäärä formaatti",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Valitse tilikausi",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Aikavyöhyke",
|
||||
"fiscal_year": "Tilikausi",
|
||||
"date_format": "päivämäärä formaatti",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Lähettäjän osoite",
|
||||
"username": "Käyttäjänimi",
|
||||
"next": "Seuraava",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
72
lang/fr.json
72
lang/fr.json
@@ -27,9 +27,9 @@
|
||||
"download": "Télécharger",
|
||||
"from_date": "Du",
|
||||
"to_date": "Au",
|
||||
"from": "Du",
|
||||
"to": "Au",
|
||||
"ok": "Ok",
|
||||
"from": "De",
|
||||
"to": "À",
|
||||
"ok": "OK",
|
||||
"yes": "Oui",
|
||||
"no": "Non",
|
||||
"sort_by": "Trier par",
|
||||
@@ -101,7 +101,7 @@
|
||||
"login_successfully": "Identifié avec succès!",
|
||||
"logged_out_successfully": "Déconnecté avec succès",
|
||||
"mark_as_default": "Marquer par défaut",
|
||||
"no_data_found": "Aucune donnée pour le moment",
|
||||
"no_data_found": "Aucune donnée trouvée",
|
||||
"pagination": {
|
||||
"previous": "Précédent",
|
||||
"next": "Suivant",
|
||||
@@ -111,8 +111,8 @@
|
||||
"results": "résultats"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Déposez un fichier ici ou",
|
||||
"browse": "parcourez",
|
||||
"drag_a_file": "Déposer un fichier ici ou",
|
||||
"browse": "parcourir",
|
||||
"to_choose": "pour choisir un fichier"
|
||||
},
|
||||
"multiselect": {
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Clients",
|
||||
"prefix": "Code client",
|
||||
"tax_id": "N° fiscal",
|
||||
"add_customer": "Ajouter un client",
|
||||
"contacts_list": "Liste de clients",
|
||||
"name": "Nom",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Description de l'article (facultatif)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Fréquence",
|
||||
"title": "Fréquence (au format cron)",
|
||||
"select_frequency": "Sélectionner la fréquence",
|
||||
"minute": "Minute",
|
||||
"hour": "Heure",
|
||||
@@ -592,7 +593,7 @@
|
||||
"something_went_wrong": "une erreur s’est produite",
|
||||
"invalid_due_amount_message": "Le montant total de la facture récurrente ne peut pas être inférieur au montant total payé pour cette facture récurrente. Veuillez mettre à jour la facture ou supprimer les paiements associés pour continuer.",
|
||||
"limit": {
|
||||
"none": "Aucun",
|
||||
"none": "Pas de limite",
|
||||
"date": "Date",
|
||||
"count": "Nombre"
|
||||
}
|
||||
@@ -740,7 +741,7 @@
|
||||
"no_modules_installed": "Aucun module installé !",
|
||||
"disable_warning": "Tous les paramètres de ce module seront réinitialisés.",
|
||||
"what_you_get": "Ce que vous obtenez",
|
||||
"sign_up_and_get_token": "Inscrivez-vous et obtenez votre Jeton"
|
||||
"sign_up_and_get_token": "S'inscrire et obtenir un jeton"
|
||||
},
|
||||
"users": {
|
||||
"title": "Utilisateurs",
|
||||
@@ -794,8 +795,8 @@
|
||||
"from_date": "Du",
|
||||
"report_type": "Trier",
|
||||
"sort": {
|
||||
"by_customer": "Par Client",
|
||||
"by_item": "Par Article"
|
||||
"by_customer": "Par client",
|
||||
"by_item": "Par article"
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Devise principale",
|
||||
"timezone": "Fuseau horaire",
|
||||
"date_format": "Format de date",
|
||||
"time_format": "Format d'heure",
|
||||
"currencies": {
|
||||
"title": "Devises",
|
||||
"currency": "Devise | Devises",
|
||||
@@ -907,8 +909,8 @@
|
||||
"company_info": {
|
||||
"company_info": "Coordonnées de la société",
|
||||
"company_name": "Nom",
|
||||
"tax_id": "Numéro d'identification fiscale",
|
||||
"vat_id": "Numéro d'identification TVA",
|
||||
"tax_id": "N° d'identification fiscale (SIREN)",
|
||||
"vat_id": "N° d'identification TVA",
|
||||
"company_logo": "Logo",
|
||||
"section_description": "Saisissez ici les coordonnées de votre entreprise qui s'afficheront sur tous vos documents.",
|
||||
"phone": "Téléphone",
|
||||
@@ -922,7 +924,7 @@
|
||||
"updated_message": "Informations sur la société mises à jour",
|
||||
"delete_company": "Supprimer la société",
|
||||
"delete_company_description": "Une fois votre société supprimée, vous perdrez définitivement toutes les données et fichiers qui lui sont associés.",
|
||||
"are_you_absolutely_sure": "En êtes vous vraiment sûr?",
|
||||
"are_you_absolutely_sure": "En êtes-vous vraiment sûr ?",
|
||||
"delete_company_modal_desc": "Cette action ne peut pas être annulée. Cela supprimera définitivement {company} et toutes les données associées.",
|
||||
"delete_company_modal_label": "Veuillez saisir {company} pour confirmer"
|
||||
},
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Un caractère servant à séparer deux composants. Par exemple, un trait d'union",
|
||||
"delimiter_param_label": "Caractère",
|
||||
"date_format": "Date",
|
||||
"time_format": "Format d'heure",
|
||||
"date_format_description": "Une date qui peut formatée. Par exemple, \"Y\" affichera l'année en cours.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Suite",
|
||||
@@ -1208,8 +1211,8 @@
|
||||
"payment_mode_added": "Mode de paiement ajouté",
|
||||
"payment_mode_updated": "Mode de paiement mis à jour",
|
||||
"payment_mode_confirm_delete": "Vous ne pourrez pas récupérer ce mode de paiement",
|
||||
"payments_attached": "This payment method is already attached to payments. Please delete the attached payments to proceed with deletion.",
|
||||
"expenses_attached": "This payment method is already attached to expenses. Please delete the attached expenses to proceed with deletion.",
|
||||
"payments_attached": "Ce moyen de paiement est déjà utilisé par des paiements. Merci de supprimer les paiements associés avant de procéder à la suppression.",
|
||||
"expenses_attached": "Ce moyen de paiement est déjà utilisé par des dépenses. Merci de supprimer les dépenses associées avant de procéder à la suppression.",
|
||||
"deleted_message": "Mode de paiement supprimé"
|
||||
},
|
||||
"expense_category": {
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Fuseau horaire",
|
||||
"fiscal_year": "Exercice fiscal",
|
||||
"date_format": "Format de date",
|
||||
"time_format": "Format d'heure",
|
||||
"discount_setting": "Réglage de remise",
|
||||
"discount_per_item": "Remise par article",
|
||||
"discount_setting_description": "Activez cette option si vous souhaitez détailler les remises par article. Par défaut, les remises sont ajoutées au sous-total.",
|
||||
@@ -1244,7 +1248,8 @@
|
||||
"updated_message": "Préférences mises à jour",
|
||||
"select_language": "Choisir la langue",
|
||||
"select_time_zone": "Sélectionnez le fuseau horaire",
|
||||
"select_date_format": "Sélectionnez le format de date",
|
||||
"select_date_format": "Choix du format de date",
|
||||
"select_time_format": "Choix du format d'heure",
|
||||
"select_financial_year": "Exercice fiscal",
|
||||
"recurring_invoice_status": "Statut de la facture récurrente",
|
||||
"create_status": "Créer un statut",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Mettre à jour le statut",
|
||||
"completed": "Terminé",
|
||||
"company_currency_unchangeable": "La devise de la société ne peut pas être modifiée",
|
||||
"invoice_use_time": "Inclure l'heure dans les factures",
|
||||
"invoice_use_time_description": "Activez cette option si vous souhaitez indiquer l'heure exacte de la facturation.",
|
||||
"fiscal_years": {
|
||||
"january_december": "Janvier - Décembre",
|
||||
"february_january": "Février - Janvier",
|
||||
@@ -1262,7 +1269,7 @@
|
||||
"june_may": "Juin - Mai",
|
||||
"july_june": "Juillet - Juin",
|
||||
"august_july": "Aout - Juillet",
|
||||
"september_august": "Septembre - Aout",
|
||||
"september_august": "Septembre - Août ",
|
||||
"october_september": "Octobre - Septembre",
|
||||
"november_october": "Novembre - Octobre",
|
||||
"december_november": "Décembre - Novembre"
|
||||
@@ -1272,7 +1279,7 @@
|
||||
"title": "Mise à jour",
|
||||
"description": "Mettez simplement InvoiceShelf à jour en cliquant sur le bouton ci-dessous.",
|
||||
"check_update": "Rechercher des mises à jour",
|
||||
"insider_consent": "Opt-in for Insider releases. Recommended for testing purposes only.",
|
||||
"insider_consent": "Utiliser les versions de test. Recommandé uniquement à des fins de test.",
|
||||
"avail_update": "Nouvelle mise à jour disponible",
|
||||
"next_version": "Version suivante",
|
||||
"requirements": "Spécifications requises",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Fuseau horaire",
|
||||
"fiscal_year": "Exercice fiscal",
|
||||
"date_format": "Format de date",
|
||||
"time_format": "Format d'heure",
|
||||
"from_address": "De l'adresse",
|
||||
"username": "Nom d'utilisateur",
|
||||
"next": "Suivant",
|
||||
@@ -1441,7 +1449,7 @@
|
||||
"username": "Nom d'utilisateur de la base de données",
|
||||
"db_name": "Nom de la base de données",
|
||||
"db_path": "Emplacement de la base de données",
|
||||
"overwrite": "Overwrite existing database and proceed",
|
||||
"overwrite": "Écraser la base de données existante et continuer",
|
||||
"desc": "Créez une base de données sur votre serveur et définissez les informations d'identification à l'aide du formulaire ci-dessous."
|
||||
},
|
||||
"permissions": {
|
||||
@@ -1463,7 +1471,7 @@
|
||||
"not_contain": "Le domaine de l'application ne doit pas contenir",
|
||||
"or": "ou",
|
||||
"in_front": "devant le domaine.",
|
||||
"if_you": "Si vous accédez au site Web sur un autre port, veuillez mentionner le port. Par exemple :"
|
||||
"if_you": "Si vous accédez au site Web sur un port différent, veuillez préciser le port. Par exemple :"
|
||||
}
|
||||
},
|
||||
"mail": {
|
||||
@@ -1614,15 +1622,17 @@
|
||||
"pdf_ship_to": "Expédier à",
|
||||
"pdf_received_from": "Reçu de :",
|
||||
"pdf_tax_label": "Taxe",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_tax_id": "N° fiscal",
|
||||
"pdf_vat_id": "N° de TVA",
|
||||
"pdf_amount_paid": "Montant acquitté",
|
||||
"pdf_amount_due": "Montant dû",
|
||||
"mail_thanks": "Merci",
|
||||
"mail_view_estimate": "Voir le Devis",
|
||||
"mail_viewed_estimate": ":name a consulté ce Devis.",
|
||||
"mail_view_invoice": "Voir la Facture",
|
||||
"mail_viewed_invoice": ":name a consulté cette Facture.",
|
||||
"mail_view_payment": "Voir le Paiement",
|
||||
"notification_view_estimate": "[Notification] Un Devis a été consulté",
|
||||
"notification_view_invoice": "[Notification] Une Facture a été consultée",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "Vous avez reçu une nouvelle facture de <b>{COMPANY_NAME}</b>.</br> Vous pouvez la télécharger en cliquant sur le bouton :"
|
||||
"mail_view_estimate": "Voir le devis",
|
||||
"mail_viewed_estimate": ":name a consulté ce devis.",
|
||||
"mail_view_invoice": "Voir la facture",
|
||||
"mail_viewed_invoice": ":name a consulté cette facture.",
|
||||
"mail_view_payment": "Voir le paiement",
|
||||
"notification_view_estimate": "[Notification] Devis consulté",
|
||||
"notification_view_invoice": "[Notification] Facture consultée",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "Vous avez reçu une nouvelle facture de <b>{COMPANY_NAME}</b>.</br> Vous pouvez la télécharger en cliquant sur le bouton ci-dessous :"
|
||||
}
|
||||
|
||||
80
lang/hi.json
80
lang/hi.json
@@ -101,32 +101,32 @@
|
||||
"login_successfully": "सफलतापूर्वक लॉगिन किया गया",
|
||||
"logged_out_successfully": "सफलतापूर्वक लॉग आउट किया गया",
|
||||
"mark_as_default": "डिफ़ॉल्ट के रूप में चिह्नित करें",
|
||||
"no_data_found": "No data found",
|
||||
"no_data_found": "डाटा प्राप्त नहीं हुआ",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "पहले का",
|
||||
"next": "अगला",
|
||||
"showing": "दिखा रहा है",
|
||||
"to": "को",
|
||||
"of": "का",
|
||||
"results": "परिणाम"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"drag_a_file": "फ़ाइल को यहाँ खींचें.",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"the_list_is_empty": "सूची खाली है",
|
||||
"no_results_found": "कोई परिणाम नहीं मिला"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "क्लिपबोर्ड पर नक़ल करें"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "वर्ष चुनें",
|
||||
"cards": {
|
||||
"due_amount": "देय राशि",
|
||||
"customers": "Customer | Customers",
|
||||
"invoices": "Invoice | Invoices",
|
||||
"customers": "ग्राहक | ग्राहकों",
|
||||
"invoices": "",
|
||||
"estimates": "Estimate | Estimates",
|
||||
"payments": "Payment | Payments"
|
||||
},
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "ग्राहक",
|
||||
"prefix": "प्रीफ़िक्स",
|
||||
"tax_id": "टैक्स आईडी",
|
||||
"add_customer": "ग्राहक जोड़ें",
|
||||
"contacts_list": "ग्राहक सूची",
|
||||
"name": "नाम",
|
||||
@@ -323,7 +324,7 @@
|
||||
"record_payment": "रिकॉर्ड भुगतान",
|
||||
"add_estimate": "अनुमान जोड़ें",
|
||||
"save_estimate": "अनुमान बचाएं",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"cloned_successfully": "अनुमान सफलतापूर्वक क्लोन किया गया",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "इस अनुमान का उपयोग एक नया चालान बनाने के लिए किया जाएगा।",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -581,20 +582,20 @@
|
||||
"on_the_first_day_of_every_month_at_midnight": "On the first day of every month at 00:00",
|
||||
"every_6_month": "Every 6 Month",
|
||||
"every_year_on_the_first_day_of_january_at_midnight": "Every year on the first day of january at 00:00",
|
||||
"custom": "Custom"
|
||||
"custom": "स्वनिर्मित"
|
||||
},
|
||||
"confirm_delete": "You will not be able to recover this Invoice | You will not be able to recover these Invoices",
|
||||
"created_message": "Recurring Invoice created successfully",
|
||||
"confirm_delete": "आप इस चालान को पुनर्प्राप्त नहीं कर पाएंगे | आप इन चालानों को पुनर्प्राप्त नहीं कर पाएंगे",
|
||||
"created_message": "आवर्ती चालान सफलतापूर्वक बनाया गया",
|
||||
"updated_message": "Recurring Invoice updated successfully",
|
||||
"deleted_message": "Recurring Invoice deleted successfully | Recurring Invoices deleted successfully",
|
||||
"marked_as_sent_message": "Recurring Invoice marked as sent successfully",
|
||||
"deleted_message": "आवर्ती चालान सफलतापूर्वक हटा दिया गया",
|
||||
"marked_as_sent_message": "आवर्ती चालान को सफलतापूर्वक भेजा गया के रूप में चिह्नित किया गया",
|
||||
"user_email_does_not_exist": "User email does not exist",
|
||||
"something_went_wrong": "something went wrong",
|
||||
"invalid_due_amount_message": "Total Recurring Invoice amount cannot be less than total paid amount for this Recurring Invoice. Please update the invoice or delete the associated payments to continue.",
|
||||
"invalid_due_amount_message": "कुल चालान राशि इस चालान के लिए कुल भुगतान की गई राशि से कम नहीं हो सकती है। जारी रखने के लिए कृपया इनवॉइस अपडेट करें या संबद्ध भुगतानों को हटा दें।",
|
||||
"limit": {
|
||||
"none": "None",
|
||||
"date": "Date",
|
||||
"count": "Count"
|
||||
"none": "कोई नहीं",
|
||||
"date": "दिनांक",
|
||||
"count": "गिनती"
|
||||
}
|
||||
},
|
||||
"payments": {
|
||||
@@ -625,7 +626,7 @@
|
||||
"no_matching_payments": "कोई मिलान भुगतान नहीं हैं!",
|
||||
"list_of_payments": "इस खंड में भुगतान की सूची होगी।",
|
||||
"select_payment_mode": "भुगतान मोड चुनें",
|
||||
"confirm_mark_as_sent": "This estimate will be marked as sent",
|
||||
"confirm_mark_as_sent": "इस अनुमान को भेजा गया के रूप में चिह्नित किया जाएगा",
|
||||
"confirm_send_payment": "यह भुगतान ग्राहक को ईमेल के माध्यम से भेजा जाएगा",
|
||||
"send_payment_successfully": "भुगतान सफलतापूर्वक भेजा गया",
|
||||
"something_went_wrong": "कुछ गलत हो गया",
|
||||
@@ -634,7 +635,7 @@
|
||||
"updated_message": "भुगतान सफलतापूर्वक अपडेट किया गया",
|
||||
"deleted_message": "भुगतान सफलतापूर्वक हटाया गया | भुगतान सफलतापूर्वक हटा दिए गए",
|
||||
"invalid_amount_message": "भुगतान राशि अमान्य है",
|
||||
"amount_due": "Due Amount"
|
||||
"amount_due": "बकाया राशि"
|
||||
},
|
||||
"expenses": {
|
||||
"title": "व्यय",
|
||||
@@ -642,7 +643,7 @@
|
||||
"select_a_customer": "एक ग्राहक चुनें",
|
||||
"expense_title": "शीर्षक",
|
||||
"customer": "ग्राहक",
|
||||
"currency": "Currency",
|
||||
"currency": "मुद्रा",
|
||||
"contact": "संपर्क",
|
||||
"category": "वर्ग",
|
||||
"from_date": "इस तारीख से",
|
||||
@@ -697,7 +698,7 @@
|
||||
"retype_password": "पासवर्ड पुन: लिखें"
|
||||
},
|
||||
"modules": {
|
||||
"buy_now": "Buy Now",
|
||||
"buy_now": "अभी खरीदें",
|
||||
"install": "इंस्टॉल",
|
||||
"price": "मूल्य",
|
||||
"download_zip_file": "ज़िप डाउनलोड करे",
|
||||
@@ -738,7 +739,7 @@
|
||||
"purchased": "खरीदी",
|
||||
"installed": "इंस्टॉल हुआ।",
|
||||
"no_modules_installed": "अभी तक कोई मॉड्यूल स्थापित नहीं है!",
|
||||
"disable_warning": "All the settings for this particular will be reverted.",
|
||||
"disable_warning": "इस विशेष के लिए सभी सेटिंग्स पूर्ववत कर दी जाएंगी.",
|
||||
"what_you_get": "What you get",
|
||||
"sign_up_and_get_token": "Sign up & Get Token"
|
||||
},
|
||||
@@ -768,7 +769,7 @@
|
||||
"updated_message": "उपयोगकर्ता सफलतापूर्वक अपडेट किया गया",
|
||||
"deleted_message": "उपयोगकर्ता सफलतापूर्वक हटाया गया | उपयोगकर्ता सफलतापूर्वक हटा दिया गया",
|
||||
"select_company_role": "Select Role for {company}",
|
||||
"companies": "Companies"
|
||||
"companies": "कंपनियों"
|
||||
},
|
||||
"reports": {
|
||||
"title": "रिपोर्ट",
|
||||
@@ -794,8 +795,8 @@
|
||||
"from_date": "इस तारीख से",
|
||||
"report_type": "रिपोर्ट का प्रकार",
|
||||
"sort": {
|
||||
"by_customer": "By Customer",
|
||||
"by_item": "By Item"
|
||||
"by_customer": "ग्राहक द्वारा",
|
||||
"by_item": "आइटम द्वारा"
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
@@ -850,11 +851,11 @@
|
||||
"custom_fields": "कस्टम फील्ड्स",
|
||||
"payment_modes": "भुगतान के प्रकार",
|
||||
"notes": "नोट्स",
|
||||
"exchange_rate": "Exchange Rate",
|
||||
"address_information": "Address Information"
|
||||
"exchange_rate": "विनिमय दर",
|
||||
"address_information": "पते के बारे में जानकारी"
|
||||
},
|
||||
"address_information": {
|
||||
"section_description": " You can update Your Address information using form below."
|
||||
"section_description": " आप नीचे दिए गए फॉर्म का उपयोग करके अपनी पता जानकारी अपडेट कर सकते हैं"
|
||||
},
|
||||
"title": "समायोजन",
|
||||
"setting": "सेटिंग्स | समायोजन",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primary Currency",
|
||||
"timezone": "Time Zone",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Currencies",
|
||||
"currency": "Currency | Currencies",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Select Language",
|
||||
"select_time_zone": "Select Time Zone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "From Address",
|
||||
"username": "Username",
|
||||
"next": "Next",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
898
lang/hr.json
898
lang/hr.json
File diff suppressed because it is too large
Load Diff
784
lang/id.json
784
lang/id.json
File diff suppressed because it is too large
Load Diff
18
lang/it.json
18
lang/it.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Clienti",
|
||||
"prefix": "Prefisso",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Aggiungi cliente",
|
||||
"contacts_list": "Lista clienti",
|
||||
"name": "Nome",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Registra Pagamento",
|
||||
"add_estimate": "Aggiungi Preventivo",
|
||||
"save_estimate": "Salva Preventivo",
|
||||
"cloned_successfully": "Preventivo clonato con successo",
|
||||
"clone_estimate": "Clonare preventivo",
|
||||
"confirm_clone": "Questo preventivo sarà clonato in un nuovo preventivo",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "Questo preventivo verrà usato per generare una nuova fattura.",
|
||||
"conversion_message": "Fattura creata",
|
||||
"confirm_send_estimate": "Questo preventivo verrà inviato al cliente via mail",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Tipo Descrizione Articolo (Opzionale)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequenza",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Seleziona Frequenza",
|
||||
"minute": "Minuto",
|
||||
"hour": "Ora",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Valuta Principale",
|
||||
"timezone": "Fuso Orario",
|
||||
"date_format": "Formato data",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Valute",
|
||||
"currency": "Valùta | Valute",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Singolo carattere per specificare il confine tra 2 componenti separati. Per impostazione predefinita è impostato a -",
|
||||
"delimiter_param_label": "Valore Delimitatore",
|
||||
"date_format": "Formato data",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "Un campo di data e ora locale che accetta un parametro di formato. Il formato predefinito: 'Y' rende l'anno corrente.",
|
||||
"date_format_param_label": "Formato",
|
||||
"sequence": "Sequenza",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Fuso Orario",
|
||||
"fiscal_year": "Anno finanziario",
|
||||
"date_format": "Formato Data",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Impostazione Sconto",
|
||||
"discount_per_item": "Sconto Per Item ",
|
||||
"discount_setting_description": "Abilita se vuoi aggiungere uno sconto ad uno specifica fattura. Di default, lo sconto è aggiunto direttamente in fattura.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "seleziona lingua",
|
||||
"select_time_zone": "Seleziona Time Zone",
|
||||
"select_date_format": "Seleziona Formato Data",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Seleziona anno finanziario",
|
||||
"recurring_invoice_status": "Stato Fattura Ricorrente",
|
||||
"create_status": "Crea stato",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Aggiorna stato",
|
||||
"completed": "Completato",
|
||||
"company_currency_unchangeable": "La valuta dell'azienda non può essere cambiata",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Fuso Orario",
|
||||
"fiscal_year": "Anno Finanziario",
|
||||
"date_format": "Formato Date",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Indirizzo - Da",
|
||||
"username": "Nome utente",
|
||||
"next": "Successivo",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tassa",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
2894
lang/ja.json
2894
lang/ja.json
File diff suppressed because it is too large
Load Diff
12
lang/lt.json
12
lang/lt.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Klientai",
|
||||
"prefix": "Priešdėlis",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Pridėti klientą",
|
||||
"contacts_list": "Klientų sąrašas",
|
||||
"name": "Vardas",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Pagrindinė valiuta",
|
||||
"timezone": "Laiko zona",
|
||||
"date_format": "Datos formatas",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Valiutos",
|
||||
"currency": "Valiuta | Valiutos",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Datos formatas",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Formatas",
|
||||
"sequence": "Seka",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Laiko zona",
|
||||
"fiscal_year": "Finansiniai metai",
|
||||
"date_format": "Datos formatas",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Pasirinkite Kalbą",
|
||||
"select_time_zone": "Pasirinkite Laiko Zoną",
|
||||
"select_date_format": "Pasirinkite Datos Formatą",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Sukurti būseną",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Atnaujinti būseną",
|
||||
"completed": "Užbaigtas",
|
||||
"company_currency_unchangeable": "Įmonės valiuta negali būti pakeista",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Iš adreso",
|
||||
"username": "Vartotojo vardas",
|
||||
"next": "Kitas",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
18
lang/lv.json
18
lang/lv.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Klienti",
|
||||
"prefix": "Prefikss",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Pievienot klientu",
|
||||
"contacts_list": "Klientu saraksts",
|
||||
"name": "Vārds",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Izveidot maksājumu",
|
||||
"add_estimate": "Pievienot aprēķinu",
|
||||
"save_estimate": "Saglabāt aprēķinu",
|
||||
"cloned_successfully": "Piedāvājums veiksmīgi klonēts",
|
||||
"clone_estimate": "Klonēt piedāvājumu",
|
||||
"confirm_clone": "Šis piedāvājums tiks klonēts jaunā piedāvājumā",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "Šis aprēķins tiks izmantots, lai izveidotu jaunu rēķinu.",
|
||||
"conversion_message": "Rēķins izveidots veiksmīgi",
|
||||
"confirm_send_estimate": "Šis aprēķins tiks nosūtīts klientam e-pastā",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primārā valūta",
|
||||
"timezone": "Laika josla",
|
||||
"date_format": "Datuma formāts",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Valūtas",
|
||||
"currency": "Valūta | Valūtas",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Laika josla",
|
||||
"fiscal_year": "Finanšu gads",
|
||||
"date_format": "Datuma formāts",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Atlaižu iestatījumi",
|
||||
"discount_per_item": "Atlaide par preci/pakalpojumu ",
|
||||
"discount_setting_description": "Iespējot šo, lai piešķirtu atlaides individuālām rēķina precēm. Pēc noklusējuma, atlaide tiek piemērota rēķinam.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Izvēlieties valodu",
|
||||
"select_time_zone": "Izvēlaties laika joslu",
|
||||
"select_date_format": "Izvēlaties datuma formātu",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Izvēlaties finanšu gadu",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "From Address",
|
||||
"username": "Username",
|
||||
"next": "Next",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
12
lang/mk.json
12
lang/mk.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Customers",
|
||||
"prefix": "Prefix",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Add Customer",
|
||||
"contacts_list": "Customer List",
|
||||
"name": "Name",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primary Currency",
|
||||
"timezone": "Time Zone",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Currencies",
|
||||
"currency": "Currency | Currencies",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Select Language",
|
||||
"select_time_zone": "Select Time Zone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "From Address",
|
||||
"username": "Username",
|
||||
"next": "Next",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
66
lang/nl.json
66
lang/nl.json
@@ -18,7 +18,7 @@
|
||||
"add_company": "Bedrijf toevoegen",
|
||||
"view_pdf": "Bekijk PDF",
|
||||
"copy_pdf_url": "Kopieer PDF-URL",
|
||||
"download_pdf": "Download PDF",
|
||||
"download_pdf": "PDF downloaden",
|
||||
"save": "Opslaan",
|
||||
"create": "Maak",
|
||||
"cancel": "Annuleren",
|
||||
@@ -101,25 +101,25 @@
|
||||
"login_successfully": "Succesvol ingelogd!",
|
||||
"logged_out_successfully": "Succesvol afgemeld",
|
||||
"mark_as_default": "Markeren als standaard",
|
||||
"no_data_found": "No data found",
|
||||
"no_data_found": "Geen gegevens beschikbaar",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "Vorige",
|
||||
"next": "Volgende",
|
||||
"showing": "Afgebeeld",
|
||||
"to": "tot",
|
||||
"of": "van",
|
||||
"results": "resultaten"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
"drag_a_file": "Sleep een bestand hierheen of",
|
||||
"browse": "bladeren",
|
||||
"to_choose": "om een bestand te kiezen"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"the_list_is_empty": "De lijst is leeg",
|
||||
"no_results_found": "Geen resultaten gevonden"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "Kopieer naar Klembord"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Selecteer jaar",
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Klanten",
|
||||
"prefix": "Voorvoegsel",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Klant toevoegen",
|
||||
"contacts_list": "Klantenlijst",
|
||||
"name": "Naam",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Betaling registreren",
|
||||
"add_estimate": "Offerte toevoegen",
|
||||
"save_estimate": "Bewaar offerte",
|
||||
"cloned_successfully": "Offerte succesvol gekloond",
|
||||
"clone_estimate": "Offerte klonen",
|
||||
"confirm_clone": "Deze offerte zal worden gekopieerd naar een nieuwe offerte",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "Deze offerte wordt gebruikt om een nieuwe factuur te maken.",
|
||||
"conversion_message": "Factuur gemaakt",
|
||||
"confirm_send_estimate": "Deze offerte wordt via e-mail naar de klant gestuurd",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type item beschrijving (optioneel)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequentie",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Frequentie selecteren",
|
||||
"minute": "Minuut",
|
||||
"hour": "Uur",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primaire valuta",
|
||||
"timezone": "Tijdzone",
|
||||
"date_format": "Datumnotatie",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Valuta's",
|
||||
"currency": "Valuta | Valuta's",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Enkel teken voor het opgeven van de grens tussen 2 verschillende componenten. Standaard is het ingesteld op -",
|
||||
"delimiter_param_label": "Scheidingsteken waarde",
|
||||
"date_format": "Datumformaat",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "Een lokaal datum- en tijdveld dat een formaatparameter accepteert. Het standaardformaat: 'Y' geeft het huidige jaar weer.",
|
||||
"date_format_param_label": "Formaat",
|
||||
"sequence": "Volgnummer",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Tijdzone",
|
||||
"fiscal_year": "Financieel jaar",
|
||||
"date_format": "Datumnotatie",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Kortingsinstelling",
|
||||
"discount_per_item": "Korting per item",
|
||||
"discount_setting_description": "Schakel dit in als u korting wilt toevoegen aan afzonderlijke factuuritems. Standaard wordt korting rechtstreeks aan de factuur toegevoegd.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Selecteer taal",
|
||||
"select_time_zone": "Selecteer Tijdzone",
|
||||
"select_date_format": "Selecteer datum/tijdindeling",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Selecteer financieel ja",
|
||||
"recurring_invoice_status": "Status periodieke factuur",
|
||||
"create_status": "Status aanmaken",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Updatestatus",
|
||||
"completed": "Voltooid",
|
||||
"company_currency_unchangeable": "Bedrijfsvaluta kan niet worden gewijzigd",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Tijdzone",
|
||||
"fiscal_year": "Financieel jaar",
|
||||
"date_format": "Datumnotatie",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Van adres",
|
||||
"username": "Gebruikersnaam",
|
||||
"next": "De volgende",
|
||||
@@ -1610,19 +1618,21 @@
|
||||
"pdf_total_tax_label": "TOTALE BELASTINGEN",
|
||||
"pdf_tax_types_label": "Belastingtypen",
|
||||
"pdf_expenses_label": "Uitgaven",
|
||||
"pdf_bill_to": "Rekening naar,",
|
||||
"pdf_bill_to": "Aan,",
|
||||
"pdf_ship_to": "Verzend naar,",
|
||||
"pdf_received_from": "Ontvangen van:",
|
||||
"pdf_tax_label": "Btw",
|
||||
"pdf_tax_id": "FIN",
|
||||
"pdf_vat_id": "BTW",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
"mail_view_invoice": "View Invoice",
|
||||
"mail_viewed_invoice": ":name viewed this Invoice.",
|
||||
"mail_view_payment": "View Payment",
|
||||
"notification_view_estimate": "[Notification] Estimate viewed",
|
||||
"notification_view_invoice": "[Notification] Invoice viewed",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:"
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Bedankt",
|
||||
"mail_view_estimate": "Bekijk offerte",
|
||||
"mail_viewed_estimate": ":name heeft deze offerte bekeken.",
|
||||
"mail_view_invoice": "Bekijk factuur",
|
||||
"mail_viewed_invoice": ":name heeft deze factuur bekeken.",
|
||||
"mail_view_payment": "Bekijk betaling",
|
||||
"notification_view_estimate": "[Notification] Offerte bekeken",
|
||||
"notification_view_invoice": "[Notification] Factuur bekeken",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "Je hebt een factuur ontvangen van <b>{COMPANY_NAME}</b>.</br> Download via de onderstaande knop:"
|
||||
}
|
||||
|
||||
18
lang/pl.json
18
lang/pl.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Klienci",
|
||||
"prefix": "Przedrostek",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Dodaj klienta",
|
||||
"contacts_list": "Lista klientów",
|
||||
"name": "Nazwa",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Zarejestruj płatność",
|
||||
"add_estimate": "Dodaj ofertę",
|
||||
"save_estimate": "Zapisz ofertę",
|
||||
"cloned_successfully": "Oferta została pomyślnie sklonowana",
|
||||
"clone_estimate": "Sklonuj ofertę",
|
||||
"confirm_clone": "Ta oferta zostanie sklonowana do nowej oferty",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "Ta oferta zostanie użyta do utworzenia nowej faktury.",
|
||||
"conversion_message": "Faktura została utworzona pomyślnie",
|
||||
"confirm_send_estimate": "Ta oferta zostanie wysłana pocztą elektroniczną do kontrahenta",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Opis pozycji (opcjonalnie)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Częstotliwość",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Wybierz częstotliwość",
|
||||
"minute": "Minuta",
|
||||
"hour": "Godzina",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Waluta główna",
|
||||
"timezone": "Strefa czasowa",
|
||||
"date_format": "Format daty",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Waluty",
|
||||
"currency": "Waluta | Waluty",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Pojedynczy znak do określenia granicy pomiędzy 2 oddzielnymi składnikami. Domyślnie ustawiony na -",
|
||||
"delimiter_param_label": "Wartość separatora",
|
||||
"date_format": "Format daty",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "Pole daty i czasu lokalnego, które akceptuje parametr formatu. Domyślny format: 'Y' renderuje bieżący rok.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sekwencja",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Strefa czasowa",
|
||||
"fiscal_year": "Rok finansowy",
|
||||
"date_format": "Format daty",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Ustawienia rabatu",
|
||||
"discount_per_item": "Rabat na produkt ",
|
||||
"discount_setting_description": "Włącz to, jeśli chcesz dodać rabat do poszczególnych elementów faktury. Domyślnie rabat jest dodawany bezpośrednio do całej faktury.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Wybierz język",
|
||||
"select_time_zone": "Ustaw strefę czasową",
|
||||
"select_date_format": "Wybierz format daty",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Wybierz rok podatkowy",
|
||||
"recurring_invoice_status": "Status Faktury Cyklicznej",
|
||||
"create_status": "Utwórz status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Aktualizuj status",
|
||||
"completed": "Ukończone",
|
||||
"company_currency_unchangeable": "Nie można zmienić waluty firmy",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Strefa czasowa",
|
||||
"fiscal_year": "Rok finansowy",
|
||||
"date_format": "Format daty",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Adres nadawcy",
|
||||
"username": "Nazwa użytkownika",
|
||||
"next": "Następny",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Podatek",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
162
lang/pt.json
162
lang/pt.json
@@ -128,7 +128,7 @@
|
||||
"customers": "Customer | Customers",
|
||||
"invoices": "Invoice | Invoices",
|
||||
"estimates": "Estimate | Estimates",
|
||||
"payments": "Payment | Payments"
|
||||
"payments": "Pagamento | Pagamentos"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "Vendas",
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Clientes",
|
||||
"prefix": "Prefixo",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Adicionar cliente",
|
||||
"contacts_list": "Lista de clientes",
|
||||
"name": "Nome",
|
||||
@@ -230,7 +231,7 @@
|
||||
"portal_access": "Clientes → Acessar portal",
|
||||
"portal_access_text": "Clientes→ Texto do portal de acesso?",
|
||||
"portal_access_url": "Portal de serviço ao consumidor URL",
|
||||
"portal_access_url_help": "Please copy & forward the above given URL to your customer for providing access.",
|
||||
"portal_access_url_help": "Copie e encaminhe o link para seu cliente para fornecer acesso.",
|
||||
"billing_address": "Endereço de cobrança",
|
||||
"shipping_address": "Endereço de entrega",
|
||||
"copy_billing_address": "Copiar Endereço de Faturamento",
|
||||
@@ -250,7 +251,7 @@
|
||||
"confirm_delete": "Você não poderá recuperar este cliente e todas as faturas, orçamentos e pagamentos relacionados. | Você não poderá recuperar esses clientes e todas as faturas, estimativas e pagamentos relacionados.",
|
||||
"created_message": "Cliente criado com sucesso",
|
||||
"updated_message": "Cliente atualizado com sucesso",
|
||||
"address_updated_message": "Address Information Updated succesfully",
|
||||
"address_updated_message": "Informação de endereço atualizada com sucesso",
|
||||
"deleted_message": "Cliente excluído com sucesso | Clientes excluídos com sucesso",
|
||||
"edit_currency_not_allowed": "Não é possível alterar a moeda depois de criar transações."
|
||||
},
|
||||
@@ -284,8 +285,8 @@
|
||||
},
|
||||
"estimates": {
|
||||
"title": "Orçamentos",
|
||||
"accept_estimate": "Accept Estimate",
|
||||
"reject_estimate": "Reject Estimate",
|
||||
"accept_estimate": "Aceitar estimativa",
|
||||
"reject_estimate": "Rejeitar estimativa",
|
||||
"estimate": "Orçamento | Orçamentos",
|
||||
"estimates_list": "Lista de orçamentos",
|
||||
"days": "{days} Dias",
|
||||
@@ -309,7 +310,7 @@
|
||||
"date": "Data",
|
||||
"due_date": "Data de Vencimento",
|
||||
"expiry_date": "Data de expiração",
|
||||
"status": "Status",
|
||||
"status": "Estado",
|
||||
"add_tax": "Adicionar Imposto",
|
||||
"amount": "Valor",
|
||||
"action": "Ação",
|
||||
@@ -340,10 +341,10 @@
|
||||
},
|
||||
"accepted": "Aceito",
|
||||
"rejected": "Rejeitado",
|
||||
"expired": "Expired",
|
||||
"expired": "Expirado",
|
||||
"sent": "Enviado",
|
||||
"draft": "Rascunho",
|
||||
"viewed": "Viewed",
|
||||
"viewed": "Visto",
|
||||
"declined": "Rejeitado",
|
||||
"new_estimate": "Novo orçamento",
|
||||
"add_new_estimate": "Adicionar novo orçamento",
|
||||
@@ -377,14 +378,14 @@
|
||||
"select_an_item": "Escreva ou clique para selecionar um item",
|
||||
"type_item_description": "Descrição do Item (opcional)"
|
||||
},
|
||||
"mark_as_default_estimate_template_description": "If enabled, the selected template will be automatically selected for new estimates."
|
||||
"mark_as_default_estimate_template_description": "Se ativado, o modelo selecionado será usado para novas estimativas."
|
||||
},
|
||||
"invoices": {
|
||||
"title": "Faturas",
|
||||
"download": "Download",
|
||||
"pay_invoice": "Pay Invoice",
|
||||
"download": "Baixar",
|
||||
"pay_invoice": "Pagar fatura",
|
||||
"invoices_list": "Lista de faturas",
|
||||
"invoice_information": "Invoice Information",
|
||||
"invoice_information": "Informações da fatura",
|
||||
"days": "{days} dias",
|
||||
"months": "{months} Mês",
|
||||
"years": "{years} Ano",
|
||||
@@ -396,7 +397,7 @@
|
||||
"completed": "Concluído",
|
||||
"customer": "CLIENTE",
|
||||
"paid_status": "STATUS PAGAMENTO",
|
||||
"ref_no": "REF NO.",
|
||||
"ref_no": "NÚM. REFERÊNCIA",
|
||||
"number": "NÚMERO",
|
||||
"amount_due": "VALOR DEVIDO",
|
||||
"partially_paid": "Parcialmente Pago",
|
||||
@@ -410,7 +411,7 @@
|
||||
"add_item": "Adicionar um Item",
|
||||
"date": "Data",
|
||||
"due_date": "Data de Vencimento",
|
||||
"status": "Status",
|
||||
"status": "Estado",
|
||||
"add_tax": "Adicionar imposto",
|
||||
"amount": "Valor",
|
||||
"action": "Ação",
|
||||
@@ -469,7 +470,7 @@
|
||||
"marked_as_sent_message": "Fatura marcada como enviada com sucesso",
|
||||
"something_went_wrong": "algo deu errado",
|
||||
"invalid_due_amount_message": "O valor total da fatura não pode ser menor que o valor total pago para esta fatura. Atualize a fatura ou exclua os pagamentos associados para continuar.",
|
||||
"mark_as_default_invoice_template_description": "If enabled, the selected template will be automatically selected for new invoices."
|
||||
"mark_as_default_invoice_template_description": "Se ativado, o modelo selecionado será usado para novas faturas."
|
||||
},
|
||||
"recurring_invoices": {
|
||||
"title": "Faturas Recorrentes",
|
||||
@@ -486,56 +487,56 @@
|
||||
"completed": "Concluído",
|
||||
"customer": "CLIENTE",
|
||||
"paid_status": "STATUS PAGAMENTO",
|
||||
"ref_no": "REF NO.",
|
||||
"number": "NUMBER",
|
||||
"amount_due": "AMOUNT DUE",
|
||||
"partially_paid": "Partially Paid",
|
||||
"ref_no": "NÚM. REFERÊNCIA",
|
||||
"number": "NÚMERO",
|
||||
"amount_due": "VALOR DEVIDO",
|
||||
"partially_paid": "Parcialmente pago",
|
||||
"total": "Total",
|
||||
"discount": "Discount",
|
||||
"sub_total": "Sub Total",
|
||||
"invoice": "Recurring Invoice | Recurring Invoices",
|
||||
"invoice_number": "Recurring Invoice Number",
|
||||
"next_invoice_date": "Next Invoice Date",
|
||||
"ref_number": "Ref Number",
|
||||
"contact": "Contact",
|
||||
"add_item": "Add an Item",
|
||||
"date": "Date",
|
||||
"limit_by": "Limit by",
|
||||
"limit_date": "Limit Date",
|
||||
"limit_count": "Limit Count",
|
||||
"count": "Count",
|
||||
"status": "Status",
|
||||
"select_a_status": "Select a status",
|
||||
"working": "Working",
|
||||
"on_hold": "On Hold",
|
||||
"complete": "Completed",
|
||||
"add_tax": "Add Tax",
|
||||
"amount": "Amount",
|
||||
"action": "Action",
|
||||
"notes": "Notes",
|
||||
"view": "View",
|
||||
"basic_info": "Basic Info",
|
||||
"send_invoice": "Send Recurring Invoice",
|
||||
"auto_send": "Auto Send",
|
||||
"resend_invoice": "Resend Recurring Invoice",
|
||||
"invoice_template": "Recurring Invoice Template",
|
||||
"conversion_message": "Recurring Invoice cloned successful",
|
||||
"template": "Template",
|
||||
"mark_as_sent": "Mark as sent",
|
||||
"confirm_send_invoice": "This recurring invoice will be sent via email to the customer",
|
||||
"invoice_mark_as_sent": "This recurring invoice will be marked as sent",
|
||||
"confirm_send": "This recurring invoice will be sent via email to the customer",
|
||||
"starts_at": "Start Date",
|
||||
"due_date": "Invoice Due Date",
|
||||
"record_payment": "Record Payment",
|
||||
"add_new_invoice": "Add New Recurring Invoice",
|
||||
"update_expense": "Update Expense",
|
||||
"edit_invoice": "Edit Recurring Invoice",
|
||||
"new_invoice": "New Recurring Invoice",
|
||||
"send_automatically": "Send Automatically",
|
||||
"send_automatically_desc": "Enable this, if you would like to send the invoice automatically to the customer when its created.",
|
||||
"save_invoice": "Save Recurring Invoice",
|
||||
"update_invoice": "Update Recurring Invoice",
|
||||
"discount": "Desconto",
|
||||
"sub_total": "Subtotal",
|
||||
"invoice": "Fatura recorrente | Faturas recorrentes",
|
||||
"invoice_number": "Número de fatura recorrente",
|
||||
"next_invoice_date": "Data da próxima fatura",
|
||||
"ref_number": "Núm. Referência",
|
||||
"contact": "Contato",
|
||||
"add_item": "Adicionar um item",
|
||||
"date": "Data",
|
||||
"limit_by": "Até",
|
||||
"limit_date": "Data limite",
|
||||
"limit_count": "Contagem limite",
|
||||
"count": "Contagem",
|
||||
"status": "Estado",
|
||||
"select_a_status": "Selecione um estado",
|
||||
"working": "Funcionando",
|
||||
"on_hold": "Pendente",
|
||||
"complete": "Concluído",
|
||||
"add_tax": "Adicionar taxa",
|
||||
"amount": "Quantidade",
|
||||
"action": "Ação",
|
||||
"notes": "Observações",
|
||||
"view": "Ver",
|
||||
"basic_info": "Informações básicas",
|
||||
"send_invoice": "Enviar fatura recorrente",
|
||||
"auto_send": "Enviar automaticamente",
|
||||
"resend_invoice": "Reenviar fatura recorrente",
|
||||
"invoice_template": "Modelo de fatura recorrente",
|
||||
"conversion_message": "Fatura clonada com sucesso",
|
||||
"template": "Modelo",
|
||||
"mark_as_sent": "Marcar como vista",
|
||||
"confirm_send_invoice": "Essa fatura será enviada ao cliente por e-mail",
|
||||
"invoice_mark_as_sent": "Essa fatura será marcada como vista",
|
||||
"confirm_send": "Essa fatura será enviada ao cliente por e-mail",
|
||||
"starts_at": "Data de início",
|
||||
"due_date": "Vencimento da fatura",
|
||||
"record_payment": "Registro de pagamento",
|
||||
"add_new_invoice": "Adicionar nova fatura",
|
||||
"update_expense": "Atualizar despesa",
|
||||
"edit_invoice": "Editar fatura",
|
||||
"new_invoice": "Nova fatura",
|
||||
"send_automatically": "Enviar automaticamente",
|
||||
"send_automatically_desc": "Ative se quiser que a fatura seja enviada automaticamente para o cliente.",
|
||||
"save_invoice": "Salvar fatura",
|
||||
"update_invoice": "Atualizar fatura",
|
||||
"add_new_tax": "Adicionar Novo Imposto",
|
||||
"no_invoices": "Não há faturas recorrentes ainda!",
|
||||
"mark_as_rejected": "Marcar como rejeitada",
|
||||
@@ -544,7 +545,7 @@
|
||||
"select_invoice": "Selecionar Fatura",
|
||||
"no_matching_invoices": "Não há faturas recorrentes correspondentes!",
|
||||
"mark_as_sent_successfully": "Fatura recorrente marcada como enviada com sucesso",
|
||||
"invoice_sent_successfully": "Recurring Invoice sent successfully",
|
||||
"invoice_sent_successfully": "Fatura enviada com sucesso",
|
||||
"cloned_successfully": "Recurring Invoice cloned successfully",
|
||||
"clone_invoice": "Clone Recurring Invoice",
|
||||
"confirm_clone": "This recurring invoice will be cloned into a new Recurring Invoice",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -642,7 +643,7 @@
|
||||
"select_a_customer": "Selecione um cliente",
|
||||
"expense_title": "Título",
|
||||
"customer": "Cliente",
|
||||
"currency": "Currency",
|
||||
"currency": "Moeda",
|
||||
"contact": "Contato",
|
||||
"category": "Categoria",
|
||||
"from_date": "A partir da Data",
|
||||
@@ -700,7 +701,7 @@
|
||||
"buy_now": "Buy Now",
|
||||
"install": "Install",
|
||||
"price": "Price",
|
||||
"download_zip_file": "Download ZIP file",
|
||||
"download_zip_file": "Baixar arquivo ZIP",
|
||||
"unzipping_package": "Unzipping Package",
|
||||
"copying_files": "Copying Files",
|
||||
"deleting_files": "Deleting Unused files",
|
||||
@@ -714,7 +715,7 @@
|
||||
"yearly": "Yearly",
|
||||
"updated": "Updated",
|
||||
"version": "Version",
|
||||
"disable": "Disable",
|
||||
"disable": "Desativar",
|
||||
"module_disabled": "Module Disabled",
|
||||
"enable": "Enable",
|
||||
"module_enabled": "Module Enabled",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Moeda Principal",
|
||||
"timezone": "Fuso horário",
|
||||
"date_format": "Formato de data",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Moedas",
|
||||
"currency": "Moeda | Moedas",
|
||||
@@ -981,7 +983,7 @@
|
||||
"learn_custom_format": "Learn how to use custom format",
|
||||
"add_new_component": "Add New Component",
|
||||
"component": "Component",
|
||||
"Parameter": "Parameter",
|
||||
"Parameter": "Parâmetro",
|
||||
"series": "Series",
|
||||
"series_description": "To set a static prefix/postfix like 'INV' across your company. It supports character length of up to 6 chars.",
|
||||
"series_param_label": "Series Value",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1049,7 +1052,7 @@
|
||||
"estimate_settings_updated": "Estimate Settings updated successfully",
|
||||
"convert_estimate_options": "Estimate Convert Action",
|
||||
"convert_estimate_description": "Specify what happens to the estimate after it gets converted to an invoice.",
|
||||
"no_action": "No action",
|
||||
"no_action": "Nenhuma ação",
|
||||
"delete_estimate": "Delete estimate",
|
||||
"mark_estimate_as_accepted": "Mark estimate as accepted"
|
||||
},
|
||||
@@ -1172,7 +1175,7 @@
|
||||
"exchange_help_text": "Enter exchange rate to convert from {currency} to {baseCurrency}",
|
||||
"currency_freak": "Currency Freak",
|
||||
"currency_layer": "Currency Layer",
|
||||
"open_exchange_rate": "Open Exchange Rate",
|
||||
"open_exchange_rate": "Abrir Taxa de Câmbio",
|
||||
"currency_converter": "Currency Converter",
|
||||
"server": "Server",
|
||||
"url": "URL",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Fuso Horário",
|
||||
"fiscal_year": "Ano Financeiro",
|
||||
"date_format": "Formato da Data",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Configuração de Desconto",
|
||||
"discount_per_item": "Desconto por Item ",
|
||||
"discount_setting_description": "Habilite isso se desejar adicionar desconto a itens de Fatura individualmente. Por padrão, o desconto é adicionado diretamente à Fatura.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Selecione um Idioma",
|
||||
"select_time_zone": "Selecione um fuso horário",
|
||||
"select_date_format": "Selecionar um Formato de Data",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Selecione o ano financeiro",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1407,7 +1414,7 @@
|
||||
"logo_preview": "Pré-visualizar Logotipo",
|
||||
"preferences": "Preferências",
|
||||
"preferences_desc": "Preferências padrão para o sistema.",
|
||||
"currency_set_alert": "The company's currency cannot be changed later.",
|
||||
"currency_set_alert": "A moeda da empresa não poderá ser alterada posteriormente.",
|
||||
"country": "País",
|
||||
"state": "Estado",
|
||||
"city": "Cidade",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Fuso Horário",
|
||||
"fiscal_year": "Ano Financeiro",
|
||||
"date_format": "Formato de Data",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Do Endereço",
|
||||
"username": "Nome de Usuário",
|
||||
"next": "Próximo",
|
||||
@@ -1452,11 +1460,11 @@
|
||||
},
|
||||
"verify_domain": {
|
||||
"title": "Verificação de Domínio",
|
||||
"desc": "O InvoiceShelfa usa a autenticação baseada na sessão que requer verificação de domínio para fins de segurança. Por favor, insira o domínio no qual você vai acessar seu aplicativo web.",
|
||||
"desc": "O InvoiceShelf usa a autenticação baseada na sessão que requer verificação de domínio para fins de segurança. Por favor, insira o domínio que você vai acessar seu aplicativo.",
|
||||
"app_domain": "Domínio do Aplicativo",
|
||||
"verify_now": "Verificar Agora",
|
||||
"success": "Domínio Verificado com Sucesso.",
|
||||
"failed": "Domain verification failed. Please enter valid domain name.",
|
||||
"failed": "Falha na verificação de domínio. Digite um nome de domínio válido.",
|
||||
"verify_and_continue": "Verificar e Continuar",
|
||||
"notes": {
|
||||
"notes": "Notes:",
|
||||
@@ -1516,7 +1524,7 @@
|
||||
"not_yet": "Ainda não? Envie novamente",
|
||||
"password_min_length": "A senha deve ter {count} caracteres",
|
||||
"name_min_length": "O nome deve ter pelo menos {count} letras.",
|
||||
"prefix_min_length": "Prefix must have at least {count} letters.",
|
||||
"prefix_min_length": "Prefixo deve ter pelo menos letras {count}.",
|
||||
"enter_valid_tax_rate": "Insira uma taxa de imposto válida",
|
||||
"numbers_only": "Apenas Números.",
|
||||
"characters_only": "Apenas Caracteres.",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
12
lang/ro.json
12
lang/ro.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Clienţi",
|
||||
"prefix": "Prefix",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Adauga client",
|
||||
"contacts_list": "Lista clienti",
|
||||
"name": "Nume",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primary Currency",
|
||||
"timezone": "Time Zone",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Currencies",
|
||||
"currency": "Currency | Currencies",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Select Language",
|
||||
"select_time_zone": "Select Time Zone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "From Address",
|
||||
"username": "Username",
|
||||
"next": "Next",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
68
lang/ru.json
68
lang/ru.json
@@ -4,7 +4,7 @@
|
||||
"customers": "Клиенты",
|
||||
"items": "Товары",
|
||||
"invoices": "Счет-фактуры",
|
||||
"recurring-invoices": "Recurring Invoices",
|
||||
"recurring-invoices": "Повторяющиеся счета",
|
||||
"expenses": "Расходы",
|
||||
"estimates": "Заказы",
|
||||
"payments": "Платежи",
|
||||
@@ -94,41 +94,41 @@
|
||||
"insert_note": "Вставить заметку",
|
||||
"copied_pdf_url_clipboard": "Ссылка на PDF скопирована в буфер обмена!",
|
||||
"copied_url_clipboard": "Ссылка скопирована!",
|
||||
"docs": "Docs",
|
||||
"docs": "Документация",
|
||||
"do_you_wish_to_continue": "Хотите продолжить?",
|
||||
"note": "Note",
|
||||
"note": "Заметка",
|
||||
"pay_invoice": "Оплатить счет",
|
||||
"login_successfully": "Вход выполнен!",
|
||||
"logged_out_successfully": "Вы успешно вышли",
|
||||
"mark_as_default": "Установить по умолчанию",
|
||||
"no_data_found": "No data found",
|
||||
"no_data_found": "Нет данных",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "Назад",
|
||||
"next": "Далее",
|
||||
"showing": "Показано",
|
||||
"to": "до",
|
||||
"of": "с",
|
||||
"results": "итоги"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
"drag_a_file": "Перетащите файл сюда или",
|
||||
"browse": "обзор",
|
||||
"to_choose": "для выбора файла"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"the_list_is_empty": "Список пуст",
|
||||
"no_results_found": "Ничего не найдено"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "Скопировать в буфер обмена"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Выберите год",
|
||||
"cards": {
|
||||
"due_amount": "Сумма",
|
||||
"customers": "Customer | Customers",
|
||||
"invoices": "Invoice | Invoices",
|
||||
"estimates": "Estimate | Estimates",
|
||||
"payments": "Payment | Payments"
|
||||
"customers": "Клиент | Клиенты",
|
||||
"invoices": "Счёт | Счета",
|
||||
"estimates": "Пр. Расчёт | Пр. Расчёты",
|
||||
"payments": "Платеж | Платежи"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "Продажи",
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Клиенты",
|
||||
"prefix": "Префикс",
|
||||
"tax_id": "ИНН",
|
||||
"add_customer": "Добавить клиента",
|
||||
"contacts_list": "Список клиентов",
|
||||
"name": "Имя",
|
||||
@@ -206,7 +207,7 @@
|
||||
"website": "Сайт",
|
||||
"overview": "Обзор",
|
||||
"invoice_prefix": "Префикс счета",
|
||||
"estimate_prefix": "Estimate Prefix",
|
||||
"estimate_prefix": "Префикс оценки",
|
||||
"payment_prefix": "Префикс платежа",
|
||||
"enable_portal": "Разрешить портал",
|
||||
"country": "Страна",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Добавить платёж",
|
||||
"add_estimate": "Добавить заказ",
|
||||
"save_estimate": "Сохранить заказ",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"cloned_successfully": "Примерный расчёт успешно клонирован",
|
||||
"clone_estimate": "Клонировать Расчёт",
|
||||
"confirm_clone": "Этот расчёт будет клонирован в новый расчёт",
|
||||
"confirm_conversion": "Эта смета будет использоваться для создания нового счета-фактуры.",
|
||||
"conversion_message": "Счет-фактура успешно создан",
|
||||
"confirm_send_estimate": "Эта смета будет отправлена клиенту по электронной почте",
|
||||
@@ -472,8 +473,8 @@
|
||||
"mark_as_default_invoice_template_description": "Если включено, выбранный шаблон будет автоматически выбираться для новых счетов."
|
||||
},
|
||||
"recurring_invoices": {
|
||||
"title": "Recurring Invoices",
|
||||
"invoices_list": "Recurring Invoices List",
|
||||
"title": "Повторяющиеся счета",
|
||||
"invoices_list": "Список повторяющихся счетов",
|
||||
"days": "{days} Дней",
|
||||
"months": "{months} Месяц",
|
||||
"years": "{years} Год",
|
||||
@@ -564,9 +565,9 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Выберите периодичность",
|
||||
"minute": "Минута",
|
||||
"hour": "Hour",
|
||||
"day_month": "Day of month",
|
||||
"month": "Месяц",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Основная валюта",
|
||||
"timezone": "Часовой пояс",
|
||||
"date_format": "Формат даты",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Валюты",
|
||||
"currency": "Валюта | Валюты",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Символ для обозначения границы между двумя компонентами. По умолчанию имеет значение -",
|
||||
"delimiter_param_label": "Разделитель",
|
||||
"date_format": "Формат даты",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Формат",
|
||||
"sequence": "Последовательность",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Часовой пояс",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Select Language",
|
||||
"select_time_zone": "Выберите часовой пояс",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Часовой пояс",
|
||||
"fiscal_year": "Финансовый год",
|
||||
"date_format": "Формат даты",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Адрес",
|
||||
"username": "Имя пользователя",
|
||||
"next": "Далее",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
70
lang/sk.json
70
lang/sk.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Zákazníci",
|
||||
"prefix": "Predpona",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Pridať Zákazníka",
|
||||
"contacts_list": "Zoznam zákazníkov",
|
||||
"name": "Meno",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Zaznamenať Platbu",
|
||||
"add_estimate": "Vytvoriť Cenový odhad",
|
||||
"save_estimate": "Uložiť Cenový odhad",
|
||||
"cloned_successfully": "Ponuka úspešne skopírovaná",
|
||||
"clone_estimate": "Klonovať ponuku",
|
||||
"confirm_clone": "Táto ponuka bude skopírovaná do novej ponuky",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "Tento cenový odhad bude použitý k vytvoreniu novej Faktúry.",
|
||||
"conversion_message": "Faktúra úspešne vytvorená",
|
||||
"confirm_send_estimate": "Tento Cenový odhad bude odoslaný zákazníkovi prostredníctvom e-mailu",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -727,20 +728,20 @@
|
||||
"other_modules": "Other Modules",
|
||||
"view_all": "View All",
|
||||
"no_reviews_found": "There are no reviews for this module yet!",
|
||||
"module_not_purchased": "Module Not Purchased",
|
||||
"module_not_found": "Module Not Found",
|
||||
"module_not_purchased": "Modul nie je kúpený",
|
||||
"module_not_found": "Modul sa nenašiel",
|
||||
"version_not_supported": "This module version doesn't support the current version of InvoiceShelf",
|
||||
"last_updated": "Last Updated On",
|
||||
"connect_installation": "Connect your installation",
|
||||
"api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.",
|
||||
"view_module": "View Module",
|
||||
"update_available": "Update Available",
|
||||
"purchased": "Purchased",
|
||||
"installed": "Installed",
|
||||
"no_modules_installed": "No Modules Installed Yet!",
|
||||
"disable_warning": "All the settings for this particular will be reverted.",
|
||||
"what_you_get": "What you get",
|
||||
"sign_up_and_get_token": "Sign up & Get Token"
|
||||
"last_updated": "Naposledy upravené",
|
||||
"connect_installation": "Pripojte vašu inštaláciu",
|
||||
"api_token_description": "Prihláste se k {url} a pripojte túto inštaláciu zadaním API tokenu. Vaše zakúpené moduly sa zobrazia tu po naviazaní pripojenia.",
|
||||
"view_module": "Zobraziť modul",
|
||||
"update_available": "Dostupná aktualizácia",
|
||||
"purchased": "Zakúpené",
|
||||
"installed": "Nainštalované",
|
||||
"no_modules_installed": "Nie sú nainštalované žiadne moduly!",
|
||||
"disable_warning": "Všetky nastavenia pre túto konkrétnu položku budú vrátené späť.",
|
||||
"what_you_get": "Čo dostanete",
|
||||
"sign_up_and_get_token": "Prihláste sa a získajte token"
|
||||
},
|
||||
"users": {
|
||||
"title": "Uživatelia",
|
||||
@@ -767,8 +768,8 @@
|
||||
"created_message": "Užívateľ úspešne vytvorený",
|
||||
"updated_message": "Užívateľ úspešne aktualizovaná",
|
||||
"deleted_message": "Užívateľ úspešne odstránený | Užívatelia úspešne odstránení",
|
||||
"select_company_role": "Select Role for {company}",
|
||||
"companies": "Companies"
|
||||
"select_company_role": "Vyberte rolu pre {company}",
|
||||
"companies": "Spoločnosti"
|
||||
},
|
||||
"reports": {
|
||||
"title": "Reporty",
|
||||
@@ -794,8 +795,8 @@
|
||||
"from_date": "Od dátumu",
|
||||
"report_type": "Typ Reportu",
|
||||
"sort": {
|
||||
"by_customer": "By Customer",
|
||||
"by_item": "By Item"
|
||||
"by_customer": "Podľa zákazníka",
|
||||
"by_item": "Podľa položky"
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
@@ -850,11 +851,11 @@
|
||||
"custom_fields": "Vlastné Polia",
|
||||
"payment_modes": "Spôsoby Platby",
|
||||
"notes": "Poznámky",
|
||||
"exchange_rate": "Exchange Rate",
|
||||
"address_information": "Address Information"
|
||||
"exchange_rate": "Výmenný kurz",
|
||||
"address_information": "Informácie o adrese"
|
||||
},
|
||||
"address_information": {
|
||||
"section_description": " You can update Your Address information using form below."
|
||||
"section_description": "Adresu môžete aktualizovať pomocou formulára nižšie."
|
||||
},
|
||||
"title": "Nastavenia",
|
||||
"setting": "Nastavenia | Nastavenia",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Hlavná Mena",
|
||||
"timezone": "Časové Pásmo",
|
||||
"date_format": "Formát Dátumu",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Meny",
|
||||
"currency": "Mena | Meny",
|
||||
@@ -870,7 +872,7 @@
|
||||
"select_currency": "Vyberte Menu",
|
||||
"name": "Meno",
|
||||
"code": "Kód",
|
||||
"symbol": "Symbol",
|
||||
"symbol": "Znak meny",
|
||||
"precision": "Presnosť",
|
||||
"thousand_separator": "Oddelovač Tisíciek",
|
||||
"decimal_separator": "Oddelovač Desatinných Miest",
|
||||
@@ -918,9 +920,9 @@
|
||||
"address": "Adresa",
|
||||
"zip": "PSČ",
|
||||
"save": "Uložiť",
|
||||
"delete": "Delete",
|
||||
"delete": "Odstrániť",
|
||||
"updated_message": "Informácie o firme úspešne aktualizované",
|
||||
"delete_company": "Delete Company",
|
||||
"delete_company": "Odstrániť spoločnosť",
|
||||
"delete_company_description": "Once you delete your company, you will lose all the data and files associated with it permanently.",
|
||||
"are_you_absolutely_sure": "Are you absolutely sure?",
|
||||
"delete_company_modal_desc": "This action cannot be undone. This will permanently delete {company} and all of its associated data.",
|
||||
@@ -937,7 +939,7 @@
|
||||
"name": "Názov",
|
||||
"slug": "Slug",
|
||||
"required": "Povinné",
|
||||
"placeholder": "Umiestnenie",
|
||||
"placeholder": "Zástupný text",
|
||||
"help_text": "Pomocný Text",
|
||||
"default_value": "Predvolená hodnota",
|
||||
"prefix": "Predpona",
|
||||
@@ -947,7 +949,7 @@
|
||||
"suffix": "Prípona",
|
||||
"yes": "Áno",
|
||||
"no": "Nie",
|
||||
"order": "Objednať",
|
||||
"order": "Poradie",
|
||||
"custom_field_confirm_delete": "Nebudete môcť obnovit toto vlastné pole",
|
||||
"already_in_use": "Toto vlastne pole sa už používa",
|
||||
"deleted_message": "Vlastné pole úspešne vymazané",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Časové Pásmo",
|
||||
"fiscal_year": "Fiškálny Rok",
|
||||
"date_format": "Formát Dátumu",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Nastavenia Zľavy",
|
||||
"discount_per_item": "Zľava pre každú Položku zvlášť ",
|
||||
"discount_setting_description": "Túto možnosť povoľte, ak chcete pridať zľavu k jednotlivým položkám faktúry. Štandardne sa zľava pripočítava priamo k faktúre.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Vyberte Jazyk",
|
||||
"select_time_zone": "Vyberte Časové Pásmo",
|
||||
"select_date_format": "Vybrať Formát Dátumu",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Vyberte Fiškálny Rok",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Časové pásmo",
|
||||
"fiscal_year": "Fiškálny rok",
|
||||
"date_format": "Formát dátumu",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Z adresy",
|
||||
"username": "Prihlasovacie meno",
|
||||
"next": "Ďaľší",
|
||||
@@ -1610,12 +1618,14 @@
|
||||
"pdf_total_tax_label": "Celkové dane",
|
||||
"pdf_tax_types_label": "Typy daní",
|
||||
"pdf_expenses_label": "Výdaje",
|
||||
"pdf_bill_to": "Fakturovať,",
|
||||
"pdf_bill_to": "Odberateľ:",
|
||||
"pdf_ship_to": "Doručiť,",
|
||||
"pdf_received_from": "Prijaté od:",
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
12
lang/sl.json
12
lang/sl.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Stranke",
|
||||
"prefix": "Predznak",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Dodajte uporabnika",
|
||||
"contacts_list": "Seznam uporabnikov",
|
||||
"name": "Ime",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primary Currency",
|
||||
"timezone": "Time Zone",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Currencies",
|
||||
"currency": "Currency | Currencies",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Select Language",
|
||||
"select_time_zone": "Select Time Zone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "From Address",
|
||||
"username": "Username",
|
||||
"next": "Next",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
18
lang/sr.json
18
lang/sr.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Klijenti",
|
||||
"prefix": "Prefix",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Dodaj Klijenta",
|
||||
"contacts_list": "Lista klijenata",
|
||||
"name": "Naziv",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Unesi uplatu",
|
||||
"add_estimate": "Dodaj Profakturu",
|
||||
"save_estimate": "Sačuvaj Profakturu",
|
||||
"cloned_successfully": "Ponuda uspešno klonirana",
|
||||
"clone_estimate": "Kloniraj ponudu",
|
||||
"confirm_clone": "Ova ponuda će biti klonirana u novu ponudu",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "Detalji ove Profakture će biti iskorišćeni za pravljenje Fakture.",
|
||||
"conversion_message": "Faktura uspešno kreirana",
|
||||
"confirm_send_estimate": "Ova Profaktura će biti poslata putem Email-a klijentu",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primarna Valuta",
|
||||
"timezone": "Vremenska Zona",
|
||||
"date_format": "Format Datuma",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Valute",
|
||||
"currency": "Valuta | Valute",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Vremenska Zona",
|
||||
"fiscal_year": "Finansijska Godina",
|
||||
"date_format": "Format datuma",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Podešavanja za popuste",
|
||||
"discount_per_item": "Popust po stavci",
|
||||
"discount_setting_description": "Izaberite ovo ako želite da dodajete Popust na individualne stavke. Podrazumevano ponašanje je da je Popust dodat direktno na fakturu.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Izaberi Jezik",
|
||||
"select_time_zone": "Izaberi Vremensku Zonu",
|
||||
"select_date_format": "Izaberi Format Datuma",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Izaberi Finansijsku Godinu",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Vremenska zona",
|
||||
"fiscal_year": "Finansijska godina",
|
||||
"date_format": "Format datuma",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Adresa pošiljaoca",
|
||||
"username": "Korisničko ime",
|
||||
"next": "Sledeće",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
236
lang/sv.json
236
lang/sv.json
@@ -15,9 +15,9 @@
|
||||
"modules": "Moduler"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "Skapa företag",
|
||||
"add_company": "Lägg till företag",
|
||||
"view_pdf": "Visa PDF",
|
||||
"copy_pdf_url": "Kopiera adress till PDF",
|
||||
"copy_pdf_url": "Kopiera PDF-URL",
|
||||
"download_pdf": "Ladda ner PDF",
|
||||
"save": "Spara",
|
||||
"create": "Skapa",
|
||||
@@ -32,7 +32,7 @@
|
||||
"ok": "Ok",
|
||||
"yes": "Ja",
|
||||
"no": "Nej",
|
||||
"sort_by": "Sortera på",
|
||||
"sort_by": "Sortera efter",
|
||||
"ascending": "Stigande",
|
||||
"descending": "Fallande",
|
||||
"subject": "Ämne",
|
||||
@@ -44,14 +44,14 @@
|
||||
"back_to_login": "Till inloggningssidan?",
|
||||
"home": "Hem",
|
||||
"filter": "Filter",
|
||||
"delete": "Ta bort",
|
||||
"edit": "Editera",
|
||||
"delete": "Radera",
|
||||
"edit": "Redigera",
|
||||
"view": "Visa",
|
||||
"add_new_item": "Skapa artikel",
|
||||
"clear_all": "Rensa alla",
|
||||
"showing": "Visar",
|
||||
"of": "av",
|
||||
"actions": "Funktioner",
|
||||
"actions": "Åtgärder",
|
||||
"subtotal": "DELSUMMA",
|
||||
"discount": "RABATT",
|
||||
"fixed": "Fast",
|
||||
@@ -61,13 +61,13 @@
|
||||
"bill_to": "Faktureras till",
|
||||
"ship_to": "Levereras till",
|
||||
"due": "Förfallen",
|
||||
"draft": "Förslag",
|
||||
"draft": "Utkast",
|
||||
"sent": "Skickat",
|
||||
"all": "Alla",
|
||||
"select_all": "Välj alla",
|
||||
"select_template": "Välj mall",
|
||||
"choose_file": "Klicka här för att välja fil",
|
||||
"choose_template": "Välj mall",
|
||||
"choose_template": "Välj en mall",
|
||||
"choose": "Välj",
|
||||
"remove": "Ta bort",
|
||||
"select_a_status": "Välj status",
|
||||
@@ -96,19 +96,19 @@
|
||||
"copied_url_clipboard": "Kopierade URL till urklipp!",
|
||||
"docs": "Dokumentation",
|
||||
"do_you_wish_to_continue": "Vill du fortsätta?",
|
||||
"note": "Notering",
|
||||
"note": "Anteckning",
|
||||
"pay_invoice": "Betala faktura",
|
||||
"login_successfully": "Inloggningen lyckades!",
|
||||
"logged_out_successfully": "Utloggningen lyckades",
|
||||
"mark_as_default": "Markera som standard",
|
||||
"no_data_found": "No data found",
|
||||
"no_data_found": "Ingen data hittades",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "Föregående",
|
||||
"next": "Nästa",
|
||||
"showing": "Visar",
|
||||
"to": "till",
|
||||
"of": "av",
|
||||
"results": "resultat"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
@@ -117,18 +117,18 @@
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"no_results_found": "Inga resultat hittades"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "Kopiera till urklipp"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Välj år",
|
||||
"cards": {
|
||||
"due_amount": "Förfallet belopp",
|
||||
"customers": "Kunder",
|
||||
"invoices": "Fakturor",
|
||||
"customers": "Kund | Kunder",
|
||||
"invoices": "Faktura | Fakturor",
|
||||
"estimates": "Kostnadsförslag",
|
||||
"payments": "Payments"
|
||||
"payments": "Betalning | Betalningar"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "Försäljning",
|
||||
@@ -145,7 +145,7 @@
|
||||
"due_on": "Förfaller den",
|
||||
"customer": "Kund",
|
||||
"amount_due": "Förfallet belopp",
|
||||
"actions": "Handlingar",
|
||||
"actions": "Åtgärder",
|
||||
"view_all": "Visa alla"
|
||||
},
|
||||
"recent_estimate_card": {
|
||||
@@ -153,21 +153,21 @@
|
||||
"date": "Datum",
|
||||
"customer": "Kund",
|
||||
"amount_due": "Förfallet belopp",
|
||||
"actions": "Handlingar",
|
||||
"actions": "Åtgärder",
|
||||
"view_all": "Visa alla"
|
||||
}
|
||||
},
|
||||
"tax_types": {
|
||||
"name": "Namn",
|
||||
"description": "Beskrivning",
|
||||
"percent": "Provent",
|
||||
"percent": "Procent",
|
||||
"compound_tax": "Sammansatt moms"
|
||||
},
|
||||
"global_search": {
|
||||
"search": "Sök...",
|
||||
"customers": "Kunder",
|
||||
"users": "Användare",
|
||||
"no_results_found": "Hittade inga resultat"
|
||||
"no_results_found": "Inga resultat hittades"
|
||||
},
|
||||
"company_switcher": {
|
||||
"label": "Byt företag",
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Kunder",
|
||||
"prefix": "Prefix",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Lägg till kund",
|
||||
"contacts_list": "Kundlista",
|
||||
"name": "Namn",
|
||||
@@ -200,10 +201,10 @@
|
||||
"primary_contact_name": "Primär kontakts namn",
|
||||
"contact_name": "Kontaktnamn",
|
||||
"amount_due": "Förfallet belopp",
|
||||
"email": "Epost",
|
||||
"email": "E-postadress",
|
||||
"address": "Adress",
|
||||
"phone": "Telefon",
|
||||
"website": "Hemsida",
|
||||
"website": "Webbplats",
|
||||
"overview": "Översikt",
|
||||
"invoice_prefix": "Prefix för fakturor",
|
||||
"estimate_prefix": "Prefix för offert",
|
||||
@@ -214,10 +215,10 @@
|
||||
"city": "Stad",
|
||||
"zip_code": "Postnummer",
|
||||
"added_on": "Tillagd den",
|
||||
"action": "Handling",
|
||||
"action": "Åtgärd",
|
||||
"password": "Lösenord",
|
||||
"confirm_password": "Bekräfta lösenord",
|
||||
"street_number": "Gatnummer",
|
||||
"street_number": "Gatunummer",
|
||||
"primary_currency": "Huvudvaluta",
|
||||
"description": "Beskrivning",
|
||||
"add_new_customer": "Lägg till ny kund",
|
||||
@@ -225,17 +226,17 @@
|
||||
"update_customer": "Uppdatera kund",
|
||||
"customer": "Kund | Kunder",
|
||||
"new_customer": "Ny kund",
|
||||
"edit_customer": "Ändra kund",
|
||||
"edit_customer": "Redigera kund",
|
||||
"basic_info": "Information",
|
||||
"portal_access": "Åtkomst till portalen",
|
||||
"portal_access_text": "Vill du tillåta denna kund att logga in på kundportalen?",
|
||||
"portal_access_url": "URL för kundportalens inloggning",
|
||||
"portal_access_url_help": "Vänligen kopiera och vidarebefordra ovanstående angivna URL till din kund för att ge åtkomst.",
|
||||
"billing_address": "Fakturaadress",
|
||||
"billing_address": "Faktureringsadress",
|
||||
"shipping_address": "Leveransadress",
|
||||
"copy_billing_address": "Kopiera från faktura",
|
||||
"no_customers": "Inga kunder än!",
|
||||
"no_customers_found": "Hittade inga kunder!",
|
||||
"no_customers_found": "Inga kunder hittades!",
|
||||
"no_contact": "Inga kontakter",
|
||||
"no_contact_name": "Kontaktnamn",
|
||||
"list_of_customers": "Här kommer det finnas en lista med kunder.",
|
||||
@@ -264,14 +265,14 @@
|
||||
"price": "Pris",
|
||||
"date_of_creation": "Skapandedatum",
|
||||
"not_selected": "Inga poster valda",
|
||||
"action": "Handling",
|
||||
"action": "Åtgärd",
|
||||
"add_item": "Skapa artikel",
|
||||
"save_item": "Spara artikel",
|
||||
"update_item": "Uppdatera artiklar",
|
||||
"item": "Artikel | Artiklar",
|
||||
"add_new_item": "Skapa ny artikel",
|
||||
"new_item": "Ny artikel",
|
||||
"edit_item": "Ändra artikel",
|
||||
"edit_item": "Redigera objekt",
|
||||
"no_items": "Inga artiklar än!",
|
||||
"list_of_items": "Här kommer lista över artiklar vara.",
|
||||
"select_a_unit": "välj enhet",
|
||||
@@ -312,8 +313,8 @@
|
||||
"status": "Status",
|
||||
"add_tax": "Lägg till moms",
|
||||
"amount": "Belopp",
|
||||
"action": "Handling",
|
||||
"notes": "Noteringar",
|
||||
"action": "Åtgärd",
|
||||
"notes": "Anteckningar",
|
||||
"tax": "Moms",
|
||||
"estimate_template": "Mall",
|
||||
"convert_to_invoice": "Konvertera till faktura",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "Registrera betalning",
|
||||
"add_estimate": "Lägg till offert",
|
||||
"save_estimate": "Spara offert",
|
||||
"cloned_successfully": "Offert klonades framgångsrikt",
|
||||
"clone_estimate": "Klona offert",
|
||||
"confirm_clone": "Denna offert kommer att klonas till en ny offert",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "Denna offert används för att skapa ny faktura.",
|
||||
"conversion_message": "Faktura skapades",
|
||||
"confirm_send_estimate": "Denna offert skickas via epost till kund",
|
||||
@@ -383,7 +384,7 @@
|
||||
"title": "Fakturor",
|
||||
"download": "Ladda ner",
|
||||
"pay_invoice": "Betala faktura",
|
||||
"invoices_list": "Fakturor",
|
||||
"invoices_list": "Fakturalista",
|
||||
"invoice_information": "Fakturainformation",
|
||||
"days": "{days} dagar",
|
||||
"months": "{months} månader",
|
||||
@@ -413,14 +414,14 @@
|
||||
"status": "Status",
|
||||
"add_tax": "Lägg till moms",
|
||||
"amount": "Summa",
|
||||
"action": "Handling",
|
||||
"notes": "Noteringar",
|
||||
"action": "Åtgärd",
|
||||
"notes": "Anteckningar",
|
||||
"view": "Visa",
|
||||
"send_invoice": "Skicka faktura",
|
||||
"resend_invoice": "Skicka faktura igen",
|
||||
"invoice_template": "Fakturamall",
|
||||
"conversion_message": "Fakturan kopierades",
|
||||
"template": "Mall",
|
||||
"template": "Välj mall",
|
||||
"mark_as_sent": "Markera som skickad",
|
||||
"confirm_send_invoice": "Denna faktura skickas via epost till kunden",
|
||||
"invoice_mark_as_sent": "Denna faktura markeras som skickad",
|
||||
@@ -430,8 +431,8 @@
|
||||
"invoice_date": "Fakturadatum",
|
||||
"record_payment": "Registrera betalning",
|
||||
"add_new_invoice": "Lägg till ny faktura",
|
||||
"update_expense": "Ändra utgifter",
|
||||
"edit_invoice": "Editera faktura",
|
||||
"update_expense": "Uppdatera utgift",
|
||||
"edit_invoice": "Redigera faktura",
|
||||
"new_invoice": "Ny faktura",
|
||||
"save_invoice": "Spara faktura",
|
||||
"update_invoice": "Uppdatera faktura",
|
||||
@@ -449,7 +450,7 @@
|
||||
"confirm_clone": "Denna faktura kopieras till en ny faktura",
|
||||
"item": {
|
||||
"title": "Artikelnamn",
|
||||
"description": "Beskvirning",
|
||||
"description": "Beskrivning",
|
||||
"quantity": "Antal",
|
||||
"price": "Pris",
|
||||
"discount": "Rabatt",
|
||||
@@ -474,9 +475,9 @@
|
||||
"recurring_invoices": {
|
||||
"title": "Återkommande fakturor",
|
||||
"invoices_list": "Återkommande fakturor",
|
||||
"days": "{days} Dagar",
|
||||
"months": "{months} Månader",
|
||||
"years": "{years} År",
|
||||
"days": "{days} dagar",
|
||||
"months": "{months} månader",
|
||||
"years": "{years} år",
|
||||
"all": "Alla",
|
||||
"paid": "Betalda",
|
||||
"unpaid": "Obetalda",
|
||||
@@ -564,19 +565,19 @@
|
||||
"type_item_description": "Skriv in artikelns beskrivning (frivilligt)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Upprepning",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Välj antal",
|
||||
"minute": "Minut",
|
||||
"hour": "Timmar",
|
||||
"day_month": "Dag i månaden",
|
||||
"month": "Månad",
|
||||
"day_week": "Dag i veckan",
|
||||
"every_minute": "Every Minute",
|
||||
"every_minute": "Varje minut",
|
||||
"every_30_minute": "Every 30 Minute",
|
||||
"every_hour": "Every Hour",
|
||||
"every_hour": "Varje timme",
|
||||
"every_2_hour": "Every 2 Hour",
|
||||
"every_day_at_midnight": "Every day at midnight",
|
||||
"every_week": "Every Week",
|
||||
"every_week": "Varje vecka",
|
||||
"every_15_days_at_midnight": "Every 15 days at midnight",
|
||||
"on_the_first_day_of_every_month_at_midnight": "On the first day of every month at 00:00",
|
||||
"every_6_month": "Every 6 Month",
|
||||
@@ -592,8 +593,8 @@
|
||||
"something_went_wrong": "något gick fel",
|
||||
"invalid_due_amount_message": "Totalsumman för den återkommande fakturan kan inte vara lägre än den betalda summan. Vänligen uppdatera fakturan eller radera de kopplade betalningarna.",
|
||||
"limit": {
|
||||
"none": "None",
|
||||
"date": "Date",
|
||||
"none": "Ingen",
|
||||
"date": "Datum",
|
||||
"count": "Count"
|
||||
}
|
||||
},
|
||||
@@ -604,16 +605,16 @@
|
||||
"customer": "Kund",
|
||||
"date": "Datum",
|
||||
"amount": "Summa",
|
||||
"action": "Handling",
|
||||
"action": "Åtgärd",
|
||||
"payment_number": "Betalningsnummer",
|
||||
"payment_mode": "Betalningssätt",
|
||||
"invoice": "Faktura",
|
||||
"note": "Notering",
|
||||
"add_payment": "Skapa betalning",
|
||||
"note": "Anteckning",
|
||||
"add_payment": "Lägg till betalning",
|
||||
"new_payment": "Ny betalning",
|
||||
"edit_payment": "Ändra betalning",
|
||||
"edit_payment": "Redigera betalning",
|
||||
"view_payment": "Visa betalning",
|
||||
"add_new_payment": "Skapa ny betalning",
|
||||
"add_new_payment": "Lägg till ny betalning",
|
||||
"send_payment_receipt": "Skicka kvitto på betalning",
|
||||
"send_payment": "Skicka betalning",
|
||||
"save_payment": "Spara betalning",
|
||||
@@ -651,9 +652,9 @@
|
||||
"description": "Beskrivning",
|
||||
"receipt": "Kvitto",
|
||||
"amount": "Summa",
|
||||
"action": "Handling",
|
||||
"action": "Åtgärd",
|
||||
"not_selected": "Ej markerad",
|
||||
"note": "Notering",
|
||||
"note": "Anteckning",
|
||||
"category_id": "Kategorins ID",
|
||||
"date": "Datum",
|
||||
"add_expense": "Lägg till utgift",
|
||||
@@ -661,7 +662,7 @@
|
||||
"save_expense": "Spara utgift",
|
||||
"update_expense": "Uppdatera utgift",
|
||||
"download_receipt": "Ladda ner kvitto",
|
||||
"edit_expense": "Ändra utgift",
|
||||
"edit_expense": "Redigera utgift",
|
||||
"new_expense": "Ny utgift",
|
||||
"expense": "Utgift | Utgifter",
|
||||
"no_expenses": "Inga utgifter än!",
|
||||
@@ -676,7 +677,7 @@
|
||||
"name": "Namn",
|
||||
"description": "Beskrivning",
|
||||
"amount": "Summa",
|
||||
"actions": "Handlingar",
|
||||
"actions": "Åtgärder",
|
||||
"add_category": "Lägg till kategori",
|
||||
"new_category": "Ny kategori",
|
||||
"category": "Kategori | Kategorier",
|
||||
@@ -684,7 +685,7 @@
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"email": "Epost",
|
||||
"email": "E-postadress",
|
||||
"password": "Lösenord",
|
||||
"forgot_password": "Glömt lösenord?",
|
||||
"or_signIn_with": "eller logga in med",
|
||||
@@ -692,9 +693,9 @@
|
||||
"register": "Registrera",
|
||||
"reset_password": "Återställ lösenord",
|
||||
"password_reset_successfully": "Lösenord återställt",
|
||||
"enter_email": "Skriv in epost",
|
||||
"enter_password": "Skriv in lösenord",
|
||||
"retype_password": "Skriv lösenordet igen"
|
||||
"enter_email": "Ange e-postadress",
|
||||
"enter_password": "Ange lösenord",
|
||||
"retype_password": "Ange lösenord igen"
|
||||
},
|
||||
"modules": {
|
||||
"buy_now": "Köp nu",
|
||||
@@ -756,10 +757,10 @@
|
||||
"user": "Användare | Användare",
|
||||
"add_new_user": "Lägg till ny användare",
|
||||
"new_user": "Ny användare",
|
||||
"edit_user": "Ändra användare",
|
||||
"edit_user": "Redigera användare",
|
||||
"no_users": "Inga användare än!",
|
||||
"list_of_users": "Här kommer man se alla användare.",
|
||||
"email": "Epost",
|
||||
"email": "E-postadress",
|
||||
"phone": "Telefon",
|
||||
"password": "Lösenord",
|
||||
"user_attached_message": "Kan inte ta bort ett objeckt som används",
|
||||
@@ -794,8 +795,8 @@
|
||||
"from_date": "Från datum",
|
||||
"report_type": "Rapporttyp",
|
||||
"sort": {
|
||||
"by_customer": "By Customer",
|
||||
"by_item": "By Item"
|
||||
"by_customer": "Efter kund",
|
||||
"by_item": "Efter objekt"
|
||||
}
|
||||
},
|
||||
"taxes": {
|
||||
@@ -849,7 +850,7 @@
|
||||
"file_disk": "Lagring",
|
||||
"custom_fields": "Anpassade fält",
|
||||
"payment_modes": "Betalmetoder",
|
||||
"notes": "Noteringar",
|
||||
"notes": "Anteckningar",
|
||||
"exchange_rate": "Växelkurser",
|
||||
"address_information": "Adressinformation"
|
||||
},
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primär valuta",
|
||||
"timezone": "Tidszon",
|
||||
"date_format": "Datumformat",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Valutor",
|
||||
"currency": "Valuta | Valutor",
|
||||
@@ -916,7 +918,7 @@
|
||||
"state": "Kommun",
|
||||
"city": "Stad",
|
||||
"address": "Adress",
|
||||
"zip": "Postnr",
|
||||
"zip": "Postnummer",
|
||||
"save": "Spara",
|
||||
"delete": "Radera",
|
||||
"updated_message": "Företagsinformation uppdaterad",
|
||||
@@ -924,7 +926,7 @@
|
||||
"delete_company_description": "När du tar bort ditt företag, kommer du att förlora all data och filer som är associerade med det permanent.",
|
||||
"are_you_absolutely_sure": "Är du helt säker?",
|
||||
"delete_company_modal_desc": "Denna åtgärd kan inte ångras. Detta kommer att permanent ta bort {company} och all tillhörande data.",
|
||||
"delete_company_modal_label": "Vänligen skriv {company} för att bekräfta"
|
||||
"delete_company_modal_label": "Ange {company} för att bekräfta"
|
||||
},
|
||||
"custom_fields": {
|
||||
"title": "Anpassade fält",
|
||||
@@ -966,11 +968,11 @@
|
||||
"model_in_use": "Kan inte uppdatera modell för fält som redan används.",
|
||||
"type_in_use": "Kan inte uppdatera typ för fält som redan används.",
|
||||
"model_type": {
|
||||
"customer": "Customer",
|
||||
"invoice": "Invoice",
|
||||
"customer": "Kund",
|
||||
"invoice": "Faktura",
|
||||
"estimate": "Estimate",
|
||||
"expense": "Expense",
|
||||
"payment": "Payment"
|
||||
"payment": "Betalning"
|
||||
}
|
||||
},
|
||||
"customization": {
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Tecken för att ange gränsen mellan 2 separata komponenter. Som standard är den inställd till -",
|
||||
"delimiter_param_label": "Avgränsarens värde",
|
||||
"date_format": "Datumformat",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "Ett lokalt datum- och tidsfält som accepterar en formatsparameter. Standardformatet: 'Y' renderar innevarande år.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sekvens",
|
||||
@@ -1080,14 +1083,14 @@
|
||||
"deleted_message": "Artikelenhet raderades"
|
||||
},
|
||||
"notes": {
|
||||
"title": "Noteringar",
|
||||
"title": "Anteckningar",
|
||||
"description": "Spara tid genom att skapa noteringar som kan återanvändas på fakturor, betalningsförslag, och betalningar.",
|
||||
"notes": "Noteringar",
|
||||
"notes": "Anteckningar",
|
||||
"type": "Typ",
|
||||
"add_note": "Lägg till notering",
|
||||
"add_new_note": "Lägg till ny notering",
|
||||
"add_note": "Lägg till anteckning",
|
||||
"add_new_note": "Lägg till ny anteckning",
|
||||
"name": "Namn",
|
||||
"edit_note": "Editera notering",
|
||||
"edit_note": "Redigera anteckning",
|
||||
"note_added": "Notering skapades",
|
||||
"note_updated": "Notering uppdaterades",
|
||||
"note_confirm_delete": "Du kommer inte kunna återställa denna notering",
|
||||
@@ -1095,15 +1098,15 @@
|
||||
"deleted_message": "Notering raderades",
|
||||
"types": {
|
||||
"estimate": "Estimate",
|
||||
"invoice": "Invoice",
|
||||
"payment": "Payment"
|
||||
"invoice": "Faktura",
|
||||
"payment": "Betalning"
|
||||
}
|
||||
}
|
||||
},
|
||||
"account_settings": {
|
||||
"profile_picture": "Profilbild",
|
||||
"name": "Namn",
|
||||
"email": "Epost",
|
||||
"email": "E-postadress",
|
||||
"password": "Lösenord",
|
||||
"confirm_password": "Bekräfta lösenord",
|
||||
"account_settings": "Kontoinställningar",
|
||||
@@ -1113,7 +1116,7 @@
|
||||
},
|
||||
"user_profile": {
|
||||
"name": "Namn",
|
||||
"email": "Epost",
|
||||
"email": "E-postadress",
|
||||
"password": "Lösenord",
|
||||
"confirm_password": "Bekräfta lösenord"
|
||||
},
|
||||
@@ -1127,10 +1130,10 @@
|
||||
"estimate_viewed_desc": "När din kund kollar betalförslag via invoiceshelfs översikt.",
|
||||
"save": "Spara",
|
||||
"email_save_message": "Epost sparades",
|
||||
"please_enter_email": "Skriv in epostadress"
|
||||
"please_enter_email": "Ange e-postadress"
|
||||
},
|
||||
"roles": {
|
||||
"title": "Roler",
|
||||
"title": "Roller",
|
||||
"description": "Hantera roller och behörigheter för det här företaget",
|
||||
"save": "Spara",
|
||||
"add_new_role": "Lägg till ny roll",
|
||||
@@ -1218,7 +1221,7 @@
|
||||
"description": "Kategorier krävs för att lägga till utgifter. Du kan lägga till och ta bort dessa kategorier som du vill",
|
||||
"add_new_category": "Lägg till ny kategori",
|
||||
"add_category": "Lägg till kategori",
|
||||
"edit_category": "Ändra kategori",
|
||||
"edit_category": "Redigera kategori",
|
||||
"category_name": "Kategorinamn",
|
||||
"category_description": "Beskrivning",
|
||||
"created_message": "Utgiftskategori skapades",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Tidszon",
|
||||
"fiscal_year": "Räkenskapsår",
|
||||
"date_format": "Datumformattering",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Rabattinställningar",
|
||||
"discount_per_item": "Rabatt per artikel ",
|
||||
"discount_setting_description": "Aktivera detta om du vill kunna lägga rabatt på enskilda fakturaartiklar. Rabatt ges som standard på hela fakturan.",
|
||||
@@ -1245,26 +1249,29 @@
|
||||
"select_language": "Välj språk",
|
||||
"select_time_zone": "Välj tidszon",
|
||||
"select_date_format": "Välj datumformat",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Välj räkenskapsår",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
"create_status": "Skapa status",
|
||||
"active": "Aktiv",
|
||||
"on_hold": "Pausad",
|
||||
"update_status": "Uppdatera status",
|
||||
"completed": "Slutförd",
|
||||
"company_currency_unchangeable": "Företagets valuta kan inte ändras",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
"march_february": "March - February",
|
||||
"april_march": "April - March",
|
||||
"may_april": "May - April",
|
||||
"june_may": "June - May",
|
||||
"july_june": "July - June",
|
||||
"august_july": "August - July",
|
||||
"september_august": "September - August",
|
||||
"october_september": "October - September",
|
||||
"november_october": "November - October",
|
||||
"january_december": "Januari - December",
|
||||
"february_january": "Februari - Januari",
|
||||
"march_february": "Mars - Februari",
|
||||
"april_march": "April - Mars",
|
||||
"may_april": "Maj - April",
|
||||
"june_may": "Juni - Maj",
|
||||
"july_june": "Juli - Juni",
|
||||
"august_july": "Augusti - Juli",
|
||||
"september_august": "September - Augusti",
|
||||
"october_september": "Oktober - September",
|
||||
"november_october": "November - Oktober",
|
||||
"december_november": "December - November"
|
||||
}
|
||||
},
|
||||
@@ -1303,7 +1310,7 @@
|
||||
"new_disk": "Ny disk",
|
||||
"created_at": "skapad den",
|
||||
"size": "storlek",
|
||||
"dropbox": "dropbox",
|
||||
"dropbox": "Dropbox",
|
||||
"local": "lokal",
|
||||
"healthy": "hälsosam",
|
||||
"amount_of_backups": "antal säkerhetskopior",
|
||||
@@ -1319,7 +1326,7 @@
|
||||
"title": "Lagring | Lagringar",
|
||||
"description": "InvoiceShelf använder din lokala disk som standard för att spara säkerhetskopior, avatarer och andra bildfiler. Du kan ställa in fler lagringsenheter såsom DigitalOcean, S3 och Dropbox beroende av ditt behov.",
|
||||
"created_at": "skapad den",
|
||||
"dropbox": "dropbox",
|
||||
"dropbox": "Dropbox",
|
||||
"name": "Namn",
|
||||
"driver": "Plats",
|
||||
"disk_type": "Typ",
|
||||
@@ -1396,7 +1403,7 @@
|
||||
"account_info": "Kontoinformation",
|
||||
"account_info_desc": "Nedan detaljer används för att skapa huvudadministratörskonto. Du kan ändra detta i efterhand.",
|
||||
"name": "Namn",
|
||||
"email": "Epost",
|
||||
"email": "E-postadress",
|
||||
"password": "Lösenord",
|
||||
"confirm_password": "Bekräfta lösenord",
|
||||
"save_cont": "Spara och fortsätt",
|
||||
@@ -1414,13 +1421,14 @@
|
||||
"address": "Adress",
|
||||
"street": "Gatuadress1 | Gatuadress2",
|
||||
"phone": "Telefon",
|
||||
"zip_code": "Postnr",
|
||||
"zip_code": "Postnummer",
|
||||
"go_back": "Tillbaka",
|
||||
"currency": "Valuta",
|
||||
"language": "Språk",
|
||||
"time_zone": "Tidszon",
|
||||
"fiscal_year": "Räkenskapsår",
|
||||
"date_format": "Datumformat",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Från adress",
|
||||
"username": "Användarnamn",
|
||||
"next": "Nästa",
|
||||
@@ -1461,7 +1469,7 @@
|
||||
"notes": {
|
||||
"notes": "Notes:",
|
||||
"not_contain": "App domain should not contain",
|
||||
"or": "or",
|
||||
"or": "eller",
|
||||
"in_front": "in front of the domain.",
|
||||
"if_you": "If you're accessing the website on a different port, please mention the port. For example:"
|
||||
}
|
||||
@@ -1503,11 +1511,11 @@
|
||||
}
|
||||
},
|
||||
"validation": {
|
||||
"invalid_phone": "Felaktigt telefonnummer",
|
||||
"invalid_phone": "Ogiltigt telefonnummer",
|
||||
"invalid_url": "Felaktig url (ex: http://www.invoiceshelf.com)",
|
||||
"invalid_domain_url": "Felaktig url (ex: invoiceshelf.com)",
|
||||
"required": "Fältet är tvingande",
|
||||
"email_incorrect": "Felaktig epostadress.",
|
||||
"email_incorrect": "Felaktig e-postadress.",
|
||||
"email_already_taken": "Denna epostadress finns redan.",
|
||||
"email_does_not_exist": "Användare med den epostadressen finns inte",
|
||||
"item_unit_already_taken": "Detta artikelenhetsnamn finns redan",
|
||||
@@ -1581,7 +1589,7 @@
|
||||
"pdf_invoice_number": "Fakturanummer",
|
||||
"pdf_invoice_date": "Fakturadatum",
|
||||
"pdf_invoice_due_date": "Inbetalningsdatum",
|
||||
"pdf_notes": "Noteringar",
|
||||
"pdf_notes": "Anteckningar",
|
||||
"pdf_items_label": "Artiklar",
|
||||
"pdf_quantity_label": "Antal",
|
||||
"pdf_price_label": "Kostnad",
|
||||
@@ -1616,12 +1624,14 @@
|
||||
"pdf_tax_label": "Moms",
|
||||
"pdf_tax_id": "Org.Nr",
|
||||
"pdf_vat_id": "Momsreg. nr",
|
||||
"mail_thanks": "Thanks",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Tack",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
"mail_view_invoice": "View Invoice",
|
||||
"mail_view_invoice": "Visa faktura",
|
||||
"mail_viewed_invoice": ":name viewed this Invoice.",
|
||||
"mail_view_payment": "View Payment",
|
||||
"mail_view_payment": "Visa betalning",
|
||||
"notification_view_estimate": "[Notification] Estimate viewed",
|
||||
"notification_view_invoice": "[Notification] Invoice viewed",
|
||||
"You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:": "You have received a new invoice from <b>{COMPANY_NAME}</b>.</br> Please download using the button below:"
|
||||
|
||||
18
lang/th.json
18
lang/th.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "ลูกค้า",
|
||||
"prefix": "Prefix",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "เพิ่มลูกค้า",
|
||||
"contacts_list": "รายชื่อลูกค้า",
|
||||
"name": "ชื่อ",
|
||||
@@ -323,9 +324,9 @@
|
||||
"record_payment": "บันทึกการชำระเงิน",
|
||||
"add_estimate": "เพิ่มค่าใบเสนอราคา",
|
||||
"save_estimate": "บันทึกใบเสนอราคา",
|
||||
"cloned_successfully": "โคลนข้อเสนอสำเร็จ",
|
||||
"clone_estimate": "โคลนข้อเสนอ",
|
||||
"confirm_clone": "ข้อเสนอนี้จะถูกโคลนเป็นข้อเสนอใหม่",
|
||||
"cloned_successfully": "Estimate cloned successfully",
|
||||
"clone_estimate": "Clone Estimate",
|
||||
"confirm_clone": "This Estimate will be cloned into a new Estimate",
|
||||
"confirm_conversion": "ใบเสนอราคานี้จะใช้ในการสร้างใบวางบิลใหม่",
|
||||
"conversion_message": "ใบวางบิลที่สร้างเสร็จสมบูรณ์",
|
||||
"confirm_send_estimate": "ใบเสนอราคานี้จะถูกส่งผ่านทางอีเมลถึงลูกค้า",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "คำอธิบาย (ไม่จำเป็น)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "ระยะเวลา",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "กำหนดระยะเวลารอบบิล",
|
||||
"minute": "นาที",
|
||||
"hour": "ชั่วโมง",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "สกุลเงินหลัก",
|
||||
"timezone": "เขตเวลา",
|
||||
"date_format": "รูปแบบวันที่",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "สกุลเงิน",
|
||||
"currency": "สกุลเงิน | สกุลเงิน",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "ตัวอักษรตัวเดียวสำหรับการระบุเขตแดนระหว่าง 2 องค์ประกอบที่แยกต่างหากโดยค่าเริ่มต้นตั้งค่าเป็น -",
|
||||
"delimiter_param_label": "ตัวคั่น",
|
||||
"date_format": "รูปแบบวันที่",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "วันที่และเวลาท้องถิ่นฟิลด์ซึ่งยอมรับพารามิเตอร์รูปแบบรูปแบบเริ่มต้น: 'Y' วาทกรรมในปีปัจจุบัน",
|
||||
"date_format_param_label": "รูปแบบ",
|
||||
"sequence": "ลำดับ",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "เขตเวลา",
|
||||
"fiscal_year": "ปีงบการเงิน",
|
||||
"date_format": "รูปแบบวันที่",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "การตั้งค่าส่วนลด",
|
||||
"discount_per_item": "ส่วนลดต่อรายการ ",
|
||||
"discount_setting_description": "เปิดใช้งานตัวเลือกนี้หากคุณต้องการเพิ่มส่วนลดให้กับรายการใบวางบิลแต่ละรายการโดยค่าเริ่มต้นส่วนลดจะถูกเพิ่มโดยตรงไปยังใบวางบิล",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "เลือกภาษา",
|
||||
"select_time_zone": "เลือกโซนเวลา",
|
||||
"select_date_format": "เลือกรูปแบบวันที่",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "เลือกปีการเงิน",
|
||||
"recurring_invoice_status": "สถานะใบวางบิลประจำ",
|
||||
"create_status": "สร้างสถานะ",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "สถานะการอัพเดต",
|
||||
"completed": "เสร็จสมบูรณ์",
|
||||
"company_currency_unchangeable": "สกุลเงินของบริษัทไม่สามารถเปลี่ยนแปลงได้",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "เขตเวลา",
|
||||
"fiscal_year": "ปีงบการเงิน",
|
||||
"date_format": "รูปแบบวันที่",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "จากที่อยู่",
|
||||
"username": "ชื่อผู้ใช้",
|
||||
"next": "ถัดไป",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "ภาษี",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
808
lang/tr.json
808
lang/tr.json
File diff suppressed because it is too large
Load Diff
350
lang/uk.json
350
lang/uk.json
@@ -1,187 +1,187 @@
|
||||
{
|
||||
"navigation": {
|
||||
"dashboard": "Dashboard",
|
||||
"customers": "Customers",
|
||||
"items": "Items",
|
||||
"invoices": "Invoices",
|
||||
"recurring-invoices": "Recurring Invoices",
|
||||
"expenses": "Expenses",
|
||||
"estimates": "Estimates",
|
||||
"payments": "Payments",
|
||||
"reports": "Reports",
|
||||
"settings": "Settings",
|
||||
"logout": "Logout",
|
||||
"users": "Users",
|
||||
"modules": "Modules"
|
||||
"dashboard": "Панель керування",
|
||||
"customers": "Клієнти",
|
||||
"items": "Товари",
|
||||
"invoices": "Платежі",
|
||||
"recurring-invoices": "Регулярні платежі",
|
||||
"expenses": "Витрати",
|
||||
"estimates": "Оцінки",
|
||||
"payments": "Оплати",
|
||||
"reports": "Звіти",
|
||||
"settings": "Налаштування",
|
||||
"logout": "Вийти",
|
||||
"users": "Користувачі",
|
||||
"modules": "Модулі"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "Add Company",
|
||||
"view_pdf": "View PDF",
|
||||
"copy_pdf_url": "Copy PDF Url",
|
||||
"download_pdf": "Download PDF",
|
||||
"save": "Save",
|
||||
"create": "Create",
|
||||
"cancel": "Cancel",
|
||||
"update": "Update",
|
||||
"deselect": "Deselect",
|
||||
"download": "Download",
|
||||
"from_date": "From Date",
|
||||
"to_date": "To Date",
|
||||
"from": "From",
|
||||
"to": "To",
|
||||
"ok": "Ok",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"sort_by": "Sort By",
|
||||
"ascending": "Ascending",
|
||||
"descending": "Descending",
|
||||
"subject": "Subject",
|
||||
"body": "Body",
|
||||
"message": "Message",
|
||||
"send": "Send",
|
||||
"preview": "Preview",
|
||||
"go_back": "Go Back",
|
||||
"back_to_login": "Back to Login?",
|
||||
"home": "Home",
|
||||
"filter": "Filter",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"add_new_item": "Add New Item",
|
||||
"clear_all": "Clear All",
|
||||
"showing": "Showing",
|
||||
"add_company": "Додати компанію",
|
||||
"view_pdf": "Переглянути PDF",
|
||||
"copy_pdf_url": "Копіювати посилання PDF",
|
||||
"download_pdf": "Завантажити PDF",
|
||||
"save": "Зберегти",
|
||||
"create": "Створити",
|
||||
"cancel": "Скасувати",
|
||||
"update": "Оновити",
|
||||
"deselect": "Зняти вибір",
|
||||
"download": "Завантажити",
|
||||
"from_date": "Від дати",
|
||||
"to_date": "До дати",
|
||||
"from": "З",
|
||||
"to": "До",
|
||||
"ok": "Ок",
|
||||
"yes": "Так",
|
||||
"no": "Ні",
|
||||
"sort_by": "Впорядкувати за",
|
||||
"ascending": "За зростанням",
|
||||
"descending": "За спаданням",
|
||||
"subject": "Тема",
|
||||
"body": "Вміст",
|
||||
"message": "Повідомлення",
|
||||
"send": "Надіслати",
|
||||
"preview": "Перегляд",
|
||||
"go_back": "Повернутися назад",
|
||||
"back_to_login": "Повернутись до входу?",
|
||||
"home": "Домашня сторінка",
|
||||
"filter": "Фільтр",
|
||||
"delete": "Видалити",
|
||||
"edit": "Редагувати",
|
||||
"view": "Вигляд",
|
||||
"add_new_item": "Додати новий елемент",
|
||||
"clear_all": "Очистити все",
|
||||
"showing": "Показано",
|
||||
"of": "of",
|
||||
"actions": "Actions",
|
||||
"actions": "Дії",
|
||||
"subtotal": "SUBTOTAL",
|
||||
"discount": "DISCOUNT",
|
||||
"fixed": "Fixed",
|
||||
"percentage": "Percentage",
|
||||
"tax": "TAX",
|
||||
"total_amount": "TOTAL AMOUNT",
|
||||
"discount": "ЗНИЖКА",
|
||||
"fixed": "Фіксована",
|
||||
"percentage": "Відсоток",
|
||||
"tax": "ПОДАТОК",
|
||||
"total_amount": "ЗАГАЛЬНА СУМА",
|
||||
"bill_to": "Bill to",
|
||||
"ship_to": "Ship to",
|
||||
"due": "Due",
|
||||
"draft": "Draft",
|
||||
"sent": "Sent",
|
||||
"all": "All",
|
||||
"select_all": "Select All",
|
||||
"select_template": "Select Template",
|
||||
"choose_file": "Click here to choose a file",
|
||||
"choose_template": "Choose a template",
|
||||
"choose": "Choose",
|
||||
"remove": "Remove",
|
||||
"select_a_status": "Select a status",
|
||||
"select_a_tax": "Select a tax",
|
||||
"search": "Search",
|
||||
"are_you_sure": "Are you sure?",
|
||||
"list_is_empty": "List is empty.",
|
||||
"no_tax_found": "No tax found!",
|
||||
"draft": "Чернетка",
|
||||
"sent": "Надіслано",
|
||||
"all": "Усі",
|
||||
"select_all": "Обрати все",
|
||||
"select_template": "Вибрати шаблон",
|
||||
"choose_file": "Натисніть тут щоб обрати файл",
|
||||
"choose_template": "Оберіть шаблон",
|
||||
"choose": "Обрати",
|
||||
"remove": "Вилучити",
|
||||
"select_a_status": "Оберіть статус",
|
||||
"select_a_tax": "Оберіть податок",
|
||||
"search": "Пошук",
|
||||
"are_you_sure": "Ви впевнені?",
|
||||
"list_is_empty": "Список порожній.",
|
||||
"no_tax_found": "Податок не знайдено!",
|
||||
"four_zero_four": "404",
|
||||
"you_got_lost": "Whoops! You got Lost!",
|
||||
"go_home": "Go Home",
|
||||
"test_mail_conf": "Test Mail Configuration",
|
||||
"send_mail_successfully": "Mail sent successfully",
|
||||
"setting_updated": "Setting updated successfully",
|
||||
"select_state": "Select state",
|
||||
"select_country": "Select Country",
|
||||
"select_city": "Select City",
|
||||
"street_1": "Street 1",
|
||||
"street_2": "Street 2",
|
||||
"action_failed": "Action Failed",
|
||||
"retry": "Retry",
|
||||
"you_got_lost": "Ой! Ви заблукали!",
|
||||
"go_home": "Повернутися",
|
||||
"test_mail_conf": "Перевірити Налаштування Пошти",
|
||||
"send_mail_successfully": "Лист успішно надіслано",
|
||||
"setting_updated": "Налаштування успішно оновлено",
|
||||
"select_state": "Оберіть область",
|
||||
"select_country": "Оберіть країну",
|
||||
"select_city": "Оберіть місто",
|
||||
"street_1": "Вулиця 1",
|
||||
"street_2": "Вулиця 2",
|
||||
"action_failed": "Не вдалося виконати дію",
|
||||
"retry": "Повторити",
|
||||
"choose_note": "Choose Note",
|
||||
"no_note_found": "No Note Found",
|
||||
"no_note_found": "Примітку не знайдено",
|
||||
"insert_note": "Insert Note",
|
||||
"copied_pdf_url_clipboard": "Copied PDF url to clipboard!",
|
||||
"copied_url_clipboard": "Copied url to clipboard!",
|
||||
"copied_pdf_url_clipboard": "Посилання на PDF скопійовано в буфер обміну!",
|
||||
"copied_url_clipboard": "Посилання скопійовано до буфера обміну!",
|
||||
"docs": "Docs",
|
||||
"do_you_wish_to_continue": "Do you wish to continue?",
|
||||
"note": "Note",
|
||||
"pay_invoice": "Pay Invoice",
|
||||
"login_successfully": "Logged in successfully!",
|
||||
"logged_out_successfully": "Logged out successfully",
|
||||
"mark_as_default": "Mark as default",
|
||||
"no_data_found": "No data found",
|
||||
"do_you_wish_to_continue": "Бажаєте продовжити?",
|
||||
"note": "Примітка",
|
||||
"pay_invoice": "Сплатити Рахунок",
|
||||
"login_successfully": "Вхід успішно виконано!",
|
||||
"logged_out_successfully": "Вихід успішний",
|
||||
"mark_as_default": "Позначити за замовчуванням",
|
||||
"no_data_found": "Даних не знайдено",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "Попередній",
|
||||
"next": "Наступний",
|
||||
"showing": "Показано",
|
||||
"to": "до",
|
||||
"of": "з",
|
||||
"results": "результати"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
"drag_a_file": "Перетягніть файл сюди або",
|
||||
"browse": "перегляд",
|
||||
"to_choose": "обрати файл"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"the_list_is_empty": "Список порожній",
|
||||
"no_results_found": "Результатів не знайдено"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "Копіювати до буферу обміну"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "Select year",
|
||||
"select_year": "Виберіть рік",
|
||||
"cards": {
|
||||
"due_amount": "Amount Due",
|
||||
"customers": "Customer | Customers",
|
||||
"invoices": "Invoice | Invoices",
|
||||
"due_amount": "Сума до сплати",
|
||||
"customers": "Клієнт | Клієнти",
|
||||
"invoices": "Рахунок | Рахунки",
|
||||
"estimates": "Estimate | Estimates",
|
||||
"payments": "Payment | Payments"
|
||||
"payments": "Оплата | Оплати"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "Sales",
|
||||
"total_receipts": "Receipts",
|
||||
"total_expense": "Expenses",
|
||||
"net_income": "Net Income",
|
||||
"year": "Select year"
|
||||
"total_sales": "Продажі",
|
||||
"total_receipts": "Квитанції",
|
||||
"total_expense": "Витрати",
|
||||
"net_income": "Чистий дохід",
|
||||
"year": "Виберіть рік"
|
||||
},
|
||||
"monthly_chart": {
|
||||
"title": "Sales & Expenses"
|
||||
"title": "Продажі & Витрати"
|
||||
},
|
||||
"recent_invoices_card": {
|
||||
"title": "Due Invoices",
|
||||
"due_on": "Due On",
|
||||
"customer": "Customer",
|
||||
"customer": "Клієнт",
|
||||
"amount_due": "Amount Due",
|
||||
"actions": "Actions",
|
||||
"view_all": "View All"
|
||||
"actions": "Дії",
|
||||
"view_all": "Переглянути все"
|
||||
},
|
||||
"recent_estimate_card": {
|
||||
"title": "Recent Estimates",
|
||||
"date": "Date",
|
||||
"customer": "Customer",
|
||||
"date": "Дата",
|
||||
"customer": "Клієнт",
|
||||
"amount_due": "Amount Due",
|
||||
"actions": "Actions",
|
||||
"view_all": "View All"
|
||||
"actions": "Дії",
|
||||
"view_all": "Переглянути все"
|
||||
}
|
||||
},
|
||||
"tax_types": {
|
||||
"name": "Name",
|
||||
"description": "Description",
|
||||
"percent": "Percent",
|
||||
"name": "Назва",
|
||||
"description": "Опис",
|
||||
"percent": "Відсоток",
|
||||
"compound_tax": "Compound Tax"
|
||||
},
|
||||
"global_search": {
|
||||
"search": "Search...",
|
||||
"customers": "Customers",
|
||||
"users": "Users",
|
||||
"no_results_found": "No Results Found"
|
||||
"search": "Шукати...",
|
||||
"customers": "Клієнти",
|
||||
"users": "Користувачі",
|
||||
"no_results_found": "Результатів не знайдено"
|
||||
},
|
||||
"company_switcher": {
|
||||
"label": "SWITCH COMPANY",
|
||||
"no_results_found": "No Results Found",
|
||||
"add_new_company": "Add new company",
|
||||
"new_company": "New company",
|
||||
"created_message": "Company created successfully"
|
||||
"no_results_found": "Результатів не знайдено",
|
||||
"add_new_company": "Додати нову компанію",
|
||||
"new_company": "Нова компанія",
|
||||
"created_message": "Компанія успішно створена"
|
||||
},
|
||||
"dateRange": {
|
||||
"today": "Today",
|
||||
"this_week": "This Week",
|
||||
"this_month": "This Month",
|
||||
"this_quarter": "This Quarter",
|
||||
"this_year": "This Year",
|
||||
"today": "Сьогодні",
|
||||
"this_week": "Цього тижня",
|
||||
"this_month": "Цього місяця",
|
||||
"this_quarter": "Цього кварталу",
|
||||
"this_year": "Цього року",
|
||||
"previous_week": "Previous Week",
|
||||
"previous_month": "Previous Month",
|
||||
"previous_quarter": "Previous Quarter",
|
||||
@@ -189,50 +189,51 @@
|
||||
"custom": "Custom"
|
||||
},
|
||||
"customers": {
|
||||
"title": "Customers",
|
||||
"prefix": "Prefix",
|
||||
"add_customer": "Add Customer",
|
||||
"contacts_list": "Customer List",
|
||||
"name": "Name",
|
||||
"title": "Клієнти",
|
||||
"prefix": "Префікс",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Додати Клієнта",
|
||||
"contacts_list": "Список клієнтів",
|
||||
"name": "Ім’я",
|
||||
"mail": "Mail | Mails",
|
||||
"statement": "Statement",
|
||||
"display_name": "Display Name",
|
||||
"primary_contact_name": "Primary Contact Name",
|
||||
"contact_name": "Contact Name",
|
||||
"amount_due": "Amount Due",
|
||||
"email": "Email",
|
||||
"address": "Address",
|
||||
"phone": "Phone",
|
||||
"website": "Website",
|
||||
"overview": "Overview",
|
||||
"email": "Ел. пошта",
|
||||
"address": "Адреса",
|
||||
"phone": "Номер телефону",
|
||||
"website": "Веб-сайт",
|
||||
"overview": "Перегляд",
|
||||
"invoice_prefix": "Invoice Prefix",
|
||||
"estimate_prefix": "Estimate Prefix",
|
||||
"payment_prefix": "Payment Prefix",
|
||||
"enable_portal": "Enable Portal",
|
||||
"country": "Country",
|
||||
"state": "State",
|
||||
"city": "City",
|
||||
"zip_code": "Zip Code",
|
||||
"added_on": "Added On",
|
||||
"action": "Action",
|
||||
"password": "Password",
|
||||
"confirm_password": "Confirm Password",
|
||||
"street_number": "Street Number",
|
||||
"primary_currency": "Primary Currency",
|
||||
"description": "Description",
|
||||
"add_new_customer": "Add New Customer",
|
||||
"save_customer": "Save Customer",
|
||||
"update_customer": "Update Customer",
|
||||
"customer": "Customer | Customers",
|
||||
"new_customer": "New Customer",
|
||||
"edit_customer": "Edit Customer",
|
||||
"basic_info": "Basic Info",
|
||||
"country": "Країна",
|
||||
"state": "Область",
|
||||
"city": "Місто",
|
||||
"zip_code": "Поштовий Індекс",
|
||||
"added_on": "Додано",
|
||||
"action": "Дія",
|
||||
"password": "Пароль",
|
||||
"confirm_password": "Підтвердьте пароль",
|
||||
"street_number": "Номер вулиці",
|
||||
"primary_currency": "Основна валюта",
|
||||
"description": "Опис",
|
||||
"add_new_customer": "Додати нового клієнта",
|
||||
"save_customer": "Зберегти клієнта",
|
||||
"update_customer": "Оновити Клієнта",
|
||||
"customer": "Клієнт | Клієнти",
|
||||
"new_customer": "Новий клієнт",
|
||||
"edit_customer": "Редагувати Клієнта",
|
||||
"basic_info": "Основна інформація",
|
||||
"portal_access": "Portal Access",
|
||||
"portal_access_text": "Would you like to allow this customer to login to the Customer Portal?",
|
||||
"portal_access_url": "Customer Portal Login URL",
|
||||
"portal_access_url_help": "Please copy & forward the above given URL to your customer for providing access.",
|
||||
"billing_address": "Billing Address",
|
||||
"shipping_address": "Shipping Address",
|
||||
"billing_address": "Адреса виставлення рахунків",
|
||||
"shipping_address": "Адреса доставки",
|
||||
"copy_billing_address": "Copy from Billing",
|
||||
"no_customers": "No customers yet!",
|
||||
"no_customers_found": "No customers found!",
|
||||
@@ -248,8 +249,8 @@
|
||||
"phone_number": "Phone Number",
|
||||
"create_date": "Create Date",
|
||||
"confirm_delete": "You will not be able to recover this customer and all the related Invoices, Estimates and Payments. | You will not be able to recover these customers and all the related Invoices, Estimates and Payments.",
|
||||
"created_message": "Customer created successfully",
|
||||
"updated_message": "Customer updated successfully",
|
||||
"created_message": "Клієнт успішно створений",
|
||||
"updated_message": "Клієнт успішно оновлений",
|
||||
"address_updated_message": "Address Information Updated succesfully",
|
||||
"deleted_message": "Customer deleted successfully | Customers deleted successfully",
|
||||
"edit_currency_not_allowed": "Cannot change currency once transactions created."
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Primary Currency",
|
||||
"timezone": "Time Zone",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Currencies",
|
||||
"currency": "Currency | Currencies",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Discount Setting",
|
||||
"discount_per_item": "Discount Per Item ",
|
||||
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount is added directly to the invoice.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Select Language",
|
||||
"select_time_zone": "Select Time Zone",
|
||||
"select_date_format": "Select Date Format",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Select Financial Year",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Time Zone",
|
||||
"fiscal_year": "Financial Year",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "From Address",
|
||||
"username": "Username",
|
||||
"next": "Next",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
12
lang/vi.json
12
lang/vi.json
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "Khách hàng",
|
||||
"prefix": "Tiền tố",
|
||||
"tax_id": "Tax ID",
|
||||
"add_customer": "Thêm khách hàng",
|
||||
"contacts_list": "Danh sách khách hàng",
|
||||
"name": "Tên",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Nhập mô tả mặt hàng (tuỳ chọn)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Tần suất",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Chọn tần suất",
|
||||
"minute": "Phút",
|
||||
"hour": "Giờ",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "Tiền tệ chính",
|
||||
"timezone": "Múi giờ",
|
||||
"date_format": "Định dạng ngày tháng",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "Tiền tệ",
|
||||
"currency": "Tiền tệ | Tiền tệ",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Ký tự để xác định ranh giới giữa hai thành phần riêng biệt. Mặc định được đặt là -",
|
||||
"delimiter_param_label": "Giá trị ký tự phân cách",
|
||||
"date_format": "Định dạng ngày",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "Một trường ngày và giờ cục bộ chấp nhận tham số định dạng. Định dạng mặc định: 'Y' hiển thị năm hiện tại.",
|
||||
"date_format_param_label": "Định dạng",
|
||||
"sequence": "Chuỗi",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "Múi giờ",
|
||||
"fiscal_year": "Năm tài chính",
|
||||
"date_format": "Định dạng ngày tháng",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "Cài đặt chiết khấu",
|
||||
"discount_per_item": "Giảm giá cho mỗi mặt hàng ",
|
||||
"discount_setting_description": "Bật tính năng này nếu bạn muốn thêm Giảm giá vào các mặt hàng hóa đơn riêng lẻ. Theo mặc định, Giảm giá được thêm trực tiếp vào hóa đơn.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "Chọn ngôn ngữ",
|
||||
"select_time_zone": "Chọn múi giờ",
|
||||
"select_date_format": "Chọn định dạng ngày",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "Chọn năm tài chính",
|
||||
"recurring_invoice_status": "Trạng thái hoá đơn định kỳ",
|
||||
"create_status": "Tạo trạng thái",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Cập nhật trạng thái",
|
||||
"completed": "Đã hoàn thành",
|
||||
"company_currency_unchangeable": "Không thể thay đổi đơn vị tiền tệ của doanh nghiệp",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "Múi giờ",
|
||||
"fiscal_year": "Năm tài chính",
|
||||
"date_format": "Định dạng ngày tháng",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "Từ địa chỉ",
|
||||
"username": "Tên tài khoản",
|
||||
"next": "Kế tiếp",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Thuế",
|
||||
"pdf_tax_id": "ID Thuế",
|
||||
"pdf_vat_id": "ID VAT",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
56
lang/zh.json
56
lang/zh.json
@@ -12,7 +12,7 @@
|
||||
"settings": "設定",
|
||||
"logout": "登出",
|
||||
"users": "使用者",
|
||||
"modules": "Modules"
|
||||
"modules": "模組"
|
||||
},
|
||||
"general": {
|
||||
"add_company": "新增公司",
|
||||
@@ -93,42 +93,42 @@
|
||||
"no_note_found": "沒有找到備註",
|
||||
"insert_note": "插入備註",
|
||||
"copied_pdf_url_clipboard": "複製PDF位址到剪貼簿!",
|
||||
"copied_url_clipboard": "Copied url to clipboard!",
|
||||
"copied_url_clipboard": "將網址複製到剪貼簿!",
|
||||
"docs": "文檔",
|
||||
"do_you_wish_to_continue": "你確定要繼續?",
|
||||
"note": "備註",
|
||||
"pay_invoice": "Pay Invoice",
|
||||
"login_successfully": "Logged in successfully!",
|
||||
"logged_out_successfully": "Logged out successfully",
|
||||
"mark_as_default": "Mark as default",
|
||||
"no_data_found": "No data found",
|
||||
"pay_invoice": "支付發票",
|
||||
"login_successfully": "登入成功.",
|
||||
"logged_out_successfully": "登出成功",
|
||||
"mark_as_default": "標記為預設值",
|
||||
"no_data_found": "未有數據",
|
||||
"pagination": {
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"showing": "Showing",
|
||||
"to": "to",
|
||||
"of": "of",
|
||||
"results": "results"
|
||||
"previous": "上一頁",
|
||||
"next": "下一頁",
|
||||
"showing": "顯示",
|
||||
"to": "至",
|
||||
"of": "中的",
|
||||
"results": "結果"
|
||||
},
|
||||
"file_upload": {
|
||||
"drag_a_file": "Drag a file here or",
|
||||
"browse": "browse",
|
||||
"to_choose": "to choose a file"
|
||||
"drag_a_file": "將文件拖到此處 或",
|
||||
"browse": "瀏覽",
|
||||
"to_choose": "選擇文件"
|
||||
},
|
||||
"multiselect": {
|
||||
"the_list_is_empty": "The list is empty",
|
||||
"no_results_found": "No results found"
|
||||
"the_list_is_empty": "此清單是空的",
|
||||
"no_results_found": "未找到結果"
|
||||
},
|
||||
"copy_to_clipboard": "Copy to Clipboard"
|
||||
"copy_to_clipboard": "複製到剪貼簿"
|
||||
},
|
||||
"dashboard": {
|
||||
"select_year": "選擇年份",
|
||||
"cards": {
|
||||
"due_amount": "應付金額",
|
||||
"customers": "Customer | Customers",
|
||||
"invoices": "Invoice | Invoices",
|
||||
"customers": "客戶|客戶",
|
||||
"invoices": "發票 | 發票",
|
||||
"estimates": "Estimate | Estimates",
|
||||
"payments": "Payment | Payments"
|
||||
"payments": "付款 | 付款"
|
||||
},
|
||||
"chart_info": {
|
||||
"total_sales": "銷售",
|
||||
@@ -191,6 +191,7 @@
|
||||
"customers": {
|
||||
"title": "客户",
|
||||
"prefix": "前置字串",
|
||||
"tax_id": "稅務識別碼",
|
||||
"add_customer": "新增客户",
|
||||
"contacts_list": "客户列表",
|
||||
"name": "名稱",
|
||||
@@ -564,7 +565,7 @@
|
||||
"type_item_description": "Type Item Description (optional)"
|
||||
},
|
||||
"frequency": {
|
||||
"title": "Frequency",
|
||||
"title": "Frequency (using cron format)",
|
||||
"select_frequency": "Select Frequency",
|
||||
"minute": "Minute",
|
||||
"hour": "Hour",
|
||||
@@ -863,6 +864,7 @@
|
||||
"primary_currency": "主要貨幣",
|
||||
"timezone": "時區",
|
||||
"date_format": "日期格式",
|
||||
"time_format": "Time Format",
|
||||
"currencies": {
|
||||
"title": "貨幣",
|
||||
"currency": "貨幣 | 貨幣",
|
||||
@@ -989,6 +991,7 @@
|
||||
"delimiter_description": "Single character for specifying the boundary between 2 separate components. By default its set to -",
|
||||
"delimiter_param_label": "Delimiter Value",
|
||||
"date_format": "Date Format",
|
||||
"time_format": "Time Format",
|
||||
"date_format_description": "A local date and time field which accepts a format parameter. The default format: 'Y' renders the current year.",
|
||||
"date_format_param_label": "Format",
|
||||
"sequence": "Sequence",
|
||||
@@ -1233,6 +1236,7 @@
|
||||
"time_zone": "時區",
|
||||
"fiscal_year": "財政年度",
|
||||
"date_format": "日期格式",
|
||||
"time_format": "Time Fromat",
|
||||
"discount_setting": "折扣設定",
|
||||
"discount_per_item": "商品折扣",
|
||||
"discount_setting_description": "啟用此項, 如果你要將折扣以每個獨立商品計算. 預設折扣以整單發票計算.",
|
||||
@@ -1245,6 +1249,7 @@
|
||||
"select_language": "選取語言",
|
||||
"select_time_zone": "選取時區",
|
||||
"select_date_format": "選擇日期格式",
|
||||
"select_time_format": "Select Time Format",
|
||||
"select_financial_year": "選擇財政年度",
|
||||
"recurring_invoice_status": "Recurring Invoice Status",
|
||||
"create_status": "Create Status",
|
||||
@@ -1253,6 +1258,8 @@
|
||||
"update_status": "Update Status",
|
||||
"completed": "Completed",
|
||||
"company_currency_unchangeable": "Company currency cannot be changed",
|
||||
"invoice_use_time": "Use time in invoices",
|
||||
"invoice_use_time_description": "Enable this if you want to select exact invoice time.",
|
||||
"fiscal_years": {
|
||||
"january_december": "January - December",
|
||||
"february_january": "February - January",
|
||||
@@ -1421,6 +1428,7 @@
|
||||
"time_zone": "時區",
|
||||
"fiscal_year": "財政年度",
|
||||
"date_format": "日期格式",
|
||||
"time_format": "Time Format",
|
||||
"from_address": "寄件人地址",
|
||||
"username": "使用者名稱",
|
||||
"next": "下一個",
|
||||
@@ -1616,6 +1624,8 @@
|
||||
"pdf_tax_label": "Tax",
|
||||
"pdf_tax_id": "Tax-ID",
|
||||
"pdf_vat_id": "VAT-ID",
|
||||
"pdf_amount_paid": "Amount Paid",
|
||||
"pdf_amount_due": "Amount Due",
|
||||
"mail_thanks": "Thanks",
|
||||
"mail_view_estimate": "View Estimate",
|
||||
"mail_viewed_estimate": ":name viewed this Estimate.",
|
||||
|
||||
61
package.json
61
package.json
@@ -2,7 +2,7 @@
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite --host",
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"serve": "vite preview",
|
||||
"test": "eslint ./resources/scripts --ext .js,.vue"
|
||||
@@ -10,53 +10,54 @@
|
||||
"devDependencies": {
|
||||
"@rvxlab/tailwind-plugin-ios-full-height": "^1.1.0",
|
||||
"@tailwindcss/aspect-ratio": "^0.4.2",
|
||||
"@tailwindcss/forms": "^0.5.7",
|
||||
"@tailwindcss/typography": "^0.5.10",
|
||||
"@vitejs/plugin-vue": "^5.0.3",
|
||||
"@vue/compiler-sfc": "^3.4.15",
|
||||
"autoprefixer": "^10.4.17",
|
||||
"@tailwindcss/forms": "^0.5.10",
|
||||
"@tailwindcss/typography": "^0.5.16",
|
||||
"@vitejs/plugin-vue": "^5.2.1",
|
||||
"@vue/compiler-sfc": "^3.5.13",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint": "^9.18.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-vue": "^9.20.1",
|
||||
"postcss": "^8.4.33",
|
||||
"prettier": "^3.2.4",
|
||||
"sass": "^1.70.0",
|
||||
"tailwind-scrollbar": "^3.0.5",
|
||||
"tailwindcss": "^3.4.1"
|
||||
"eslint-plugin-vue": "^9.32.0",
|
||||
"postcss": "^8.4.49",
|
||||
"prettier": "^3.4.2",
|
||||
"sass": "^1.83.1",
|
||||
"tailwind-scrollbar": "^3.1.0",
|
||||
"tailwindcss": "^3.4.17"
|
||||
},
|
||||
"dependencies": {
|
||||
"@headlessui/vue": "^1.7.17",
|
||||
"@headlessui/vue": "^1.7.23",
|
||||
"@heroicons/vue": "^1.0.6",
|
||||
"@popperjs/core": "^2.11.8",
|
||||
"@stripe/stripe-js": "^2.4.0",
|
||||
"@tiptap/core": "^2.1.16",
|
||||
"@tiptap/extension-text-align": "^2.1.16",
|
||||
"@tiptap/starter-kit": "^2.1.16",
|
||||
"@tiptap/vue-3": "^2.1.16",
|
||||
"@tiptap/pm": "^2.0.0",
|
||||
"@tiptap/core": "^2.11.2",
|
||||
"@tiptap/extension-link": "^2.11.2",
|
||||
"@tiptap/extension-text-align": "^2.11.2",
|
||||
"@tiptap/pm": "^2.11.2",
|
||||
"@tiptap/starter-kit": "^2.11.2",
|
||||
"@tiptap/vue-3": "^2.11.2",
|
||||
"@types/node": "^20.11.9",
|
||||
"@vuelidate/components": "^1.2.6",
|
||||
"@vuelidate/core": "^2.0.3",
|
||||
"@vuelidate/validators": "^2.0.4",
|
||||
"@vueuse/core": "^10.7.2",
|
||||
"axios": "0.28.1",
|
||||
"@vueuse/core": "^12.4.0",
|
||||
"axios": "0.29.0",
|
||||
"chart.js": "^2.9.4",
|
||||
"guid": "0.0.12",
|
||||
"laravel-vite-plugin": "^1.0.0",
|
||||
"guid": "^0.0.12",
|
||||
"laravel-vite-plugin": "^1.1.1",
|
||||
"lodash": "^4.17.21",
|
||||
"maska": "^2.1.11",
|
||||
"maska": "^3.0.4",
|
||||
"mini-svg-data-uri": "^1.4.4",
|
||||
"moment": "^2.30.1",
|
||||
"path": "^0.12.7",
|
||||
"pinia": "^2.1.7",
|
||||
"pinia": "^2.3.0",
|
||||
"v-money3": "^3.24.1",
|
||||
"v-tooltip": "^4.0.0-beta.17",
|
||||
"vite": "5.3.5",
|
||||
"vue": "^3.4",
|
||||
"vue-flatpickr-component": "^11.0.3",
|
||||
"vue-i18n": "^9.9.0",
|
||||
"vue-router": "^4.2.5",
|
||||
"vite": "^6.0.7",
|
||||
"vue": "^3.5",
|
||||
"vue-flatpickr-component": "^11.0.5",
|
||||
"vue-i18n": "^11.0.1",
|
||||
"vue-router": "^4.5.0",
|
||||
"vuedraggable": "^4.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,3 +19,36 @@
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^ index.php [L]
|
||||
</IfModule>
|
||||
|
||||
# Enable Brotli compression with priority over gzip
|
||||
<IfModule mod_brotli.c>
|
||||
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript application/json application/xml application/rss+xml application/font-woff application/font-woff2
|
||||
# Force Brotli compression if available
|
||||
SetEnvIf Accept-Encoding br brotli
|
||||
</IfModule>
|
||||
|
||||
# Enable gzip compression only if Brotli is unavailable
|
||||
<IfModule mod_deflate.c>
|
||||
<IfModule !mod_brotli.c>
|
||||
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json application/xml application/rss+xml application/font-woff application/font-woff2
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
# This configuration allows browsers to cache assets locally
|
||||
<IfModule mod_headers.c>
|
||||
<FilesMatch "\.(js|css|jpg|jpeg|png|gif|ico|svg|woff2?|ttf|eot)$">
|
||||
<If "%{REQUEST_URI} =~ m#^/build/assets/#">
|
||||
Header set Cache-Control "public, max-age=31536000, immutable"
|
||||
Header set Pragma "public"
|
||||
Header unset ETag
|
||||
FileETag None
|
||||
Header unset Last-Modified
|
||||
</If>
|
||||
</FilesMatch>
|
||||
|
||||
# Security headers
|
||||
Header set X-Frame-Options "SAMEORIGIN"
|
||||
Header set X-Content-Type-Options "nosniff"
|
||||
Header set X-XSS-Protection "1; mode=block"
|
||||
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
|
||||
</IfModule>
|
||||
|
||||
15
readme.md
15
readme.md
@@ -59,18 +59,9 @@ Join the InvoiceShelf discord server to discuss:
|
||||
- [x] Multiple Companies
|
||||
- [x] Recurring Invoices
|
||||
- [x] Customer Portal
|
||||
- [x] Accept Payments (Stripe Integration)
|
||||
- [x] White Labeling (Easy Invoice, Email & Consumer Portal Theme customisation)
|
||||
- [ ] Modules API
|
||||
- [ ] Blockchain Integration
|
||||
- [ ] Web 3.0 Accounting
|
||||
- [ ] Vendors & Bills
|
||||
- [ ] Inventory Management
|
||||
- [ ] Payment Reminders
|
||||
- [ ] Improve Accessibility
|
||||
- [ ] Debit & Credit Notes
|
||||
- [ ] Time Tracking
|
||||
- [ ] Full service Payroll
|
||||
- [ ] Accept Payments (Stripe Integration)
|
||||
- [ ] Improved template system (invoices and estimate)
|
||||
- [ ] Modules and templates marketplace
|
||||
|
||||
|
||||
## Copyright
|
||||
|
||||
13
resources/sass/invoiceshelf.scss
vendored
13
resources/sass/invoiceshelf.scss
vendored
@@ -1,3 +1,6 @@
|
||||
@use "themes.scss";
|
||||
@use "components/animation.scss";
|
||||
|
||||
@tailwind base;
|
||||
|
||||
@tailwind components;
|
||||
@@ -44,16 +47,6 @@
|
||||
src: url("$fonts/Poppins-SemiBold.ttf") format("truetype");
|
||||
}
|
||||
|
||||
// Default Theme
|
||||
//----------------------------------
|
||||
|
||||
@import "themes.scss";
|
||||
|
||||
// Base Components
|
||||
//----------------------------------
|
||||
|
||||
@import "components/animation.scss";
|
||||
|
||||
body {
|
||||
min-height: 100vh;
|
||||
min-height: -webkit-fill-available;
|
||||
|
||||
@@ -74,7 +74,7 @@ import { useExchangeRateStore } from '@/scripts/admin/stores/exchange-rate'
|
||||
import { useCompanyStore } from '@/scripts/admin/stores/company'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { useNotificationStore } from '@/scripts/stores/notification'
|
||||
import { computed, ref } from '@vue/runtime-core'
|
||||
import { computed, ref } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import useVuelidate from '@vuelidate/core'
|
||||
import { required, helpers, numeric, decimal } from '@vuelidate/validators'
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user