Compare commits

..

27 Commits

Author SHA1 Message Date
James Cole
f56de6e719 Merge pull request #7218 from firefly-iii/develop
Release v6.0.4
2023-03-12 18:25:25 +01:00
James Cole
86ba1d151a Merge pull request #7217 from firefly-iii/v604
v604 into develop
2023-03-12 18:24:40 +01:00
James Cole
8d24db14e9 Update packages. 2023-03-12 18:23:18 +01:00
James Cole
cead122d96 Meta files for new release 2023-03-12 18:22:56 +01:00
James Cole
b7dd335fb7 Meta files for release v6.0.4 2023-03-12 18:18:02 +01:00
James Cole
20a7092fe3 Merge pull request #7213 from marcoil/catalan_name
Update Catalan description
2023-03-12 16:09:24 +01:00
James Cole
1d3da33e1d Merge pull request #7216 from firefly-iii/fix-7214
Possible fix for #7214
2023-03-12 16:06:31 +01:00
James Cole
e36675e232 Possible fix for #7214 2023-03-12 16:06:12 +01:00
Marc Ordinas i Llopis
aa8588758a Update Catalan description
Signed-off-by: Marc Ordinas i Llopis <mail@marcoil.org>
2023-03-12 13:48:06 +01:00
James Cole
47a58738d4 Merge pull request #7211 from firefly-iii/develop
Release v6.0.3
2023-03-12 11:04:35 +01:00
James Cole
e0a31d29a4 Merge pull request #7210 from firefly-iii/603
chore: Meta data for 603
2023-03-12 11:00:24 +01:00
James Cole
45369868ad chore: Meta data for 603 2023-03-12 10:59:35 +01:00
James Cole
639c51d651 Merge pull request #7202 from firefly-iii/fix-7201
Fix #7201
2023-03-11 15:05:31 +01:00
James Cole
3d424972cc Fix #7201 2023-03-11 15:04:16 +01:00
James Cole
96fd4da6d8 Merge pull request #7198 from firefly-iii/develop
Release v6.0.2
2023-03-11 08:32:53 +01:00
James Cole
a97a0d461d Merge pull request #7197 from firefly-iii/602
update meta files for 602
2023-03-11 08:32:04 +01:00
James Cole
8d3170785e update meta files for 602 2023-03-11 08:31:27 +01:00
James Cole
ae373a15c5 Merge pull request #7195 from firefly-iii/fix-7142
Fix #7142
2023-03-11 07:45:47 +01:00
James Cole
1f342ed592 Fix #7142 2023-03-11 07:44:45 +01:00
James Cole
3e04f14665 Merge pull request #7194 from firefly-iii/fix-7192
Extra code for #7192
2023-03-11 07:13:59 +01:00
James Cole
dbf83df363 Extra code for #7192 2023-03-11 07:13:39 +01:00
James Cole
15bfc0d6fa Merge pull request #7193 from firefly-iii/fix-7189
Fix #7189
2023-03-11 07:09:50 +01:00
James Cole
f3fc1d8382 Fix #7189 2023-03-11 07:09:27 +01:00
James Cole
07cb7dd06e Merge pull request #7191 from firefly-iii/fix-7188
Fix #7188
2023-03-11 05:50:29 +01:00
James Cole
38624442d1 Fix #7188 2023-03-11 05:50:10 +01:00
James Cole
258dfb3d11 Merge pull request #7190 from firefly-iii/fix-7186
Fix #7186
2023-03-11 05:48:41 +01:00
James Cole
51ddfcdaaa Fix #7186 2023-03-11 05:38:54 +01:00
68 changed files with 494 additions and 212 deletions

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Database\QueryException;
use League\Flysystem\FilesystemException;
use Log;
use Storage;
@@ -55,9 +56,7 @@ class VerifySecurityAlerts extends Command
*/
public function handle(): int
{
// remove old advisory
app('fireflyconfig')->delete('upgrade_security_message');
app('fireflyconfig')->delete('upgrade_security_level');
$this->removeOldAdvisory();
// check for security advisories.
$version = config('firefly.version');
@@ -76,8 +75,7 @@ class VerifySecurityAlerts extends Command
if ($version === $array['version'] && true === $array['advisory']) {
Log::debug(sprintf('Version %s has an alert!', $array['version']));
// add advisory to configuration.
app('fireflyconfig')->set('upgrade_security_message', $array['message']);
app('fireflyconfig')->set('upgrade_security_level', $array['level']);
$this->saveSecurityAdvisory($array);
// depends on level
if ('info' === $array['level']) {
@@ -110,4 +108,31 @@ class VerifySecurityAlerts extends Command
return 0;
}
/**
* @return void
*/
private function removeOldAdvisory(): void
{
try {
app('fireflyconfig')->delete('upgrade_security_message');
app('fireflyconfig')->delete('upgrade_security_level');
} catch (QueryException $e) {
Log::debug(sprintf('Could not delete old security advisory, but thats OK: %s', $e->getMessage()));
}
}
/**
* @param array $array
* @return void
*/
private function saveSecurityAdvisory(array $array): void
{
try {
app('fireflyconfig')->set('upgrade_security_message', $array['message']);
app('fireflyconfig')->set('upgrade_security_level', $array['level']);
} catch (QueryException $e) {
Log::debug(sprintf('Could not save new security advisory, but thats OK: %s', $e->getMessage()));
}
}
}

View File

@@ -70,7 +70,7 @@ trait DepositValidation
}
if (null !== $search) {
Log::debug(sprintf('findExistingAccount() returned #%d ("%s"), so the result is true.', $search->id, $search->name));
$this->destination = $search;
$this->setDestination($search);
$result = true;
}
}
@@ -107,7 +107,7 @@ trait DepositValidation
$accountNumber = array_key_exists('number', $array) ? $array['number'] : null;
Log::debug('Now in validateDepositSource', $array);
// null = we found nothing at all or didnt even search
// null = we found nothing at all or didn't even search
// false = invalid results
$result = null;
@@ -129,6 +129,11 @@ trait DepositValidation
Log::debug(sprintf('User submitted an ID (#%d), which is a "%s", so this is not a valid source.', $accountId, $search->accountType->type));
Log::debug(sprintf('Firefly III accepts ID #%d as valid account data.', $accountId));
}
if (null !== $search && in_array($search->accountType->type, $validTypes, true)) {
Log::debug('ID result is not null and seems valid, save as source account.');
$this->setSource($search);
$result = true;
}
}
// if user submits an IBAN:
@@ -138,10 +143,15 @@ trait DepositValidation
Log::debug(sprintf('User submitted IBAN ("%s"), which is a "%s", so this is not a valid source.', $accountIban, $search->accountType->type));
$result = false;
}
if (null !== $search && in_array($search->accountType->type, $validTypes, true)) {
Log::debug('IBAN result is not null and seems valid, save as source account.');
$this->setSource($search);
$result = true;
}
}
// if user submits a number:
if (null !== $accountNumber) {
if (null !== $accountNumber && '' !== $accountNumber) {
$search = $this->accountRepository->findByAccountNumber($accountNumber, $validTypes);
if (null !== $search && !in_array($search->accountType->type, $validTypes, true)) {
Log::debug(
@@ -149,6 +159,11 @@ trait DepositValidation
);
$result = false;
}
if (null !== $search && in_array($search->accountType->type, $validTypes, true)) {
Log::debug('Number result is not null and seems valid, save as source account.');
$this->setSource($search);
$result = true;
}
}
// if the account can be created anyway we don't need to search.
@@ -159,7 +174,7 @@ trait DepositValidation
$account = new Account();
$accountType = AccountType::whereType(AccountType::REVENUE)->first();
$account->accountType = $accountType;
$this->source = $account;
$this->setSource($account);
}
return $result ?? false;

View File

@@ -91,7 +91,7 @@ trait LiabilityValidation
return false;
}
Log::debug(sprintf('Return true, found #%d ("%s")', $result->id, $result->name));
$this->source = $result;
$this->setSource($result);
return true;
}
@@ -109,7 +109,7 @@ trait LiabilityValidation
$account = new Account();
$accountType = AccountType::whereType(AccountType::LIABILITY_CREDIT)->first();
$account->accountType = $accountType;
$this->source = $account;
$this->setSource($account);
}
return $result;

View File

@@ -70,7 +70,7 @@ trait OBValidation
}
if (null !== $search) {
Log::debug(sprintf('findExistingAccount() returned #%d ("%s"), so the result is true.', $search->id, $search->name));
$this->destination = $search;
$this->setDestination($search);
$result = true;
}
}
@@ -127,7 +127,7 @@ trait OBValidation
// the source resulted in an account, AND it's of a valid type.
if (null !== $search && in_array($search->accountType->type, $validTypes, true)) {
Log::debug(sprintf('Found account of correct type: #%d, "%s"', $search->id, $search->name));
$this->source = $search;
$this->setSource($search);
$result = true;
}
}
@@ -141,7 +141,7 @@ trait OBValidation
$account = new Account();
$accountType = AccountType::whereType(AccountType::INITIAL_BALANCE)->first();
$account->accountType = $accountType;
$this->source = $account;
$this->setSource($account);
}
return $result ?? false;

View File

@@ -64,7 +64,7 @@ trait ReconciliationValidation
return false;
}
$this->source = $search;
$this->setSource($search);
Log::debug('Valid source account!');
return true;
@@ -85,7 +85,7 @@ trait ReconciliationValidation
// source to the asset account that is the destination.
if (null === $accountId && null === $accountName) {
Log::debug('The source is valid because ID and name are NULL.');
$this->source = new Account();
$this->setSource(new Account());
return true;
}
@@ -101,7 +101,7 @@ trait ReconciliationValidation
return false;
}
$this->source = $search;
$this->setSource($search);
Log::debug('Valid source account!');
return true;

View File

@@ -59,7 +59,7 @@ trait TransferValidation
return false;
}
$this->destination = $search;
$this->setDestination($search);
// must not be the same as the source account
if (null !== $this->source && $this->source->id === $this->destination->id) {
@@ -116,7 +116,7 @@ trait TransferValidation
return false;
}
$this->source = $search;
$this->setSource($search);
Log::debug('Valid source!');
return true;

View File

