Update boxes.

This commit is contained in:
James Cole
2022-06-06 17:39:50 +02:00
parent c916fbbee9
commit f13dd18b6f
33 changed files with 479 additions and 87 deletions

View File

@@ -0,0 +1,64 @@
<?php
/*
* NetWorthController.php
* Copyright (c) 2022 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/>.
*/
namespace FireflyIII\Api\V2\Controllers;
use FireflyIII\Api\V2\Request\Generic\SingleDateRequest;
use FireflyIII\Helpers\Report\NetWorthInterface;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Http\Api\ConvertsExchangeRates;
use Illuminate\Http\JsonResponse;
/**
* Class NetWorthController
*/
class NetWorthController extends Controller
{
use ConvertsExchangeRates;
private NetWorthInterface $netWorth;
private AccountRepositoryInterface $repository;
/**
*
*/
public function __construct()
{
$this->middleware(
function ($request, $next) {
$this->repository = app(AccountRepositoryInterface::class);
$this->netWorth = app(NetWorthInterface::class);
$this->netWorth->setUser(auth()->user());
return $next($request);
}
);
}
public function get(SingleDateRequest $request): JsonResponse
{
$date = $request->getDate();
$result = $this->netWorth->sumNetWorthByCurrency($date);
$converted = $this->cerSum($result);
return response()->json($converted);
}
}

View File

@@ -24,7 +24,9 @@ declare(strict_types=1);
namespace FireflyIII\Helpers\Report; namespace FireflyIII\Helpers\Report;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Support\CacheProperties; use FireflyIII\Support\CacheProperties;
@@ -38,9 +40,7 @@ use JsonException;
*/ */
class NetWorth implements NetWorthInterface class NetWorth implements NetWorthInterface
{ {
private AccountRepositoryInterface $accountRepository;
/** @var AccountRepositoryInterface */
private $accountRepository;
/** @var CurrencyRepositoryInterface */ /** @var CurrencyRepositoryInterface */
private $currencyRepos; private $currencyRepos;
@@ -63,11 +63,10 @@ class NetWorth implements NetWorthInterface
* *
* @return array * @return array
* @throws JsonException * @throws JsonException
* @throws \FireflyIII\Exceptions\FireflyException * @throws FireflyException
*/ */
public function getNetWorthByCurrency(Collection $accounts, Carbon $date): array public function getNetWorthByCurrency(Collection $accounts, Carbon $date): array
{ {
// start in the past, end in the future? use $date // start in the past, end in the future? use $date
$cache = new CacheProperties; $cache = new CacheProperties;
$cache->addProperty($date); $cache->addProperty($date);
@@ -144,4 +143,55 @@ class NetWorth implements NetWorthInterface
$this->currencyRepos = app(CurrencyRepositoryInterface::class); $this->currencyRepos = app(CurrencyRepositoryInterface::class);
$this->currencyRepos->setUser($this->user); $this->currencyRepos->setUser($this->user);
} }
/**
* @inheritDoc
*/
public function sumNetWorthByCurrency(Carbon $date): array
{
/**
* Collect accounts
*/
$accounts = $this->getAccounts();
$return = [];
$balances = app('steam')->balancesByAccounts($accounts, $date);
foreach ($accounts as $account) {
$currency = $this->accountRepository->getAccountCurrency($account);
$balance = $balances[$account->id] ?? '0';
// always subtract virtual balance.
$virtualBalance = (string) $account->virtual_balance;
if ('' !== $virtualBalance) {
$balance = bcsub($balance, $virtualBalance);
}
$return[$currency->id] = $return[$currency->id] ?? [
'id' => (string) $currency->id,
'name' => $currency->name,
'symbol' => $currency->symbol,
'code' => $currency->code,
'decimal_places' => $currency->decimal_places,
'sum' => '0',
];
$return[$currency->id]['sum'] = bcadd($return[$currency->id]['sum'], $balance);
}
return $return;
}
/**
* @return Collection
*/
private function getAccounts(): Collection
{
$accounts = $this->accountRepository->getAccountsByType([AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE, AccountType::DEFAULT, AccountType::CREDITCARD]);
$filtered = new Collection;
/** @var Account $account */
foreach ($accounts as $account) {
if (1 === (int) $this->accountRepository->getMetaValue($account, 'include_net_worth')) {
$filtered->push($account);
}
}
return $filtered;
}
} }

View File

@@ -46,8 +46,8 @@ interface NetWorthInterface
* *
* @param Collection $accounts * @param Collection $accounts
* @param Carbon $date * @param Carbon $date
*
* @return array * @return array
* @deprecated
*/ */
public function getNetWorthByCurrency(Collection $accounts, Carbon $date): array; public function getNetWorthByCurrency(Collection $accounts, Carbon $date): array;
@@ -56,4 +56,15 @@ interface NetWorthInterface
*/ */
public function setUser(User $user): void; public function setUser(User $user): void;
/**
* TODO move to repository
*
* Same as above but cleaner function with less dependencies.
*
* @param Carbon $date
*
* @return array
*/
public function sumNetWorthByCurrency(Carbon $date): array;
} }

29
frontend/src/api/v2/net-worth/index.js vendored Normal file
View File

@@ -0,0 +1,29 @@
/*
* basic.js
* Copyright (c) 2021 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/>.
*/
import {api} from "boot/axios";
import {format} from "date-fns";
export default class NetWorth {
get(date) {
let dateStr = format(date, 'y-MM-dd');
return api.get('/api/v2/net-worth', {params: {date: dateStr}});
}
}

View File

@@ -36,25 +36,28 @@
:value="percentage" :value="percentage"
size="50px" size="50px"
:thickness="0.22" :thickness="0.22"
color="green" color="positive"
track-color="grey-3" track-color="negative"
/> />
</q-card-section> </q-card-section>
<q-separator vertical/> <q-separator vertical/>
<q-card-section v-if="0 === unpaid.length && 0 === paid.length"> <q-card-section v-if="0 === unpaid.length && 0 === paid.length">
You have no bills {{ $t('firefly.no_bill') }}
</q-card-section> </q-card-section>
<q-card-section v-if="unpaid.length > 0 || paid.length > 0"> <q-card-section v-if="unpaid.length > 0 || paid.length > 0">
<span :title="formatAmount(this.currency, this.unpaidAmount)">{{ $t('firefly.bills_to_pay') }}</span>: <span :title="formatAmount(this.currency, this.unpaidAmount)">{{ $t('firefly.bills_to_pay') }}</span>:
<span v-for="(bill, index) in unpaid"> <!-- loop bills to pay -->
<span v-if="bill.native">(</span>{{ formatAmount(bill.code, bill.sum) }}<span <span v-for="(item, index) in unpaid">
v-if="bill.native">)</span><span v-if="index+1 !== unpaid.length">, </span></span> <span :title="formatAmount(item.native_code, item.native_sum)">
{{ formatAmount(item.code, item.sum) }}<span v-if="index+1 !== unpaid.length"> + </span></span>
</span>
<br/> <br/>
<span :title="formatAmount(this.currency, this.paidAmount)">{{ $t('firefly.bills_paid') }}</span>: <span v-if="paid.length > 0" :title="formatAmount(this.currency, this.paidAmount)">{{ $t('firefly.bills_paid') }}:</span>
<span v-for="(bill, index) in paid"><span v-if="bill.native">(</span>{{ <span v-for="(item, index) in paid">
formatAmount(bill.code, bill.sum) <span :title="formatAmount(item.native_code, item.native_sum)">
}}<span v-if="bill.native">)</span><span {{formatAmount(item.code, item.sum) }}
v-if="index+1 !== paid.length">, </span></span> </span>
<span v-if="index+1 !== paid.length"> + </span></span>
</q-card-section> </q-card-section>
</q-card-section> </q-card-section>
</q-card> </q-card>
@@ -74,10 +77,6 @@ export default {
currency: 'EUR', currency: 'EUR',
unpaidAmount: 0.0, unpaidAmount: 0.0,
paidAmount: 0.0, paidAmount: 0.0,
range: {
start: null,
end: null,
},
} }
}, },
name: "BillInsightBox", name: "BillInsightBox",
@@ -99,19 +98,16 @@ export default {
mounted() { mounted() {
this.store = useFireflyIIIStore(); this.store = useFireflyIIIStore();
// TODO this code snippet is recycled a lot. // TODO this code snippet is recycled a lot.
if (null === this.range.start || null === this.range.end) { // subscribe, then update:
// subscribe, then update: this.store.$onAction(
this.store.$onAction( ({name, $store, args, after, onError,}) => {
({name, $store, args, after, onError,}) => { after((result) => {
after((result) => { if (name === 'setRange') {
if (name === 'setRange') { this.triggerUpdate();
this.range = result; }
this.triggerUpdate(); })
} }
}) )
}
)
}
this.triggerUpdate(); this.triggerUpdate();
}, },
methods: { methods: {
@@ -139,6 +135,8 @@ export default {
{ {
sum: current.sum, sum: current.sum,
code: current.code, code: current.code,
native_sum: current.native_sum,
native_code: current.native_code,
native: hasNative, native: hasNative,
} }
); );
@@ -157,6 +155,8 @@ export default {
{ {
sum: current.sum, sum: current.sum,
code: current.code, code: current.code,
native_sum: current.native_sum,
native_code: current.native_code,
native: hasNative, native: hasNative,
} }
); );

