diff --git a/app/Api/V2/Controllers/Autocomplete/AccountController.php b/app/Api/V2/Controllers/Autocomplete/AccountController.php index 3f583d3ca3..97d22e015a 100644 --- a/app/Api/V2/Controllers/Autocomplete/AccountController.php +++ b/app/Api/V2/Controllers/Autocomplete/AccountController.php @@ -55,8 +55,8 @@ class AccountController extends Controller $userGroup = $this->validateUserGroup($request); $this->repository = app(AccountRepositoryInterface::class); $this->repository->setUserGroup($userGroup); - $this->default = app('amount')->getDefaultCurrency(); - $this->converter = app(ExchangeRateConverter::class); + $this->default = app('amount')->getDefaultCurrency(); + $this->converter = app(ExchangeRateConverter::class); return $next($request); } @@ -65,9 +65,6 @@ class AccountController extends Controller /** * Documentation: https://api-docs.firefly-iii.org/?urls.primaryName=2.1.0%20(v2)#/autocomplete/getAccountsAC - * @param AutocompleteRequest $request - * - * @return JsonResponse */ public function accounts(AutocompleteRequest $request): JsonResponse { diff --git a/app/Api/V2/Controllers/Autocomplete/CategoryController.php b/app/Api/V2/Controllers/Autocomplete/CategoryController.php index cf0d761e07..b868395845 100644 --- a/app/Api/V2/Controllers/Autocomplete/CategoryController.php +++ b/app/Api/V2/Controllers/Autocomplete/CategoryController.php @@ -54,9 +54,6 @@ class CategoryController extends Controller /** * Documentation: https://api-docs.firefly-iii.org/?urls.primaryName=2.1.0%20(v2)#/autocomplete/getCategoriesAC - * @param AutocompleteRequest $request - * - * @return JsonResponse */ public function categories(AutocompleteRequest $request): JsonResponse { diff --git a/app/Api/V2/Controllers/Autocomplete/TagController.php b/app/Api/V2/Controllers/Autocomplete/TagController.php index 58a0864731..8867446a3e 100644 --- a/app/Api/V2/Controllers/Autocomplete/TagController.php +++ b/app/Api/V2/Controllers/Autocomplete/TagController.php @@ -54,9 +54,6 @@ class TagController extends Controller /** * Documentation: https://api-docs.firefly-iii.org/?urls.primaryName=2.1.0%20(v2)#/autocomplete/getTagsAC - * @param AutocompleteRequest $request - * - * @return JsonResponse */ public function tags(AutocompleteRequest $request): JsonResponse { diff --git a/app/Api/V2/Controllers/Autocomplete/TransactionController.php b/app/Api/V2/Controllers/Autocomplete/TransactionController.php index 2e5a488855..231e0d4c71 100644 --- a/app/Api/V2/Controllers/Autocomplete/TransactionController.php +++ b/app/Api/V2/Controllers/Autocomplete/TransactionController.php @@ -54,9 +54,6 @@ class TransactionController extends Controller /** * Documentation: https://api-docs.firefly-iii.org/?urls.primaryName=2.1.0%20(v2)#/autocomplete/getTransactionsAC - * @param AutocompleteRequest $request - * - * @return JsonResponse */ public function transactionDescriptions(AutocompleteRequest $request): JsonResponse { diff --git a/app/Api/V2/Controllers/Chart/AccountController.php b/app/Api/V2/Controllers/Chart/AccountController.php index ecbf54952c..df00351e91 100644 --- a/app/Api/V2/Controllers/Chart/AccountController.php +++ b/app/Api/V2/Controllers/Chart/AccountController.php @@ -72,7 +72,6 @@ class AccountController extends Controller * TODO validate and set user_group_id from request * * @throws FireflyException - * */ public function dashboard(DashboardChartRequest $request): JsonResponse { diff --git a/app/Api/V2/Request/Autocomplete/AutocompleteRequest.php b/app/Api/V2/Request/Autocomplete/AutocompleteRequest.php index 1cdf6e8bcd..227e9d11c6 100644 --- a/app/Api/V2/Request/Autocomplete/AutocompleteRequest.php +++ b/app/Api/V2/Request/Autocomplete/AutocompleteRequest.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V2\Request\Autocomplete; -use Carbon\Carbon; -use Carbon\Exceptions\InvalidFormatException; use FireflyIII\JsonApi\Rules\IsValidFilter; use FireflyIII\JsonApi\Rules\IsValidPage; use FireflyIII\Support\Http\Api\AccountFilter; @@ -32,7 +30,6 @@ use FireflyIII\Support\Http\Api\ParsesQueryFilters; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; -use Illuminate\Support\Facades\Log; use LaravelJsonApi\Core\Query\QueryParameters; use LaravelJsonApi\Validation\Rule as JsonApiRule; @@ -55,15 +52,15 @@ class AutocompleteRequest extends FormRequest public function getParameters(): array { $queryParameters = QueryParameters::cast($this->all()); + return [ 'date' => $this->dateOrToday($queryParameters, 'date'), 'query' => $this->arrayOfStrings($queryParameters, 'query'), - 'size' => $this->integerFromQueryParams($queryParameters,'size', 50), + 'size' => $this->integerFromQueryParams($queryParameters, 'size', 50), 'account_types' => $this->getAccountTypeParameter($this->arrayOfStrings($queryParameters, 'account_types')), ]; } - public function rules(): array { return [ diff --git a/app/Api/V2/Request/Chart/ChartRequest.php b/app/Api/V2/Request/Chart/ChartRequest.php index 78c923afd3..6bc67a7cba 100644 --- a/app/Api/V2/Request/Chart/ChartRequest.php +++ b/app/Api/V2/Request/Chart/ChartRequest.php @@ -25,7 +25,6 @@ namespace FireflyIII\Api\V2\Request\Chart; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\JsonApi\Rules\IsValidFilter; -use FireflyIII\JsonApi\Rules\IsValidPage; use FireflyIII\Support\Http\Api\ParsesQueryFilters; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Support\Request\ChecksLogin; @@ -43,31 +42,32 @@ class ChartRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; - use ValidatesUserGroupTrait; use ParsesQueryFilters; + use ValidatesUserGroupTrait; protected array $acceptedRoles = [UserRoleEnum::READ_ONLY]; public function getParameters(): array { $queryParameters = QueryParameters::cast($this->all()); + return [ 'start' => $this->dateOrToday($queryParameters, 'start'), - 'end' => $this->dateOrToday($queryParameters, 'end'), + 'end' => $this->dateOrToday($queryParameters, 'end'), // preselected heeft maar een paar toegestane waardes. -// 'query' => $this->arrayOfStrings($queryParameters, 'query'), -// 'size' => $this->integerFromQueryParams($queryParameters,'size', 50), -// 'account_types' => $this->getAccountTypeParameter($this->arrayOfStrings($queryParameters, 'account_types')), + // 'query' => $this->arrayOfStrings($queryParameters, 'query'), + // 'size' => $this->integerFromQueryParams($queryParameters,'size', 50), + // 'account_types' => $this->getAccountTypeParameter($this->arrayOfStrings($queryParameters, 'account_types')), ]; } -// return [ -// 'accounts' => $this->getAccountList(), -// 'preselected' => $this->convertString('preselected'), -// ]; -// } + // return [ + // 'accounts' => $this->getAccountList(), + // 'preselected' => $this->convertString('preselected'), + // ]; + // } /** * The rules that the incoming request must be matched against. @@ -76,18 +76,18 @@ class ChartRequest extends FormRequest { return [ 'fields' => JsonApiRule::notSupported(), - 'filter' => ['nullable', 'array', new IsValidFilter(['start', 'end', 'preselected','accounts'])], + 'filter' => ['nullable', 'array', new IsValidFilter(['start', 'end', 'preselected', 'accounts'])], 'include' => JsonApiRule::notSupported(), 'page' => JsonApiRule::notSupported(), 'sort' => JsonApiRule::notSupported(), ]; -// return [ -// 'start' => 'required|date|after:1900-01-01|before:2099-12-31', -// 'end' => 'required|date|after_or_equal:start|before:2099-12-31|after:1900-01-01', -// 'preselected' => sprintf('in:%s', implode(',', config('firefly.preselected_accounts'))), -// 'accounts.*' => 'exists:accounts,id', -// ]; + // return [ + // 'start' => 'required|date|after:1900-01-01|before:2099-12-31', + // 'end' => 'required|date|after_or_equal:start|before:2099-12-31|after:1900-01-01', + // 'preselected' => sprintf('in:%s', implode(',', config('firefly.preselected_accounts'))), + // 'accounts.*' => 'exists:accounts,id', + // ]; } public function withValidator(Validator $validator): void diff --git a/app/JsonApi/Rules/IsValidFilter.php b/app/JsonApi/Rules/IsValidFilter.php index e10e4b6061..9fb8140a18 100644 --- a/app/JsonApi/Rules/IsValidFilter.php +++ b/app/JsonApi/Rules/IsValidFilter.php @@ -31,7 +31,7 @@ class IsValidFilter implements ValidationRule public function __construct(array $keys) { - $this->allowed = $keys; + $this->allowed = $keys; $this->allowed[] = 'user_group_id'; } diff --git a/app/Repositories/UserGroups/Account/AccountRepository.php b/app/Repositories/UserGroups/Account/AccountRepository.php index 615df5fcde..f6790945dd 100644 --- a/app/Repositories/UserGroups/Account/AccountRepository.php +++ b/app/Repositories/UserGroups/Account/AccountRepository.php @@ -304,12 +304,12 @@ class AccountRepository implements AccountRepositoryInterface ; if (count($query) > 0) { // split query on spaces just in case: - $dbQuery->where(function (EloquentBuilder $q) use ($query) { - foreach($query as $line) { + $dbQuery->where(function (EloquentBuilder $q) use ($query): void { + foreach ($query as $line) { $parts = explode(' ', $line); - foreach($parts as $part) { + foreach ($parts as $part) { $search = sprintf('%%%s%%', $part); - $q->orWhere('name', 'LIKE',$search); + $q->orWhere('name', 'LIKE', $search); } } }); diff --git a/app/Repositories/UserGroups/Category/CategoryRepository.php b/app/Repositories/UserGroups/Category/CategoryRepository.php index 3223b70fed..a4096c2c51 100644 --- a/app/Repositories/UserGroups/Category/CategoryRepository.php +++ b/app/Repositories/UserGroups/Category/CategoryRepository.php @@ -36,12 +36,12 @@ class CategoryRepository implements CategoryRepositoryInterface $search = $this->userGroup->categories(); if (count($query) > 0) { // split query on spaces just in case: - $search->where(function (EloquentBuilder $q) use ($query) { - foreach($query as $line) { + $search->where(function (EloquentBuilder $q) use ($query): void { + foreach ($query as $line) { $parts = explode(' ', $line); - foreach($parts as $part) { + foreach ($parts as $part) { $search = sprintf('%%%s%%', $part); - $q->orWhere('name', 'LIKE',$search); + $q->orWhere('name', 'LIKE', $search); } } }); diff --git a/app/Repositories/UserGroups/Journal/JournalRepository.php b/app/Repositories/UserGroups/Journal/JournalRepository.php index 3b6a925730..7fdd9659bf 100644 --- a/app/Repositories/UserGroups/Journal/JournalRepository.php +++ b/app/Repositories/UserGroups/Journal/JournalRepository.php @@ -41,7 +41,7 @@ class JournalRepository implements JournalRepositoryInterface ; if (count($query) > 0) { // split query on spaces just in case: - $search->where(function (EloquentBuilder $q) use ($query) { + $search->where(function (EloquentBuilder $q) use ($query): void { foreach ($query as $line) { $parts = explode(' ', $line); foreach ($parts as $part) { diff --git a/app/Repositories/UserGroups/Tag/TagRepository.php b/app/Repositories/UserGroups/Tag/TagRepository.php index 487902bf32..ab54056800 100644 --- a/app/Repositories/UserGroups/Tag/TagRepository.php +++ b/app/Repositories/UserGroups/Tag/TagRepository.php @@ -39,7 +39,7 @@ class TagRepository implements TagRepositoryInterface $search = $this->userGroup->tags(); if (count($query) > 0) { // split query on spaces just in case: - $search->where(function (EloquentBuilder $q) use ($query) { + $search->where(function (EloquentBuilder $q) use ($query): void { foreach ($query as $line) { $parts = explode(' ', $line); foreach ($parts as $part) { diff --git a/app/Support/Http/Api/ParsesQueryFilters.php b/app/Support/Http/Api/ParsesQueryFilters.php index 4ba27c3d96..1136e3d934 100644 --- a/app/Support/Http/Api/ParsesQueryFilters.php +++ b/app/Support/Http/Api/ParsesQueryFilters.php @@ -30,22 +30,23 @@ use LaravelJsonApi\Core\Query\QueryParameters; trait ParsesQueryFilters { - private function dateOrToday(QueryParameters $parameters, string $field): Carbon { $date = today(); + try { $date = Carbon::createFromFormat('Y-m-d', $parameters->filter()?->value($field, date('Y-m-d')), config('app.timezone')); } catch (InvalidFormatException $e) { Log::debug(sprintf('Invalid date format in request. Using today: %s', $e->getMessage())); } - return $date; + return $date; } private function arrayOfStrings(QueryParameters $parameters, string $field): array { $array = $parameters->filter()?->value($field, []) ?? []; + return is_string($array) ? [$array] : $array; } @@ -53,5 +54,4 @@ trait ParsesQueryFilters { return (int) ($parameters->page()[$field] ?? $default); } - } diff --git a/app/Support/Http/Api/ValidatesUserGroupTrait.php b/app/Support/Http/Api/ValidatesUserGroupTrait.php index 14e7678e1f..2c0f6553ce 100644 --- a/app/Support/Http/Api/ValidatesUserGroupTrait.php +++ b/app/Support/Http/Api/ValidatesUserGroupTrait.php @@ -40,7 +40,6 @@ trait ValidatesUserGroupTrait /** * An "undocumented" filter * - * * TODO add this filter to the API docs. * * @throws AuthorizationException @@ -55,11 +54,6 @@ trait ValidatesUserGroupTrait throw new AuthenticationException(); } - - - - - /** @var User $user */ $user = auth()->user(); $groupId = 0; diff --git a/changelog.md b/changelog.md index 0277111bb9..357129db87 100644 --- a/changelog.md +++ b/changelog.md @@ -15,10 +15,10 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Fixed -- #8840 -- #8863 -- #8867 -- #8858 +- [Issue 8840](https://github.com/firefly-iii/firefly-iii/issues/8840) (Budget page crash) reported by @JcMinarro +- [Issue 8863](https://github.com/firefly-iii/firefly-iii/issues/8863) (Empty webhooks page) reported by @mrahmadt +- [Issue 8867](https://github.com/firefly-iii/firefly-iii/issues/8867) (SQL Integrity constraint violation when inserting into budget_limits) reported by @HedgehogRidingAnOwl +- [Issue 8858](https://github.com/firefly-iii/firefly-iii/issues/8858) (A single Account constantly loses its Account NUmber / IBAN ) reported by @ypsilonkah ### API diff --git a/composer.lock b/composer.lock index 4c9317c1e5..dbd0e4fc6a 100644 --- a/composer.lock +++ b/composer.lock @@ -874,26 +874,26 @@ }, { "name": "firebase/php-jwt", - "version": "v6.10.0", + "version": "v6.10.1", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "a49db6f0a5033aef5143295342f1c95521b075ff" + "reference": "500501c2ce893c824c801da135d02661199f60c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/a49db6f0a5033aef5143295342f1c95521b075ff", - "reference": "a49db6f0a5033aef5143295342f1c95521b075ff", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/500501c2ce893c824c801da135d02661199f60c5", + "reference": "500501c2ce893c824c801da135d02661199f60c5", "shasum": "" }, "require": { - "php": "^7.4||^8.0" + "php": "^8.0" }, "require-dev": { - "guzzlehttp/guzzle": "^6.5||^7.4", + "guzzlehttp/guzzle": "^7.4", "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "psr/cache": "^1.0||^2.0", + "psr/cache": "^2.0||^3.0", "psr/http-client": "^1.0", "psr/http-factory": "^1.0" }, @@ -931,9 +931,9 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.10.0" + "source": "https://github.com/firebase/php-jwt/tree/v6.10.1" }, - "time": "2023-12-01T16:26:39+00:00" + "time": "2024-05-18T18:05:11+00:00" }, { "name": "fruitcake/php-cors", diff --git a/config/firefly.php b/config/firefly.php index 6342a2b4b1..ce7382dc1d 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -117,7 +117,7 @@ return [ 'expression_engine' => false, // see cer.php for exchange rates feature flag. ], - 'version' => 'develop/2024-05-18', + 'version' => '6.1.16', 'api_version' => '2.1.0', 'db_version' => 24, diff --git a/resources/lang/bg_BG/validation.php b/resources/lang/bg_BG/validation.php index 3dc9e1aa5a..94b9ffe39e 100644 --- a/resources/lang/bg_BG/validation.php +++ b/resources/lang/bg_BG/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array is missing "where"-clause', diff --git a/resources/lang/ca_ES/validation.php b/resources/lang/ca_ES/validation.php index 0aadffe0c8..6c917e0d49 100644 --- a/resources/lang/ca_ES/validation.php +++ b/resources/lang/ca_ES/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III no pot determinar el tipus de transacció a partir d\'aquest compte font.', 'bad_type_destination' => 'Firefly III no pot determinar el tipus de transacció a partir d\'aquest compte de destí.', 'missing_where' => 'A l\'array li falta la clàusula "where"', diff --git a/resources/lang/cs_CZ/validation.php b/resources/lang/cs_CZ/validation.php index 984d157a85..0286c51dc4 100644 --- a/resources/lang/cs_CZ/validation.php +++ b/resources/lang/cs_CZ/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array is missing "where"-clause', diff --git a/resources/lang/da_DK/validation.php b/resources/lang/da_DK/validation.php index 64def73bd5..23845e6678 100644 --- a/resources/lang/da_DK/validation.php +++ b/resources/lang/da_DK/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III kan ikke bestemme transaktionstypen baseret på denne kildekonto.', 'bad_type_destination' => 'Firefly III kan ikke bestemme transaktionstypen baseret på denne destinationskonto.', 'missing_where' => 'Array mangler “Where”-sektion', diff --git a/resources/lang/de_DE/validation.php b/resources/lang/de_DE/validation.php index 9e724325cf..36063fd757 100644 --- a/resources/lang/de_DE/validation.php +++ b/resources/lang/de_DE/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III kann die Buchungsart anhand dieses Quellkontos nicht ermitteln.', 'bad_type_destination' => 'Firefly III kann die Buchungsart anhand dieses Zielkontos nicht ermitteln.', 'missing_where' => 'Dem Array fehlt die „where”-Klausel', diff --git a/resources/lang/el_GR/validation.php b/resources/lang/el_GR/validation.php index 9934abf300..30db547aa3 100644 --- a/resources/lang/el_GR/validation.php +++ b/resources/lang/el_GR/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Το Firefly III δεν μπορεί να καθορίσει τον τύπο συναλλαγής με βάση αυτό το λογαριασμό προέλευσης.', 'bad_type_destination' => 'Το Firefly III δεν μπορεί να καθορίσει τον τύπο συναλλαγής με βάση αυτό το λογαριασμό προορισμού.', 'missing_where' => 'Από τον πίνακα λείπει η ρήτρα "where"', diff --git a/resources/lang/en_GB/validation.php b/resources/lang/en_GB/validation.php index 5954703e25..b4c076caa8 100644 --- a/resources/lang/en_GB/validation.php +++ b/resources/lang/en_GB/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array is missing "where"-clause', diff --git a/resources/lang/en_US/validation.php b/resources/lang/en_US/validation.php index 1349ac7a60..e23106f780 100644 --- a/resources/lang/en_US/validation.php +++ b/resources/lang/en_US/validation.php @@ -25,159 +25,159 @@ declare(strict_types=1); return [ - 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', - 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', - 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', - 'missing_where' => 'Array is missing "where"-clause', - 'missing_update' => 'Array is missing "update"-clause', - 'invalid_where_key' => 'JSON contains an invalid key for the "where"-clause', - 'invalid_update_key' => 'JSON contains an invalid key for the "update"-clause', - 'invalid_query_data' => 'There is invalid data in the %s:%s field of your query.', - 'invalid_query_account_type' => 'Your query contains accounts of different types, which is not allowed.', - 'invalid_query_currency' => 'Your query contains accounts that have different currency settings, which is not allowed.', - 'iban' => 'This is not a valid IBAN.', - 'zero_or_more' => 'The value cannot be negative.', - 'more_than_zero' => 'The value must be more than zero.', - 'more_than_zero_correct' => 'The value must be zero or more.', - 'no_asset_account' => 'This is not an asset account.', - 'date_or_time' => 'The value must be a valid date or time value (ISO 8601).', - 'source_equals_destination' => 'The source account equals the destination account.', - 'unique_account_number_for_user' => 'It looks like this account number is already in use.', - 'unique_iban_for_user' => 'It looks like this IBAN is already in use.', - 'reconciled_forbidden_field' => 'This transaction is already reconciled, you cannot change the ":field"', - 'deleted_user' => 'Due to security constraints, you cannot register using this email address.', - 'rule_trigger_value' => 'This value is invalid for the selected trigger.', - 'rule_action_expression' => 'Invalid expression. :error', - 'rule_action_value' => 'This value is invalid for the selected action.', - 'file_already_attached' => 'Uploaded file ":name" is already attached to this object.', - 'file_attached' => 'Successfully uploaded file ":name".', - 'file_zero' => 'The file is zero bytes in size.', - 'must_exist' => 'The ID in field :attribute does not exist in the database.', - 'all_accounts_equal' => 'All accounts in this field must be equal.', - 'group_title_mandatory' => 'A group title is mandatory when there is more than one transaction.', - 'transaction_types_equal' => 'All splits must be of the same type.', - 'invalid_transaction_type' => 'Invalid transaction type.', - 'invalid_selection' => 'Your selection is invalid.', - 'belongs_user' => 'This value is linked to an object that does not seem to exist.', - 'belongs_user_or_user_group' => 'This value is linked to an object that does not seem to exist in your current financial administration.', - 'no_access_group' => 'The user has no access to this user group.', - 'no_accepted_roles_defined' => 'No access roles have been defined for this endpoint, access denied.', - 'at_least_one_transaction' => 'Need at least one transaction.', - 'recurring_transaction_id' => 'Need at least one transaction.', - 'need_id_to_match' => 'You need to submit this entry with an ID for the API to be able to match it.', - 'too_many_unmatched' => 'Too many submitted transactions cannot be matched to their respective database entries. Make sure existing entries have a valid ID.', - 'id_does_not_match' => 'Submitted ID #:id does not match expected ID. Make sure it matches or omit the field.', - 'at_least_one_repetition' => 'Need at least one repetition.', - 'require_repeat_until' => 'Require either a number of repetitions, or an end date (repeat_until). Not both.', - 'require_currency_info' => 'The content of this field is invalid without currency information.', - 'not_transfer_account' => 'This account is not an account that can be used for transfers.', - 'require_currency_amount' => 'The content of this field is invalid without foreign amount information.', - 'require_foreign_currency' => 'This field requires a number', - 'require_foreign_dest' => 'This field value must match the currency of the destination account.', - 'require_foreign_src' => 'This field value must match the currency of the source account.', - 'equal_description' => 'Transaction description should not equal global description.', - 'file_invalid_mime' => 'File ":name" is of type ":mime" which is not accepted as a new upload.', - 'file_too_large' => 'File ":name" is too large.', - 'belongs_to_user' => 'The value of :attribute is unknown.', - 'accepted' => 'The :attribute must be accepted.', - 'bic' => 'This is not a valid BIC.', - 'at_least_one_trigger' => 'Rule must have at least one trigger.', - 'at_least_one_active_trigger' => 'Rule must have at least one active trigger.', - 'at_least_one_action' => 'Rule must have at least one action.', - 'at_least_one_active_action' => 'Rule must have at least one active action.', - 'base64' => 'This is not valid base64 encoded data.', - 'model_id_invalid' => 'The given ID seems invalid for this model.', - 'less' => ':attribute must be less than 10,000,000', - 'active_url' => 'The :attribute is not a valid URL.', - 'after' => 'The :attribute must be a date after :date.', - 'date_after' => 'The start date must be before the end date.', - 'alpha' => 'The :attribute may only contain letters.', - 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', - 'alpha_num' => 'The :attribute may only contain letters and numbers.', - 'array' => 'The :attribute must be an array.', - 'unique_for_user' => 'There already is an entry with this :attribute.', - 'before' => 'The :attribute must be a date before :date.', - 'unique_object_for_user' => 'This name is already in use.', - 'unique_account_for_user' => 'This account name is already in use.', + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', + 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', + 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', + 'missing_where' => 'Array is missing "where"-clause', + 'missing_update' => 'Array is missing "update"-clause', + 'invalid_where_key' => 'JSON contains an invalid key for the "where"-clause', + 'invalid_update_key' => 'JSON contains an invalid key for the "update"-clause', + 'invalid_query_data' => 'There is invalid data in the %s:%s field of your query.', + 'invalid_query_account_type' => 'Your query contains accounts of different types, which is not allowed.', + 'invalid_query_currency' => 'Your query contains accounts that have different currency settings, which is not allowed.', + 'iban' => 'This is not a valid IBAN.', + 'zero_or_more' => 'The value cannot be negative.', + 'more_than_zero' => 'The value must be more than zero.', + 'more_than_zero_correct' => 'The value must be zero or more.', + 'no_asset_account' => 'This is not an asset account.', + 'date_or_time' => 'The value must be a valid date or time value (ISO 8601).', + 'source_equals_destination' => 'The source account equals the destination account.', + 'unique_account_number_for_user' => 'It looks like this account number is already in use.', + 'unique_iban_for_user' => 'It looks like this IBAN is already in use.', + 'reconciled_forbidden_field' => 'This transaction is already reconciled, you cannot change the ":field"', + 'deleted_user' => 'Due to security constraints, you cannot register using this email address.', + 'rule_trigger_value' => 'This value is invalid for the selected trigger.', + 'rule_action_expression' => 'Invalid expression. :error', + 'rule_action_value' => 'This value is invalid for the selected action.', + 'file_already_attached' => 'Uploaded file ":name" is already attached to this object.', + 'file_attached' => 'Successfully uploaded file ":name".', + 'file_zero' => 'The file is zero bytes in size.', + 'must_exist' => 'The ID in field :attribute does not exist in the database.', + 'all_accounts_equal' => 'All accounts in this field must be equal.', + 'group_title_mandatory' => 'A group title is mandatory when there is more than one transaction.', + 'transaction_types_equal' => 'All splits must be of the same type.', + 'invalid_transaction_type' => 'Invalid transaction type.', + 'invalid_selection' => 'Your selection is invalid.', + 'belongs_user' => 'This value is linked to an object that does not seem to exist.', + 'belongs_user_or_user_group' => 'This value is linked to an object that does not seem to exist in your current financial administration.', + 'no_access_group' => 'The user has no access to this user group.', + 'no_accepted_roles_defined' => 'No access roles have been defined for this endpoint, access denied.', + 'at_least_one_transaction' => 'Need at least one transaction.', + 'recurring_transaction_id' => 'Need at least one transaction.', + 'need_id_to_match' => 'You need to submit this entry with an ID for the API to be able to match it.', + 'too_many_unmatched' => 'Too many submitted transactions cannot be matched to their respective database entries. Make sure existing entries have a valid ID.', + 'id_does_not_match' => 'Submitted ID #:id does not match expected ID. Make sure it matches or omit the field.', + 'at_least_one_repetition' => 'Need at least one repetition.', + 'require_repeat_until' => 'Require either a number of repetitions, or an end date (repeat_until). Not both.', + 'require_currency_info' => 'The content of this field is invalid without currency information.', + 'not_transfer_account' => 'This account is not an account that can be used for transfers.', + 'require_currency_amount' => 'The content of this field is invalid without foreign amount information.', + 'require_foreign_currency' => 'This field requires a number', + 'require_foreign_dest' => 'This field value must match the currency of the destination account.', + 'require_foreign_src' => 'This field value must match the currency of the source account.', + 'equal_description' => 'Transaction description should not equal global description.', + 'file_invalid_mime' => 'File ":name" is of type ":mime" which is not accepted as a new upload.', + 'file_too_large' => 'File ":name" is too large.', + 'belongs_to_user' => 'The value of :attribute is unknown.', + 'accepted' => 'The :attribute must be accepted.', + 'bic' => 'This is not a valid BIC.', + 'at_least_one_trigger' => 'Rule must have at least one trigger.', + 'at_least_one_active_trigger' => 'Rule must have at least one active trigger.', + 'at_least_one_action' => 'Rule must have at least one action.', + 'at_least_one_active_action' => 'Rule must have at least one active action.', + 'base64' => 'This is not valid base64 encoded data.', + 'model_id_invalid' => 'The given ID seems invalid for this model.', + 'less' => ':attribute must be less than 10,000,000', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'date_after' => 'The start date must be before the end date.', + 'alpha' => 'The :attribute may only contain letters.', + 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', + 'alpha_num' => 'The :attribute may only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'unique_for_user' => 'There already is an entry with this :attribute.', + 'before' => 'The :attribute must be a date before :date.', + 'unique_object_for_user' => 'This name is already in use.', + 'unique_account_for_user' => 'This account name is already in use.', // Ignore this comment - 'between.numeric' => 'The :attribute must be between :min and :max.', - 'between.file' => 'The :attribute must be between :min and :max kilobytes.', - 'between.string' => 'The :attribute must be between :min and :max characters.', - 'between.array' => 'The :attribute must have between :min and :max items.', - 'boolean' => 'The :attribute field must be true or false.', - 'confirmed' => 'The :attribute confirmation does not match.', - 'date' => 'The :attribute is not a valid date.', - 'date_format' => 'The :attribute does not match the format :format.', - 'different' => 'The :attribute and :other must be different.', - 'digits' => 'The :attribute must be :digits digits.', - 'digits_between' => 'The :attribute must be between :min and :max digits.', - 'email' => 'The :attribute must be a valid email address.', - 'filled' => 'The :attribute field is required.', - 'exists' => 'The selected :attribute is invalid.', - 'image' => 'The :attribute must be an image.', - 'in' => 'The selected :attribute is invalid.', - 'integer' => 'The :attribute must be an integer.', - 'ip' => 'The :attribute must be a valid IP address.', - 'json' => 'The :attribute must be a valid JSON string.', - 'max.numeric' => 'The :attribute may not be greater than :max.', - 'max.file' => 'The :attribute may not be greater than :max kilobytes.', - 'max.string' => 'The :attribute may not be greater than :max characters.', - 'max.array' => 'The :attribute may not have more than :max items.', - 'mimes' => 'The :attribute must be a file of type: :values.', - 'min.numeric' => 'The :attribute must be at least :min.', - 'lte.numeric' => 'The :attribute must be less than or equal :value.', - 'min.file' => 'The :attribute must be at least :min kilobytes.', - 'min.string' => 'The :attribute must be at least :min characters.', - 'min.array' => 'The :attribute must have at least :min items.', - 'not_in' => 'The selected :attribute is invalid.', - 'numeric' => 'The :attribute must be a number.', - 'scientific_notation' => 'The :attribute cannot use the scientific notation.', - 'numeric_native' => 'The native amount must be a number.', - 'numeric_destination' => 'The destination amount must be a number.', - 'numeric_source' => 'The source amount must be a number.', - 'regex' => 'The :attribute format is invalid.', - 'required' => 'The :attribute field is required.', - 'required_if' => 'The :attribute field is required when :other is :value.', - 'required_unless' => 'The :attribute field is required unless :other is in :values.', - 'required_with' => 'The :attribute field is required when :values is present.', - 'required_with_all' => 'The :attribute field is required when :values is present.', - 'required_without' => 'The :attribute field is required when :values is not present.', - 'required_without_all' => 'The :attribute field is required when none of :values are present.', - 'same' => 'The :attribute and :other must match.', - 'size.numeric' => 'The :attribute must be :size.', - 'amount_min_over_max' => 'The minimum amount cannot be larger than the maximum amount.', - 'size.file' => 'The :attribute must be :size kilobytes.', - 'size.string' => 'The :attribute must be :size characters.', - 'size.array' => 'The :attribute must contain :size items.', - 'unique' => 'The :attribute has already been taken.', - 'string' => 'The :attribute must be a string.', - 'url' => 'The :attribute format is invalid.', - 'timezone' => 'The :attribute must be a valid zone.', - '2fa_code' => 'The :attribute field is invalid.', - 'dimensions' => 'The :attribute has invalid image dimensions.', - 'distinct' => 'The :attribute field has a duplicate value.', - 'file' => 'The :attribute must be a file.', - 'in_array' => 'The :attribute field does not exist in :other.', - 'present' => 'The :attribute field must be present.', - 'amount_zero' => 'The total amount cannot be zero.', - 'current_target_amount' => 'The current amount must be less than the target amount.', - 'unique_piggy_bank_for_user' => 'The name of the piggy bank must be unique.', - 'unique_object_group' => 'The group name must be unique', - 'starts_with' => 'The value must start with :values.', - 'unique_webhook' => 'You already have a webhook with this combination of URL, trigger, response and delivery.', - 'unique_existing_webhook' => 'You already have another webhook with this combination of URL, trigger, response and delivery.', - 'same_account_type' => 'Both accounts must be of the same account type', - 'same_account_currency' => 'Both accounts must have the same currency setting', + 'between.numeric' => 'The :attribute must be between :min and :max.', + 'between.file' => 'The :attribute must be between :min and :max kilobytes.', + 'between.string' => 'The :attribute must be between :min and :max characters.', + 'between.array' => 'The :attribute must have between :min and :max items.', + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'date' => 'The :attribute is not a valid date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'email' => 'The :attribute must be a valid email address.', + 'filled' => 'The :attribute field is required.', + 'exists' => 'The selected :attribute is invalid.', + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'json' => 'The :attribute must be a valid JSON string.', + 'max.numeric' => 'The :attribute may not be greater than :max.', + 'max.file' => 'The :attribute may not be greater than :max kilobytes.', + 'max.string' => 'The :attribute may not be greater than :max characters.', + 'max.array' => 'The :attribute may not have more than :max items.', + 'mimes' => 'The :attribute must be a file of type: :values.', + 'min.numeric' => 'The :attribute must be at least :min.', + 'lte.numeric' => 'The :attribute must be less than or equal :value.', + 'min.file' => 'The :attribute must be at least :min kilobytes.', + 'min.string' => 'The :attribute must be at least :min characters.', + 'min.array' => 'The :attribute must have at least :min items.', + 'not_in' => 'The selected :attribute is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'scientific_notation' => 'The :attribute cannot use the scientific notation.', + 'numeric_native' => 'The native amount must be a number.', + 'numeric_destination' => 'The destination amount must be a number.', + 'numeric_source' => 'The source amount must be a number.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values is present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size.numeric' => 'The :attribute must be :size.', + 'amount_min_over_max' => 'The minimum amount cannot be larger than the maximum amount.', + 'size.file' => 'The :attribute must be :size kilobytes.', + 'size.string' => 'The :attribute must be :size characters.', + 'size.array' => 'The :attribute must contain :size items.', + 'unique' => 'The :attribute has already been taken.', + 'string' => 'The :attribute must be a string.', + 'url' => 'The :attribute format is invalid.', + 'timezone' => 'The :attribute must be a valid zone.', + '2fa_code' => 'The :attribute field is invalid.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'file' => 'The :attribute must be a file.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'present' => 'The :attribute field must be present.', + 'amount_zero' => 'The total amount cannot be zero.', + 'current_target_amount' => 'The current amount must be less than the target amount.', + 'unique_piggy_bank_for_user' => 'The name of the piggy bank must be unique.', + 'unique_object_group' => 'The group name must be unique', + 'starts_with' => 'The value must start with :values.', + 'unique_webhook' => 'You already have a webhook with this combination of URL, trigger, response and delivery.', + 'unique_existing_webhook' => 'You already have another webhook with this combination of URL, trigger, response and delivery.', + 'same_account_type' => 'Both accounts must be of the same account type', + 'same_account_currency' => 'Both accounts must have the same currency setting', // Ignore this comment - 'secure_password' => 'This is not a secure password. Please try again. For more information, visit https://bit.ly/FF3-password', - 'valid_recurrence_rep_type' => 'Invalid repetition type for recurring transactions.', - 'valid_recurrence_rep_moment' => 'Invalid repetition moment for this type of repetition.', - 'invalid_account_info' => 'Invalid account information.', - 'attributes' => [ + 'secure_password' => 'This is not a secure password. Please try again. For more information, visit https://bit.ly/FF3-password', + 'valid_recurrence_rep_type' => 'Invalid repetition type for recurring transactions.', + 'valid_recurrence_rep_moment' => 'Invalid repetition moment for this type of repetition.', + 'invalid_account_info' => 'Invalid account information.', + 'attributes' => [ 'email' => 'email address', 'description' => 'description', 'amount' => 'amount', @@ -216,58 +216,58 @@ return [ ], // validation of accounts: - 'withdrawal_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.', - 'withdrawal_source_bad_data' => '[a] Could not find a valid source account when searching for ID ":id" or name ":name".', - 'withdrawal_dest_need_data' => '[a] Need to get a valid destination account ID and/or valid destination account name to continue.', - 'withdrawal_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".', + 'withdrawal_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.', + 'withdrawal_source_bad_data' => '[a] Could not find a valid source account when searching for ID ":id" or name ":name".', + 'withdrawal_dest_need_data' => '[a] Need to get a valid destination account ID and/or valid destination account name to continue.', + 'withdrawal_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".', - 'withdrawal_dest_iban_exists' => 'This destination account IBAN is already in use by an asset account or a liability and cannot be used as a withdrawal destination.', - 'deposit_src_iban_exists' => 'This source account IBAN is already in use by an asset account or a liability and cannot be used as a deposit source.', + 'withdrawal_dest_iban_exists' => 'This destination account IBAN is already in use by an asset account or a liability and cannot be used as a withdrawal destination.', + 'deposit_src_iban_exists' => 'This source account IBAN is already in use by an asset account or a liability and cannot be used as a deposit source.', - 'reconciliation_source_bad_data' => 'Could not find a valid reconciliation account when searching for ID ":id" or name ":name".', + 'reconciliation_source_bad_data' => 'Could not find a valid reconciliation account when searching for ID ":id" or name ":name".', - 'generic_source_bad_data' => '[e] Could not find a valid source account when searching for ID ":id" or name ":name".', + 'generic_source_bad_data' => '[e] Could not find a valid source account when searching for ID ":id" or name ":name".', - 'deposit_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.', - 'deposit_source_bad_data' => '[b] Could not find a valid source account when searching for ID ":id" or name ":name".', - 'deposit_dest_need_data' => '[b] Need to get a valid destination account ID and/or valid destination account name to continue.', - 'deposit_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".', - 'deposit_dest_wrong_type' => 'The submitted destination account is not of the right type.', + 'deposit_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.', + 'deposit_source_bad_data' => '[b] Could not find a valid source account when searching for ID ":id" or name ":name".', + 'deposit_dest_need_data' => '[b] Need to get a valid destination account ID and/or valid destination account name to continue.', + 'deposit_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".', + 'deposit_dest_wrong_type' => 'The submitted destination account is not of the right type.', // Ignore this comment - 'transfer_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.', - 'transfer_source_bad_data' => '[c] Could not find a valid source account when searching for ID ":id" or name ":name".', - 'transfer_dest_need_data' => '[c] Need to get a valid destination account ID and/or valid destination account name to continue.', - 'transfer_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".', - 'need_id_in_edit' => 'Each split must have transaction_journal_id (either valid ID or 0).', + 'transfer_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.', + 'transfer_source_bad_data' => '[c] Could not find a valid source account when searching for ID ":id" or name ":name".', + 'transfer_dest_need_data' => '[c] Need to get a valid destination account ID and/or valid destination account name to continue.', + 'transfer_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".', + 'need_id_in_edit' => 'Each split must have transaction_journal_id (either valid ID or 0).', - 'ob_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.', - 'lc_source_need_data' => 'Need to get a valid source account ID to continue.', - 'ob_dest_need_data' => '[d] Need to get a valid destination account ID and/or valid destination account name to continue.', - 'ob_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".', - 'reconciliation_either_account' => 'To submit a reconciliation, you must submit either a source or a destination account. Not both, not neither.', + 'ob_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.', + 'lc_source_need_data' => 'Need to get a valid source account ID to continue.', + 'ob_dest_need_data' => '[d] Need to get a valid destination account ID and/or valid destination account name to continue.', + 'ob_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".', + 'reconciliation_either_account' => 'To submit a reconciliation, you must submit either a source or a destination account. Not both, not neither.', - 'generic_invalid_source' => 'You can\'t use this account as the source account.', - 'generic_invalid_destination' => 'You can\'t use this account as the destination account.', + 'generic_invalid_source' => 'You can\'t use this account as the source account.', + 'generic_invalid_destination' => 'You can\'t use this account as the destination account.', - 'generic_no_source' => 'You must submit source account information or submit a transaction journal ID.', - 'generic_no_destination' => 'You must submit destination account information or submit a transaction journal ID.', + 'generic_no_source' => 'You must submit source account information or submit a transaction journal ID.', + 'generic_no_destination' => 'You must submit destination account information or submit a transaction journal ID.', - 'gte.numeric' => 'The :attribute must be greater than or equal to :value.', - 'gt.numeric' => 'The :attribute must be greater than :value.', - 'gte.file' => 'The :attribute must be greater than or equal to :value kilobytes.', - 'gte.string' => 'The :attribute must be greater than or equal to :value characters.', - 'gte.array' => 'The :attribute must have :value items or more.', + 'gte.numeric' => 'The :attribute must be greater than or equal to :value.', + 'gt.numeric' => 'The :attribute must be greater than :value.', + 'gte.file' => 'The :attribute must be greater than or equal to :value kilobytes.', + 'gte.string' => 'The :attribute must be greater than or equal to :value characters.', + 'gte.array' => 'The :attribute must have :value items or more.', 'amount_required_for_auto_budget' => 'The amount is required.', 'auto_budget_amount_positive' => 'The amount must be more than zero.', - 'auto_budget_period_mandatory' => 'The auto budget period is a mandatory field.', + 'auto_budget_period_mandatory' => 'The auto budget period is a mandatory field.', // no access to administration: - 'no_access_user_group' => 'You do not have the correct access rights for this administration.', - 'administration_owner_rename' => 'You can\'t rename your standard administration.', + 'no_access_user_group' => 'You do not have the correct access rights for this administration.', + 'administration_owner_rename' => 'You can\'t rename your standard administration.', ]; // Ignore this comment diff --git a/resources/lang/es_ES/validation.php b/resources/lang/es_ES/validation.php index 18155abe12..6b2c8c12dc 100644 --- a/resources/lang/es_ES/validation.php +++ b/resources/lang/es_ES/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III no puede determinar el tipo de transacción basado en esta cuenta de origen.', 'bad_type_destination' => 'Firefly III no puede determinar el tipo de transacción basado en esta cuenta de destino.', 'missing_where' => 'El array esperaba la cláusula "where"', diff --git a/resources/lang/fi_FI/validation.php b/resources/lang/fi_FI/validation.php index 9dc0fea7cc..3940d2e1b0 100644 --- a/resources/lang/fi_FI/validation.php +++ b/resources/lang/fi_FI/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Taulukosta puuttuu "where"-komento', diff --git a/resources/lang/fr_FR/validation.php b/resources/lang/fr_FR/validation.php index 1f39bcdd71..515225591e 100644 --- a/resources/lang/fr_FR/validation.php +++ b/resources/lang/fr_FR/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III ne peut pas déterminer le type de transaction basé sur ce compte source.', 'bad_type_destination' => 'Firefly III ne peut pas déterminer le type de transaction basé sur ce compte de destination.', 'missing_where' => 'La requête ne contient pas de clause "where"', diff --git a/resources/lang/hu_HU/validation.php b/resources/lang/hu_HU/validation.php index 458213cd9d..5c446c7432 100644 --- a/resources/lang/hu_HU/validation.php +++ b/resources/lang/hu_HU/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'A Firefly III nem tudja eldönteni a tranzakció típusát a forrásszámla alapján.', 'bad_type_destination' => 'A Firefly III nem tudja eldönteni a tranzakció típusát a célszámla alapján.', 'missing_where' => 'Array is missing "where"-clause', diff --git a/resources/lang/id_ID/validation.php b/resources/lang/id_ID/validation.php index 640293422b..7a86ea44c5 100644 --- a/resources/lang/id_ID/validation.php +++ b/resources/lang/id_ID/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array is missing "where"-clause', diff --git a/resources/lang/it_IT/validation.php b/resources/lang/it_IT/validation.php index a9cbb7784a..50aa55a186 100644 --- a/resources/lang/it_IT/validation.php +++ b/resources/lang/it_IT/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III non può determinare il tipo di transazione in base a questo account sorgente.', 'bad_type_destination' => 'Firefly III non può determinare il tipo di transazione in base a questo account di destinazione.', 'missing_where' => 'Clausola "where" assente nell\'array', diff --git a/resources/lang/ja_JP/validation.php b/resources/lang/ja_JP/validation.php index 1d0e8770b3..6ab268b60f 100644 --- a/resources/lang/ja_JP/validation.php +++ b/resources/lang/ja_JP/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => '配列に"where"節がありません', diff --git a/resources/lang/ko_KR/validation.php b/resources/lang/ko_KR/validation.php index 4a3ebac13d..de56cac0b7 100644 --- a/resources/lang/ko_KR/validation.php +++ b/resources/lang/ko_KR/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => '배열에 "where"절이 없습니다', diff --git a/resources/lang/nb_NO/validation.php b/resources/lang/nb_NO/validation.php index 455cc8edc3..7db84d6057 100644 --- a/resources/lang/nb_NO/validation.php +++ b/resources/lang/nb_NO/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Matrise mangler "where"-klausul', diff --git a/resources/lang/nl_NL/validation.php b/resources/lang/nl_NL/validation.php index 1bef13e844..a42c0c434c 100644 --- a/resources/lang/nl_NL/validation.php +++ b/resources/lang/nl_NL/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III kan het transactietype niet bepalen op basis van deze bronrekening.', 'bad_type_destination' => 'Firefly III kan het transactietype niet bepalen op basis van deze doelrekening.', 'missing_where' => 'Array mist "where"-clausule', diff --git a/resources/lang/nn_NO/validation.php b/resources/lang/nn_NO/validation.php index c4d371fee9..b69b5cedbc 100644 --- a/resources/lang/nn_NO/validation.php +++ b/resources/lang/nn_NO/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Matrise mangler "where"-klausul', diff --git a/resources/lang/pl_PL/validation.php b/resources/lang/pl_PL/validation.php index f28e665843..7d691c01b1 100644 --- a/resources/lang/pl_PL/validation.php +++ b/resources/lang/pl_PL/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Tablica nie zawiera klauzuli "where"', diff --git a/resources/lang/pt_BR/validation.php b/resources/lang/pt_BR/validation.php index 0f3fba2c6e..2bb0ed58db 100644 --- a/resources/lang/pt_BR/validation.php +++ b/resources/lang/pt_BR/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III não conseguiu determinar o tipo de transação baseado nesta conta de origem.', 'bad_type_destination' => 'Firefly III não conseguiu determinar o tipo de transação baseado nesta conta destino.', 'missing_where' => 'O array está sem a cláusula "where"', diff --git a/resources/lang/pt_PT/validation.php b/resources/lang/pt_PT/validation.php index 4afb70ce2a..9ceeb61fa4 100644 --- a/resources/lang/pt_PT/validation.php +++ b/resources/lang/pt_PT/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'O Firefly III não consegue determinar o tipo de transação baseado nesta conta de origem.', 'bad_type_destination' => 'O Firefly III não consegue determinar o tipo de transação baseado nesta conta de destino.', 'missing_where' => 'A matriz tem em falta a cláusula-"onde"', diff --git a/resources/lang/ro_RO/validation.php b/resources/lang/ro_RO/validation.php index ce3df99f79..f7fb84155b 100644 --- a/resources/lang/ro_RO/validation.php +++ b/resources/lang/ro_RO/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III nu poate determina tipul de tranzacție pe baza acestui cont sursă.', 'bad_type_destination' => 'Firefly III nu poate determina tipul de tranzacție bazat pe acest cont de destinație.', 'missing_where' => 'Array lipseşte "unde clauza', diff --git a/resources/lang/ru_RU/validation.php b/resources/lang/ru_RU/validation.php index 3d0f997532..0a2f2eccc5 100644 --- a/resources/lang/ru_RU/validation.php +++ b/resources/lang/ru_RU/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III не может определить тип транзакции на основе этого исходного счета.', 'bad_type_destination' => 'Firefly III не может определить тип транзакции на основе этого счета.', 'missing_where' => 'В массиве отсутствует связка "where" ("где")', diff --git a/resources/lang/sk_SK/validation.php b/resources/lang/sk_SK/validation.php index 8691577417..022d4b44c0 100644 --- a/resources/lang/sk_SK/validation.php +++ b/resources/lang/sk_SK/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array is missing "where"-clause', diff --git a/resources/lang/sl_SI/validation.php b/resources/lang/sl_SI/validation.php index 926a7f492a..0d3a659958 100644 --- a/resources/lang/sl_SI/validation.php +++ b/resources/lang/sl_SI/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Na podlagi tega izvornega računa Firefly III ne more določiti vrste transakcije.', 'bad_type_destination' => 'Na podlagi tega ciljnega računa Firefly III ne more določiti vrste transakcije.', 'missing_where' => 'Matriki manjka člen "kjer"', diff --git a/resources/lang/sv_SE/validation.php b/resources/lang/sv_SE/validation.php index afee0ea788..6d651fc6d6 100644 --- a/resources/lang/sv_SE/validation.php +++ b/resources/lang/sv_SE/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III kan inte avgöra transaktionstypen baserat på detta källkonto.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array saknar "var"-klausul', diff --git a/resources/lang/th_TH/validation.php b/resources/lang/th_TH/validation.php index e29fefca7d..68326a49ed 100644 --- a/resources/lang/th_TH/validation.php +++ b/resources/lang/th_TH/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array is missing "where"-clause', diff --git a/resources/lang/tr_TR/validation.php b/resources/lang/tr_TR/validation.php index 9fd7aab1fb..c84ed8ce19 100644 --- a/resources/lang/tr_TR/validation.php +++ b/resources/lang/tr_TR/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array is missing "where"-clause', diff --git a/resources/lang/uk_UA/validation.php b/resources/lang/uk_UA/validation.php index 071cc17b6a..665cd8560f 100644 --- a/resources/lang/uk_UA/validation.php +++ b/resources/lang/uk_UA/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array is missing "where"-clause', diff --git a/resources/lang/vi_VN/validation.php b/resources/lang/vi_VN/validation.php index b0cf26dd0f..0d3ea4bbfd 100644 --- a/resources/lang/vi_VN/validation.php +++ b/resources/lang/vi_VN/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Mảng bị thiếu mệnh đề "where"', diff --git a/resources/lang/zh_CN/validation.php b/resources/lang/zh_CN/validation.php index f818979d4b..9d0c02575f 100644 --- a/resources/lang/zh_CN/validation.php +++ b/resources/lang/zh_CN/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III 无法确定基于此源账户的交易类型。', 'bad_type_destination' => 'Firefly III 无法确定基于此目标帐户的交易类型。', 'missing_where' => '数组中缺少"where"条目', diff --git a/resources/lang/zh_TW/validation.php b/resources/lang/zh_TW/validation.php index abe166771f..834ef4d0fe 100644 --- a/resources/lang/zh_TW/validation.php +++ b/resources/lang/zh_TW/validation.php @@ -34,6 +34,7 @@ declare(strict_types=1); return [ + 'bad_api_filter' => 'This API endpoint does not support ":filter" as a filter.', 'bad_type_source' => 'Firefly III can\'t determine the transaction type based on this source account.', 'bad_type_destination' => 'Firefly III can\'t determine the transaction type based on this destination account.', 'missing_where' => 'Array is missing "where"-clause',