@@ -61,7 +61,7 @@ trait WithdrawalValidation
return false;
}
$this->source = $search;
$this->setSource($search);
Log::debug('Valid source account!');
return true;
@@ -108,7 +108,7 @@ trait WithdrawalValidation
if (null !== $found) {
$type = $found->accountType->type;
if (in_array($type, $validTypes, true)) {
$this->destination = $found;
$this->setDestination($found);
return true;
}
$this->destError = (string)trans('validation.withdrawal_dest_bad_data', ['id' => $accountId, 'name' => $accountName]);
@@ -151,7 +151,7 @@ trait WithdrawalValidation
return false;
}
$this->source = $search;
$this->setSource($search);
Log::debug('Valid source account!');
return true;

View File

@@ -264,4 +264,32 @@ class AccountValidator
return null;
}
/**
* @param Account|null $account
*/
public function setDestination(?Account $account): void
{
if (null === $account) {
Log::debug('AccountValidator destination is set to NULL');
}
if (null !== $account) {
Log::debug(sprintf('AccountValidator destination is set to #%d: "%s" (%s)', $account->id, $account->name, $account?->accountType->type));
}
$this->destination = $account;
}
/**
* @param Account|null $account
*/
public function setSource(?Account $account): void
{
if (null === $account) {
Log::debug('AccountValidator source is set to NULL');
}
if (null !== $account) {
Log::debug(sprintf('AccountValidator source is set to #%d: "%s" (%s)', $account->id, $account->name, $account?->accountType->type));
}
$this->source = $account;
}
}

View File