View File

@@ -0,0 +1,125 @@
<!--
- NetWorthInsightBox.vue
- Copyright (c) 2022 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/>.
-->
<template>
<!-- TODO most left? q-mr-sm -->
<!-- TODO middle? dan q-mx-sm -->
<!-- TODO right? dan q-ml-sm -->
<div class="q-ml-sm">
<q-card bordered>
<q-item>
<q-item-section>
<q-item-label><strong>{{ $t('firefly.net_worth') }}</strong></q-item-label>
</q-item-section>
</q-item>
<q-separator/>
<q-card-section horizontal>
<q-card-section>
<q-icon name="fas fa-chart-line" size="50px" :color="primary > 0 ? 'positive' : 'negative'"/>
</q-card-section>
<q-separator vertical/>
<q-card-section>
<strong>{{ formatAmount(currency, primary) }}</strong><br/>
<small>
<span v-for="(item, index) in netWorth">
<span :title="formatAmount(item.native_code, item.native_sum)">{{ formatAmount(item.code, item.sum) }}</span>
<span v-if="index+1 !== netWorth.length"> + </span></span>
</small>
</q-card-section>
</q-card-section>
</q-card>
</div>
</template>
<script>
import {useFireflyIIIStore} from "../../stores/fireflyiii";
import NetWorth from "../../api/v2/net-worth";
export default {
name: "NetWorthInsightBox",
data() {
return {
netWorth: [],
primary: 0,
currency: 'EUR',
store: null,
}
},
mounted() {
this.store = useFireflyIIIStore();
// TODO this code snippet is recycled a lot.
// subscribe, then update:
this.store.$onAction(
({name, $store, args, after, onError,}) => {
after((result) => {
if (name === 'setRange') {
this.triggerUpdate();
}
})
}
)
this.triggerUpdate();
},
methods: {
triggerUpdate: function () {
if (null !== this.store.getRange.start && null !== this.store.getRange.end) {
this.unpaid = [];
const start = new Date(this.store.getRange.start);
const end = new Date(this.store.getRange.end);
const now = new Date;
let date = end;
if (now >= start && now <= end) {
date = now;
}
this.currency = this.store.getCurrencyCode;
(new NetWorth).get(date).then((response) => this.parseResponse(response.data));
}
},
parseResponse(data) {
for (let i in data) {
if (data.hasOwnProperty(i)) {
const current = data[i];
const hasNative = current.native_id !== current.id && current.native_sum !== '0';
if (hasNative || current.native_id === current.id) {
this.primary = this.primary + parseFloat(current.native_sum);
}
this.netWorth.push(
{
sum: current.sum,
code: current.code,
native_sum: current.native_sum,
native_code: current.native_code,
native: hasNative,
}
);
}
}
},
// TODO this method is recycled a lot.
formatAmount: function (currencyCode, amount) {
return Intl.NumberFormat(this.store?.getLocale ?? 'en-US', {style: 'currency', currency: currencyCode}).format(amount);
},
},
}
</script>
<style scoped>
</style>

View File

