Merge branch 'develop' into 5.7.0

# Conflicts:
#	composer.json
#	composer.lock
This commit is contained in:
James Cole 2022-03-19 07:58:06 +01:00
commit 45d99aa456
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
147 changed files with 858 additions and 669 deletions

View File

@ -94,7 +94,7 @@ abstract class Controller extends BaseController
$obj = Carbon::parse($date); $obj = Carbon::parse($date);
} catch (InvalidDateException | InvalidFormatException $e) { } catch (InvalidDateException | InvalidFormatException $e) {
// don't care // don't care
Log::warn(sprintf('Ignored invalid date "%s" in API controller parameter check: %s', (string) $date, $e->getMessage())); Log::warning(sprintf('Ignored invalid date "%s" in API controller parameter check: %s', (string) $date, $e->getMessage()));
} }
} }
$bag->set($field, $obj); $bag->set($field, $obj);

View File

@ -71,6 +71,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
return parent::render($request, $e); return parent::render($request, $e);
case 'accounts.show': case 'accounts.show':
case 'accounts.edit':
case 'accounts.show.all': case 'accounts.show.all':
return $this->handleAccount($request, $e); return $this->handleAccount($request, $e);
case 'transactions.show': case 'transactions.show':

View File

@ -153,6 +153,12 @@ class Handler extends ExceptionHandler
$userData['id'] = auth()->user()->id; $userData['id'] = auth()->user()->id;
$userData['email'] = auth()->user()->email; $userData['email'] = auth()->user()->email;
} }
$headers = [];
if (request()->headers) {
$headers = request()->headers->all();
}
$data = [ $data = [
'class' => get_class($e), 'class' => get_class($e),
'errorMessage' => $e->getMessage(), 'errorMessage' => $e->getMessage(),
@ -165,11 +171,12 @@ class Handler extends ExceptionHandler
'url' => request()->fullUrl(), 'url' => request()->fullUrl(),
'userAgent' => request()->userAgent(), 'userAgent' => request()->userAgent(),
'json' => request()->acceptsJson(), 'json' => request()->acceptsJson(),
'headers' => $headers,
]; ];
// create job that will mail. // create job that will mail.
$ipAddress = request()->ip() ?? '0.0.0.0'; $ipAddress = request()->ip() ?? '0.0.0.0';
$job = new MailError($userData, (string)config('firefly.site_owner'), $ipAddress, $data); $job = new MailError($userData, (string) config('firefly.site_owner'), $ipAddress, $data);
dispatch($job); dispatch($job);
parent::report($e); parent::report($e);

View File

@ -43,6 +43,15 @@ class TransactionCurrencyFactory
*/ */
public function create(array $data): TransactionCurrency public function create(array $data): TransactionCurrency
{ {
// if the code already exists (deleted)
// force delete it and then create the transaction:
$count = TransactionCurrency::withTrashed()->whereCode($data['code'])->count();
if(1 === $count) {
$old = TransactionCurrency::withTrashed()->whereCode($data['code'])->first();
$old->forceDelete();
Log::warning(sprintf('Force deleted old currency with ID #%d and code "%s".', $old->id, $data['code']));
}
try { try {
/** @var TransactionCurrency $result */ /** @var TransactionCurrency $result */
$result = TransactionCurrency::create( $result = TransactionCurrency::create(

View File

@ -226,7 +226,9 @@ trait MetaCollection
$q1->where(function (Builder $q2) { $q1->where(function (Builder $q2) {
$q2->where('journal_meta.name', '=', 'external_url'); $q2->where('journal_meta.name', '=', 'external_url');
$q2->whereNull('journal_meta.data'); $q2->whereNull('journal_meta.data');
})->orWhereNull('journal_meta.name'); })->orWhere(function (Builder $q3) {
$q3->where('journal_meta.name', '!=', 'external_url');
});
}); });
return $this; return $this;
@ -416,6 +418,7 @@ trait MetaCollection
static function (JoinClause $join) { static function (JoinClause $join) {
$join->on('notes.noteable_id', '=', 'transaction_journals.id'); $join->on('notes.noteable_id', '=', 'transaction_journals.id');
$join->where('notes.noteable_type', '=', 'FireflyIII\Models\TransactionJournal'); $join->where('notes.noteable_type', '=', 'FireflyIII\Models\TransactionJournal');
$join->whereNull('notes.deleted_at');
} }
); );
// add fields // add fields

View File