@@ -24,10 +24,12 @@ declare(strict_types=1);
namespace FireflyIII\Validation;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use Illuminate\Validation\Validator;
use Log;
@@ -143,25 +145,145 @@ trait TransactionValidation
// sanity check for reconciliation accounts. They can't both be null.
$this->sanityCheckReconciliation($validator, $transactionType, $index, $source, $destination);
// deposit and the source is a liability or an asset account with a different
// currency than submitted? then the foreign currency info must be present as well (and filled in).
if (0 === $validator->errors()->count() && null !== $accountValidator->source && TransactionType::DEPOSIT === ucfirst($transactionType)) {
$accountType = $accountValidator?->source?->accountType?->type;
if (in_array($accountType, config('firefly.valid_currency_account_types'), true) && !$this->hasForeignCurrencyInfo($transaction)) {
$validator->errors()->add(sprintf('transactions.%d.foreign_amount', $index), (string)trans('validation.require_foreign_currency'));
}
// sanity check for currency information.
$this->sanityCheckForeignCurrency($validator, $accountValidator, $transaction, $transactionType, $index);
}
/**
* TODO describe this method.
* @param Validator $validator
* @param AccountValidator $accountValidator
* @param array $transaction
* @param string $transactionType
* @param int $index
* @return void
*/
private function sanityCheckForeignCurrency(
Validator $validator,
AccountValidator $accountValidator,
array $transaction,
string $transactionType,
int $index
): void {
Log::debug('Now in sanityCheckForeignCurrency()');
if (0 !== $validator->errors()->count()) {
Log::debug('Already have errors, return');
return;
}
if (null === $accountValidator->source) {
Log::debug('No source, return');
return;
}
if (null === $accountValidator->destination) {
Log::debug('No destination, return');
return;
}
$source = $accountValidator->source;
$destination = $accountValidator->destination;
Log::debug(sprintf('Source: #%d "%s (%s)"', $source->id, $source->name, $source->accountType->type));
Log::debug(sprintf('Destination: #%d "%s" (%s)', $destination->id, $destination->name, $source->accountType->type));
if (!$this->isLiabilityOrAsset($source) || !$this->isLiabilityOrAsset($destination)) {
Log::debug('Any account must be liability or asset account to continue.');
return;
}
// withdrawal or transfer and the destination is a liability or an asset account with a different
// currency than submitted? then the foreign currency info must be present as well (and filled in).
if (0 === $validator->errors()->count() && null !== $accountValidator->destination &&
(TransactionType::WITHDRAWAL === ucfirst($transactionType) || (TransactionType::TRANSFER === ucfirst($transactionType)))) {
$accountType = $accountValidator?->destination?->accountType?->type;
if (in_array($accountType, config('firefly.valid_currency_account_types'), true) && !$this->hasForeignCurrencyInfo($transaction)) {
/** @var AccountRepositoryInterface $accountRepository */
$accountRepository = app(AccountRepositoryInterface::class);
$defaultCurrency = app('amount')->getDefaultCurrency();
$sourceCurrency = $accountRepository->getAccountCurrency($source) ?? $defaultCurrency;
$destinationCurrency = $accountRepository->getAccountCurrency($destination) ?? $defaultCurrency;
// if both accounts have the same currency, continue.
if ($sourceCurrency->code === $destinationCurrency->code) {
Log::debug('Both accounts have the same currency, continue.');
return;
}
Log::debug(sprintf('Source account expects %s', $sourceCurrency->code));
Log::debug(sprintf('Destination account expects %s', $destinationCurrency->code));
Log::debug(sprintf('Amount is %s', $transaction['amount']));
if (TransactionType::DEPOSIT === ucfirst($transactionType)) {
Log::debug(sprintf('Processing as a "%s"', $transactionType));
// use case: deposit from liability account to an asset account
// the foreign amount must be in the currency of the source
// the amount must be in the currency of the destination
// no foreign currency information is present:
if (!$this->hasForeignCurrencyInfo($transaction)) {
$validator->errors()->add(sprintf('transactions.%d.foreign_amount', $index), (string)trans('validation.require_foreign_currency'));
return;
}
// wrong currency information is present
$foreignCurrencyCode = $transaction['foreign_currency_code'] ?? false;
$foreignCurrencyId = (int)($transaction['foreign_currency_id'] ?? 0);
Log::debug(sprintf('Foreign currency code seems to be #%d "%s"', $foreignCurrencyId, $foreignCurrencyCode), $transaction);
if ($foreignCurrencyCode !== $sourceCurrency->code && $foreignCurrencyId !== (int)$sourceCurrency->id) {
$validator->errors()->add(sprintf('transactions.%d.foreign_currency_code', $index), (string)trans('validation.require_foreign_src'));
return;
}
}
// account validator has a valid source and a valid destination
if (TransactionType::TRANSFER === ucfirst($transactionType) || TransactionType::WITHDRAWAL === ucfirst($transactionType)) {
Log::debug(sprintf('Processing as a "%s"', $transactionType));
// use case: withdrawal from asset account to a liability account.
// the foreign amount must be in the currency of the destination
// the amount must be in the currency of the source
// use case: transfer between accounts with different currencies.
// the foreign amount must be in the currency of the destination
// the amount must be in the currency of the source
// no foreign currency information is present:
if (!$this->hasForeignCurrencyInfo($transaction)) {
$validator->errors()->add(sprintf('transactions.%d.foreign_amount', $index), (string)trans('validation.require_foreign_currency'));
return;
}
// wrong currency information is present
$foreignCurrencyCode = $transaction['foreign_currency_code'] ?? false;
$foreignCurrencyId = (int)($transaction['foreign_currency_id'] ?? 0);
Log::debug(sprintf('Foreign currency code seems to be #%d "%s"', $foreignCurrencyId, $foreignCurrencyCode), $transaction);
if ($foreignCurrencyCode !== $destinationCurrency->code && $foreignCurrencyId !== (int)$destinationCurrency->id) {
Log::debug(sprintf('No match on code, "%s" vs "%s"', $foreignCurrencyCode, $destinationCurrency->code));
Log::debug(sprintf('No match on ID, #%d vs #%d', $foreignCurrencyId, $destinationCurrency->id));
$validator->errors()->add(sprintf('transactions.%d.foreign_amount', $index), (string)trans('validation.require_foreign_dest'));
}
}
}
/**
* @param Account $account
* @return bool
*/
private function isLiabilityOrAsset(Account $account): bool
{
return $this->isLiability($account) || $this->isAsset($account);
}
/**
* @param Account $account
* @return bool
*/
private function isLiability(Account $account): bool
{
$type = $account->accountType?->type;
if (in_array($type, config('firefly.valid_liabilities'), true)) {
return true;
}
return false;
}
/**
* @param Account $account
* @return bool
*/
private function isAsset(Account $account): bool
{
$type = $account->accountType?->type;
return $type === AccountType::ASSET;
}
/**

View File

@@ -2,6 +2,24 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## v6.0.4 - 2023-03-13
### Fixed
- [Issue 7214](https://github.com/firefly-iii/firefly-iii/issues/7214) Import issue blocking multi currency transactions
## v6.0.3 - 2023-03-13
### Fixed
- [Issue 7201](https://github.com/firefly-iii/firefly-iii/issues/7201) Security-related console automatically command runs before a database is set, and may error out.
## v6.0.2 - 2023-03-11
### Fixed
- [Issue 7186](https://github.com/firefly-iii/firefly-iii/issues/7186) Fix broken date range
- [Issue 7188](https://github.com/firefly-iii/firefly-iii/issues/7188) Fix broken search
- [Issue 7189](https://github.com/firefly-iii/firefly-iii/issues/7189) Too strict account validation
- [Issue 7142](https://github.com/firefly-iii/firefly-iii/issues/7142) Better contrast in dark mode
## 6.0.1 - 2023-03-11
### Changed

29
composer.lock generated
View File

@@ -2868,34 +2868,37 @@
},
{
"name": "league/csv",
"version": "9.8.0",
"version": "9.9.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/csv.git",
"reference": "9d2e0265c5d90f5dd601bc65ff717e05cec19b47"
"reference": "b4418ede47fbd88facc34e40a16c8ce9153b961b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/9d2e0265c5d90f5dd601bc65ff717e05cec19b47",
"reference": "9d2e0265c5d90f5dd601bc65ff717e05cec19b47",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/b4418ede47fbd88facc34e40a16c8ce9153b961b",
"reference": "b4418ede47fbd88facc34e40a16c8ce9153b961b",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-mbstring": "*",
"php": "^7.4 || ^8.0"
"php": "^8.1.2"
},
"require-dev": {
"ext-curl": "*",
"doctrine/collections": "^2.1.2",
"ext-dom": "*",
"friendsofphp/php-cs-fixer": "^v3.4.0",
"phpstan/phpstan": "^1.3.0",
"phpstan/phpstan-phpunit": "^1.0.0",
"phpstan/phpstan-strict-rules": "^1.1.0",
"phpunit/phpunit": "^9.5.11"
"ext-xdebug": "*",
"friendsofphp/php-cs-fixer": "^v3.14.3",
"phpbench/phpbench": "^1.2.8",
"phpstan/phpstan": "^1.10.4",
"phpstan/phpstan-deprecation-rules": "^1.1.2",
"phpstan/phpstan-phpunit": "^1.3.10",
"phpstan/phpstan-strict-rules": "^1.5.0",
"phpunit/phpunit": "^10.0.14"
},
"suggest": {
"ext-dom": "Required to use the XMLConverter and or the HTMLConverter classes",
"ext-dom": "Required to use the XMLConverter and the HTMLConverter classes",
"ext-iconv": "Needed to ease transcoding CSV using iconv stream filters"
},
"type": "library",
@@ -2948,7 +2951,7 @@
"type": "github"
}
],
"time": "2022-01-04T00:13:07+00:00"
"time": "2023-03-11T15:57:12+00:00"
},
{
"name": "league/event",

View File

@@ -107,7 +107,7 @@ return [
'webhooks' => true,
'handle_debts' => true,
],
'version' => '6.0.1',
'version' => '6.0.4',
'api_version' => '2.0.1',
'db_version' => 19,
@@ -161,7 +161,7 @@ return [
'en_GB' => ['name_locale' => 'English (GB)', 'name_english' => 'English (GB)'],
'en_US' => ['name_locale' => 'English (US)', 'name_english' => 'English (US)'],
'es_ES' => ['name_locale' => 'Español', 'name_english' => 'Spanish'],
'ca_ES' => ['name_locale' => 'Español (català)', 'name_english' => 'Spanish (Catalan)'],
'ca_ES' => ['name_locale' => 'Català (Espanya)', 'name_english' => 'Catalan (Spain)'],
// 'et_EE' => ['name_locale' => 'Estonian', 'name_english' => 'Estonian'],
// 'fa_IR' => ['name_locale' => 'فارسی', 'name_english' => 'Persian'],
'fi_FI' => ['name_locale' => 'Suomi', 'name_english' => 'Finnish'],

View File

@@ -60,7 +60,7 @@ export default {
"liabilities_accounts": "Zobowi\u0105zania"
},
"firefly": {
"administration_index": "Financial administration",
"administration_index": "Zarz\u0105dzanie finansami",
"actions": "Akcje",
"edit": "Modyfikuj",
"delete": "Usu\u0144",
@@ -88,21 +88,21 @@ export default {
"rule_trigger_account_id_choice": "Either account ID is exactly..",
"rule_trigger_source_account_id_choice": "ID konta \u017ar\u00f3d\u0142owego to dok\u0142adnie..",
"rule_trigger_destination_account_id_choice": "ID konta docelowego to dok\u0142adnie..",
"rule_trigger_account_is_cash_choice": "Either account is cash",
"rule_trigger_account_is_cash_choice": "Dowolne konto jest kontem got\u00f3wkowym",
"rule_trigger_source_is_cash_choice": "Konto \u017ar\u00f3d\u0142owe to konto (got\u00f3wkowe)",
"rule_trigger_destination_is_cash_choice": "Konto docelowe to konto (got\u00f3wkowe)",
"rule_trigger_source_account_nr_starts_choice": "Numer \/ IBAN konta \u017ar\u00f3d\u0142owego zaczyna si\u0119 od..",
"rule_trigger_source_account_nr_ends_choice": "Source account number \/ IBAN ends with..",
"rule_trigger_source_account_nr_is_choice": "Source account number \/ IBAN is..",
"rule_trigger_source_account_nr_contains_choice": "Source account number \/ IBAN contains..",
"rule_trigger_destination_account_starts_choice": "Destination account name starts with..",
"rule_trigger_destination_account_ends_choice": "Destination account name ends with..",
"rule_trigger_destination_account_is_choice": "Destination account name is..",
"rule_trigger_destination_account_contains_choice": "Destination account name contains..",
"rule_trigger_destination_account_nr_starts_choice": "Destination account number \/ IBAN starts with..",
"rule_trigger_destination_account_nr_ends_choice": "Destination account number \/ IBAN ends with..",
"rule_trigger_destination_account_nr_is_choice": "Destination account number \/ IBAN is..",
"rule_trigger_destination_account_nr_contains_choice": "Destination account number \/ IBAN contains..",
"rule_trigger_source_account_nr_ends_choice": "Numer konta \u017ar\u00f3d\u0142owego \/ IBAN ko\u0144czy si\u0119 na..",
"rule_trigger_source_account_nr_is_choice": "Numer konta \u017ar\u00f3d\u0142owego \/ IBAN to..",
"rule_trigger_source_account_nr_contains_choice": "Numer konta \u017ar\u00f3d\u0142owego \/ IBAN zawiera..",
"rule_trigger_destination_account_starts_choice": "Nazwa konta docelowego zaczyna si\u0119 od..",
"rule_trigger_destination_account_ends_choice": "Nazwa konta docelowego ko\u0144czy si\u0119 na..",
"rule_trigger_destination_account_is_choice": "Nazwa konta docelowego to..",
"rule_trigger_destination_account_contains_choice": "Nazwa konta docelowego zawiera..",
"rule_trigger_destination_account_nr_starts_choice": "Numer konta docelowego \/ IBAN zaczyna si\u0119 od..",
"rule_trigger_destination_account_nr_ends_choice": "Numer konta docelowego \/ IBAN ko\u0144czy si\u0119 na..",
"rule_trigger_destination_account_nr_is_choice": "Numer konta docelowego \/ IBAN to..",
"rule_trigger_destination_account_nr_contains_choice": "Numer konta docelowego \/ IBAN zawiera..",
"rule_trigger_transaction_type_choice": "Transakcja jest typu..",
"rule_trigger_category_is_choice": "Kategoria to..",
"rule_trigger_amount_less_choice": "Kwota jest mniejsza ni\u017c..",
@@ -112,13 +112,13 @@ export default {
"rule_trigger_description_ends_choice": "Opis ko\u0144czy si\u0119 na..",
"rule_trigger_description_contains_choice": "Opis zawiera..",
"rule_trigger_description_is_choice": "Opis to..",
"rule_trigger_date_on_choice": "Transaction date is..",
"rule_trigger_date_on_choice": "Data transakcji to..",
"rule_trigger_date_before_choice": "Data transakcji jest przed..",
"rule_trigger_date_after_choice": "Data transakcji jest po..",
"rule_trigger_created_at_on_choice": "Transaction was made on..",
"rule_trigger_updated_at_on_choice": "Transaction was last edited on..",
"rule_trigger_budget_is_choice": "Bud\u017cet to..",
"rule_trigger_tag_is_choice": "Any tag is..",
"rule_trigger_tag_is_choice": "Dowolny tag to..",
"rule_trigger_currency_is_choice": "Waluta transakcji to..",
"rule_trigger_foreign_currency_is_choice": "Waluta obca transakcji to..",
"rule_trigger_has_attachments_choice": "Ma co najmniej podan\u0105 liczb\u0119 za\u0142\u0105cznik\u00f3w",
@@ -134,7 +134,7 @@ export default {
"rule_trigger_no_notes_choice": "Brak notatek",
"rule_trigger_notes_is_choice": "Notatki to..",
"rule_trigger_notes_contains_choice": "Notatki zawieraj\u0105..",
"rule_trigger_notes_starts_choice": "Notes start with..",
"rule_trigger_notes_starts_choice": "Notatki zaczynaj\u0105 si\u0119 od..",
"rule_trigger_notes_ends_choice": "Notes end with..",
"rule_trigger_bill_is_choice": "Rachunek to..",
"rule_trigger_external_id_is_choice": "External ID is..",
@@ -143,18 +143,18 @@ export default {
"rule_trigger_any_external_url_choice": "Transakcja ma zewn\u0119trzny adres URL",
"rule_trigger_no_external_url_choice": "Transakcja nie ma zewn\u0119trznego adresu URL",
"rule_trigger_id_choice": "Identyfikator transakcji to..",
"rule_action_delete_transaction_choice": "DELETE transaction(!)",
"rule_action_set_category_choice": "Set category to ..",
"rule_action_delete_transaction_choice": "USU\u0143 transakcj\u0119(!)",
"rule_action_set_category_choice": "Ustaw kategori\u0119 na ..",
"rule_action_clear_category_choice": "Wyczy\u015b\u0107 wszystkie kategorie",
"rule_action_set_budget_choice": "Set budget to ..",
"rule_action_set_budget_choice": "Ustaw bud\u017cet na ..",
"rule_action_clear_budget_choice": "Wyczy\u015b\u0107 wszystkie bud\u017cety",
"rule_action_add_tag_choice": "Add tag ..",
"rule_action_remove_tag_choice": "Remove tag ..",
"rule_action_add_tag_choice": "Dodaj tag ..",
"rule_action_remove_tag_choice": "Usu\u0144 tag ..",
"rule_action_remove_all_tags_choice": "Usu\u0144 wszystkie tagi",
"rule_action_set_description_choice": "Set description to ..",
"rule_action_update_piggy_choice": "Add \/ remove transaction amount in piggy bank ..",
"rule_action_append_description_choice": "Append description with ..",
"rule_action_prepend_description_choice": "Prepend description with ..",
"rule_action_set_description_choice": "Ustaw opis na ..",
"rule_action_update_piggy_choice": "Dodaj \/ usu\u0144 kwot\u0119 transakcji w skarbonce ..",
"rule_action_append_description_choice": "Do\u0142\u0105cz do opisu ..",
"rule_action_prepend_description_choice": "Poprzed\u017a opis ..",
"rule_action_set_source_account_choice": "Set source account to ..",
"rule_action_set_destination_account_choice": "Set destination account to ..",
"rule_action_append_notes_choice": "Append notes with ..",

View File

@@ -338,7 +338,7 @@ page container: q-ma-xs (margin all, xs) AND q-mb-md to give the page content so
<q-footer class="bg-grey-8 text-white" bordered>
<q-toolbar>
<div>
<small>Firefly III v v6.0.1 &copy; James Cole, AGPL-3.0-or-later.</small>
<small>Firefly III v v6.0.4 &copy; James Cole, AGPL-3.0-or-later.</small>
</div>
</q-toolbar>
</q-footer>

View File

@@ -18,17 +18,10 @@
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
stopOnFailure="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.6/phpunit.xsd">
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" bootstrap="vendor/autoload.php"
colors="true" stopOnFailure="true" processIsolation="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.0/phpunit.xsd" cacheDirectory=".phpunit.cache"
backupStaticProperties="false">
<coverage>
<include>
<directory suffix=".php">./app</directory>

View File

@@ -87,10 +87,14 @@ function stopSorting() {
// post new position via API!
//$.post('api/v1/accounts/' + id, {order: newOrder, _token: token});
$.ajax({
url: 'api/v1/accounts/' + id,
data: JSON.stringify({order: newOrder}),
type: 'PUT',
});
url: 'api/v1/accounts/' + id,
data: JSON.stringify({order: newOrder}),
type: 'PUT',
headers: {
'Content-Type': 'application/json',
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content'),
},
});
});
}

View File

@@ -120,7 +120,7 @@ function sortStop(event, ui) {
});
// do extra animation when done?
$.post('transactions/reorder', {items: submit, date: thisDate, _token: token});
$.post('transactions/reorder', {items: submit, date: thisDate});
current.animate({backgroundColor: "#5cb85c"}, 200, function () {
$(this).animate({backgroundColor: originalBG}, 200);

View File

@@ -22,9 +22,7 @@
$.ajaxSetup({
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content'),
'Content-Type': 'application/json'
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}
});
@@ -74,11 +72,18 @@ $(function () {
function (start, end, label) {
// send post.
$.post(dateRangeMeta.url, {
start: start.format('YYYY-MM-DD'),
end: end.format('YYYY-MM-DD'),
label: label,
_token: token
$.ajax({
url: dateRangeMeta.url,
data: {
start: start.format('YYYY-MM-DD'),
end: end.format('YYYY-MM-DD'),
label: label
},
type: 'POST',
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content'),
'Content-Type': 'application/x-www-form-urlencoded'
}
}).done(function () {
window.location.reload(true);
}).fail(function () {

View File

@@ -45,7 +45,7 @@ function showHelp(e) {
}
function enableGuidance(route, specialPage) {
$.post('json/intro/enable/' + route + '/' + specialPage, {_token: token}).done(function (data) {
$.post('json/intro/enable/' + route + '/' + specialPage).done(function (data) {
alert(data.message);
}).fail(function () {
console.error('Could not re-enable introduction.');

View File

@@ -85,7 +85,6 @@ function cloneTransaction(e) {
var groupId = parseInt(button.data('id'));
$.post(cloneGroupUrl, {
_token: token,
id: groupId
}).done(function (data) {
// lame but it works
@@ -94,4 +93,4 @@ function cloneTransaction(e) {
console.error('I failed :(');
});
return false;
}
}

View File

@@ -12,6 +12,9 @@
background-color: #55606a;
border-color: #454e56;
}
.skin-firefly-iii .progress {
background-color: #3a4148;
}
.skin-firefly-iii .bootstrap-tagsinput {
background-color: #353c42;
border: 1px solid #353c42 !important;
@@ -99,7 +102,7 @@
color: #bec5cb !important;
}
.skin-firefly-iii .table-striped > tbody > tr:nth-of-type(odd) {
background-color: #454e56;
background-color: #373f45;
}
.skin-firefly-iii .table-hover > tbody > tr:hover {
background-color: #454e56;
@@ -498,3 +501,6 @@
.skin-firefly-iii .select2-container--default.select2-container--open {
background-color: #272c30;
}
.skin-firefly-iii .sidebar-menu > li.header {
color: #85929e;
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<!DOCTYPE html><html><head><base href=/v3/ ><title>Firefly III</title><meta charset=utf-8><meta content="Personal finances manager" name=description><meta content="telephone=no" name=format-detection><meta content=no name=msapplication-tap-highlight><meta content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width" name=viewport><link href=favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=maskable76.png rel=apple-touch-icon sizes=76x76><link href=maskable120.png rel=apple-touch-icon sizes=120x120><link href=maskable152.png rel=apple-touch-icon sizes=152x152><link href=apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link color=#3c8dbc href=safari-pinned-tab.svg rel=mask-icon><link href=maskable192.png rel=icon sizes=192x192><link href=maskable128.png rel=icon sizes=128x128><link href=manifest.webmanifest rel=manifest><meta content=#1e6581 name=msapplication-TileColor><meta content=maskable512.png name=msapplication-TileImage><meta content=no name=msapplication-tap-highlight><meta content="Firefly III" name=application-name><meta content="noindex, nofollow, noarchive, noodp, NoImageIndex, noydir" name=robots><meta content=yes name=apple-mobile-web-app-capable><meta content="Firefly III" name=apple-mobile-web-app-title><meta content="Firefly III" name=application-name><meta content=#3c8dbc name=msapplication-TileColor><meta content="mstile-144x144.png?v=3e8AboOwbd" name=msapplication-TileImage><meta content=#3c8dbc name=theme-color><script defer src=/v3/js/vendor.43fbf1b0.js></script><script defer src=/v3/js/app.16587ec0.js></script><link href=/v3/css/vendor.b7419aa9.css rel=stylesheet><link href=/v3/css/app.50c7ba73.css rel=stylesheet></head><body><div id=q-app></div></body></html>
<!DOCTYPE html><html><head><base href=/v3/ ><title>Firefly III</title><meta charset=utf-8><meta content="Personal finances manager" name=description><meta content="telephone=no" name=format-detection><meta content=no name=msapplication-tap-highlight><meta content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width" name=viewport><link href=favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=maskable76.png rel=apple-touch-icon sizes=76x76><link href=maskable120.png rel=apple-touch-icon sizes=120x120><link href=maskable152.png rel=apple-touch-icon sizes=152x152><link href=apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link color=#3c8dbc href=safari-pinned-tab.svg rel=mask-icon><link href=maskable192.png rel=icon sizes=192x192><link href=maskable128.png rel=icon sizes=128x128><link href=manifest.webmanifest rel=manifest><meta content=#1e6581 name=msapplication-TileColor><meta content=maskable512.png name=msapplication-TileImage><meta content=no name=msapplication-tap-highlight><meta content="Firefly III" name=application-name><meta content="noindex, nofollow, noarchive, noodp, NoImageIndex, noydir" name=robots><meta content=yes name=apple-mobile-web-app-capable><meta content="Firefly III" name=apple-mobile-web-app-title><meta content="Firefly III" name=application-name><meta content=#3c8dbc name=msapplication-TileColor><meta content="mstile-144x144.png?v=3e8AboOwbd" name=msapplication-TileImage><meta content=#3c8dbc name=theme-color><script defer src=/v3/js/vendor.43fbf1b0.js></script><script defer src=/v3/js/app.efb4b22c.js></script><link href=/v3/css/vendor.b7419aa9.css rel=stylesheet><link href=/v3/css/app.50c7ba73.css rel=stylesheet></head><body><div id=q-app></div></body></html>

File diff suppressed because one or more lines are too long

1
public/v3/js/719.bd9acfe0.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/v3/js/app.efb4b22c.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Този акаунт не е акаунт, който може да се използва за прехвърляния.',
'require_currency_amount' => 'Съдържанието на това поле е невалидно без стойност в другата валута.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Описанието на транзакцията не трябва да е равно на общото описание.',
'file_invalid_mime' => 'Файлът ":name" е от тип ":mime", който не се приема за качване.',
'file_too_large' => 'Файлът ":name" е твърде голям.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Aquest compte no és un compte que puguis fer servir per transferències.',
'require_currency_amount' => 'El contingut d\'aquest camp no és vàlid sense informació de la quantitat estrangera.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'El valor d\'aquest camp ha de quadrar amb la moneda del compte destí.',
'require_foreign_src' => 'El valor d\'aquest camp ha de quadrar amb la moneda del compte font.',
'equal_description' => 'La descripció de la transacció no hauria de ser igual a la descripció global.',
'file_invalid_mime' => 'El fitxer ":name" és de tipus ":mime", el qual no s\'accepta com a pujada.',
'file_too_large' => 'El fitxer ":name" és massa gran.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Tento účet není účet, který lze použít pro převody.',
'require_currency_amount' => 'Obsah tohoto pole je neplatný bez informace o měně.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Popis transakce nesmí být stejný jako globální popis.',
'file_invalid_mime' => 'Soubor ":name" je typu ":mime", který není schválen pro nahrání.',
'file_too_large' => 'Soubor ":name" je příliš velký.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Denne konto kan ikke benyttes til overførsler.',
'require_currency_amount' => 'Indholdet af dette felt er ugyldigt uden information om det udenlandske beløb.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Overførselsbeskrivelse bør ikke være den samme som den generelle beskrivelse.',
'file_invalid_mime' => 'Filen ":name" er af typen ":mime", som ikke er gyldig som en ny upload.',
'file_too_large' => 'Filen ":name" er for stor.',

View File

@@ -2364,8 +2364,8 @@ return [
// administration
'invite_is_already_redeemed' => 'The invite to ":address" has already been redeemed.',
'invite_is_deleted' => 'The invite to ":address" has been deleted.',
'invite_is_already_redeemed' => 'Die Einladung zu „:address“ wurde bereits eingelöst.',
'invite_is_deleted' => 'Die Einladung zu „:address“ wurde gelöscht.',
'invite_new_user_title' => 'Neuen Nutzer einladen',
'invite_new_user_text' => 'Als Administrator können Sie Benutzer einladen, sich auf Ihrer Firefly III Administration zu registrieren. Über den direkten Link, den Sie mit ihnen teilen können, können diese ein Konto registrieren. Der eingeladene Benutzer und sein Einladungslink erscheinen in der unten stehenden Tabelle. Sie können den Einladungslink mit ihm teilen.',
'invited_user_mail' => 'E-Mail Adresse',

View File

@@ -66,7 +66,9 @@ return [
'require_currency_info' => 'Der Inhalt dieses Feldes ist ohne Währungsinformationen ungültig.',
'not_transfer_account' => 'Dieses Konto ist kein Konto, welches für Buchungen genutzt werden kann.',
'require_currency_amount' => 'Der Inhalt dieses Feldes ist ohne Eingabe eines Betrags in Fremdwährung ungültig.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_currency' => 'Dieses Feld muss eine Nummer enthalten',
'require_foreign_dest' => 'Der Wert dieses Feldes muss mit der Währung des Zielkontos übereinstimmen.',
'require_foreign_src' => 'Der Wert dieses Feldes muss mit der Währung des Quellkontos übereinstimmen.',
'equal_description' => 'Die Transaktionsbeschreibung darf nicht der globalen Beschreibung entsprechen.',
'file_invalid_mime' => 'Die Datei „:name” ist vom Typ „:mime”, welcher nicht zum Hochladen zugelassen ist.',
'file_too_large' => 'Die Datei „:name” ist zu groß.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Αυτός ο λογαριασμός δεν είναι λογαριασμός που μπορεί να χρησιμοποιηθεί για συναλλαγές.',
'require_currency_amount' => 'Το περιεχόμενο αυτού του πεδίου δεν είναι έγκυρο χωρίς πληροφορίες ετερόχθονος ποσού.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Η περιγραφή της συναλλαγής δεν πρέπει να ισούται με καθολική περιγραφή.',
'file_invalid_mime' => 'Το αρχείο ":name" είναι τύπου ":mime" που δεν είναι αποδεκτός ως νέας μεταφόρτωσης.',
'file_too_large' => 'Το αρχείο ":name" είναι πολύ μεγάλο.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'This account is not an account that can be used for transfers.',
'require_currency_amount' => 'The content of this field is invalid without foreign amount information.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Transaction description should not equal global description.',
'file_invalid_mime' => 'File ":name" is of type ":mime" which is not accepted as a new upload.',
'file_too_large' => 'File ":name" is too large.',

View File

@@ -57,6 +57,8 @@ return [
'not_transfer_account' => 'This account is not an account that can be used for transfers.',
'require_currency_amount' => 'The content of this field is invalid without foreign amount information.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Transaction description should not equal global description.',
'file_invalid_mime' => 'File ":name" is of type ":mime" which is not accepted as a new upload.',
'file_too_large' => 'File ":name" is too large.',

View File

@@ -648,10 +648,10 @@ return [
'search_modifier_updated_at_after_day' => 'La transacción se actualizó por última vez en o después día del mes ":value"',
'search_modifier_created_at_on_year' => 'La transacción fue creada en el año":value"',
'search_modifier_created_at_on_month' => 'La transacción fue creada en el mes ":value"',
'search_modifier_created_at_on_day' => 'Transaction was created on day of month ":value"',
'search_modifier_not_created_at_on_year' => 'Transaction was not created in year ":value"',
'search_modifier_not_created_at_on_month' => 'Transaction was not created in month ":value"',
'search_modifier_not_created_at_on_day' => 'Transaction was not created on day of month ":value"',
'search_modifier_created_at_on_day' => 'La transacción fue creada en el día del mes ":value"',
'search_modifier_not_created_at_on_year' => 'La transacción no fue creada en el año ":value"',
'search_modifier_not_created_at_on_month' => 'La transacción no fue creada en el mes ":value"',
'search_modifier_not_created_at_on_day' => 'La transacción no fue creada en el día del mes ":value"',
'search_modifier_created_at_before_year' => 'Transaction was created in or before year ":value"',
'search_modifier_created_at_before_month' => 'Transaction was created in or before month ":value"',
'search_modifier_created_at_before_day' => 'Transaction was created on or before day of month ":value"',
@@ -2364,8 +2364,8 @@ return [
// administration
'invite_is_already_redeemed' => 'The invite to ":address" has already been redeemed.',
'invite_is_deleted' => 'The invite to ":address" has been deleted.',
'invite_is_already_redeemed' => 'La invitación a ":address" ya ha sido canjeada.',
'invite_is_deleted' => 'La invitación a ":address" ha sido eliminada.',
'invite_new_user_title' => 'Invite new user',
'invite_new_user_text' => 'As an administrator, you can invite users to register on your Firefly III administration. Using the direct link you can share with them, they will be able to register an account. The invited user and their invite link will appear in the table below. You are free to share the invitation link with them.',
'invited_user_mail' => 'Email address',

View File

@@ -66,7 +66,9 @@ return [
'require_currency_info' => 'El contenido de este campo no es válido sin la información montearia.',
'not_transfer_account' => 'Esta cuenta no es una cuenta que se pueda utilizar para transferencias.',
'require_currency_amount' => 'El contenido de este campo no es válido sin información de cantidad extranjera.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_currency' => 'Este campo requiere un número',
'require_foreign_dest' => 'El valor de este campo debe coincidir con la moneda de la cuenta de destino.',
'require_foreign_src' => 'El valor de este campo debe coincidir con la moneda de la cuenta de origen.',
'equal_description' => 'La descripción de la transacción no debería ser igual a la descripción global.',
'file_invalid_mime' => 'El archivo ":name" es de tipo ":mime", el cual no se acepta.',
'file_too_large' => 'El archivo ":name" es demasiado grande.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Tätä tiliä ei voi käyttää siirroissa.',
'require_currency_amount' => 'Tämän kentän sisältö on virheellinen ilman ulkomaanvaluuttatietoa.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Tapahtuman kuvaus ei saisi olla sama kuin yleiskuvaus.',
'file_invalid_mime' => 'Lähetettävän tiedoston ":name" tyyppi ei voi olla ":mime".',
'file_too_large' => 'Tiedoston ":name" koko on liian suuri.',

View File

@@ -2364,8 +2364,8 @@ return [
// administration
'invite_is_already_redeemed' => 'The invite to ":address" has already been redeemed.',
'invite_is_deleted' => 'The invite to ":address" has been deleted.',
'invite_is_already_redeemed' => 'L\'invitation à ":address" a déjà été utilisée.',
'invite_is_deleted' => 'L\'invitation à ":address" a été supprimée.',
'invite_new_user_title' => 'Inviter un nouvel utilisateur',
'invite_new_user_text' => 'En tant qu\'administrateur, vous pouvez inviter des utilisateurs à s\'inscrire sur votre administration Firefly III. En partageant avec eux le lien direct, ils seront en mesure de créer un compte. L\'utilisateur invité et son lien d\'invitation apparaîtront dans le tableau ci-dessous. Vous êtes libre de partager le lien d\'invitation avec eux.',
'invited_user_mail' => 'Adresse e-mail',

View File

@@ -66,7 +66,9 @@ return [
'require_currency_info' => 'Le contenu de ce champ n\'est pas valide sans informations sur la devise.',
'not_transfer_account' => 'Ce compte n\'est pas un compte qui peut être utilisé pour les transferts.',
'require_currency_amount' => 'Le contenu de ce champ est invalide sans informations sur le montant en devise étrangère.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_currency' => 'Ce champ doit être un nombre',
'require_foreign_dest' => 'Ce champ doit correspondre à la devise du compte de destination.',
'require_foreign_src' => 'Ce champ doit correspondre à la devise du compte source.',
'equal_description' => 'La description de l\'opération ne doit pas être identique à la description globale.',
'file_invalid_mime' => 'Le fichier ":name" est du type ":mime" ce qui n\'est pas accepté pour un nouvel envoi.',
'file_too_large' => 'Le fichier ":name" est trop grand.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Ez a fiók nem használható fel tranzakciókhoz.',
'require_currency_amount' => 'Ennek a mezőnek a tartalma érvénytelen devizanem információ nélkül.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'A tranzakció leírása nem egyezhet meg a globális leírással.',
'file_invalid_mime' => '":name" fájl ":mime" típusú ami nem lehet új feltöltés.',
'file_too_large' => '":name" fájl túl nagy.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Akun ini bukan sebuah akun yang dapat digunakan untuk transfer.',
'require_currency_amount' => 'Isi dalam bidang ini tidak valid jika tidak disertai informasi jumlah mata uang asing.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Deskripsi transaksi harus berbeda dari deskripsi umum.',
'file_invalid_mime' => 'File ":name" adalah tipe ":mime" yang tidak diterima sebagai upload baru.',
'file_too_large' => 'File "; name" terlalu besar.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Questo conto non è un conto che può essere usato per i trasferimenti.',
'require_currency_amount' => 'Il contenuto di questo campo non è valido senza le informazioni sull\'importo estero.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'La descrizione della transazione non deve essere uguale alla descrizione globale.',
'file_invalid_mime' => 'Il file ":name" è di tipo ":mime" che non è accettato come nuovo caricamento.',
'file_too_large' => 'Il file ":name" è troppo grande.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'このアカウントは送金に使用できるアカウントではありません。',
'require_currency_amount' => 'この項目の内容は、外部金額情報がなければ無効です。',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => '取引の説明はグローバルな説明と同じであってはいけません。',
'file_invalid_mime' => '「:mime」タイプのファイル ":name" は新しいアップロードとして受け付けられません。',
'file_too_large' => 'ファイル ":name"は大きすぎます。',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => '이 계정은 이체에 사용할 수 있는 계정이 아닙니다.',
'require_currency_amount' => '이 필드의 내용은 외화 수량 정보가 없으면 유효하지 않습니다.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => '거래 설명은 전역 설명과 같지 않아야 합니다.',
'file_invalid_mime' => '":name" 파일은 새로운 업로드를 허용하지 않는 ":mime" 타입입니다.',
'file_too_large' => '":name" 파일이 너무 큽니다.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Denne kontoen er ikke en konto som kan benyttes for overføringer.',
'require_currency_amount' => 'Innholdet i dette feltet er ugyldig uten utenlandsk beløpsinformasjon.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Transaksjonsbeskrivelsen bør ikke være lik global beskrivelse.',
'file_invalid_mime' => 'Kan ikke akseptere fil ":name" av typen ":mime" for opplasting.',
'file_too_large' => '":name"-filen er for stor.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Deze account kan je niet gebruiken voor overschrijvingen.',
'require_currency_amount' => 'De inhoud van dit veld is ongeldig zonder bedrag in vreemde valuta.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Transactiebeschrijving mag niet gelijk zijn aan globale beschrijving.',
'file_invalid_mime' => 'Bestand ":name" is van het type ":mime", en die kan je niet uploaden.',
'file_too_large' => 'Bestand ":name" is te groot.',

View File

@@ -737,15 +737,15 @@ return [
'repeat_freq_quarterly' => 'kwartalnie',
'repeat_freq_monthly' => 'miesięcznie',
'repeat_freq_weekly' => 'tygodniowo',
'repeat_freq_daily' => 'daily',
'daily' => 'daily',
'repeat_freq_daily' => 'codziennie',
'daily' => 'dziennie',
'weekly' => 'tygodniowo',
'quarterly' => 'kwartalnie',
'half-year' => 'co pół roku',
'yearly' => 'rocznie',
// rules
'is_not_rule_trigger' => 'Not',
'is_not_rule_trigger' => 'Nie',
'cannot_fire_inactive_rules' => 'Nie możesz wykonać nieaktywnych reguł.',
'rules' => 'Reguły',
'rule_name' => 'Nazwa reguły',
@@ -830,36 +830,36 @@ return [
'rule_trigger_source_account_id' => 'ID konta źródłowego to dokładnie :trigger_value',
'rule_trigger_destination_account_id_choice' => 'ID konta docelowego to dokładnie..',
'rule_trigger_destination_account_id' => 'ID konta docelowego to dokładnie :trigger_value',
'rule_trigger_account_is_cash_choice' => 'Either account is cash',
'rule_trigger_account_is_cash' => 'Either account is cash',
'rule_trigger_account_is_cash_choice' => 'Dowolne konto jest kontem gotówkowym',
'rule_trigger_account_is_cash' => 'Dowolne konto jest kontem gotówkowym',
'rule_trigger_source_is_cash_choice' => 'Konto źródłowe to konto (gotówkowe)',
'rule_trigger_source_is_cash' => 'Konto źródłowe to konto (gotówkowe)',
'rule_trigger_destination_is_cash_choice' => 'Konto docelowe to konto (gotówkowe)',
'rule_trigger_destination_is_cash' => 'Konto docelowe to konto (gotówkowe)',
'rule_trigger_source_account_nr_starts_choice' => 'Numer / IBAN konta źródłowego zaczyna się od..',
'rule_trigger_source_account_nr_starts' => 'Source account number / IBAN starts with ":trigger_value"',
'rule_trigger_source_account_nr_ends_choice' => 'Source account number / IBAN ends with..',
'rule_trigger_source_account_nr_ends' => 'Source account number / IBAN ends with ":trigger_value"',
'rule_trigger_source_account_nr_is_choice' => 'Source account number / IBAN is..',
'rule_trigger_source_account_nr_is' => 'Source account number / IBAN is ":trigger_value"',
'rule_trigger_source_account_nr_contains_choice' => 'Source account number / IBAN contains..',
'rule_trigger_source_account_nr_contains' => 'Source account number / IBAN contains ":trigger_value"',
'rule_trigger_destination_account_starts_choice' => 'Destination account name starts with..',
'rule_trigger_destination_account_starts' => 'Destination account name starts with ":trigger_value"',
'rule_trigger_destination_account_ends_choice' => 'Destination account name ends with..',
'rule_trigger_destination_account_ends' => 'Destination account name ends with ":trigger_value"',
'rule_trigger_destination_account_is_choice' => 'Destination account name is..',
'rule_trigger_destination_account_is' => 'Destination account name is ":trigger_value"',
'rule_trigger_destination_account_contains_choice' => 'Destination account name contains..',
'rule_trigger_destination_account_contains' => 'Destination account name contains ":trigger_value"',
'rule_trigger_destination_account_nr_starts_choice' => 'Destination account number / IBAN starts with..',
'rule_trigger_destination_account_nr_starts' => 'Destination account number / IBAN starts with ":trigger_value"',
'rule_trigger_destination_account_nr_ends_choice' => 'Destination account number / IBAN ends with..',
'rule_trigger_destination_account_nr_ends' => 'Destination account number / IBAN ends with ":trigger_value"',
'rule_trigger_destination_account_nr_is_choice' => 'Destination account number / IBAN is..',
'rule_trigger_destination_account_nr_is' => 'Destination account number / IBAN is ":trigger_value"',
'rule_trigger_destination_account_nr_contains_choice' => 'Destination account number / IBAN contains..',
'rule_trigger_destination_account_nr_contains' => 'Destination account number / IBAN contains ":trigger_value"',
'rule_trigger_source_account_nr_starts' => 'Numer konta źródłowego / IBAN zaczyna się od ":trigger_value"',
'rule_trigger_source_account_nr_ends_choice' => 'Numer konta źródłowego / IBAN kończy się na..',
'rule_trigger_source_account_nr_ends' => 'Numer konta źródłowego / IBAN kończy się ":trigger_value"',
'rule_trigger_source_account_nr_is_choice' => 'Numer konta źródłowego / IBAN to..',
'rule_trigger_source_account_nr_is' => 'Numer konta źródłowego / IBAN to ":trigger_value"',
'rule_trigger_source_account_nr_contains_choice' => 'Numer konta źródłowego / IBAN zawiera..',
'rule_trigger_source_account_nr_contains' => 'Numer konta źródłowego / IBAN zawiera ":trigger_value"',
'rule_trigger_destination_account_starts_choice' => 'Nazwa konta docelowego zaczyna się od..',
'rule_trigger_destination_account_starts' => 'Nazwa konta docelowego zaczyna się od ":trigger_value"',
'rule_trigger_destination_account_ends_choice' => 'Nazwa konta docelowego kończy się na..',
'rule_trigger_destination_account_ends' => 'Nazwa konta docelowego kończy się na ":trigger_value"',
'rule_trigger_destination_account_is_choice' => 'Nazwa konta docelowego to..',
'rule_trigger_destination_account_is' => 'Nazwa konta docelowego to ":trigger_value"',
'rule_trigger_destination_account_contains_choice' => 'Nazwa konta docelowego zawiera..',
'rule_trigger_destination_account_contains' => 'Nazwa konta docelowego zawiera ":trigger_value"',
'rule_trigger_destination_account_nr_starts_choice' => 'Numer konta docelowego / IBAN zaczyna się od..',
'rule_trigger_destination_account_nr_starts' => 'Numer konta docelowego / IBAN zaczyna się od ":trigger_value"',
'rule_trigger_destination_account_nr_ends_choice' => 'Numer konta docelowego / IBAN kończy się na..',
'rule_trigger_destination_account_nr_ends' => 'Numer konta docelowego / IBAN kończy się ":trigger_value"',
'rule_trigger_destination_account_nr_is_choice' => 'Numer konta docelowego / IBAN to..',
'rule_trigger_destination_account_nr_is' => 'Numer konta docelowego / IBAN to ":trigger_value"',
'rule_trigger_destination_account_nr_contains_choice' => 'Numer konta docelowego / IBAN zawiera..',
'rule_trigger_destination_account_nr_contains' => 'Numer konta docelowego / IBAN zawiera ":trigger_value"',
'rule_trigger_transaction_type_choice' => 'Transakcja jest typu..',
'rule_trigger_transaction_type' => 'Transakcja jest typu ":trigger_value"',
'rule_trigger_category_is_choice' => 'Kategoria to..',
@@ -867,7 +867,7 @@ return [
'rule_trigger_amount_less_choice' => 'Kwota jest mniejsza niż..',
'rule_trigger_amount_less' => 'Kwota jest mniejsza niż :trigger_value',
'rule_trigger_amount_is_choice' => 'Kwota to..',
'rule_trigger_amount_is' => 'Amount is :trigger_value',
'rule_trigger_amount_is' => 'Kwota to :trigger_value',
'rule_trigger_amount_more_choice' => 'Kwota jest większa niż..',
'rule_trigger_amount_more' => 'Kwota jest większa niż :trigger_value',
'rule_trigger_description_starts_choice' => 'Opis zaczyna się od..',
@@ -878,8 +878,8 @@ return [
'rule_trigger_description_contains' => 'Opis zawiera ":trigger_value"',
'rule_trigger_description_is_choice' => 'Opis to..',
'rule_trigger_description_is' => 'Opis to ":trigger_value"',
'rule_trigger_date_on_choice' => 'Transaction date is..',
'rule_trigger_date_on' => 'Transaction date is ":trigger_value"',
'rule_trigger_date_on_choice' => 'Data transakcji to..',
'rule_trigger_date_on' => 'Data transakcji to ":trigger_value"',
'rule_trigger_date_before_choice' => 'Data transakcji jest przed..',
'rule_trigger_date_before' => 'Data transakcji jest przed ":trigger_value"',
'rule_trigger_date_after_choice' => 'Data transakcji jest po..',
@@ -890,8 +890,8 @@ return [
'rule_trigger_updated_at_on' => 'Transaction was last edited on ":trigger_value"',
'rule_trigger_budget_is_choice' => 'Budżet to..',
'rule_trigger_budget_is' => 'Budżet to ":trigger_value"',
'rule_trigger_tag_is_choice' => 'Any tag is..',
'rule_trigger_tag_is' => 'Any tag is ":trigger_value"',
'rule_trigger_tag_is_choice' => 'Dowolny tag to..',
'rule_trigger_tag_is' => 'Dowolny tag jest ":trigger_value"',
'rule_trigger_currency_is_choice' => 'Waluta transakcji to..',
'rule_trigger_currency_is' => 'Waluta transakcji to ":trigger_value"',
'rule_trigger_foreign_currency_is_choice' => 'Waluta obca transakcji to..',
@@ -921,8 +921,8 @@ return [
'rule_trigger_notes_is_choice' => 'Notatki to..',
'rule_trigger_notes_is' => 'Notatki to ":trigger_value"',
'rule_trigger_notes_contains_choice' => 'Notatki zawierają..',
'rule_trigger_notes_contains' => 'Notes contain ":trigger_value"',
'rule_trigger_notes_starts_choice' => 'Notes start with..',
'rule_trigger_notes_contains' => 'Notatki zawierają ":trigger_value"',
'rule_trigger_notes_starts_choice' => 'Notatki zaczynają się od..',
'rule_trigger_notes_starts' => 'Notes start with ":trigger_value"',
'rule_trigger_notes_ends_choice' => 'Notes end with..',
'rule_trigger_notes_ends' => 'Notes end with ":trigger_value"',
@@ -1001,7 +1001,7 @@ return [
'rule_trigger_external_url_ends' => 'External URL ends with ":trigger_value"',
'rule_trigger_external_url_starts_choice' => 'External URL starts with..',
'rule_trigger_external_url_starts' => 'External URL starts with ":trigger_value"',
'rule_trigger_has_no_attachments_choice' => 'Has no attachments',
'rule_trigger_has_no_attachments_choice' => 'Nie ma załączników',
'rule_trigger_has_no_attachments' => 'Transaction has no attachments',
'rule_trigger_recurrence_id_choice' => 'Recurring transaction ID is..',
'rule_trigger_recurrence_id' => 'Recurring transaction ID is ":trigger_value"',
@@ -1218,8 +1218,8 @@ return [
// actions
'rule_action_delete_transaction_choice' => 'DELETE transaction(!)',
'rule_action_delete_transaction' => 'DELETE transaction(!)',
'rule_action_delete_transaction_choice' => 'USUŃ transakcję(!)',
'rule_action_delete_transaction' => 'USUŃ transakcję(!)',
'rule_action_set_category' => 'Ustaw kategorię na ":action_value"',
'rule_action_clear_category' => 'Wyczyść kategorię',
'rule_action_set_budget' => 'Ustaw budżet na ":action_value"',
@@ -1230,18 +1230,18 @@ return [
'rule_action_set_description' => 'Ustaw opis na ":action_value"',
'rule_action_append_description' => 'Dołącz do opisu wartość ":action_value"',
'rule_action_prepend_description' => 'Poprzedź opis wartością ":action_value"',
'rule_action_set_category_choice' => 'Set category to ..',
'rule_action_set_category_choice' => 'Ustaw kategorię na ..',
'rule_action_clear_category_choice' => 'Wyczyść wszystkie kategorie',
'rule_action_set_budget_choice' => 'Set budget to ..',
'rule_action_set_budget_choice' => 'Ustaw budżet na ..',
'rule_action_clear_budget_choice' => 'Wyczyść wszystkie budżety',
'rule_action_add_tag_choice' => 'Add tag ..',
'rule_action_remove_tag_choice' => 'Remove tag ..',
'rule_action_add_tag_choice' => 'Dodaj tag ..',
'rule_action_remove_tag_choice' => 'Usuń tag ..',
'rule_action_remove_all_tags_choice' => 'Usuń wszystkie tagi',
'rule_action_set_description_choice' => 'Set description to ..',
'rule_action_update_piggy_choice' => 'Add / remove transaction amount in piggy bank ..',
'rule_action_update_piggy' => 'Add / remove transaction amount in piggy bank ":action_value"',
'rule_action_append_description_choice' => 'Append description with ..',
'rule_action_prepend_description_choice' => 'Prepend description with ..',
'rule_action_set_description_choice' => 'Ustaw opis na ..',
'rule_action_update_piggy_choice' => 'Dodaj / usuń kwotę transakcji w skarbonce ..',
'rule_action_update_piggy' => 'Dodaj / usuń kwotę transakcji w skarbonce ":action_value"',
'rule_action_append_description_choice' => 'Dołącz do opisu ..',
'rule_action_prepend_description_choice' => 'Poprzedź opis ..',
'rule_action_set_source_account_choice' => 'Set source account to ..',
'rule_action_set_source_account' => 'Ustaw konto źródłowe na :action_value',
'rule_action_set_destination_account_choice' => 'Set destination account to ..',
@@ -1348,7 +1348,7 @@ return [
'preferences_frontpage' => 'Ekran główny',
'preferences_security' => 'Bezpieczeństwo',
'preferences_layout' => 'Układ',
'preferences_notifications' => 'Notifications',
'preferences_notifications' => 'Powiadomienia',
'pref_home_show_deposits' => 'Pokaż przychody na stronie domowej',
'pref_home_show_deposits_info' => 'Ekran główny pokazuje już konta wydatków. Czy chcesz wyświetlać również konta przychodów?',
'pref_home_do_show_deposits' => 'Tak, pokaż je',
@@ -1379,27 +1379,27 @@ return [
'optional_field_attachments' => 'Załączniki',
'optional_field_meta_data' => 'Opcjonalne metadane',
'external_url' => 'Zewnętrzny adres URL',
'pref_notification_bill_reminder' => 'Reminder about expiring bills',
'pref_notification_new_access_token' => 'Alert when a new API access token is created',
'pref_notification_transaction_creation' => 'Alert when a transaction is created automatically',
'pref_notification_user_login' => 'Alert when you login from a new location',
'pref_notifications' => 'Notifications',
'pref_notification_bill_reminder' => 'Przypomnienie o wygasających rachunkach',
'pref_notification_new_access_token' => 'Powiadomienie o utworzeniu nowego tokenu dostępu API',
'pref_notification_transaction_creation' => 'Powiadomienie o automatycznym utworzeniu transakcji',
'pref_notification_user_login' => 'Powiadomienie o zalogowaniu się z nowej lokalizacji',
'pref_notifications' => 'Powiadomienia',
'pref_notifications_help' => 'Indicate if these are notifications you would like to get. Some notifications may contain sensitive financial information.',
'slack_webhook_url' => 'Slack Webhook URL',
'slack_webhook_url_help' => 'If you want Firefly III to notify you using Slack, enter the webhook URL here. Otherwise leave the field blank. If you are an admin, you need to set this URL in the administration as well.',
'slack_url_label' => 'Slack "incoming webhook" URL',
'slack_webhook_url' => 'Adres URL webhooka Slack',
'slack_webhook_url_help' => 'Jeśli chcesz, aby Firefly III powiadamiał Cię używając Slacka, wprowadź tutaj adres URL webhooka. W przeciwnym razie pozostaw pole puste. Jeśli jesteś administratorem, musisz również ustawić ten adres URL w panelu administracji.',
'slack_url_label' => 'Adres URL "przychodzącego webhooka" dla Slacka',
// Financial administrations
'administration_index' => 'Financial administration',
'administration_index' => 'Zarządzanie finansami',
// profile:
'purge_data_title' => 'Purge data from Firefly III',
'purge_data_expl' => '"Purging" means "deleting that which is already deleted". In normal circumstances, Firefly III deletes nothing permanently. It just hides it. The button below deletes all of these previously "deleted" records FOREVER.',
'delete_stuff_header' => 'Delete and purge data',
'purge_all_data' => 'Purge all deleted records',
'purge_data' => 'Purge data',
'purged_all_records' => 'All deleted records have been purged.',
'delete_data_title' => 'Delete data from Firefly III',
'purge_data_title' => 'Wyczyść dane z Firefly III',
'purge_data_expl' => '"Wyczyszczenie" oznacza "usunięcie tego, co zostało już usunięte". W normalnych warunkach Firefly III nie usuwa nic na stałe. Po prostu je ukrywa. Przycisk poniżej usuwa wszystkie "usunięte" rekordy na ZAWSZE.',
'delete_stuff_header' => 'Usuń i wyczyść dane',
'purge_all_data' => 'Wyczyść wszystkie usunięte wpisy',
'purge_data' => 'Wyczyść dane',
'purged_all_records' => 'Wszystkie usunięte rekordy zostały wyczyszczone.',
'delete_data_title' => 'Usuń dane z Firefly III',
'permanent_delete_stuff' => 'You can delete stuff from Firefly III. Using the buttons below means that your items will be removed from view and hidden. There is no undo-button for this, but the items may remain in the database where you can salvage them if necessary.',
'other_sessions_logged_out' => 'Wszystkie twoje inne sesje zostały wylogowane.',
'delete_unused_accounts' => 'Deleting unused accounts will clean your auto-complete lists.',
@@ -2364,8 +2364,8 @@ return [
// administration
'invite_is_already_redeemed' => 'The invite to ":address" has already been redeemed.',
'invite_is_deleted' => 'The invite to ":address" has been deleted.',
'invite_is_already_redeemed' => 'Zaproszenie do ":address" zostało już wykorzystane.',
'invite_is_deleted' => 'Zaproszenie do ":address" zostało usunięte.',
'invite_new_user_title' => 'Invite new user',
'invite_new_user_text' => 'As an administrator, you can invite users to register on your Firefly III administration. Using the direct link you can share with them, they will be able to register an account. The invited user and their invite link will appear in the table below. You are free to share the invitation link with them.',
'invited_user_mail' => 'Email address',
@@ -2420,7 +2420,7 @@ return [
'admin_notification_check_invite_redeemed' => 'A user invitation is redeemed',
'all_invited_users' => 'All invited users',
'save_notification_settings' => 'Save settings',
'notification_settings_saved' => 'The notification settings have been saved',
'notification_settings_saved' => 'Ustawienia powiadomień zostały zapisane',
'split_transaction_title' => 'Opis podzielonej transakcji',
@@ -2683,7 +2683,7 @@ return [
'placeholder' => '[Placeholder]',
// audit log entries
'audit_log_entries' => 'Audit log entries',
'audit_log_entries' => 'Wpisy dziennika audytu',
'ale_action_log_add' => 'Added :amount to piggy bank ":name"',
'ale_action_log_remove' => 'Removed :amount from piggy bank ":name"',
'ale_action_clear_budget' => 'Removed from budget',
@@ -2692,13 +2692,13 @@ return [
'ale_action_clear_tag' => 'Cleared tag',
'ale_action_clear_all_tags' => 'Cleared all tags',
'ale_action_set_bill' => 'Linked to bill',
'ale_action_set_budget' => 'Set budget',
'ale_action_set_category' => 'Set category',
'ale_action_set_source' => 'Set source account',
'ale_action_set_destination' => 'Set destination account',
'ale_action_update_transaction_type' => 'Changed transaction type',
'ale_action_update_notes' => 'Changed notes',
'ale_action_update_description' => 'Changed description',
'ale_action_set_budget' => 'Ustawiono budżet',
'ale_action_set_category' => 'Ustawiono kategor',
'ale_action_set_source' => 'Ustawiono konto źródłowe',
'ale_action_set_destination' => 'Ustawiono konto docelowe',
'ale_action_update_transaction_type' => 'Zmieniono typ transakcji',
'ale_action_update_notes' => 'Zmieniono notatki',
'ale_action_update_description' => 'Zmieniono opis',
'ale_action_add_to_piggy' => 'Skarbonka',
'ale_action_remove_from_piggy' => 'Skarbonka',
'ale_action_add_tag' => 'Dodano tag',

View File

@@ -221,7 +221,7 @@ return [
'login_name' => 'Login',
'is_owner' => 'Czy admin?',
'url' => 'URL',
'bill_end_date' => 'End date',
'bill_end_date' => 'Data końcowa',
// import
'apply_rules' => 'Zastosuj reguły',

View File

@@ -66,7 +66,9 @@ return [
'require_currency_info' => 'Treść tego pola jest nieprawidłowa bez informacji o walucie.',
'not_transfer_account' => 'To konto nie jest kontem, które może być używane do przelewów.',
'require_currency_amount' => 'Treść tego pola jest nieprawidłowa bez informacji o obcej kwocie.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_currency' => 'Wymagane jest wprowadzenie liczby w tym polu',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Opis transakcji nie powinien być równy globalnemu opisowi.',
'file_invalid_mime' => 'Plik ":name" jest typu ":mime", który nie jest akceptowany jako nowy plik do przekazania.',
'file_too_large' => 'Plik ":name" jest zbyt duży.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Esta não é uma conta que possa ser usada para transferências.',
'require_currency_amount' => 'O conteúdo deste campo é inválido sem a informação de moeda estrangeira.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'A descrição da transação não pode ser igual à descrição global.',
'file_invalid_mime' => 'Arquivo ":name" é do tipo ":mime" que não é aceito como um novo upload.',
'file_too_large' => 'Arquivo ":name" é muito grande.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Esta conta não pode ser utilizada para transferências.',
'require_currency_amount' => 'O conteúdo deste campo é inválido sem a informação da moeda estrangeira.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'A descricao da transaccao nao deve ser igual a descricao global.',
'file_invalid_mime' => 'O ficheiro ":name" e do tipo ":mime" que nao e aceite como um novo upload.',
'file_too_large' => 'O ficheiro ":name" e demasiado grande.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Acest cont nu este un cont care poate fi utilizat pentru transferuri.',
'require_currency_amount' => 'Conținutul acestui câmp este nevalid fără informații despre monedă.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Descrierea tranzacției nu trebuie să fie egală cu descrierea globală.',
'file_invalid_mime' => 'Fișierul ":name" este de tip ":mime" și nu este acceptat ca o încărcare nouă.',
'file_too_large' => 'Fișierul ":name" este prea mare.',

View File

@@ -2364,8 +2364,8 @@ return [
// administration
'invite_is_already_redeemed' => 'The invite to ":address" has already been redeemed.',
'invite_is_deleted' => 'The invite to ":address" has been deleted.',
'invite_is_already_redeemed' => 'Приглашение ":address" уже было активировано.',
'invite_is_deleted' => 'Приглашение ":address" удалено.',
'invite_new_user_title' => 'Invite new user',
'invite_new_user_text' => 'As an administrator, you can invite users to register on your Firefly III administration. Using the direct link you can share with them, they will be able to register an account. The invited user and their invite link will appear in the table below. You are free to share the invitation link with them.',
'invited_user_mail' => 'Email address',

View File

@@ -66,7 +66,9 @@ return [
'require_currency_info' => 'Содержимое этого поля недействительно без информации о валюте.',
'not_transfer_account' => 'Этот счёт нельзя использовать для перевода.',
'require_currency_amount' => 'Содержимое этого поля недействительно без информации о валюте.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_currency' => 'Это поле требует число',
'require_foreign_dest' => 'Это значение поля должно совпадать с валютой счета назначения.',
'require_foreign_src' => 'Это поле должно совпадать с валютой исходного счета.',
'equal_description' => 'Описание транзакции не должно совпадать с глобальным описанием.',
'file_invalid_mime' => 'Файл ":name" имеет тип ":mime". Загрузка файлов такого типа невозможна.',
'file_too_large' => 'Файл ":name" слишком большой.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Tento účet nie je účet, ktorý je možné použiť pre prevody.',
'require_currency_amount' => 'Obsah tohto poľa je bez informácie o cudzej mene neplatný.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Popis transakcie nesmie byť rovnaký ako globálny popis.',
'file_invalid_mime' => 'Súbor ":name" je typu ":mime", ktorý nie je pre nahrávanie schválený.',
'file_too_large' => 'Súbor ":name" je príliš veľký.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'This account is not an account that can be used for transfers.',
'require_currency_amount' => 'Vsebina tega polja ni veljavna brez podatkov o tujih zneskih.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Transaction description should not equal global description.',
'file_invalid_mime' => 'File ":name" is of type ":mime" which is not accepted as a new upload.',
'file_too_large' => 'File ":name" is too large.',

View File

@@ -2365,8 +2365,8 @@ return [
// administration
'invite_is_already_redeemed' => 'The invite to ":address" has already been redeemed.',
'invite_is_deleted' => 'The invite to ":address" has been deleted.',
'invite_is_already_redeemed' => 'Inbjudan till ":address" har redan lösts in.',
'invite_is_deleted' => 'Inbjudan till ":address" har tagits bort.',
'invite_new_user_title' => 'Invite new user',
'invite_new_user_text' => 'As an administrator, you can invite users to register on your Firefly III administration. Using the direct link you can share with them, they will be able to register an account. The invited user and their invite link will appear in the table below. You are free to share the invitation link with them.',
'invited_user_mail' => 'Email address',

View File

@@ -66,7 +66,9 @@ return [
'require_currency_info' => 'Innehållet i det här fältet är ogiltigt utan valutainformation.',
'not_transfer_account' => 'Detta är inte ett konto som kan användas för transaktioner.',
'require_currency_amount' => 'Innehållet i det här fältet är ogiltigt utan utländskt belopp.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_currency' => 'Detta fält kräver ett nummer',
'require_foreign_dest' => 'Detta fältvärde måste matcha valutan för målkontot.',
'require_foreign_src' => 'Detta fältvärde måste matcha valutan för källkontot.',
'equal_description' => 'Transaktions beskrivning bör inte vara samma som den globala beskrivningen.',
'file_invalid_mime' => 'Filen ”:name” är av typ ”:mime” som inte accepteras som en ny uppladdning.',
'file_too_large' => 'Filen ”:name” är för stor.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'This account is not an account that can be used for transfers.',
'require_currency_amount' => 'The content of this field is invalid without foreign amount information.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Transaction description should not equal global description.',
'file_invalid_mime' => 'File ":name" is of type ":mime" which is not accepted as a new upload.',
'file_too_large' => 'File ":name" is too large.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'This account is not an account that can be used for transfers.',
'require_currency_amount' => 'The content of this field is invalid without foreign amount information.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'İşlem açıklaması genel açıklama eşit değildir.',
'file_invalid_mime' => '":name" dosyası ":mime" türünde olup yeni bir yükleme olarak kabul edilemez.',
'file_too_large' => '":name" dosyası çok büyük.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Цей рахунок не є рахунком, який може бути використаний для переказу.',
'require_currency_amount' => 'Вміст цього поля є недійсним без інформації про валюту.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Опис транзакції має відрізнятися від глобального опису.',
'file_invalid_mime' => 'Файл ":name" має заборонений для завантаження тип ":mime".',
'file_too_large' => 'Файл ":name" надто великий.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'Tài khoản này không phải là tài khoản có thể được sử dụng để chuyển khoản.',
'require_currency_amount' => 'Nội dung của trường này không hợp lệ nếu không có thông tin về số lượng nước ngoài.',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => 'Mô tả giao dịch không nên bằng mô tả toàn cầu.',
'file_invalid_mime' => 'File ":name" là loại ":mime" không được chấp nhận khi tải lên mới.',
'file_too_large' => 'File ":name" quá lớn.',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => '此账户无法用于转账',
'require_currency_amount' => '此字段需要外币信息',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => '交易描述和全局描述不应相同',
'file_invalid_mime' => '文件“:name”的类型为“:mime”系统禁止上传此类型的文件',
'file_too_large' => '文件“:name”过大',

View File

@@ -67,6 +67,8 @@ return [
'not_transfer_account' => 'This account is not an account that can be used for transfers.',
'require_currency_amount' => '此欄位內容須要外幣資訊。',
'require_foreign_currency' => 'This field requires a number',
'require_foreign_dest' => 'This field value must match the currency of the destination account.',
'require_foreign_src' => 'This field value must match the currency of the source account.',
'equal_description' => '交易描述不應等同全域描述。',
'file_invalid_mime' => '檔案 ":name" 類型為 ":mime",不允許上載。',
'file_too_large' => '檔案 ":name" 過大。',

View File

@@ -12,6 +12,6 @@ sonar.organization=firefly-iii
#sonar.sourceEncoding=UTF-8
sonar.projectVersion=6.0.1
sonar.projectVersion=6.0.4
sonar.sources=app,bootstrap,database,resources/assets,resources/views,routes,tests
sonar.sourceEncoding=UTF-8

View File

@@ -2520,9 +2520,9 @@ ee-first@1.1.1:
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
electron-to-chromium@^1.4.284:
version "1.4.327"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.327.tgz#288b106518cfed0a60f7de8a0480432a9be45477"
integrity sha512-DIk2H4g/3ZhjgiABJjVdQvUdMlSABOsjeCm6gmUzIdKxAuFrGiJ8QXMm3i09grZdDBMC/d8MELMrdwYRC0+YHg==
version "1.4.328"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz#b4565ffa502542b561cea16086d6d9b916c7095a"
integrity sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==
elliptic@^6.5.3:
version "6.5.4"
@@ -5289,9 +5289,9 @@ webpack-sources@^3.2.3:
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
webpack@^5.60.0:
version "5.76.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.0.tgz#f9fb9fb8c4a7dbdcd0d56a98e56b8a942ee2692c"
integrity sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==
version "5.76.1"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.1.tgz#7773de017e988bccb0f13c7d75ec245f377d295c"
integrity sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==
dependencies:
"@types/eslint-scope" "^3.7.3"
"@types/estree" "^0.0.51"