@@ -26,7 +26,7 @@
<q-card bordered> <q-card bordered>
<q-item> <q-item>
<q-item-section> <q-item-section>
<q-item-label><strong>To spend and left</strong></q-item-label> <q-item-label><strong>{{ $t('firefly.left_to_spend') }}</strong></q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-separator/> <q-separator/>
@@ -36,22 +36,27 @@
:value="percentage" :value="percentage"
size="50px" size="50px"
:thickness="0.22" :thickness="0.22"
color="green" color="negative"
track-color="grey-3" track-color="positive"
/> />
</q-card-section> </q-card-section>
<q-separator vertical/> <q-separator vertical/>
<q-card-section v-if="0 === budgeted.length && 0 === spent.length"> <q-card-section v-if="0 === budgeted.length && 0 === spent.length">
You have no budgets set {{ $t('firefly.no_budget') }}
</q-card-section> </q-card-section>
<q-card-section v-if="budgeted.length > 0 || spent.length > 0"> <q-card-section v-if="budgeted.length > 0 || spent.length > 0">
<span :title="formatAmount(this.currency, this.budgetedAmount)">Budgeted</span>: <span :title="formatAmount(this.currency, this.budgetedAmount)">{{ $t('firefly.budgeted') }}</span>:
<span v-for="(budget, index) in budgeted"><span v-if="budget.native">(</span>{{ formatAmount(budget.code, budget.sum) }}<span v-if="budget.native">)</span><span <!-- list budgeted -->
v-if="index+1 !== budgeted.length">, </span></span> <span v-for="(item, index) in budgeted">
<br> <span :title="formatAmount(item.native_code, item.native_sum)">{{ formatAmount(item.code, item.sum) }}</span>
<span :title="formatAmount(this.currency, this.spentAmount)">Spent</span>: <span v-if="index+1 !== budgeted.length"> + </span>
<span v-for="(budget, index) in spent"><span v-if="budget.native">(</span>{{ formatAmount(budget.code, budget.sum) }}<span v-if="budget.native">)</span><span </span>
v-if="index+1 !== budgeted.length">, </span></span> <br />
<span v-if="spent.length > 0" :title="formatAmount(this.currency, this.spentAmount)">{{ $t('firefly.spent') }}: </span>
<!-- list spent -->
<span v-for="(item, index) in spent">
<span :title="formatAmount(item.native_code, item.native_sum)">{{ formatAmount(item.code, item.sum) }}</span>
<span v-if="index+1 !== spent.length"> + </span></span>
</q-card-section> </q-card-section>
</q-card-section> </q-card-section>
</q-card> </q-card>
@@ -72,10 +77,6 @@ export default {
//percentage: 0, //percentage: 0,
budgetedAmount: 0.0, budgetedAmount: 0.0,
spentAmount: 0.0, spentAmount: 0.0,
range: {
start: null,
end: null,
},
} }
}, },
name: "SpendInsightBox", name: "SpendInsightBox",
@@ -98,19 +99,16 @@ export default {
this.store = useFireflyIIIStore(); this.store = useFireflyIIIStore();
// TODO this code snippet is recycled a lot. // TODO this code snippet is recycled a lot.
if (null === this.range.start || null === this.range.end) { // subscribe, then update:
// subscribe, then update: this.store.$onAction(
this.store.$onAction( ({name, $store, args, after, onError,}) => {
({name, $store, args, after, onError,}) => { after((result) => {
after((result) => { if (name === 'setRange') {
if (name === 'setRange') { this.triggerUpdate();
this.range = result; }
this.triggerUpdate(); })
} }
}) )
}
)
}
this.triggerUpdate(); this.triggerUpdate();
}, },
methods: { methods: {
@@ -138,6 +136,8 @@ export default {
{ {
sum: current.sum, sum: current.sum,
code: current.code, code: current.code,
native_sum: current.native_sum,
native_code: current.native_code,
native: hasNative native: hasNative
} }
); );
@@ -156,6 +156,8 @@ export default {
{ {
sum: current.sum, sum: current.sum,
code: current.code, code: current.code,
native_sum: current.native_sum,
native_code: current.native_code,
native: hasNative native: hasNative
} }
); );

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "\u041d\u043e\u0432 \u0434\u0435\u043f\u043e\u0437\u0438\u0442", "newDeposit": "\u041d\u043e\u0432 \u0434\u0435\u043f\u043e\u0437\u0438\u0442",
"newWithdrawal": "\u041d\u043e\u0432 \u0440\u0430\u0437\u0445\u043e\u0434", "newWithdrawal": "\u041d\u043e\u0432 \u0440\u0430\u0437\u0445\u043e\u0434",
"bills_paid": "\u041f\u043b\u0430\u0442\u0435\u043d\u0438 \u0441\u043c\u0435\u0442\u043a\u0438", "bills_paid": "\u041f\u043b\u0430\u0442\u0435\u043d\u0438 \u0441\u043c\u0435\u0442\u043a\u0438",
"left_to_spend": "\u041e\u0441\u0442\u0430\u043d\u0430\u043b\u0438 \u0437\u0430 \u0445\u0430\u0440\u0447\u0435\u043d\u0435",
"no_budget": "(\u0431\u0435\u0437 \u0431\u044e\u0434\u0436\u0435\u0442)",
"budgeted": "\u0411\u044e\u0434\u0436\u0435\u0442\u0438\u0440\u0430\u043d\u0438",
"spent": "\u041f\u043e\u0445\u0430\u0440\u0447\u0435\u043d\u0438",
"no_bill": "(\u043d\u044f\u043c\u0430 \u0441\u043c\u0435\u0442\u043a\u0430)",
"rule_trigger_source_account_starts_choice": "\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u0445\u043e\u0434\u043d\u0430\u0442\u0430 \u0441\u043c\u0435\u0442\u043a\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430 \u0441..", "rule_trigger_source_account_starts_choice": "\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u0445\u043e\u0434\u043d\u0430\u0442\u0430 \u0441\u043c\u0435\u0442\u043a\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430 \u0441..",
"rule_trigger_source_account_ends_choice": "\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u0445\u043e\u0434\u043d\u0430\u0442\u0430 \u0441\u043c\u0435\u0442\u043a\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430 \u0441..", "rule_trigger_source_account_ends_choice": "\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u0445\u043e\u0434\u043d\u0430\u0442\u0430 \u0441\u043c\u0435\u0442\u043a\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430 \u0441..",
"rule_trigger_source_account_is_choice": "\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u0445\u043e\u0434\u043d\u0430\u0442\u0430 \u0441\u043c\u0435\u0442\u043a\u0430 \u0435..", "rule_trigger_source_account_is_choice": "\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u0445\u043e\u0434\u043d\u0430\u0442\u0430 \u0441\u043c\u0435\u0442\u043a\u0430 \u0435..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "\u0410\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438", "subscriptions": "\u0410\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438",
"welcome_back": "\u041a\u0430\u043a\u0432\u043e \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430?", "welcome_back": "\u041a\u0430\u043a\u0432\u043e \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430?",
"bills_to_pay": "\u0421\u043c\u0435\u0442\u043a\u0438 \u0437\u0430 \u043f\u043b\u0430\u0449\u0430\u043d\u0435", "bills_to_pay": "\u0421\u043c\u0435\u0442\u043a\u0438 \u0437\u0430 \u043f\u043b\u0430\u0449\u0430\u043d\u0435",
"left_to_spend": "\u041e\u0441\u0442\u0430\u043d\u0430\u043b\u0438 \u0437\u0430 \u0445\u0430\u0440\u0447\u0435\u043d\u0435",
"net_worth": "\u041d\u0435\u0442\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442", "net_worth": "\u041d\u0435\u0442\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Nov\u00fd vklad", "newDeposit": "Nov\u00fd vklad",
"newWithdrawal": "Nov\u00fd v\u00fddaj", "newWithdrawal": "Nov\u00fd v\u00fddaj",
"bills_paid": "Zaplacen\u00e9 \u00fa\u010dty", "bills_paid": "Zaplacen\u00e9 \u00fa\u010dty",
"left_to_spend": "Zb\u00fdv\u00e1 k utracen\u00ed",
"no_budget": "(\u017e\u00e1dn\u00fd rozpo\u010det)",
"budgeted": "Rozpo\u010det",
"spent": "Utraceno",
"no_bill": "(no bill)",
"rule_trigger_source_account_starts_choice": "Source account name starts with..", "rule_trigger_source_account_starts_choice": "Source account name starts with..",
"rule_trigger_source_account_ends_choice": "Source account name ends with..", "rule_trigger_source_account_ends_choice": "Source account name ends with..",
"rule_trigger_source_account_is_choice": "Source account name is..", "rule_trigger_source_account_is_choice": "Source account name is..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "Jak to jde?", "welcome_back": "Jak to jde?",
"bills_to_pay": "Faktury k zaplacen\u00ed", "bills_to_pay": "Faktury k zaplacen\u00ed",
"left_to_spend": "Zb\u00fdv\u00e1 k utracen\u00ed",
"net_worth": "\u010cist\u00e9 jm\u011bn\u00ed", "net_worth": "\u010cist\u00e9 jm\u011bn\u00ed",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Neue Einnahme", "newDeposit": "Neue Einnahme",
"newWithdrawal": "Neue Ausgabe", "newWithdrawal": "Neue Ausgabe",
"bills_paid": "Rechnungen bezahlt", "bills_paid": "Rechnungen bezahlt",
"left_to_spend": "Verbleibend zum Ausgeben",
"no_budget": "(kein Budget)",
"budgeted": "Vorgesehen",
"spent": "Ausgegeben",
"no_bill": "(keine Belege)",
"rule_trigger_source_account_starts_choice": "Name des Quellkontos beginnt mit..", "rule_trigger_source_account_starts_choice": "Name des Quellkontos beginnt mit..",
"rule_trigger_source_account_ends_choice": "Quellkonto-Name endet mit..", "rule_trigger_source_account_ends_choice": "Quellkonto-Name endet mit..",
"rule_trigger_source_account_is_choice": "Quellkonto-Name lautet..", "rule_trigger_source_account_is_choice": "Quellkonto-Name lautet..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Abonnements", "subscriptions": "Abonnements",
"welcome_back": "\u00dcberblick", "welcome_back": "\u00dcberblick",
"bills_to_pay": "Unbezahlte Rechnungen", "bills_to_pay": "Unbezahlte Rechnungen",
"left_to_spend": "Verbleibend zum Ausgeben",
"net_worth": "Eigenkapital", "net_worth": "Eigenkapital",
"pref_last365": "Letztes Jahr", "pref_last365": "Letztes Jahr",
"pref_last90": "Letzte 90 Tage", "pref_last90": "Letzte 90 Tage",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "\u039d\u03ad\u03b1 \u03ba\u03b1\u03c4\u03ac\u03b8\u03b5\u03c3\u03b7", "newDeposit": "\u039d\u03ad\u03b1 \u03ba\u03b1\u03c4\u03ac\u03b8\u03b5\u03c3\u03b7",
"newWithdrawal": "\u039d\u03ad\u03b1 \u03b4\u03b1\u03c0\u03ac\u03bd\u03b7", "newWithdrawal": "\u039d\u03ad\u03b1 \u03b4\u03b1\u03c0\u03ac\u03bd\u03b7",
"bills_paid": "\u03a0\u03bb\u03b7\u03c1\u03c9\u03bc\u03ad\u03bd\u03b1 \u03c0\u03ac\u03b3\u03b9\u03b1 \u03ad\u03be\u03bf\u03b4\u03b1", "bills_paid": "\u03a0\u03bb\u03b7\u03c1\u03c9\u03bc\u03ad\u03bd\u03b1 \u03c0\u03ac\u03b3\u03b9\u03b1 \u03ad\u03be\u03bf\u03b4\u03b1",
"left_to_spend": "\u0394\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b1 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03ce\u03bd",
"no_budget": "(\u03c7\u03c9\u03c1\u03af\u03c2 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03cc)",
"budgeted": "\u03a0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf",
"spent": "\u0394\u03b1\u03c0\u03b1\u03bd\u03ae\u03b8\u03b7\u03ba\u03b1\u03bd",
"no_bill": "(\u03c7\u03c9\u03c1\u03af\u03c2 \u03c0\u03ac\u03b3\u03b9\u03bf \u03ad\u03be\u03bf\u03b4\u03bf)",
"rule_trigger_source_account_starts_choice": "\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03c0\u03c1\u03bf\u03ad\u03bb\u03b5\u03c5\u03c3\u03b7\u03c2 \u03b1\u03c1\u03c7\u03af\u03b6\u03b5\u03b9 \u03bc\u03b5..", "rule_trigger_source_account_starts_choice": "\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03c0\u03c1\u03bf\u03ad\u03bb\u03b5\u03c5\u03c3\u03b7\u03c2 \u03b1\u03c1\u03c7\u03af\u03b6\u03b5\u03b9 \u03bc\u03b5..",
"rule_trigger_source_account_ends_choice": "\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03c0\u03c1\u03bf\u03ad\u03bb\u03b5\u03c5\u03c3\u03b7\u03c2 \u03c4\u03b5\u03bb\u03b5\u03b9\u03ce\u03bd\u03b5\u03b9 \u03bc\u03b5..", "rule_trigger_source_account_ends_choice": "\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03c0\u03c1\u03bf\u03ad\u03bb\u03b5\u03c5\u03c3\u03b7\u03c2 \u03c4\u03b5\u03bb\u03b5\u03b9\u03ce\u03bd\u03b5\u03b9 \u03bc\u03b5..",
"rule_trigger_source_account_is_choice": "\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03c0\u03c1\u03bf\u03ad\u03bb\u03b5\u03c5\u03c3\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9..", "rule_trigger_source_account_is_choice": "\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03c0\u03c1\u03bf\u03ad\u03bb\u03b5\u03c5\u03c3\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "\u03a3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ad\u03c2", "subscriptions": "\u03a3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ad\u03c2",
"welcome_back": "\u03a4\u03b9 \u03c0\u03b1\u03af\u03b6\u03b5\u03b9;", "welcome_back": "\u03a4\u03b9 \u03c0\u03b1\u03af\u03b6\u03b5\u03b9;",
"bills_to_pay": "\u03a0\u03ac\u03b3\u03b9\u03b1 \u03ad\u03be\u03bf\u03b4\u03b1 \u03c0\u03c1\u03bf\u03c2 \u03c0\u03bb\u03b7\u03c1\u03c9\u03bc\u03ae", "bills_to_pay": "\u03a0\u03ac\u03b3\u03b9\u03b1 \u03ad\u03be\u03bf\u03b4\u03b1 \u03c0\u03c1\u03bf\u03c2 \u03c0\u03bb\u03b7\u03c1\u03c9\u03bc\u03ae",
"left_to_spend": "\u0394\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b1 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03ce\u03bd",
"net_worth": "\u039a\u03b1\u03b8\u03b1\u03c1\u03ae \u03b1\u03be\u03af\u03b1", "net_worth": "\u039a\u03b1\u03b8\u03b1\u03c1\u03ae \u03b1\u03be\u03af\u03b1",
"pref_last365": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03ad\u03c4\u03bf\u03c2", "pref_last365": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03ad\u03c4\u03bf\u03c2",
"pref_last90": "\u03a4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b5\u03c2 90 \u03b7\u03bc\u03ad\u03c1\u03b5\u03c2", "pref_last90": "\u03a4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b5\u03c2 90 \u03b7\u03bc\u03ad\u03c1\u03b5\u03c2",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "New deposit", "newDeposit": "New deposit",
"newWithdrawal": "New expense", "newWithdrawal": "New expense",
"bills_paid": "Bills paid", "bills_paid": "Bills paid",
"left_to_spend": "Left to spend",
"no_budget": "(no budget)",
"budgeted": "Budgeted",
"spent": "Spent",
"no_bill": "(no bill)",
"rule_trigger_source_account_starts_choice": "Source account name starts with..", "rule_trigger_source_account_starts_choice": "Source account name starts with..",
"rule_trigger_source_account_ends_choice": "Source account name ends with..", "rule_trigger_source_account_ends_choice": "Source account name ends with..",
"rule_trigger_source_account_is_choice": "Source account name is..", "rule_trigger_source_account_is_choice": "Source account name is..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "What's playing?", "welcome_back": "What's playing?",
"bills_to_pay": "Bills to pay", "bills_to_pay": "Bills to pay",
"left_to_spend": "Left to spend",
"net_worth": "Net worth", "net_worth": "Net worth",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "New deposit", "newDeposit": "New deposit",
"newWithdrawal": "New expense", "newWithdrawal": "New expense",
"bills_paid": "Bills paid", "bills_paid": "Bills paid",
"left_to_spend": "Left to spend",
"no_budget": "(no budget)",
"budgeted": "Budgeted",
"spent": "Spent",
"no_bill": "(no bill)",
"rule_trigger_source_account_starts_choice": "Source account name starts with..", "rule_trigger_source_account_starts_choice": "Source account name starts with..",
"rule_trigger_source_account_ends_choice": "Source account name ends with..", "rule_trigger_source_account_ends_choice": "Source account name ends with..",
"rule_trigger_source_account_is_choice": "Source account name is..", "rule_trigger_source_account_is_choice": "Source account name is..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "What's playing?", "welcome_back": "What's playing?",
"bills_to_pay": "Bills to pay", "bills_to_pay": "Bills to pay",
"left_to_spend": "Left to spend",
"net_worth": "Net worth", "net_worth": "Net worth",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Nuevo deposito", "newDeposit": "Nuevo deposito",
"newWithdrawal": "Nuevo gasto", "newWithdrawal": "Nuevo gasto",
"bills_paid": "Facturas pagadas", "bills_paid": "Facturas pagadas",
"left_to_spend": "Disponible para gastar",
"no_budget": "(sin presupuesto)",
"budgeted": "Presupuestado",
"spent": "Gastado",
"no_bill": "(sin factura)",
"rule_trigger_source_account_starts_choice": "El nombre de la cuenta de origen comienza con..", "rule_trigger_source_account_starts_choice": "El nombre de la cuenta de origen comienza con..",
"rule_trigger_source_account_ends_choice": "El nombre de la cuenta de origen termina con..", "rule_trigger_source_account_ends_choice": "El nombre de la cuenta de origen termina con..",
"rule_trigger_source_account_is_choice": "El nombre de la cuenta origen es..", "rule_trigger_source_account_is_choice": "El nombre de la cuenta origen es..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Suscripciones", "subscriptions": "Suscripciones",
"welcome_back": "\u00bfQu\u00e9 est\u00e1 pasando?", "welcome_back": "\u00bfQu\u00e9 est\u00e1 pasando?",
"bills_to_pay": "Facturas por pagar", "bills_to_pay": "Facturas por pagar",
"left_to_spend": "Disponible para gastar",
"net_worth": "Valor Neto", "net_worth": "Valor Neto",
"pref_last365": "A\u00f1o pasado", "pref_last365": "A\u00f1o pasado",
"pref_last90": "\u00daltimos 90 d\u00edas", "pref_last90": "\u00daltimos 90 d\u00edas",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Uusi talletus", "newDeposit": "Uusi talletus",
"newWithdrawal": "Uusi kustannus", "newWithdrawal": "Uusi kustannus",
"bills_paid": "Maksetut laskut", "bills_paid": "Maksetut laskut",
"left_to_spend": "K\u00e4ytett\u00e4viss\u00e4",
"no_budget": "(ei budjettia)",
"budgeted": "Budjetoitu",
"spent": "K\u00e4ytetty",
"no_bill": "(ei laskua)",
"rule_trigger_source_account_starts_choice": "L\u00e4hdetilin nimi alkaa ...", "rule_trigger_source_account_starts_choice": "L\u00e4hdetilin nimi alkaa ...",
"rule_trigger_source_account_ends_choice": "L\u00e4hdetilin nimi p\u00e4\u00e4ttyy..", "rule_trigger_source_account_ends_choice": "L\u00e4hdetilin nimi p\u00e4\u00e4ttyy..",
"rule_trigger_source_account_is_choice": "L\u00e4hdetilin nimi on..", "rule_trigger_source_account_is_choice": "L\u00e4hdetilin nimi on..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Tilaukset", "subscriptions": "Tilaukset",
"welcome_back": "Mit\u00e4 kuuluu?", "welcome_back": "Mit\u00e4 kuuluu?",
"bills_to_pay": "Laskuja maksettavana", "bills_to_pay": "Laskuja maksettavana",
"left_to_spend": "K\u00e4ytett\u00e4viss\u00e4",
"net_worth": "Varallisuus", "net_worth": "Varallisuus",
"pref_last365": "Edellinen vuosi", "pref_last365": "Edellinen vuosi",
"pref_last90": "Viimeiset 90 p\u00e4iv\u00e4\u00e4", "pref_last90": "Viimeiset 90 p\u00e4iv\u00e4\u00e4",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Nouveau d\u00e9p\u00f4t", "newDeposit": "Nouveau d\u00e9p\u00f4t",
"newWithdrawal": "Nouvelle d\u00e9pense", "newWithdrawal": "Nouvelle d\u00e9pense",
"bills_paid": "Factures pay\u00e9es", "bills_paid": "Factures pay\u00e9es",
"left_to_spend": "Reste \u00e0 d\u00e9penser",
"no_budget": "(pas de budget)",
"budgeted": "Budg\u00e9tis\u00e9",
"spent": "D\u00e9pens\u00e9",
"no_bill": "(aucune facture)",
"rule_trigger_source_account_starts_choice": "Le nom du compte source commence par..", "rule_trigger_source_account_starts_choice": "Le nom du compte source commence par..",
"rule_trigger_source_account_ends_choice": "Le nom du compte source se termine par..", "rule_trigger_source_account_ends_choice": "Le nom du compte source se termine par..",
"rule_trigger_source_account_is_choice": "Le nom du compte source est..", "rule_trigger_source_account_is_choice": "Le nom du compte source est..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Abonnements", "subscriptions": "Abonnements",
"welcome_back": "Quoi de neuf ?", "welcome_back": "Quoi de neuf ?",
"bills_to_pay": "Factures \u00e0 payer", "bills_to_pay": "Factures \u00e0 payer",
"left_to_spend": "Reste \u00e0 d\u00e9penser",
"net_worth": "Avoir net", "net_worth": "Avoir net",
"pref_last365": "L'ann\u00e9e derni\u00e8re", "pref_last365": "L'ann\u00e9e derni\u00e8re",
"pref_last90": "Les 90 derniers jours", "pref_last90": "Les 90 derniers jours",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "\u00daj bev\u00e9tel", "newDeposit": "\u00daj bev\u00e9tel",
"newWithdrawal": "\u00daj k\u00f6lts\u00e9g", "newWithdrawal": "\u00daj k\u00f6lts\u00e9g",
"bills_paid": "Befizetett sz\u00e1ml\u00e1k", "bills_paid": "Befizetett sz\u00e1ml\u00e1k",
"left_to_spend": "Elk\u00f6lthet\u0151",
"no_budget": "(nincs k\u00f6lts\u00e9gkeret)",
"budgeted": "Betervezett",
"spent": "Elk\u00f6lt\u00f6tt",
"no_bill": "(no bill)",
"rule_trigger_source_account_starts_choice": "Forr\u00e1ssz\u00e1mla nev\u00e9nek eleje..", "rule_trigger_source_account_starts_choice": "Forr\u00e1ssz\u00e1mla nev\u00e9nek eleje..",
"rule_trigger_source_account_ends_choice": "Forr\u00e1ssz\u00e1mla nev\u00e9nek v\u00e9ge..", "rule_trigger_source_account_ends_choice": "Forr\u00e1ssz\u00e1mla nev\u00e9nek v\u00e9ge..",
"rule_trigger_source_account_is_choice": "A forr\u00e1ssz\u00e1mla neve..", "rule_trigger_source_account_is_choice": "A forr\u00e1ssz\u00e1mla neve..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "Mi a helyzet?", "welcome_back": "Mi a helyzet?",
"bills_to_pay": "Fizetend\u0151 sz\u00e1ml\u00e1k", "bills_to_pay": "Fizetend\u0151 sz\u00e1ml\u00e1k",
"left_to_spend": "Elk\u00f6lthet\u0151",
"net_worth": "Nett\u00f3 \u00e9rt\u00e9k", "net_worth": "Nett\u00f3 \u00e9rt\u00e9k",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Nuova entrata", "newDeposit": "Nuova entrata",
"newWithdrawal": "Nuova uscita", "newWithdrawal": "Nuova uscita",
"bills_paid": "Bollette pagate", "bills_paid": "Bollette pagate",
"left_to_spend": "Altro da spendere",
"no_budget": "(nessun budget)",
"budgeted": "Preventivato",
"spent": "Speso",
"no_bill": "(nessuna bolletta)",
"rule_trigger_source_account_starts_choice": "Il nome del conto di origine inizia con..", "rule_trigger_source_account_starts_choice": "Il nome del conto di origine inizia con..",
"rule_trigger_source_account_ends_choice": "Il nome del conto di origine termina con..", "rule_trigger_source_account_ends_choice": "Il nome del conto di origine termina con..",
"rule_trigger_source_account_is_choice": "Il nome del conto di origine \u00e8..", "rule_trigger_source_account_is_choice": "Il nome del conto di origine \u00e8..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Abbonamenti", "subscriptions": "Abbonamenti",
"welcome_back": "La tua situazione finanziaria", "welcome_back": "La tua situazione finanziaria",
"bills_to_pay": "Bollette da pagare", "bills_to_pay": "Bollette da pagare",
"left_to_spend": "Altro da spendere",
"net_worth": "Patrimonio", "net_worth": "Patrimonio",
"pref_last365": "Anno scorso", "pref_last365": "Anno scorso",
"pref_last90": "Ultimi 90 giorni", "pref_last90": "Ultimi 90 giorni",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "\u65b0\u3057\u3044\u5165\u91d1", "newDeposit": "\u65b0\u3057\u3044\u5165\u91d1",
"newWithdrawal": "\u65b0\u3057\u3044\u652f\u51fa", "newWithdrawal": "\u65b0\u3057\u3044\u652f\u51fa",
"bills_paid": "\u652f\u6255\u3044\u6e08\u307f\u8acb\u6c42", "bills_paid": "\u652f\u6255\u3044\u6e08\u307f\u8acb\u6c42",
"left_to_spend": "\u652f\u51fa\u3067\u304d\u308b\u6b8b\u308a",
"no_budget": "(\u4e88\u7b97\u306a\u3057)",
"budgeted": "\u8a08\u4e0a\u4e88\u7b97",
"spent": "\u652f\u51fa",
"no_bill": "(\u8acb\u6c42\u306a\u3057)",
"rule_trigger_source_account_starts_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c...\u3067\u59cb\u307e\u308b", "rule_trigger_source_account_starts_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c...\u3067\u59cb\u307e\u308b",
"rule_trigger_source_account_ends_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c\u2026\u3067\u7d42\u308f\u308b", "rule_trigger_source_account_ends_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c\u2026\u3067\u7d42\u308f\u308b",
"rule_trigger_source_account_is_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c...", "rule_trigger_source_account_is_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c...",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "\u8b1b\u8aad", "subscriptions": "\u8b1b\u8aad",
"welcome_back": "\u6982\u8981", "welcome_back": "\u6982\u8981",
"bills_to_pay": "\u8acb\u6c42\u66f8", "bills_to_pay": "\u8acb\u6c42\u66f8",
"left_to_spend": "\u652f\u51fa\u3067\u304d\u308b\u6b8b\u308a",
"net_worth": "\u7d14\u8cc7\u7523", "net_worth": "\u7d14\u8cc7\u7523",
"pref_last365": "\u6628\u5e74", "pref_last365": "\u6628\u5e74",
"pref_last90": "\u904e\u53bb 90 \u65e5\u9593", "pref_last90": "\u904e\u53bb 90 \u65e5\u9593",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Nytt innskudd", "newDeposit": "Nytt innskudd",
"newWithdrawal": "Ny utgift", "newWithdrawal": "Ny utgift",
"bills_paid": "Regninger betalt", "bills_paid": "Regninger betalt",
"left_to_spend": "Igjen \u00e5 bruke",
"no_budget": "(ingen budsjett)",
"budgeted": "Budsjettert",
"spent": "Brukt",
"no_bill": "(no bill)",
"rule_trigger_source_account_starts_choice": "Source account name starts with..", "rule_trigger_source_account_starts_choice": "Source account name starts with..",
"rule_trigger_source_account_ends_choice": "Source account name ends with..", "rule_trigger_source_account_ends_choice": "Source account name ends with..",
"rule_trigger_source_account_is_choice": "Source account name is..", "rule_trigger_source_account_is_choice": "Source account name is..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "What's playing?", "welcome_back": "What's playing?",
"bills_to_pay": "Regninger \u00e5 betale", "bills_to_pay": "Regninger \u00e5 betale",
"left_to_spend": "Igjen \u00e5 bruke",
"net_worth": "Formue", "net_worth": "Formue",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Nieuwe inkomsten", "newDeposit": "Nieuwe inkomsten",
"newWithdrawal": "Nieuwe uitgave", "newWithdrawal": "Nieuwe uitgave",
"bills_paid": "Betaalde contracten", "bills_paid": "Betaalde contracten",
"left_to_spend": "Over om uit te geven",
"no_budget": "(geen budget)",
"budgeted": "Gebudgetteerd",
"spent": "Uitgegeven",
"no_bill": "(geen contract)",
"rule_trigger_source_account_starts_choice": "Bronrekeningnaam begint met..", "rule_trigger_source_account_starts_choice": "Bronrekeningnaam begint met..",
"rule_trigger_source_account_ends_choice": "Bronrekeningnaam eindigt op..", "rule_trigger_source_account_ends_choice": "Bronrekeningnaam eindigt op..",
"rule_trigger_source_account_is_choice": "Bronrekeningnaam is..", "rule_trigger_source_account_is_choice": "Bronrekeningnaam is..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Abonnementen", "subscriptions": "Abonnementen",
"welcome_back": "Hoe staat het er voor?", "welcome_back": "Hoe staat het er voor?",
"bills_to_pay": "Openstaande contracten", "bills_to_pay": "Openstaande contracten",
"left_to_spend": "Over om uit te geven",
"net_worth": "Kapitaal", "net_worth": "Kapitaal",
"pref_last365": "Afgelopen jaar", "pref_last365": "Afgelopen jaar",
"pref_last90": "Afgelopen 90 dagen", "pref_last90": "Afgelopen 90 dagen",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Nowa wp\u0142ata", "newDeposit": "Nowa wp\u0142ata",
"newWithdrawal": "Nowy wydatek", "newWithdrawal": "Nowy wydatek",
"bills_paid": "Zap\u0142acone rachunki", "bills_paid": "Zap\u0142acone rachunki",
"left_to_spend": "Pozosta\u0142o do wydania",
"no_budget": "(brak bud\u017cetu)",
"budgeted": "Zabud\u017cetowano",
"spent": "Wydano",
"no_bill": "(brak rachunku)",
"rule_trigger_source_account_starts_choice": "Konto \u017ar\u00f3d\u0142owe si\u0119 zaczyna od..", "rule_trigger_source_account_starts_choice": "Konto \u017ar\u00f3d\u0142owe si\u0119 zaczyna od..",
"rule_trigger_source_account_ends_choice": "Konto \u017ar\u00f3d\u0142owe ko\u0144czy si\u0119 na..", "rule_trigger_source_account_ends_choice": "Konto \u017ar\u00f3d\u0142owe ko\u0144czy si\u0119 na..",
"rule_trigger_source_account_is_choice": "Kontem \u017ar\u00f3d\u0142owym jest..", "rule_trigger_source_account_is_choice": "Kontem \u017ar\u00f3d\u0142owym jest..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subskrypcje", "subscriptions": "Subskrypcje",
"welcome_back": "Co jest grane?", "welcome_back": "Co jest grane?",
"bills_to_pay": "Rachunki do zap\u0142acenia", "bills_to_pay": "Rachunki do zap\u0142acenia",
"left_to_spend": "Pozosta\u0142o do wydania",
"net_worth": "Warto\u015b\u0107 netto", "net_worth": "Warto\u015b\u0107 netto",
"pref_last365": "Ostatni rok", "pref_last365": "Ostatni rok",
"pref_last90": "Ostatnie 90 dni", "pref_last90": "Ostatnie 90 dni",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Novo dep\u00f3sito", "newDeposit": "Novo dep\u00f3sito",
"newWithdrawal": "Nova despesa", "newWithdrawal": "Nova despesa",
"bills_paid": "Contas pagas", "bills_paid": "Contas pagas",
"left_to_spend": "Restante para gastar",
"no_budget": "(sem or\u00e7amento)",
"budgeted": "Or\u00e7ado",
"spent": "Gasto",
"no_bill": "(sem conta)",
"rule_trigger_source_account_starts_choice": "Nome da conta de origem come\u00e7a com..", "rule_trigger_source_account_starts_choice": "Nome da conta de origem come\u00e7a com..",
"rule_trigger_source_account_ends_choice": "O nome da conta de origem termina com..", "rule_trigger_source_account_ends_choice": "O nome da conta de origem termina com..",
"rule_trigger_source_account_is_choice": "Nome da conta de origem \u00e9..", "rule_trigger_source_account_is_choice": "Nome da conta de origem \u00e9..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Assinaturas", "subscriptions": "Assinaturas",
"welcome_back": "O que est\u00e1 acontecendo?", "welcome_back": "O que est\u00e1 acontecendo?",
"bills_to_pay": "Contas a pagar", "bills_to_pay": "Contas a pagar",
"left_to_spend": "Restante para gastar",
"net_worth": "Valor L\u00edquido", "net_worth": "Valor L\u00edquido",
"pref_last365": "Ano passado", "pref_last365": "Ano passado",
"pref_last90": "\u00daltimos 90 dias", "pref_last90": "\u00daltimos 90 dias",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Novo dep\u00f3sito", "newDeposit": "Novo dep\u00f3sito",
"newWithdrawal": "Nova despesa", "newWithdrawal": "Nova despesa",
"bills_paid": "Fatura pagas", "bills_paid": "Fatura pagas",
"left_to_spend": "Restante para gastar",
"no_budget": "(sem or\u00e7amento)",
"budgeted": "Or\u00e7amentado",
"spent": "Gasto",
"no_bill": "(sem fatura)",
"rule_trigger_source_account_starts_choice": "O nome da conta de origem come\u00e7a com..", "rule_trigger_source_account_starts_choice": "O nome da conta de origem come\u00e7a com..",
"rule_trigger_source_account_ends_choice": "O nome da conta de origem acaba com..", "rule_trigger_source_account_ends_choice": "O nome da conta de origem acaba com..",
"rule_trigger_source_account_is_choice": "O nome da conta de origem \u00e9..", "rule_trigger_source_account_is_choice": "O nome da conta de origem \u00e9..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscri\u00e7\u00f5es", "subscriptions": "Subscri\u00e7\u00f5es",
"welcome_back": "Tudo bem?", "welcome_back": "Tudo bem?",
"bills_to_pay": "Faturas a pagar", "bills_to_pay": "Faturas a pagar",
"left_to_spend": "Restante para gastar",
"net_worth": "Patrim\u00f3nio liquido", "net_worth": "Patrim\u00f3nio liquido",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "\u00daltimos 90 dias", "pref_last90": "\u00daltimos 90 dias",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Depozit nou", "newDeposit": "Depozit nou",
"newWithdrawal": "Cheltuieli noi", "newWithdrawal": "Cheltuieli noi",
"bills_paid": "Facturile pl\u0103tite", "bills_paid": "Facturile pl\u0103tite",
"left_to_spend": "Ramas de cheltuit",
"no_budget": "(nici un buget)",
"budgeted": "Bugetat",
"spent": "Cheltuit",
"no_bill": "(f\u0103r\u0103 factur\u0103)",
"rule_trigger_source_account_starts_choice": "Numele contului surs\u0103 \u00eencepe cu..", "rule_trigger_source_account_starts_choice": "Numele contului surs\u0103 \u00eencepe cu..",
"rule_trigger_source_account_ends_choice": "Numele contului surs\u0103 se termin\u0103 cu..", "rule_trigger_source_account_ends_choice": "Numele contului surs\u0103 se termin\u0103 cu..",
"rule_trigger_source_account_is_choice": "Numele contului surs\u0103 este..", "rule_trigger_source_account_is_choice": "Numele contului surs\u0103 este..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "Ce se red\u0103?", "welcome_back": "Ce se red\u0103?",
"bills_to_pay": "Facturile de plat\u0103", "bills_to_pay": "Facturile de plat\u0103",
"left_to_spend": "Ramas de cheltuit",
"net_worth": "Valoarea net\u0103", "net_worth": "Valoarea net\u0103",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "\u041d\u043e\u0432\u044b\u0439 \u0434\u043e\u0445\u043e\u0434", "newDeposit": "\u041d\u043e\u0432\u044b\u0439 \u0434\u043e\u0445\u043e\u0434",
"newWithdrawal": "\u041d\u043e\u0432\u044b\u0439 \u0440\u0430\u0441\u0445\u043e\u0434", "newWithdrawal": "\u041d\u043e\u0432\u044b\u0439 \u0440\u0430\u0441\u0445\u043e\u0434",
"bills_paid": "\u041e\u043f\u043b\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u0447\u0435\u0442\u0430", "bills_paid": "\u041e\u043f\u043b\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u0447\u0435\u0442\u0430",
"left_to_spend": "\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c",
"no_budget": "(\u0432\u043d\u0435 \u0431\u044e\u0434\u0436\u0435\u0442\u0430)",
"budgeted": "\u0417\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432 \u0431\u044e\u0434\u0436\u0435\u0442\u0435",
"spent": "\u0420\u0430\u0441\u0445\u043e\u0434",
"no_bill": "(\u043d\u0435\u0442 \u0441\u0447\u0451\u0442\u0430 \u043d\u0430 \u043e\u043f\u043b\u0430\u0442\u0443)",
"rule_trigger_source_account_starts_choice": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0447\u0451\u0442\u0430-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441..", "rule_trigger_source_account_starts_choice": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0447\u0451\u0442\u0430-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441..",
"rule_trigger_source_account_ends_choice": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0447\u0451\u0442\u0430-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430..", "rule_trigger_source_account_ends_choice": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0447\u0451\u0442\u0430-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430..",
"rule_trigger_source_account_is_choice": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0447\u0451\u0442\u0430-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430..", "rule_trigger_source_account_is_choice": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0447\u0451\u0442\u0430-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043c\u043e\u0438\u043c\u0438 \u0444\u0438\u043d\u0430\u043d\u0441\u0430\u043c\u0438?", "welcome_back": "\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043c\u043e\u0438\u043c\u0438 \u0444\u0438\u043d\u0430\u043d\u0441\u0430\u043c\u0438?",
"bills_to_pay": "\u0421\u0447\u0435\u0442\u0430 \u043a \u043e\u043f\u043b\u0430\u0442\u0435", "bills_to_pay": "\u0421\u0447\u0435\u0442\u0430 \u043a \u043e\u043f\u043b\u0430\u0442\u0435",
"left_to_spend": "\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c",
"net_worth": "\u041c\u043e\u0438 \u0441\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0438\u044f", "net_worth": "\u041c\u043e\u0438 \u0441\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0438\u044f",
"pref_last365": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0433\u043e\u0434", "pref_last365": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0433\u043e\u0434",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Nov\u00fd vklad", "newDeposit": "Nov\u00fd vklad",
"newWithdrawal": "Nov\u00fd v\u00fddavok", "newWithdrawal": "Nov\u00fd v\u00fddavok",
"bills_paid": "Zaplaten\u00e9 \u00fa\u010dty", "bills_paid": "Zaplaten\u00e9 \u00fa\u010dty",
"left_to_spend": "Zost\u00e1va k \u00fatrate",
"no_budget": "(\u017eiadny rozpo\u010det)",
"budgeted": "Rozpo\u010dtovan\u00e9",
"spent": "Utraten\u00e9",
"no_bill": "(\u017eiadny \u00fa\u010det)",
"rule_trigger_source_account_starts_choice": "N\u00e1zov zdrojov\u00e9ho \u00fa\u010dtu za\u010d\u00edna..", "rule_trigger_source_account_starts_choice": "N\u00e1zov zdrojov\u00e9ho \u00fa\u010dtu za\u010d\u00edna..",
"rule_trigger_source_account_ends_choice": "N\u00e1zov zdrojov\u00e9ho \u00fa\u010dtu kon\u010d\u00ed..", "rule_trigger_source_account_ends_choice": "N\u00e1zov zdrojov\u00e9ho \u00fa\u010dtu kon\u010d\u00ed..",
"rule_trigger_source_account_is_choice": "N\u00e1zov zdrojov\u00e9ho \u00fa\u010dtu je..", "rule_trigger_source_account_is_choice": "N\u00e1zov zdrojov\u00e9ho \u00fa\u010dtu je..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "Ako to ide?", "welcome_back": "Ako to ide?",
"bills_to_pay": "\u00da\u010dty na \u00fahradu", "bills_to_pay": "\u00da\u010dty na \u00fahradu",
"left_to_spend": "Zost\u00e1va k \u00fatrate",
"net_worth": "\u010cist\u00e9 imanie", "net_worth": "\u010cist\u00e9 imanie",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Ny ins\u00e4ttning", "newDeposit": "Ny ins\u00e4ttning",
"newWithdrawal": "Ny utgift", "newWithdrawal": "Ny utgift",
"bills_paid": "Notor betalda", "bills_paid": "Notor betalda",
"left_to_spend": "\u00c5terst\u00e5r att spendera",
"no_budget": "(ingen budget)",
"budgeted": "Budgeterat",
"spent": "Spenderat",
"no_bill": "(ingen r\u00e4kning)",
"rule_trigger_source_account_starts_choice": "K\u00e4llkontonamn b\u00f6rjar med..", "rule_trigger_source_account_starts_choice": "K\u00e4llkontonamn b\u00f6rjar med..",
"rule_trigger_source_account_ends_choice": "K\u00e4llkontonamn slutar med..", "rule_trigger_source_account_ends_choice": "K\u00e4llkontonamn slutar med..",
"rule_trigger_source_account_is_choice": "K\u00e4llkontonamn \u00e4r..", "rule_trigger_source_account_is_choice": "K\u00e4llkontonamn \u00e4r..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Prenumerationer", "subscriptions": "Prenumerationer",
"welcome_back": "Vad spelas?", "welcome_back": "Vad spelas?",
"bills_to_pay": "Notor att betala", "bills_to_pay": "Notor att betala",
"left_to_spend": "\u00c5terst\u00e5r att spendera",
"net_worth": "Nettof\u00f6rm\u00f6genhet", "net_worth": "Nettof\u00f6rm\u00f6genhet",
"pref_last365": "F\u00f6reg\u00e5ende \u00e5r", "pref_last365": "F\u00f6reg\u00e5ende \u00e5r",
"pref_last90": "Senaste 90 dagarna", "pref_last90": "Senaste 90 dagarna",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "Ti\u1ec1n g\u1eedi m\u1edbi", "newDeposit": "Ti\u1ec1n g\u1eedi m\u1edbi",
"newWithdrawal": "Chi ph\u00ed m\u1edbi", "newWithdrawal": "Chi ph\u00ed m\u1edbi",
"bills_paid": "H\u00f3a \u0111\u01a1n thanh to\u00e1n", "bills_paid": "H\u00f3a \u0111\u01a1n thanh to\u00e1n",
"left_to_spend": "C\u00f2n l\u1ea1i \u0111\u1ec3 chi ti\u00eau",
"no_budget": "(kh\u00f4ng c\u00f3 ng\u00e2n s\u00e1ch)",
"budgeted": "Ng\u00e2n s\u00e1ch",
"spent": "\u0110\u00e3 chi",
"no_bill": "(no bill)",
"rule_trigger_source_account_starts_choice": "Source account name starts with..", "rule_trigger_source_account_starts_choice": "Source account name starts with..",
"rule_trigger_source_account_ends_choice": "Source account name ends with..", "rule_trigger_source_account_ends_choice": "Source account name ends with..",
"rule_trigger_source_account_is_choice": "Source account name is..", "rule_trigger_source_account_is_choice": "Source account name is..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "Ch\u00e0o m\u1eebng tr\u1edf l\u1ea1i?", "welcome_back": "Ch\u00e0o m\u1eebng tr\u1edf l\u1ea1i?",
"bills_to_pay": "H\u00f3a \u0111\u01a1n ph\u1ea3i tr\u1ea3", "bills_to_pay": "H\u00f3a \u0111\u01a1n ph\u1ea3i tr\u1ea3",
"left_to_spend": "C\u00f2n l\u1ea1i \u0111\u1ec3 chi ti\u00eau",
"net_worth": "T\u00e0i s\u1ea3n th\u1ef1c", "net_worth": "T\u00e0i s\u1ea3n th\u1ef1c",
"pref_last365": "N\u0103m tr\u01b0\u1edbc", "pref_last365": "N\u0103m tr\u01b0\u1edbc",
"pref_last90": "90 ng\u00e0y cu\u1ed1i", "pref_last90": "90 ng\u00e0y cu\u1ed1i",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "\u65b0\u6536\u5165", "newDeposit": "\u65b0\u6536\u5165",
"newWithdrawal": "\u65b0\u652f\u51fa", "newWithdrawal": "\u65b0\u652f\u51fa",
"bills_paid": "\u5df2\u4ed8\u8d26\u5355", "bills_paid": "\u5df2\u4ed8\u8d26\u5355",
"left_to_spend": "\u5269\u4f59\u652f\u51fa",
"no_budget": "(\u65e0\u9884\u7b97)",
"budgeted": "\u9884\u7b97\u4e0a\u9650",
"spent": "\u652f\u51fa",
"no_bill": "(\u65e0\u8d26\u5355)",
"rule_trigger_source_account_starts_choice": "\u6765\u6e90\u8d26\u6237\u540d\u79f0\u5f00\u5934\u4e3a...", "rule_trigger_source_account_starts_choice": "\u6765\u6e90\u8d26\u6237\u540d\u79f0\u5f00\u5934\u4e3a...",
"rule_trigger_source_account_ends_choice": "\u6765\u6e90\u8d26\u6237\u7ed3\u5c3e\u4e3a\u2026", "rule_trigger_source_account_ends_choice": "\u6765\u6e90\u8d26\u6237\u7ed3\u5c3e\u4e3a\u2026",
"rule_trigger_source_account_is_choice": "\u6765\u6e90\u8d26\u6237\u540d\u79f0\u4e3a...", "rule_trigger_source_account_is_choice": "\u6765\u6e90\u8d26\u6237\u540d\u79f0\u4e3a...",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "\u4eca\u5929\u7406\u8d22\u4e86\u5417\uff1f", "welcome_back": "\u4eca\u5929\u7406\u8d22\u4e86\u5417\uff1f",
"bills_to_pay": "\u5f85\u4ed8\u8d26\u5355", "bills_to_pay": "\u5f85\u4ed8\u8d26\u5355",
"left_to_spend": "\u5269\u4f59\u652f\u51fa",
"net_worth": "\u51c0\u8d44\u4ea7", "net_worth": "\u51c0\u8d44\u4ea7",
"pref_last365": "\u6700\u8fd1\u4e00\u5e74", "pref_last365": "\u6700\u8fd1\u4e00\u5e74",
"pref_last90": "\u6700\u8fd190\u5929", "pref_last90": "\u6700\u8fd190\u5929",