@ -120,50 +120,53 @@ class DebugController extends Controller
*/ */
public function index(Request $request) public function index(Request $request)
{ {
$search = ['~', '#']; // basic scope information:
$replace = ['\~', '# ']; $now = Carbon::now()->format('Y-m-d H:i:s e');
$buildNr = '(unknown)';
$now = Carbon::now()->format('Y-m-d H:i:s e'); $buildDate = '(unknown)';
$installationIdConfig = app('fireflyconfig')->get('installation_id', ''); $expectedDBversion = config('firefly.db_version');
$installationId = $installationIdConfig ? $installationIdConfig->data : ''; $foundDBversion = FireflyConfig::get('db_version', 1)->data;
$phpVersion = str_replace($search, $replace, PHP_VERSION);
$phpOs = str_replace($search, $replace, PHP_OS);
$interface = PHP_SAPI;
$drivers = implode(', ', DB::availableDrivers());
$currentDriver = DB::getDriverName();
$userAgent = $request->header('user-agent');
$trustedProxies = config('firefly.trusted_proxies');
$displayErrors = ini_get('display_errors');
$errorReporting = $this->errorReporting((int)ini_get('error_reporting'));
$appEnv = config('app.env');
$appDebug = var_export(config('app.debug'), true);
$logChannel = config('logging.default');
$appLogLevel = config('logging.level');
$cacheDriver = config('cache.default');
$loginProvider = config('auth.providers.users.driver');
$bcscale = bcscale();
$layout = env('FIREFLY_III_LAYOUT');
$tz = env('TZ');
$buildNr = '(unknown)';
$buildDate = '(unknown)';
if (file_exists('/var/www/counter-main.txt')) { if (file_exists('/var/www/counter-main.txt')) {
$buildNr = trim(file_get_contents('/var/www/counter-main.txt')); $buildNr = trim(file_get_contents('/var/www/counter-main.txt'));
} }
if (file_exists('/var/www/build-date-main.txt')) { if (file_exists('/var/www/build-date-main.txt')) {
$buildDate = trim(file_get_contents('/var/www/build-date-main.txt')); $buildDate = trim(file_get_contents('/var/www/build-date-main.txt'));
} }
$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');
$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: // expected + found DB version:
$expectedDBversion = config('firefly.db_version');
$foundDBversion = FireflyConfig::get('db_version', 1)->data;
// some new vars. // some new vars.
$defaultLanguage = (string)config('firefly.default_language'); $isDocker = env('IS_DOCKER', false);
$defaultLocale = (string)config('firefly.default_locale');
$userLanguage = app('steam')->getLanguage();
$userLocale = app('steam')->getLocale();
$isDocker = env('IS_DOCKER', false);
// set languages, see what happens: // set languages, see what happens:
$original = setlocale(LC_ALL, 0); $original = setlocale(LC_ALL, 0);
@ -209,19 +212,21 @@ class DebugController extends Controller
'appEnv', 'appEnv',
'appDebug', 'appDebug',
'logChannel', 'logChannel',
'stateful',
'tz', 'tz',
'appLogLevel', 'appLogLevel',
'remoteHeader',
'remoteMailHeader',
'now', 'now',
'drivers', 'drivers',
'currentDriver', 'currentDriver',
'userGuard',
'loginProvider', 'loginProvider',
'buildNr', 'buildNr',
'buildDate', 'buildDate',
'bcscale', 'bcscale',
'layout',
'userAgent', 'userAgent',
'displayErrors', 'displayErrors',
'installationId',
'errorReporting', 'errorReporting',
'phpOs', 'phpOs',
'interface', 'interface',
@ -260,7 +265,7 @@ class DebugController extends Controller
$return = ' '; $return = ' ';
/** @var Route $route */ /** @var Route $route */
foreach ($set as $route) { foreach ($set as $route) {
$name = (string)$route->getName(); $name = (string) $route->getName();
if (in_array('GET', $route->methods(), true)) { if (in_array('GET', $route->methods(), true)) {
$found = false; $found = false;
foreach ($ignore as $string) { foreach ($ignore as $string) {

View File

@ -59,9 +59,9 @@ class CurrencyFormRequest extends FormRequest
{ {
// fixed // fixed
$rules = [ $rules = [
'name' => 'required|max:48|min:1|unique:transaction_currencies,name', 'name' => 'required|max:48|min:1|uniqueCurrencyName',
'code' => 'required|min:3|max:51|unique:transaction_currencies,code', 'code' => 'required|min:3|max:51|uniqueCurrencyCode',
'symbol' => 'required|min:1|max:51|unique:transaction_currencies,symbol', 'symbol' => 'required|min:1|max:51|uniqueCurrencySymbol',
'decimal_places' => 'required|min:0|max:12|numeric', 'decimal_places' => 'required|min:0|max:12|numeric',
'enabled' => 'in:0,1', 'enabled' => 'in:0,1',
]; ];

View File

@ -250,6 +250,7 @@ class CreateRecurringTransactions implements ShouldQueue
private function hasNotStartedYet(Recurrence $recurrence): bool private function hasNotStartedYet(Recurrence $recurrence): bool
{ {
$startDate = $this->getStartDate($recurrence); $startDate = $this->getStartDate($recurrence);
Log::debug(sprintf('Start date is %s', $startDate->format('Y-m-d')));
return $startDate->gt($this->date); return $startDate->gt($this->date);
} }

View File

@ -60,7 +60,8 @@ class MailError extends Job implements ShouldQueue
$this->exception = $exceptionData; $this->exception = $exceptionData;
$debug = $exceptionData; $debug = $exceptionData;
unset($debug['stackTrace']); unset($debug['stackTrace']);
Log::error('Exception is: ' . json_encode($debug)); unset($debug['headers']);
Log::error(sprintf('Exception is: %s', json_encode($debug)));
} }
/** /**
@ -81,7 +82,7 @@ class MailError extends Job implements ShouldQueue
$args, $args,
function (Message $message) use ($email) { function (Message $message) use ($email) {
if ('mail@example.com' !== $email) { if ('mail@example.com' !== $email) {
$message->to($email, $email)->subject((string)trans('email.error_subject')); $message->to($email, $email)->subject((string) trans('email.error_subject'));
} }
} }
); );

View File

@ -172,7 +172,7 @@ trait JournalServiceTrait
private function findAccountByNumber(?Account $account, array $data, array $types): ?Account private function findAccountByNumber(?Account $account, array $data, array $types): ?Account
{ {
// third attempt, find by account number // third attempt, find by account number
if (null === $account && null !== $data['number']) { if (null === $account && null !== $data['number'] && '' !== (string) $data['number']) {
Log::debug(sprintf('Searching for account number "%s".', $data['number'])); Log::debug(sprintf('Searching for account number "%s".', $data['number']));
// find by preferred type. // find by preferred type.
$source = $this->accountRepository->findByAccountNumber((string)$data['number'], [$types[0]]); $source = $this->accountRepository->findByAccountNumber((string)$data['number'], [$types[0]]);

View File

@ -66,7 +66,7 @@ class SetDestinationAccount implements ActionInterface
return false; return false;
} }
$type = $object->transactionType->type;
$this->repository->setUser($user); $this->repository->setUser($user);
// if this is a transfer or a deposit, the new destination account must be an asset account or a default account, and it MUST exist: // if this is a transfer or a deposit, the new destination account must be an asset account or a default account, and it MUST exist:

View File

@ -58,15 +58,14 @@ class SetSourceAccount implements ActionInterface
$user = User::find($journal['user_id']); $user = User::find($journal['user_id']);
$type = $journal['transaction_type_type']; $type = $journal['transaction_type_type'];
/** @var TransactionJournal|null $object */ /** @var TransactionJournal|null $object */
$object = $user->transactionJournals()->find((int)$journal['transaction_journal_id']); $object = $user->transactionJournals()->find((int) $journal['transaction_journal_id']);
$this->repository = app(AccountRepositoryInterface::class); $this->repository = app(AccountRepositoryInterface::class);
if (null === $object) { if (null === $object) {
Log::error('Could not find journal.'); Log::error('Could not find journal.');
return false; return false;
} }
$type = $object->transactionType->type;
$this->repository->setUser($user); $this->repository->setUser($user);
// if this is a transfer or a withdrawal, the new source account must be an asset account or a default account, and it MUST exist: // if this is a transfer or a withdrawal, the new source account must be an asset account or a default account, and it MUST exist:
@ -93,7 +92,7 @@ class SetSourceAccount implements ActionInterface
return false; return false;
} }
if (null !== $newAccount && (int)$newAccount->id === (int)$destination->account_id) { if (null !== $newAccount && (int) $newAccount->id === (int) $destination->account_id) {
Log::error( Log::error(
sprintf( sprintf(
'New source account ID #%d and current destination account ID #%d are the same. Do nothing.', $newAccount->id, 'New source account ID #%d and current destination account ID #%d are the same. Do nothing.', $newAccount->id,

View File

@ -34,7 +34,7 @@ use League\Fractal\Resource\Item;
class BudgetLimitTransformer extends AbstractTransformer class BudgetLimitTransformer extends AbstractTransformer
{ {
/** @var string[] */ /** @var string[] */
protected $availableIncludes protected array $availableIncludes
= [ = [
'budget', 'budget',
]; ];

View File

@ -53,6 +53,48 @@ use function is_string;
*/ */
class FireflyValidator extends Validator class FireflyValidator extends Validator
{ {
/**
* @param $attribute
* @param $value
* @return bool
*/
public function validateUniqueCurrencyName($attribute, $value): bool
{
return $this->validateUniqueCurrency('name', (string) $attribute, (string) $value);
}
/**
* @param $attribute
* @param $value
* @return bool
*/
public function validateUniqueCurrencyCode($attribute, $value): bool
{
return $this->validateUniqueCurrency('code', (string) $attribute, (string) $value);
}
/**
* @param $attribute
* @param $value
* @return bool
*/
public function validateUniqueCurrencySymbol($attribute, $value): bool
{
return $this->validateUniqueCurrency('symbol', (string) $attribute, (string) $value);
}
/**
* @param $attribute
* @param $value
* @return bool
*/
public function validateUniqueCurrency(string $field, string $attribute, string $value): bool
{
return 0 === DB::table('transaction_currencies')->where($field, $value)->whereNull('deleted_at')->count();
}
/** /**
* @param mixed $attribute * @param mixed $attribute
* @param mixed $value * @param mixed $value
@ -84,7 +126,7 @@ class FireflyValidator extends Validator
{ {
$field = $parameters[1] ?? 'id'; $field = $parameters[1] ?? 'id';
if (0 === (int)$value) { if (0 === (int) $value) {
return true; return true;
} }
$count = DB::table($parameters[0])->where('user_id', auth()->user()->id)->where($field, $value)->count(); $count = DB::table($parameters[0])->where('user_id', auth()->user()->id)->where($field, $value)->count();
@ -202,7 +244,7 @@ class FireflyValidator extends Validator
return false; return false;
} }
return 1 === (int)$checksum; return 1 === (int) $checksum;
} }
/** /**
@ -217,7 +259,7 @@ class FireflyValidator extends Validator
/** @var mixed $compare */ /** @var mixed $compare */
$compare = $parameters[0] ?? '0'; $compare = $parameters[0] ?? '0';
return bccomp((string)$value, (string)$compare) < 0; return bccomp((string) $value, (string) $compare) < 0;
} }
/** /**
@ -232,7 +274,7 @@ class FireflyValidator extends Validator
/** @var mixed $compare */ /** @var mixed $compare */
$compare = $parameters[0] ?? '0'; $compare = $parameters[0] ?? '0';
return bccomp((string)$value, (string)$compare) > 0; return bccomp((string) $value, (string) $compare) > 0;
} }
/** /**
@ -246,7 +288,7 @@ class FireflyValidator extends Validator
{ {
$field = $parameters[1] ?? 'id'; $field = $parameters[1] ?? 'id';
if (0 === (int)$value) { if (0 === (int) $value) {
return true; return true;
} }
$count = DB::table($parameters[0])->where($field, $value)->count(); $count = DB::table($parameters[0])->where($field, $value)->count();
@ -266,7 +308,7 @@ class FireflyValidator extends Validator
// first, get the index from this string: // first, get the index from this string:
$value = $value ?? ''; $value = $value ?? '';
$parts = explode('.', $attribute); $parts = explode('.', $attribute);
$index = (int)($parts[1] ?? '0'); $index = (int) ($parts[1] ?? '0');
// get the name of the trigger from the data array: // get the name of the trigger from the data array:
$actionType = $this->data['actions'][$index]['type'] ?? 'invalid'; $actionType = $this->data['actions'][$index]['type'] ?? 'invalid';
@ -330,7 +372,7 @@ class FireflyValidator extends Validator
{ {
// first, get the index from this string: // first, get the index from this string:
$parts = explode('.', $attribute); $parts = explode('.', $attribute);
$index = (int)($parts[1] ?? '0'); $index = (int) ($parts[1] ?? '0');
// get the name of the trigger from the data array: // get the name of the trigger from the data array:
$triggerType = $this->data['triggers'][$index]['type'] ?? 'invalid'; $triggerType = $this->data['triggers'][$index]['type'] ?? 'invalid';
@ -358,7 +400,7 @@ class FireflyValidator extends Validator
// check if it's an existing account. // check if it's an existing account.
if (in_array($triggerType, ['destination_account_id', 'source_account_id'])) { if (in_array($triggerType, ['destination_account_id', 'source_account_id'])) {
return is_numeric($value) && (int)$value > 0; return is_numeric($value) && (int) $value > 0;
} }
// check transaction type. // check transaction type.
@ -396,7 +438,7 @@ class FireflyValidator extends Validator
{ {
$verify = false; $verify = false;
if (array_key_exists('verify_password', $this->data)) { if (array_key_exists('verify_password', $this->data)) {
$verify = 1 === (int)$this->data['verify_password']; $verify = 1 === (int) $this->data['verify_password'];
} }
if ($verify) { if ($verify) {
/** @var Verifier $service */ /** @var Verifier $service */
@ -433,7 +475,7 @@ class FireflyValidator extends Validator
} }
$parameterId = $parameters[0] ?? null; $parameterId = $parameters[0] ?? null;
if (null !== $parameterId) { if (null !== $parameterId) {
return $this->validateByParameterId((int)$parameterId, $value); return $this->validateByParameterId((int) $parameterId, $value);
} }
if (array_key_exists('id', $this->data)) { if (array_key_exists('id', $this->data)) {
return $this->validateByAccountId($value); return $this->validateByAccountId($value);
@ -483,7 +525,7 @@ class FireflyValidator extends Validator
} }
$accountTypes = AccountType::whereIn('type', $search)->get(); $accountTypes = AccountType::whereIn('type', $search)->get();
$ignore = (int)($parameters[0] ?? 0.0); $ignore = (int) ($parameters[0] ?? 0.0);
$accountTypeIds = $accountTypes->pluck('id')->toArray(); $accountTypeIds = $accountTypes->pluck('id')->toArray();
/** @var Collection $set */ /** @var Collection $set */
$set = auth()->user()->accounts()->whereIn('account_type_id', $accountTypeIds)->where('id', '!=', $ignore)->get(); $set = auth()->user()->accounts()->whereIn('account_type_id', $accountTypeIds)->where('id', '!=', $ignore)->get();
@ -506,7 +548,7 @@ class FireflyValidator extends Validator
private function validateByAccountTypeId($value, $parameters): bool private function validateByAccountTypeId($value, $parameters): bool
{ {
$type = AccountType::find($this->data['account_type_id'])->first(); $type = AccountType::find($this->data['account_type_id'])->first();
$ignore = (int)($parameters[0] ?? 0.0); $ignore = (int) ($parameters[0] ?? 0.0);
/** @var Collection $set */ /** @var Collection $set */
$set = auth()->user()->accounts()->where('account_type_id', $type->id)->where('id', '!=', $ignore)->get(); $set = auth()->user()->accounts()->where('account_type_id', $type->id)->where('id', '!=', $ignore)->get();
@ -580,9 +622,9 @@ class FireflyValidator extends Validator
*/ */
public function validateUniqueAccountNumberForUser($attribute, $value, $parameters): bool public function validateUniqueAccountNumberForUser($attribute, $value, $parameters): bool
{ {
$accountId = (int)($this->data['id'] ?? 0.0); $accountId = (int) ($this->data['id'] ?? 0.0);
if (0 === $accountId) { if (0 === $accountId) {
$accountId = (int)($parameters[0] ?? 0.0); $accountId = (int) ($parameters[0] ?? 0.0);
} }
$query = AccountMeta::leftJoin('accounts', 'accounts.id', '=', 'account_meta.account_id') $query = AccountMeta::leftJoin('accounts', 'accounts.id', '=', 'account_meta.account_id')
@ -615,7 +657,7 @@ class FireflyValidator extends Validator
*/ */
public function validateUniqueExistingWebhook($value, $parameters, $something): bool public function validateUniqueExistingWebhook($value, $parameters, $something): bool
{ {
$existingId = (int)($something[0] ?? 0); $existingId = (int) ($something[0] ?? 0);
$trigger = 0; $trigger = 0;
$response = 0; $response = 0;
$delivery = 0; $delivery = 0;
@ -671,15 +713,15 @@ class FireflyValidator extends Validator
public function validateUniqueObjectForUser($attribute, $value, $parameters): bool public function validateUniqueObjectForUser($attribute, $value, $parameters): bool
{ {
[$table, $field] = $parameters; [$table, $field] = $parameters;
$exclude = (int)($parameters[2] ?? 0.0); $exclude = (int) ($parameters[2] ?? 0.0);
/* /*
* If other data (in $this->getData()) contains * If other data (in $this->getData()) contains
* ID field, set that field to be the $exclude. * ID field, set that field to be the $exclude.
*/ */
$data = $this->getData(); $data = $this->getData();
if (!array_key_exists(2, $parameters) && array_key_exists('id', $data) && (int)$data['id'] > 0) { if (!array_key_exists(2, $parameters) && array_key_exists('id', $data) && (int) $data['id'] > 0) {
$exclude = (int)$data['id']; $exclude = (int) $data['id'];
} }
// get entries from table // get entries from table
$set = DB::table($table)->where('user_id', auth()->user()->id)->whereNull('deleted_at') $set = DB::table($table)->where('user_id', auth()->user()->id)->whereNull('deleted_at')
@ -711,7 +753,7 @@ class FireflyValidator extends Validator
->where('object_groups.user_id', auth()->user()->id) ->where('object_groups.user_id', auth()->user()->id)
->where('object_groups.title', $value); ->where('object_groups.title', $value);
if (null !== $exclude) { if (null !== $exclude) {
$query->where('object_groups.id', '!=', (int)$exclude); $query->where('object_groups.id', '!=', (int) $exclude);
} }
return 0 === $query->count(); return 0 === $query->count();
@ -732,7 +774,7 @@ class FireflyValidator extends Validator
$query = DB::table('piggy_banks')->whereNull('piggy_banks.deleted_at') $query = DB::table('piggy_banks')->whereNull('piggy_banks.deleted_at')
->leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.account_id')->where('accounts.user_id', auth()->user()->id); ->leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.account_id')->where('accounts.user_id', auth()->user()->id);
if (null !== $exclude) { if (null !== $exclude) {
$query->where('piggy_banks.id', '!=', (int)$exclude); $query->where('piggy_banks.id', '!=', (int) $exclude);
} }
$query->where('piggy_banks.name', $value); $query->where('piggy_banks.name', $value);

View File

@ -2,6 +2,11 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/). This project adheres to [Semantic Versioning](http://semver.org/).
## 5.6.16 - 2022-03-01
### Fixed
- Broken migration would clash during startup.
## 5.6.15 - 2022-03-01 ## 5.6.15 - 2022-03-01
### Changed ### Changed

View File

@ -101,9 +101,8 @@
"predis/predis": "^1.1", "predis/predis": "^1.1",
"psr/log": "<3", "psr/log": "<3",
"ramsey/uuid": "^4.2", "ramsey/uuid": "^4.2",
"rcrowe/twigbridge": "^0.13", "rcrowe/twigbridge": "^0.14",
"spatie/data-transfer-object": "^3.7", "spatie/data-transfer-object": "^3.7"
"nunomaduro/collision": "^6.1"
}, },
"require-dev": { "require-dev": {
"barryvdh/laravel-debugbar": "^3.6", "barryvdh/laravel-debugbar": "^3.6",

View File

@ -101,7 +101,7 @@ return [
'webhooks' => false, 'webhooks' => false,
'handle_debts' => true, 'handle_debts' => true,
], ],
'version' => '5.6.15', 'version' => '5.6.16',
'api_version' => '1.5.5', 'api_version' => '1.5.5',
'db_version' => 18, 'db_version' => 18,

View File

@ -36,7 +36,7 @@ return [
| |
*/ */
'guard' => ['web'], 'guard' => [env('AUTHENTICATION_GUARD', 'web')],
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -6,9 +6,9 @@ use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
/** /**
* Class CreatePersonalAccessTokensTable * Class CreateLocalPersonalAccessTokensTable
*/ */
class CreatePersonalAccessTokensTable extends Migration class CreateLocalPersonalAccessTokensTable extends Migration
{ {
/** /**
* Run the migrations. * Run the migrations.

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/accounts/' + identifier;
return api.delete(url);
}
}

View File

@ -18,18 +18,34 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {api} from "boot/axios"; import Api from "src/api/root/api";
export default class Get { export default class Get extends Api {
get(identifier, date) { constructor() {
let url = '/api/v1/accounts/' + identifier; super('accounts'); // call the super class constructor and pass in the name parameter
if(!date) {
return api.get(url);
}
return api.get(url, {params: {date: date}});
} }
transactions(identifier, page, cacheKey) {
let url = '/api/v1/accounts/' + identifier + '/transactions'; /**
return api.get(url, {params: {page: page, cache: cacheKey}}); *
* @param identifier
* @param date
* @returns {Promise<AxiosResponse<any>>}
*/
get(identifier, date) {
let params = {date: date};
if(!date) {
return this.apiGet(identifier);
}
return this.apiGet(identifier, params);
}
/**
*
* @param identifier
* @param page
* @returns {Promise<AxiosResponse<any>>}
*/
transactions(identifier, page) {
return this.apiGetChildren('transactions', identifier, page);
} }
} }

View File

@ -19,10 +19,27 @@
*/ */
import {api} from "boot/axios"; import {api} from "boot/axios";
import Api from "src/api/root/api";
export default class List extends Api{
constructor() {
super('accounts');
}
export default class List {
list(type, page, cacheKey) { list(type, page, cacheKey) {
let url = '/api/v1/accounts'; let url = '/api/v1/accounts';
return api.get(url, {params: {page: page, cache: cacheKey, type: type}}); return api.get(url, {params: {page: page, cache: cacheKey, type: type}});
// console.log('list');
//
//
// let params = {
// type: type,
// page: page
// }
// this.apiList(page, params).then((response) => {
// console.log('response OK');
// }).catch((err) => {
// console.error('api list failed');
// });
} }
} }

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = 'api/v1/budgets/' + identifier;
return api.delete(url);
}
}

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/categories/' + identifier;
return api.delete(url);
}
}

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/currencies/' + identifier;
return api.delete(url);
}
}

View File

@ -1,5 +1,5 @@
/* /*
* post.js * destroy.js
* Copyright (c) 2022 james@firefly-iii.org * Copyright (c) 2022 james@firefly-iii.org
* *
* This file is part of Firefly III (https://github.com/firefly-iii). * This file is part of Firefly III (https://github.com/firefly-iii).
@ -18,11 +18,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {api} from "boot/axios"; import Api from "src/api/root/api";
export default class Destroy { export default class Destroy extends Api {
destroy(identifier) { constructor(path) {
let url = '/api/v1/rules/' + identifier; super(path);
return api.delete(url);
} }
} }

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/object_groups/' + identifier;
return api.delete(url);
}
}

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/piggy_banks/' + identifier;
return api.delete(url);
}
}

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/recurrences/' + identifier;
return api.delete(url);
}
}

104
frontend/src/api/root/api.js vendored Normal file
View File

@ -0,0 +1,104 @@
import {api} from "boot/axios";
/**
*
*/
export default class Api {
root = '/api/v1/';
path = '';
constructor(path) {
this.path = path;
}
apiPath() {
return this.root + this.path;
}
apiPathId(identifier) {
return this.root + this.path + '/' + identifier;
}
/**
*
* @param identifier
* @param params
* @returns {Promise<AxiosResponse<any>>}
*/
apiGet(identifier, params) {
let url = this.apiPathId(identifier);
if (params) {
return api.get(url, {params: params});
}
return api.get(url);
}
destroy(identifier) {
let url = this.apiPathId(identifier);
return api.delete(url);
}
apiPathChildren(identifier, type) {
return this.apiPathId(identifier) + '/' + type;
}
apiGetChildren(type, identifier, page) {
let url = this.apiPathChildren(identifier, type);
let cacheKey = 'still-todo';
// needs a cache key. Based on type.
return api.get(url, {params: {page: page, cache: cacheKey}});
}
/**
*
* @param page
* @param params
* @returns {Promise<AxiosResponse<any>>}
*/
apiList(page, params) {
let type = 'transactions';
let identifier = '1';
let cacheKey = 'still-todo';
let url = this.apiPathChildren(identifier, type);
// needs a cache key. Based on type.
return api.get(url, {params: {page: page, cache: cacheKey}});
// let identifier = 'abc';
// // test:
// let type= 'expense';
// let type ='accounts';
//
// this.store.getters["fireflyiii/getScopedCacheKey"](type);
// let cacheKey = 'def';
// let url = this.apiPath();
//
// // needs a cache key. Based on type.
// return api.get(url, {params: {page: page, cache: cacheKey}});
//
//
// console.log('apiList');
// let cacheKey;
//
// //let $q = useQuasar();
// //const store = useStore();
// cacheKey = 'OK';
// console.log('path: ' + this.path);
// //cacheKey = $store.getters["fireflyiii/getScopedCacheKey"](this.path);
// //store.getters["fireflyiii/getScopedCacheKey"](this.path)
// let cache = {
// cache: cacheKey
// };
// let merged = {...params, ...cache};
// console.log(merged);
// let url = this.apiPath();
// console.log(url);
// return api.get(url, {params: merged});
}
}

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/rule_groups/' + identifier;
return api.delete(url);
}
}

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/bills/' + identifier;
return api.delete(url);
}
}

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/transactions/' + identifier;
return api.delete(url);
}
}

View File

@ -1,28 +0,0 @@
/*
* post.js
* 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/>.
*/
import {api} from "boot/axios";
export default class Destroy {
destroy(identifier) {
let url = '/api/v1/webhooks/' + identifier;
return api.delete(url);
}
}

View File

@ -127,7 +127,7 @@
<script> <script>
import format from "date-fns/format"; import format from "date-fns/format";
import Destroy from "../../api/transactions/destroy"; import Destroy from "../../api/generic/destroy";
export default { export default {
name: "LargeTable", name: "LargeTable",
@ -209,8 +209,8 @@ export default {
}); });
}, },
destroyTransaction: function (id) { destroyTransaction: function (id) {
let destr = new Destroy;
destr.destroy(id).then(() => { (new Destroy('transactions')).destroy(id).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
//this.triggerUpdate(); //this.triggerUpdate();
}); });

View File

@ -27,10 +27,10 @@ export default {
"title_deposit": "Revenue \/ income", "title_deposit": "Revenue \/ income",
"title_transfer": "Transfers", "title_transfer": "Transfers",
"title_transfers": "Transfers", "title_transfers": "Transfers",
"asset_accounts": "Asset accounts", "asset_accounts": "Cuentas de activos",
"expense_accounts": "Expense accounts", "expense_accounts": "Cuentas de gastos",
"revenue_accounts": "Revenue accounts", "revenue_accounts": "Cuentas de ingresos",
"liabilities_accounts": "Liabilities" "liabilities_accounts": "Pasivos"
}, },
"firefly": { "firefly": {
"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..",
@ -92,9 +92,9 @@ export default {
"rule_trigger_external_id_choice": "El ID externo es..", "rule_trigger_external_id_choice": "El ID externo es..",
"rule_trigger_internal_reference_choice": "La referencia interna es..", "rule_trigger_internal_reference_choice": "La referencia interna es..",
"rule_trigger_journal_id_choice": "El ID del diario de transacciones es..", "rule_trigger_journal_id_choice": "El ID del diario de transacciones es..",
"rule_trigger_any_external_url_choice": "Transaction has an external URL", "rule_trigger_any_external_url_choice": "La transacci\u00f3n tiene una URL externa",
"rule_trigger_no_external_url_choice": "Transaction has no external URL", "rule_trigger_no_external_url_choice": "La transacci\u00f3n no tiene URL externa",
"rule_trigger_id_choice": "Transaction ID is..", "rule_trigger_id_choice": "La ID de la transacci\u00f3n es..",
"rule_action_delete_transaction_choice": "ELIMINAR transacci\u00f3n (!)", "rule_action_delete_transaction_choice": "ELIMINAR transacci\u00f3n (!)",
"rule_action_set_category_choice": "Establecer categor\u00eda para..", "rule_action_set_category_choice": "Establecer categor\u00eda para..",
"rule_action_clear_category_choice": "Eliminar cualquier categor\u00eda", "rule_action_clear_category_choice": "Eliminar cualquier categor\u00eda",

View File

@ -27,10 +27,10 @@ export default {
"title_deposit": "Revenue \/ income", "title_deposit": "Revenue \/ income",
"title_transfer": "Transfers", "title_transfer": "Transfers",
"title_transfers": "Transfers", "title_transfers": "Transfers",
"asset_accounts": "Asset accounts", "asset_accounts": "Comptes d\u2019actif",
"expense_accounts": "Expense accounts", "expense_accounts": "Comptes de d\u00e9penses",
"revenue_accounts": "Revenue accounts", "revenue_accounts": "Comptes de recettes",
"liabilities_accounts": "Liabilities" "liabilities_accounts": "Passifs"
}, },
"firefly": { "firefly": {
"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..",

View File

@ -92,9 +92,9 @@ export default {
"rule_trigger_external_id_choice": "L'ID esterno \u00e8...", "rule_trigger_external_id_choice": "L'ID esterno \u00e8...",
"rule_trigger_internal_reference_choice": "Il riferimento interno \u00e8...", "rule_trigger_internal_reference_choice": "Il riferimento interno \u00e8...",
"rule_trigger_journal_id_choice": "L'ID journal della transazione \u00e8...", "rule_trigger_journal_id_choice": "L'ID journal della transazione \u00e8...",
"rule_trigger_any_external_url_choice": "Transaction has an external URL", "rule_trigger_any_external_url_choice": "La transazione ha un URL esterno",
"rule_trigger_no_external_url_choice": "Transaction has no external URL", "rule_trigger_no_external_url_choice": "La transazione non ha URL esterno",
"rule_trigger_id_choice": "Transaction ID is..", "rule_trigger_id_choice": "L'ID della transazione \u00e8...",
"rule_action_delete_transaction_choice": "ELIMINA transazione (!)", "rule_action_delete_transaction_choice": "ELIMINA transazione (!)",
"rule_action_set_category_choice": "Imposta come categoria...", "rule_action_set_category_choice": "Imposta come categoria...",
"rule_action_clear_category_choice": "Rimuovi da tutte le categorie", "rule_action_clear_category_choice": "Rimuovi da tutte le categorie",

View File

@ -27,10 +27,10 @@ export default {
"title_deposit": "Revenue \/ income", "title_deposit": "Revenue \/ income",
"title_transfer": "Transfers", "title_transfer": "Transfers",
"title_transfers": "Transfers", "title_transfers": "Transfers",
"asset_accounts": "Asset accounts", "asset_accounts": "Konta aktyw\u00f3w",
"expense_accounts": "Expense accounts", "expense_accounts": "Konta wydatk\u00f3w",
"revenue_accounts": "Revenue accounts", "revenue_accounts": "Konta przychod\u00f3w",
"liabilities_accounts": "Liabilities" "liabilities_accounts": "Zobowi\u0105zania"
}, },
"firefly": { "firefly": {
"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..",
@ -92,9 +92,9 @@ export default {
"rule_trigger_external_id_choice": "Zewn\u0119trzne ID to..", "rule_trigger_external_id_choice": "Zewn\u0119trzne ID to..",
"rule_trigger_internal_reference_choice": "Wewn\u0119trzne odwo\u0142anie to..", "rule_trigger_internal_reference_choice": "Wewn\u0119trzne odwo\u0142anie to..",
"rule_trigger_journal_id_choice": "ID dziennika transakcji to..", "rule_trigger_journal_id_choice": "ID dziennika transakcji to..",
"rule_trigger_any_external_url_choice": "Transaction has an external URL", "rule_trigger_any_external_url_choice": "Transakcja ma zewn\u0119trzny adres URL",
"rule_trigger_no_external_url_choice": "Transaction has no external URL", "rule_trigger_no_external_url_choice": "Transakcja nie ma zewn\u0119trznego adresu URL",
"rule_trigger_id_choice": "Transaction ID is..", "rule_trigger_id_choice": "Identyfikator transakcji to..",
"rule_action_delete_transaction_choice": "USU\u0143 transakcj\u0119 (!)", "rule_action_delete_transaction_choice": "USU\u0143 transakcj\u0119 (!)",
"rule_action_set_category_choice": "Ustaw kategori\u0119 na..", "rule_action_set_category_choice": "Ustaw kategori\u0119 na..",
"rule_action_clear_category_choice": "Wyczy\u015b\u0107 wszystkie kategorie", "rule_action_clear_category_choice": "Wyczy\u015b\u0107 wszystkie kategorie",

View File

@ -5,7 +5,6 @@
:rows="rows" :rows="rows"
:columns="columns" :columns="columns"
row-key="id" row-key="id"
@request="onRequest"
v-model:pagination="pagination" v-model:pagination="pagination"
:loading="loading" :loading="loading"
class="q-ma-md" class="q-ma-md"
@ -75,7 +74,7 @@
<script> <script>
import {mapGetters, useStore} from "vuex"; import {mapGetters, useStore} from "vuex";
import List from "../../api/accounts/list"; import List from "../../api/accounts/list";
import Destroy from "../../api/accounts/destroy"; import Destroy from "../../api/generic/destroy";
export default { export default {
name: 'Index', name: 'Index',
@ -144,10 +143,11 @@ export default {
}); });
}, },
destroyAccount: function (id) { destroyAccount: function (id) {
let destr = new Destroy; (new Destroy('accounts')).destroy(id).then(() => {
destr.destroy(id).then(() => { this.rows= [];
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey').then(() => {
this.triggerUpdate(); this.triggerUpdate();
});
}); });
}, },
updateBreadcrumbs: function () { updateBreadcrumbs: function () {
@ -169,14 +169,15 @@ export default {
return string.replace(NON_ALPHANUM, '').toUpperCase().replace(EVERY_FOUR_CHARS, "$1 "); return string.replace(NON_ALPHANUM, '').toUpperCase().replace(EVERY_FOUR_CHARS, "$1 ");
}, },
triggerUpdate: function () { triggerUpdate: function () {
if (this.loading) { this.rows= [];
if (true === this.loading) {
return; return;
} }
if (null === this.range.start || null === this.range.end) { if (null === this.range.start || null === this.range.end) {
return; return;
} }
this.loading = true; this.loading = true;
const list = new List(); const list = new List;
this.rows = []; this.rows = [];
list.list(this.type, this.page, this.getCacheKey).then( list.list(this.type, this.page, this.getCacheKey).then(
(response) => { (response) => {
@ -198,8 +199,10 @@ export default {
} }
this.loading = false; this.loading = false;
} }
) ).catch((err) => {
; console.error('Error loading list');
console.error(err);
});
} }
} }
} }

