Compare commits

...

26 Commits

Author SHA1 Message Date
James Cole
88c145ac3e Merge branch 'release/v6.0.24' 2023-09-15 19:55:41 +02:00
James Cole
4aba842624 Meta files for new release. 2023-09-15 19:54:56 +02:00
James Cole
936c2b8888 Fix https://github.com/orgs/firefly-iii/discussions/7963 2023-09-15 18:55:30 +02:00
James Cole
c3e971c419 Rebuild frontend. 2023-09-12 06:09:39 +02:00
James Cole
19fee6a8fb Fix https://github.com/orgs/firefly-iii/discussions/7940 2023-09-12 05:58:39 +02:00
James Cole
477eebdbe7 Merge pull request #7952 from firefly-iii/dependabot/composer/develop/laravel/framework-10.22.0 2023-09-11 05:49:00 +02:00
James Cole
093bff750c Merge pull request #7951 from firefly-iii/dependabot/composer/develop/laravel/sanctum-3.3.0 2023-09-11 05:48:53 +02:00
James Cole
92e679a9ea Merge pull request #7950 from firefly-iii/dependabot/composer/develop/phpstan/phpstan-1.10.33 2023-09-11 05:48:44 +02:00
James Cole
43232ae45c Merge pull request #7949 from firefly-iii/dependabot/npm_and_yarn/develop/i18n-js-4.3.2 2023-09-11 05:48:30 +02:00
dependabot[bot]
1fb13d8697 chore(deps): bump laravel/framework from 10.21.0 to 10.22.0
Bumps [laravel/framework](https://github.com/laravel/framework) from 10.21.0 to 10.22.0.
- [Release notes](https://github.com/laravel/framework/releases)
- [Changelog](https://github.com/laravel/framework/blob/10.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/framework/compare/v10.21.0...v10.22.0)

---
updated-dependencies:
- dependency-name: laravel/framework
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 03:45:18 +00:00
dependabot[bot]
9ac28b93ca chore(deps): bump laravel/sanctum from 3.2.6 to 3.3.0
Bumps [laravel/sanctum](https://github.com/laravel/sanctum) from 3.2.6 to 3.3.0.
- [Release notes](https://github.com/laravel/sanctum/releases)
- [Changelog](https://github.com/laravel/sanctum/blob/3.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/sanctum/compare/v3.2.6...v3.3.0)

---
updated-dependencies:
- dependency-name: laravel/sanctum
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 03:45:07 +00:00
dependabot[bot]
067c01ca06 chore(deps-dev): bump phpstan/phpstan from 1.10.32 to 1.10.33
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.32 to 1.10.33.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.11.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.10.32...1.10.33)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 03:44:57 +00:00
dependabot[bot]
82040c2a5d chore(deps): bump i18n-js from 4.3.0 to 4.3.2
Bumps [i18n-js](https://github.com/fnando/i18n) from 4.3.0 to 4.3.2.
- [Changelog](https://github.com/fnando/i18n/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fnando/i18n/compare/v4.3.0...v4.3.2)

---
updated-dependencies:
- dependency-name: i18n-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 03:26:50 +00:00
James Cole
62502c746c Stringify IDs for #7944 2023-09-09 15:12:24 +02:00
James Cole
6ab79a87fe Update security txt 2023-09-07 06:38:06 +02:00
James Cole
04ee3b4dc1 Update security.txt 2023-09-06 20:49:09 +02:00
James Cole
9c9af79ad5 Fix #7920 2023-09-06 05:45:35 +02:00
James Cole
dd794e409f Fix issues with relative urls 2023-09-05 19:34:46 +02:00
James Cole
67d29b8416 Merge branch 'release/v6.0.23' 2023-09-03 18:09:17 +02:00
James Cole
5ee80dd046 Merge tag 'v6.0.23' into develop
v6.0.23
2023-09-03 18:09:17 +02:00
James Cole
f62e93b487 Add spans to stop parsing 2023-09-03 18:01:12 +02:00
James Cole
a7cc70b975 Remove whitespace 2023-09-03 18:00:07 +02:00
James Cole
60f0d8074a Meta files for new release. 2023-09-03 17:53:22 +02:00
James Cole
ed1fdf9382 Update files for new release 2023-09-03 17:38:54 +02:00
James Cole
9ea3c4224e Remove extra slashes 2023-09-02 10:47:10 +02:00
James Cole
cdb041e647 Merge tag 'v6.0.22' into develop
v6.0.22
2023-09-01 19:41:15 +02:00
137 changed files with 1989 additions and 1462 deletions

View File

@@ -226,16 +226,16 @@
},
{
"name": "friendsofphp/php-cs-fixer",
"version": "v3.25.0",
"version": "v3.26.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "9025b7d2b6e1d90a63d0ac0905018ce5d03ec88d"
"reference": "d023ba6684055f6ea1da1352d8a02baca0426983"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/9025b7d2b6e1d90a63d0ac0905018ce5d03ec88d",
"reference": "9025b7d2b6e1d90a63d0ac0905018ce5d03ec88d",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d023ba6684055f6ea1da1352d8a02baca0426983",
"reference": "d023ba6684055f6ea1da1352d8a02baca0426983",
"shasum": ""
},
"require": {
@@ -309,7 +309,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.25.0"
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.26.1"
},
"funding": [
{
@@ -317,7 +317,7 @@
"type": "github"
}
],
"time": "2023-08-31T21:27:18+00:00"
"time": "2023-09-08T19:09:07+00:00"
},
{
"name": "psr/container",

View File

@@ -105,7 +105,7 @@ class AccountController extends Controller
'name' => $account->name,
'name_with_balance' => $nameWithBalance,
'type' => $account->accountType->type,
'currency_id' => $currency->id,
'currency_id' => (string)$currency->id,
'currency_name' => $currency->name,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,

View File

@@ -190,7 +190,7 @@ class BasicController extends Controller
'key' => sprintf('balance-in-%s', $currency->code),
'title' => trans('firefly.box_balance_in_currency', ['currency' => $currency->symbol]),
'monetary_value' => $sums[$currencyId] ?? '0',
'currency_id' => $currency->id,
'currency_id' => (string)$currency->id,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => $currency->decimal_places,
@@ -203,7 +203,7 @@ class BasicController extends Controller
'key' => sprintf('spent-in-%s', $currency->code),
'title' => trans('firefly.box_spent_in_currency', ['currency' => $currency->symbol]),
'monetary_value' => $expenses[$currencyId] ?? '0',
'currency_id' => $currency->id,
'currency_id' => (string)$currency->id,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => $currency->decimal_places,
@@ -215,7 +215,7 @@ class BasicController extends Controller
'key' => sprintf('earned-in-%s', $currency->code),
'title' => trans('firefly.box_earned_in_currency', ['currency' => $currency->symbol]),
'monetary_value' => $incomes[$currencyId] ?? '0',
'currency_id' => $currency->id,
'currency_id' => (string)$currency->id,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => $currency->decimal_places,
@@ -253,7 +253,7 @@ class BasicController extends Controller
'key' => sprintf('bills-paid-in-%s', $info['code']),
'title' => trans('firefly.box_bill_paid_in_currency', ['currency' => $info['symbol']]),
'monetary_value' => $amount,
'currency_id' => $info['id'],
'currency_id' => (string)$info['id'],
'currency_code' => $info['code'],
'currency_symbol' => $info['symbol'],
'currency_decimal_places' => $info['decimal_places'],
@@ -272,7 +272,7 @@ class BasicController extends Controller
'key' => sprintf('bills-unpaid-in-%s', $info['code']),
'title' => trans('firefly.box_bill_unpaid_in_currency', ['currency' => $info['symbol']]),
'monetary_value' => $amount,
'currency_id' => $info['id'],
'currency_id' => (string)$info['id'],
'currency_code' => $info['code'],
'currency_symbol' => $info['symbol'],
'currency_decimal_places' => $info['decimal_places'],
@@ -302,7 +302,7 @@ class BasicController extends Controller
foreach ($spent as $row) {
// either an amount was budgeted or 0 is available.
$amount = $available[$row['currency_id']] ?? '0';
$amount = (string)($available[$row['currency_id']] ?? '0');
$spentInCurrency = $row['sum'];
$leftToSpend = bcadd($amount, $spentInCurrency);
@@ -316,7 +316,7 @@ class BasicController extends Controller
'key' => sprintf('left-to-spend-in-%s', $row['currency_code']),
'title' => trans('firefly.box_left_to_spend_in_currency', ['currency' => $row['currency_symbol']]),
'monetary_value' => $leftToSpend,
'currency_id' => $row['currency_id'],
'currency_id' => (string)$row['currency_id'],
'currency_code' => $row['currency_code'],
'currency_symbol' => $row['currency_symbol'],
'currency_decimal_places' => $row['currency_decimal_places'],
@@ -381,7 +381,7 @@ class BasicController extends Controller
'key' => sprintf('net-worth-in-%s', $currency->code),
'title' => trans('firefly.box_net_worth_in_currency', ['currency' => $currency->symbol]),
'monetary_value' => $amount,
'currency_id' => $currency->id,
'currency_id' => (string)$currency->id,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => $currency->decimal_places,

View File

@@ -104,7 +104,7 @@ class AccountController extends Controller
'name' => $account->name,
'name_with_balance' => $nameWithBalance,
'type' => $account->accountType->type,
'currency_id' => $currency->id,
'currency_id' => (string)$currency->id,
'currency_name' => $currency->name,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,

View File

@@ -114,7 +114,7 @@ class AccountController extends Controller
'currency_decimal_places' => $currency->decimal_places,
// the default currency of the user (could be the same!)
'native_id' => (int)$default->id,
'native_id' => (string)$default->id,
'native_code' => $default->code,
'native_symbol' => $default->symbol,
'native_decimal_places' => (int)$default->decimal_places,

View File

@@ -112,12 +112,12 @@ class BalanceController extends Controller
// set array for default currency (even if unused later on)
$defaultCurrencyId = (int)$default->id;
$data[$defaultCurrencyId] = [
'currency_id' => $defaultCurrencyId,
'currency_id' => (string)$defaultCurrencyId,
'currency_symbol' => $default->symbol,
'currency_code' => $default->code,
'currency_name' => $default->name,
'currency_decimal_places' => (int)$default->decimal_places,
'native_id' => $defaultCurrencyId,
'native_id' => (string)$defaultCurrencyId,
'native_symbol' => $default->symbol,
'native_code' => $default->code,
'native_name' => $default->name,
@@ -138,13 +138,13 @@ class BalanceController extends Controller
// set the array with monetary info, if it does not exist.
$data[$currencyId] = $data[$currencyId] ?? [
'currency_id' => $currencyId,
'currency_id' => (string)$currencyId,
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],
'currency_name' => $journal['currency_name'],
'currency_decimal_places' => $journal['currency_decimal_places'],
// native currency info (could be the same)
'native_id' => (int)$default->id,
'native_id' => (string)$default->id,
'native_code' => $default->code,
'native_symbol' => $default->symbol,
'native_decimal_places' => (int)$default->decimal_places,
@@ -203,11 +203,11 @@ class BalanceController extends Controller
// income and expense array prepped:
$income = [
'label' => 'earned',
'currency_id' => $currency['currency_id'],
'currency_id' => (string)$currency['currency_id'],
'currency_symbol' => $currency['currency_symbol'],
'currency_code' => $currency['currency_code'],
'currency_decimal_places' => $currency['currency_decimal_places'],
'native_id' => $currency['native_id'],
'native_id' => (string)$currency['native_id'],
'native_symbol' => $currency['native_symbol'],
'native_code' => $currency['native_code'],
'native_decimal_places' => $currency['native_decimal_places'],
@@ -219,11 +219,11 @@ class BalanceController extends Controller
];
$expense = [
'label' => 'spent',
'currency_id' => $currency['currency_id'],
'currency_id' => (string)$currency['currency_id'],
'currency_symbol' => $currency['currency_symbol'],
'currency_code' => $currency['currency_code'],
'currency_decimal_places' => $currency['currency_decimal_places'],
'native_id' => $currency['native_id'],
'native_id' => (string)$currency['native_id'],
'native_symbol' => $currency['native_symbol'],
'native_code' => $currency['native_code'],
'native_decimal_places' => $currency['native_decimal_places'],

View File

@@ -128,11 +128,11 @@ class BudgetController extends Controller
foreach ($rows as $row) {
$current = [
'label' => $budget->name,
'currency_id' => $row['currency_id'],
'currency_id' => (string)$row['currency_id'],
'currency_code' => $row['currency_code'],
'currency_name' => $row['currency_name'],
'currency_decimal_places' => $row['currency_decimal_places'],
'native_id' => $row['native_id'],
'native_id' => (string)$row['native_id'],
'native_code' => $row['native_code'],
'native_name' => $row['native_name'],
'native_decimal_places' => $row['native_decimal_places'],
@@ -199,12 +199,12 @@ class BudgetController extends Controller
foreach ($array as $currencyId => $block) {
$this->currencies[$currencyId] = $this->currencies[$currencyId] ?? TransactionCurrency::find($currencyId);
$return[$currencyId] = $return[$currencyId] ?? [
'currency_id' => $currencyId,
'currency_id' => (string)$currencyId,
'currency_code' => $block['currency_code'],
'currency_name' => $block['currency_name'],
'currency_symbol' => $block['currency_symbol'],
'currency_decimal_places' => (int)$block['currency_decimal_places'],
'native_id' => (int)$this->currency->id,
'native_id' => (string)$this->currency->id,
'native_code' => $this->currency->code,
'native_name' => $this->currency->name,
'native_symbol' => $this->currency->symbol,

View File

@@ -103,12 +103,12 @@ class CategoryController extends Controller
// create arrays
$return[$key] = $return[$key] ?? [
'label' => $categoryName,
'currency_id' => (int)$currency->id,
'currency_id' => (string)$currency->id,
'currency_code' => $currency->code,
'currency_name' => $currency->name,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => (int)$currency->decimal_places,
'native_id' => (int)$default->id,
'native_id' => (string)$default->id,
'native_code' => $default->code,
'native_name' => $default->name,
'native_symbol' => $default->symbol,

View File

@@ -24,7 +24,9 @@ declare(strict_types=1);
namespace FireflyIII\Api\V2\Controllers\Model\Bill;
use FireflyIII\Api\V2\Controllers\Controller;
use FireflyIII\Models\Bill;
use FireflyIII\Repositories\Administration\Bill\BillRepositoryInterface;
use FireflyIII\Transformers\V2\AccountTransformer;
use FireflyIII\Transformers\V2\BillTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -71,4 +73,17 @@ class ShowController extends Controller
->json($this->jsonApiList('subscriptions', $paginator, $transformer))
->header('Content-Type', self::CONTENT_TYPE);
}
/**
* TODO this endpoint is not documented
*/
public function show(Request $request, Bill $bill): JsonResponse
{
$transformer = new BillTransformer();
$transformer->setParameters($this->parameters);
return response()
->api($this->jsonApiObject('subscriptions', $bill, $transformer))
->header('Content-Type', self::CONTENT_TYPE);
}
}

View File

@@ -220,7 +220,7 @@ class BasicController extends Controller
$return[] = [
'key' => 'balance-in-native',
'value' => $sums['native'],
'currency_id' => $default->id,
'currency_id' => (string)$default->id,
'currency_code' => $default->code,
'currency_symbol' => $default->symbol,
'currency_decimal_places' => $default->decimal_places,
@@ -228,7 +228,7 @@ class BasicController extends Controller
$return[] = [
'key' => 'spent-in-native',
'value' => $expenses['native'],
'currency_id' => $default->id,
'currency_id' => (string)$default->id,
'currency_code' => $default->code,
'currency_symbol' => $default->symbol,
'currency_decimal_places' => $default->decimal_places,
@@ -236,7 +236,7 @@ class BasicController extends Controller
$return[] = [
'key' => 'earned-in-native',
'value' => $incomes['native'],
'currency_id' => $default->id,
'currency_id' => (string)$default->id,
'currency_code' => $default->code,
'currency_symbol' => $default->symbol,
'currency_decimal_places' => $default->decimal_places,
@@ -255,7 +255,7 @@ class BasicController extends Controller
$return[] = [
'key' => sprintf('balance-in-%s', $currency->code),
'value' => $sums[$currencyId] ?? '0',
'currency_id' => $currency->id,
'currency_id' => (string)$currency->id,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => $currency->decimal_places,
@@ -263,7 +263,7 @@ class BasicController extends Controller
$return[] = [
'key' => sprintf('spent-in-%s', $currency->code),
'value' => $expenses[$currencyId] ?? '0',
'currency_id' => $currency->id,
'currency_id' => (string)$currency->id,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => $currency->decimal_places,
@@ -271,7 +271,7 @@ class BasicController extends Controller
$return[] = [
'key' => sprintf('earned-in-%s', $currency->code),
'value' => $incomes[$currencyId] ?? '0',
'currency_id' => $currency->id,
'currency_id' => (string)$currency->id,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => $currency->decimal_places,
@@ -305,7 +305,7 @@ class BasicController extends Controller
$return[] = [
'key' => sprintf('bills-paid-in-%s', $info['currency_code']),
'value' => $amount,
'currency_id' => $info['currency_id'],
'currency_id' => (string)$info['currency_id'],
'currency_code' => $info['currency_code'],
'currency_symbol' => $info['currency_symbol'],
'currency_decimal_places' => $info['currency_decimal_places'],
@@ -313,7 +313,7 @@ class BasicController extends Controller
$return[] = [
'key' => 'bills-paid-in-native',
'value' => $nativeAmount,
'currency_id' => $info['native_id'],
'currency_id' => (string)$info['native_id'],
'currency_code' => $info['native_code'],
'currency_symbol' => $info['native_symbol'],
'currency_decimal_places' => $info['native_decimal_places'],
@@ -329,7 +329,7 @@ class BasicController extends Controller
$return[] = [
'key' => sprintf('bills-unpaid-in-%s', $info['currency_code']),
'value' => $amount,
'currency_id' => $info['currency_id'],
'currency_id' => (string)$info['currency_id'],
'currency_code' => $info['currency_code'],
'currency_symbol' => $info['currency_symbol'],
'currency_decimal_places' => $info['currency_decimal_places'],
@@ -337,7 +337,7 @@ class BasicController extends Controller
$return[] = [
'key' => 'bills-unpaid-in-native',
'value' => $nativeAmount,
'currency_id' => $info['native_id'],
'currency_id' => (string)$info['native_id'],
'currency_code' => $info['native_code'],
'currency_symbol' => $info['native_symbol'],
'currency_decimal_places' => $info['native_decimal_places'],
@@ -504,7 +504,7 @@ class BasicController extends Controller
$return[] = [
'key' => 'net-worth-in-native',
'value' => $netWorthSet['native']['balance'],
'currency_id' => $netWorthSet['native']['currency_id'],
'currency_id' => (string)$netWorthSet['native']['currency_id'],
'currency_code' => $netWorthSet['native']['currency_code'],
'currency_symbol' => $netWorthSet['native']['currency_symbol'],
'currency_decimal_places' => $netWorthSet['native']['currency_decimal_places'],
@@ -516,7 +516,7 @@ class BasicController extends Controller
$return[] = [
'key' => sprintf('net-worth-in-%s', $data['currency_code']),
'value' => $data['balance'],
'currency_id' => $data['currency_id'],
'currency_id' => (string)$data['currency_id'],
'currency_code' => $data['currency_code'],
'currency_symbol' => $data['currency_symbol'],
'currency_decimal_places' => $data['currency_decimal_places'],

View File

@@ -63,18 +63,6 @@ class BudgetLimitHandler
private function updateAvailableBudget(BudgetLimit $budgetLimit): void
{
Log::debug(sprintf('Now in updateAvailableBudget(#%d)', $budgetLimit->id));
// based on the view range of the user (month week quarter etc) the budget limit could
// either overlap multiple available budget periods or be contained in a single one.
// all have to be created or updated.
try {
$viewRange = app('preferences')->get('viewRange', '1M')->data;
} catch (ContainerExceptionInterface | NotFoundExceptionInterface $e) {
$viewRange = '1M';
}
$start = app('navigation')->startOfPeriod($budgetLimit->start_date, $viewRange);
$end = app('navigation')->startOfPeriod($budgetLimit->end_date, $viewRange);
$end = app('navigation')->endOfPeriod($end, $viewRange);
$budget = Budget::find($budgetLimit->budget_id);
if (null === $budget) {
Log::warning('Budget is null, probably deleted, find deleted version.');
@@ -94,8 +82,23 @@ class BudgetLimitHandler
return;
}
// based on the view range of the user (month week quarter etc) the budget limit could
// either overlap multiple available budget periods or be contained in a single one.
// all have to be created or updated.
try {
$viewRange = app('preferences')->getForUser($user, 'viewRange', '1M')->data;
} catch (ContainerExceptionInterface | NotFoundExceptionInterface $e) {
app('log')->error($e->getMessage());
$viewRange = '1M';
}
$start = app('navigation')->startOfPeriod($budgetLimit->start_date, $viewRange);
$end = app('navigation')->startOfPeriod($budgetLimit->end_date, $viewRange);
$end = app('navigation')->endOfPeriod($end, $viewRange);
// limit period in total is:
$limitPeriod = Period::make($start, $end, precision: Precision::DAY(), boundaries: Boundaries::EXCLUDE_NONE());
app('log')->debug(sprintf('Limit period is from %s to %s', $start->format('Y-m-d'), $end->format('Y-m-d')));
// from the start until the end of the budget limit, need to loop!
$current = clone $start;

View File

@@ -227,6 +227,7 @@ class IndexController extends Controller
Log::debug(sprintf('Working on budget #%d ("%s")', $current->id, $current->name));
$array = $current->toArray();
$array['spent'] = [];
$array['spent_total'] = [];
$array['budgeted'] = [];
$array['attachments'] = $this->repository->getAttachments($current);
$array['auto_budget'] = $this->repository->getAutoBudget($current);
@@ -235,9 +236,10 @@ class IndexController extends Controller
foreach ($budgetLimits as $limit) {
Log::debug(sprintf('Working on budget limit #%d', $limit->id));
$currency = $limit->transactionCurrency ?? $defaultCurrency;
$amount = app('steam')->bcround($limit->amount, $currency->decimal_places);
$array['budgeted'][] = [
'id' => $limit->id,
'amount' => app('steam')->bcround($limit->amount, $currency->decimal_places),
'amount' => $amount,
'start_date' => $limit->start_date->isoFormat($this->monthAndDayFormat),
'end_date' => $limit->end_date->isoFormat($this->monthAndDayFormat),
'in_range' => $limit->start_date->isSameDay($start) && $limit->end_date->isSameDay($end),
@@ -246,6 +248,7 @@ class IndexController extends Controller
'currency_name' => $currency->name,
'currency_decimal_places' => $currency->decimal_places,
];
Log::debug(sprintf('The amount budgeted for budget limit #%d is %s %s', $limit->id, $currency->code, $amount));
}
/** @var TransactionCurrency $currency */

View File

@@ -28,7 +28,10 @@ use Exception;
use FireflyConfig;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Http\Middleware\IsDemoUser;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\TransactionType;
use FireflyIII\Support\Http\Controllers\GetConfigurationData;
use FireflyIII\User;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
@@ -37,6 +40,8 @@ use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Log;
use Illuminate\View\View;
use Monolog\Handler\RotatingFileHandler;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
/**
* Class DebugController
@@ -117,86 +122,9 @@ class DebugController extends Controller
*/
public function index(Request $request)
{
// basic scope information:
$now = now(config('app.timezone'))->format('Y-m-d H:i:s e');
$buildNr = '(unknown)';
$buildDate = '(unknown)';
$baseBuildNr = '(unknown)';
$baseBuildDate = '(unknown)';
$expectedDBversion = config('firefly.db_version');
$foundDBversion = FireflyConfig::get('db_version', 1)->data;
try {
if (file_exists('/var/www/counter-main.txt')) {
$buildNr = trim(file_get_contents('/var/www/counter-main.txt'));
}
} catch (Exception $e) { // generic catch for open basedir.
Log::debug('Could not check counter.');
Log::warning($e->getMessage());
}
try {
if (file_exists('/var/www/build-date-main.txt')) {
$buildDate = trim(file_get_contents('/var/www/build-date-main.txt'));
}
} catch (Exception $e) { // generic catch for open basedir.
Log::debug('Could not check date.');
Log::warning($e->getMessage());
}
if ('' !== (string)env('BASE_IMAGE_BUILD')) {
$baseBuildNr = env('BASE_IMAGE_BUILD');
}
if ('' !== (string)env('BASE_IMAGE_DATE')) {
$baseBuildDate = env('BASE_IMAGE_DATE');
}
$phpVersion = PHP_VERSION;
$phpOs = PHP_OS;
// system information
$tz = env('TZ');
$appEnv = config('app.env');
$appDebug = var_export(config('app.debug'), true);
$cacheDriver = config('cache.default');
$logChannel = config('logging.default');
$appLogLevel = config('logging.level');
$maxFileSize = app('steam')->phpBytes(ini_get('upload_max_filesize'));
$maxPostSize = app('steam')->phpBytes(ini_get('post_max_size'));
$uploadSize = min($maxFileSize, $maxPostSize);
$displayErrors = ini_get('display_errors');
$errorReporting = $this->errorReporting((int)ini_get('error_reporting'));
$interface = PHP_SAPI;
$defaultLanguage = (string)config('firefly.default_language');
$defaultLocale = (string)config('firefly.default_locale');
$bcscale = bcscale();
$drivers = implode(', ', DB::availableDrivers());
$currentDriver = DB::getDriverName();
$trustedProxies = config('firefly.trusted_proxies');
// user info
$loginProvider = config('auth.providers.users.driver');
$userGuard = config('auth.defaults.guard');
$remoteHeader = $userGuard === 'remote_user_guard' ? config('auth.guard_header') : 'N/A';
$remoteMailHeader = $userGuard === 'remote_user_guard' ? config('auth.guard_email') : 'N/A';
$userLanguage = app('steam')->getLanguage();
$userLocale = app('steam')->getLocale();
$userAgent = $request->header('user-agent');
$stateful = join(', ', config('sanctum.stateful'));
// expected + found DB version:
// some new vars.
$isDocker = env('IS_DOCKER', false);
// set languages, see what happens:
$original = setlocale(LC_ALL, 0);
$localeAttempts = [];
$parts = app('steam')->getLocaleArray(app('steam')->getLocale());
foreach ($parts as $code) {
$code = trim($code);
Log::debug(sprintf('Trying to set %s', $code));
$localeAttempts[$code] = var_export(setlocale(LC_ALL, $code), true);
}
setlocale(LC_ALL, $original);
$table = $this->generateTable();
$table = str_replace(["\n", "\t", ' '], '', $table);
$now = now(config('app.timezone'))->format('Y-m-d H:i:s');
// get latest log file:
$logger = Log::driver();
@@ -213,50 +141,190 @@ class DebugController extends Controller
}
if ('' !== $logContent) {
// last few lines
$logContent = 'Truncated from this point <----|' . substr($logContent, -8192);
$logContent = 'Truncated from this point <----|' . substr($logContent, -16384);
}
return view(
'debug',
compact(
'phpVersion',
'localeAttempts',
'expectedDBversion',
'foundDBversion',
'appEnv',
'appDebug',
'logChannel',
'stateful',
'tz',
'uploadSize',
'appLogLevel',
'remoteHeader',
'remoteMailHeader',
'now',
'drivers',
'currentDriver',
'userGuard',
'loginProvider',
'buildNr',
'buildDate',
'baseBuildNr',
'baseBuildDate',
'bcscale',
'userAgent',
'displayErrors',
'errorReporting',
'phpOs',
'interface',
'logContent',
'cacheDriver',
'trustedProxies',
'userLanguage',
'userLocale',
'defaultLanguage',
'defaultLocale',
'isDocker'
)
);
return view('debug', compact('table', 'now', 'logContent'));
}
/**
* @return string
*/
private function generateTable(): string
{
// system information:
$system = $this->getSystemInformation();
$docker = $this->getBuildInfo();
$app = $this->getAppInfo();
$user = $this->getuserInfo();
return (string)view('partials.debug-table', compact('system', 'docker', 'app', 'user'));
}
/**
* @return array
*/
private function getSystemInformation(): array
{
$maxFileSize = app('steam')->phpBytes(ini_get('upload_max_filesize'));
$maxPostSize = app('steam')->phpBytes(ini_get('post_max_size'));
$drivers = DB::availableDrivers();
$currentDriver = DB::getDriverName();
return [
'db_version' => app('fireflyconfig')->get('db_version', 1)->data,
'php_version' => PHP_VERSION,
'php_os' => PHP_OS,
'interface' => PHP_SAPI,
'bcscale' => bcscale(),
'display_errors' => ini_get('display_errors'),
'error_reporting' => $this->errorReporting((int)ini_get('error_reporting')),
'upload_size' => min($maxFileSize, $maxPostSize),
'all_drivers' => $drivers,
'current_driver' => $currentDriver,
];
}
/**
* @return array
*/
private function getBuildInfo(): array
{
$return = [
'is_docker' => env('IS_DOCKER', false),
'build' => '(unknown)',
'build_date' => '(unknown)',
'base_build' => '(unknown)',
'base_build_date' => '(unknown)',
];
try {
if (file_exists('/var/www/counter-main.txt')) {
$return['build'] = trim(file_get_contents('/var/www/counter-main.txt'));
}
} catch (Exception $e) { // generic catch for open basedir.
Log::debug('Could not check build counter, but thats ok.');
Log::warning($e->getMessage());
}
try {
if (file_exists('/var/www/build-date-main.txt')) {
$return['build_date'] = trim(file_get_contents('/var/www/build-date-main.txt'));
}
} catch (Exception $e) { // generic catch for open basedir.
Log::debug('Could not check build date, but thats ok.');
Log::warning($e->getMessage());
}
if ('' !== (string)env('BASE_IMAGE_BUILD')) {
$return['base_build'] = env('BASE_IMAGE_BUILD');
}
if ('' !== (string)env('BASE_IMAGE_DATE')) {
$return['base_build_date'] = env('BASE_IMAGE_DATE');
}
return $return;
}
/**
* @return array
*/
private function getAppInfo(): array
{
$userGuard = config('auth.defaults.guard');
return [
'tz' => env('TZ'),
'debug' => var_export(config('app.debug'), true),
'log_channel' => env('LOG_CHANNEL'),
'audit_log_channel' => envNonEmpty('AUDIT_LOG_CHANNEL', '(empty)'),
'default_language' => (string)config('firefly.default_language'),
'default_locale' => (string)config('firefly.default_locale'),
'remote_header' => $userGuard === 'remote_user_guard' ? config('auth.guard_header') : 'N/A',
'remote_mail_header' => $userGuard === 'remote_user_guard' ? config('auth.guard_email') : 'N/A',
'stateful_domains' => join(', ', config('sanctum.stateful')),
];
}
/**
* @return array
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
private function getuserInfo(): array
{
$userFlags = $this->getUserFlags();
// user info
$userAgent = request()->header('user-agent');
// set languages, see what happens:
$original = setlocale(LC_ALL, 0);
$localeAttempts = [];
$parts = app('steam')->getLocaleArray(app('steam')->getLocale());
foreach ($parts as $code) {
$code = trim($code);
Log::debug(sprintf('Trying to set %s', $code));
$result = setlocale(LC_ALL, $code);
$localeAttempts[$code] = $result === $code;
}
setlocale(LC_ALL, $original);
return [
'user_id' => auth()->user()->id,
'user_count' => User::count(),
'user_flags' => $userFlags,
'user_agent' => $userAgent,
'locale_attempts' => $localeAttempts,
'locale' => app('steam')->getLocale(),
'language' => app('steam')->getLanguage(),
'view_range' => app('preferences')->get('viewRange', '1M')->data,
];
}
/**
* @return string
*/
private function getUserFlags(): string
{
$flags = [];
/** @var User $user */
$user = auth()->user();
// has liabilities
if ($user->accounts()->accountTypeIn([AccountType::DEBT, AccountType::LOAN, AccountType::MORTGAGE])->count() > 0) {
$flags[] = ':credit_card:';
}
// has piggies
if ($user->piggyBanks()->count() > 0) {
$flags[] = ':pig:';
}
// has stored reconciliations
$type = TransactionType::whereType(TransactionType::RECONCILIATION)->first();
if ($user->transactionJournals()->where('transaction_type_id', $type->id)->count()) {
$flags[] = ':ledger:';
}
// has used importer?
// has rules
if ($user->rules()->count() > 0) {
$flags[] = ':wrench:';
}
// has recurring transactions
if ($user->recurrences()->count() > 0) {
$flags[] = ':clock130:';
}
// has groups
if ($user->objectGroups()->count() > 0) {
$flags[] = ':bookmark_tabs:';
}
// uses bills
if ($user->bills()->count() > 0) {
$flags[] = ':email:';
}
return join(' ', $flags);
}
/**
@@ -275,4 +343,5 @@ class DebugController extends Controller
return redirect(route('home'));
}
}

View File

@@ -83,7 +83,7 @@ class OperationsRepository implements OperationsRepositoryInterface
// info about the currency:
$array[$currencyId] = $array[$currencyId] ?? [
'categories' => [],
'currency_id' => $currencyId,
'currency_id' => (string)$currencyId,
'currency_name' => $journal['currency_name'],
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],
@@ -92,7 +92,7 @@ class OperationsRepository implements OperationsRepositoryInterface
// info about the categories:
$array[$currencyId]['categories'][$categoryId] = $array[$currencyId]['categories'][$categoryId] ?? [
'id' => $categoryId,
'id' => (string)$categoryId,
'name' => $categoryName,
'transaction_journals' => [],
];
@@ -103,13 +103,13 @@ class OperationsRepository implements OperationsRepositoryInterface
$array[$currencyId]['categories'][$categoryId]['transaction_journals'][$journalId] = [
'amount' => app('steam')->negative($journal['amount']),
'date' => $journal['date'],
'source_account_id' => $journal['source_account_id'],
'source_account_id' => (string)$journal['source_account_id'],
'budget_name' => $journal['budget_name'],
'source_account_name' => $journal['source_account_name'],
'destination_account_id' => $journal['destination_account_id'],
'destination_account_id' => (string)$journal['destination_account_id'],
'destination_account_name' => $journal['destination_account_name'],
'description' => $journal['description'],
'transaction_group_id' => $journal['transaction_group_id'],
'transaction_group_id' => (string)$journal['transaction_group_id'],
];
}
@@ -179,7 +179,7 @@ class OperationsRepository implements OperationsRepositoryInterface
// info about the currency:
$array[$currencyId] = $array[$currencyId] ?? [
'categories' => [],
'currency_id' => $currencyId,
'currency_id' => (string)$currencyId,
'currency_name' => $journal['currency_name'],
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],
@@ -188,7 +188,7 @@ class OperationsRepository implements OperationsRepositoryInterface
// info about the categories:
$array[$currencyId]['categories'][$categoryId] = $array[$currencyId]['categories'][$categoryId] ?? [
'id' => $categoryId,
'id' => (string)$categoryId,
'name' => $categoryName,
'transaction_journals' => [],
];
@@ -199,12 +199,12 @@ class OperationsRepository implements OperationsRepositoryInterface
$array[$currencyId]['categories'][$categoryId]['transaction_journals'][$journalId] = [
'amount' => app('steam')->positive($journal['amount']),
'date' => $journal['date'],
'source_account_id' => $journal['source_account_id'],
'destination_account_id' => $journal['destination_account_id'],
'source_account_id' => (string)$journal['source_account_id'],
'destination_account_id' => (string)$journal['destination_account_id'],
'source_account_name' => $journal['source_account_name'],
'destination_account_name' => $journal['destination_account_name'],
'description' => $journal['description'],
'transaction_group_id' => $journal['transaction_group_id'],
'transaction_group_id' => (string)$journal['transaction_group_id'],
];
}
@@ -243,7 +243,7 @@ class OperationsRepository implements OperationsRepositoryInterface
// info about the currency:
$array[$currencyId] = $array[$currencyId] ?? [
'categories' => [],
'currency_id' => $currencyId,
'currency_id' => (string)$currencyId,
'currency_name' => $journal['currency_name'],
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],
@@ -252,7 +252,7 @@ class OperationsRepository implements OperationsRepositoryInterface
// info about the categories:
$array[$currencyId]['categories'][$categoryId] = $array[$currencyId]['categories'][$categoryId] ?? [
'id' => $categoryId,
'id' => (string)$categoryId,
'name' => $categoryName,
'transaction_journals' => [],
];
@@ -263,13 +263,13 @@ class OperationsRepository implements OperationsRepositoryInterface
$array[$currencyId]['categories'][$categoryId]['transaction_journals'][$journalId] = [
'amount' => app('steam')->positive($journal['amount']),
'date' => $journal['date'],
'source_account_id' => $journal['source_account_id'],
'source_account_id' => (string)$journal['source_account_id'],
'category_name' => $journal['category_name'],
'source_account_name' => $journal['source_account_name'],
'destination_account_id' => $journal['destination_account_id'],
'destination_account_id' => (string)$journal['destination_account_id'],
'destination_account_name' => $journal['destination_account_name'],
'description' => $journal['description'],
'transaction_group_id' => $journal['transaction_group_id'],
'transaction_group_id' => (string)$journal['transaction_group_id'],
];
}
@@ -308,7 +308,7 @@ class OperationsRepository implements OperationsRepositoryInterface
// info about the currency:
$array[$currencyId] = $array[$currencyId] ?? [
'categories' => [],
'currency_id' => $currencyId,
'currency_id' => (string)$currencyId,
'currency_name' => $journal['currency_name'],
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],
@@ -317,7 +317,7 @@ class OperationsRepository implements OperationsRepositoryInterface
// info about the categories:
$array[$currencyId]['categories'][$categoryId] = $array[$currencyId]['categories'][$categoryId] ?? [
'id' => $categoryId,
'id' => (string)$categoryId,
'name' => $categoryName,
'transaction_journals' => [],
];
@@ -328,13 +328,13 @@ class OperationsRepository implements OperationsRepositoryInterface
$array[$currencyId]['categories'][$categoryId]['transaction_journals'][$journalId] = [
'amount' => app('steam')->negative($journal['amount']),
'date' => $journal['date'],
'source_account_id' => $journal['source_account_id'],
'source_account_id' => (string)$journal['source_account_id'],
'category_name' => $journal['category_name'],
'source_account_name' => $journal['source_account_name'],
'destination_account_id' => $journal['destination_account_id'],
'destination_account_id' => (string)$journal['destination_account_id'],
'destination_account_name' => $journal['destination_account_name'],
'description' => $journal['description'],
'transaction_group_id' => $journal['transaction_group_id'],
'transaction_group_id' => (string)$journal['transaction_group_id'],
];
}
@@ -373,7 +373,7 @@ class OperationsRepository implements OperationsRepositoryInterface
$currencyId = (int)$journal['currency_id'];
$array[$currencyId] = $array[$currencyId] ?? [
'sum' => '0',
'currency_id' => $currencyId,
'currency_id' => (string)$currencyId,
'currency_name' => $journal['currency_name'],
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],
@@ -416,7 +416,7 @@ class OperationsRepository implements OperationsRepositoryInterface
$currencyId = (int)$journal['currency_id'];
$array[$currencyId] = $array[$currencyId] ?? [
'sum' => '0',
'currency_id' => $currencyId,
'currency_id' => (string)$currencyId,
'currency_name' => $journal['currency_name'],
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],
@@ -459,7 +459,7 @@ class OperationsRepository implements OperationsRepositoryInterface
$currencyId = (int)$journal['currency_id'];
$array[$currencyId] = $array[$currencyId] ?? [
'sum' => '0',
'currency_id' => $currencyId,
'currency_id' => (string)$currencyId,
'currency_name' => $journal['currency_name'],
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],

View File

@@ -0,0 +1,58 @@
<?php
/**
* AccountList.php
* Copyright (c) 2019 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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/>.
*/
declare(strict_types=1);
namespace FireflyIII\Support\Binder;
use FireflyIII\Models\Bill;
use FireflyIII\User;
use Illuminate\Routing\Route;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Class UserGroupBill.
*/
class UserGroupBill implements BinderInterface
{
/**
* @param string $value
* @param Route $route
*
* @return Bill
* @throws NotFoundHttpException
*
*/
public static function routeBinder(string $value, Route $route): Bill
{
if (auth()->check()) {
/** @var User $user */
$user = auth()->user();
$currency = Bill::where('id', (int)$value)
->where('user_group_id', $user->user_group_id)
->first();
if (null !== $currency) {
return $currency;
}
}
throw new NotFoundHttpException();
}
}

View File

@@ -78,7 +78,7 @@ class AutoBudgetCronjob extends AbstractCronjob
{
Log::info(sprintf('Will now fire auto budget cron job task for date "%s".', $this->date->format('Y-m-d')));
/** @var CreateAutoBudgetLimits $job */
$job = app(CreateAutoBudgetLimits::class);
$job = app(CreateAutoBudgetLimits::class, [$this->date]);
$job->setDate($this->date);
$job->handle();

View File

@@ -54,7 +54,7 @@ trait RuleManagement
'rules.partials.action',
[
'oldAction' => $oldAction['type'],
'oldValue' => $oldAction['value'],
'oldValue' => $oldAction['value'] ?? '',
'oldChecked' => 1 === (int)($oldAction['stop_processing'] ?? '0'),
'count' => $index + 1,
]

View File

@@ -83,6 +83,17 @@ class SetBudget implements ActionInterface
return false;
}
// find previous budget
/** @var TransactionJournal $object */
$object = $user->transactionJournals()->find($journal['transaction_journal_id']);
$oldBudget = $object->budgets()->first();
$oldBudgetName = $oldBudget?->name;
if ((int)$oldBudget?->id === (int)$budget->id) {
event(new RuleActionFailedOnArray($this->action, $journal, trans('rules.already_linked_to_budget', ['name' => $budget->name])));
return false;
}
Log::debug(
sprintf('RuleAction SetBudget set the budget of journal #%d to budget #%d ("%s").', $journal['transaction_journal_id'], $budget->id, $budget->name)
);
@@ -92,7 +103,7 @@ class SetBudget implements ActionInterface
/** @var TransactionJournal $object */
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
event(new TriggeredAuditLog($this->action->rule, $object, 'set_budget', null, $budget->name));
event(new TriggeredAuditLog($this->action->rule, $object, 'set_budget', $oldBudgetName, $budget->name));
return true;
}

View File

@@ -87,12 +87,22 @@ class SetCategory implements ActionInterface
)
);
// find previous category
/** @var TransactionJournal $object */
$object = $user->transactionJournals()->find($journal['transaction_journal_id']);
$oldCategory = $object->categories()->first();
$oldCategoryName = $oldCategory?->name;
if ((int)$oldCategory?->id === (int)$category->id) {
event(new RuleActionFailedOnArray($this->action, $journal, trans('rules.already_linked_to_category', ['name' => $category->name])));
return false;
}
DB::table('category_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete();
DB::table('category_transaction_journal')->insert(['transaction_journal_id' => $journal['transaction_journal_id'], 'category_id' => $category->id]);
/** @var TransactionJournal $object */
$object = TransactionJournal::where('user_id', $journal['user_id'])->find($journal['transaction_journal_id']);
event(new TriggeredAuditLog($this->action->rule, $object, 'set_category', null, $category->name));
event(new TriggeredAuditLog($this->action->rule, $object, 'set_category', $oldCategoryName, $category->name));
return true;
}

View File

@@ -28,9 +28,11 @@ use Carbon\CarbonInterface;
use FireflyIII\Models\Bill;
use FireflyIII\Models\Note;
use FireflyIII\Models\ObjectGroup;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Log;
@@ -40,6 +42,7 @@ use Log;
*/
class BillTransformer extends AbstractTransformer
{
private ExchangeRateConverter $converter;
private array $currencies;
private TransactionCurrency $default;
private array $groups;
@@ -102,21 +105,71 @@ class BillTransformer extends AbstractTransformer
];
}
$this->default = app('amount')->getDefaultCurrency();
$this->default = app('amount')->getDefaultCurrency();
$this->converter = new ExchangeRateConverter();
// grab all paid dates:
if (null !== $this->parameters->get('start') && null !== $this->parameters->get('end')) {
$journals = TransactionJournal::whereIn('bill_id', $bills)
->where('date', '>=', $this->parameters->get('start'))
->where('date', '<=', $this->parameters->get('end'))
->get(['transaction_journals.id', 'transaction_journals.transaction_group_id', 'transaction_journals.date', 'transaction_journals.bill_id']);
$journals = TransactionJournal::whereIn('bill_id', $bills)
->where('date', '>=', $this->parameters->get('start'))
->where('date', '<=', $this->parameters->get('end'))
->get(['transaction_journals.id', 'transaction_journals.transaction_group_id', 'transaction_journals.date', 'transaction_journals.bill_id']);
$journalIds = $journals->pluck('id')->toArray();
// grab transactions for amount:
$set = Transaction::whereIn('transaction_journal_id', $journalIds)
->where('transactions.amount', '<', 0)
->get(['transactions.id', 'transactions.transaction_journal_id', 'transactions.amount', 'transactions.foreign_amount', 'transactions.transaction_currency_id', 'transactions.foreign_currency_id']);
// convert to array for easy finding:
$transactions = [];
/** @var Transaction $transaction */
foreach ($set as $transaction) {
$journalId = (int)$transaction->transaction_journal_id;
$transactions[$journalId] = $transaction->toArray();
}
/** @var TransactionJournal $journal */
foreach ($journals as $journal) {
$billId = (int)$journal->bill_id;
$transaction = $transactions[(int)$journal->id] ?? [];
$billId = (int)$journal->bill_id;
$currencyId = (int)$transaction['transaction_currency_id'] ?? 0;
$currencies[$currencyId] = $currencies[$currencyId] ?? TransactionCurrency::find($currencyId);
// foreign currency
$foreignCurrencyId = null;
$foreignCurrencyCode = null;
$foreignCurrencyName = null;
$foreignCurrencySymbol = null;
$foreignCurrencyDp = null;
if (null !== $transaction['foreign_currency_id']) {
$foreignCurrencyId = (int)$transaction['foreign_currency_id'];
$currencies[$foreignCurrencyId] = $currencies[$foreignCurrencyId] ?? TransactionCurrency::find($foreignCurrencyId);
$foreignCurrencyCode = $currencies[$foreignCurrencyId]->code;
$foreignCurrencyName = $currencies[$foreignCurrencyId]->name;
$foreignCurrencySymbol = $currencies[$foreignCurrencyId]->symbol;
$foreignCurrencyDp = (int)$currencies[$foreignCurrencyId]->decimal_places;
}
$this->paidDates[$billId][] = [
'transaction_group_id' => (string)$journal->id,
'transaction_journal_id' => (string)$journal->transaction_group_id,
'date' => $journal->date->toAtomString(),
'transaction_group_id' => (string)$journal->id,
'transaction_journal_id' => (string)$journal->transaction_group_id,
'date' => $journal->date->toAtomString(),
'currency_id' => (int)$currencies[$currencyId]->id,
'currency_code' => $currencies[$currencyId]->code,
'currency_name' => $currencies[$currencyId]->name,
'currency_symbol' => $currencies[$currencyId]->symbol,
'currency_decimal_places' => (int)$currencies[$currencyId]->decimal_places,
'native_id' => (int)$currencies[$currencyId]->id,
'native_code' => $currencies[$currencyId]->code,
'native_symbol' => $currencies[$currencyId]->symbol,
'native_decimal_places' => (int)$currencies[$currencyId]->decimal_places,
'foreign_currency_id' => $foreignCurrencyId,
'foreign_currency_code' => $foreignCurrencyCode,
'foreign_currency_name' => $foreignCurrencyName,
'foreign_currency_symbol' => $foreignCurrencySymbol,
'foreign_currency_decimal_places' => $foreignCurrencyDp,
'amount' => $transaction['amount'],
'foreign_amount' => $transaction['foreign_amount'],
'native_amount' => $this->converter->convert($currencies[$currencyId], $this->default, $journal->date, $transaction['amount']),
'foreign_native_amount' => null === $transaction['foreign_amount'] ? null : $this->converter->convert($currencies[$foreignCurrencyId], $this->default, $journal->date, $transaction['foreign_amount']),
];
}
}
@@ -131,11 +184,19 @@ class BillTransformer extends AbstractTransformer
*/
public function transform(Bill $bill): array
{
$paidData = $this->paidDates[(int)$bill->id] ?? [];
$nextExpectedMatch = $this->nextExpectedMatch($bill, $this->paidDates[(int)$bill->id] ?? []);
$payDates = $this->payDates($bill);
$currency = $this->currencies[(int)$bill->transaction_currency_id];
$group = $this->groups[(int)$bill->id] ?? null;
$paidData = $this->paidDates[(int)$bill->id] ?? [];
$nextExpectedMatch = $this->nextExpectedMatch($bill, $this->paidDates[(int)$bill->id] ?? []);
$payDates = $this->payDates($bill);
$currency = $this->currencies[(int)$bill->transaction_currency_id];
$group = $this->groups[(int)$bill->id] ?? null;
// date for currency conversion
/** @var Carbon|null $startParam */
$startParam = $this->parameters->get('start');
/** @var Carbon|null $start */
$date = null === $startParam ? today() : clone $startParam;
$nextExpectedMatchDiff = $this->getNextExpectedMatchDiff($nextExpectedMatch, $payDates);
return [
'id' => (int)$bill->id,
@@ -144,10 +205,18 @@ class BillTransformer extends AbstractTransformer
'name' => $bill->name,
'amount_min' => app('steam')->bcround($bill->amount_min, $currency->decimal_places),
'amount_max' => app('steam')->bcround($bill->amount_max, $currency->decimal_places),
'native_amount_min' => $this->converter->convert($currency, $this->default, $date, $bill->amount_min),
'native_amount_max' => $this->converter->convert($currency, $this->default, $date, $bill->amount_max),
'currency_id' => (string)$bill->transaction_currency_id,
'currency_code' => $currency->code,
'currency_name' => $currency->name,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => (int)$currency->decimal_places,
'native_id' => $this->default->id,
'native_code' => $this->default->code,
'native_name' => $this->default->name,
'native_symbol' => $this->default->symbol,
'native_decimal_places' => (int)$this->default->decimal_places,
'date' => $bill->date->toAtomString(),
'end_date' => $bill->end_date?->toAtomString(),
'extension_date' => $bill->extension_date?->toAtomString(),
@@ -185,8 +254,11 @@ class BillTransformer extends AbstractTransformer
// 2023-07-1 sub one day from the start date to fix a possible bug (see #7704)
// 2023-07-18 this particular date is used to search for the last paid date.
// 2023-07-18 the cloned $searchDate is used to grab the correct transactions.
/** @var Carbon $start */
$start = clone $this->parameters->get('start');
/** @var Carbon|null $startParam */
$startParam = $this->parameters->get('start');
/** @var Carbon|null $start */
$start = null === $startParam ? today() : clone $startParam;
$start->subDay();
$lastPaidDate = $this->lastPaidDate($dates, $start);

View File

@@ -126,10 +126,10 @@ trait DepositValidation
$result = false;
}
// if there is an iban, it can only be in use by a revenue account, or we will fail.
// if there is an iban, it can only be in use by a valid source type, or we will fail.
if (null !== $accountIban && '' !== $accountIban) {
app('log')->debug('Check if there is not already an account with this IBAN');
$existing = $this->findExistingAccount([AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE], ['iban' => $accountIban]);
$existing = $this->findExistingAccount($validTypes, ['iban' => $accountIban], true);
if (null !== $existing) {
$this->sourceError = (string)trans('validation.deposit_src_iban_exists');
return false;

View File

@@ -90,13 +90,15 @@ trait WithdrawalValidation
*/
protected function validateWithdrawalDestination(array $array): bool
{
$accountId = array_key_exists('id', $array) ? $array['id'] : null;
$accountName = array_key_exists('name', $array) ? $array['name'] : null;
$accountIban = array_key_exists('iban', $array) ? $array['iban'] : null;
$accountId = array_key_exists('id', $array) ? $array['id'] : null;
$accountName = array_key_exists('name', $array) ? $array['name'] : null;
$accountIban = array_key_exists('iban', $array) ? $array['iban'] : null;
$accountNumber = array_key_exists('number', $array) ? $array['number'] : null;
Log::debug('Now in validateWithdrawalDestination()', $array);
// source can be any of the following types.
$validTypes = $this->combinations[$this->transactionType][$this->source->accountType->type] ?? [];
if (null === $accountId && null === $accountName && null === $accountIban && false === $this->canCreateTypes($validTypes)) {
app('log')->debug('Source type can be: ', $validTypes);
if (null === $accountId && null === $accountName && null === $accountIban && null === $accountNumber && false === $this->canCreateTypes($validTypes)) {
// if both values are NULL return false,
// because the destination of a withdrawal can never be created automatically.
$this->destError = (string)trans('validation.withdrawal_dest_need_data');
@@ -113,15 +115,18 @@ trait WithdrawalValidation
$this->setDestination($found);
return true;
}
// todo explain error in log message.
$this->destError = (string)trans('validation.withdrawal_dest_bad_data', ['id' => $accountId, 'name' => $accountName]);
return false;
}
}
// if there is an iban, it can only be in use by a revenue account or we will fail.
// if there is an iban, it can only be in use by a valid destination type, or we will fail.
// the inverse of $validTypes is
if (null !== $accountIban && '' !== $accountIban) {
app('log')->debug('Check if there is not already an account with this IBAN');
$existing = $this->findExistingAccount([AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE], ['iban' => $accountIban]);
// the inverse flag reverses the search, searching for everything that is NOT a valid type.
$existing = $this->findExistingAccount($validTypes, ['iban' => $accountIban], true);
if (null !== $existing) {
$this->destError = (string)trans('validation.withdrawal_dest_iban_exists');
return false;

View File

@@ -250,12 +250,14 @@ class AccountValidator
/**
* @param array $validTypes
* @param array $data
* @param bool $inverse
*
* @return Account|null
*/
protected function findExistingAccount(array $validTypes, array $data): ?Account
protected function findExistingAccount(array $validTypes, array $data, bool $inverse = false): ?Account
{
Log::debug('Now in findExistingAccount', $data);
app('log')->debug('The search will be reversed!');
$accountId = array_key_exists('id', $data) ? $data['id'] : null;
$accountIban = array_key_exists('iban', $data) ? $data['iban'] : null;
$accountNumber = array_key_exists('number', $data) ? $data['number'] : null;
@@ -264,7 +266,9 @@ class AccountValidator
// find by ID
if (null !== $accountId && $accountId > 0) {
$first = $this->accountRepository->find($accountId);
if ((null !== $first) && in_array($first->accountType->type, $validTypes, true)) {
$check = in_array($first->accountType->type, $validTypes, true);
$check = $inverse ? !$check : $check; // reverse the validation check if necessary.
if ((null !== $first) && $check) {
app('log')->debug(sprintf('ID: Found %s account #%d ("%s", IBAN "%s")', $first->accountType->type, $first->id, $first->name, $first->iban ?? 'no iban'));
return $first;
}
@@ -273,7 +277,9 @@ class AccountValidator
// find by iban
if (null !== $accountIban && '' !== (string)$accountIban) {
$first = $this->accountRepository->findByIbanNull($accountIban, $validTypes);
if ((null !== $first) && in_array($first->accountType->type, $validTypes, true)) {
$check = in_array($first->accountType->type, $validTypes, true);
$check = $inverse ? !$check : $check; // reverse the validation check if necessary.
if ((null !== $first) && $check) {
app('log')->debug(sprintf('Iban: Found %s account #%d ("%s", IBAN "%s")', $first->accountType->type, $first->id, $first->name, $first->iban ?? 'no iban'));
return $first;
}
@@ -282,7 +288,9 @@ class AccountValidator
// find by number
if (null !== $accountNumber && '' !== (string)$accountNumber) {
$first = $this->accountRepository->findByAccountNumber($accountNumber, $validTypes);
if ((null !== $first) && in_array($first->accountType->type, $validTypes, true)) {
$check = in_array($first->accountType->type, $validTypes, true);
$check = $inverse ? !$check : $check; // reverse the validation check if necessary.
if ((null !== $first) && $check) {
app('log')->debug(sprintf('Number: Found %s account #%d ("%s", IBAN "%s")', $first->accountType->type, $first->id, $first->name, $first->iban ?? 'no iban'));
return $first;
}

View File

@@ -3,6 +3,29 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## 6.0.24 - 2023-09-16
### Fixed
- [Issue 7920](https://github.com/firefly-iii/firefly-iii/issues/7920) Issues with automatic budgets
- [Issue 7940](https://github.com/firefly-iii/firefly-iii/issues/7940) Edge cases in the data import routine
- [Issue 7963](https://github.com/firefly-iii/firefly-iii/issues/7963) Fix audit items for rules
- Fixed all issues with relative URLs (which I caused myself)
### API
- [Issue 7944](https://github.com/firefly-iii/firefly-iii/issues/7944) Make sure all IDs are strings in the API
## 6.0.23 - 2023-09-04
### Changed
- New debug information tables are in HTML
### Fixed
- Remove extra slashes from paths, breaking CSS
## 6.0.22 - 2023-09-02
### API
@@ -15,7 +38,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Rules will now report failures if a Slack/Discord notification channel is configured
- Notifications can be sent to Discord
- Beta layout `v2`, activate with `FIRELY_III_LAYOUT=v2`
- Beta layout `v2`, activate with `FIREFLY_III_LAYOUT=v2`
### Changed

View File

@@ -90,7 +90,7 @@
"jc5/recovery": "^2",
"laravel/framework": "^10",
"laravel/passport": "11.*",
"laravel/sanctum": "^3.2",
"laravel/sanctum": "^3.3",
"laravel/slack-notification-channel": "^3",
"laravel/ui": "^4.2",
"league/commonmark": "2.*",

173
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "8d6d03ba7c6916497caf509f8b97a140",
"content-hash": "351a9da77c2fa38c0f4f13ef059926ee",
"packages": [
{
"name": "bacon/bacon-qr-code",
@@ -1939,16 +1939,16 @@
},
{
"name": "laravel/framework",
"version": "v10.21.0",
"version": "v10.23.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "96b15c7ac382a9adb4a56d40c640e782d669a112"
"reference": "dbfd495557678759153e8d71cc2f6027686ca51e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/96b15c7ac382a9adb4a56d40c640e782d669a112",
"reference": "96b15c7ac382a9adb4a56d40c640e782d669a112",
"url": "https://api.github.com/repos/laravel/framework/zipball/dbfd495557678759153e8d71cc2f6027686ca51e",
"reference": "dbfd495557678759153e8d71cc2f6027686ca51e",
"shasum": ""
},
"require": {
@@ -2048,7 +2048,7 @@
"league/flysystem-read-only": "^3.3",
"league/flysystem-sftp-v3": "^3.0",
"mockery/mockery": "^1.5.1",
"orchestra/testbench-core": "^8.4",
"orchestra/testbench-core": "^8.10",
"pda/pheanstalk": "^4.0",
"phpstan/phpstan": "^1.4.7",
"phpunit/phpunit": "^10.0.7",
@@ -2135,7 +2135,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2023-08-29T13:55:56+00:00"
"time": "2023-09-13T14:51:46+00:00"
},
{
"name": "laravel/passport",
@@ -2217,16 +2217,16 @@
},
{
"name": "laravel/prompts",
"version": "v0.1.6",
"version": "v0.1.7",
"source": {
"type": "git",
"url": "https://github.com/laravel/prompts.git",
"reference": "b514c5620e1b3b61221b0024dc88def26d9654f4"
"reference": "554e7d855a22e87942753d68e23b327ad79b2070"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/prompts/zipball/b514c5620e1b3b61221b0024dc88def26d9654f4",
"reference": "b514c5620e1b3b61221b0024dc88def26d9654f4",
"url": "https://api.github.com/repos/laravel/prompts/zipball/554e7d855a22e87942753d68e23b327ad79b2070",
"reference": "554e7d855a22e87942753d68e23b327ad79b2070",
"shasum": ""
},
"require": {
@@ -2259,22 +2259,22 @@
],
"support": {
"issues": "https://github.com/laravel/prompts/issues",
"source": "https://github.com/laravel/prompts/tree/v0.1.6"
"source": "https://github.com/laravel/prompts/tree/v0.1.7"
},
"time": "2023-08-18T13:32:23+00:00"
"time": "2023-09-12T11:09:22+00:00"
},
{
"name": "laravel/sanctum",
"version": "v3.2.6",
"version": "v3.3.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/sanctum.git",
"reference": "217e8a2bc5aa6a827ced97fcb76504029d3115d7"
"reference": "338f633e6487e76b255470d3373fbc29228aa971"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/sanctum/zipball/217e8a2bc5aa6a827ced97fcb76504029d3115d7",
"reference": "217e8a2bc5aa6a827ced97fcb76504029d3115d7",
"url": "https://api.github.com/repos/laravel/sanctum/zipball/338f633e6487e76b255470d3373fbc29228aa971",
"reference": "338f633e6487e76b255470d3373fbc29228aa971",
"shasum": ""
},
"require": {
@@ -2327,7 +2327,7 @@
"issues": "https://github.com/laravel/sanctum/issues",
"source": "https://github.com/laravel/sanctum"
},
"time": "2023-08-22T13:21:11+00:00"
"time": "2023-09-07T15:46:33+00:00"
},
{
"name": "laravel/serializable-closure",
@@ -2987,16 +2987,16 @@
},
{
"name": "league/flysystem",
"version": "3.15.1",
"version": "3.16.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "a141d430414fcb8bf797a18716b09f759a385bed"
"reference": "4fdf372ca6b63c6e281b1c01a624349ccb757729"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a141d430414fcb8bf797a18716b09f759a385bed",
"reference": "a141d430414fcb8bf797a18716b09f759a385bed",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4fdf372ca6b63c6e281b1c01a624349ccb757729",
"reference": "4fdf372ca6b63c6e281b1c01a624349ccb757729",
"shasum": ""
},
"require": {
@@ -3005,6 +3005,8 @@
"php": "^8.0.2"
},
"conflict": {
"async-aws/core": "<1.19.0",
"async-aws/s3": "<1.14.0",
"aws/aws-sdk-php": "3.209.31 || 3.210.0",
"guzzlehttp/guzzle": "<7.0",
"guzzlehttp/ringphp": "<1.1.1",
@@ -3024,7 +3026,7 @@
"microsoft/azure-storage-blob": "^1.1",
"phpseclib/phpseclib": "^3.0.14",
"phpstan/phpstan": "^0.12.26",
"phpunit/phpunit": "^9.5.11",
"phpunit/phpunit": "^9.5.11|^10.0",
"sabre/dav": "^4.3.1"
},
"type": "library",
@@ -3059,7 +3061,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.15.1"
"source": "https://github.com/thephpleague/flysystem/tree/3.16.0"
},
"funding": [
{
@@ -3071,20 +3073,20 @@
"type": "github"
}
],
"time": "2023-05-04T09:04:26+00:00"
"time": "2023-09-07T19:22:17+00:00"
},
{
"name": "league/flysystem-local",
"version": "3.15.0",
"version": "3.16.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
"reference": "543f64c397fefdf9cfeac443ffb6beff602796b3"
"reference": "ec7383f25642e6fd4bb0c9554fc2311245391781"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/543f64c397fefdf9cfeac443ffb6beff602796b3",
"reference": "543f64c397fefdf9cfeac443ffb6beff602796b3",
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/ec7383f25642e6fd4bb0c9554fc2311245391781",
"reference": "ec7383f25642e6fd4bb0c9554fc2311245391781",
"shasum": ""
},
"require": {
@@ -3119,7 +3121,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem-local/issues",
"source": "https://github.com/thephpleague/flysystem-local/tree/3.15.0"
"source": "https://github.com/thephpleague/flysystem-local/tree/3.16.0"
},
"funding": [
{
@@ -3131,7 +3133,7 @@
"type": "github"
}
],
"time": "2023-05-02T20:02:14+00:00"
"time": "2023-08-30T10:23:59+00:00"
},
{
"name": "league/fractal",
@@ -3349,20 +3351,20 @@
},
{
"name": "league/uri",
"version": "7.2.1",
"version": "7.3.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri.git",
"reference": "8b644f8ff80352530bbc0ea467d5b5a89b60d832"
"reference": "36743c3961bb82bf93da91917b6bced0358a8d45"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/uri/zipball/8b644f8ff80352530bbc0ea467d5b5a89b60d832",
"reference": "8b644f8ff80352530bbc0ea467d5b5a89b60d832",
"url": "https://api.github.com/repos/thephpleague/uri/zipball/36743c3961bb82bf93da91917b6bced0358a8d45",
"reference": "36743c3961bb82bf93da91917b6bced0358a8d45",
"shasum": ""
},
"require": {
"league/uri-interfaces": "^7.2",
"league/uri-interfaces": "^7.3",
"php": "^8.1"
},
"conflict": {
@@ -3427,7 +3429,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
"source": "https://github.com/thephpleague/uri/tree/7.2.1"
"source": "https://github.com/thephpleague/uri/tree/7.3.0"
},
"funding": [
{
@@ -3435,20 +3437,20 @@
"type": "github"
}
],
"time": "2023-08-30T21:06:57+00:00"
"time": "2023-09-09T17:21:43+00:00"
},
{
"name": "league/uri-interfaces",
"version": "7.2.0",
"version": "7.3.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri-interfaces.git",
"reference": "43fa071050fcba89aefb5d4789a4a5a73874c44b"
"reference": "c409b60ed2245ff94c965a8c798a60166db53361"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/43fa071050fcba89aefb5d4789a4a5a73874c44b",
"reference": "43fa071050fcba89aefb5d4789a4a5a73874c44b",
"url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c409b60ed2245ff94c965a8c798a60166db53361",
"reference": "c409b60ed2245ff94c965a8c798a60166db53361",
"shasum": ""
},
"require": {
@@ -3511,7 +3513,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
"source": "https://github.com/thephpleague/uri-interfaces/tree/7.2.0"
"source": "https://github.com/thephpleague/uri-interfaces/tree/7.3.0"
},
"funding": [
{
@@ -3519,7 +3521,7 @@
"type": "github"
}
],
"time": "2023-08-30T19:43:38+00:00"
"time": "2023-09-09T17:21:43+00:00"
},
{
"name": "mailchimp/transactional",
@@ -3678,16 +3680,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.69.0",
"version": "2.70.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "4308217830e4ca445583a37d1bf4aff4153fa81c"
"reference": "d3298b38ea8612e5f77d38d1a99438e42f70341d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4308217830e4ca445583a37d1bf4aff4153fa81c",
"reference": "4308217830e4ca445583a37d1bf4aff4153fa81c",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d3298b38ea8612e5f77d38d1a99438e42f70341d",
"reference": "d3298b38ea8612e5f77d38d1a99438e42f70341d",
"shasum": ""
},
"require": {
@@ -3780,7 +3782,7 @@
"type": "tidelift"
}
],
"time": "2023-08-03T09:00:52+00:00"
"time": "2023-09-07T16:43:50+00:00"
},
{
"name": "nette/schema",
@@ -4673,16 +4675,16 @@
},
{
"name": "predis/predis",
"version": "v2.2.1",
"version": "v2.2.2",
"source": {
"type": "git",
"url": "https://github.com/predis/predis.git",
"reference": "5f2b410a74afaff296a87a494e4c5488cf9fab57"
"reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/predis/predis/zipball/5f2b410a74afaff296a87a494e4c5488cf9fab57",
"reference": "5f2b410a74afaff296a87a494e4c5488cf9fab57",
"url": "https://api.github.com/repos/predis/predis/zipball/b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1",
"reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1",
"shasum": ""
},
"require": {
@@ -4722,7 +4724,7 @@
],
"support": {
"issues": "https://github.com/predis/predis/issues",
"source": "https://github.com/predis/predis/tree/v2.2.1"
"source": "https://github.com/predis/predis/tree/v2.2.2"
},
"funding": [
{
@@ -4730,7 +4732,7 @@
"type": "github"
}
],
"time": "2023-08-15T23:01:46+00:00"
"time": "2023-09-13T16:42:03+00:00"
},
{
"name": "psr/cache",
@@ -10004,16 +10006,16 @@
},
{
"name": "phpstan/phpdoc-parser",
"version": "1.23.1",
"version": "1.24.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "846ae76eef31c6d7790fac9bc399ecee45160b26"
"reference": "3510b0a6274cc42f7219367cb3abfc123ffa09d6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/846ae76eef31c6d7790fac9bc399ecee45160b26",
"reference": "846ae76eef31c6d7790fac9bc399ecee45160b26",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/3510b0a6274cc42f7219367cb3abfc123ffa09d6",
"reference": "3510b0a6274cc42f7219367cb3abfc123ffa09d6",
"shasum": ""
},
"require": {
@@ -10045,22 +10047,22 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.23.1"
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.0"
},
"time": "2023-08-03T16:32:59+00:00"
"time": "2023-09-07T20:46:32+00:00"
},
{
"name": "phpstan/phpstan",
"version": "1.10.32",
"version": "1.10.34",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "c47e47d3ab03137c0e121e77c4d2cb58672f6d44"
"reference": "7f806b6f1403e6914c778140e2ba07c293cb4901"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/c47e47d3ab03137c0e121e77c4d2cb58672f6d44",
"reference": "c47e47d3ab03137c0e121e77c4d2cb58672f6d44",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/7f806b6f1403e6914c778140e2ba07c293cb4901",
"reference": "7f806b6f1403e6914c778140e2ba07c293cb4901",
"shasum": ""
},
"require": {
@@ -10109,7 +10111,7 @@
"type": "tidelift"
}
],
"time": "2023-08-24T21:54:50+00:00"
"time": "2023-09-13T09:49:47+00:00"
},
{
"name": "phpstan/phpstan-deprecation-rules",
@@ -10210,16 +10212,16 @@
},
{
"name": "phpunit/php-code-coverage",
"version": "10.1.4",
"version": "10.1.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "cd59bb34756a16ca8253ce9b2909039c227fff71"
"reference": "1df504e42a88044c27a90136910f0b3fe9e91939"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/cd59bb34756a16ca8253ce9b2909039c227fff71",
"reference": "cd59bb34756a16ca8253ce9b2909039c227fff71",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1df504e42a88044c27a90136910f0b3fe9e91939",
"reference": "1df504e42a88044c27a90136910f0b3fe9e91939",
"shasum": ""
},
"require": {
@@ -10276,7 +10278,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.4"
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.5"
},
"funding": [
{
@@ -10284,7 +10286,7 @@
"type": "github"
}
],
"time": "2023-08-31T14:04:38+00:00"
"time": "2023-09-12T14:37:22+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -10531,16 +10533,16 @@
},
{
"name": "phpunit/phpunit",
"version": "10.3.2",
"version": "10.3.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "0dafb1175c366dd274eaa9a625e914451506bcd1"
"reference": "b8d59476f19115c9774b3b447f78131781c6c32b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0dafb1175c366dd274eaa9a625e914451506bcd1",
"reference": "0dafb1175c366dd274eaa9a625e914451506bcd1",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b8d59476f19115c9774b3b447f78131781c6c32b",
"reference": "b8d59476f19115c9774b3b447f78131781c6c32b",
"shasum": ""
},
"require": {
@@ -10554,7 +10556,7 @@
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
"php": ">=8.1",
"phpunit/php-code-coverage": "^10.1.1",
"phpunit/php-code-coverage": "^10.1.5",
"phpunit/php-file-iterator": "^4.0",
"phpunit/php-invoker": "^4.0",
"phpunit/php-text-template": "^3.0",
@@ -10612,7 +10614,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.3.2"
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.3.4"
},
"funding": [
{
@@ -10628,7 +10630,7 @@
"type": "tidelift"
}
],
"time": "2023-08-15T05:34:23+00:00"
"time": "2023-09-12T14:42:28+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -11065,16 +11067,16 @@
},
{
"name": "sebastian/exporter",
"version": "5.0.0",
"version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0"
"reference": "32ff03d078fed1279c4ec9a407d08c5e9febb480"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
"reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/32ff03d078fed1279c4ec9a407d08c5e9febb480",
"reference": "32ff03d078fed1279c4ec9a407d08c5e9febb480",
"shasum": ""
},
"require": {
@@ -11130,7 +11132,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"source": "https://github.com/sebastianbergmann/exporter/tree/5.0.0"
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
"source": "https://github.com/sebastianbergmann/exporter/tree/5.0.1"
},
"funding": [
{
@@ -11138,7 +11141,7 @@
"type": "github"
}
],
"time": "2023-02-03T07:06:49+00:00"
"time": "2023-09-08T04:46:58+00:00"
},
{
"name": "sebastian/global-state",

View File

@@ -61,6 +61,7 @@ use FireflyIII\Support\Binder\JournalList;
use FireflyIII\Support\Binder\TagList;
use FireflyIII\Support\Binder\TagOrId;
use FireflyIII\Support\Binder\UserGroupAccount;
use FireflyIII\Support\Binder\UserGroupBill;
use FireflyIII\TransactionRules\Actions\AddTag;
use FireflyIII\TransactionRules\Actions\AppendDescription;
use FireflyIII\TransactionRules\Actions\AppendDescriptionToNotes;
@@ -110,8 +111,8 @@ return [
'handle_debts' => true,
// see cer.php for exchange rates feature flag.
],
'version' => '6.0.22',
'api_version' => '2.0.7',
'version' => '6.0.24',
'api_version' => '2.0.8',
'db_version' => 20,
// generic settings
@@ -480,6 +481,7 @@ return [
// V2 API endpoints:
'userGroupAccount' => UserGroupAccount::class,
'userGroupBill' => UserGroupBill::class,
],

View File

@@ -61,7 +61,6 @@ class ExchangeRateSeeder extends Seeder
if (null !== $foreign) {
// save rate in array:
$usable[] = [$foreign, $rate];
app('log')->debug(sprintf('Have default exchange rate from %s to %s.', $euro->code, $foreign->code));
}
}
unset($rates, $foreign, $rate);

View File

@@ -108,10 +108,10 @@ export default {
"rule_trigger_amount_less_choice": "\u91d1\u984d\u304c...\u4ee5\u4e0b",
"rule_trigger_amount_is_choice": "\u91d1\u984d\u304c\u2026",
"rule_trigger_amount_more_choice": "\u91d1\u984d\u304c...\u4ee5\u4e0a",
"rule_trigger_description_starts_choice": "\u8aac\u660e\u304c\u2026\u3067\u59cb\u307e\u308b",
"rule_trigger_description_ends_choice": "\u8aac\u660e\u304c\u2026\u3067\u7d42\u308f\u308b",
"rule_trigger_description_contains_choice": "\u8aac\u660e\u306b\u2026\u3092\u542b\u3080",
"rule_trigger_description_is_choice": "\u8aac\u660e\u304c\u2026",
"rule_trigger_description_starts_choice": "\u6982\u8981\u304c\u2026\u3067\u59cb\u307e\u308b",
"rule_trigger_description_ends_choice": "\u6982\u8981\u304c\u2026\u3067\u7d42\u308f\u308b",
"rule_trigger_description_contains_choice": "\u6982\u8981\u306b\u2026\u3092\u542b\u3080",
"rule_trigger_description_is_choice": "\u6982\u8981\u304c\u2026",
"rule_trigger_date_on_choice": "\u53d6\u5f15\u65e5\u304c\u2026",
"rule_trigger_date_before_choice": "\u53d6\u5f15\u65e5\u304c\u2026\u3088\u308a\u524d",
"rule_trigger_date_after_choice": "\u53d6\u5f15\u65e5\u304c\u2026\u3088\u308a\u5f8c",
@@ -153,8 +153,8 @@ export default {
"rule_action_remove_all_tags_choice": "\u3059\u3079\u3066\u306e\u30bf\u30b0\u3092\u524a\u9664",
"rule_action_set_description_choice": "\u8aac\u660e\u3092...\u306b\u8a2d\u5b9a",
"rule_action_update_piggy_choice": "\u53d6\u5f15\u91d1\u984d\u3092\u8caf\u91d1\u7bb1...\u306b\u52a0\u7b97\/\u6e1b\u7b97\u3059\u308b",
"rule_action_append_description_choice": "\u8aac\u660e\u306e\u7d42\u308f\u308a\u306b\u2026\u3092\u8ffd\u52a0",
"rule_action_prepend_description_choice": "\u8aac\u660e\u306e\u7d42\u308f\u308a\u306b\u2026\u3092\u8ffd\u52a0",
"rule_action_append_description_choice": "\u6982\u8981\u306e\u7d42\u308f\u308a\u306b\u2026\u3092\u8ffd\u52a0",
"rule_action_prepend_description_choice": "\u6982\u8981\u306e\u7d42\u308f\u308a\u306b\u2026\u3092\u8ffd\u52a0",
"rule_action_set_source_account_choice": "\u5f15\u304d\u51fa\u3057\u53e3\u5ea7\u3092...\u306b\u8a2d\u5b9a",
"rule_action_set_destination_account_choice": "\u9810\u3051\u5165\u308c\u53e3\u5ea7\u3092...\u306b\u8a2d\u5b9a",
"rule_action_append_notes_choice": "\u5099\u8003\u306e\u7d42\u308f\u308a\u306b...\u3092\u8ffd\u52a0",
@@ -188,7 +188,7 @@ export default {
"undefined_accounts": "\u53e3\u5ea7",
"name": "\u540d\u79f0",
"revenue_accounts": "\u53ce\u5165\u53e3\u5ea7",
"description": "\u8aac\u660e",
"description": "\u6982\u8981",
"category": "\u30ab\u30c6\u30b4\u30ea",
"title_deposit": "\u53ce\u76ca \/ \u53ce\u5165",
"title_transfer": "\u9001\u91d1",

View File

@@ -50,8 +50,8 @@ export default {
"transactions": "Transakcije",
"title_expenses": "Stro\u0161ki",
"title_withdrawal": "Stro\u0161ki",
"title_revenue": "Dohodki prihodki",
"title_deposit": "Dohodki\/prihodki",
"title_revenue": "Dohodki \/ prihodki",
"title_deposit": "Dohodki \/ prihodki",
"title_transfer": "Prenosi",
"title_transfers": "Prenosi",
"asset_accounts": "Premo\u017eenjski ra\u010duni",
@@ -72,7 +72,7 @@ export default {
"newTransfer": "Nov prenos",
"submission_options": "Submission options",
"apply_rules_checkbox": "Uporabi pravila",
"fire_webhooks_checkbox": "Fire webhooks",
"fire_webhooks_checkbox": "Spro\u017ei Webhooke",
"newDeposit": "Nov polog",
"newWithdrawal": "Nov stro\u0161ek",
"bills_paid": "Pla\u010dani trajniki",
@@ -152,7 +152,7 @@ export default {
"rule_action_remove_tag_choice": "Odstrani oznako ...",
"rule_action_remove_all_tags_choice": "Odstrani vse oznake",
"rule_action_set_description_choice": "Nastavi opis na ...",
"rule_action_update_piggy_choice": "Add \/ remove transaction amount in piggy bank ..",
"rule_action_update_piggy_choice": "Dodaj\/odstrani znesek transakcije v hranilniku ...",
"rule_action_append_description_choice": "Za opis dodaj ...",
"rule_action_prepend_description_choice": "Pred opis dodaj ...",
"rule_action_set_source_account_choice": "Nastavi izvorni ra\u010dun na ...",
@@ -222,7 +222,7 @@ export default {
"pref_last30": "Zadnjih 30 dni",
"pref_last7": "Zadnjih 7 dni",
"pref_YTD": "Leto do datuma",
"pref_QTD": "Quarter to date",
"pref_MTD": "Month to date"
"pref_QTD": "\u010cetrtletje do danes",
"pref_MTD": "Mesec do datuma"
}
}

View File

@@ -27,7 +27,7 @@ export default {
"name": "\u041d\u0430\u0437\u0432\u0430",
"amount_min": "\u041c\u0456\u043d\u0456\u043c\u0430\u043b\u044c\u043d\u0430 \u0441\u0443\u043c\u0430",
"amount_max": "\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430 \u0441\u0443\u043c\u0430",
"url": "URL",
"url": "URL-\u0430\u0434\u0440\u0435\u0441\u0430",
"title": "\u041d\u0430\u0437\u0432\u0430",
"first_date": "\u041f\u0435\u0440\u0448\u0430 \u0434\u0430\u0442\u0430",
"repetitions": "\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u043d\u044f",
@@ -105,9 +105,9 @@ export default {
"rule_trigger_destination_account_nr_contains_choice": "\u0420\u0430\u0445\u0443\u043d\u043e\u043a \u043f\u0440\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \/ IBAN \u043c\u0456\u0441\u0442\u0438\u0442\u044c..",
"rule_trigger_transaction_type_choice": "\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0456\u044f \u043c\u0430\u0454 \u0442\u0438\u043f..",
"rule_trigger_category_is_choice": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u044f \u0454..",
"rule_trigger_amount_less_choice": "Amount is less than or equal to ..",
"rule_trigger_amount_less_choice": "\u0421\u0443\u043c\u0430 \u043c\u0435\u043d\u0448\u0430 \u0430\u0431\u043e \u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454 ..",
"rule_trigger_amount_is_choice": "\u0421\u0443\u043c\u0430..",
"rule_trigger_amount_more_choice": "Amount is more than or equal to..",
"rule_trigger_amount_more_choice": "\u0421\u0443\u043c\u0430 \u0431\u0456\u043b\u044c\u0448\u0435 \u0430\u0431\u043e \u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454..",
"rule_trigger_description_starts_choice": "\u041e\u043f\u0438\u0441 \u043f\u043e\u0447\u0438\u043d\u0430\u0454\u0442\u044c\u0441\u044f \u0437..",
"rule_trigger_description_ends_choice": "\u041e\u043f\u0438\u0441 \u0437\u0430\u043a\u0456\u043d\u0447\u0443\u0454\u0442\u044c\u0441\u044f \u043d\u0430..",
"rule_trigger_description_contains_choice": "\u041e\u043f\u0438\u0441 \u043c\u0456\u0441\u0442\u0438\u0442\u044c..",
@@ -140,7 +140,7 @@ export default {
"rule_trigger_external_id_is_choice": "\u0417\u043e\u0432\u043d\u0456\u0448\u043d\u0456\u0439 ID \u043c\u0456\u0441\u0442\u0438\u0442\u044c..",
"rule_trigger_internal_reference_is_choice": "\u0412\u043d\u0443\u0442\u0440\u0456\u0448\u043d\u0454 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f - \u0446\u0435..",
"rule_trigger_journal_id_choice": "\u0406\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440 \u0436\u0443\u0440\u043d\u0430\u043b\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0456\u0439 \u0454..",
"rule_trigger_any_external_url_choice": "Transaction has an (any) external URL",
"rule_trigger_any_external_url_choice": "\u041e\u043f\u0435\u0440\u0430\u0446\u0456\u044f \u043c\u0430\u0454 (\u044f\u043a\u0443\u0441\u044c) \u0437\u043e\u0432\u043d\u0456\u0448\u043d\u044e URL-\u0430\u0434\u0440\u0435\u0441\u0443",
"rule_trigger_no_external_url_choice": "\u041e\u043f\u0435\u0440\u0430\u0446\u0456\u044f \u043d\u0435 \u043c\u0430\u0454 \u0437\u043e\u0432\u043d\u0456\u0448\u043d\u044c\u043e\u0457 URL-\u0430\u0434\u0440\u0435\u0441\u0438",
"rule_trigger_id_choice": "\u0406\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440 \u043e\u043f\u0435\u0440\u0430\u0446\u0456\u0457..",
"rule_action_delete_transaction_choice": "\u0412\u0418\u0414\u0410\u041b\u0418\u0422\u0418 \u043e\u043f\u0435\u0440\u0430\u0446\u0456\u044e(!)",
@@ -151,7 +151,7 @@ export default {
"rule_action_add_tag_choice": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0442\u0435\u0433..",
"rule_action_remove_tag_choice": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0442\u0435\u0433..",
"rule_action_remove_all_tags_choice": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0443\u0441\u0456 \u0442\u0435\u0433\u0438",
"rule_action_set_description_choice": "Set description to ..",
"rule_action_set_description_choice": "\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u043e\u043f\u0438\u0441 \u043d\u0430..",
"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 ..",
@@ -209,7 +209,7 @@ export default {
"amount": "\u0421\u0443\u043c\u0430",
"date": "\u0414\u0430\u0442\u0430",
"time": "Time",
"preferences": "Preferences",
"preferences": "\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f",
"transactions": "\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0456\u0457",
"balance": "Balance",
"budgets": "\u0411\u044e\u0434\u0436\u0435\u0442\u0438",

44
package-lock.json generated
View File

@@ -14,7 +14,7 @@
"chartjs-adapter-date-fns": "^3.0.0",
"chartjs-chart-sankey": "^0.12.0",
"date-fns": "^2.30.0",
"i18n-js": "^4.3.0",
"i18n-js": "^4.3.2",
"store": "^2.0.12"
},
"devDependencies": {
@@ -26,9 +26,9 @@
}
},
"node_modules/@babel/runtime": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz",
"integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==",
"version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz",
"integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -480,9 +480,9 @@
}
},
"node_modules/bootstrap": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.1.tgz",
"integrity": "sha512-jzwza3Yagduci2x0rr9MeFSORjcHpt0lRZukZPZQJT1Dth5qzV7XcgGqYzi39KGAVYR8QEDVoO0ubFKOxzMG+g==",
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz",
"integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==",
"funding": [
{
"type": "github",
@@ -498,9 +498,9 @@
}
},
"node_modules/bootstrap5-autocomplete": {
"version": "1.1.20",
"resolved": "https://registry.npmjs.org/bootstrap5-autocomplete/-/bootstrap5-autocomplete-1.1.20.tgz",
"integrity": "sha512-lvX/Za+GnZ7fC1NqVXQr4DWA0eQMR+/uyFjTasdfNSwAMTFhBTIexCsEM+0pXiKdJJnZUXbfcxaNxW1I0rAwLw=="
"version": "1.1.22",
"resolved": "https://registry.npmjs.org/bootstrap5-autocomplete/-/bootstrap5-autocomplete-1.1.22.tgz",
"integrity": "sha512-vn4/+j/MmupcfQB9dwoGFadyk3OorxZh2Eyo8YVSBiaJBcaM1u+FYl0lgOCHQWRqN3MXqM4YCebo8xiyFIW/fw=="
},
"node_modules/braces": {
"version": "3.0.2",
@@ -715,11 +715,12 @@
}
},
"node_modules/i18n-js": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/i18n-js/-/i18n-js-4.3.0.tgz",
"integrity": "sha512-PX93eT6WPV6Ym6mHtFKGDRZB0zwDX7HUPkgprjsZ28J6/Ohw1nvRYuM93or3pWv2VLxs6XfBf7X9Fc/YAZNEtQ==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/i18n-js/-/i18n-js-4.3.2.tgz",
"integrity": "sha512-n8gbEbQEueym2/q2yrZk5/xKWjFcKtg3/Escw4JHSVWa8qtKqP8j7se3UjkRbHlO/REqFA0V/MG1q8tEfyHeOA==",
"dependencies": {
"bignumber.js": "*",
"lodash": "*",
"make-plural": "*"
}
},
@@ -787,6 +788,11 @@
"vite": "^3.0.0 || ^4.0.0"
}
},
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/make-plural": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.3.0.tgz",
@@ -910,9 +916,9 @@
"integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
},
"node_modules/rollup": {
"version": "3.28.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz",
"integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==",
"version": "3.29.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.1.tgz",
"integrity": "sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
@@ -926,9 +932,9 @@
}
},
"node_modules/sass": {
"version": "1.66.1",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz",
"integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==",
"version": "1.67.0",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.67.0.tgz",
"integrity": "sha512-SVrO9ZeX/QQyEGtuZYCVxoeAL5vGlYjJ9p4i4HFuekWl8y/LtJ7tJc10Z+ck1c8xOuoBm2MYzcLfTAffD0pl/A==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",

View File

@@ -22,7 +22,7 @@
"chartjs-adapter-date-fns": "^3.0.0",
"chartjs-chart-sankey": "^0.12.0",
"date-fns": "^2.30.0",
"i18n-js": "^4.3.0",
"i18n-js": "^4.3.2",
"store": "^2.0.12"
}
}

View File

@@ -1,10 +1,38 @@
# Please report security issues related to Firefly III
# to me ASAP via the email address below.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
# Please report security issues related to Firefly III to me ASAP, via the email address below.
# Feel free to encrypt your message using GPG altough it's a pain let's be honest
#
# There are some ground rules, please keep them in mind:
#
# 1. Your security report must be related to Firefly III or the associated tools
# 2. There is no bug bounty program
# 3. Don't report denial of service attacks on the login form
#
# Do not contact me for random vulnerabilities on other people's websites.
# Firefly III and releated tools only please.
Contact: mailto:james@firefly-iii.org
Encryption: https://keybase.io/jc5/pgp_keys.asc?fingerprint=02f4046c4b236e0609571612b49a324b7ead6d80
Acknowledgements: https://github.com/firefly-iii/firefly-iii
Signature: https://firefly-iii.org/.well-known/security.txt.sig
Expires: 2024-12-31T23:00:00.000Z
Preferred-Languages: en, nl
Policy: https://docs.firefly-iii.org/firefly-iii/support/
#
# Thank you for your time!
#
-----BEGIN PGP SIGNATURE-----
iQJKBAABCAA0FiEEAvQEbEsjbgYJVxYStJoyS36tbYAFAmUEl4MWHGphbWVzQGZp
cmVmbHktaWlpLm9yZwAKCRC0mjJLfq1tgKipEADC1bsgtE7YNY+2W/qkX3sBlKc3
E8tDV/dr7D+jWMpV81poGyDzEe8sytJ5DmZWGTFiQez6jxZN5czT5KxZ7fMQOzbw
kjT+S6CxKrvD2H05pe5v2ziY+lfDIVe4kI1vxYRB6bgTYi0pfGJF9woSH4qhwMMa
5cai0Rj6Ew9pHPx06BvcHOoNjOcmqPWRoBt5a1LOK8EqSMJHbdUv8deAbQSkO/8t
gDEA7FVRXXB0QRIraOR2cMtU2uW/o7NymDzZeaqWR9+g4eWeosRJjLA4K05akPx+
3mrKG0qV76dBexfMC99IEfjgk+xiffxg2iiKh37uBbsgK74aakAujYta1q4SsX8d
BXMvBpSi6mFuw13tgeueQS7IKqZsbh3vb6M325Dkv+hRe1e/Tw+qE9OWNFBQ2WS4
H+sJZ8u1Ke++BctttaNkAkOZF0l8+f7+aEZhEaIan31hq0Y1KpFNPLiPMvMEDDBZ
9OhqIZaWmpZv0vUu/pK+0IU5ESRAU8dSPLi1anj+LWSF+YkaOW8gmA5Di0Oiqta8
xRDOaDSDgLN9ESd5gF8rca263AXeH1iPoPRHWPEFWgQPTcxVruwAhe7P+0dclCMx
8eIaHoc21VGk299lwiCy4X9Wxp2+tQFH9iQG+Lnd/koxnufE6vGEIBLMzPxij6L4
2oFicDqAMXd0Ls8kWA==
=8skS
-----END PGP SIGNATURE-----

View File

@@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJKBAABCAA0FiEEAvQEbEsjbgYJVxYStJoyS36tbYAFAmUEl4MWHGphbWVzQGZp
cmVmbHktaWlpLm9yZwAKCRC0mjJLfq1tgKipEADC1bsgtE7YNY+2W/qkX3sBlKc3
E8tDV/dr7D+jWMpV81poGyDzEe8sytJ5DmZWGTFiQez6jxZN5czT5KxZ7fMQOzbw
kjT+S6CxKrvD2H05pe5v2ziY+lfDIVe4kI1vxYRB6bgTYi0pfGJF9woSH4qhwMMa
5cai0Rj6Ew9pHPx06BvcHOoNjOcmqPWRoBt5a1LOK8EqSMJHbdUv8deAbQSkO/8t
gDEA7FVRXXB0QRIraOR2cMtU2uW/o7NymDzZeaqWR9+g4eWeosRJjLA4K05akPx+
3mrKG0qV76dBexfMC99IEfjgk+xiffxg2iiKh37uBbsgK74aakAujYta1q4SsX8d
BXMvBpSi6mFuw13tgeueQS7IKqZsbh3vb6M325Dkv+hRe1e/Tw+qE9OWNFBQ2WS4
H+sJZ8u1Ke++BctttaNkAkOZF0l8+f7+aEZhEaIan31hq0Y1KpFNPLiPMvMEDDBZ
9OhqIZaWmpZv0vUu/pK+0IU5ESRAU8dSPLi1anj+LWSF+YkaOW8gmA5Di0Oiqta8
xRDOaDSDgLN9ESd5gF8rca263AXeH1iPoPRHWPEFWgQPTcxVruwAhe7P+0dclCMx
8eIaHoc21VGk299lwiCy4X9Wxp2+tQFH9iQG+Lnd/koxnufE6vGEIBLMzPxij6L4
2oFicDqAMXd0Ls8kWA==
=8skS
-----END PGP SIGNATURE-----

File diff suppressed because one or more lines are too long

View File

@@ -30,10 +30,10 @@
"integrity": "sha384-B73JAwYNSgI4rwb14zwxigHgAkg1Ms+j6+9sJoDpiL11+VW5RjQCLfIh0RVoi0h6"
},
"resources/assets/v2/pages/dashboard/dashboard.js": {
"file": "assets/dashboard-3bf5d492.js",
"file": "assets/dashboard-1fecd60d.js",
"isEntry": true,
"src": "resources/assets/v2/pages/dashboard/dashboard.js",
"integrity": "sha384-VbU3St9S+FpNVXcyT3HOrAFKugS69Q2RP7bTQfzoGWwlKhO23L7kJhx513OQ9smw"
"integrity": "sha384-uMRd+uHPChnXYXCT2/X5tvQtKHVVW65WptA71MNTIGO0/i22IQHg/ry2j4ILO/Av"
},
"resources/assets/v2/sass/app.scss": {
"file": "assets/app-28a195fd.css",

View File

@@ -8,19 +8,19 @@
"left": "Over",
"paid": "Betaald",
"unpaid": "Niet betaald",
"default_group_title_name_plain": "ungrouped",
"default_group_title_name_plain": "ongegroepeerd",
"overspent": "Teveel uitgegeven",
"money_flowing_in": "In",
"money_flowing_out": "Uit",
"category": "Categorie",
"unknown_category_plain": "No category",
"all_money": "All your money",
"unknown_source_plain": "Unknown source account",
"unknown_dest_plain": "Unknown destination account",
"unknown_any_plain": "Unknown account",
"unknown_budget_plain": "No budget",
"expense_account": "Expense account",
"revenue_account": "Revenue account",
"unknown_category_plain": "Geen categorie",
"all_money": "Al je geld",
"unknown_source_plain": "Onbekend bronrekening",
"unknown_dest_plain": "Onbekende doelrekening",
"unknown_any_plain": "Onbekende rekening",
"unknown_budget_plain": "Geen budget",
"expense_account": "Crediteur",
"revenue_account": "Debiteur",
"budget": "Budget"
}
}

View File

@@ -14,7 +14,7 @@
"money_flowing_out": "Out",
"category": "Category",
"unknown_category_plain": "No category",
"all_money": "All your money",
"all_money": "\u0423\u0441\u0456 \u0432\u0430\u0448\u0456 \u0433\u0440\u043e\u0448\u0456",
"unknown_source_plain": "Unknown source account",
"unknown_dest_plain": "Unknown destination account",
"unknown_any_plain": "Unknown account",

View File

@@ -4,7 +4,7 @@
"flash_error": "\u30a8\u30e9\u30fc\uff01",
"flash_success": "\u6210\u529f\u3057\u307e\u3057\u305f\uff01",
"close": "\u9589\u3058\u308b",
"split_transaction_title": "\u5206\u5272\u53d6\u5f15\u306e\u8aac\u660e",
"split_transaction_title": "\u5206\u5272\u53d6\u5f15\u306e\u6982\u8981",
"errors_submission": "\u9001\u4fe1\u5185\u5bb9\u306b\u554f\u984c\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u30a8\u30e9\u30fc\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002",
"split": "\u5206\u5272",
"single_split": "\u5206\u5272",
@@ -39,11 +39,11 @@
"update_transaction": "\u53d6\u5f15\u3092\u66f4\u65b0",
"after_update_create_another": "\u4fdd\u5b58\u5f8c\u306b\u623b\u3063\u3066\u7de8\u96c6\u3092\u7d9a\u3051\u308b\u3002",
"store_as_new": "\u66f4\u65b0\u305b\u305a\u65b0\u3057\u3044\u53d6\u5f15\u3068\u3057\u3066\u4fdd\u5b58\u3059\u308b\u3002",
"split_title_help": "\u5206\u5272\u53d6\u5f15\u3092\u4f5c\u6210\u3059\u308b\u5834\u5408\u3001\u53d6\u5f15\u306e\u3059\u3079\u3066\u306e\u5206\u5272\u306e\u5305\u62ec\u7684\u306a\u8aac\u660e\u304c\u5fc5\u8981\u3067\u3059\u3002",
"split_title_help": "\u5206\u5272\u53d6\u5f15\u3092\u4f5c\u6210\u3059\u308b\u5834\u5408\u3001\u53d6\u5f15\u306e\u3059\u3079\u3066\u306e\u5206\u5272\u306e\u5305\u62ec\u7684\u306a\u6982\u8981\u304c\u5fc5\u8981\u3067\u3059\u3002",
"none_in_select_list": "(\u306a\u3057)",
"no_piggy_bank": "(\u8caf\u91d1\u7bb1\u304c\u3042\u308a\u307e\u305b\u3093)",
"description": "\u8aac\u660e",
"split_transaction_title_help": "\u5206\u5272\u53d6\u5f15\u3092\u4f5c\u6210\u3059\u308b\u5834\u5408\u3001\u53d6\u5f15\u306e\u3059\u3079\u3066\u306e\u5206\u5272\u306e\u5305\u62ec\u7684\u306a\u8aac\u660e\u304c\u5fc5\u8981\u3067\u3059\u3002",
"description": "\u6982\u8981",
"split_transaction_title_help": "\u5206\u5272\u53d6\u5f15\u3092\u4f5c\u6210\u3059\u308b\u5834\u5408\u3001\u53d6\u5f15\u306e\u3059\u3079\u3066\u306e\u5206\u5272\u306e\u5305\u62ec\u7684\u306a\u6982\u8981\u304c\u5fc5\u8981\u3067\u3059\u3002",
"destination_account_reconciliation": "\u9810\u3051\u5165\u308c\u53e3\u5ea7\u306e\u53d6\u5f15\u7167\u5408\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",
"source_account_reconciliation": "\u5f15\u304d\u51fa\u3057\u53e3\u5ea7\u306e\u53d6\u5f15\u7167\u5408\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",
"budget": "\u4e88\u7b97",

View File

@@ -16,7 +16,7 @@
"transaction_journal_information": "Informacije o transakciji",
"submission_options": "Submission options",
"apply_rules_checkbox": "Uporabi pravila",
"fire_webhooks_checkbox": "Fire webhooks",
"fire_webhooks_checkbox": "Spro\u017ei Webhooke",
"no_budget_pointer": "Zdi se, da \u0161e nimate prora\u010duna. Ustvarite jih nekaj na strani <a href=\"budgets\">prora\u010duni<\/a>. Prora\u010duni vam lahko pomagajo spremljati stro\u0161ke.",
"no_bill_pointer": "Zdi se, da \u0161e nimate ra\u010dunov. Ustvarite jih na strani <a href=\"bills\">ra\u010duni<\/a>. Ra\u010duni vam lahko pomagajo spremljati stro\u0161ke.",
"source_account": "Izvorni ra\u010dun",
@@ -86,7 +86,7 @@
"piggy_bank": "Dodaj hranilnik",
"profile_oauth_client_secret_title": "Client Secret",
"profile_oauth_client_secret_expl": "Here is your new client secret. This is the only time it will be shown so don't lose it! You may now use this secret to make API requests.",
"profile_oauth_confidential": "Confidential",
"profile_oauth_confidential": "Zaupno",
"profile_oauth_confidential_help": "Require the client to authenticate with a secret. Confidential clients can hold credentials in a secure way without exposing them to unauthorized parties. Public applications, such as native desktop or JavaScript SPA applications, are unable to hold secrets securely.",
"multi_account_warning_unknown": "Depending on the type of transaction you create, the source and\/or destination account of subsequent splits may be overruled by whatever is defined in the first split of the transaction.",
"multi_account_warning_withdrawal": "Keep in mind that the source account of subsequent splits will be overruled by whatever is defined in the first split of the withdrawal.",

View File

@@ -9,8 +9,8 @@
"split": "\u0420\u043e\u0437\u0434\u0456\u043b\u0438\u0442\u0438",
"single_split": "\u0420\u043e\u0437\u0434\u0456\u043b\u0438\u0442\u0438",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
"webhook_stored_link": "<a href=\"webhooks\/show\/{ID}\">Webhook #{ID} (\"{title}\")<\/a> has been stored.",
"webhook_updated_link": "<a href=\"webhooks\/show\/{ID}\">Webhook #{ID}<\/a> (\"{title}\") has been updated.",
"webhook_stored_link": "<a href=\"webhooks\/show\/{ID}\">\u0412\u0435\u0431\u0445\u0443\u043a #{ID} (\"{title}\")<\/a> \u0431\u0443\u0432 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0438\u0439.",
"webhook_updated_link": "<a href=\"webhooks\/show\/{ID}\">\u0412\u0435\u0431\u0445\u0443\u043a #{ID}<\/a> (\"{title}\") \u0431\u0443\u0432 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439.",
"transaction_updated_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID}<\/a> (\"{title}\") has been updated.",
"transaction_new_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID}<\/a> has been stored.",
"transaction_journal_information": "Transaction information",
@@ -112,7 +112,7 @@
"webhook_delivery_form_help": "\u0423 \u044f\u043a\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0456 \u0432\u0435\u0431-\u0445\u0443\u043a \u043c\u0430\u0454 \u043d\u0430\u0434\u0430\u0432\u0430\u0442\u0438 \u0434\u0430\u043d\u0456.",
"webhook_active_form_help": "\u0412\u0435\u0431-\u0445\u0443\u043a \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u0438\u043c, \u0456\u043d\u0430\u043a\u0448\u0435 \u0439\u043e\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435 \u0432\u0438\u043a\u043b\u0438\u043a\u0430\u043d\u043e.",
"edit_webhook_js": "\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0432\u0435\u0431-\u0445\u0443\u043a \"{title}\"",
"webhook_was_triggered": "The webhook was triggered on the indicated transaction. Please wait for results to appear.",
"webhook_was_triggered": "\u0412\u0435\u0431\u0445\u0443\u043a \u0431\u0443\u0432 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0438\u0439 \u0432 \u0437\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0456\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0456\u0457. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0437\u0430\u0447\u0435\u043a\u0430\u0439\u0442\u0435 \u043d\u0430 \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0456\u0432.",
"view_message": "\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u0443\u0442\u0438 \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f",
"view_attempts": "\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u0443\u0442\u0438 \u043d\u0435\u0432\u0434\u0430\u043b\u0456 \u0441\u043f\u0440\u043e\u0431\u0438",
"message_content_title": "\u0412\u043c\u0456\u0441\u0442 \u0432\u0435\u0431-\u0445\u0443\u043a \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f",
@@ -127,7 +127,7 @@
"reset_webhook_secret": "\u0412\u0456\u0434\u043d\u043e\u0432\u0438\u0442\u0438 \u0441\u0456\u043a\u0440\u0435\u0442 \u0432\u0435\u0431-\u0445\u0443\u043a\u0430"
},
"form": {
"url": "URL",
"url": "URL-\u0430\u0434\u0440\u0435\u0441\u0430",
"active": "\u0410\u043a\u0442\u0438\u0432\u043d\u043e",
"interest_date": "\u0414\u0430\u0442\u0430 \u043d\u0430\u0440\u0430\u0445\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0456\u0434\u0441\u043e\u0442\u043a\u0443",
"title": "\u041d\u0430\u0437\u0432\u0430",

View File

@@ -214,7 +214,7 @@ export default () => ({
if (!amounts.hasOwnProperty(flowKey)) {
amounts[flowKey] = {
from: translations.all_money + ' (' + currencyCode + ')',
from: translations.all_money + (this.autoConversion ? ' (' + currencyCode + ')' : ''),
to: budget,
amount: 0
};

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'Aquesta transacció ja té ":name" com al compte destí',
'already_has_source' => 'Aquesta transacció ja té ":name" com al compte font',
'already_linked_to_subscription' => 'La transacció ja està enllaçada a la subscripció ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III no pot trobar la subscripció ":name"',
'no_notes_to_move' => 'La transacció no té cap nota que moure al camp de descripció',
'no_tags_to_remove' => 'La transacció no té etiquetes que eliminar',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -42,24 +42,26 @@ return [
'complex_error' => 'Etwas kompliziertes ist schief gelaufen. Bitte die Protokolle von Firefly III überprüfen',
'no_valid_opposing' => 'Conversion failed because there is no valid account named ":account"',
'new_notes_empty' => 'Die zu setzenden Notizen sind leer',
'unsupported_transaction_type_withdrawal' => 'Firefly III cannot convert a ":type" to a withdrawal',
'unsupported_transaction_type_deposit' => 'Firefly III cannot convert a ":type" to a deposit',
'unsupported_transaction_type_transfer' => 'Firefly III cannot convert a ":type" to a transfer',
'unsupported_transaction_type_withdrawal' => 'Firefly III kann eine ":type" nicht in eine Auszahlung konvertieren',
'unsupported_transaction_type_deposit' => 'Firefly III kann ein ":type" nicht in eine Einzahlung umwandeln',
'unsupported_transaction_type_transfer' => 'Firefly III kann eine ":type" nicht in eine Überweisung umwandeln',
'already_has_source_asset' => 'This transaction already has ":name" as the source asset account',
'already_has_destination_asset' => 'This transaction already has ":name" as the destination asset account',
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_has_destination' => 'Diese Transaktion hat bereits ":name" als Zielkonto',
'already_has_source' => 'Diese Transaktion hat bereits ":name" als Quellkonto',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'Die Buchung hat keine Schlagworte zum Entfernen',
'cannot_find_tag' => 'Firefly III kann Schlagwort ":tag" nicht finden',
'cannot_find_asset' => 'Firefly III kann kein Girokonto ":name" finden',
'cannot_find_accounts' => 'Firefly III kann das Quell- oder Zielkonto nicht finden',
'cannot_find_source_transaction' => 'Firefly III can\'t find the source transaction',
'cannot_find_destination_transaction' => 'Firefly III can\'t find the destination transaction',
'cannot_find_source_transaction_account' => 'Firefly III can\'t find the source transaction account',
'cannot_find_destination_transaction_account' => 'Firefly III can\'t find the destination transaction account',
'cannot_find_source_transaction' => 'Firefly III kann die Quelltransaktion nicht finden',
'cannot_find_destination_transaction' => 'Firefly III kann die Zieltransaktion nicht finden',
'cannot_find_source_transaction_account' => 'Firefly III konnte das Quellkonto nicht finden',
'cannot_find_destination_transaction_account' => 'Firefly III kann das Zielkonto nicht finden',
'cannot_find_piggy' => 'Firefly III kann kein Sparschwein mit dem Namen ":name" finden',
'no_link_piggy' => 'Die Konten dieser Buchung sind nicht mit dem Sparschwein verbunden, daher wird nichts gemacht',
'cannot_unlink_tag' => 'Schlagwort ":tag" ist nicht mit dieser Buchung verknüpft',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -29,41 +29,43 @@ return [
'inspect_transaction' => 'Inspeccionar transacción ":title" @ Firefly III',
'inspect_rule' => 'Inspeccionar regla ":title" @ Firefly III',
'journal_other_user' => 'Esta transacción no pertenece al usuario',
'no_such_journal' => 'This transaction doesn\'t exist',
'journal_already_no_budget' => 'This transaction has no budget, so it cannot be removed',
'journal_already_no_category' => 'This transaction had no category, so it cannot be removed',
'journal_already_no_notes' => 'This transaction had no notes, so they cannot be removed',
'journal_not_found' => 'Firefly III can\'t find the requested transaction',
'split_group' => 'Firefly III cannot execute this action on a transaction with multiple splits',
'is_already_withdrawal' => 'This transaction is already a withdrawal',
'is_already_deposit' => 'This transaction is already a deposit',
'is_already_transfer' => 'This transaction is already a transfer',
'is_not_transfer' => 'This transaction is not a transfer',
'complex_error' => 'Something complicated went wrong. Sorry about that. Please inspect the logs of Firefly III',
'no_valid_opposing' => 'Conversion failed because there is no valid account named ":account"',
'new_notes_empty' => 'The notes to be set are empty',
'unsupported_transaction_type_withdrawal' => 'Firefly III cannot convert a ":type" to a withdrawal',
'unsupported_transaction_type_deposit' => 'Firefly III cannot convert a ":type" to a deposit',
'unsupported_transaction_type_transfer' => 'Firefly III cannot convert a ":type" to a transfer',
'already_has_source_asset' => 'This transaction already has ":name" as the source asset account',
'already_has_destination_asset' => 'This transaction already has ":name" as the destination asset account',
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',
'cannot_find_tag' => 'Firefly III can\'t find tag ":tag"',
'cannot_find_asset' => 'Firefly III can\'t find asset account ":name"',
'cannot_find_accounts' => 'Firefly III can\'t find the source or destination account',
'cannot_find_source_transaction' => 'Firefly III can\'t find the source transaction',
'cannot_find_destination_transaction' => 'Firefly III can\'t find the destination transaction',
'cannot_find_source_transaction_account' => 'Firefly III can\'t find the source transaction account',
'cannot_find_destination_transaction_account' => 'Firefly III can\'t find the destination transaction account',
'cannot_find_piggy' => 'Firefly III can\'t find a piggy bank named ":name"',
'no_link_piggy' => 'This transaction\'s accounts are not linked to the piggy bank, so no action will be taken',
'cannot_unlink_tag' => 'Tag ":tag" isn\'t linked to this transaction',
'cannot_find_budget' => 'Firefly III can\'t find budget ":name"',
'cannot_find_category' => 'Firefly III can\'t find category ":name"',
'cannot_set_budget' => 'Firefly III can\'t set budget ":name" to a transaction of type ":type"',
'no_such_journal' => 'Esta transacción no existe',
'journal_already_no_budget' => 'Esta transacción no tiene presupuesto, por lo que no se puede eliminar',
'journal_already_no_category' => 'Esta transacción no tenía categoría, por lo que no se puede eliminar',
'journal_already_no_notes' => 'Esta transacción no tenía notas, por lo que no se pueden eliminar',
'journal_not_found' => 'Firefly III no puede encontrar la transacción solicitada',
'split_group' => 'Firefly III no puede ejecutar esta acción en una transacción con múltiples divisiones',
'is_already_withdrawal' => 'Esta transferencia ya es un gasto',
'is_already_deposit' => 'Esta transacción ya es un ingreso',
'is_already_transfer' => 'Esta transacción ya es una transferencia',
'is_not_transfer' => 'Esta transacción no es una transferencia',
'complex_error' => 'Algo complicado salió mal. Lo sentimos. Por favor inspeccione los registros de Firefly III',
'no_valid_opposing' => 'La conversión falló porque no hay una cuenta válida llamada ":account"',
'new_notes_empty' => 'Las notas a establecer están vacías',
'unsupported_transaction_type_withdrawal' => 'Firefly III no puede convertir un ":type" en un gasto',
'unsupported_transaction_type_deposit' => 'Firefly III no puede convertir un ":type" en un ingreso',
'unsupported_transaction_type_transfer' => 'Firefly III no puede convertir un ":type" en una transferencia',
'already_has_source_asset' => 'Esta transacción ya tiene ":name" como la cuenta de activo origen',
'already_has_destination_asset' => 'Esta transacción ya tiene ":name" como cuenta de activo de destino',
'already_has_destination' => 'Esta transacción ya tiene ":name" como cuenta de destino',
'already_has_source' => 'Esta transacción ya tiene ":name" como cuenta de origen',
'already_linked_to_subscription' => 'La transacción ya está vinculada a la suscripción ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III no puede encontrar la suscripción ":name"',
'no_notes_to_move' => 'La transacción no tiene notas para mover al campo de descripción',
'no_tags_to_remove' => 'La transacción no tiene etiquetas que eliminar',
'cannot_find_tag' => 'Firefly III no puede encontrar la etiqueta ":tag"',
'cannot_find_asset' => 'Firefly III no puede encontrar la cuenta de activo ":name"',
'cannot_find_accounts' => 'Firefly III no puede encontrar la cuenta de origen o destino',
'cannot_find_source_transaction' => 'Firefly III no puede encontrar la transacción de origen',
'cannot_find_destination_transaction' => 'Firefly III no puede encontrar la transacción de destino',
'cannot_find_source_transaction_account' => 'Firefly III no puede encontrar la cuenta de transacción origen',
'cannot_find_destination_transaction_account' => 'Firefly III no puede encontrar la cuenta de transacción de destino',
'cannot_find_piggy' => 'Firefly III no puede encontrar la hucha llamada ":name"',
'no_link_piggy' => 'Las cuentas de esta transacción no están vinculadas a la hucha, por lo que no se realizará ninguna acción',
'cannot_unlink_tag' => 'La etiqueta ":tag" no está vinculada a esta transacción',
'cannot_find_budget' => 'Firefly III no puede encontrar el presupuesto ":name"',
'cannot_find_category' => 'Firefly III no puede encontrar la categoría ":name"',
'cannot_set_budget' => 'Firefly III no puede establecer el presupuesto ":name" a una transacción de tipo ":type"',
];

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'Cette opération a déjà «:name» comme compte de destination',
'already_has_source' => 'Cette opération a déjà ":name" comme compte source',
'already_linked_to_subscription' => 'L\'opération est déjà liée à l\'abonnement ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III ne trouve pas l\'abonnement ":name"',
'no_notes_to_move' => 'L\'opération n\'a pas de notes à déplacer dans le champ description',
'no_tags_to_remove' => 'L\'opération n\'a pas de tags à supprimer',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -203,7 +203,7 @@ return [
'transfer_exchange_rate_instructions' => '引き出し資産口座「@source_name」は @source_currency の取引のみ受け付けます。 宛先資産口座「@dest_name」は @dest_currency でのみ取引を受け付けます。両方の通貨で正しく送金額を入力する必要があります。',
'transaction_data' => '取引データ',
'invalid_server_configuration' => '無効なサーバー構成',
'invalid_locale_settings' => 'Firefly III に必要なパッケージがサーバに不足しているため、金額を整形できません。 解決するための<a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">説明はここ</a>にあります。',
'invalid_locale_settings' => 'Firefly IIIに必要なパッケージがサーバに不足しているため、金額を整形できません。 解決するための<a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">説明はここ</a>にあります。',
'quickswitch' => 'クイックスイッチ',
'sign_in_to_start' => 'サインインしてセッションを開始',
'sign_in' => 'サインイン',
@@ -370,14 +370,14 @@ return [
'search_modifier_not_no_external_id' => '外部IDがある取引',
'search_modifier_internal_reference_is' => '内部参照が「:value」',
'search_modifier_not_internal_reference_is' => '内部参照が「:value」ではない',
'search_modifier_description_starts' => '説明が「:value」で始まる',
'search_modifier_not_description_starts' => '説明が「:value」で始まらない',
'search_modifier_description_ends' => '説明が「:value」で終わる',
'search_modifier_not_description_ends' => '説明が「:value」で終わらない',
'search_modifier_description_contains' => '説明に「:value」を含む',
'search_modifier_not_description_contains' => '説明が「:value」を含まない',
'search_modifier_description_is' => '説明が「:value」と一致する',
'search_modifier_not_description_is' => '説明が「:value」と一致しない',
'search_modifier_description_starts' => '概要が「:value」で始まる',
'search_modifier_not_description_starts' => '概要が「:value」で始まらない',
'search_modifier_description_ends' => '概要が「:value」で終わる',
'search_modifier_not_description_ends' => '概要が「:value」で終わらない',
'search_modifier_description_contains' => '概要に「:value」を含む',
'search_modifier_not_description_contains' => '概要が「:value」を含まない',
'search_modifier_description_is' => '概要が「:value」と一致する',
'search_modifier_not_description_is' => '概要が「:value」と一致しない',
'search_modifier_currency_is' => '取引 (外国) 通貨が「:value」',
'search_modifier_not_currency_is' => '取引 (外国) 通貨が「:value」ではない',
'search_modifier_foreign_currency_is' => '取引外国通貨が「:value」',
@@ -870,14 +870,14 @@ return [
'rule_trigger_amount_is' => '金額が「:trigger_value」',
'rule_trigger_amount_more_choice' => '金額が...以上',
'rule_trigger_amount_more' => '金額が「:trigger_value」以上',
'rule_trigger_description_starts_choice' => '説明が…で始まる',
'rule_trigger_description_starts' => '説明が「:trigger_value」で始まる',
'rule_trigger_description_ends_choice' => '説明が…で終わる',
'rule_trigger_description_ends' => '説明が「:trigger_value」で終わる',
'rule_trigger_description_contains_choice' => '説明に…を含む',
'rule_trigger_description_contains' => '説明が「:trigger_value」を含む',
'rule_trigger_description_is_choice' => '説明が…',
'rule_trigger_description_is' => '説明が「:trigger_value」',
'rule_trigger_description_starts_choice' => '概要が…で始まる',
'rule_trigger_description_starts' => '概要が「:trigger_value」で始まる',
'rule_trigger_description_ends_choice' => '概要が…で終わる',
'rule_trigger_description_ends' => '概要が「:trigger_value」で終わる',
'rule_trigger_description_contains_choice' => '概要に…を含む',
'rule_trigger_description_contains' => '概要が「:trigger_value」を含む',
'rule_trigger_description_is_choice' => '概要が…',
'rule_trigger_description_is' => '概要が「:trigger_value」',
'rule_trigger_date_on_choice' => '取引日が…',
'rule_trigger_date_on' => '取引日が「:trigger_value」',
'rule_trigger_date_before_choice' => '取引日が…より前',
@@ -1087,10 +1087,10 @@ return [
'rule_trigger_not_transaction_type' => '取引種別が「:trigger_value」ではない',
'rule_trigger_not_tag_is' => 'タグが「:trigger_value」ではない',
'rule_trigger_not_tag_is_not' => 'タグが「:trigger_value」',
'rule_trigger_not_description_is' => '説明が「:trigger_value」ではない',
'rule_trigger_not_description_contains' => '説明を含まない',
'rule_trigger_not_description_ends' => '説明が「:trigger_value」で終わらない',
'rule_trigger_not_description_starts' => '説明が「:trigger_value」で始まらない',
'rule_trigger_not_description_is' => '概要が「:trigger_value」ではない',
'rule_trigger_not_description_contains' => '概要がない',
'rule_trigger_not_description_ends' => '概要が「:trigger_value」で終わらない',
'rule_trigger_not_description_starts' => '概要が「:trigger_value」で始まらない',
'rule_trigger_not_notes_is' => '備考が「:trigger_value」ではない',
'rule_trigger_not_notes_contains' => '備考に「:trigger_value」を含まない',
'rule_trigger_not_notes_ends' => '備考が「:trigger_value」で終わらない',
@@ -1245,8 +1245,8 @@ return [
'rule_action_set_description_choice' => '説明を...に設定',
'rule_action_update_piggy_choice' => '取引金額を貯金箱...に加算/減算する',
'rule_action_update_piggy' => '取引金額を貯金箱「:action_value」に加算/減算する',
'rule_action_append_description_choice' => '説明の終わりに…を追加',
'rule_action_prepend_description_choice' => '説明の終わりに…を追加',
'rule_action_append_description_choice' => '概要の終わりに…を追加',
'rule_action_prepend_description_choice' => '概要の終わりに…を追加',
'rule_action_set_source_account_choice' => '引き出し口座を...に設定',
'rule_action_set_source_account' => '支払元口座を「:action_value」にする',
'rule_action_set_destination_account_choice' => '預け入れ口座を...に設定',
@@ -1269,14 +1269,14 @@ return [
'rule_action_convert_withdrawal' => '取引を「:action_value」への引き出しに変換する',
'rule_action_convert_transfer_choice' => '取引を送金に変換',
'rule_action_convert_transfer' => '取引を「:action_value」で送金に変換する',
'rule_action_append_descr_to_notes_choice' => '取引の備考の終わりに説明を追加',
'rule_action_append_descr_to_notes_choice' => '取引のメモの終わりに概要を追加',
'rule_action_append_notes_to_descr_choice' => '説明の終わりに取引の備考を追加',
'rule_action_move_descr_to_notes_choice' => '現在の取引備考を説明に置き換えます',
'rule_action_move_notes_to_descr_choice' => '現在の説明を取引備考に置き換えます',
'rule_action_append_descr_to_notes' => '備考の終わりに説明を追加',
'rule_action_append_notes_to_descr' => '説明の終わりに備考を追加',
'rule_action_move_descr_to_notes' => '備考を説明に置き換え',
'rule_action_move_notes_to_descr' => '説明を備考に置き換え',
'rule_action_move_descr_to_notes_choice' => '現在の取引メモを概要で置き換えます',
'rule_action_move_notes_to_descr_choice' => '現在の概要を取引メモで置き換えます',
'rule_action_append_descr_to_notes' => 'メモの終わりに概要を追加',
'rule_action_append_notes_to_descr' => '概要の終わりにメモを追加',
'rule_action_move_descr_to_notes' => 'メモを概要で置き換え',
'rule_action_move_notes_to_descr' => '概要をメモで置き換え',
'rulegroup_for_bills_title' => '請求のルールグループ',
'rulegroup_for_bills_description' => '請求に関するすべてのルールのための特別なグループです。',
'rule_for_bill_title' => '請求「:name」用に自動作成されたルール',
@@ -1395,7 +1395,7 @@ return [
'pref_notification_new_access_token' => '新しい API アクセストークンが作成されたときに警告する',
'pref_notification_transaction_creation' => '取引が自動的に作成されたとき警告する',
'pref_notification_user_login' => '新しい場所からログインしたときに警告する',
'pref_notification_rule_action_failures' => 'Alert when rule actions fail to execute (Slack or Discord only)',
'pref_notification_rule_action_failures' => 'ルールアクションの実行に失敗したときに警告する (SlackまたはDiscordのみ)',
'pref_notifications' => '通知',
'pref_notifications_help' => 'これらは受け取る通知であるかどうかを示します。いくつかの通知には機密情報が含まれている場合があります。',
'slack_webhook_url' => 'Slack Webhook URL',
@@ -1625,8 +1625,8 @@ return [
'create_new_revenue' => '新しい収入口座を作成',
'create_new_piggy_bank' => '新規貯金箱の作成',
'create_new_bill' => '新しい請求を作成',
'create_new_subscription' => 'Create new subscription',
'create_new_rule' => 'Create new rule',
'create_new_subscription' => '新しいサブスクリプションを作成',
'create_new_rule' => '新しいルールを作成',
// currencies:
'create_currency' => '新しい通貨を作成',
@@ -1785,7 +1785,7 @@ return [
'bill_repeats_half-year_skip' => '{skip} 半期おきの繰り返し',
'bill_repeats_yearly_skip' => '{skip} 年おきの繰り返し',
'subscriptions' => '講読',
'go_to_subscriptions' => 'Go to your subscriptions',
'go_to_subscriptions' => 'サブスクリプションに移動',
'forever' => '無期限',
'extension_date_is' => '延長日は {date} です',
@@ -2260,7 +2260,7 @@ return [
'average_spending_per_account' => '口座ごとの平均支出',
'average_income_per_account' => '口座ごとの平均収入',
'total' => '合計',
'description' => '説明',
'description' => '概要',
'sum_of_period' => '期間の合計',
'average_in_period' => '期間の平均',
'account_role_defaultAsset' => 'デフォルトの資産口座',
@@ -2372,7 +2372,7 @@ return [
'created_tag' => 'タグ「:tag」が作成されました',
'transaction_journal_information' => '取引情報',
'transaction_journal_amount' => 'Amount information',
'transaction_journal_amount' => '金額情報',
'transaction_journal_meta' => 'メタ情報',
'transaction_journal_more' => '詳細情報',
'basic_journal_information' => '取引基本情報',
@@ -2427,7 +2427,7 @@ return [
'setting_is_demo_site_explain' => 'チェックすると、この Firefly III はデモサイトとして動作します。これには奇妙な副作用がありえます。',
'block_code_bounced' => 'メールを配信できませんでした',
'block_code_expired' => 'デモアカウントの期限切れ',
'no_block_code' => 'ブロック済みまたはブロックされていない理由がありません',
'no_block_code' => 'ブロック理由がないかブロックされてません',
'block_code_email_changed' => 'ユーザーはまだ新しいメールアドレスを確認していません',
'admin_update_email' => 'プロフィールページとは違い、ユーザーにメールアドレスが変更されたことは通知されません。',
'update_user' => 'ユーザーを更新',
@@ -2454,9 +2454,9 @@ return [
'notification_settings_saved' => '通知設定が保存されました。',
'split_transaction_title' => '分割取引の説明',
'split_transaction_title_help' => '分割取引を作成する場合、取引のすべての分割の包括的な説明が必要です。',
'split_title_help' => '分割取引を作成する場合、取引のすべての分割の包括的な説明が必要です。',
'split_transaction_title' => '分割取引の概要',
'split_transaction_title_help' => '分割取引を作成する場合、取引のすべての分割の包括的な概要が必要です。',
'split_title_help' => '分割取引を作成する場合、取引のすべての分割の包括的な概要が必要です。',
'you_create_transfer' => '送金を作成しています。',
'you_create_withdrawal' => '出金を作成しています。',
'you_create_deposit' => '入金を作成しています。',
@@ -2496,7 +2496,7 @@ return [
'this_transfer' => 'この送金',
'overview_for_link' => 'リンクタイプ「:name」の概要',
'source_transaction' => '元の取引',
'link_description' => 'リンクの説明',
'link_description' => 'リンクの概要',
'destination_transaction' => '取引先',
'delete_journal_link' => '<a href=":source_link">:source</a> と <a href=":destination_link">:destination</a> の間のリンクを削除する',
'deleted_link' => 'リンクを削除しました',
@@ -2734,7 +2734,7 @@ return [
'ale_action_set_destination' => '預け入れ口座を設定',
'ale_action_update_transaction_type' => '変更された取引種別',
'ale_action_update_notes' => '変更された備考',
'ale_action_update_description' => '変更された説明',
'ale_action_update_description' => '変更された概要',
'ale_action_add_to_piggy' => '貯金箱',
'ale_action_remove_from_piggy' => '貯金箱',
'ale_action_add_tag' => '追加したタグ',

View File

@@ -275,13 +275,13 @@ return [
'invoice_date' => '領収書発行日',
'internal_reference' => '内部参照',
'inward' => '内向きの説明',
'outward' => '外向きの説明',
'outward' => '外向きの概要',
'rule_group_id' => 'ルールグループ',
'transaction_description' => '取引の説明',
'transaction_description' => '取引の概要',
'first_date' => '最初の日付',
'transaction_type' => '取引種別',
'repeat_until' => '繰り返し期限',
'recurring_description' => '定期的な取引の説明',
'recurring_description' => '定期的な取引の概要',
'repetition_type' => '繰り返しの種類',
'foreign_currency_id' => '外貨',
'repetition_end' => 'リピート終了',

View File

@@ -45,7 +45,7 @@ return [
'index_cash_account' => 'これらは今までに作られた口座です。現金支出を管理するため現金口座を使うこともできますが、もちろん強制ではありません。',
// transactions
'transactions_create_basic_info' => '引き出し口座、預け入れ口座、日付、説明など、取引の基本情報を入力します。',
'transactions_create_basic_info' => '引き出し口座、預け入れ口座、日付、概要など、取引の基本情報を入力します。',
'transactions_create_amount_info' => '取引の金額を入力します。必要に応じて、フィールドは自動的に更新されます。',
'transactions_create_optional_info' => 'これらのフィールドはすべて任意です。ここにメタデータを追加すると、取引をより整理できます。',
'transactions_create_split' => '取引を分割する場合は、このボタンでさらに分割を追加します',

View File

@@ -82,7 +82,7 @@ return [
'repeat_freq' => '繰り返し',
'description' => '説明',
'description' => '概要',
'amount' => '金額',
'date' => '日付',
'interest_date' => '利息日',
@@ -124,8 +124,8 @@ return [
'rule_and_groups_count' => 'ルールとルールグループ数',
'tags_count' => 'タグの数',
'tags' => 'タグ',
'inward' => '内向きの説明',
'outward' => '外向きの説明',
'inward' => '内向きの概要',
'outward' => '外向きの概要',
'number_of_transactions' => '取引件数',
'total_amount' => '合計金額',
'sum' => '合計',

View File

@@ -23,47 +23,49 @@ declare(strict_types=1);
return [
'main_message' => 'Action ":action", present in rule ":rule", could not be applied to transaction #:group: :error',
'find_or_create_tag_failed' => 'Could not find or create tag ":tag"',
'tag_already_added' => 'Tag ":tag" is already linked to this transaction',
'inspect_transaction' => 'Inspect transaction ":title" @ Firefly III',
'inspect_rule' => 'Inspect rule ":title" @ Firefly III',
'journal_other_user' => 'This transaction doesn\'t belong to the user',
'no_such_journal' => 'This transaction doesn\'t exist',
'journal_already_no_budget' => 'This transaction has no budget, so it cannot be removed',
'journal_already_no_category' => 'This transaction had no category, so it cannot be removed',
'journal_already_no_notes' => 'This transaction had no notes, so they cannot be removed',
'journal_not_found' => 'Firefly III can\'t find the requested transaction',
'split_group' => 'Firefly III cannot execute this action on a transaction with multiple splits',
'is_already_withdrawal' => 'This transaction is already a withdrawal',
'is_already_deposit' => 'This transaction is already a deposit',
'is_already_transfer' => 'This transaction is already a transfer',
'is_not_transfer' => 'This transaction is not a transfer',
'complex_error' => 'Something complicated went wrong. Sorry about that. Please inspect the logs of Firefly III',
'no_valid_opposing' => 'Conversion failed because there is no valid account named ":account"',
'new_notes_empty' => 'The notes to be set are empty',
'unsupported_transaction_type_withdrawal' => 'Firefly III cannot convert a ":type" to a withdrawal',
'unsupported_transaction_type_deposit' => 'Firefly III cannot convert a ":type" to a deposit',
'unsupported_transaction_type_transfer' => 'Firefly III cannot convert a ":type" to a transfer',
'already_has_source_asset' => 'This transaction already has ":name" as the source asset account',
'already_has_destination_asset' => 'This transaction already has ":name" as the destination asset account',
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',
'cannot_find_tag' => 'Firefly III can\'t find tag ":tag"',
'cannot_find_asset' => 'Firefly III can\'t find asset account ":name"',
'cannot_find_accounts' => 'Firefly III can\'t find the source or destination account',
'cannot_find_source_transaction' => 'Firefly III can\'t find the source transaction',
'cannot_find_destination_transaction' => 'Firefly III can\'t find the destination transaction',
'cannot_find_source_transaction_account' => 'Firefly III can\'t find the source transaction account',
'cannot_find_destination_transaction_account' => 'Firefly III can\'t find the destination transaction account',
'cannot_find_piggy' => 'Firefly III can\'t find a piggy bank named ":name"',
'no_link_piggy' => 'This transaction\'s accounts are not linked to the piggy bank, so no action will be taken',
'cannot_unlink_tag' => 'Tag ":tag" isn\'t linked to this transaction',
'cannot_find_budget' => 'Firefly III can\'t find budget ":name"',
'cannot_find_category' => 'Firefly III can\'t find category ":name"',
'cannot_set_budget' => 'Firefly III can\'t set budget ":name" to a transaction of type ":type"',
'main_message' => 'アクション「:action"」はルール「:rule」にありますが、取引 #:group に適用できませんでした: :error',
'find_or_create_tag_failed' => 'タグ「:tag」が見つからないか作成できませんでした',
'tag_already_added' => 'タグ「:tag」はすでにこの取引にリンクされています',
'inspect_transaction' => '取引「:title@ Firefly IIIの検査',
'inspect_rule' => 'ルール「:title@ Firefly IIIの検査',
'journal_other_user' => 'この取引はそのユーザーに属していません',
'no_such_journal' => 'この取引は存在しません',
'journal_already_no_budget' => 'この取引には予算がないため削除できません',
'journal_already_no_category' => 'この取引にはカテゴリがないため削除できません',
'journal_already_no_notes' => 'この取引にはメモがないため削除できません',
'journal_not_found' => 'Firefly IIIは要求された取引を見つけられませんでした',
'split_group' => 'Firefly IIIは取引の複数分割でこのアクションを実行できません',
'is_already_withdrawal' => 'この取引はすでに出金です',
'is_already_deposit' => 'この取引はすでに入金です',
'is_already_transfer' => 'この取引はすでに送金です',
'is_not_transfer' => 'この取引は送金ではありません',
'complex_error' => '問題が発生しました。申し訳ありません。Firefly IIIのログを調べてください。',
'no_valid_opposing' => '「":account"」という名前の有効な口座がないため変換に失敗しました',
'new_notes_empty' => 'メモに空をセットしようとしています',
'unsupported_transaction_type_withdrawal' => 'Firefly IIIは「:type」を出金に変更できません',
'unsupported_transaction_type_deposit' => 'Firefly IIIは「:type」を入金に変更できません',
'unsupported_transaction_type_transfer' => 'Firefly IIIは「:type」を送金に変更できません',
'already_has_source_asset' => 'この取引はすでに引き出し口座は「:name」です',
'already_has_destination_asset' => 'この取引はすでに預け入れ口座は「:name」です',
'already_has_destination' => 'この取引はすでに宛先の口座は「:name」です',
'already_has_source' => 'この取引はすでに元となる口座は「:name」です',
'already_linked_to_subscription' => 'この取引はすでにサブスクリプション「:name」にリンクされています',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly IIIはサブスクリプション「":name"」を見つけられませんでした',
'no_notes_to_move' => '取引には概要に設定できるメモがありません',
'no_tags_to_remove' => '取引には削除できるタグがありません',
'cannot_find_tag' => 'Firefly IIIはタグ「:tag」を見つけられませんでした',
'cannot_find_asset' => 'Firefly IIIは資産口座「:name」を見つけられませんでした',
'cannot_find_accounts' => 'Firefly IIIは引き出し元または預け入れ先口座を見つけられませんでした',
'cannot_find_source_transaction' => 'Firefly IIIは元となる取引を見つけられませんでした',
'cannot_find_destination_transaction' => 'Firefly IIIは対象となる取引を見つけられませんでした',
'cannot_find_source_transaction_account' => 'Firefly IIIは元となる取引の口座を見つけられませんでした',
'cannot_find_destination_transaction_account' => 'Firefly IIIは対象となる取引の口座を見つけられませんでした',
'cannot_find_piggy' => 'Firefly IIIは貯金箱「:name」を見つけられませんでした',
'no_link_piggy' => 'この取引の口座は貯金箱にリンクされていないため操作は行われません',
'cannot_unlink_tag' => 'タグ「:tag」はこの取引にリンクされていません',
'cannot_find_budget' => 'Firefly IIIは予算「:name」を見つけらませんでした',
'cannot_find_category' => 'Firefly IIIはカテゴリ「:name」を見つけらませんでした',
'cannot_set_budget' => 'Firefly IIIは予算「:name」を取引種別「:type」に設定できません',
];

View File

@@ -73,7 +73,7 @@ return [
'require_foreign_currency' => 'このフィールドには数字が必要です',
'require_foreign_dest' => 'この項目の値は預け入れ口座の通貨と一致する必要があります。',
'require_foreign_src' => 'この項目の値は、引き出し口座の通貨と一致する必要があります。',
'equal_description' => '取引の説明はグローバルな説明と同じであってはいけません。',
'equal_description' => '取引の概要は包括的な概要と同じであってはいけません。',
'file_invalid_mime' => '「:mime」タイプのファイル ":name" は新しいアップロードとして受け付けられません。',
'file_too_large' => 'ファイル ":name"は大きすぎます。',
'belongs_to_user' => ':attribute の数値が不明です。',
@@ -196,7 +196,7 @@ return [
'invalid_account_info' => 'アカウント情報が正しくありません。',
'attributes' => [
'email' => 'メールアドレス',
'description' => '説明',
'description' => '概要',
'amount' => '金額',
'transactions.*.amount' => '取引金額',
'name' => '名称',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -1342,7 +1342,7 @@ return [
'pref_custom_fiscal_year_help' => 'Voor in landen die een boekjaar gebruiken anders dan 1 januari tot 31 december',
'pref_fiscal_year_start_label' => 'Start van boekjaar',
'pref_two_factor_auth' => 'Authenticatie in twee stappen',
'pref_two_factor_auth_help' => 'Als je authenticatie in twee stappen (ook wel twee-factor authenticatie genoemd) inschakelt voeg je een extra beveiligingslaag toe aan je account. Je logt in met iets dat je weet (je wachtwoord) en iets dat je hebt (een verificatiecode). Verificatiecodes worden gegeneerd door apps op je telefoon, zoals Authy en Google Authenticator.',
'pref_two_factor_auth_help' => 'Als je authenticatie in twee stappen (ook wel twee-factor authenticatie genoemd) inschakelt voeg je een extra beveiligingslaag toe aan je account. Je logt in met iets dat je weet (je wachtwoord) en iets dat je hebt (een verificatiecode). Verificatiecodes worden gegenereerd door apps op je telefoon, zoals Authy en Google Authenticator.',
'pref_enable_two_factor_auth' => 'Authenticatie in twee stappen inschakelen',
'pref_two_factor_auth_disabled' => 'Je verificatiecode voor authenticatie in twee stappen is verwijderd, en uitgeschakeld',
'pref_two_factor_auth_remove_it' => 'Vergeet niet om je Firefly III account uit je authenticatie appje te verwijderen!',
@@ -1395,7 +1395,7 @@ return [
'pref_notification_new_access_token' => 'Melding wanneer een nieuwe API-toegangstoken wordt aangemaakt',
'pref_notification_transaction_creation' => 'Melding wanneer een transactie automatisch wordt aangemaakt',
'pref_notification_user_login' => 'Melding wanneer u inlogt vanaf een nieuwe locatie',
'pref_notification_rule_action_failures' => 'Alert when rule actions fail to execute (Slack or Discord only)',
'pref_notification_rule_action_failures' => 'Waarschuwen wanneer regelacties niet utgevoerd kunnen worden (alleen via Slack of Discord)',
'pref_notifications' => 'Meldingen',
'pref_notifications_help' => 'Geef aan of dit meldingen zijn die je zou willen krijgen. Sommige meldingen kunnen gevoelige financiële informatie bevatten.',
'slack_webhook_url' => 'Slack Webhook URL',
@@ -1625,8 +1625,8 @@ return [
'create_new_revenue' => 'Nieuwe debiteur',
'create_new_piggy_bank' => 'Nieuw spaarpotje',
'create_new_bill' => 'Nieuw contract',
'create_new_subscription' => 'Create new subscription',
'create_new_rule' => 'Create new rule',
'create_new_subscription' => 'Maak een nieuw abonnement',
'create_new_rule' => 'Maak een nieuwe regel',
// currencies:
'create_currency' => 'Voeg nieuwe valuta toe',
@@ -1785,7 +1785,7 @@ return [
'bill_repeats_half-year_skip' => 'Herhaalt elke {skip} halve jaren',
'bill_repeats_yearly_skip' => 'Herhaalt elke {skip} jaar',
'subscriptions' => 'Abonnementen',
'go_to_subscriptions' => 'Go to your subscriptions',
'go_to_subscriptions' => 'Ga naar je abonnementen',
'forever' => 'Voor altijd',
'extension_date_is' => 'Verlengdatum is {date}',
@@ -1827,10 +1827,10 @@ return [
'asset_accounts' => 'Betaalrekeningen',
'undefined_accounts' => 'Rekeningen',
'asset_accounts_inactive' => 'Betaalrekeningen (inactief)',
'expense_account' => 'Expense account',
'expense_account' => 'Crediteur',
'expense_accounts' => 'Crediteuren',
'expense_accounts_inactive' => 'Crediteuren (inactief)',
'revenue_account' => 'Revenue account',
'revenue_account' => 'Debiteur',
'revenue_accounts' => 'Debiteuren',
'revenue_accounts_inactive' => 'Debiteuren (inactief)',
'cash_accounts' => 'Contant geldrekeningen',
@@ -1919,7 +1919,7 @@ return [
'categories' => 'Categorieën',
'edit_category' => 'Wijzig categorie ":name"',
'no_category' => '(geen categorie)',
'unknown_category_plain' => 'No category',
'unknown_category_plain' => 'Geen categorie',
'category' => 'Categorie',
'delete_category' => 'Verwijder categorie ":name"',
'deleted_category' => 'Categorie ":name" verwijderd',
@@ -2087,12 +2087,12 @@ return [
'searchPlaceholder' => 'Zoeken...',
'version' => 'Versie',
'dashboard' => 'Dashboard',
'income_and_expense' => 'Income and expense',
'all_money' => 'All your money',
'unknown_source_plain' => 'Unknown source account',
'unknown_dest_plain' => 'Unknown destination account',
'unknown_any_plain' => 'Unknown account',
'unknown_budget_plain' => 'No budget',
'income_and_expense' => 'Inkomsten en uitgaven',
'all_money' => 'Al je geld',
'unknown_source_plain' => 'Onbekend bronrekening',
'unknown_dest_plain' => 'Onbekende doelrekening',
'unknown_any_plain' => 'Onbekende rekening',
'unknown_budget_plain' => 'Geen budget',
'available_budget' => 'Beschikbaar budget ({currency})',
'currencies' => 'Valuta',
'activity' => 'Activiteit',
@@ -2372,7 +2372,7 @@ return [
'created_tag' => 'Tag ":tag" opgeslagen!',
'transaction_journal_information' => 'Transactieinformatie',
'transaction_journal_amount' => 'Amount information',
'transaction_journal_amount' => 'Bedraginformatie',
'transaction_journal_meta' => 'Metainformatie',
'transaction_journal_more' => 'Meer informatie',
'basic_journal_information' => 'Standaard transactieinformatie',
@@ -2542,7 +2542,7 @@ return [
// object groups
'default_group_title_name' => '(ongegroepeerd)',
'default_group_title_name_plain' => 'ungrouped',
'default_group_title_name_plain' => 'ongegroepeerd',
// empty lists? no objects? instructions:
'no_accounts_title_asset' => 'Je hebt een betaalrekening nodig!',

View File

@@ -23,47 +23,49 @@ declare(strict_types=1);
return [
'main_message' => 'Action ":action", present in rule ":rule", could not be applied to transaction #:group: :error',
'find_or_create_tag_failed' => 'Could not find or create tag ":tag"',
'tag_already_added' => 'Tag ":tag" is already linked to this transaction',
'inspect_transaction' => 'Inspect transaction ":title" @ Firefly III',
'inspect_rule' => 'Inspect rule ":title" @ Firefly III',
'journal_other_user' => 'This transaction doesn\'t belong to the user',
'no_such_journal' => 'This transaction doesn\'t exist',
'journal_already_no_budget' => 'This transaction has no budget, so it cannot be removed',
'journal_already_no_category' => 'This transaction had no category, so it cannot be removed',
'journal_already_no_notes' => 'This transaction had no notes, so they cannot be removed',
'journal_not_found' => 'Firefly III can\'t find the requested transaction',
'split_group' => 'Firefly III cannot execute this action on a transaction with multiple splits',
'is_already_withdrawal' => 'This transaction is already a withdrawal',
'is_already_deposit' => 'This transaction is already a deposit',
'is_already_transfer' => 'This transaction is already a transfer',
'is_not_transfer' => 'This transaction is not a transfer',
'complex_error' => 'Something complicated went wrong. Sorry about that. Please inspect the logs of Firefly III',
'no_valid_opposing' => 'Conversion failed because there is no valid account named ":account"',
'new_notes_empty' => 'The notes to be set are empty',
'unsupported_transaction_type_withdrawal' => 'Firefly III cannot convert a ":type" to a withdrawal',
'unsupported_transaction_type_deposit' => 'Firefly III cannot convert a ":type" to a deposit',
'unsupported_transaction_type_transfer' => 'Firefly III cannot convert a ":type" to a transfer',
'already_has_source_asset' => 'This transaction already has ":name" as the source asset account',
'already_has_destination_asset' => 'This transaction already has ":name" as the destination asset account',
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',
'cannot_find_tag' => 'Firefly III can\'t find tag ":tag"',
'cannot_find_asset' => 'Firefly III can\'t find asset account ":name"',
'cannot_find_accounts' => 'Firefly III can\'t find the source or destination account',
'cannot_find_source_transaction' => 'Firefly III can\'t find the source transaction',
'cannot_find_destination_transaction' => 'Firefly III can\'t find the destination transaction',
'cannot_find_source_transaction_account' => 'Firefly III can\'t find the source transaction account',
'cannot_find_destination_transaction_account' => 'Firefly III can\'t find the destination transaction account',
'cannot_find_piggy' => 'Firefly III can\'t find a piggy bank named ":name"',
'no_link_piggy' => 'This transaction\'s accounts are not linked to the piggy bank, so no action will be taken',
'cannot_unlink_tag' => 'Tag ":tag" isn\'t linked to this transaction',
'cannot_find_budget' => 'Firefly III can\'t find budget ":name"',
'cannot_find_category' => 'Firefly III can\'t find category ":name"',
'cannot_set_budget' => 'Firefly III can\'t set budget ":name" to a transaction of type ":type"',
'main_message' => 'Actie ":action", aanwezig in regel ":rule", kan niet worden toegepast op transactie #:group: :error',
'find_or_create_tag_failed' => 'Kan de tag ":tag" niet vinden of aanmaken',
'tag_already_added' => 'Tag ":tag" is al gekoppeld aan deze transactie',
'inspect_transaction' => 'Bekijk transactie ":title" @ Firefly III',
'inspect_rule' => 'Bekijk regel ":title" @ Firefly III',
'journal_other_user' => 'Deze transactie hoort niet bij die gebruiker',
'no_such_journal' => 'Transactie bestaat niet',
'journal_already_no_budget' => 'Deze transactie heeft geen budget, dus deze kan niet worden verwijderd',
'journal_already_no_category' => 'Deze transactie heeft geen categorie, dus deze kan niet worden verwijderd',
'journal_already_no_notes' => 'Deze transactie heeft geen notities, dus deze kunnen niet worden verwijderd',
'journal_not_found' => 'Firefly III kan die transactie niet vinden',
'split_group' => 'Firefly III kan deze actie niet uitvoeren op een transactie met meerdere splits',
'is_already_withdrawal' => 'Deze transactie is al een uitgave',
'is_already_deposit' => 'Deze transactie is al inkomsten',
'is_already_transfer' => 'Deze transactie is al een overschrijving',
'is_not_transfer' => 'Deze transactie is geen overschrijving',
'complex_error' => 'Er ging iets moeilijks fout, sorry. Check de logs van Firefly III',
'no_valid_opposing' => 'Omzetten mislukt omdat er geen geldige rekening met naam ":account" bestaat',
'new_notes_empty' => 'De notities die moeten worden ingesteld zijn leeg',
'unsupported_transaction_type_withdrawal' => 'Firefly III kan geen ":type" converteren naar een uitgave',
'unsupported_transaction_type_deposit' => 'Firefly III kan geen ":type" converteren naar inkomsten',
'unsupported_transaction_type_transfer' => 'Firefly III kan geen ":type" converteren naar een overschrijving',
'already_has_source_asset' => 'Deze transactie heeft ":name" al als bronrekening',
'already_has_destination_asset' => 'Deze transactie heeft ":name" al als doelrekening',
'already_has_destination' => 'Deze transactie heeft ":name" al als doelrekening',
'already_has_source' => 'Deze transactie heeft ":name" al als bronrekening',
'already_linked_to_subscription' => 'De transactie is al gekoppeld aan abonnement ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III kan geen abonnement met naam ":name" vinden',
'no_notes_to_move' => 'De transactie heeft geen notities om te verplaatsen naar het omschrijvingsveld',
'no_tags_to_remove' => 'De transactie heeft geen tags om te verwijderen',
'cannot_find_tag' => 'Firefly III kan tag ":tag" niet vinden',
'cannot_find_asset' => 'Firefly III kan geen betaalrekening met naam ":name" vinden',
'cannot_find_accounts' => 'Firefly III kan de bron- of doelrekening niet vinden',
'cannot_find_source_transaction' => 'Firefly III kan de brontransactie niet vinden',
'cannot_find_destination_transaction' => 'Firefly III kan de doeltransactie niet vinden',
'cannot_find_source_transaction_account' => 'Firefly III kan de brontransactierekening niet vinden',
'cannot_find_destination_transaction_account' => 'Firefly III kan de doeltransactierekening niet vinden',
'cannot_find_piggy' => 'Firefly III kan geen spaarpotje vinden met de naam ":name"',
'no_link_piggy' => 'De accounts van deze transactie zijn niet gekoppeld dit spaarpotje',
'cannot_unlink_tag' => 'Tag ":tag" is niet gekoppeld aan deze transactie',
'cannot_find_budget' => 'Firefly III kan budget ":name" niet vinden',
'cannot_find_category' => 'Firefly III kan categorie ":name" niet vinden',
'cannot_set_budget' => 'Firefly III kan budget ":name" niet instellen op een transactie van het type ":type"',
];

View File

@@ -62,8 +62,8 @@ return [
'belongs_user' => 'Deze waarde is ongeldig voor dit veld.',
'at_least_one_transaction' => 'Er is op zijn minst één transactie nodig.',
'recurring_transaction_id' => 'Er is op zijn minst één transactie nodig.',
'need_id_to_match' => 'Je moet dit item met een ID versturen, anders snapt de API het niet.',
'too_many_unmatched' => 'Te veel transacties kunnen niet worden gekoppeld aan hun respectievelijke database-entries. Zorg ervoor dat bestaande transacties een geldig ID hebben.',
'need_id_to_match' => 'Je moet dit item met een ID versturen, zodat de API het kan matchen.',
'too_many_unmatched' => 'Te veel transacties kunnen niet worden gekoppeld aan hun respectievelijke databank gegeven. Zorg ervoor dat bestaande transacties een geldig ID hebben.',
'id_does_not_match' => 'Ingediend ID #:id komt niet overeen met het verwachte ID. Zorg ervoor dat het overeenkomt of laat het veld weg.',
'at_least_one_repetition' => 'Er is op zijn minst één herhaling nodig.',
'require_repeat_until' => 'Je moet een aantal herhalingen opgeven, of een einddatum (repeat_until). Niet beide.',

View File

@@ -320,7 +320,7 @@ return [
'update_newer_version_alert' => 'Du køyrer :your_version, som er nyare enn den nyaste versjonen, :new_version.',
'update_check_error' => 'Det oppstod ein feil under søk etter oppdatering: :error',
'unknown_error' => 'Ukjent feil. Beklager det.',
'just_new_release' => 'Ein ny versjon er tilgjengelig! Versjon :version vart utgitt :date. Denne utgjevinga er heilt ny. Vent gjerne nokon dager slik at den nye utgaven er stabil.',
'just_new_release' => 'Ein ny versjon er tilgjengeleg! Versjon :version vart tilgjengeleg :date. Denne utgjevinga er heilt ny. Vent gjerne nokre dagar for å sikra at den nye utgåva er stabil.',
'disabled_but_check' => 'Du har deaktivert oppdateringssjekk. Ikke glem å oppdatera sjølv av og til. Tusen takk!',
'admin_update_channel_title' => 'Oppdater kanal',
'admin_update_channel_explain' => 'Firefly III har tre oppdaterings "kanaler" som bestemmer kor mykje du ønskar å ligga foran med tanke på funksjoner, forbetringar og feil. Bruk beta-kanalen dersom du er eventyrlysten og "alfa" når du liker å leve farlig.',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',
@@ -62,8 +64,8 @@ return [
'cannot_find_destination_transaction_account' => 'Firefly III can\'t find the destination transaction account',
'cannot_find_piggy' => 'Firefly III can\'t find a piggy bank named ":name"',
'no_link_piggy' => 'This transaction\'s accounts are not linked to the piggy bank, so no action will be taken',
'cannot_unlink_tag' => 'Tag ":tag" isn\'t linked to this transaction',
'cannot_find_budget' => 'Firefly III can\'t find budget ":name"',
'cannot_find_category' => 'Firefly III can\'t find category ":name"',
'cannot_set_budget' => 'Firefly III can\'t set budget ":name" to a transaction of type ":type"',
'cannot_unlink_tag' => 'Tag ":tag" nie jest powiązany z tą transakcją',
'cannot_find_budget' => 'Firefly III nie może znaleźć budżetu ":name"',
'cannot_find_category' => 'Firefly III nie może znaleźć kategorii ":name"',
'cannot_set_budget' => 'Firefly III nie może ustawić budżetu ":name" dla transakcji typu ":type"',
];

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -41,8 +41,8 @@ return [
'transactions' => 'Transakcije',
'title_expenses' => 'Stroški',
'title_withdrawal' => 'Stroški',
'title_revenue' => 'Dohodki prihodki',
'title_deposit' => 'Dohodki/prihodki',
'title_revenue' => 'Dohodki / prihodki',
'title_deposit' => 'Dohodki / prihodki',
'title_transfer' => 'Prenosi',
'title_transfers' => 'Prenosi',
'edit_currency' => 'uredi valuto ":name"',

View File

@@ -573,18 +573,18 @@ return [
'search_modifier_interest_date_after_year' => 'Datum obresti transakcije je po ali v letu ":value"',
'search_modifier_interest_date_after_month' => 'Datum obresti transakcije je po ali v mesecu ":value"',
'search_modifier_interest_date_after_day' => 'Datum obresti transakcije je po ali na dan v mesecu ":value"',
'search_modifier_book_date_on_year' => 'Datum transakcijske knjige je v letu ":value"',
'search_modifier_book_date_on_month' => 'Datum transakcijske knjige je v mesecu ":value"',
'search_modifier_book_date_on_day' => 'Datum transakcijske knjige je na dan v mesecu ":value"',
'search_modifier_not_book_date_on_year' => 'Datum transakcijske knjige ni v letu ":value"',
'search_modifier_not_book_date_on_month' => 'Datum transakcijske knjige ni v mesecu ":value"',
'search_modifier_not_book_date_on_day' => 'Datum transakcijske knjige ni na dan v mesecu ":value"',
'search_modifier_book_date_before_year' => 'Datum transakcijske knjige je pred ali v letu ":value"',
'search_modifier_book_date_before_month' => 'Datum transakcijske knjige je pred ali v mesecu ":value"',
'search_modifier_book_date_before_day' => 'Datum transakcijske knjige je pred ali na dan v mesecu ":value"',
'search_modifier_book_date_after_year' => 'Datum transakcijske knjige je za ali v letu ":value"',
'search_modifier_book_date_after_month' => 'Datum transakcijske knjige je za ali v mesecu ":value"',
'search_modifier_book_date_after_day' => 'Datum transakcijske knjige je za ali na dan v mesecu ":value"',
'search_modifier_book_date_on_year' => 'Datum knjiženja je v letu ":value"',
'search_modifier_book_date_on_month' => 'Datum knjiženja je v mesecu ":value"',
'search_modifier_book_date_on_day' => 'Datum knjiženja je na dan v mesecu ":value"',
'search_modifier_not_book_date_on_year' => 'Datum knjiženja ni v letu ":value"',
'search_modifier_not_book_date_on_month' => 'Datum knjiženja ni v mesecu ":value"',
'search_modifier_not_book_date_on_day' => 'Datum knjiženja ni na dan v mesecu ":value"',
'search_modifier_book_date_before_year' => 'Datum knjiženja je pred ali v letu ":value"',
'search_modifier_book_date_before_month' => 'Datum knjiženja je pred ali v mesecu ":value"',
'search_modifier_book_date_before_day' => 'Datum knjiženja je pred ali na dan v mesecu ":value"',
'search_modifier_book_date_after_year' => 'Datum knjiženja je za ali v letu ":value"',
'search_modifier_book_date_after_month' => 'Datum knjiženja je za ali v mesecu ":value"',
'search_modifier_book_date_after_day' => 'Datum knjiženja je za ali na dan v mesecu ":value"',
'search_modifier_process_date_on_year' => 'Datum postopka transakcije je v letu ":value"',
'search_modifier_process_date_on_month' => 'Datum postopka transakcije je v mesecu ":value"',
'search_modifier_process_date_on_day' => 'Datum postopka transakcije je na dan v mesecu ":value"',
@@ -660,10 +660,10 @@ return [
'search_modifier_created_at_after_day' => 'Transakcija je bila ustvarjena na ali po dnevu v mesecu ":value"',
'search_modifier_interest_date_before' => 'Datum obresti transakcije je na ali pred ":value"',
'search_modifier_interest_date_after' => 'Datum obresti transakcije je na ali po ":value"',
'search_modifier_book_date_on' => 'Datum transakcijske knjige je ":value"',
'search_modifier_not_book_date_on' => 'Datum transakcijske knjige ni ":value"',
'search_modifier_book_date_before' => 'Datum transakcijske knjige je na ali pred ":value"',
'search_modifier_book_date_after' => 'Datum transakcijske knjige je na ali po ":value"',
'search_modifier_book_date_on' => 'Datum knjiženja je ":value"',
'search_modifier_not_book_date_on' => 'Datum knjiženja ni ":value"',
'search_modifier_book_date_before' => 'Datum knjiženja je na ali pred ":value"',
'search_modifier_book_date_after' => 'Datum knjiženja je na ali po ":value"',
'search_modifier_process_date_on' => 'Datum postopka transakcije je na ":value"',
'search_modifier_not_process_date_on' => 'Datum postopka transakcije ni na ":value"',
'search_modifier_process_date_before' => 'Datum postopka transakcije je na ali pred ":value"',
@@ -1064,27 +1064,27 @@ return [
'rule_trigger_attachment_name_contains_choice' => 'Vsako ime priloge vsebuje ...',
'rule_trigger_attachment_name_contains' => 'Vsako ime priloge vsebuje ":trigger_value"',
'rule_trigger_attachment_name_starts_choice' => 'Vsako ime priloge se začne z ...',
'rule_trigger_attachment_name_starts' => 'Any attachment\'s name starts with ":trigger_value"',
'rule_trigger_attachment_name_ends_choice' => 'Any attachment\'s name ends with..',
'rule_trigger_attachment_name_ends' => 'Any attachment\'s name ends with ":trigger_value"',
'rule_trigger_attachment_notes_are_choice' => 'Any attachment\'s notes are..',
'rule_trigger_attachment_notes_are' => 'Any attachment\'s notes are ":trigger_value"',
'rule_trigger_attachment_notes_contains_choice' => 'Any attachment\'s notes contain..',
'rule_trigger_attachment_notes_contains' => 'Any attachment\'s notes contain ":trigger_value"',
'rule_trigger_attachment_notes_starts_choice' => 'Any attachment\'s notes start with..',
'rule_trigger_attachment_notes_starts' => 'Any attachment\'s notes start with ":trigger_value"',
'rule_trigger_attachment_notes_ends_choice' => 'Any attachment\'s notes end with..',
'rule_trigger_attachment_notes_ends' => 'Any attachment\'s notes end with ":trigger_value"',
'rule_trigger_reconciled_choice' => 'Transaction is reconciled',
'rule_trigger_reconciled' => 'Transaction is reconciled',
'rule_trigger_exists_choice' => 'Any transaction matches(!)',
'rule_trigger_exists' => 'Any transaction matches',
'rule_trigger_attachment_name_starts' => 'Vsako ime priloge se začne z ":trigger_value"',
'rule_trigger_attachment_name_ends_choice' => 'Vsako ime priloge se konča s/z ...',
'rule_trigger_attachment_name_ends' => 'Vsako ime priloge se konča s/z ":trigger_value"',
'rule_trigger_attachment_notes_are_choice' => 'Morebitne opombe k prilogi so ...',
'rule_trigger_attachment_notes_are' => 'Vse opombe k prilogi so ":trigger_value"',
'rule_trigger_attachment_notes_contains_choice' => 'Vse opombe k prilogi vsebujejo ...',
'rule_trigger_attachment_notes_contains' => 'Vse opombe k prilogi vsebujejo ":trigger_value"',
'rule_trigger_attachment_notes_starts_choice' => 'Vse opombe k prilogi se začnejo s/z ...',
'rule_trigger_attachment_notes_starts' => 'Vse opombe k prilogi se začnejo s/z ":trigger_value"',
'rule_trigger_attachment_notes_ends_choice' => 'Vse opombe k prilogi se končajo s/z ...',
'rule_trigger_attachment_notes_ends' => 'Vse opombe k prilogi se končajo s/z ":trigger_value"',
'rule_trigger_reconciled_choice' => 'Transakcija je usklajena',
'rule_trigger_reconciled' => 'Transakcija je usklajena',
'rule_trigger_exists_choice' => 'Katera koli transakcija se ujema(!)',
'rule_trigger_exists' => 'Vsaka transakcija se ujema',
// more values for new types:
'rule_trigger_not_account_id' => 'Account ID is not ":trigger_value"',
'rule_trigger_not_source_account_id' => 'Source account ID is not ":trigger_value"',
'rule_trigger_not_destination_account_id' => 'Destination account ID is not ":trigger_value"',
'rule_trigger_not_transaction_type' => 'Transaction type is not ":trigger_value"',
'rule_trigger_not_account_id' => 'ID računa ni ":trigger_value"',
'rule_trigger_not_source_account_id' => 'ID izvornega računa ni ":trigger_value"',
'rule_trigger_not_destination_account_id' => 'ID ciljnega računa ni ":trigger_value"',
'rule_trigger_not_transaction_type' => 'Vrsta transakcije ni ":trigger_value"',
'rule_trigger_not_tag_is' => 'Oznaka ni ":trigger_value"',
'rule_trigger_not_tag_is_not' => 'Oznaka je ":trigger_value"',
'rule_trigger_not_description_is' => 'Opis ni ":trigger_value"',
@@ -1095,27 +1095,27 @@ return [
'rule_trigger_not_notes_contains' => 'Opombe ne vsebujejo ":trigger_value',
'rule_trigger_not_notes_ends' => 'Opombe se ne končajo na ":trigger_value"',
'rule_trigger_not_notes_starts' => 'Opombe se ne začnejo s/z ":trigger_value"',
'rule_trigger_not_source_account_is' => 'Source account is not ":trigger_value"',
'rule_trigger_not_source_account_contains' => 'Source account does not contain ":trigger_value"',
'rule_trigger_not_source_account_ends' => 'Source account does not end on ":trigger_value"',
'rule_trigger_not_source_account_starts' => 'Source account does not start with ":trigger_value"',
'rule_trigger_not_source_account_nr_is' => 'Source account number / IBAN is not ":trigger_value"',
'rule_trigger_not_source_account_nr_contains' => 'Source account number / IBAN does not contain ":trigger_value"',
'rule_trigger_not_source_account_nr_ends' => 'Source account number / IBAN does not end on ":trigger_value"',
'rule_trigger_not_source_account_nr_starts' => 'Source account number / IBAN does not start with ":trigger_value"',
'rule_trigger_not_destination_account_is' => 'Destination account is not ":trigger_value"',
'rule_trigger_not_destination_account_contains' => 'Destination account does not contain ":trigger_value"',
'rule_trigger_not_destination_account_ends' => 'Destination account does not end on ":trigger_value"',
'rule_trigger_not_destination_account_starts' => 'Destination account does not start with ":trigger_value"',
'rule_trigger_not_destination_account_nr_is' => 'Destination account number / IBAN is not ":trigger_value"',
'rule_trigger_not_destination_account_nr_contains' => 'Destination account number / IBAN does not contain ":trigger_value"',
'rule_trigger_not_destination_account_nr_ends' => 'Destination account number / IBAN does not end on ":trigger_value"',
'rule_trigger_not_destination_account_nr_starts' => 'Destination account number / IBAN does not start with ":trigger_value"',
'rule_trigger_not_account_is' => 'Neither account is ":trigger_value"',
'rule_trigger_not_account_contains' => 'Neither account contains ":trigger_value"',
'rule_trigger_not_account_ends' => 'Neither account ends on ":trigger_value"',
'rule_trigger_not_account_starts' => 'Neither account starts with ":trigger_value"',
'rule_trigger_not_account_nr_is' => 'Neither account number / IBAN is ":trigger_value"',
'rule_trigger_not_source_account_is' => 'Izvorni račun ni ":trigger_value"',
'rule_trigger_not_source_account_contains' => 'Izvorni račun ne vsebuje ":trigger_value"',
'rule_trigger_not_source_account_ends' => 'Izvorni račun se ne konča na ":trigger_value"',
'rule_trigger_not_source_account_starts' => 'Izvorni račun se ne začne s/z ":trigger_value"',
'rule_trigger_not_source_account_nr_is' => 'Izvorna številka računa/IBAN ni ":trigger_value"',
'rule_trigger_not_source_account_nr_contains' => 'Izvorna številka računa/IBAN ne vsebuje ":trigger_value"',
'rule_trigger_not_source_account_nr_ends' => 'Izvorna številka računa / IBAN se ne konča na ":trigger_value"',
'rule_trigger_not_source_account_nr_starts' => 'Izvorna številka računa/IBAN se ne začne s/z ":trigger_value"',
'rule_trigger_not_destination_account_is' => 'Ciljni račun ni ":trigger_value"',
'rule_trigger_not_destination_account_contains' => 'Ciljni račun ne vsebuje ":trigger_value"',
'rule_trigger_not_destination_account_ends' => 'Ciljni račun se ne konča na ":trigger_value"',
'rule_trigger_not_destination_account_starts' => 'Ciljni račun se ne začne s/z ":trigger_value"',
'rule_trigger_not_destination_account_nr_is' => 'Številka ciljnega računa/IBAN ni ":trigger_value"',
'rule_trigger_not_destination_account_nr_contains' => 'Številka ciljnega računa / IBAN ne vsebuje ":trigger_value"',
'rule_trigger_not_destination_account_nr_ends' => 'Številka ciljnega računa / IBAN se ne konča na ":trigger_value"',
'rule_trigger_not_destination_account_nr_starts' => 'Številka ciljnega računa / IBAN se ne začne s/z ":trigger_value"',
'rule_trigger_not_account_is' => 'Noben račun ni ":trigger_value"',
'rule_trigger_not_account_contains' => 'Noben račun ne vsebuje ":trigger_value"',
'rule_trigger_not_account_ends' => 'Noben račun se ne konča na ":trigger_value"',
'rule_trigger_not_account_starts' => 'Noben račun se ne začne s/z ":trigger_value"',
'rule_trigger_not_account_nr_is' => 'Nobena številka računa/IBAN ni ":trigger_value"',
'rule_trigger_not_account_nr_contains' => 'Nobena številka računa / IBAN ne vsebuje ":trigger_value"',
'rule_trigger_not_account_nr_ends' => 'Nobena številka računa / IBAN se ne konča na ":trigger_value"',
'rule_trigger_not_account_nr_starts' => 'Nobena številka računa / IBAN se začne z ":trigger_value"',
@@ -1160,54 +1160,54 @@ return [
'rule_trigger_not_process_date_on' => 'Datum postopka ni na ":trigger_value"',
'rule_trigger_not_process_date_before' => 'Datum postopka ni pred ":trigger_value"',
'rule_trigger_not_process_date_after' => 'Datum postopka ni po ":trigger_value"',
'rule_trigger_not_due_date_on' => 'Due date is not on ":trigger_value"',
'rule_trigger_not_due_date_before' => 'Due date is not before ":trigger_value"',
'rule_trigger_not_due_date_after' => 'Due date is not after ":trigger_value"',
'rule_trigger_not_payment_date_on' => 'Payment date is not on ":trigger_value"',
'rule_trigger_not_payment_date_before' => 'Payment date is not before ":trigger_value"',
'rule_trigger_not_payment_date_after' => 'Payment date is not after ":trigger_value"',
'rule_trigger_not_invoice_date_on' => 'Invoice date is not on ":trigger_value"',
'rule_trigger_not_invoice_date_before' => 'Invoice date is not before ":trigger_value"',
'rule_trigger_not_invoice_date_after' => 'Invoice date is not after ":trigger_value"',
'rule_trigger_not_created_at_on' => 'Transaction is not created on ":trigger_value"',
'rule_trigger_not_created_at_before' => 'Transaction is not created before ":trigger_value"',
'rule_trigger_not_created_at_after' => 'Transaction is not created after ":trigger_value"',
'rule_trigger_not_updated_at_on' => 'Transaction is not updated on ":trigger_value"',
'rule_trigger_not_updated_at_before' => 'Transaction is not updated before ":trigger_value"',
'rule_trigger_not_updated_at_after' => 'Transaction is not updated after ":trigger_value"',
'rule_trigger_not_amount_is' => 'Transaction amount is not ":trigger_value"',
'rule_trigger_not_amount_less' => 'Transaction amount is more than ":trigger_value"',
'rule_trigger_not_amount_more' => 'Transaction amount is less than ":trigger_value"',
'rule_trigger_not_foreign_amount_is' => 'Foreign transaction amount is not ":trigger_value"',
'rule_trigger_not_foreign_amount_less' => 'Foreign transaction amount is more than ":trigger_value"',
'rule_trigger_not_foreign_amount_more' => 'Foreign transaction amount is less than ":trigger_value"',
'rule_trigger_not_attachment_name_is' => 'No attachment is named ":trigger_value"',
'rule_trigger_not_attachment_name_contains' => 'No attachment name contains ":trigger_value"',
'rule_trigger_not_attachment_name_starts' => 'No attachment name starts with ":trigger_value"',
'rule_trigger_not_attachment_name_ends' => 'No attachment name ends on ":trigger_value"',
'rule_trigger_not_attachment_notes_are' => 'No attachment notes are ":trigger_value"',
'rule_trigger_not_attachment_notes_contains' => 'No attachment notes contain ":trigger_value"',
'rule_trigger_not_attachment_notes_starts' => 'No attachment notes start with ":trigger_value"',
'rule_trigger_not_attachment_notes_ends' => 'No attachment notes end on ":trigger_value"',
'rule_trigger_not_reconciled' => 'Transaction is not reconciled',
'rule_trigger_not_exists' => 'Transaction does not exist',
'rule_trigger_not_has_attachments' => 'Transaction has no attachments',
'rule_trigger_not_has_any_category' => 'Transaction has no category',
'rule_trigger_not_has_any_budget' => 'Transaction has no category',
'rule_trigger_not_has_any_bill' => 'Transaction has no bill',
'rule_trigger_not_has_any_tag' => 'Transaction has no tags',
'rule_trigger_not_any_notes' => 'Transaction has no notes',
'rule_trigger_not_any_external_url' => 'Transaction has no external URL',
'rule_trigger_not_has_no_attachments' => 'Transaction has a (any) attachment(s)',
'rule_trigger_not_has_no_category' => 'Transaction has a (any) category',
'rule_trigger_not_has_no_budget' => 'Transaction has a (any) budget',
'rule_trigger_not_has_no_bill' => 'Transaction has a (any) bill',
'rule_trigger_not_has_no_tag' => 'Transaction has a (any) tag',
'rule_trigger_not_no_notes' => 'Transaction has any notes',
'rule_trigger_not_no_external_url' => 'Transaction has an external URL',
'rule_trigger_not_source_is_cash' => 'Source account is not a cash account',
'rule_trigger_not_destination_is_cash' => 'Destination account is not a cash account',
'rule_trigger_not_account_is_cash' => 'Neither account is a cash account',
'rule_trigger_not_due_date_on' => 'Rok ni na ":trigger_value"',
'rule_trigger_not_due_date_before' => 'Rok ni pred ":trigger_value"',
'rule_trigger_not_due_date_after' => 'Rok ni za ":trigger_value"',
'rule_trigger_not_payment_date_on' => 'Datum plačila ni na ":trigger_value"',
'rule_trigger_not_payment_date_before' => 'Datum plačila ni pred ":trigger_value"',
'rule_trigger_not_payment_date_after' => 'Datum plačila ni po ":trigger_value"',
'rule_trigger_not_invoice_date_on' => 'Datum računa ni na ":trigger_value"',
'rule_trigger_not_invoice_date_before' => 'Datum računa ni pred ":trigger_value"',
'rule_trigger_not_invoice_date_after' => 'Datum računa ni za ":trigger_value"',
'rule_trigger_not_created_at_on' => 'Transakcija ni ustvarjena na ":trigger_value"',
'rule_trigger_not_created_at_before' => 'Transakcija ni ustvarjena pred ":trigger_value"',
'rule_trigger_not_created_at_after' => 'Transakcija ni ustvarjena po ":trigger_value"',
'rule_trigger_not_updated_at_on' => 'Transakcija ni posodobljena na ":trigger_value"',
'rule_trigger_not_updated_at_before' => 'Transakcija ni posodobljena pred ":trigger_value"',
'rule_trigger_not_updated_at_after' => 'Transakcija ni posodobljena po ":trigger_value"',
'rule_trigger_not_amount_is' => 'Znesek transakcije ni ":trigger_value"',
'rule_trigger_not_amount_less' => 'Znesek transakcije je večji od ":trigger_value"',
'rule_trigger_not_amount_more' => 'Znesek transakcije je manjši od ":trigger_value"',
'rule_trigger_not_foreign_amount_is' => 'Znesek transakcije v tujini ni ":trigger_value"',
'rule_trigger_not_foreign_amount_less' => 'Znesek tuje transakcije je večji od ":trigger_value"',
'rule_trigger_not_foreign_amount_more' => 'Znesek tuje transakcije je manjši od ":trigger_value"',
'rule_trigger_not_attachment_name_is' => 'Nobena priloga ni imenovana ":trigger_value"',
'rule_trigger_not_attachment_name_contains' => 'Nobeno ime priloge ne vsebuje ":trigger_value"',
'rule_trigger_not_attachment_name_starts' => 'Nobeno ime priloge se ne začne z ":trigger_value"',
'rule_trigger_not_attachment_name_ends' => 'Nobeno ime priloge se ne konča na ":trigger_value"',
'rule_trigger_not_attachment_notes_are' => 'Nobena opomba v prilogi ni ":trigger_value"',
'rule_trigger_not_attachment_notes_contains' => 'Nobena opomba v prilogi ne vsebuje ":trigger_value"',
'rule_trigger_not_attachment_notes_starts' => 'Nobena opomba v prilogi se ne začne z ":trigger_value"',
'rule_trigger_not_attachment_notes_ends' => 'Nobena opomba v prilogi se ne konča na ":trigger_value"',
'rule_trigger_not_reconciled' => 'Transakcija ni usklajena',
'rule_trigger_not_exists' => 'Transakcija ne obstaja',
'rule_trigger_not_has_attachments' => 'Transakcija nima prilog',
'rule_trigger_not_has_any_category' => 'Transakcija nima kategorije',
'rule_trigger_not_has_any_budget' => 'Transakcija nima kategorije',
'rule_trigger_not_has_any_bill' => 'Transakcija nima računa',
'rule_trigger_not_has_any_tag' => 'Transakcija nima oznak',
'rule_trigger_not_any_notes' => 'Transakcija nima opomb',
'rule_trigger_not_any_external_url' => 'Transakcija nima zunanjega URL-ja',
'rule_trigger_not_has_no_attachments' => 'Transakcija ima (poljubne) priloge',
'rule_trigger_not_has_no_category' => 'Transakcija ima (poljubno) kategorijo',
'rule_trigger_not_has_no_budget' => 'Transakcija ima (poljubni) proračun',
'rule_trigger_not_has_no_bill' => 'Transakcija ima (poljubni) račun',
'rule_trigger_not_has_no_tag' => 'Transakcija ima (poljubno) oznako',
'rule_trigger_not_no_notes' => 'Transakcija ima morebitne opombe',
'rule_trigger_not_no_external_url' => 'Transakcija ima zunanji URL',
'rule_trigger_not_source_is_cash' => 'Izvorni račun ni gotovinski račun',
'rule_trigger_not_destination_is_cash' => 'Ciljni račun ni gotovinski račun',
'rule_trigger_not_account_is_cash' => 'Noben račun ni denarni račun',
/*
* PLEASE DO NOT EDIT THIS FILE DIRECTLY.
@@ -1243,8 +1243,8 @@ return [
'rule_action_remove_tag_choice' => 'Odstrani oznako ...',
'rule_action_remove_all_tags_choice' => 'Odstrani vse oznake',
'rule_action_set_description_choice' => 'Nastavi opis na ...',
'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_update_piggy_choice' => 'Dodaj/odstrani znesek transakcije v hranilniku ...',
'rule_action_update_piggy' => 'Dodaj/odstrani znesek transakcije v hranilnik ":action_value"',
'rule_action_append_description_choice' => 'Za opis dodaj ...',
'rule_action_prepend_description_choice' => 'Pred opis dodaj ...',
'rule_action_set_source_account_choice' => 'Nastavi izvorni račun na ...',
@@ -1260,8 +1260,8 @@ return [
'rule_action_set_notes_choice' => 'Nastavi opombe na ...',
'rule_action_link_to_bill_choice' => 'Poveži s trajnikom ...',
'rule_action_link_to_bill' => 'Poveži s trajnikom ":action_value"',
'rule_action_switch_accounts_choice' => 'Switch source and destination accounts (transfers only!)',
'rule_action_switch_accounts' => 'Switch source and destination',
'rule_action_switch_accounts_choice' => 'Zamenjajte izvorni in ciljni račun (samo prenosi!)',
'rule_action_switch_accounts' => 'Zamenjava vira in cilja',
'rule_action_set_notes' => 'Nastavi opombe na ":action_value"',
'rule_action_convert_deposit_choice' => 'Pretvori transakcijo v polog',
'rule_action_convert_deposit' => 'Pretvori transakcijo v polog iz ":action_value"',
@@ -1269,20 +1269,20 @@ return [
'rule_action_convert_withdrawal' => 'Pretvori transakcijo v odliv na ":action_value"',
'rule_action_convert_transfer_choice' => 'Pretvori transakcijo v prenos',
'rule_action_convert_transfer' => 'Pretvori transakcijo v prenos z ":action_value"',
'rule_action_append_descr_to_notes_choice' => 'Append the description to the transaction notes',
'rule_action_append_notes_to_descr_choice' => 'Append the transaction notes to the description',
'rule_action_move_descr_to_notes_choice' => 'Replace the current transaction notes with the description',
'rule_action_move_notes_to_descr_choice' => 'Replace the current description with the transaction notes',
'rule_action_append_descr_to_notes_choice' => 'Opis dodajte opombam o transakciji',
'rule_action_append_notes_to_descr_choice' => 'Opisu pripnite opombe o transakciji',
'rule_action_move_descr_to_notes_choice' => 'Zamenjajte trenutne opombe o transakciji z opisom',
'rule_action_move_notes_to_descr_choice' => 'Zamenjajte trenutni opis z opombami o transakciji',
'rule_action_append_descr_to_notes' => 'Za opis dodaj ...',
'rule_action_append_notes_to_descr' => 'Append notes to description',
'rule_action_move_descr_to_notes' => 'Replace notes with description',
'rule_action_move_notes_to_descr' => 'Replace description with notes',
'rule_action_append_notes_to_descr' => 'Dodajte opombe opisu',
'rule_action_move_descr_to_notes' => 'Opombe zamenjajte z opisom',
'rule_action_move_notes_to_descr' => 'Zamenjajte opis z opombami',
'rulegroup_for_bills_title' => 'Skupina pravil za trajnike',
'rulegroup_for_bills_description' => 'A special rule group for all the rules that involve bills.',
'rule_for_bill_title' => 'Auto-generated rule for bill ":name"',
'rule_for_bill_description' => 'This rule is auto-generated to try to match bill ":name".',
'rulegroup_for_bills_description' => 'Posebna skupina pravil za vsa pravila, ki vključujejo račune.',
'rule_for_bill_title' => 'Samodejno ustvarjeno pravilo za račun ":name"',
'rule_for_bill_description' => 'To pravilo je samodejno ustvarjeno za poskus ujemanja računa ":name".',
'create_rule_for_bill' => 'Ustvari novo pravilo za trajnik: ":name"',
'create_rule_for_bill_txt' => 'You have just created a new bill called ":name", congratulations!Firefly III can automagically match new withdrawals to this bill. For example, whenever you pay your rent, the bill "rent" will be linked to the expense. This way, Firefly III can accurately show you which bills are due and which ones aren\'t. In order to do so, a new rule must be created. Firefly III has filled in some sensible defaults for you. Please make sure these are correct. If these values are correct, Firefly III will automatically link the correct withdrawal to the correct bill. Please check out the triggers to see if they are correct, and add some if they\'re wrong.',
'create_rule_for_bill_txt' => 'Pravkar ste ustvarili nov račun z imenom ":name", čestitamo! Firefly III lahko samodejno poveže nove dvige s tem računom. Na primer, kadar koli plačate najemnino, bo račun "najemnina" povezan s stroški. Tako vam lahko Firefly III natančno pokaže, kateri računi so zapadli in kateri ne. Če želite to narediti, je treba ustvariti novo pravilo. Firefly III je za vas izpolnil nekaj smiselnih privzetih vrednosti. Preverite, ali so pravilni. Če so te vrednosti pravilne, Firefly III samodejno poveže pravilen dvig s pravilnim računom. Preverite sprožilce, da vidite, ali so pravilni, in jih dodajte, če so napačni.',
'new_rule_for_bill_title' => 'Pravilo za trajnik ":name"',
'new_rule_for_bill_description' => 'To pravilo označuje transakcije za trajnik ":name".',
@@ -1303,9 +1303,9 @@ return [
'clear_location' => 'Počisti lokacijo',
'delete_all_selected_tags' => 'Izbriši vse izbrane oznake',
'select_tags_to_delete' => 'Ne pozabi izbrati oznak.',
'deleted_x_tags' => 'Deleted :count tag.|Deleted :count tags.',
'deleted_x_tags' => 'Izbrisana :count oznaka.|Izbrisanih :count oznak.',
'create_rule_from_transaction' => 'Ustvari pravilo, ki temelji na transakciji',
'create_recurring_from_transaction' => 'Create recurring transaction based on transaction',
'create_recurring_from_transaction' => 'Ustvarite ponavljajočo se transakcijo na podlagi transakcije',
// preferences
@@ -1314,7 +1314,7 @@ return [
'dark_mode_option_dark' => 'Vedno temna tema',
'equal_to_language' => '(enako jeziku)',
'dark_mode_preference' => 'Temen način',
'dark_mode_preference_help' => 'Tell Firefly III when to use dark mode.',
'dark_mode_preference_help' => 'Povejte Firefly III, kdaj naj uporabi temni način.',
'pref_home_screen_accounts' => 'Računi na začetni strani',
'pref_home_screen_accounts_help' => 'Kateri računi naj bodo prikazani na začetni strani?',
'pref_view_range' => 'Ogled intervala',
@@ -1330,13 +1330,13 @@ return [
'pref_last30' => 'Zadnjih 30 dni',
'pref_last7' => 'Zadnjih 7 dni',
'pref_YTD' => 'Leto do datuma',
'pref_QTD' => 'Quarter to date',
'pref_MTD' => 'Month to date',
'pref_QTD' => 'Četrtletje do danes',
'pref_MTD' => 'Mesec do datuma',
'pref_languages' => 'Jeziki',
'pref_locale' => 'Področne nastavitve',
'pref_languages_help' => 'Firefly III podpira več jezikov. Kateri ti je ljubši?',
'pref_locale_help' => 'V Firefly III lahko nastaviš ostale nastavitve lokalizacije, kot na primer prikaz valut, števil in datumov. Tvoj sistem morda ne podpira vnosov na tem seznamu. Firefly III nima pravilnih nastavitev prikaza datuma za vse lokalizacije; kontaktirajte me za izboljšave.',
'pref_locale_no_demo' => 'This feature won\'t work for the demo user.',
'pref_locale_no_demo' => 'Ta funkcija ne bo delovala za demo uporabnika.',
'pref_custom_fiscal_year' => 'Nastavitve fiskalnega leta',
'pref_custom_fiscal_year_label' => 'Omogočeno',
'pref_custom_fiscal_year_help' => 'V državah, ki uporabljajo finančno leto, ki je drugače od 1. januarja do 31. decembra, lahko to vklopite in določite prvi / zadnji dan fiskalnega leta',
@@ -1392,44 +1392,44 @@ return [
'optional_field_meta_data' => 'Izbirni meta podatki',
'external_url' => 'Zunanji URL',
'pref_notification_bill_reminder' => 'Opomnik o poteklih trajnikih',
'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_notification_new_access_token' => 'Opozorilo, ko je ustvarjen nov žeton za dostop do API-ja',
'pref_notification_transaction_creation' => 'Opozorilo, ko je transakcija ustvarjena samodejno',
'pref_notification_user_login' => 'Opozorilo, ko se prijavite z nove lokacije',
'pref_notification_rule_action_failures' => 'Opozorilo, ko se dejanja pravila ne izvedejo (samo Slack ali Discord)',
'pref_notifications' => 'Obvestila',
'pref_notifications_help' => 'Indicate if these are notifications you would like to get. Some notifications may contain sensitive financial information.',
'pref_notifications_help' => 'Označite, ali so to obvestila, ki jih želite prejemati. Nekatera obvestila lahko vsebujejo občutljive finančne podatke.',
'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_help' => 'Če želite, da vas Firefly III obvesti s storitvijo Slack, tukaj vnesite URL webhook. V nasprotnem primeru pustite polje prazno. Če ste skrbnik, morate ta URL nastaviti tudi v administraciji.',
'slack_url_label' => 'Slack "dohodni webhook" URL',
// Financial administrations
'administration_index' => 'Finančna administracija',
'administrations_index_menu' => 'Finančna administracija',
// 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_title' => 'Čiščenje podatkov iz Firefly III',
'purge_data_expl' => '"Čiščenje" pomeni "brisanje tistega, kar je že izbrisano". V normalnih okoliščinah Firefly III ničesar trajno ne izbriše. To samo skriva. Spodnji gumb izbriše vse te prej "izbrisane" zapise ZA VEDNO.',
'delete_stuff_header' => 'Brisanje in čiščenje podatkov',
'purge_all_data' => 'Počisti vse izbrisane zapise',
'purge_data' => 'Izbris podatkov',
'purged_all_records' => 'All deleted records have been purged.',
'delete_data_title' => 'Delete data from 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' => 'All your other sessions have been logged out.',
'delete_unused_accounts' => 'Deleting unused accounts will clean your auto-complete lists.',
'delete_all_unused_accounts' => 'Delete unused accounts',
'deleted_all_unused_accounts' => 'All unused accounts are deleted',
'purged_all_records' => 'Vsi izbrisani zapisi so bili izbrisani.',
'delete_data_title' => 'Izbrišite podatke iz Firefly III',
'permanent_delete_stuff' => 'Iz Firefly III lahko izbrišete stvari. Uporaba spodnjih gumbov pomeni, da bodo vaši predmeti odstranjeni iz pogleda in skriti. Za to ni gumba za razveljavitev, vendar lahko elementi ostanejo v bazi podatkov, kjer jih lahko po potrebi rešite.',
'other_sessions_logged_out' => 'Vse vaše druge seje so bile odjavljene.',
'delete_unused_accounts' => 'Če izbrišete neuporabljene račune, boste počistili svoje sezname za samodejno dokončanje.',
'delete_all_unused_accounts' => 'Izbrišite neuporabljene račune',
'deleted_all_unused_accounts' => 'Vsi neuporabljeni računi so izbrisani',
'delete_all_budgets' => 'Izbriši VSE proračune',
'delete_all_categories' => 'Delete ALL your categories',
'delete_all_tags' => 'Delete ALL your tags',
'delete_all_bills' => 'Delete ALL your bills',
'delete_all_piggy_banks' => 'Delete ALL your piggy banks',
'delete_all_rules' => 'Delete ALL your rules',
'delete_all_recurring' => 'Delete ALL your recurring transactions',
'delete_all_categories' => 'Izbrišite VSE vaše kategorije',
'delete_all_tags' => 'Izbriši VSE oznake',
'delete_all_bills' => 'Izbriši VSE račune',
'delete_all_piggy_banks' => 'Izbriši VSE hranilnike',
'delete_all_rules' => 'Izbriši VSA pravila',
'delete_all_recurring' => 'Izbriši VSE ponavljajoče transakcije',
'delete_all_object_groups' => 'Delete ALL your object groups',
'delete_all_accounts' => 'Delete ALL your accounts',
'delete_all_asset_accounts' => 'Delete ALL your asset accounts',
'delete_all_expense_accounts' => 'Delete ALL your expense accounts',
'delete_all_expense_accounts' => 'Izbriši VSE račune stroškov',
'delete_all_revenue_accounts' => 'Delete ALL your revenue accounts',
'delete_all_liabilities' => 'Delete ALL your liabilities',
'delete_all_transactions' => 'Delete ALL your transactions',
@@ -1439,7 +1439,7 @@ return [
'also_delete_transactions' => 'Brisanje računa bo pobrisalo tudi VSE povezane dvige, pologe in prenose!',
'deleted_all_budgets' => 'Vsi proračuni so bili izbrisani',
'deleted_all_categories' => 'Vse kategorije so bile izbrisane',
'deleted_all_tags' => 'All tags have been deleted',
'deleted_all_tags' => 'Vse oznake so bile izbrisane',
'deleted_all_bills' => 'All bills have been deleted',
'deleted_all_piggy_banks' => 'Vsi hranilniki so bili izbrisani',
'deleted_all_rules' => 'All rules and rule groups have been deleted',
@@ -1514,7 +1514,7 @@ return [
'profile_oauth_client_secret_expl' => 'Here is your new client secret. This is the only time it will be shown so don\'t lose it! You may now use this secret to make API requests.',
'profile_personal_access_tokens' => 'Personal Access Tokens',
'profile_personal_access_token' => 'Personal Access Token',
'profile_oauth_confidential' => 'Confidential',
'profile_oauth_confidential' => 'Zaupno',
'profile_oauth_confidential_help' => 'Require the client to authenticate with a secret. Confidential clients can hold credentials in a secure way without exposing them to unauthorized parties. Public applications, such as native desktop or JavaScript SPA applications, are unable to hold secrets securely.',
'profile_personal_access_token_explanation' => 'Here is your new personal access token. This is the only time it will be shown so don\'t lose it! You may now use this token to make API requests.',
'profile_no_personal_access_token' => 'You have not created any personal access tokens.',
@@ -1549,7 +1549,7 @@ return [
'export_data_bc' => 'Izvozi podatke iz Firefly III',
'export_data_main_title' => 'Izvozi podatke iz Firefly III',
'export_data_expl' => 'This link allows you to export all transactions + meta data from Firefly III. Please refer to the help (top right (?)-icon) for more information about the process.',
'export_data_all_transactions' => 'Export all transactions',
'export_data_all_transactions' => 'Izvozi vse transakcije',
'export_data_advanced_expl' => 'If you need a more advanced or specific type of export, read the help on how to use the console command <code>php artisan help firefly-iii:export-data</code>.',
// attachments
@@ -1573,7 +1573,7 @@ return [
'title_transfers' => 'Prenosi',
'submission_options' => 'Submission options',
'apply_rules_checkbox' => 'Uporabi pravila',
'fire_webhooks_checkbox' => 'Fire webhooks',
'fire_webhooks_checkbox' => 'Sproži Webhooke',
// convert stuff:
'convert_is_already_type_Withdrawal' => 'Ta transakcija je že odliv',
@@ -1786,7 +1786,7 @@ return [
'bill_repeats_yearly_skip' => 'Repeats every {skip} years',
'subscriptions' => 'Naročnine',
'go_to_subscriptions' => 'Pojdite na svoje naročnine',
'forever' => 'Forever',
'forever' => 'V nedolged',
'extension_date_is' => 'Extension date is {date}',
// accounts:
@@ -1983,13 +1983,13 @@ return [
'cannot_change_amount_reconciled' => 'You can\'t change the amount of reconciled transactions.',
'no_budget' => '(brez proračuna)',
'no_bill' => '(ni računa)',
'account_per_budget' => 'Account per budget',
'account_per_budget' => 'Porabljeno po proračunu',
'account_per_category' => 'Account per category',
'create_new_object' => 'Ustvari',
'empty' => '(empty)',
'empty' => '(prazno)',
'all_other_budgets' => '(all other budgets)',
'all_other_accounts' => '(all other accounts)',
'expense_per_source_account' => 'Expenses per source account',
'expense_per_source_account' => 'Stroški po računih',
'expense_per_destination_account' => 'Expenses per destination account',
'income_per_destination_account' => 'Income per destination account',
'spent_in_specific_category' => 'Spent in category ":category"',
@@ -2156,7 +2156,7 @@ return [
'interest_period_help' => 'This field is purely cosmetic and won\'t be calculated for you. As it turns out banks are very sneaky so Firefly III never gets it right.',
'store_new_liabilities_account' => 'Shrani novo obveznost',
'edit_liabilities_account' => 'Uredi obveznost ":name"',
'financial_control' => 'Financial control',
'financial_control' => 'Nadzor financ',
'accounting' => 'Računovodstvo',
'automation' => 'Avtomatizacija',
'others' => 'Drugo',
@@ -2372,7 +2372,7 @@ return [
'created_tag' => 'Oznaka ":tag" je bila ustvarjena!',
'transaction_journal_information' => 'Informacije o transakciji',
'transaction_journal_amount' => 'Amount information',
'transaction_journal_amount' => 'Informacije o znesku',
'transaction_journal_meta' => 'Meta informacije',
'transaction_journal_more' => 'Več informacij',
'basic_journal_information' => 'Basic transaction information',

View File

@@ -68,7 +68,7 @@ return [
'journal_description' => 'Opis',
'note' => 'Opombe',
'currency' => 'Valuta',
'account_id' => 'premoženjski račun',
'account_id' => 'Račun sredstev',
'budget_id' => 'Proračun',
'bill_id' => 'Račun',
'opening_balance' => 'Začetno stanje',
@@ -97,7 +97,7 @@ return [
'returnHereExplanation' => 'Po shranjevanju se vrni sem in ustvari še eno.',
'returnHereUpdateExplanation' => 'Po shranjevanju se vrni sem.',
'description' => 'Opis',
'expense_account' => 'konto stroškov',
'expense_account' => 'Račun stroškov',
'revenue_account' => 'Račun prihodkov',
'decimal_places' => 'Decimalke',
'destination_amount' => 'Znesek (cilj)',

View File

@@ -44,7 +44,7 @@ return [
'balance_before' => 'Stanje prej',
'balance_after' => 'Stanje potem',
'name' => 'ime',
'role' => 'vloga',
'role' => 'Vloga',
'currentBalance' => 'trenutno stanje',
'linked_to_rules' => 'Ustrezna pravila',
'active' => 'Aktiviran?',
@@ -94,7 +94,7 @@ return [
'internal_reference' => 'Interna referenca',
'notes' => 'Zabeležke',
'from' => 'Pošiljatelj',
'piggy_bank' => 'Pujsek',
'piggy_bank' => 'Hranilnik',
'to' => 'Prejemnik',
'budget' => 'Budžet',
'category' => 'Kategorija',

View File

@@ -23,47 +23,49 @@ declare(strict_types=1);
return [
'main_message' => 'Action ":action", present in rule ":rule", could not be applied to transaction #:group: :error',
'find_or_create_tag_failed' => 'Could not find or create tag ":tag"',
'tag_already_added' => 'Tag ":tag" is already linked to this transaction',
'inspect_transaction' => 'Inspect transaction ":title" @ Firefly III',
'inspect_rule' => 'Inspect rule ":title" @ Firefly III',
'journal_other_user' => 'This transaction doesn\'t belong to the user',
'no_such_journal' => 'This transaction doesn\'t exist',
'journal_already_no_budget' => 'This transaction has no budget, so it cannot be removed',
'journal_already_no_category' => 'This transaction had no category, so it cannot be removed',
'journal_already_no_notes' => 'This transaction had no notes, so they cannot be removed',
'journal_not_found' => 'Firefly III can\'t find the requested transaction',
'split_group' => 'Firefly III cannot execute this action on a transaction with multiple splits',
'is_already_withdrawal' => 'This transaction is already a withdrawal',
'is_already_deposit' => 'This transaction is already a deposit',
'is_already_transfer' => 'This transaction is already a transfer',
'is_not_transfer' => 'This transaction is not a transfer',
'complex_error' => 'Something complicated went wrong. Sorry about that. Please inspect the logs of Firefly III',
'no_valid_opposing' => 'Conversion failed because there is no valid account named ":account"',
'new_notes_empty' => 'The notes to be set are empty',
'unsupported_transaction_type_withdrawal' => 'Firefly III cannot convert a ":type" to a withdrawal',
'unsupported_transaction_type_deposit' => 'Firefly III cannot convert a ":type" to a deposit',
'unsupported_transaction_type_transfer' => 'Firefly III cannot convert a ":type" to a transfer',
'already_has_source_asset' => 'This transaction already has ":name" as the source asset account',
'already_has_destination_asset' => 'This transaction already has ":name" as the destination asset account',
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',
'cannot_find_tag' => 'Firefly III can\'t find tag ":tag"',
'cannot_find_asset' => 'Firefly III can\'t find asset account ":name"',
'cannot_find_accounts' => 'Firefly III can\'t find the source or destination account',
'cannot_find_source_transaction' => 'Firefly III can\'t find the source transaction',
'cannot_find_destination_transaction' => 'Firefly III can\'t find the destination transaction',
'cannot_find_source_transaction_account' => 'Firefly III can\'t find the source transaction account',
'cannot_find_destination_transaction_account' => 'Firefly III can\'t find the destination transaction account',
'cannot_find_piggy' => 'Firefly III can\'t find a piggy bank named ":name"',
'no_link_piggy' => 'This transaction\'s accounts are not linked to the piggy bank, so no action will be taken',
'cannot_unlink_tag' => 'Tag ":tag" isn\'t linked to this transaction',
'cannot_find_budget' => 'Firefly III can\'t find budget ":name"',
'cannot_find_category' => 'Firefly III can\'t find category ":name"',
'cannot_set_budget' => 'Firefly III can\'t set budget ":name" to a transaction of type ":type"',
'main_message' => 'Dejanja ":action", ki je prisotno v pravilu ":rule", ni bilo mogoče uporabiti za transakcijo #:group: :error',
'find_or_create_tag_failed' => 'Ni bilo mogoče najti ali ustvariti oznake »:tag«',
'tag_already_added' => 'Oznaka ":tag" je že povezana s to transakcijo',
'inspect_transaction' => 'Preglejte transakcijo ":title" @ Firefly III',
'inspect_rule' => 'Preglejte pravilo ":title" @ Firefly III',
'journal_other_user' => 'Ta transakcija ne pripada uporabniku',
'no_such_journal' => 'Ta transakcija ne obstaja',
'journal_already_no_budget' => 'Ta transakcija nima proračuna, zato je ni mogoče odstraniti',
'journal_already_no_category' => 'Ta transakcija ni imela kategorije, zato je ni mogoče odstraniti',
'journal_already_no_notes' => 'Ta transakcija ni imela opomb, zato jih ni mogoče odstraniti',
'journal_not_found' => 'Firefly III ne najde zahtevane transakcije',
'split_group' => 'Firefly III ne more izvesti tega dejanja na transakciji z več delitvami',
'is_already_withdrawal' => 'Ta transakcija je že dvig',
'is_already_deposit' => 'Ta transakcija je že depozit',
'is_already_transfer' => 'Ta transakcija je že prenos',
'is_not_transfer' => 'Ta transakcija ni prenos',
'complex_error' => 'Nekaj zapletenega je šlo narobe. Oprosti za to. Prosimo, preglejte dnevnike Firefly III',
'no_valid_opposing' => 'Pretvorba ni uspela, ker ni veljavnega računa z imenom ":account"',
'new_notes_empty' => 'Opombe, ki jih želite nastaviti, so prazne',
'unsupported_transaction_type_withdrawal' => 'Firefly III ne more pretvoriti ":type" v dvig',
'unsupported_transaction_type_deposit' => 'Firefly III ne more pretvoriti ":type" v depozit',
'unsupported_transaction_type_transfer' => 'Firefly III ne more pretvoriti ":type" v prenos',
'already_has_source_asset' => 'Ta transakcija že ima ":name" kot izvorni račun sredstva',
'already_has_destination_asset' => 'Ta transakcija že ima »:name« kot ciljni račun sredstev',
'already_has_destination' => 'Ta transakcija že ima ":name" kot ciljni račun',
'already_has_source' => 'Ta transakcija že ima ":name" kot izvorni račun',
'already_linked_to_subscription' => 'Transakcija je že povezana z naročnino ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III ne najde naročnine ":name"',
'no_notes_to_move' => 'Transakcija nima nobenih opomb, ki bi jih bilo treba premakniti v polje opisa',
'no_tags_to_remove' => 'Transakcija nima oznak za odstranitev',
'cannot_find_tag' => 'Firefly III ne najde oznake ":tag"',
'cannot_find_asset' => 'Firefly III ne najde računa sredstev ":name"',
'cannot_find_accounts' => 'Firefly III ne najde izvornega ali ciljnega računa',
'cannot_find_source_transaction' => 'Firefly III ne najde izvorne transakcije',
'cannot_find_destination_transaction' => 'Firefly III ne najde ciljne transakcije',
'cannot_find_source_transaction_account' => 'Firefly III ne najde izvornega transakcijskega računa',
'cannot_find_destination_transaction_account' => 'Firefly III ne najde ciljnega transakcijskega računa',
'cannot_find_piggy' => 'Firefly III ne najde hranilnika z imenom ":name"',
'no_link_piggy' => 'Računi te transakcije niso povezani s hranilnikom, zato ne bo nobenih ukrepov',
'cannot_unlink_tag' => 'Oznaka ":tag" ni povezana s to transakcijo',
'cannot_find_budget' => 'Firefly III ne najde proračuna ":name"',
'cannot_find_category' => 'Firefly III ne najde kategorije ":name"',
'cannot_set_budget' => 'Firefly III ne more nastaviti proračuna ":name" na transakcijo tipa ":type"',
];

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -265,7 +265,7 @@ return [
'updated_webhook' => 'Оновлено веб-хук ":title"',
'edit_webhook_js' => 'Редагувати веб-хук "{title}"',
'show_webhook' => 'Веб-хук ":title"',
'webhook_was_triggered' => 'The webhook was triggered on the indicated transaction. Please wait for results to appear.',
'webhook_was_triggered' => 'Вебхук був запущений в зазначеній транзакції. Будь ласка, зачекайте на отримання результатів.',
'webhook_messages' => 'Повідомлення веб-хука',
'view_message' => 'Переглянути повідомлення',
'view_attempts' => 'Переглянути невдалі спроби',
@@ -279,8 +279,8 @@ return [
'response' => 'Відповідь',
'visit_webhook_url' => 'Відвідайте URL-адресу веб-хуку',
'reset_webhook_secret' => 'Відновити сікрет веб-хука',
'webhook_stored_link' => '<a href="webhooks/show/{ID}">Webhook #{ID} ("{title}")</a> has been stored.',
'webhook_updated_link' => '<a href="webhooks/show/{ID}">Webhook #{ID}</a> ("{title}") has been updated.',
'webhook_stored_link' => '<a href="webhooks/show/{ID}">Вебхук #{ID} ("{title}")</a> був збережений.',
'webhook_updated_link' => '<a href="webhooks/show/{ID}">Вебхук #{ID}</a> ("{title}") був оновлений.',
// API access
'authorization_request' => 'Firefly III v:version запит авторизації',
@@ -363,11 +363,11 @@ return [
'search_modifier_no_external_url' => 'Операція не має зовнішнього URL',
'search_modifier_no_external_id' => 'Операція не має зовнішнього ID',
'search_modifier_not_any_external_url' => 'Операція не має зовнішнього URL',
'search_modifier_not_any_external_id' => 'The transaction has no external ID',
'search_modifier_not_any_external_id' => 'Операція не має зовнішнього ID',
'search_modifier_any_external_url' => 'Операція повинна мати зовнішні URL-адреси (будь-який)',
'search_modifier_any_external_id' => 'The transaction must have a (any) external ID',
'search_modifier_any_external_id' => 'Операція повинна мати (якийсь) зовнішній ID',
'search_modifier_not_no_external_url' => 'Операція повинна мати (будь-які) зовнішні URL-адреси',
'search_modifier_not_no_external_id' => 'The transaction must have a (any) external ID',
'search_modifier_not_no_external_id' => 'Операція повинна мати (якийсь) зовнішній ID',
'search_modifier_internal_reference_is' => 'Внутрішнє посилання - ":value"',
'search_modifier_not_internal_reference_is' => 'Внутрішнє посилання не ":value"',
'search_modifier_description_starts' => 'Опис починається з ":value"',
@@ -705,7 +705,7 @@ return [
'search_modifier_not_attachment_notes_contains' => 'Будь-які примітки вкладення не містять ":value"',
'search_modifier_not_attachment_notes_starts' => 'Будь-які примітки до вкладення починаються з ":value"',
'search_modifier_not_attachment_notes_ends' => 'Примітки до вкладення не закінчуються на ":value"',
'search_modifier_sepa_ct_is' => 'SEPA CT is ":value"',
'search_modifier_sepa_ct_is' => 'SEPA CT дорівнює ":value"',
'update_rule_from_query' => 'Оновити правило ":rule" із пошукового запиту',
'create_rule_from_query' => 'Створити нове правило з пошукового запиту',
'rule_from_search_words' => 'Рушію правил важко обробити ":string". Пропоноване правило, яке відповідає вашому запиту, може дати різні результати. Будь ласка, уважно перевіряйте умови.',
@@ -864,12 +864,12 @@ return [
'rule_trigger_transaction_type' => 'Тип операції ":trigger_value"',
'rule_trigger_category_is_choice' => 'Категорія є..',
'rule_trigger_category_is' => 'Категорія дорівнює ":trigger_value"',
'rule_trigger_amount_less_choice' => 'Amount is less than or equal to ..',
'rule_trigger_amount_less' => 'Amount is less than or equal to :trigger_value',
'rule_trigger_amount_less_choice' => 'Сума менша або дорівнює ..',
'rule_trigger_amount_less' => 'Сума менша або дорівнює :trigger_value',
'rule_trigger_amount_is_choice' => 'Сума..',
'rule_trigger_amount_is' => 'Сума :trigger_value',
'rule_trigger_amount_more_choice' => 'Amount is more than or equal to..',
'rule_trigger_amount_more' => 'Amount is more than or equal to :trigger_value',
'rule_trigger_amount_more_choice' => 'Сума більше або дорівнює..',
'rule_trigger_amount_more' => 'Сума більше або дорівнює :trigger_value',
'rule_trigger_description_starts_choice' => 'Опис починається з..',
'rule_trigger_description_starts' => 'Опис починається з ":trigger_value"',
'rule_trigger_description_ends_choice' => 'Опис закінчується на..',
@@ -934,17 +934,17 @@ return [
'rule_trigger_internal_reference_is' => 'Внутрішнє посилання ":trigger_value"',
'rule_trigger_journal_id_choice' => 'Ідентифікатор журналу операцій є..',
'rule_trigger_journal_id' => 'Ідентифікатор журналу операцій є ":trigger_value"',
'rule_trigger_any_external_url' => 'Transaction has an (any) external URL',
'rule_trigger_any_external_url_choice' => 'Transaction has an (any) external URL',
'rule_trigger_any_external_id' => 'Transaction has an (any) external ID',
'rule_trigger_any_external_id_choice' => 'Transaction has an (any) external ID',
'rule_trigger_any_external_url' => 'Операція має (якусь) зовнішню URL-адресу',
'rule_trigger_any_external_url_choice' => 'Операція має (якусь) зовнішню URL-адресу',
'rule_trigger_any_external_id' => 'Операція має (якийсь) зовнішній ID',
'rule_trigger_any_external_id_choice' => 'Операція має (якийсь) зовнішній ID',
'rule_trigger_no_external_url_choice' => 'Операція не має зовнішньої URL-адреси',
'rule_trigger_no_external_url' => 'Операція не має зовнішньої URL-адреси',
'rule_trigger_no_external_id_choice' => 'Transaction has no external ID',
'rule_trigger_no_external_id' => 'Transaction has no external ID',
'rule_trigger_no_external_id_choice' => 'Операція не має зовнішнього ID',
'rule_trigger_no_external_id' => 'Операція не має зовнішнього ID',
'rule_trigger_id_choice' => 'Ідентифікатор операції..',
'rule_trigger_id' => 'Ідентифікатор операції: ":trigger_value"',
'rule_trigger_sepa_ct_is_choice' => 'SEPA CT is..',
'rule_trigger_sepa_ct_is_choice' => 'SEPA CT дорівнює..',
'rule_trigger_sepa_ct_is' => 'SEPA CT is ":trigger_value"',
// new values:
@@ -1242,7 +1242,7 @@ return [
'rule_action_add_tag_choice' => 'Додати тег..',
'rule_action_remove_tag_choice' => 'Видалити тег..',
'rule_action_remove_all_tags_choice' => 'Видалити усі теги',
'rule_action_set_description_choice' => 'Set description to ..',
'rule_action_set_description_choice' => 'Встановити опис на..',
'rule_action_update_piggy_choice' => 'Add / remove transaction amount in piggy bank ..',
'rule_action_update_piggy' => 'Додати/видалити суму транзакції в скарбничці ":action_value"',
'rule_action_append_description_choice' => 'Append description with ..',
@@ -1309,9 +1309,9 @@ return [
// preferences
'dark_mode_option_browser' => 'Let your browser decide',
'dark_mode_option_light' => 'Always light',
'dark_mode_option_dark' => 'Always dark',
'dark_mode_option_browser' => 'Дозвольте браузеру вирішити',
'dark_mode_option_light' => 'Завжди світла',
'dark_mode_option_dark' => 'Завжди темна',
'equal_to_language' => '(прирівнюється до мови)',
'dark_mode_preference' => 'Темний режим',
'dark_mode_preference_help' => 'Tell Firefly III when to use dark mode.',
@@ -1336,7 +1336,7 @@ return [
'pref_locale' => 'Налаштування локалі',
'pref_languages_help' => 'Firefly III підтримує декілька мов. Якій ви віддаєте перевагу?',
'pref_locale_help' => 'Firefly III дозволяє встановлювати інші локальні налаштування, такі як валюти, числа та дати. Записи в цьому списку можуть не підтримуватися вашою системою. Firefly III не має правильних параметрів дати для кожної локалі; зв\'яжіться зі мною для вдосконалення.',
'pref_locale_no_demo' => 'This feature won\'t work for the demo user.',
'pref_locale_no_demo' => 'Ця функція не працюватиме для демо-користувача.',
'pref_custom_fiscal_year' => 'Налаштування фінансового року',
'pref_custom_fiscal_year_label' => 'Увiмкнено',
'pref_custom_fiscal_year_help' => 'У країнах, які використовують фінансовий рік, крім 1 січня до 31 грудня, ви можете увімкнути це і вказати початкові/кінцеві дні фіскального року',
@@ -1351,8 +1351,8 @@ return [
'pref_two_factor_auth_reset_code' => 'Скинути код підтвердження',
'pref_two_factor_auth_disable_2fa' => 'Вимкнути 2FA',
'2fa_use_secret_instead' => 'If you cannot scan the QR code, feel free to use the secret instead: <code>:secret</code>.',
'2fa_backup_codes' => 'Store these backup codes for access in case you lose your device.',
'2fa_already_enabled' => '2-step verification is already enabled.',
'2fa_backup_codes' => 'Збережіть ці резервні коди доступу на випадок втрати вашого пристрій.',
'2fa_already_enabled' => 'Двоетапну перевірку вже увімкнено.',
'wrong_mfa_code' => 'Цей MFA код не дійсний.',
'pref_save_settings' => 'Зберегти налаштування',
'saved_preferences' => 'Налаштування збережено!',
@@ -2080,15 +2080,15 @@ return [
// menu and titles, should be recycled as often as possible:
'currency' => 'Валюта',
'preferences' => 'Preferences',
'logout' => 'Logout',
'logout_other_sessions' => 'Logout all other sessions',
'toggleNavigation' => 'Toggle navigation',
'preferences' => 'Налаштування',
'logout' => 'Вихід із системи',
'logout_other_sessions' => 'Вийти з усіх інших сеансів',
'toggleNavigation' => 'Переключити навігацію',
'searchPlaceholder' => 'Пошук...',
'version' => 'Версія',
'dashboard' => 'Головна панель',
'income_and_expense' => 'Income and expense',
'all_money' => 'All your money',
'all_money' => 'Усі ваші гроші',
'unknown_source_plain' => 'Unknown source account',
'unknown_dest_plain' => 'Unknown destination account',
'unknown_any_plain' => 'Unknown account',

View File

@@ -70,7 +70,7 @@ return [
'currency' => 'Валюта',
'account_id' => 'Рахунок активів',
'budget_id' => 'Бюджет',
'bill_id' => 'Bill',
'bill_id' => 'Рахунок',
'opening_balance' => 'Початковий баланс',
'tagMode' => 'Режим міток',
'virtual_balance' => 'Віртуальний баланс',
@@ -146,12 +146,12 @@ return [
'stop_processing' => 'Зупинити обробку',
'start_date' => 'Початок діапазону',
'end_date' => 'Кінець діапазону',
'enddate' => 'End date',
'move_rules_before_delete' => 'Rule group',
'enddate' => 'Кінцева дата',
'move_rules_before_delete' => 'Група правил',
'start' => 'Початок діапазону',
'end' => 'Кінець діапазону',
'delete_account' => 'Видалити акаунт ":name"',
'delete_webhook' => 'Delete webhook ":title"',
'delete_webhook' => 'Видалити вебхук ":title"',
'delete_bill' => 'Видалити квитанцію ":name"',
'delete_budget' => 'Видалити бюджет ":name"',
'delete_category' => 'Видалити категорію ":name"',
@@ -166,13 +166,13 @@ return [
'user_areYouSure' => 'Якщо ви видалите користувача ":email", усе зникне. Не існує операції відміни. Якщо видалите себе, ви втратите доступ до цього екземпяру Firefly III.',
'attachment_areYouSure' => 'Ви дійсно бажаєте видалити прикріплення з назвою ":name"?',
'account_areYouSure' => 'Ви впевнені, що хочете видалити обліковий запис з назвою ":name"?',
'account_areYouSure_js' => 'Are you sure you want to delete the account named "{name}"?',
'account_areYouSure_js' => 'Ви впевнені, що хочете видалити рахунок "{name}"?',
'bill_areYouSure' => 'Ви впевнені, що хочете видалити квитанцію з назвою ":name"?',
'rule_areYouSure' => 'Ви дійсно бажаєте видалити правило ":title"?',
'object_group_areYouSure' => 'Ви дійсно бажаєте видалити групу з назвою ":title"?',
'ruleGroup_areYouSure' => 'Ви дійсно бажаєте видалити групу правил ":title"?',
'budget_areYouSure' => 'Ви впевнені, що хочете видалити бюджет ":name"?',
'webhook_areYouSure' => 'Are you sure you want to delete the webhook named ":title"?',
'webhook_areYouSure' => 'Ви впевнені, що хочете видалити вебхук з назвою ":title"?',
'category_areYouSure' => 'Ви впевнені, що хочете видалити категорію ":name"?',
'recurring_areYouSure' => 'Ви впевнені, що хочете видалити регулфрну трансакцію ":title"?',
'currency_areYouSure' => 'Ви впевнені, що хочете видалити валюту":name"?',
@@ -200,11 +200,11 @@ return [
'delete_all_permanently' => 'Видалити обране назавжди',
'update_all_journals' => 'Оновити ці транзакції',
'also_delete_transactions' => 'Єдина транзакція, що пов\'язана з цим рахунком, буде видалена.|Усі :count транзакції, пов\'язані з цим рахунком, також будуть видалені.',
'also_delete_transactions_js' => 'No transactions|The only transaction connected to this account will be deleted as well.|All {count} transactions connected to this account will be deleted as well.',
'also_delete_transactions_js' => 'Немає операцій|Єдина операція, що повʼязана з цим рахунком, буде також видалена.|Всі операції {count}, повʼязані з цим рахунком, будуть також видалені.',
'also_delete_connections' => 'Єдина транзакція, пов\'язана з цим типом посилання, втратить це з\'єднання. | Всі :count транзакції, пов\'язані з цим типом посилання втратять з\'єднання.',
'also_delete_rules' => 'Єдине правило, що пов\'язане з цією групою правил, буде видалено.|Усі :count правила, пов\'язані з цією групою правил, також будуть видалені.',
'also_delete_piggyBanks' => 'Єдина скарбничка, що пов\'язана з цим рахунком, буде видалена.|Усі :count скарбнички, пов\'язані з цим рахунком, також будуть видалені.',
'also_delete_piggyBanks_js' => 'No piggy banks|The only piggy bank connected to this account will be deleted as well.|All {count} piggy banks connected to this account will be deleted as well.',
'also_delete_piggyBanks_js' => 'Немає скарбничок|Єдина скарбничка, що пов\'язана з цим рахунком, буде видалена.|Всі скарбнички {count}, що пов\'язані з цим рахунком, також будуть видалені.',
'not_delete_piggy_banks' => 'Скарбничка, що пов\'язана з цією групою не буде видалена.| Усі :count скарбнички, що пов\'язані з цією групою не будуть видалені.',
'bill_keep_transactions' => 'Єдина транзакція, що пов\'язана з цією квитанцією, не буде видалена.|Усі :count транзакції, пов\'язані з цією квитанцією, уникнуть видалення.',
'budget_keep_transactions' => 'Єдина транзакція, що пов\'язана з цим бюджетом, не буде видалена.|Усі :count транзакції, пов\'язані з цим бюджетом, також уникнуть видалення.',
@@ -221,8 +221,8 @@ return [
'blocked_code' => 'Причина блокування',
'login_name' => 'Логін',
'is_owner' => 'Адміністратор?',
'url' => 'URL',
'bill_end_date' => 'End date',
'url' => 'URL-адреса',
'bill_end_date' => 'Кінцева дата',
// import
'apply_rules' => 'Застосувати правила',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -50,6 +50,8 @@ return [
'already_has_destination' => 'This transaction already has ":name" as the destination account',
'already_has_source' => 'This transaction already has ":name" as the source account',
'already_linked_to_subscription' => 'The transaction is already linked to subscription ":name"',
'already_linked_to_category' => 'The transaction is already linked to category ":name"',
'already_linked_to_budget' => 'The transaction is already linked to budget ":name"',
'cannot_find_subscription' => 'Firefly III can\'t find subscription ":name"',
'no_notes_to_move' => 'The transaction has no notes to move to the description field',
'no_tags_to_remove' => 'The transaction has no tags to remove',

View File

@@ -18,7 +18,7 @@
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('accounts.create', objectType) }}"><span
class="fa fa-plus fa-fw"></span> {{ ('make_new_' ~ objectType ~ '_account')|_ }}
class="fa fa-plus fa-fw"></span> {{ ('make_new_' ~ objectType ~ '_account')|_ }}
</a></li>
</ul>
</div>
@@ -37,7 +37,7 @@
<div class="box-footer">
<p>
<a href="{{ route('accounts.create', objectType) }}" class="btn btn-success"><span
class="fa fa-plus fa-fw"></span> {{ ('make_new_' ~ objectType ~ '_account')|_ }}</a>
class="fa fa-plus fa-fw"></span> {{ ('make_new_' ~ objectType ~ '_account')|_ }}</a>
</p>
{% if inactiveCount > 0 %}
<p><small>

View File

@@ -18,12 +18,12 @@
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span
class="fa fa-ellipsis-v"></span></button>
class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('accounts.edit', account.id) }}"><span
class="fa fa-pencil fa-fw"></span> {{ 'edit'|_ }}</a></li>
class="fa fa-pencil fa-fw"></span> {{ 'edit'|_ }}</a></li>
<li><a href="{{ route('accounts.delete', account.id) }}"><span
class="fa fa-trash fa-fw"></span> {{ 'delete'|_ }}</a></li>
class="fa fa-trash fa-fw"></span> {{ 'delete'|_ }}</a></li>
</ul>
</div>
</div>

View File

@@ -28,9 +28,9 @@
{% if linkType.editable %}
<div class="btn-group btn-group-xs">
<a class="btn btn-default btn-xs" href="{{ route('admin.links.edit',linkType.id) }}"><span
class="fa fa-fw fa-pencil"></span></a>
class="fa fa-fw fa-pencil"></span></a>
<a class="btn btn-danger btn-xs" href="{{ route('admin.links.delete',linkType.id) }}"><span
class="fa fa-fw fa-trash-o"></span></a>
class="fa fa-fw fa-trash-o"></span></a>
</div>
{% endif %}
</td>

View File

@@ -27,9 +27,9 @@
<tr>
<td>
<div class="btn-group btn-group-xs">
<a href="{{ route('transactions.link.delete', [link.id]) }}" class="btn btn-danger delete-link" data-id="{{ link.id }}"><span class="fa fa-trash"></span></a>
<a href="{{ route('transactions.link.delete', [link.id]) }}" class="btn btn-danger delete-link" data-id="{{ link.id }}"><span class="fa fa-trash"></span></a>
<a href="#" class="btn btn-default switch-link" data-id="{{ link.id }}"><span
class="fa fa-fw fa-arrows-h"></span></a>
class="fa fa-fw fa-arrows-h"></span></a>
</div>
</td>
<td data-value="{{ link.source.description }}">
@@ -61,6 +61,7 @@
<script nonce="{{ JS_NONCE }}">
$('.switch-link').on('click', switchLink);
var switchLinkUrl = '{{ route('transactions.link.switch') }}';
function switchLink(e) {
e.preventDefault();
var obj = $(e.currentTarget);

View File

@@ -55,9 +55,9 @@
<td class="hidden-xs" data-value="{{ user.id }}">
<div class="btn-group btn-group-xs">
<a class="btn btn-default" href="{{ route('admin.users.edit',user.id) }}"><span
class="fa fa-pencil"></span></a>
class="fa fa-pencil"></span></a>
<a class="btn btn-danger" href="{{ route('admin.users.delete',user.id) }}"><span
class="fa fa-trash"></span></a>
class="fa fa-trash"></span></a>
</div>
</td>
<td class="hidden-xs" data-value="{{ user.id }}">#{{ user.id }}</td>
@@ -138,7 +138,7 @@
<td class="hidden-xs" data-value="{{ user.id }}">
<div class="btn-group btn-group-xs">
<a class="btn btn-danger delete-invite" href="{{ route('admin.users.delete-invite', invitee.id) }}"><span
class="fa fa-trash"></span></a>
class="fa fa-trash"></span></a>
</div>
</td>
<td>
@@ -153,7 +153,7 @@
{{ invitee.expires.format('H:i') }}
</td>
<td>
{{ invitee.user.email }}
{{ invitee.user.email }}
</td>
<td>
{% if invitee.redeemed %}

View File

@@ -68,9 +68,9 @@
{% endblock %}
{% block styles %}
<link href="v1/css/bootstrap-tagsinput.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.structure.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.theme.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/bootstrap-tagsinput.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.structure.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.theme.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/lib/bootstrap-tagsinput.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>

View File

@@ -8,33 +8,33 @@
{% if total == 0 %}
{% include 'partials.empty' with {objectType: 'default', type: 'bills',route: route('bills.create')} %}
{% else %}
<div class="row">
<div class="col-lg-12 col-sm-12 col-md-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ title }}</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('bills.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'new_bill'|_ }}</a></li>
</ul>
<div class="row">
<div class="col-lg-12 col-sm-12 col-md-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ title }}</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('bills.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'new_bill'|_ }}</a></li>
</ul>
</div>
</div>
</div>
<div class="box-body no-padding">
<div style="padding:8px;">
<a class="btn btn-success" href="{{ route('bills.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'create_new_bill'|_ }}</a>
</div>
{% include 'list/bills' %}
</div>
<div class="box-footer">
<a class="btn btn-success" href="{{ route('bills.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'create_new_bill'|_ }}</a>
</div>
</div>
</div>
<div class="box-body no-padding">
<div style="padding:8px;">
<a class="btn btn-success" href="{{ route('bills.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'create_new_bill'|_ }}</a>
</div>
{% include 'list/bills' %}
</div>
<div class="box-footer">
<a class="btn btn-success" href="{{ route('bills.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'create_new_bill'|_ }}</a>
</div>
</div>
</div>
</div>
{% endif %}
{% endif %}
{% endblock %}
{% block styles %}

View File

@@ -99,7 +99,7 @@
<form action="{{ route('bills.rescan',object.data.id) }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<p>
<input type="submit" name="submit" value="{{ 'rescan_old'|_ }}" class="btn btn-default" />
<input type="submit" name="submit" value="{{ 'rescan_old'|_ }}" class="btn btn-default"/>
</p>
</form>
@@ -111,14 +111,14 @@
</div>
</div>
{% if object.data.notes %}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'notes'|_ }}</h3>
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'notes'|_ }}</h3>
</div>
<div class="box-body">
{{ object.data.notes|default('')|markdown }}
</div>
</div>
<div class="box-body">
{{ object.data.notes|default('')|markdown }}
</div>
</div>
{% endif %}

View File

@@ -22,7 +22,7 @@
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# panel for auto-budget#}
{# panel for auto-budget #}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>

View File

@@ -159,7 +159,7 @@
</div>
</div>
{# bar to visualise spending in budget .#}
{# bar to visualise spending in budget . #}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="progress spent_bar" data-id="{{ budget.id }}" data-budgeted="{{ budget.budgeted }}"
@@ -223,7 +223,7 @@
{% if 1 == budget.budgeted|length %}
{% for budgetLimit in budget.budgeted %}
<a href="{{ route('budgets.show.limit', [budget.id, budgetLimit.id]) }}" data-id="{{ budget.id }}">{{ budget.name }}</a>
{% endfor %}
{% endfor %}
{% endif %}
{% if budget.budgeted|length > 1 %}
@@ -233,15 +233,15 @@
{% endif %}
{% if budget.auto_budget %}
{% if 1 == budget.auto_budget.auto_budget_type %}
<span class="fa fa-fw fa-calendar-check-o" title="{{ 'auto_budget_reset_icon'|_ }}"></span>
{% endif %}
{% if 2 == budget.auto_budget.auto_budget_type %}
<span class="fa fa-fw fa-calendar-plus-o" title="{{ 'auto_budget_rollover_icon'|_ }}"></span>
{% endif %}
{% if 3 == budget.auto_budget.auto_budget_type %}
<span class="fa fa-fw fa-calendar-plus-o" title="{{ 'auto_budget_adjusted_icon'|_ }}"></span>
{% endif %}
{% if 1 == budget.auto_budget.auto_budget_type %}
<span class="fa fa-fw fa-calendar-check-o" title="{{ 'auto_budget_reset_icon'|_ }}"></span>
{% endif %}
{% if 2 == budget.auto_budget.auto_budget_type %}
<span class="fa fa-fw fa-calendar-plus-o" title="{{ 'auto_budget_rollover_icon'|_ }}"></span>
{% endif %}
{% if 3 == budget.auto_budget.auto_budget_type %}
<span class="fa fa-fw fa-calendar-plus-o" title="{{ 'auto_budget_adjusted_icon'|_ }}"></span>
{% endif %}
{% endif %}
{% if budget.attachments.count() > 0 %}
<span class="fa fa-paperclip"></span>
@@ -253,11 +253,11 @@
<div class="input-group-addon">{{ defaultCurrency.symbol }}</div>
<input type="hidden" name="balance_currency_id" value="{{ defaultCurrency.id }}"/>
<input class="form-control budget_amount" data-original="0" data-id="{{ budget.id }}"
data-currency="{{ defaultCurrency.id }}" data-limit="0" value="0" autocomplete="off" min="0" name="amount"
type="number">
data-currency="{{ defaultCurrency.id }}" data-limit="0" value="0" autocomplete="off" min="0" name="amount"
type="number">
</div>
<span class="text-danger budget_warning" data-id="{{ budget.id }}" data-budgetLimit="{{ budgetLimit.id }}"
style="display:none;"></span>
style="display:none;"></span>
{% endif %}
{% if budget.budgeted|length > 0 %}
{% for budgetLimit in budget.budgeted %}
@@ -270,9 +270,9 @@
<div class="input-group bl_entry" data-budget-limit-id="{{ budgetLimit.id }}">
<div class="input-group-addon">{{ budgetLimit.currency_symbol }}</div>
<input class="form-control budget_amount" data-original="{{ budgetLimit.amount }}"
data-id="{{ budget.id }}" data-limit="{{ budgetLimit.id }}" value="{{ budgetLimit.amount }}"
autocomplete="off"
min="0" name="amount" type="number">
data-id="{{ budget.id }}" data-limit="{{ budgetLimit.id }}" value="{{ budgetLimit.amount }}"
autocomplete="off"
min="0" name="amount" type="number">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false"><span class="caret"></span></button>
@@ -284,7 +284,7 @@
</div>
</div>
<span class="text-danger budget_warning" data-id="{{ budget.id }}" data-budgetLimit="{{ budgetLimit.id }}"
style="display:none;"></span>
style="display:none;"></span>
{% endfor %}
{% endif %}
{% if budget.budgeted|length < currencies.count() %}
@@ -305,14 +305,18 @@
{% endif %}
{% endfor %}
</td>
{# this cell displays the amount left in the budget, per budget limit. #}
<td class="left" data-id="{{ budget.id }}" style="text-align: right;">
{% for spentInfo in budget.spent %}
{% set countLimit = 0 %}
{% for budgetLimit in budget.budgeted %}
{# now looping a single budget limit. #}
{% if spentInfo.currency_id == budgetLimit.currency_id and budgetLimit.in_range %}
{# the code below is used for budget limits INSIDE the current view range. #}
{% set countLimit = countLimit + 1 %}
<span class="left_span" data-currency="{{ spentInfo.currency_id }}" data-limit="{{ budgetLimit.id }}"
data-value="{{ spentInfo.spent + budgetLimit.amount }}" class="amount_left">
data-value="{{ spentInfo.spent + budgetLimit.amount }}" class="amount_left">
{# the amount left is automatically calculated. #}
{{ formatAmountBySymbol(spentInfo.spent + budgetLimit.amount, spentInfo.currency_symbol, spentInfo.currency_decimal_places) }}
{% if spentInfo.spent + budgetLimit.amount > 0 %}
({{ formatAmountBySymbol((spentInfo.spent + budgetLimit.amount) / activeDaysLeft, spentInfo.currency_symbol, spentInfo.currency_decimal_places) }})
@@ -324,8 +328,9 @@
{% endif %}
{% endfor %}
{% if countLimit == 0 %}
{# this code is used for budget limits OUTSIDE the current view range. #}
<span class="left_span" data-id="{{ budget.id }}" data-currency="{{ spentInfo.currency_id }}" data-limit="0"
class="amount_left" data-value="{{ spentInfo.spent }}">
class="amount_left" data-value="{{ spentInfo.spent }}">
{{ formatAmountBySymbol(spentInfo.spent, spentInfo.currency_symbol, spentInfo.currency_decimal_places) }}
</span>
<br/>
@@ -333,14 +338,14 @@
{% endfor %}
{% for budgetLimit in budget.budgeted %}
{% if null == budget.spent[budgetLimit.currency_id] %}
<span class="left_span" data-currency="{{ spentInfo.currency_id }}" data-limit="{{ budgetLimit.id }}"
data-value="{{ spentInfo.spent + budgetLimit.amount }}" class="amount_left">
<span class="left_span" data-currency="{{ spentInfo.currency_id }}" data-limit="{{ budgetLimit.id }}"
data-value="{{ spentInfo.spent + budgetLimit.amount }}" class="amount_left">
{{ formatAmountBySymbol(budgetLimit.amount, budgetLimit.currency_symbol, budgetLimit.currency_decimal_places) }}
{% if budgetLimit.in_range %}
({{ formatAmountBySymbol(budgetLimit.amount / activeDaysLeft, budgetLimit.currency_symbol, budgetLimit.currency_decimal_places) }})
{% endif %}
{% if budgetLimit.in_range %}
({{ formatAmountBySymbol(budgetLimit.amount / activeDaysLeft, budgetLimit.currency_symbol, budgetLimit.currency_decimal_places) }})
{% endif %}
</span>
<br/>
<br/>
{% endif %}
{% endfor %}
</td>
@@ -433,7 +438,7 @@
{% endblock %}
{% block styles %}
<link href="v1/css/bootstrap-sortable.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/bootstrap-sortable.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}
{% block scripts %}

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