View File

@@ -52,6 +52,11 @@ export default {
"newDeposit": "\u65b0\u5b58\u6b3e", "newDeposit": "\u65b0\u5b58\u6b3e",
"newWithdrawal": "\u65b0\u652f\u51fa", "newWithdrawal": "\u65b0\u652f\u51fa",
"bills_paid": "\u5df2\u7e73\u5e33\u55ae", "bills_paid": "\u5df2\u7e73\u5e33\u55ae",
"left_to_spend": "\u5269\u9918\u53ef\u82b1\u8cbb",
"no_budget": "(\u7121\u9810\u7b97)",
"budgeted": "\u5df2\u5217\u5165\u9810\u7b97",
"spent": "\u652f\u51fa",
"no_bill": "(no bill)",
"rule_trigger_source_account_starts_choice": "Source account name starts with..", "rule_trigger_source_account_starts_choice": "Source account name starts with..",
"rule_trigger_source_account_ends_choice": "Source account name ends with..", "rule_trigger_source_account_ends_choice": "Source account name ends with..",
"rule_trigger_source_account_is_choice": "Source account name is..", "rule_trigger_source_account_is_choice": "Source account name is..",
@@ -187,7 +192,6 @@ export default {
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"welcome_back": "What's playing?", "welcome_back": "What's playing?",
"bills_to_pay": "\u5f85\u4ed8\u5e33\u55ae", "bills_to_pay": "\u5f85\u4ed8\u5e33\u55ae",
"left_to_spend": "\u5269\u9918\u53ef\u82b1\u8cbb",
"net_worth": "\u6de8\u503c", "net_worth": "\u6de8\u503c",
"pref_last365": "Last year", "pref_last365": "Last year",
"pref_last90": "Last 90 days", "pref_last90": "Last 90 days",

View File

@@ -30,7 +30,7 @@
<SpendInsightBox /> <SpendInsightBox />
</div> </div>
<div class="col"> <div class="col">
TODO net worth insight <NetWorthInsightBox />
</div> </div>
</div> </div>
<div class="row q-mb-sm"> <div class="row q-mb-sm">
@@ -89,10 +89,12 @@
<script> <script>
import {defineAsyncComponent} from "vue"; import {defineAsyncComponent} from "vue";
import NetWorthInsightBox from "../../components/dashboard/NetWorthInsightBox";
export default { export default {
name: "Dashboard", name: "Dashboard",
components: { components: {
NetWorthInsightBox,
BillInsightBox: defineAsyncComponent(() => import('../../components/dashboard/BillInsightBox.vue')), BillInsightBox: defineAsyncComponent(() => import('../../components/dashboard/BillInsightBox.vue')),
SpendInsightBox: defineAsyncComponent(() => import('../../components/dashboard/SpendInsightBox.vue')), SpendInsightBox: defineAsyncComponent(() => import('../../components/dashboard/SpendInsightBox.vue')),
} }

View File

@@ -33,6 +33,17 @@ Route::group(
} }
); );
/**
* V2 API route for net worth endpoint(s);
*/
Route::group(
['namespace' => 'FireflyIII\Api\V2\Controllers', 'prefix' => 'v2/net-worth',
'as' => 'api.v2.net-worth.',],
static function () {
Route::get('', ['uses' => 'NetWorthController@get', 'as' => 'index']);
}
);
/** /**
* V2 API route for bills. * V2 API route for bills.
*/ */
@@ -45,6 +56,8 @@ Route::group(
} }
); );
/** /**
* V2 API route for budgets. * V2 API route for budgets.
*/ */