View File

@ -95,7 +95,7 @@ export default {
const parser = new Parser; const parser = new Parser;
this.rows = []; this.rows = [];
get.transactions(this.id, this.page, this.getCacheKey).then( get.transactions(this.id, this.page).then(
(response) => { (response) => {
let resp = parser.parseResponse(response); let resp = parser.parseResponse(response);

View File

@ -68,7 +68,7 @@
<script> <script>
import {mapGetters, useStore} from "vuex"; import {mapGetters, useStore} from "vuex";
import Destroy from "../../api/budgets/destroy"; import Destroy from "../../api/generic/destroy";
import List from "../../api/budgets/list"; import List from "../../api/budgets/list";
export default { export default {
@ -135,8 +135,7 @@ export default {
}); });
}, },
destroyBudget: function (id) { destroyBudget: function (id) {
let destr = new Destroy; (new Destroy('budgets')).destroy(id).then(() => {
destr.destroy(id).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });

View File

@ -68,7 +68,7 @@
<script> <script>
import {mapGetters, useStore} from "vuex"; import {mapGetters, useStore} from "vuex";
import Destroy from "../../api/categories/destroy"; import Destroy from "../../api/generic/destroy";
import List from "../../api/categories/list"; import List from "../../api/categories/list";
export default { export default {
@ -135,8 +135,7 @@ export default {
}); });
}, },
destroyCategory: function (id) { destroyCategory: function (id) {
let destr = new Destroy; (new Destroy('categories')).destroy(id).then(() => {
destr.destroy(id).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });

View File

@ -68,7 +68,7 @@
<script> <script>
import {mapGetters, useStore} from "vuex"; import {mapGetters, useStore} from "vuex";
import Destroy from "../../api/currencies/destroy"; import Destroy from "../../api/generic/destroy";
import List from "../../api/currencies/list"; import List from "../../api/currencies/list";
export default { export default {
@ -137,8 +137,7 @@ export default {
}); });
}, },
destroyCurrency: function (code) { destroyCurrency: function (code) {
let destr = new Destroy; (new Destroy('currencies')).destroy(code).then(() => {
destr.destroy(code).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });

View File

@ -52,7 +52,7 @@
<script> <script>
import {mapGetters, useStore} from "vuex"; import {mapGetters, useStore} from "vuex";
import Destroy from "../../api/groups/destroy"; import Destroy from "../../api/generic/destroy";
import List from "../../api/groups/list"; import List from "../../api/groups/list";
export default { export default {
@ -119,9 +119,8 @@ export default {
// TODO needs error catch. // TODO needs error catch.
}); });
}, },
destroyGroup: function (code) { destroyGroup: function (identifier) {
let destr = new Destroy; (new Destroy('object_groups')).destroy(identifier).then(() => {
destr.destroy(code).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });

View File

@ -65,7 +65,7 @@
<script> <script>
import {mapGetters, useStore} from "vuex"; import {mapGetters, useStore} from "vuex";
import Destroy from "../../api/piggy-banks/destroy"; import Destroy from "../../api/generic/destroy";
import List from "../../api/piggy-banks/list"; import List from "../../api/piggy-banks/list";
export default { export default {
@ -131,8 +131,7 @@ export default {
}); });
}, },
destroyPiggyBank: function (id) { destroyPiggyBank: function (id) {
let destr = new Destroy; (new Destroy('piggy_banks')).destroy(id).then(() => {
destr.destroy(id).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });

View File

@ -65,7 +65,7 @@
<script> <script>
import {mapGetters, useStore} from "vuex"; import {mapGetters, useStore} from "vuex";
import Destroy from "../../api/recurring/destroy"; import Destroy from "../../api/generic/destroy";
import List from "../../api/recurring/list"; import List from "../../api/recurring/list";
export default { export default {
@ -132,8 +132,7 @@ export default {
}); });
}, },
destroyRecurring: function (id) { destroyRecurring: function (id) {
let destr = new Destroy; (new Destroy('recurrences')).destroy(id).then(() => {
destr.destroy(id).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });

View File

@ -80,8 +80,7 @@
import {mapGetters} from "vuex"; import {mapGetters} from "vuex";
import List from "../../api/rule-groups/list"; import List from "../../api/rule-groups/list";
import Get from "../../api/rule-groups/get"; import Get from "../../api/rule-groups/get";
import Destroy from "../../api/rule-groups/destroy"; import Destroy from "../../api/generic/destroy";
import DestroyRule from "../../api/rules/destroy";
export default { export default {
name: 'Index', name: 'Index',
@ -142,15 +141,13 @@ export default {
}); });
}, },
destroyRuleGroup: function (id) { destroyRuleGroup: function (id) {
let destr = new Destroy; (new Destroy('rule_groups')).destroy(id).then(() => {
destr.destroy(id).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });
}, },
destroyRule: function (id) { destroyRule: function (id) {
let destr = new DestroyRule; (new Destroy('rules')).destroy(id).then(() => {
destr.destroy(id).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });

View File

@ -67,7 +67,7 @@
<script> <script>
import {mapGetters, useStore} from "vuex"; import {mapGetters, useStore} from "vuex";
import List from "../../api/subscriptions/list"; import List from "../../api/subscriptions/list";
import Destroy from "../../api/subscriptions/destroy"; import Destroy from "../../api/generic/destroy";
export default { export default {
name: 'Index', name: 'Index',
@ -127,8 +127,7 @@ export default {
}); });
}, },
destroySubscription: function (id) { destroySubscription: function (id) {
let destr = new Destroy; (new Destroy('bills')).destroy(id).then(() => {
destr.destroy(id).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });

View File

@ -66,7 +66,7 @@
<script> <script>
import {mapGetters} from "vuex"; import {mapGetters} from "vuex";
import Destroy from "../../api/webhooks/destroy"; import Destroy from "../../api/generic/destroy";
import List from "../../api/webhooks/list"; import List from "../../api/webhooks/list";
export default { export default {
@ -119,8 +119,7 @@ export default {
}); });
}, },
destroyWebhook: function (id) { destroyWebhook: function (id) {
let destr = new Destroy; (new Destroy('webhooks')).destroy(id).then(() => {
destr.destroy(id).then(() => {
this.$store.dispatch('fireflyiii/refreshCacheKey'); this.$store.dispatch('fireflyiii/refreshCacheKey');
this.triggerUpdate(); this.triggerUpdate();
}); });

View File

@ -3342,9 +3342,9 @@ flatted@^3.1.0:
integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==
follow-redirects@^1.0.0, follow-redirects@^1.14.0: follow-redirects@^1.0.0, follow-redirects@^1.14.0:
version "1.14.6" version "1.14.9"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A== integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
fork-ts-checker-webpack-plugin@6.5.0: fork-ts-checker-webpack-plugin@6.5.0:
version "6.5.0" version "6.5.0"
@ -4416,9 +4416,9 @@ mute-stream@0.0.8:
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
nanoid@^3.1.30: nanoid@^3.1.30:
version "3.1.30" version "3.3.1"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35"
integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==
natural-compare@^1.4.0: natural-compare@^1.4.0:
version "1.4.0" version "1.4.0"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -13,7 +13,7 @@
"transaction_new_stored_link": "<a href=\"transactions\/show\/{ID}\">Buchung #{ID}<\/a> wurde gespeichert.", "transaction_new_stored_link": "<a href=\"transactions\/show\/{ID}\">Buchung #{ID}<\/a> wurde gespeichert.",
"transaction_journal_information": "Transaktionsinformationen", "transaction_journal_information": "Transaktionsinformationen",
"no_budget_pointer": "Sie scheinen noch keine Kostenrahmen festgelegt zu haben. Sie sollten einige davon auf der Seite <a href=\"budgets\">Kostenrahmen<\/a>- anlegen. Kostenrahmen k\u00f6nnen Ihnen dabei helfen, den \u00dcberblick \u00fcber die Ausgaben zu behalten.", "no_budget_pointer": "Sie scheinen noch keine Kostenrahmen festgelegt zu haben. Sie sollten einige davon auf der Seite <a href=\"budgets\">Kostenrahmen<\/a>- anlegen. Kostenrahmen k\u00f6nnen Ihnen dabei helfen, den \u00dcberblick \u00fcber die Ausgaben zu behalten.",
"no_bill_pointer": "Sie scheinen noch keine Vertr\u00e4ge zu haben. Sie sollten einige auf der Seite <a href=\"bills\">Vertr\u00e4ge<\/a> erstellen. Anhand der Vertr\u00e4ge k\u00f6nnen Sie den \u00dcberblick \u00fcber Ihre Ausgaben behalten.", "no_bill_pointer": "Sie scheinen noch keine Rechnungen zu haben. Sie sollten einige auf der Seite <a href=\"bills\">Rechnungen<\/a> erstellen. Anhand der Rechnungen k\u00f6nnen Sie den \u00dcberblick \u00fcber Ihre Ausgaben behalten.",
"source_account": "Quellkonto", "source_account": "Quellkonto",
"hidden_fields_preferences": "Sie k\u00f6nnen weitere Buchungsoptionen in Ihren <a href=\"preferences\">Einstellungen<\/a> aktivieren.", "hidden_fields_preferences": "Sie k\u00f6nnen weitere Buchungsoptionen in Ihren <a href=\"preferences\">Einstellungen<\/a> aktivieren.",
"destination_account": "Zielkonto", "destination_account": "Zielkonto",

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Начало', 'home' => 'Начало',
'budgets' => 'Budgets',
'subscriptions' => 'Subscriptions',
'transactions' => 'Transactions',
'title_expenses' => 'Expenses',
'title_withdrawal' => 'Expenses',
'title_revenue' => 'Revenue / income',
'title_deposit' => 'Revenue / income',
'title_transfer' => 'Transfers',
'title_transfers' => 'Transfers',
'edit_currency' => 'Редактирай валута ":name"', 'edit_currency' => 'Редактирай валута ":name"',
'delete_currency' => 'Изтрий валута ":name"', 'delete_currency' => 'Изтрий валута ":name"',
'newPiggyBank' => 'Създай нова касичка', 'newPiggyBank' => 'Създай нова касичка',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'Ако предпочитате, можете също да отворите нов проблем на <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'Ако предпочитате, можете също да отворите нов проблем на <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'Ако предпочитате, можете също да отворите нов проблем на https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'Ако предпочитате, можете също да отворите нов проблем на https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'Пълният stacktrace е отдолу:', 'error_stacktrace_below' => 'Пълният stacktrace е отдолу:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III създаде нова транзакция | Firefly III създаде :count нови транзакции', 'new_journals_subject' => 'Firefly III създаде нова транзакция | Firefly III създаде :count нови транзакции',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Разходната сметка „@source_name“ приема само транзакции в @source_currency. Приходната сметка „@dest_name“ приема само транзакции в @dest_currency. Трябва да предоставите трансферираната сума точно и в двете валути.', 'transfer_exchange_rate_instructions' => 'Разходната сметка „@source_name“ приема само транзакции в @source_currency. Приходната сметка „@dest_name“ приема само транзакции в @dest_currency. Трябва да предоставите трансферираната сума точно и в двете валути.',
'transaction_data' => 'Данни на транзакцията', 'transaction_data' => 'Данни на транзакцията',
'invalid_server_configuration' => 'Грешна конфигурация на сървъра', '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 is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Бърз ключ', 'quickswitch' => 'Бърз ключ',
'sign_in_to_start' => 'Влезте, за да започнете сесията си', 'sign_in_to_start' => 'Влезте, за да започнете сесията си',
'sign_in' => 'Вход', 'sign_in' => 'Вход',
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Създай нова сметка за приходи', 'make_new_revenue_account' => 'Създай нова сметка за приходи',
'make_new_liabilities_account' => 'Създай ново задължение', 'make_new_liabilities_account' => 'Създай ново задължение',
'asset_accounts' => 'Сметки за активи', 'asset_accounts' => 'Сметки за активи',
'undefined_accounts' => 'Accounts',
'asset_accounts_inactive' => 'Сметки за активи (деактивирани)', 'asset_accounts_inactive' => 'Сметки за активи (деактивирани)',
'expense_accounts' => 'Сметки за разходи', 'expense_accounts' => 'Сметки за разходи',
'expense_accounts_inactive' => 'Сметки за разходи (деактивирани)', 'expense_accounts_inactive' => 'Сметки за разходи (деактивирани)',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Domů', 'home' => 'Domů',
'budgets' => 'Budgets',
'subscriptions' => 'Subscriptions',
'transactions' => 'Transactions',
'title_expenses' => 'Expenses',
'title_withdrawal' => 'Expenses',
'title_revenue' => 'Revenue / income',
'title_deposit' => 'Revenue / income',
'title_transfer' => 'Transfers',
'title_transfers' => 'Transfers',
'edit_currency' => 'Upravit měnu „:name“', 'edit_currency' => 'Upravit měnu „:name“',
'delete_currency' => 'Odstranit měnu „:name“', 'delete_currency' => 'Odstranit měnu „:name“',
'newPiggyBank' => 'Vytvořit novou pokladničku', 'newPiggyBank' => 'Vytvořit novou pokladničku',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'Pokud chcete, můžete vytvořit hlášení problému na <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'Pokud chcete, můžete vytvořit hlášení problému na <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'Pokud chcete, můžete vytvořit hlášení problému na https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'Pokud chcete, můžete vytvořit hlášení problému na https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'Celý zásobník je níže:', 'error_stacktrace_below' => 'Celý zásobník je níže:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III vytvořil novou transakci|Firefly III vytvořil :count nových transakcí', 'new_journals_subject' => 'Firefly III vytvořil novou transakci|Firefly III vytvořil :count nových transakcí',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Zdrojový účet aktiv "@source_name" přijímá pouze transakce v @source_currency. Cílový účet aktiv „@dest_name“ přijímá pouze transakce v @dest_currency. V obou měnách musíte uvést převedenou částku správně.', 'transfer_exchange_rate_instructions' => 'Zdrojový účet aktiv "@source_name" přijímá pouze transakce v @source_currency. Cílový účet aktiv „@dest_name“ přijímá pouze transakce v @dest_currency. V obou měnách musíte uvést převedenou částku správně.',
'transaction_data' => 'Data transakce', 'transaction_data' => 'Data transakce',
'invalid_server_configuration' => 'Neplatné nastavení serveru', 'invalid_server_configuration' => 'Neplatné nastavení serveru',
'invalid_locale_settings' => 'Firefly III nemůže formátovat peněžní účty protože na vašem serveru chybí potřebné balíčky. Jsou k dispozici <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">pokyny, jak to napravit</a>.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Rychlé přepnutí', 'quickswitch' => 'Rychlé přepnutí',
'sign_in_to_start' => 'Pro zahájení vaší relace se přihlaste', 'sign_in_to_start' => 'Pro zahájení vaší relace se přihlaste',
'sign_in' => 'Přihlásit', 'sign_in' => 'Přihlásit',
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Vytvořit nový příjmový účet', 'make_new_revenue_account' => 'Vytvořit nový příjmový účet',
'make_new_liabilities_account' => 'Vytvořit nový závazek', 'make_new_liabilities_account' => 'Vytvořit nový závazek',
'asset_accounts' => 'Účty aktiv', 'asset_accounts' => 'Účty aktiv',
'undefined_accounts' => 'Accounts',
'asset_accounts_inactive' => 'Asset accounts (inactive)', 'asset_accounts_inactive' => 'Asset accounts (inactive)',
'expense_accounts' => 'Výdajové účty', 'expense_accounts' => 'Výdajové účty',
'expense_accounts_inactive' => 'Výdajové účty (neaktivní)', 'expense_accounts_inactive' => 'Výdajové účty (neaktivní)',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Startseite', 'home' => 'Startseite',
'budgets' => 'Budgets',
'subscriptions' => 'Abonnements',
'transactions' => 'Buchungen',
'title_expenses' => 'Ausgaben',
'title_withdrawal' => 'Ausgaben',
'title_revenue' => 'Einnahmen / Einkommen',
'title_deposit' => 'Einnahmen / Einkommen',
'title_transfer' => 'Umbuchungen',
'title_transfers' => 'Transfers',
'edit_currency' => 'Währung „:name” bearbeiten', 'edit_currency' => 'Währung „:name” bearbeiten',
'delete_currency' => 'Währung „:name” löschen', 'delete_currency' => 'Währung „:name” löschen',
'newPiggyBank' => 'Neues Sparschwein erstellen', 'newPiggyBank' => 'Neues Sparschwein erstellen',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'Wenn Sie es bevorzugen, können Sie auch einen Fehlerbericht auf <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a> eröffnen.', 'error_github_html' => 'Wenn Sie es bevorzugen, können Sie auch einen Fehlerbericht auf <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a> eröffnen.',
'error_github_text' => 'Wenn Sie es bevorzugen, können Sie auch einen Fehlerbericht auf https://github.com/firefly-iii/firefly-iii/issues eröffnen.', 'error_github_text' => 'Wenn Sie es bevorzugen, können Sie auch einen Fehlerbericht auf https://github.com/firefly-iii/firefly-iii/issues eröffnen.',
'error_stacktrace_below' => 'Der vollständige Stacktrace ist unten:', 'error_stacktrace_below' => 'Der vollständige Stacktrace ist unten:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III hat eine neue Transaktion erstellt|Firefly III hat :count neue Transaktionen erstellt', 'new_journals_subject' => 'Firefly III hat eine neue Transaktion erstellt|Firefly III hat :count neue Transaktionen erstellt',

View File

@ -108,7 +108,7 @@ return [
'registered' => 'Sie haben sich erfolgreich registriert!', 'registered' => 'Sie haben sich erfolgreich registriert!',
'Default asset account' => 'Standard-Bestandskonto', 'Default asset account' => 'Standard-Bestandskonto',
'no_budget_pointer' => 'Sie scheinen noch keine Kostenrahmen festgelegt zu haben. Sie sollten einige davon auf der Seite <a href="budgets">Kostenrahmen</a>- anlegen. Kostenrahmen können Ihnen dabei helfen, den Überblick über die Ausgaben zu behalten.', 'no_budget_pointer' => 'Sie scheinen noch keine Kostenrahmen festgelegt zu haben. Sie sollten einige davon auf der Seite <a href="budgets">Kostenrahmen</a>- anlegen. Kostenrahmen können Ihnen dabei helfen, den Überblick über die Ausgaben zu behalten.',
'no_bill_pointer' => 'Sie scheinen noch keine Verträge zu haben. Sie sollten einige auf der Seite <a href="bills">Verträge</a> erstellen. Anhand der Verträge können Sie den Überblick über Ihre Ausgaben behalten.', 'no_bill_pointer' => 'Sie scheinen noch keine Rechnungen zu haben. Sie sollten einige auf der Seite <a href="bills">Rechnungen</a> erstellen. Anhand der Rechnungen können Sie den Überblick über Ihre Ausgaben behalten.',
'Savings account' => 'Sparkonto', 'Savings account' => 'Sparkonto',
'Credit card' => 'Kreditkarte', 'Credit card' => 'Kreditkarte',
'source_accounts' => 'Quellkonto|Quellkonten', 'source_accounts' => 'Quellkonto|Quellkonten',
@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Das Quellkonto „@source_name” akzeptiert nur Buchungen in @source_currency. Das Zielkonto "@dest_name" akzeptiert nur Buchungen in @dest_currency. Sie müssen den Betrag in beiden Währungen korrekt angeben.', 'transfer_exchange_rate_instructions' => 'Das Quellkonto „@source_name” akzeptiert nur Buchungen in @source_currency. Das Zielkonto "@dest_name" akzeptiert nur Buchungen in @dest_currency. Sie müssen den Betrag in beiden Währungen korrekt angeben.',
'transaction_data' => 'Transaktionsdaten', 'transaction_data' => 'Transaktionsdaten',
'invalid_server_configuration' => 'Ungültige Serverkonfiguration', 'invalid_server_configuration' => 'Ungültige Serverkonfiguration',
'invalid_locale_settings' => 'Firefly III kann keine Geldbeträge formatieren, da auf Ihrem Server die erforderlichen Pakete fehlen. Es gibt <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">eine Anleitung</a>, wie dies behoben werden kann.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Schnellauswahl', 'quickswitch' => 'Schnellauswahl',
'sign_in_to_start' => 'Melden Sie sich an, um Ihre Sitzung zu starten', 'sign_in_to_start' => 'Melden Sie sich an, um Ihre Sitzung zu starten',
'sign_in' => 'Anmelden', 'sign_in' => 'Anmelden',
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Neues Einnahmenkonto anlegen', 'make_new_revenue_account' => 'Neues Einnahmenkonto anlegen',
'make_new_liabilities_account' => 'Neue Verbindlichkeit anlegen', 'make_new_liabilities_account' => 'Neue Verbindlichkeit anlegen',
'asset_accounts' => 'Bestandskonten', 'asset_accounts' => 'Bestandskonten',
'undefined_accounts' => 'Konten',
'asset_accounts_inactive' => 'Bestandskonten (inaktiv)', 'asset_accounts_inactive' => 'Bestandskonten (inaktiv)',
'expense_accounts' => 'Ausgabekonten', 'expense_accounts' => 'Ausgabekonten',
'expense_accounts_inactive' => 'Ausgabekonten (inaktiv)', 'expense_accounts_inactive' => 'Ausgabekonten (inaktiv)',
@ -1395,7 +1396,7 @@ return [
'piggyBanks' => 'Sparschweine', 'piggyBanks' => 'Sparschweine',
'piggy_banks' => 'Sparschweine', 'piggy_banks' => 'Sparschweine',
'amount_x_of_y' => '{current} von {total}', 'amount_x_of_y' => '{current} von {total}',
'bills' => 'Verträge', 'bills' => 'Rechnungen',
'withdrawal' => 'Ausgabe', 'withdrawal' => 'Ausgabe',
'opening_balance' => 'Eröffnungsbilanz', 'opening_balance' => 'Eröffnungsbilanz',
'deposit' => 'Einnahme', 'deposit' => 'Einnahme',
@ -1795,11 +1796,11 @@ return [
'no_transactions_imperative_transfers' => 'Haben Sie Geld umgebucht? Dann sollten Sie es eintragen:', 'no_transactions_imperative_transfers' => 'Haben Sie Geld umgebucht? Dann sollten Sie es eintragen:',
'no_transactions_create_transfers' => 'Eine Umbuchung erstellen', 'no_transactions_create_transfers' => 'Eine Umbuchung erstellen',
'no_piggies_title_default' => 'Lassen Sie uns nun ein Sparschwein erstellen!', 'no_piggies_title_default' => 'Lassen Sie uns nun ein Sparschwein erstellen!',
'no_piggies_intro_default' => 'Sie haben noch keine Sparscheine. Sie können Sparschweine erstellen, um Ihre Ersparnisse zu teilen und den Überblick darüber zu behalten, wofür Sie sparen.', 'no_piggies_intro_default' => 'Sie haben noch keine Sparschweine. Sie können Sparschweine erstellen, um Ihre Ersparnisse zu teilen und den Überblick darüber zu behalten, wofür Sie sparen.',
'no_piggies_imperative_default' => 'Haben Sie Dinge, auf die Sie sparen? Erstellen Sie eine Sparschwein und behalten Sie den Überblick:', 'no_piggies_imperative_default' => 'Haben Sie Dinge, auf die Sie sparen? Erstellen Sie ein Sparschwein und behalten Sie den Überblick:',
'no_piggies_create_default' => 'Ein neues Sparschwein erstellen', 'no_piggies_create_default' => 'Ein neues Sparschwein erstellen',
'no_bills_title_default' => 'Lassen Sie uns nun eine Rechnung erstellen!', 'no_bills_title_default' => 'Lassen Sie uns nun eine Rechnung erstellen!',
'no_bills_intro_default' => 'Du hast noch keine Verträge. Sie können Verträge erstellen, um die laufenden Ausgaben, wie zum Beispiel Ihre Versicherung oder Miete, nachzuverfolgen.', 'no_bills_intro_default' => 'Du hast noch keine Rechnungen. Sie können Rechnungen erstellen, um die laufenden Ausgaben, wie zum Beispiel Ihre Versicherung oder Miete, nachzuverfolgen.',
'no_bills_imperative_default' => 'Haben Sie regelmäßige Rechnungen? Erstellen Sie eine Rechnung und verfolgen Sie Ihre Zahlungen:', 'no_bills_imperative_default' => 'Haben Sie regelmäßige Rechnungen? Erstellen Sie eine Rechnung und verfolgen Sie Ihre Zahlungen:',
'no_bills_create_default' => 'Eine Rechnung erstellen', 'no_bills_create_default' => 'Eine Rechnung erstellen',
@ -1808,7 +1809,7 @@ return [
'repeat_until_in_past' => 'Diese wiederkehrende Buchung wiederholte ab dem :date nicht mehr.', 'repeat_until_in_past' => 'Diese wiederkehrende Buchung wiederholte ab dem :date nicht mehr.',
'recurring_calendar_view' => 'Kalender', 'recurring_calendar_view' => 'Kalender',
'no_recurring_title_default' => 'Lassen Sie uns einen Dauerauftrag erstellen!', 'no_recurring_title_default' => 'Lassen Sie uns einen Dauerauftrag erstellen!',
'no_recurring_intro_default' => 'Noch keinen Dauerauftrag erstellt. Mit diesen können Sie Firefly III dazu einsetzen, automatisch Buchungen für Sie zu erstellen. ', 'no_recurring_intro_default' => 'Sie haben noch keine Daueraufträge erstellt. Diese können Sie nutzen, um automatisch Buchungen von Firefly III erstellen zu lassen.',
'no_recurring_imperative_default' => 'Dies ist eine sehr fortschrittliche Funktion, welche aber sehr nützlich sein kann. Stellen Sie sicher, dass Sie die Dokumentation (❓-Symbol in der oberen rechten Ecke) lesen, bevor Sie fortfahren.', 'no_recurring_imperative_default' => 'Dies ist eine sehr fortschrittliche Funktion, welche aber sehr nützlich sein kann. Stellen Sie sicher, dass Sie die Dokumentation (❓-Symbol in der oberen rechten Ecke) lesen, bevor Sie fortfahren.',
'no_recurring_create_default' => 'Dauerauftrag erstellen', 'no_recurring_create_default' => 'Dauerauftrag erstellen',
'make_new_recurring' => 'Dauerauftrag erstellen', 'make_new_recurring' => 'Dauerauftrag erstellen',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Αρχική', 'home' => 'Αρχική',
'budgets' => 'Budgets',
'subscriptions' => 'Subscriptions',
'transactions' => 'Transactions',
'title_expenses' => 'Expenses',
'title_withdrawal' => 'Expenses',
'title_revenue' => 'Revenue / income',
'title_deposit' => 'Revenue / income',
'title_transfer' => 'Transfers',
'title_transfers' => 'Transfers',
'edit_currency' => 'Επεξεργασία νομίσματος ":name"', 'edit_currency' => 'Επεξεργασία νομίσματος ":name"',
'delete_currency' => 'Διαγραφή νομίσματος ":name"', 'delete_currency' => 'Διαγραφή νομίσματος ":name"',
'newPiggyBank' => 'Δημιουργία ενός νέου κουμπαρά', 'newPiggyBank' => 'Δημιουργία ενός νέου κουμπαρά',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'Αν προτιμάτε, μπορείτε επίσης να ανοίξετε ένα νέο ζήτημα στο <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'Αν προτιμάτε, μπορείτε επίσης να ανοίξετε ένα νέο ζήτημα στο <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'Αν προτιμάτε, μπορείτε επίσης να ανοίξετε ένα νέο ζήτημα στο https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'Αν προτιμάτε, μπορείτε επίσης να ανοίξετε ένα νέο ζήτημα στο https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'Το πλήρες stacktrace είναι παρακάτω:', 'error_stacktrace_below' => 'Το πλήρες stacktrace είναι παρακάτω:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Το Firefly III έχει δημιουργήσει μια νέα συναλλαγή|Το Firefly III έχει δημιουργήσει :count νέες συναλλαγές', 'new_journals_subject' => 'Το Firefly III έχει δημιουργήσει μια νέα συναλλαγή|Το Firefly III έχει δημιουργήσει :count νέες συναλλαγές',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Ο κεφαλαιακός λογαριασμός προέλευσης "@source_name" δέχεται συναλλαγές μόνο σε @source_currency. Ο κεφαλαιακός λογαριασμός προορισμού "@dest_name" δέχεται συναλλαγές μόνο σε @dest_currency. Πρέπει να παρέχετε το σωστό μεταφερόμενο ποσό και στα δύο νομίσματα.', 'transfer_exchange_rate_instructions' => 'Ο κεφαλαιακός λογαριασμός προέλευσης "@source_name" δέχεται συναλλαγές μόνο σε @source_currency. Ο κεφαλαιακός λογαριασμός προορισμού "@dest_name" δέχεται συναλλαγές μόνο σε @dest_currency. Πρέπει να παρέχετε το σωστό μεταφερόμενο ποσό και στα δύο νομίσματα.',
'transaction_data' => 'Δεδομένα συναλλαγής', 'transaction_data' => 'Δεδομένα συναλλαγής',
'invalid_server_configuration' => 'Μη έγκυρη παραμετροποίηση εξυπηρετητή', '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 is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Εναλλαγή', 'quickswitch' => 'Εναλλαγή',
'sign_in_to_start' => 'Συνδεθείτε για να ξεκινήσετε τη συνεδρία σας', 'sign_in_to_start' => 'Συνδεθείτε για να ξεκινήσετε τη συνεδρία σας',
'sign_in' => 'Είσοδος', 'sign_in' => 'Είσοδος',
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Δημιουργία νέου λογαριασμού εσόδων', 'make_new_revenue_account' => 'Δημιουργία νέου λογαριασμού εσόδων',
'make_new_liabilities_account' => 'Δημιουργία νέας υποχρέωσης', 'make_new_liabilities_account' => 'Δημιουργία νέας υποχρέωσης',
'asset_accounts' => 'Κεφάλαια', 'asset_accounts' => 'Κεφάλαια',
'undefined_accounts' => 'Accounts',
'asset_accounts_inactive' => 'Λογαριασμοί κεφαλαίου (ανενεργοί)', 'asset_accounts_inactive' => 'Λογαριασμοί κεφαλαίου (ανενεργοί)',
'expense_accounts' => 'Δαπάνες', 'expense_accounts' => 'Δαπάνες',
'expense_accounts_inactive' => 'Λογαριασμοί δαπανών (ανενεργοί)', 'expense_accounts_inactive' => 'Λογαριασμοί δαπανών (ανενεργοί)',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Home', 'home' => 'Home',
'budgets' => 'Budgets',
'subscriptions' => 'Subscriptions',
'transactions' => 'Transactions',
'title_expenses' => 'Expenses',
'title_withdrawal' => 'Expenses',
'title_revenue' => 'Revenue / income',
'title_deposit' => 'Revenue / income',
'title_transfer' => 'Transfers',
'title_transfers' => 'Transfers',
'edit_currency' => 'Edit currency ":name"', 'edit_currency' => 'Edit currency ":name"',
'delete_currency' => 'Delete currency ":name"', 'delete_currency' => 'Delete currency ":name"',
'newPiggyBank' => 'Create a new piggy bank', 'newPiggyBank' => 'Create a new piggy bank',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'If you prefer, you can also open a new issue on <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'If you prefer, you can also open a new issue on <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'The full stacktrace is below:', 'error_stacktrace_below' => 'The full stacktrace is below:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions', 'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.', 'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.',
'transaction_data' => 'Transaction data', 'transaction_data' => 'Transaction data',
'invalid_server_configuration' => 'Invalid server configuration', 'invalid_server_configuration' => 'Invalid server configuration',
'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">instructions how to do this</a>.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Quickswitch', 'quickswitch' => 'Quickswitch',
'sign_in_to_start' => 'Sign in to start your session', 'sign_in_to_start' => 'Sign in to start your session',
'sign_in' => 'Sign in', 'sign_in' => 'Sign in',
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Create a new revenue account', 'make_new_revenue_account' => 'Create a new revenue account',
'make_new_liabilities_account' => 'Create a new liability', 'make_new_liabilities_account' => 'Create a new liability',
'asset_accounts' => 'Asset accounts', 'asset_accounts' => 'Asset accounts',
'undefined_accounts' => 'Accounts',
'asset_accounts_inactive' => 'Asset accounts (inactive)', 'asset_accounts_inactive' => 'Asset accounts (inactive)',
'expense_accounts' => 'Expense accounts', 'expense_accounts' => 'Expense accounts',
'expense_accounts_inactive' => 'Expense accounts (inactive)', 'expense_accounts_inactive' => 'Expense accounts (inactive)',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'If you prefer, you can also open a new issue on <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'If you prefer, you can also open a new issue on <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'The full stacktrace is below:', 'error_stacktrace_below' => 'The full stacktrace is below:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions', 'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.', 'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.',
'transaction_data' => 'Transaction data', 'transaction_data' => 'Transaction data',
'invalid_server_configuration' => 'Invalid server configuration', 'invalid_server_configuration' => 'Invalid server configuration',
'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">instructions how to do this</a>.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="https://docs.firefly-iii.org/firefly-iii/advanced-installation/locales/">instructions how to do this</a>.',
'quickswitch' => 'Quickswitch', 'quickswitch' => 'Quickswitch',
'sign_in_to_start' => 'Sign in to start your session', 'sign_in_to_start' => 'Sign in to start your session',
'sign_in' => 'Sign in', 'sign_in' => 'Sign in',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Inicio', 'home' => 'Inicio',
'budgets' => 'Presupuestos',
'subscriptions' => 'Suscripciones',
'transactions' => 'Transacciones',
'title_expenses' => 'Gastos',
'title_withdrawal' => 'Gastos',
'title_revenue' => 'Ingresos / salario',
'title_deposit' => 'Ingresos / salario',
'title_transfer' => 'Transferencias',
'title_transfers' => 'Transferencias',
'edit_currency' => 'Editar moneda ":name"', 'edit_currency' => 'Editar moneda ":name"',
'delete_currency' => 'Eliminar moneda ":name"', 'delete_currency' => 'Eliminar moneda ":name"',
'newPiggyBank' => 'Crear nueva hucha', 'newPiggyBank' => 'Crear nueva hucha',
@ -61,9 +70,9 @@ return [
'edit_object_group' => 'Editar grupo ":title"', 'edit_object_group' => 'Editar grupo ":title"',
'delete_object_group' => 'Eliminar grupo ":title"', 'delete_object_group' => 'Eliminar grupo ":title"',
'logout_others' => 'Desconectar otras sesiones', 'logout_others' => 'Desconectar otras sesiones',
'asset_accounts' => 'Asset accounts', 'asset_accounts' => 'Cuentas de activos',
'expense_accounts' => 'Expense accounts', 'expense_accounts' => 'Cuentas de gastos',
'revenue_accounts' => 'Revenue accounts', 'revenue_accounts' => 'Cuentas de ingresos',
'liabilities_accounts' => 'Liabilities', 'liabilities_accounts' => 'Pasivos',
'placeholder' => '[Placeholder]', 'placeholder' => '[Placeholder]',
]; ];

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'Si prefiere, también puede abrir un nuevo issue en <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'Si prefiere, también puede abrir un nuevo issue en <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'Si prefiere, también puedes abrir un nuevo problema en https://github.com/firefly-iiii/firefly-iiii/issues.', 'error_github_text' => 'Si prefiere, también puedes abrir un nuevo problema en https://github.com/firefly-iiii/firefly-iiii/issues.',
'error_stacktrace_below' => 'El stacktrace completo está a continuación:', 'error_stacktrace_below' => 'El stacktrace completo está a continuación:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III ha creado una nueva transacción|Firefly III ha creado :count nuevas transacciones', 'new_journals_subject' => 'Firefly III ha creado una nueva transacción|Firefly III ha creado :count nuevas transacciones',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'La cuenta de activos "@source_name" solo acepta transacciones en "@source_currency". cuenta de activos de destino "@dest_name" solo acepta transacciones en @dest_currency. Debes indicar la cantidad correcta transferida en ambas monedas.', 'transfer_exchange_rate_instructions' => 'La cuenta de activos "@source_name" solo acepta transacciones en "@source_currency". cuenta de activos de destino "@dest_name" solo acepta transacciones en @dest_currency. Debes indicar la cantidad correcta transferida en ambas monedas.',
'transaction_data' => 'Datos de transacción', 'transaction_data' => 'Datos de transacción',
'invalid_server_configuration' => 'Configuración de servidor no válida', 'invalid_server_configuration' => 'Configuración de servidor no válida',
'invalid_locale_settings' => 'FireFly III no puede formatear cantidades monetarias porque a su servidor le faltan los paquetes requeridos. Hay <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">instrucciones de cómo hacer esto</a>.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Cambio rápido', 'quickswitch' => 'Cambio rápido',
'sign_in_to_start' => 'Iniciar sesión para comenzar', 'sign_in_to_start' => 'Iniciar sesión para comenzar',
'sign_in' => 'Iniciar sesión', 'sign_in' => 'Iniciar sesión',
@ -566,10 +566,10 @@ return [
'rule_trigger_journal_id' => 'El ID del diario de transacciones es ":trigger_value"', 'rule_trigger_journal_id' => 'El ID del diario de transacciones es ":trigger_value"',
'rule_trigger_no_external_url' => 'La transacción no tiene URL externa', 'rule_trigger_no_external_url' => 'La transacción no tiene URL externa',
'rule_trigger_any_external_url' => 'La transacción tiene una URL externa', 'rule_trigger_any_external_url' => 'La transacción tiene una URL externa',
'rule_trigger_any_external_url_choice' => 'Transaction has an external URL', 'rule_trigger_any_external_url_choice' => 'La transacción tiene una URL externa',
'rule_trigger_no_external_url_choice' => 'Transaction has no external URL', 'rule_trigger_no_external_url_choice' => 'La transacción no tiene URL externa',
'rule_trigger_id_choice' => 'Transaction ID is..', 'rule_trigger_id_choice' => 'La ID de la transacción es..',
'rule_trigger_id' => 'Transaction ID is ":trigger_value"', 'rule_trigger_id' => 'La ID de la transacción es ":trigger_value"',
// actions // actions
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Crear nueva cuenta de ingresos', 'make_new_revenue_account' => 'Crear nueva cuenta de ingresos',
'make_new_liabilities_account' => 'Crear un nuevo pasivo', 'make_new_liabilities_account' => 'Crear un nuevo pasivo',
'asset_accounts' => 'Cuenta de activos', 'asset_accounts' => 'Cuenta de activos',
'undefined_accounts' => 'Cuentas',
'asset_accounts_inactive' => 'Cuentas de activos (inactivas)', 'asset_accounts_inactive' => 'Cuentas de activos (inactivas)',
'expense_accounts' => 'Cuentas de gastos', 'expense_accounts' => 'Cuentas de gastos',
'expense_accounts_inactive' => 'Cuentas de gastos (inactivas)', 'expense_accounts_inactive' => 'Cuentas de gastos (inactivas)',

View File

@ -61,9 +61,9 @@ return [
'accepted' => 'El :attribute debe ser aceptado.', 'accepted' => 'El :attribute debe ser aceptado.',
'bic' => 'Esto no es un BIC válido.', 'bic' => 'Esto no es un BIC válido.',
'at_least_one_trigger' => 'La regla debe tener al menos un desencadenante.', 'at_least_one_trigger' => 'La regla debe tener al menos un desencadenante.',
'at_least_one_active_trigger' => 'Rule must have at least one active trigger.', 'at_least_one_active_trigger' => 'La regla debe tener al menos un desencadenante activo.',
'at_least_one_action' => 'La regla debe tener al menos una acción.', 'at_least_one_action' => 'La regla debe tener al menos una acción.',
'at_least_one_active_action' => 'Rule must have at least one active action.', 'at_least_one_active_action' => 'La regla debe tener al menos una acción activa.',
'base64' => 'Esto no es un dato codificado en base64 válido.', 'base64' => 'Esto no es un dato codificado en base64 válido.',
'model_id_invalid' => 'El ID dado no parece válido para este modelo.', 'model_id_invalid' => 'El ID dado no parece válido para este modelo.',
'less' => ':attribute debe ser menor que 10.000.000', 'less' => ':attribute debe ser menor que 10.000.000',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Etusivu', 'home' => 'Etusivu',
'budgets' => 'Budjetit',
'subscriptions' => 'Tilaukset',
'transactions' => 'Tapahtumat',
'title_expenses' => 'Kustannukset',
'title_withdrawal' => 'Kustannukset',
'title_revenue' => 'Tuotto / ansio',
'title_deposit' => 'Tuotto / ansio',
'title_transfer' => 'Tilisiirrot',
'title_transfers' => 'Tilisiirrot',
'edit_currency' => 'Muokkaa valuuttaa ":name"', 'edit_currency' => 'Muokkaa valuuttaa ":name"',
'delete_currency' => 'Poista valuutta ":name"', 'delete_currency' => 'Poista valuutta ":name"',
'newPiggyBank' => 'Luo uusi säästöpossu', 'newPiggyBank' => 'Luo uusi säästöpossu',
@ -61,9 +70,9 @@ return [
'edit_object_group' => 'Muokkaa ryhmää ":title"', 'edit_object_group' => 'Muokkaa ryhmää ":title"',
'delete_object_group' => 'Poista ryhmä ":title"', 'delete_object_group' => 'Poista ryhmä ":title"',
'logout_others' => 'Kirjaudu ulos muista istunnoista', 'logout_others' => 'Kirjaudu ulos muista istunnoista',
'asset_accounts' => 'Asset accounts', 'asset_accounts' => 'Käyttötilit',
'expense_accounts' => 'Expense accounts', 'expense_accounts' => 'Kulutustilit',
'revenue_accounts' => 'Revenue accounts', 'revenue_accounts' => 'Tuottotilit',
'liabilities_accounts' => 'Liabilities', 'liabilities_accounts' => 'Lainat',
'placeholder' => '[Placeholder]', 'placeholder' => '[Placeholder]',
]; ];

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'Jos haluat, voit myös avata uuden tiketin <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHubissa</a>.', 'error_github_html' => 'Jos haluat, voit myös avata uuden tiketin <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHubissa</a>.',
'error_github_text' => 'Jos haluat, voit myös avata uuden tiketin osoitteessa https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'Jos haluat, voit myös avata uuden tiketin osoitteessa https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'Täydellinen stack trace:', 'error_stacktrace_below' => 'Täydellinen stack trace:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III on luonut uuden tapahtuman|Firefly III on luonut :count uutta tapahtumaa', 'new_journals_subject' => 'Firefly III on luonut uuden tapahtuman|Firefly III on luonut :count uutta tapahtumaa',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Lähdetili "@source_name" hyväksyy tapahtumia ainoastaan valuutassa @source_currency. Kohdetili "@dest_name" hyväksyy tapahtumia ainoastaan valuutassa @dest_currency. Siirretty summa täytyy syöttää oikein - molemmilla valuutoilla.', 'transfer_exchange_rate_instructions' => 'Lähdetili "@source_name" hyväksyy tapahtumia ainoastaan valuutassa @source_currency. Kohdetili "@dest_name" hyväksyy tapahtumia ainoastaan valuutassa @dest_currency. Siirretty summa täytyy syöttää oikein - molemmilla valuutoilla.',
'transaction_data' => 'Tapahtuman tiedot', 'transaction_data' => 'Tapahtuman tiedot',
'invalid_server_configuration' => 'Serverin asetukset eivät ole kunnossa', 'invalid_server_configuration' => 'Serverin asetukset eivät ole kunnossa',
'invalid_locale_settings' => 'Firefly III ei pysty näyttämään rahasummia oikein koska tarvittavat tiedostot puuttuvat serveriltä. <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">Täältä</a> löydät ohjeet asian korjaamiseksi.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Pikakytkin', 'quickswitch' => 'Pikakytkin',
'sign_in_to_start' => 'Aloita istunto kirjautumalla sisään', 'sign_in_to_start' => 'Aloita istunto kirjautumalla sisään',
'sign_in' => 'Kirjaudu sisään', 'sign_in' => 'Kirjaudu sisään',
@ -566,10 +566,10 @@ return [
'rule_trigger_journal_id' => 'Tapahtumatietueen tunnus on ":trigger_value"', 'rule_trigger_journal_id' => 'Tapahtumatietueen tunnus on ":trigger_value"',
'rule_trigger_no_external_url' => 'Tapahtumalla ei ole ulkoista URL-osoitetta', 'rule_trigger_no_external_url' => 'Tapahtumalla ei ole ulkoista URL-osoitetta',
'rule_trigger_any_external_url' => 'Tapahtumalla on ulkoinen URL-osoite', 'rule_trigger_any_external_url' => 'Tapahtumalla on ulkoinen URL-osoite',
'rule_trigger_any_external_url_choice' => 'Transaction has an external URL', 'rule_trigger_any_external_url_choice' => 'Tapahtumalla on ulkoinen URL-osoite',
'rule_trigger_no_external_url_choice' => 'Transaction has no external URL', 'rule_trigger_no_external_url_choice' => 'Tapahtumalla ei ole ulkoista URL-osoitetta',
'rule_trigger_id_choice' => 'Transaction ID is..', 'rule_trigger_id_choice' => 'Tapahtuman tunnus on..',
'rule_trigger_id' => 'Transaction ID is ":trigger_value"', 'rule_trigger_id' => 'Tapahtumatunnus on ":trigger_value"',
// actions // actions
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Luo uusi tuottotili', 'make_new_revenue_account' => 'Luo uusi tuottotili',
'make_new_liabilities_account' => 'Luo uusi laina', 'make_new_liabilities_account' => 'Luo uusi laina',
'asset_accounts' => 'Käyttötilit', 'asset_accounts' => 'Käyttötilit',
'undefined_accounts' => 'Tilit',
'asset_accounts_inactive' => 'Käyttötilit (ei käytössä)', 'asset_accounts_inactive' => 'Käyttötilit (ei käytössä)',
'expense_accounts' => 'Kulutustilit', 'expense_accounts' => 'Kulutustilit',
'expense_accounts_inactive' => 'Kulutustilit (ei käytössä)', 'expense_accounts_inactive' => 'Kulutustilit (ei käytössä)',

View File

@ -180,7 +180,7 @@ return [
'blocked_code' => 'Eston syy', 'blocked_code' => 'Eston syy',
'login_name' => 'Käyttäjätunnus', 'login_name' => 'Käyttäjätunnus',
'is_owner' => 'On ylläpitäjä?', 'is_owner' => 'On ylläpitäjä?',
'url' => 'URL', 'url' => 'URL-osoite',
// import // import
'apply_rules' => 'Aja säännöt', 'apply_rules' => 'Aja säännöt',

View File

@ -61,9 +61,9 @@ return [
'accepted' => 'Määritteen :attribute täytyy olla hyväksytty.', 'accepted' => 'Määritteen :attribute täytyy olla hyväksytty.',
'bic' => 'Tämä ei ole kelvollinen BIC.', 'bic' => 'Tämä ei ole kelvollinen BIC.',
'at_least_one_trigger' => 'Säännöllä täytyy olla ainakin yksi ehto.', 'at_least_one_trigger' => 'Säännöllä täytyy olla ainakin yksi ehto.',
'at_least_one_active_trigger' => 'Rule must have at least one active trigger.', 'at_least_one_active_trigger' => 'Säännöllä on oltava vähintään yksi aktiivinen ehto.',
'at_least_one_action' => 'Säännöllä täytyy olla vähintään yksi tapahtuma.', 'at_least_one_action' => 'Säännöllä täytyy olla vähintään yksi tapahtuma.',
'at_least_one_active_action' => 'Rule must have at least one active action.', 'at_least_one_active_action' => 'Säännöllä on oltava vähintään yksi aktiivinen toimenpide.',
'base64' => 'Tämä ei ole kelvollinen base64-koodattu data.', 'base64' => 'Tämä ei ole kelvollinen base64-koodattu data.',
'model_id_invalid' => 'Annettu tunniste ei kelpaa tämän mallin kanssa.', 'model_id_invalid' => 'Annettu tunniste ei kelpaa tämän mallin kanssa.',
'less' => 'Määritteen :attribute täytyy olla pienempi kuin 10,000,000', 'less' => 'Määritteen :attribute täytyy olla pienempi kuin 10,000,000',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Accueil', 'home' => 'Accueil',
'budgets' => 'Budgets',
'subscriptions' => 'Abonnements',
'transactions' => 'Opérations',
'title_expenses' => 'Dépenses',
'title_withdrawal' => 'Dépenses',
'title_revenue' => 'Recette / revenu',
'title_deposit' => 'Recette / revenu',
'title_transfer' => 'Transferts',
'title_transfers' => 'Transferts',
'edit_currency' => 'Modifier la devise ":name"', 'edit_currency' => 'Modifier la devise ":name"',
'delete_currency' => 'Supprimer la devise ":name"', 'delete_currency' => 'Supprimer la devise ":name"',
'newPiggyBank' => 'Créer une nouvelle tirelire', 'newPiggyBank' => 'Créer une nouvelle tirelire',
@ -61,9 +70,9 @@ return [
'edit_object_group' => 'Modifier le groupe ":title"', 'edit_object_group' => 'Modifier le groupe ":title"',
'delete_object_group' => 'Supprimer le groupe ":title"', 'delete_object_group' => 'Supprimer le groupe ":title"',
'logout_others' => 'Déconnecter d\'autres sessions', 'logout_others' => 'Déconnecter d\'autres sessions',
'asset_accounts' => 'Asset accounts', 'asset_accounts' => 'Comptes dactif',
'expense_accounts' => 'Expense accounts', 'expense_accounts' => 'Comptes de dépenses',
'revenue_accounts' => 'Revenue accounts', 'revenue_accounts' => 'Comptes de recettes',
'liabilities_accounts' => 'Liabilities', 'liabilities_accounts' => 'Passifs',
'placeholder' => '[Placeholder]', 'placeholder' => '[Placeholder]',
]; ];

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'Si vous le préférez, vous pouvez également ouvrir un nouveau ticket sur <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a> (en anglais).', 'error_github_html' => 'Si vous le préférez, vous pouvez également ouvrir un nouveau ticket sur <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a> (en anglais).',
'error_github_text' => 'Si vous le préférez, vous pouvez également ouvrir un nouveau ticket sur https://github.com/firefly-ii/firefly-iii/issues (en anglais).', 'error_github_text' => 'Si vous le préférez, vous pouvez également ouvrir un nouveau ticket sur https://github.com/firefly-ii/firefly-iii/issues (en anglais).',
'error_stacktrace_below' => 'La stacktrace complète se trouve ci-dessous :', 'error_stacktrace_below' => 'La stacktrace complète se trouve ci-dessous :',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III a créé une nouvelle opération|Firefly III a créé :count nouvelles opérations', 'new_journals_subject' => 'Firefly III a créé une nouvelle opération|Firefly III a créé :count nouvelles opérations',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Compte dactif source "@source_name" naccepte que les opérations en @source_currency. Compte dactif "@dest_name" de destination naccepte que les opérations en @dest_currency. Vous devez fournir le montant transféré correctement dans les deux devises.', 'transfer_exchange_rate_instructions' => 'Compte dactif source "@source_name" naccepte que les opérations en @source_currency. Compte dactif "@dest_name" de destination naccepte que les opérations en @dest_currency. Vous devez fournir le montant transféré correctement dans les deux devises.',
'transaction_data' => 'Données d\'opération', 'transaction_data' => 'Données d\'opération',
'invalid_server_configuration' => 'Configuration de serveur invalide', 'invalid_server_configuration' => 'Configuration de serveur invalide',
'invalid_locale_settings' => 'Firefly III ne parvient pas à formater les montants monétaires car il manque des paquets logiciels sur votre serveur. Voici <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">des instructions sur comment procéder</a>.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Changement rapide', 'quickswitch' => 'Changement rapide',
'sign_in_to_start' => 'Identifiez-vous pour commencer votre session', 'sign_in_to_start' => 'Identifiez-vous pour commencer votre session',
'sign_in' => 'S\'identifier', 'sign_in' => 'S\'identifier',
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Créer un nouveau compte de recettes', 'make_new_revenue_account' => 'Créer un nouveau compte de recettes',
'make_new_liabilities_account' => 'Créer un nouveau passif', 'make_new_liabilities_account' => 'Créer un nouveau passif',
'asset_accounts' => 'Comptes dactif', 'asset_accounts' => 'Comptes dactif',
'undefined_accounts' => 'Comptes',
'asset_accounts_inactive' => 'Comptes d\'actifs (inactif)', 'asset_accounts_inactive' => 'Comptes d\'actifs (inactif)',
'expense_accounts' => 'Comptes de dépenses', 'expense_accounts' => 'Comptes de dépenses',
'expense_accounts_inactive' => 'Comptes de dépenses (inactif)', 'expense_accounts_inactive' => 'Comptes de dépenses (inactif)',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Főoldal', 'home' => 'Főoldal',
'budgets' => 'Budgets',
'subscriptions' => 'Subscriptions',
'transactions' => 'Transactions',
'title_expenses' => 'Expenses',
'title_withdrawal' => 'Expenses',
'title_revenue' => 'Revenue / income',
'title_deposit' => 'Revenue / income',
'title_transfer' => 'Transfers',
'title_transfers' => 'Transfers',
'edit_currency' => '":name" pénznem szerkesztése', 'edit_currency' => '":name" pénznem szerkesztése',
'delete_currency' => '":name" pénznem törlése', 'delete_currency' => '":name" pénznem törlése',
'newPiggyBank' => 'Új malacpersely létrehozása', 'newPiggyBank' => 'Új malacpersely létrehozása',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'If you prefer, you can also open a new issue on <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'If you prefer, you can also open a new issue on <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'The full stacktrace is below:', 'error_stacktrace_below' => 'The full stacktrace is below:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions', 'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'A "@source_name" forrás vagyonszámla csak a @source_currency tranzakciókat fogadja el. A "@dest_name" cél vagyonszámla csak a @dest_currency tranzakciókat fogadja el. Mindkét pénznemben helyesen kell megadnia az átutalt összeget.', 'transfer_exchange_rate_instructions' => 'A "@source_name" forrás vagyonszámla csak a @source_currency tranzakciókat fogadja el. A "@dest_name" cél vagyonszámla csak a @dest_currency tranzakciókat fogadja el. Mindkét pénznemben helyesen kell megadnia az átutalt összeget.',
'transaction_data' => 'Tranzakciós adatok', 'transaction_data' => 'Tranzakciós adatok',
'invalid_server_configuration' => 'Érvénytelen kiszolgálóbeállítás', 'invalid_server_configuration' => 'Érvénytelen kiszolgálóbeállítás',
'invalid_locale_settings' => 'A Firefly III nem tudja megfelelően formázva megjeleníteni a pénzösszegeket, mert a kiszolgálóról hiányoznak az ehhez szükséges csomagok. A következő linket követve találhatók <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">instrukciók a megoldáshoz</a>.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Gyorsváltó', 'quickswitch' => 'Gyorsváltó',
'sign_in_to_start' => 'A munkamenet megkezdéséhez be kell jelentkezni', 'sign_in_to_start' => 'A munkamenet megkezdéséhez be kell jelentkezni',
'sign_in' => 'Bejelentkezés', 'sign_in' => 'Bejelentkezés',
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Új jövedelemszámla létrehozása', 'make_new_revenue_account' => 'Új jövedelemszámla létrehozása',
'make_new_liabilities_account' => 'Új kötelezettség létrehozása', 'make_new_liabilities_account' => 'Új kötelezettség létrehozása',
'asset_accounts' => 'Eszközszámlák', 'asset_accounts' => 'Eszközszámlák',
'undefined_accounts' => 'Accounts',
'asset_accounts_inactive' => 'Eszközszámlák (inaktív)', 'asset_accounts_inactive' => 'Eszközszámlák (inaktív)',
'expense_accounts' => 'Költségszámlák', 'expense_accounts' => 'Költségszámlák',
'expense_accounts_inactive' => 'Költségszámlák (inaktív)', 'expense_accounts_inactive' => 'Költségszámlák (inaktív)',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Beranda', 'home' => 'Beranda',
'budgets' => 'Budgets',
'subscriptions' => 'Langganan',
'transactions' => 'Transaksi',
'title_expenses' => 'Pengeluaran',
'title_withdrawal' => 'Expenses',
'title_revenue' => 'Revenue / income',
'title_deposit' => 'Revenue / income',
'title_transfer' => 'Transfers',
'title_transfers' => 'Transfers',
'edit_currency' => 'Edit mata uang ":name"', 'edit_currency' => 'Edit mata uang ":name"',
'delete_currency' => 'Hapus mata uang ":name"', 'delete_currency' => 'Hapus mata uang ":name"',
'newPiggyBank' => 'Buat celengan baru', 'newPiggyBank' => 'Buat celengan baru',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'Jika Anda mau, Anda juga dapat membuka isu baru di <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'Jika Anda mau, Anda juga dapat membuka isu baru di <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'Jika Anda mau, Anda juga dapat membuka isu baru di https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'Jika Anda mau, Anda juga dapat membuka isu baru di https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'Jejak tumpukan lengkap ada di bawah:', 'error_stacktrace_below' => 'Jejak tumpukan lengkap ada di bawah:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III telah membuat transaksi baru|Firefly III telah membuat :count transaksi baru', 'new_journals_subject' => 'Firefly III telah membuat transaksi baru|Firefly III telah membuat :count transaksi baru',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Akun aset sumber "@source_name" hanya menerima transaksi di @source_currency. Akun aset tujuan "@dest_name" hanya menerima transaksi di @dest_currency. Anda harus memberikan jumlah yang ditransfer dengan benar pada kedua mata uang tersebut.', 'transfer_exchange_rate_instructions' => 'Akun aset sumber "@source_name" hanya menerima transaksi di @source_currency. Akun aset tujuan "@dest_name" hanya menerima transaksi di @dest_currency. Anda harus memberikan jumlah yang ditransfer dengan benar pada kedua mata uang tersebut.',
'transaction_data' => 'Data transaksi', 'transaction_data' => 'Data transaksi',
'invalid_server_configuration' => 'Konfigurasi server tidak valid', 'invalid_server_configuration' => 'Konfigurasi server tidak valid',
'invalid_locale_settings' => 'Firefly III tidak dapat memformat jumlah uang karena server Anda kehilangan paket yang dibutuhkan. Ada <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">instructions bagaimana melakukan ini</a>.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Quickswitch', 'quickswitch' => 'Quickswitch',
'sign_in_to_start' => 'Masuk untuk memulai sesi', 'sign_in_to_start' => 'Masuk untuk memulai sesi',
'sign_in' => 'Masuk', 'sign_in' => 'Masuk',
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Buat akun pendapatan baru', 'make_new_revenue_account' => 'Buat akun pendapatan baru',
'make_new_liabilities_account' => 'Create a new liability', 'make_new_liabilities_account' => 'Create a new liability',
'asset_accounts' => 'Akun aset', 'asset_accounts' => 'Akun aset',
'undefined_accounts' => 'Accounts',
'asset_accounts_inactive' => 'Asset accounts (inactive)', 'asset_accounts_inactive' => 'Asset accounts (inactive)',
'expense_accounts' => 'Rekening pengeluaran', 'expense_accounts' => 'Rekening pengeluaran',
'expense_accounts_inactive' => 'Expense accounts (inactive)', 'expense_accounts_inactive' => 'Expense accounts (inactive)',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Pagina principale', 'home' => 'Pagina principale',
'budgets' => 'Budget',
'subscriptions' => 'Abbonamenti',
'transactions' => 'Transazioni',
'title_expenses' => 'Uscite',
'title_withdrawal' => 'Prelievi',
'title_revenue' => 'Redditi / entrate',
'title_deposit' => 'Versamenti',
'title_transfer' => 'Trasferimenti',
'title_transfers' => 'Trasferimenti',
'edit_currency' => 'Modifica valuta ":name"', 'edit_currency' => 'Modifica valuta ":name"',
'delete_currency' => 'Elimina valuta ":name"', 'delete_currency' => 'Elimina valuta ":name"',
'newPiggyBank' => 'Crea un nuovo salvadanaio', 'newPiggyBank' => 'Crea un nuovo salvadanaio',
@ -61,9 +70,9 @@ return [
'edit_object_group' => 'Modifica gruppo ":title"', 'edit_object_group' => 'Modifica gruppo ":title"',
'delete_object_group' => 'Elimina gruppo ":title"', 'delete_object_group' => 'Elimina gruppo ":title"',
'logout_others' => 'Esci dalle altre sessioni', 'logout_others' => 'Esci dalle altre sessioni',
'asset_accounts' => 'Asset accounts', 'asset_accounts' => 'Conti attività',
'expense_accounts' => 'Expense accounts', 'expense_accounts' => 'Conti uscite',
'revenue_accounts' => 'Revenue accounts', 'revenue_accounts' => 'Conti entrate',
'liabilities_accounts' => 'Liabilities', 'liabilities_accounts' => 'Passività',
'placeholder' => '[Placeholder]', 'placeholder' => '[Placeholder]',
]; ];

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'Se preferisci puoi anche aprire una nuova issue su <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'Se preferisci puoi anche aprire una nuova issue su <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'Se preferisci puoi anche aprire una nuova issue su https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'Se preferisci puoi anche aprire una nuova issue su https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'Lo stacktrace completo è qui sotto:', 'error_stacktrace_below' => 'Lo stacktrace completo è qui sotto:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III ha creato una nuova transazione|Firefly III ha creato :count nuove transazioni', 'new_journals_subject' => 'Firefly III ha creato una nuova transazione|Firefly III ha creato :count nuove transazioni',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Il conto attività di origine "@source_name" accetta solo transazioni in @source_currency. Il conto attività di destinazione "@dest_name" accetta solo transazioni in @dest_currency. È necessario fornire l\'importo trasferito correttamente in entrambe le valute.', 'transfer_exchange_rate_instructions' => 'Il conto attività di origine "@source_name" accetta solo transazioni in @source_currency. Il conto attività di destinazione "@dest_name" accetta solo transazioni in @dest_currency. È necessario fornire l\'importo trasferito correttamente in entrambe le valute.',
'transaction_data' => 'Informazioni transazione', 'transaction_data' => 'Informazioni transazione',
'invalid_server_configuration' => 'Configurazione del server non corretta', 'invalid_server_configuration' => 'Configurazione del server non corretta',
'invalid_locale_settings' => 'Firefly III non è in grado di formattare gli importi monetari perché al server mancano i pacchetti richiesti. Ci sono <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">istruzioni su come eseguire questa operazione</a>.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Interruttore veloce', 'quickswitch' => 'Interruttore veloce',
'sign_in_to_start' => 'Accedi per iniziare la sessione', 'sign_in_to_start' => 'Accedi per iniziare la sessione',
'sign_in' => 'Accedi', 'sign_in' => 'Accedi',
@ -566,10 +566,10 @@ return [
'rule_trigger_journal_id' => 'L\'ID journal della transazione è ":trigger_value"', 'rule_trigger_journal_id' => 'L\'ID journal della transazione è ":trigger_value"',
'rule_trigger_no_external_url' => 'La transazione non ha URL esterno', 'rule_trigger_no_external_url' => 'La transazione non ha URL esterno',
'rule_trigger_any_external_url' => 'La transazione ha un URL esterno', 'rule_trigger_any_external_url' => 'La transazione ha un URL esterno',
'rule_trigger_any_external_url_choice' => 'Transaction has an external URL', 'rule_trigger_any_external_url_choice' => 'La transazione ha un URL esterno',
'rule_trigger_no_external_url_choice' => 'Transaction has no external URL', 'rule_trigger_no_external_url_choice' => 'La transazione non ha URL esterno',
'rule_trigger_id_choice' => 'Transaction ID is..', 'rule_trigger_id_choice' => 'L\'ID della transazione è...',
'rule_trigger_id' => 'Transaction ID is ":trigger_value"', 'rule_trigger_id' => 'L\'ID della transazione è ":trigger_value"',
// actions // actions
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Crea nuovo conto entrate', 'make_new_revenue_account' => 'Crea nuovo conto entrate',
'make_new_liabilities_account' => 'Crea una nuova passività', 'make_new_liabilities_account' => 'Crea una nuova passività',
'asset_accounts' => 'Conti attività', 'asset_accounts' => 'Conti attività',
'undefined_accounts' => 'Conti',
'asset_accounts_inactive' => 'Conti attività (inattivi)', 'asset_accounts_inactive' => 'Conti attività (inattivi)',
'expense_accounts' => 'Conti uscite', 'expense_accounts' => 'Conti uscite',
'expense_accounts_inactive' => 'Conti spese (inattivi)', 'expense_accounts_inactive' => 'Conti spese (inattivi)',

View File

@ -61,9 +61,9 @@ return [
'accepted' => 'L\' :attribute deve essere accettato.', 'accepted' => 'L\' :attribute deve essere accettato.',
'bic' => 'Questo non è un BIC valido.', 'bic' => 'Questo non è un BIC valido.',
'at_least_one_trigger' => 'Una regola deve avere almeno un trigger.', 'at_least_one_trigger' => 'Una regola deve avere almeno un trigger.',
'at_least_one_active_trigger' => 'Rule must have at least one active trigger.', 'at_least_one_active_trigger' => 'La regola deve avere almeno un trigger attivo.',
'at_least_one_action' => 'Una regola deve avere almeno una azione.', 'at_least_one_action' => 'Una regola deve avere almeno una azione.',
'at_least_one_active_action' => 'Rule must have at least one active action.', 'at_least_one_active_action' => 'La regola deve avere almeno un\'azione attiva.',
'base64' => 'Questi non sono dati codificati in base64 validi.', 'base64' => 'Questi non sono dati codificati in base64 validi.',
'model_id_invalid' => 'L\'ID fornito sembra non essere valido per questo modello.', 'model_id_invalid' => 'L\'ID fornito sembra non essere valido per questo modello.',
'less' => ':attribute deve essere minore di 10.000.000', 'less' => ':attribute deve essere minore di 10.000.000',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'ホーム', 'home' => 'ホーム',
'budgets' => 'Budgets',
'subscriptions' => 'Subscriptions',
'transactions' => 'Transactions',
'title_expenses' => 'Expenses',
'title_withdrawal' => 'Expenses',
'title_revenue' => 'Revenue / income',
'title_deposit' => 'Revenue / income',
'title_transfer' => 'Transfers',
'title_transfers' => 'Transfers',
'edit_currency' => '通貨 ":name" を編集する', 'edit_currency' => '通貨 ":name" を編集する',
'delete_currency' => '通貨 ":name" を削除する', 'delete_currency' => '通貨 ":name" を削除する',
'newPiggyBank' => '新規貯金箱の作成', 'newPiggyBank' => '新規貯金箱の作成',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'ご希望の場合は、<a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>で新しいissueを作ることもできます。', 'error_github_html' => 'ご希望の場合は、<a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>で新しいissueを作ることもできます。',
'error_github_text' => 'ご希望の場合は、https://github.com/fofoflifly-iii/firelify-ii/issuesで新しいissueを作ることもできます。', 'error_github_text' => 'ご希望の場合は、https://github.com/fofoflifly-iii/firelify-ii/issuesで新しいissueを作ることもできます。',
'error_stacktrace_below' => '完全なスタックトレースは以下の通りです:', 'error_stacktrace_below' => '完全なスタックトレースは以下の通りです:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III が取引を作成しました|Firefly III が:count件の取引を作成しました', 'new_journals_subject' => 'Firefly III が取引を作成しました|Firefly III が:count件の取引を作成しました',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => '出金元資産口座「@source_name」は @source_currency の取引のみ受け付けます。 送金先資産口座「@dest_name」は @dest_currency でのみ取引を受け付けます。両方の通貨で正しく送金額を入力する必要があります。', 'transfer_exchange_rate_instructions' => '出金元資産口座「@source_name」は @source_currency の取引のみ受け付けます。 送金先資産口座「@dest_name」は @dest_currency でのみ取引を受け付けます。両方の通貨で正しく送金額を入力する必要があります。',
'transaction_data' => '取引データ', 'transaction_data' => '取引データ',
'invalid_server_configuration' => '無効なサーバー構成', '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 is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'クイックスイッチ', 'quickswitch' => 'クイックスイッチ',
'sign_in_to_start' => 'サインインしてセッションを開始', 'sign_in_to_start' => 'サインインしてセッションを開始',
'sign_in' => 'サインイン', 'sign_in' => 'サインイン',
@ -1114,6 +1114,7 @@ return [
'make_new_revenue_account' => '新しい収入源', 'make_new_revenue_account' => '新しい収入源',
'make_new_liabilities_account' => '新しい借金', 'make_new_liabilities_account' => '新しい借金',
'asset_accounts' => '資産勘定', 'asset_accounts' => '資産勘定',
'undefined_accounts' => 'Accounts',
'asset_accounts_inactive' => '支出元', 'asset_accounts_inactive' => '支出元',
'expense_accounts' => '支出先を見る', 'expense_accounts' => '支出先を見る',
'expense_accounts_inactive' => '支出先を見る', 'expense_accounts_inactive' => '支出先を見る',

View File

@ -24,6 +24,15 @@ declare(strict_types=1);
return [ return [
'home' => 'Hjem', 'home' => 'Hjem',
'budgets' => 'Budgets',
'subscriptions' => 'Subscriptions',
'transactions' => 'Transactions',
'title_expenses' => 'Expenses',
'title_withdrawal' => 'Expenses',
'title_revenue' => 'Revenue / income',
'title_deposit' => 'Revenue / income',
'title_transfer' => 'Transfers',
'title_transfers' => 'Transfers',
'edit_currency' => 'Rediger valuta ":name"', 'edit_currency' => 'Rediger valuta ":name"',
'delete_currency' => 'Slett valuta ":name"', 'delete_currency' => 'Slett valuta ":name"',
'newPiggyBank' => 'Lag en ny sparegris', 'newPiggyBank' => 'Lag en ny sparegris',

View File

@ -97,6 +97,7 @@ return [
'error_github_html' => 'If you prefer, you can also open a new issue on <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.', 'error_github_html' => 'If you prefer, you can also open a new issue on <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.',
'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.', 'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.',
'error_stacktrace_below' => 'The full stacktrace is below:', 'error_stacktrace_below' => 'The full stacktrace is below:',
'error_headers' => 'The following headers may also be relevant:',
// report new journals // report new journals
'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions', 'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions',

View File

@ -188,7 +188,7 @@ return [
'transfer_exchange_rate_instructions' => 'Kildekonto "@source_name" godtar kun transaksjoner i @source_currency. Destinasjonskonto "@dest_name" aksepterer bare transaksjoner i @dest_currency. Du må angi overført beløp riktig i begge valutaene.', 'transfer_exchange_rate_instructions' => 'Kildekonto "@source_name" godtar kun transaksjoner i @source_currency. Destinasjonskonto "@dest_name" aksepterer bare transaksjoner i @dest_currency. Du må angi overført beløp riktig i begge valutaene.',
'transaction_data' => 'Transaksjonsdata', 'transaction_data' => 'Transaksjonsdata',
'invalid_server_configuration' => 'Ugyldig serverkonfigurasjon', 'invalid_server_configuration' => 'Ugyldig serverkonfigurasjon',
'invalid_locale_settings' => 'Firefly III kan ikke formatere pengebeløp fordi serveren din mangler de nødvendige pakkene. Se følgende <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">instruksjoner for hvordan du setter opp dette</a>.', 'invalid_locale_settings' => 'Firefly III is unable to format monetary amounts because your server is missing the required packages. There are <a href="">instructions how to do this</a>.',
'quickswitch' => 'Hurtigbryter', 'quickswitch' => 'Hurtigbryter',
'sign_in_to_start' => 'Logg inn for å starte økten', 'sign_in_to_start' => 'Logg inn for å starte økten',
'sign_in' => 'Logg inn', 'sign_in' => 'Logg inn',
@ -1111,6 +1111,7 @@ return [
'make_new_revenue_account' => 'Opprett en ny inntektskonto', 'make_new_revenue_account' => 'Opprett en ny inntektskonto',
'make_new_liabilities_account' => 'Opprett ny gjeld', 'make_new_liabilities_account' => 'Opprett ny gjeld',
'asset_accounts' => 'Aktivakontoer', 'asset_accounts' => 'Aktivakontoer',
'undefined_accounts' => 'Accounts',
'asset_accounts_inactive' => 'Asset accounts (inactive)', 'asset_accounts_inactive' => 'Asset accounts (inactive)',
'expense_accounts' => 'Utgiftskontoer', 'expense_accounts' => 'Utgiftskontoer',
'expense_accounts_inactive' => 'Expense accounts (inactive)', 'expense_accounts_inactive' => 'Expense accounts (inactive)',

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