Merge branch 'develop' into 5.8-dev

# Conflicts:
#	composer.lock
#	config/firefly.php
#	public/v1/js/create_transaction.js
#	public/v1/js/edit_transaction.js
#	public/v1/js/profile.js
#	resources/assets/js/locales/pt-br.json
#	resources/lang/pt_BR/firefly.php
#	yarn.lock
This commit is contained in:
James Cole
2022-10-23 14:49:54 +02:00
23 changed files with 341 additions and 225 deletions

View File

@@ -61,6 +61,7 @@ class CorrectDatabase extends Command
'firefly-iii:create-link-types', 'firefly-iii:create-link-types',
'firefly-iii:create-access-tokens', 'firefly-iii:create-access-tokens',
'firefly-iii:remove-bills', 'firefly-iii:remove-bills',
'firefly-iii:fix-negative-limits',
'firefly-iii:enable-currencies', 'firefly-iii:enable-currencies',
'firefly-iii:fix-transfer-budgets', 'firefly-iii:fix-transfer-budgets',
'firefly-iii:fix-uneven-amount', 'firefly-iii:fix-uneven-amount',

View File

@@ -0,0 +1,67 @@
<?php
/*
* FixBudgetLimits.php
* Copyright (c) 2022 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Console\Commands\Correction;
use DB;
use FireflyIII\Models\BudgetLimit;
use Illuminate\Console\Command;
/**
* Class CorrectionSkeleton
*/
class FixBudgetLimits extends Command
{
/**
* The console command description.
*
* @var string
*/
protected $description = 'Fixes negative budget limits';
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'firefly-iii:fix-negative-limits';
/**
* Execute the console command.
*
* @return int
*/
public function handle(): int
{
$set = BudgetLimit::where('amount', '<', '0')->get();
if (0 === $set->count()) {
$this->info('All budget limits are OK.');
return 0;
}
$count = BudgetLimit::where('amount', '<', '0')->update(['amount' => DB::raw('amount * -1')]);
$this->info(sprintf('Fixed %d budget limit(s)', $count));
return 0;
}
}

View File

@@ -82,6 +82,7 @@ class UpgradeDatabase extends Command
'firefly-iii:create-link-types', 'firefly-iii:create-link-types',
'firefly-iii:create-access-tokens', 'firefly-iii:create-access-tokens',
'firefly-iii:remove-bills', 'firefly-iii:remove-bills',
'firefly-iii:fix-negative-limits',
'firefly-iii:enable-currencies', 'firefly-iii:enable-currencies',
'firefly-iii:fix-transfer-budgets', 'firefly-iii:fix-transfer-budgets',
'firefly-iii:fix-uneven-amount', 'firefly-iii:fix-uneven-amount',

View File

@@ -288,18 +288,27 @@ class AccountFactory
$fields = $this->validCCFields; $fields = $this->validCCFields;
} }
// remove currency_id if necessary.
$type = $account->accountType->type;
$list = config('firefly.valid_currency_account_types');
if (!in_array($type, $list, true)) {
$pos = array_search('currency_id', $fields);
if ($pos !== false) {
unset($fields[$pos]);
}
}
/** @var AccountMetaFactory $factory */ /** @var AccountMetaFactory $factory */
$factory = app(AccountMetaFactory::class); $factory = app(AccountMetaFactory::class);
foreach ($fields as $field) { foreach ($fields as $field) {
// if the field is set but NULL, skip it. // if the field is set but NULL, skip it.
// if the field is set but "", update it. // if the field is set but "", update it.
if (array_key_exists($field, $data) && null !== $data[$field]) { if (array_key_exists($field, $data) && null !== $data[$field]) {
// convert boolean value: // convert boolean value:
if (is_bool($data[$field]) && false === $data[$field]) { if (is_bool($data[$field]) && false === $data[$field]) {
$data[$field] = 0; $data[$field] = 0;
} }
if (is_bool($data[$field]) && true === $data[$field]) { if (true === $data[$field]) {
$data[$field] = 1; $data[$field] = 1;
} }

View File

@@ -160,6 +160,9 @@ class BudgetLimitController extends Controller
if ((int) $amount > 268435456) { if ((int) $amount > 268435456) {
$amount = '268435456'; $amount = '268435456';
} }
if((float) $amount < 0.0) {
$amount = bcmul($amount, '-1');
}
if (null !== $limit) { if (null !== $limit) {
$limit->amount = $amount; $limit->amount = $amount;
@@ -226,6 +229,9 @@ class BudgetLimitController extends Controller
if ((int) $amount > 268435456) { // 268 million if ((int) $amount > 268435456) { // 268 million
$amount = '268435456'; $amount = '268435456';
} }
if((float) $amount < 0.0) {
$amount = bcmul($amount, '-1');
}
$limit = $this->blRepository->update($budgetLimit, ['amount' => $amount]); $limit = $this->blRepository->update($budgetLimit, ['amount' => $amount]);
$array = $limit->toArray(); $array = $limit->toArray();

View File

@@ -93,6 +93,7 @@ class InstallController extends Controller
'firefly-iii:create-link-types' => [], 'firefly-iii:create-link-types' => [],
'firefly-iii:create-access-tokens' => [], 'firefly-iii:create-access-tokens' => [],
'firefly-iii:remove-bills' => [], 'firefly-iii:remove-bills' => [],
'firefly-iii:fix-negative-limits' => [],
'firefly-iii:enable-currencies' => [], 'firefly-iii:enable-currencies' => [],
'firefly-iii:fix-transfer-budgets' => [], 'firefly-iii:fix-transfer-budgets' => [],
'firefly-iii:fix-uneven-amount' => [], 'firefly-iii:fix-uneven-amount' => [],

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Transaction; namespace FireflyIII\Http\Controllers\Transaction;
use FireflyIII\Events\UpdatedTransactionGroup;
use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\BulkEditJournalRequest; use FireflyIII\Http\Requests\BulkEditJournalRequest;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
@@ -32,6 +33,7 @@ use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory; use Illuminate\Contracts\View\Factory;
use Illuminate\Http\RedirectResponse; use Illuminate\Http\RedirectResponse;
use Illuminate\Routing\Redirector; use Illuminate\Routing\Redirector;
use Illuminate\Support\Collection;
use Illuminate\View\View; use Illuminate\View\View;
use Log; use Log;
@@ -102,8 +104,8 @@ class BulkController extends Controller
$ignoreCategory = 1 === (int) $request->get('ignore_category'); $ignoreCategory = 1 === (int) $request->get('ignore_category');
$ignoreBudget = 1 === (int) $request->get('ignore_budget'); $ignoreBudget = 1 === (int) $request->get('ignore_budget');
$tagsAction = $request->get('tags_action'); $tagsAction = $request->get('tags_action');
$collection = new Collection;
$count = 0; $count = 0;
foreach ($journalIds as $journalId) { foreach ($journalIds as $journalId) {
$journalId = (int) $journalId; $journalId = (int) $journalId;
@@ -114,9 +116,17 @@ class BulkController extends Controller
$resultC = $this->updateJournalCategory($journal, $ignoreCategory, $request->convertString('category')); $resultC = $this->updateJournalCategory($journal, $ignoreCategory, $request->convertString('category'));
if ($resultA || $resultB || $resultC) { if ($resultA || $resultB || $resultC) {
$count++; $count++;
$collection->push($journal);
} }
} }
} }
// run rules on changed journals:
/** @var TransactionJournal $journal */
foreach ($collection as $journal) {
event(new UpdatedTransactionGroup($journal->transactionGroup));
}
app('preferences')->mark(); app('preferences')->mark();
$request->session()->flash('success', (string) trans_choice('firefly.mass_edited_transactions_success', $count)); $request->session()->flash('success', (string) trans_choice('firefly.mass_edited_transactions_success', $count));

View File

@@ -486,6 +486,13 @@ class AccountRepository implements AccountRepositoryInterface
*/ */
public function getAccountCurrency(Account $account): ?TransactionCurrency public function getAccountCurrency(Account $account): ?TransactionCurrency
{ {
$type = $account->accountType->type;
$list = config('firefly.valid_currency_account_types');
// return null if not in this list.
if(!in_array($type, $list, true)) {
return null;
}
$currencyId = (int) $this->getMetaValue($account, 'currency_id'); $currencyId = (int) $this->getMetaValue($account, 'currency_id');
if ($currencyId > 0) { if ($currencyId > 0) {
return TransactionCurrency::find($currencyId); return TransactionCurrency::find($currencyId);

View File

@@ -115,6 +115,16 @@ trait AccountServiceTrait
$fields = $this->validAssetFields; $fields = $this->validAssetFields;
} }
// remove currency_id if necessary.
$type = $account->accountType->type;
$list = config('firefly.valid_currency_account_types');
if(!in_array($type, $list, true)) {
$pos = array_search('currency_id', $fields);
if ($pos !== false) {
unset($fields[$pos]);
}
}
// the account role may not be set in the data but we may have it already: // the account role may not be set in the data but we may have it already:
if (!array_key_exists('account_role', $data)) { if (!array_key_exists('account_role', $data)) {
$data['account_role'] = null; $data['account_role'] = null;

View File

@@ -2,6 +2,12 @@
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.7.14 - 2022-10-19
### Fixed
- Bulk editing transactions works.
- Negative budgets no longer work.
## 5.7.13 - 2022-10-17 ## 5.7.13 - 2022-10-17
### Added ### Added

View File

@@ -173,6 +173,7 @@
"@php artisan firefly-iii:create-link-types", "@php artisan firefly-iii:create-link-types",
"@php artisan firefly-iii:create-access-tokens", "@php artisan firefly-iii:create-access-tokens",
"@php artisan firefly-iii:remove-bills", "@php artisan firefly-iii:remove-bills",
"@php artisan firefly-iii:fix-negative-limits",
"@php artisan firefly-iii:enable-currencies", "@php artisan firefly-iii:enable-currencies",
"@php artisan firefly-iii:fix-transfer-budgets", "@php artisan firefly-iii:fix-transfer-budgets",
"@php artisan firefly-iii:fix-uneven-amount", "@php artisan firefly-iii:fix-uneven-amount",

45
composer.lock generated
View File

@@ -470,23 +470,23 @@
}, },
{ {
"name": "doctrine/dbal", "name": "doctrine/dbal",
"version": "3.4.5", "version": "3.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/dbal.git", "url": "https://github.com/doctrine/dbal.git",
"reference": "a5a58773109c0abb13e658c8ccd92aeec8d07f9e" "reference": "b66f55c7037402d9f522f19d86841e71c09f0195"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/a5a58773109c0abb13e658c8ccd92aeec8d07f9e", "url": "https://api.github.com/repos/doctrine/dbal/zipball/b66f55c7037402d9f522f19d86841e71c09f0195",
"reference": "a5a58773109c0abb13e658c8ccd92aeec8d07f9e", "reference": "b66f55c7037402d9f522f19d86841e71c09f0195",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"composer-runtime-api": "^2", "composer-runtime-api": "^2",
"doctrine/cache": "^1.11|^2.0", "doctrine/cache": "^1.11|^2.0",
"doctrine/deprecations": "^0.5.3|^1", "doctrine/deprecations": "^0.5.3|^1",
"doctrine/event-manager": "^1.0", "doctrine/event-manager": "^1|^2",
"php": "^7.4 || ^8.0", "php": "^7.4 || ^8.0",
"psr/cache": "^1|^2|^3", "psr/cache": "^1|^2|^3",
"psr/log": "^1|^2|^3" "psr/log": "^1|^2|^3"
@@ -494,14 +494,14 @@
"require-dev": { "require-dev": {
"doctrine/coding-standard": "10.0.0", "doctrine/coding-standard": "10.0.0",
"jetbrains/phpstorm-stubs": "2022.2", "jetbrains/phpstorm-stubs": "2022.2",
"phpstan/phpstan": "1.8.3", "phpstan/phpstan": "1.8.10",
"phpstan/phpstan-strict-rules": "^1.3", "phpstan/phpstan-strict-rules": "^1.4",
"phpunit/phpunit": "9.5.24", "phpunit/phpunit": "9.5.25",
"psalm/plugin-phpunit": "0.17.0", "psalm/plugin-phpunit": "0.17.0",
"squizlabs/php_codesniffer": "3.7.1", "squizlabs/php_codesniffer": "3.7.1",
"symfony/cache": "^5.4|^6.0", "symfony/cache": "^5.4|^6.0",
"symfony/console": "^4.4|^5.4|^6.0", "symfony/console": "^4.4|^5.4|^6.0",
"vimeo/psalm": "4.27.0" "vimeo/psalm": "4.29.0"
}, },
"suggest": { "suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files." "symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -561,7 +561,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/dbal/issues", "issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/3.4.5" "source": "https://github.com/doctrine/dbal/tree/3.5.0"
}, },
"funding": [ "funding": [
{ {
@@ -577,7 +577,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-09-23T17:48:57+00:00" "time": "2022-10-22T14:33:42+00:00"
}, },
{ {
"name": "doctrine/deprecations", "name": "doctrine/deprecations",
@@ -624,30 +624,29 @@
}, },
{ {
"name": "doctrine/event-manager", "name": "doctrine/event-manager",
"version": "1.2.0", "version": "2.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/event-manager.git", "url": "https://github.com/doctrine/event-manager.git",
"reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32",
"reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/deprecations": "^0.5.3 || ^1", "php": "^8.1"
"php": "^7.1 || ^8.0"
}, },
"conflict": { "conflict": {
"doctrine/common": "<2.9" "doctrine/common": "<2.9"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^9 || ^10", "doctrine/coding-standard": "^10",
"phpstan/phpstan": "~1.4.10 || ^1.8.8", "phpstan/phpstan": "^1.8.8",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "phpunit/phpunit": "^9.5",
"vimeo/psalm": "^4.24" "vimeo/psalm": "^4.28"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@@ -696,7 +695,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/event-manager/issues", "issues": "https://github.com/doctrine/event-manager/issues",
"source": "https://github.com/doctrine/event-manager/tree/1.2.0" "source": "https://github.com/doctrine/event-manager/tree/2.0.0"
}, },
"funding": [ "funding": [
{ {
@@ -712,7 +711,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-10-12T20:51:15+00:00" "time": "2022-10-12T20:59:15+00:00"
}, },
{ {
"name": "doctrine/inflector", "name": "doctrine/inflector",

View File

@@ -219,6 +219,13 @@ return [
'default_language' => envNonEmpty('DEFAULT_LANGUAGE', 'en_US'), 'default_language' => envNonEmpty('DEFAULT_LANGUAGE', 'en_US'),
'default_locale' => envNonEmpty('DEFAULT_LOCALE', 'equal'), 'default_locale' => envNonEmpty('DEFAULT_LOCALE', 'equal'),
// account types that may have or set a currency
'valid_currency_account_types' => [
AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE,
AccountType::CASH, AccountType::INITIAL_BALANCE, AccountType::LIABILITY_CREDIT,
AccountType::RECONCILIATION
],
// "value must be in this list" values // "value must be in this list" values
'valid_attachment_models' => [ 'valid_attachment_models' => [
Account::class, Account::class,

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

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

File diff suppressed because one or more lines are too long

View File

@@ -12,9 +12,6 @@
"transaction_updated_link": "A <a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID}<\/a> (\"{title}\") foi atualizada.", "transaction_updated_link": "A <a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID}<\/a> (\"{title}\") foi atualizada.",
"transaction_new_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID}<\/a> foi salva.", "transaction_new_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID}<\/a> foi salva.",
"transaction_journal_information": "Informa\u00e7\u00e3o da transa\u00e7\u00e3o", "transaction_journal_information": "Informa\u00e7\u00e3o da transa\u00e7\u00e3o",
"submission_options": "Submission options",
"apply_rules_checkbox": "Apply rules",
"fire_webhooks_checkbox": "Fire webhooks",
"no_budget_pointer": "Parece que voc\u00ea ainda n\u00e3o tem or\u00e7amentos. Voc\u00ea deve criar alguns na p\u00e1gina de <a href=\"budgets\">or\u00e7amentos<\/a>. Or\u00e7amentos podem ajud\u00e1-lo a manter o controle das despesas.", "no_budget_pointer": "Parece que voc\u00ea ainda n\u00e3o tem or\u00e7amentos. Voc\u00ea deve criar alguns na p\u00e1gina de <a href=\"budgets\">or\u00e7amentos<\/a>. Or\u00e7amentos podem ajud\u00e1-lo a manter o controle das despesas.",
"no_bill_pointer": "Parece que voc\u00ea ainda n\u00e3o tem contas. Voc\u00ea deve criar algumas em <a href=\"bills\">contas<\/a>. Contas podem ajudar voc\u00ea a manter o controle de despesas.", "no_bill_pointer": "Parece que voc\u00ea ainda n\u00e3o tem contas. Voc\u00ea deve criar algumas em <a href=\"bills\">contas<\/a>. Contas podem ajudar voc\u00ea a manter o controle de despesas.",
"source_account": "Conta origem", "source_account": "Conta origem",
@@ -89,39 +86,39 @@
"multi_account_warning_withdrawal": "Tenha em mente que a conta de origem das subsequentes divis\u00f5es ser\u00e1 sobrescrita pelo que estiver definido na primeira divis\u00e3o da sa\u00edda.", "multi_account_warning_withdrawal": "Tenha em mente que a conta de origem das subsequentes divis\u00f5es ser\u00e1 sobrescrita pelo que estiver definido na primeira divis\u00e3o da sa\u00edda.",
"multi_account_warning_deposit": "Tenha em mente que a conta de destino das divis\u00f5es subsequentes ser\u00e1 sobrescrita pelo que estiver definido na primeira divis\u00e3o da entrada.", "multi_account_warning_deposit": "Tenha em mente que a conta de destino das divis\u00f5es subsequentes ser\u00e1 sobrescrita pelo que estiver definido na primeira divis\u00e3o da entrada.",
"multi_account_warning_transfer": "Tenha em mente que a conta de origem + de destino das divis\u00f5es subsequentes ser\u00e1 sobrescrita pelo que for definido na primeira divis\u00e3o da transfer\u00eancia.", "multi_account_warning_transfer": "Tenha em mente que a conta de origem + de destino das divis\u00f5es subsequentes ser\u00e1 sobrescrita pelo que for definido na primeira divis\u00e3o da transfer\u00eancia.",
"webhook_trigger_STORE_TRANSACTION": "Ap\u00f3s cria\u00e7\u00e3o da transa\u00e7\u00e3o", "webhook_trigger_STORE_TRANSACTION": "After transaction creation",
"webhook_trigger_UPDATE_TRANSACTION": "Ap\u00f3s atualiza\u00e7\u00e3o da transa\u00e7\u00e3o", "webhook_trigger_UPDATE_TRANSACTION": "After transaction update",
"webhook_trigger_DESTROY_TRANSACTION": "Ap\u00f3s exclus\u00e3o da transa\u00e7\u00e3o", "webhook_trigger_DESTROY_TRANSACTION": "After transaction delete",
"webhook_response_TRANSACTIONS": "Detalhes da transa\u00e7\u00e3o", "webhook_response_TRANSACTIONS": "Transaction details",
"webhook_response_ACCOUNTS": "Detalhes da conta", "webhook_response_ACCOUNTS": "Account details",
"webhook_response_none_NONE": "Sem detalhes", "webhook_response_none_NONE": "No details",
"webhook_delivery_JSON": "JSON", "webhook_delivery_JSON": "JSON",
"actions": "A\u00e7\u00f5es", "actions": "A\u00e7\u00f5es",
"meta_data": "Meta dados", "meta_data": "Meta dados",
"webhook_messages": "Mensagem do webhook", "webhook_messages": "Webhook message",
"inactive": "Inativo", "inactive": "Inativo",
"no_webhook_messages": "N\u00e3o h\u00e1 mensagens de webhook", "no_webhook_messages": "There are no webhook messages",
"inspect": "Inspecionar", "inspect": "Inspect",
"create_new_webhook": "Criar novo webhook", "create_new_webhook": "Create new webhook",
"webhooks": "Webhooks", "webhooks": "Webhooks",
"webhook_trigger_form_help": "Indica em que evento o webhook ser\u00e1 acionado", "webhook_trigger_form_help": "Indicate on what event the webhook will trigger",
"webhook_response_form_help": "Indica que o webhook dever\u00e1 enviar para a URL.", "webhook_response_form_help": "Indicate what the webhook must submit to the URL.",
"webhook_delivery_form_help": "Em que formato o webhook dever\u00e1 entregar os dados.", "webhook_delivery_form_help": "Which format the webhook must deliver data in.",
"webhook_active_form_help": "O webhook dever\u00e1 estar ativo ou n\u00e3o ser\u00e1 chamado.", "webhook_active_form_help": "The webhook must be active or it won't be called.",
"edit_webhook_js": "Editar webhook \"{title}\"", "edit_webhook_js": "Edit webhook \"{title}\"",
"webhook_was_triggered": "O webhook foi acionado na transa\u00e7\u00e3o indicada. Voc\u00ea pode atualizar esta p\u00e1gina para ver os resultados.", "webhook_was_triggered": "The webhook was triggered on the indicated transaction. You can refresh this page to see the results.",
"view_message": "Ver mensagem", "view_message": "View message",
"view_attempts": "Ver tentativas que falharam", "view_attempts": "View failed attempts",
"message_content_title": "Conte\u00fado da mensagem do webhook", "message_content_title": "Webhook message content",
"message_content_help": "Este \u00e9 o conte\u00fado da mensagem enviada (ou a tentativa) usando este webhook.", "message_content_help": "This is the content of the message that was sent (or tried) using this webhook.",
"attempt_content_title": "Tentativas do webhook", "attempt_content_title": "Webhook attempts",
"attempt_content_help": "Estas s\u00e3o todas as tentativas mal sucedidas do webhook enviar mensagem para a URL configurada. Depois de algum tempo, Firefly III parar\u00e1 de tentar.", "attempt_content_help": "These are all the unsuccessful attempts of this webhook message to submit to the configured URL. After some time, Firefly III will stop trying.",
"no_attempts": "N\u00e3o h\u00e1 tentativas mal sucedidas. Esta \u00e9 uma coisa boa!", "no_attempts": "There are no unsuccessful attempts. That's a good thing!",
"webhook_attempt_at": "Tentativa em {moment}", "webhook_attempt_at": "Attempt at {moment}",
"logs": "Registros", "logs": "Logs",
"response": "Resposta", "response": "Response",
"visit_webhook_url": "Acesse a URL do webhook", "visit_webhook_url": "Visit webhook URL",
"reset_webhook_secret": "Redefinir chave do webhook" "reset_webhook_secret": "Reset webhook secret"
}, },
"form": { "form": {
"url": "link", "url": "link",
@@ -135,20 +132,20 @@
"payment_date": "Data de pagamento", "payment_date": "Data de pagamento",
"invoice_date": "Data da Fatura", "invoice_date": "Data da Fatura",
"internal_reference": "Refer\u00eancia interna", "internal_reference": "Refer\u00eancia interna",
"webhook_response": "Resposta", "webhook_response": "Response",
"webhook_trigger": "Gatilho", "webhook_trigger": "Trigger",
"webhook_delivery": "Entrega" "webhook_delivery": "Delivery"
}, },
"list": { "list": {
"active": "Est\u00e1 ativo?", "active": "Est\u00e1 ativo?",
"trigger": "Gatilho", "trigger": "Trigger",
"response": "Resposta", "response": "Response",
"delivery": "Entrega", "delivery": "Delivery",
"url": "URL", "url": "URL",
"secret": "Chave" "secret": "Secret"
}, },
"config": { "config": {
"html_language": "pt-br", "html_language": "pt-br",
"date_time_fns": "dd 'de' MMMM 'de' yyyy, '\u00e0s' HH:mm:ss" "date_time_fns": "MMMM do, yyyy @ HH:mm:ss"
} }
} }

View File

@@ -231,42 +231,42 @@ return [
// Webhooks // Webhooks
'webhooks' => 'Webhooks', 'webhooks' => 'Webhooks',
'webhooks_breadcrumb' => 'Webhooks', 'webhooks_breadcrumb' => 'Webhooks',
'no_webhook_messages' => 'Não há mensagens de webhook', 'no_webhook_messages' => 'There are no webhook messages',
'webhook_trigger_STORE_TRANSACTION' => 'Após criação da transação', 'webhook_trigger_STORE_TRANSACTION' => 'After transaction creation',
'webhook_trigger_UPDATE_TRANSACTION' => 'Após atualização da transação', 'webhook_trigger_UPDATE_TRANSACTION' => 'After transaction update',
'webhook_trigger_DESTROY_TRANSACTION' => 'Após exclusão da transação', 'webhook_trigger_DESTROY_TRANSACTION' => 'After transaction delete',
'webhook_response_TRANSACTIONS' => 'Detalhes da transação', 'webhook_response_TRANSACTIONS' => 'Transaction details',
'webhook_response_ACCOUNTS' => 'Detalhes da conta', 'webhook_response_ACCOUNTS' => 'Account details',
'webhook_response_none_NONE' => 'Sem detalhes', 'webhook_response_none_NONE' => 'No details',
'webhook_delivery_JSON' => 'JSON', 'webhook_delivery_JSON' => 'JSON',
'inspect' => 'Inspecionar', 'inspect' => 'Inspect',
'create_new_webhook' => 'Criar novo webhook', 'create_new_webhook' => 'Create new webhook',
'webhooks_create_breadcrumb' => 'Criar novo webhook', 'webhooks_create_breadcrumb' => 'Create new webhook',
'webhook_trigger_form_help' => 'Indica em que evento o webhook será acionado', 'webhook_trigger_form_help' => 'Indicate on what event the webhook will trigger',
'webhook_response_form_help' => 'Indica que o webhook deverá enviar para a URL.', 'webhook_response_form_help' => 'Indicate what the webhook must submit to the URL.',
'webhook_delivery_form_help' => 'Em que formato o webhook deverá entregar os dados.', 'webhook_delivery_form_help' => 'Which format the webhook must deliver data in.',
'webhook_active_form_help' => 'O webhook deverá estar ativo ou não será chamado.', 'webhook_active_form_help' => 'The webhook must be active or it won\'t be called.',
'stored_new_webhook' => 'Novo webhook armazenado: ":title"', 'stored_new_webhook' => 'Stored new webhook ":title"',
'delete_webhook' => 'Excluir webhook', 'delete_webhook' => 'Delete webhook',
'deleted_webhook' => 'Webhook ":title" excluído', 'deleted_webhook' => 'Deleted webhook ":title"',
'edit_webhook' => 'Editar webhook ":title"', 'edit_webhook' => 'Edit webhook ":title"',
'updated_webhook' => 'Webhook ":title" atualizado', 'updated_webhook' => 'Updated webhook ":title"',
'edit_webhook_js' => 'Editar webhook "{title}"', 'edit_webhook_js' => 'Edit webhook "{title}"',
'show_webhook' => 'Webhook ":title"', 'show_webhook' => 'Webhook ":title"',
'webhook_was_triggered' => 'O webhook foi acionado na transação indicada. Você pode atualizar esta página para ver os resultados.', 'webhook_was_triggered' => 'The webhook was triggered on the indicated transaction. You can refresh this page to see the results.',
'webhook_messages' => 'Mensagem do webhook', 'webhook_messages' => 'Webhook message',
'view_message' => 'Ver mensagem', 'view_message' => 'View message',
'view_attempts' => 'Ver tentativas que falharam', 'view_attempts' => 'View failed attempts',
'message_content_title' => 'Conteúdo da mensagem do webhook', 'message_content_title' => 'Webhook message content',
'message_content_help' => 'Este é o conteúdo da mensagem enviada (ou a tentativa) usando este webhook.', 'message_content_help' => 'This is the content of the message that was sent (or tried) using this webhook.',
'attempt_content_title' => 'Tentativas do webhook', 'attempt_content_title' => 'Webhook attempts',
'attempt_content_help' => 'Estas são todas as tentativas mal sucedidas do webhook enviar mensagem para a URL configurada. Depois de algum tempo, Firefly III parará de tentar.', 'attempt_content_help' => 'These are all the unsuccessful attempts of this webhook message to submit to the configured URL. After some time, Firefly III will stop trying.',
'no_attempts' => 'Não há tentativas mal sucedidas. Esta é uma coisa boa!', 'no_attempts' => 'There are no unsuccessful attempts. That\'s a good thing!',
'webhook_attempt_at' => 'Tentativa em {moment}', 'webhook_attempt_at' => 'Attempt at {moment}',
'logs' => 'Registros', 'logs' => 'Logs',
'response' => 'Resposta', 'response' => 'Response',
'visit_webhook_url' => 'Acesse a URL do webhook', 'visit_webhook_url' => 'Visit webhook URL',
'reset_webhook_secret' => 'Redefinir chave do webhook', 'reset_webhook_secret' => 'Reset webhook secret',
// API access // API access
'authorization_request' => 'Firefly III v:version Pedido de autorização', 'authorization_request' => 'Firefly III v:version Pedido de autorização',
@@ -325,24 +325,24 @@ return [
// old // old
'search_modifier_date_on' => 'A data da transação é ":value"', 'search_modifier_date_on' => 'A data da transação é ":value"',
'search_modifier_not_date_on' => 'A data da transação não é ":value"', 'search_modifier_not_date_on' => 'Transaction date is not ":value"',
'search_modifier_reconciled' => 'Transação está reconciliada', 'search_modifier_reconciled' => 'Transaction is reconciled',
'search_modifier_not_reconciled' => 'Transação não está reconciliada', 'search_modifier_not_reconciled' => 'Transaction is not reconciled',
'search_modifier_id' => 'O ID da transação é ":value"', 'search_modifier_id' => 'O ID da transação é ":value"',
'search_modifier_not_id' => 'O ID da transação não é ":value"', 'search_modifier_not_id' => 'Transaction ID is not ":value"',
'search_modifier_date_before' => 'Data da transação é anterior ou em ":value"', 'search_modifier_date_before' => 'Data da transação é anterior ou em ":value"',
'search_modifier_date_after' => 'Data da transação é posterior ou em ":value"', 'search_modifier_date_after' => 'Data da transação é posterior ou em ":value"',
'search_modifier_external_id_is' => 'O ID externo é ":value"', 'search_modifier_external_id_is' => 'O ID externo é ":value"',
'search_modifier_not_external_id_is' => 'ID Externo não é ":value"', 'search_modifier_not_external_id_is' => 'External ID is not ":value"',
'search_modifier_no_external_url' => 'A transação não tem URL externa', 'search_modifier_no_external_url' => 'A transação não tem URL externa',
'search_modifier_not_any_external_url' => 'A transação não tem URL externa', 'search_modifier_not_any_external_url' => 'The transaction has no external URL',
'search_modifier_any_external_url' => 'A transação deve ter uma URL externa (qualquer)', 'search_modifier_any_external_url' => 'A transação deve ter uma URL externa (qualquer)',
'search_modifier_not_no_external_url' => 'A transação deve ter uma URL externa (qualquer)', 'search_modifier_not_no_external_url' => 'The transaction must have a (any) external URL',
'search_modifier_internal_reference_is' => 'A referência interna é ":value"', 'search_modifier_internal_reference_is' => 'A referência interna é ":value"',
'search_modifier_not_internal_reference_is' => 'Referência interna não é ":value"', 'search_modifier_not_internal_reference_is' => 'Internal reference is not ":value"',
'search_modifier_description_starts' => 'Descrição começa com ":value"', 'search_modifier_description_starts' => 'Description starts with ":value"',
'search_modifier_not_description_starts' => 'Descrição não começa com ":value"', 'search_modifier_not_description_starts' => 'Description does not start with ":value"',
'search_modifier_description_ends' => 'Descrição termina em ":value"', 'search_modifier_description_ends' => 'Description ends on ":value"',
'search_modifier_not_description_ends' => 'Description does not end on ":value"', 'search_modifier_not_description_ends' => 'Description does not end on ":value"',
'search_modifier_description_contains' => 'Descrição contém ":value"', 'search_modifier_description_contains' => 'Descrição contém ":value"',
'search_modifier_not_description_contains' => 'Description does not contain ":value"', 'search_modifier_not_description_contains' => 'Description does not contain ":value"',
@@ -432,19 +432,19 @@ return [
'search_modifier_category_is' => 'A categoria é ":value"', 'search_modifier_category_is' => 'A categoria é ":value"',
'search_modifier_not_category_is' => 'Category is not ":value"', 'search_modifier_not_category_is' => 'Category is not ":value"',
'search_modifier_budget_is' => 'O orçamento é ":value"', 'search_modifier_budget_is' => 'O orçamento é ":value"',
'search_modifier_not_budget_is' => 'Orçamento não é ":value"', 'search_modifier_not_budget_is' => 'Budget is not ":value"',
'search_modifier_bill_is' => 'Conta é ":value"', 'search_modifier_bill_is' => 'Conta é ":value"',
'search_modifier_not_bill_is' => 'Fatura não é ":value"', 'search_modifier_not_bill_is' => 'Bill is not ":value"',
'search_modifier_transaction_type' => 'O tipo da transação é ":value"', 'search_modifier_transaction_type' => 'O tipo da transação é ":value"',
'search_modifier_not_transaction_type' => 'Tipo de transação não é ":value"', 'search_modifier_not_transaction_type' => 'Transaction type is not ":value"',
'search_modifier_tag_is' => 'A etiqueta é ":value"', 'search_modifier_tag_is' => 'A etiqueta é ":value"',
'search_modifier_not_tag_is' => 'Nenhuma tag é ":value"', 'search_modifier_not_tag_is' => 'No tag is ":value"',
'search_modifier_date_on_year' => 'Transação é no ano de ":value"', 'search_modifier_date_on_year' => 'Transação é no ano de ":value"',
'search_modifier_not_date_on_year' => 'Transação não está no ano ":value"', 'search_modifier_not_date_on_year' => 'Transaction is not in year ":value"',
'search_modifier_date_on_month' => 'Transação é no mês de ":value"', 'search_modifier_date_on_month' => 'Transação é no mês de ":value"',
'search_modifier_not_date_on_month' => 'Transação não está em mês ":value"', 'search_modifier_not_date_on_month' => 'Transaction is not in month ":value"',
'search_modifier_date_on_day' => 'Transação é no dia do mês de ":value"', 'search_modifier_date_on_day' => 'Transação é no dia do mês de ":value"',
'search_modifier_not_date_on_day' => 'Transação não está no dia do mês ":value"', 'search_modifier_not_date_on_day' => 'Transaction is not on day of month ":value"',
'search_modifier_date_before_year' => 'Transação é antes ou no ano de ":value"', 'search_modifier_date_before_year' => 'Transação é antes ou no ano de ":value"',
'search_modifier_date_before_month' => 'Transação é antes ou no mês de ":value"', 'search_modifier_date_before_month' => 'Transação é antes ou no mês de ":value"',
'search_modifier_date_before_day' => 'A transação é antes ou no dia do mês ":value"', 'search_modifier_date_before_day' => 'A transação é antes ou no dia do mês ":value"',
@@ -455,86 +455,86 @@ return [
// new // new
'search_modifier_tag_is_not' => 'Nenhuma tag é ":value"', 'search_modifier_tag_is_not' => 'Nenhuma tag é ":value"',
'search_modifier_not_tag_is_not' => 'A tag é ":value"', 'search_modifier_not_tag_is_not' => 'Tag is ":value"',
'search_modifier_account_is' => 'Ou a conta é ":value"', 'search_modifier_account_is' => 'Ou a conta é ":value"',
'search_modifier_not_account_is' => 'Nenhuma conta é ":value"', 'search_modifier_not_account_is' => 'Neither account is ":value"',
'search_modifier_account_contains' => 'Ou a conta contém ":value"', 'search_modifier_account_contains' => 'Ou a conta contém ":value"',
'search_modifier_not_account_contains' => 'Nenhuma conta contém ":value"', 'search_modifier_not_account_contains' => 'Neither account contains ":value"',
'search_modifier_account_ends' => 'Ou a conta termina com ":value"', 'search_modifier_account_ends' => 'Ou a conta termina com ":value"',
'search_modifier_not_account_ends' => 'Nenhuma conta termina com ":value"', 'search_modifier_not_account_ends' => 'Neither account ends with ":value"',
'search_modifier_account_starts' => 'Ou a conta começa com ":value"', 'search_modifier_account_starts' => 'Ou a conta começa com ":value"',
'search_modifier_not_account_starts' => 'Nenhuma conta começa com ":value"', 'search_modifier_not_account_starts' => 'Neither account starts with ":value"',
'search_modifier_account_nr_is' => 'Ou número da conta / IBAN é ":value"', 'search_modifier_account_nr_is' => 'Ou número da conta / IBAN é ":value"',
'search_modifier_not_account_nr_is' => 'Nenhum número de conta / IBAN é ":value"', 'search_modifier_not_account_nr_is' => 'Neither account number / IBAN is ":value"',
'search_modifier_account_nr_contains' => 'Ou número da conta / IBAN contém ":value"', 'search_modifier_account_nr_contains' => 'Ou número da conta / IBAN contém ":value"',
'search_modifier_not_account_nr_contains' => 'Nenhum número de conta / IBAN contém ":value"', 'search_modifier_not_account_nr_contains' => 'Neither account number / IBAN contains ":value"',
'search_modifier_account_nr_ends' => 'Ou número de conta / IBAN termina com ":value"', 'search_modifier_account_nr_ends' => 'Ou número de conta / IBAN termina com ":value"',
'search_modifier_not_account_nr_ends' => 'Nenhum número de conta / IBAN termina com ":value"', 'search_modifier_not_account_nr_ends' => 'Neither account number / IBAN ends with ":value"',
'search_modifier_account_nr_starts' => 'Ou número da conta / IBAN começa com ":value"', 'search_modifier_account_nr_starts' => 'Ou número da conta / IBAN começa com ":value"',
'search_modifier_not_account_nr_starts' => 'Nenhum número de conta / IBAN começa com ":value"', 'search_modifier_not_account_nr_starts' => 'Neither account number / IBAN starts with ":value"',
'search_modifier_category_contains' => 'Categoria contém ":value"', 'search_modifier_category_contains' => 'Categoria contém ":value"',
'search_modifier_not_category_contains' => 'Categoria não contém ":value"', 'search_modifier_not_category_contains' => 'Category does not contain ":value"',
'search_modifier_category_ends' => 'Categoria termina em ":value"', 'search_modifier_category_ends' => 'Category ends on ":value"',
'search_modifier_not_category_ends' => 'Categoria não termina em ":value"', 'search_modifier_not_category_ends' => 'Category does not end on ":value"',
'search_modifier_category_starts' => 'Categoria começa com ":value"', 'search_modifier_category_starts' => 'Categoria começa com ":value"',
'search_modifier_not_category_starts' => 'Categoria não começa com ":value"', 'search_modifier_not_category_starts' => 'Category does not start with ":value"',
'search_modifier_budget_contains' => 'Orçamento contém ":value"', 'search_modifier_budget_contains' => 'Orçamento contém ":value"',
'search_modifier_not_budget_contains' => 'Orçamento não contém ":value"', 'search_modifier_not_budget_contains' => 'Budget does not contain ":value"',
'search_modifier_budget_ends' => 'Orçamento termina com ":value"', 'search_modifier_budget_ends' => 'Orçamento termina com ":value"',
'search_modifier_not_budget_ends' => 'Orçamento não termina em ":value"', 'search_modifier_not_budget_ends' => 'Budget does not end on ":value"',
'search_modifier_budget_starts' => 'Orçamento começa com ":value"', 'search_modifier_budget_starts' => 'Orçamento começa com ":value"',
'search_modifier_not_budget_starts' => 'Orçamento não começa com ":value"', 'search_modifier_not_budget_starts' => 'Budget does not start with ":value"',
'search_modifier_bill_contains' => 'Fatura contém ":value"', 'search_modifier_bill_contains' => 'Fatura contém ":value"',
'search_modifier_not_bill_contains' => 'Fatura não contém ":value"', 'search_modifier_not_bill_contains' => 'Bill does not contain ":value"',
'search_modifier_bill_ends' => 'Fatura termina com ":value"', 'search_modifier_bill_ends' => 'Fatura termina com ":value"',
'search_modifier_not_bill_ends' => 'Fatura não termina em ":value"', 'search_modifier_not_bill_ends' => 'Bill does not end on ":value"',
'search_modifier_bill_starts' => 'Fatura começa com ":value"', 'search_modifier_bill_starts' => 'Fatura começa com ":value"',
'search_modifier_not_bill_starts' => 'Fatura não começa com ":value"', 'search_modifier_not_bill_starts' => 'Bill does not start with ":value"',
'search_modifier_external_id_contains' => 'ID Externo contém ":value"', 'search_modifier_external_id_contains' => 'ID Externo contém ":value"',
'search_modifier_not_external_id_contains' => 'ID Externo não contém ":value"', 'search_modifier_not_external_id_contains' => 'External ID does not contain ":value"',
'search_modifier_external_id_ends' => 'ID Externo termina com ":value"', 'search_modifier_external_id_ends' => 'ID Externo termina com ":value"',
'search_modifier_not_external_id_ends' => 'ID Externo não termina com ":value"', 'search_modifier_not_external_id_ends' => 'External ID does not end with ":value"',
'search_modifier_external_id_starts' => 'ID Externo começa com ":value"', 'search_modifier_external_id_starts' => 'ID Externo começa com ":value"',
'search_modifier_not_external_id_starts' => 'ID Externo não inicia com ":value"', 'search_modifier_not_external_id_starts' => 'External ID does not start with ":value"',
'search_modifier_internal_reference_contains' => 'Referência interna contém ":value"', 'search_modifier_internal_reference_contains' => 'Referência interna contém ":value"',
'search_modifier_not_internal_reference_contains' => 'Referência interna não contém ":value"', 'search_modifier_not_internal_reference_contains' => 'Internal reference does not contain ":value"',
'search_modifier_internal_reference_ends' => 'Referência interna termina com ":value"', 'search_modifier_internal_reference_ends' => 'Referência interna termina com ":value"',
'search_modifier_internal_reference_starts' => 'Referência interna começa com ":value"', 'search_modifier_internal_reference_starts' => 'Referência interna começa com ":value"',
'search_modifier_not_internal_reference_ends' => 'Referência interna não termina com ":value"', 'search_modifier_not_internal_reference_ends' => 'Internal reference does not end with ":value"',
'search_modifier_not_internal_reference_starts' => 'Referência interna não inicia com ":value"', 'search_modifier_not_internal_reference_starts' => 'Internal reference does not start with ":value"',
'search_modifier_external_url_is' => 'URL externa é ":value"', 'search_modifier_external_url_is' => 'URL externa é ":value"',
'search_modifier_not_external_url_is' => 'URL externa não é ":value"', 'search_modifier_not_external_url_is' => 'External URL is not ":value"',
'search_modifier_external_url_contains' => 'URL externa contém ":value"', 'search_modifier_external_url_contains' => 'URL externa contém ":value"',
'search_modifier_not_external_url_contains' => 'URL externa não contém ":value"', 'search_modifier_not_external_url_contains' => 'External URL does not contain ":value"',
'search_modifier_external_url_ends' => 'URL externa termina com ":value"', 'search_modifier_external_url_ends' => 'URL externa termina com ":value"',
'search_modifier_not_external_url_ends' => 'URL externa não termina com ":value"', 'search_modifier_not_external_url_ends' => 'External URL does not end with ":value"',
'search_modifier_external_url_starts' => 'URL externa começa com ":value"', 'search_modifier_external_url_starts' => 'URL externa começa com ":value"',
'search_modifier_not_external_url_starts' => 'URL externa não inicia com ":value"', 'search_modifier_not_external_url_starts' => 'External URL does not start with ":value"',
'search_modifier_has_no_attachments' => 'A transação não tem anexos', 'search_modifier_has_no_attachments' => 'A transação não tem anexos',
'search_modifier_not_has_no_attachments' => 'A transação tem anexos', 'search_modifier_not_has_no_attachments' => 'Transaction has attachments',
'search_modifier_not_has_attachments' => 'A transação não tem anexos', 'search_modifier_not_has_attachments' => 'Transaction has no attachments',
'search_modifier_account_is_cash' => 'Qualquer outra conta é a conta em "(dinheiro)".', 'search_modifier_account_is_cash' => 'Either account is the "(cash)" account.',
'search_modifier_not_account_is_cash' => 'Nenhuma das contas é a conta em "(dinheiro)".', 'search_modifier_not_account_is_cash' => 'Neither account is the "(cash)" account.',
'search_modifier_journal_id' => 'O ID do registro é ":value"', 'search_modifier_journal_id' => 'O ID do registro é ":value"',
'search_modifier_not_journal_id' => 'O ID do diário não é ":value"', 'search_modifier_not_journal_id' => 'The journal ID is not ":value"',
'search_modifier_recurrence_id' => 'O ID da transação recorrente é ":value"', 'search_modifier_recurrence_id' => 'O ID da transação recorrente é ":value"',
'search_modifier_not_recurrence_id' => 'O ID de transação recorrente não é ":value"', 'search_modifier_not_recurrence_id' => 'The recurring transaction ID is not ":value"',
'search_modifier_foreign_amount_is' => 'A quantidade em moeda estrangeira é ":value"', 'search_modifier_foreign_amount_is' => 'A quantidade em moeda estrangeira é ":value"',
'search_modifier_not_foreign_amount_is' => 'A quantidade em moeda estrangeira não é ":value"', 'search_modifier_not_foreign_amount_is' => 'The foreign amount is not ":value"',
'search_modifier_foreign_amount_less' => 'A quantidade em moeda estrangeira é menor que ":value"', 'search_modifier_foreign_amount_less' => 'A quantidade em moeda estrangeira é menor que ":value"',
'search_modifier_not_foreign_amount_more' => 'A quantidade em moeda estrangeira é menor que ":value"', 'search_modifier_not_foreign_amount_more' => 'The foreign amount is less than ":value"',
'search_modifier_not_foreign_amount_less' => 'A quantidade em moeda estrangeira é maior que ":value"', 'search_modifier_not_foreign_amount_less' => 'The foreign amount is more than ":value"',
'search_modifier_foreign_amount_more' => 'A quantidade em moeda estrangeira é maior que ":value"', 'search_modifier_foreign_amount_more' => 'A quantidade em moeda estrangeira é maior que ":value"',
'search_modifier_exists' => 'Transação existe (qualquer transação)', 'search_modifier_exists' => 'Transaction exists (any transaction)',
'search_modifier_not_exists' => 'Transação não existe (sem transação)', 'search_modifier_not_exists' => 'Transaction does not exist (no transaction)',
// date fields // date fields
'search_modifier_interest_date_on' => 'Data de juros da transação é ":value"', 'search_modifier_interest_date_on' => 'Data de juros da transação é ":value"',
'search_modifier_not_interest_date_on' => 'Data de juros da transação não é ":value"', 'search_modifier_not_interest_date_on' => 'Transaction interest date is not ":value"',
'search_modifier_interest_date_on_year' => 'Data de juros da transação está no ano de ":value"', 'search_modifier_interest_date_on_year' => 'Data de juros da transação está no ano de ":value"',
'search_modifier_not_interest_date_on_year' => 'Data de juros da transação não está no ano ":value"', 'search_modifier_not_interest_date_on_year' => 'Transaction interest date is not in year ":value"',
'search_modifier_interest_date_on_month' => 'Data de juros da transação é no mês de ":value"', 'search_modifier_interest_date_on_month' => 'Data de juros da transação é no mês de ":value"',
'search_modifier_not_interest_date_on_month' => 'Data de juros da transação não está no mês ":value"', 'search_modifier_not_interest_date_on_month' => 'Transaction interest date is not in month ":value"',
'search_modifier_interest_date_on_day' => 'Data de juros da transação é no dia do mês de ":value"', 'search_modifier_interest_date_on_day' => 'Data de juros da transação é no dia do mês de ":value"',
'search_modifier_not_interest_date_on_day' => 'Transaction interest date is not on day of month ":value"', 'search_modifier_not_interest_date_on_day' => 'Transaction interest date is not on day of month ":value"',
'search_modifier_interest_date_before_year' => 'Data de juros da transação é antes ou no ano de ":value"', 'search_modifier_interest_date_before_year' => 'Data de juros da transação é antes ou no ano de ":value"',
@@ -1038,56 +1038,56 @@ return [
'rule_trigger_not_destination_account_id' => 'Destination account ID is not ":trigger_value"', 'rule_trigger_not_destination_account_id' => 'Destination account ID is not ":trigger_value"',
'rule_trigger_not_transaction_type' => 'Transaction type is not ":trigger_value"', 'rule_trigger_not_transaction_type' => 'Transaction type is not ":trigger_value"',
'rule_trigger_not_tag_is' => 'Tag is not ":trigger_value"', 'rule_trigger_not_tag_is' => 'Tag is not ":trigger_value"',
'rule_trigger_not_tag_is_not' => 'A tag é ":trigger_value"', 'rule_trigger_not_tag_is_not' => 'Tag is ":trigger_value"',
'rule_trigger_not_description_is' => 'Descrição não é ":trigger_value"', 'rule_trigger_not_description_is' => 'Description is not ":trigger_value"',
'rule_trigger_not_description_contains' => 'Descrição não contém', 'rule_trigger_not_description_contains' => 'Description does not contain',
'rule_trigger_not_description_ends' => 'Descrição não termina com ":trigger_value"', 'rule_trigger_not_description_ends' => 'Description does not end with ":trigger_value"',
'rule_trigger_not_description_starts' => 'Descrição não começa com ":trigger_value"', 'rule_trigger_not_description_starts' => 'Description does not start with ":trigger_value"',
'rule_trigger_not_notes_is' => 'As notas não são ":trigger_value"', 'rule_trigger_not_notes_is' => 'Notes are not ":trigger_value"',
'rule_trigger_not_notes_contains' => 'As notas não contêm ":trigger_value"', 'rule_trigger_not_notes_contains' => 'Notes do not contain ":trigger_value"',
'rule_trigger_not_notes_ends' => 'As notas não terminam em ":trigger_value"', 'rule_trigger_not_notes_ends' => 'Notes do not end on ":trigger_value"',
'rule_trigger_not_notes_starts' => 'As notas não começam com ":trigger_value"', 'rule_trigger_not_notes_starts' => 'Notes do not start with ":trigger_value"',
'rule_trigger_not_source_account_is' => 'Conta de origem não é ":trigger_value"', 'rule_trigger_not_source_account_is' => 'Source account is not ":trigger_value"',
'rule_trigger_not_source_account_contains' => 'Conta de origem não contém ":trigger_value"', 'rule_trigger_not_source_account_contains' => 'Source account does not contain ":trigger_value"',
'rule_trigger_not_source_account_ends' => 'Conta de origem não termina em ":trigger_value"', 'rule_trigger_not_source_account_ends' => 'Source account does not end on ":trigger_value"',
'rule_trigger_not_source_account_starts' => 'Conta de origem não começa com ":trigger_value"', 'rule_trigger_not_source_account_starts' => 'Source account does not start with ":trigger_value"',
'rule_trigger_not_source_account_nr_is' => 'Número da conta de origem / IBAN não é ":trigger_value"', 'rule_trigger_not_source_account_nr_is' => 'Source account number / IBAN is not ":trigger_value"',
'rule_trigger_not_source_account_nr_contains' => 'Número da conta de origem / IBAN não contém ":trigger_value"', 'rule_trigger_not_source_account_nr_contains' => 'Source account number / IBAN does not contain ":trigger_value"',
'rule_trigger_not_source_account_nr_ends' => 'Número da conta de origem / IBAN não termina em ":trigger_value"', 'rule_trigger_not_source_account_nr_ends' => 'Source account number / IBAN does not end on ":trigger_value"',
'rule_trigger_not_source_account_nr_starts' => 'Número da conta de origem / IBAN não começa com ":trigger_value"', 'rule_trigger_not_source_account_nr_starts' => 'Source account number / IBAN does not start with ":trigger_value"',
'rule_trigger_not_destination_account_is' => 'Conta de destino não é ":trigger_value"', 'rule_trigger_not_destination_account_is' => 'Destination account is not ":trigger_value"',
'rule_trigger_not_destination_account_contains' => 'Conta de destino não contém ":trigger_value"', 'rule_trigger_not_destination_account_contains' => 'Destination account does not contain ":trigger_value"',
'rule_trigger_not_destination_account_ends' => 'Conta de destino não termina em ":trigger_value"', 'rule_trigger_not_destination_account_ends' => 'Destination account does not end on ":trigger_value"',
'rule_trigger_not_destination_account_starts' => 'Conta de destino não começa com ":trigger_value"', 'rule_trigger_not_destination_account_starts' => 'Destination account does not start with ":trigger_value"',
'rule_trigger_not_destination_account_nr_is' => 'Número da conta de destino / IBAN não é ":trigger_value"', 'rule_trigger_not_destination_account_nr_is' => 'Destination account number / IBAN is not ":trigger_value"',
'rule_trigger_not_destination_account_nr_contains' => 'Número da conta de destino / IBAN não contém ":trigger_value"', 'rule_trigger_not_destination_account_nr_contains' => 'Destination account number / IBAN does not contain ":trigger_value"',
'rule_trigger_not_destination_account_nr_ends' => 'Número da conta de destino / IBAN não termina em ":trigger_value"', 'rule_trigger_not_destination_account_nr_ends' => 'Destination account number / IBAN does not end on ":trigger_value"',
'rule_trigger_not_destination_account_nr_starts' => 'Número da conta de destino / IBAN não começa com ":trigger_value"', 'rule_trigger_not_destination_account_nr_starts' => 'Destination account number / IBAN does not start with ":trigger_value"',
'rule_trigger_not_account_is' => 'Nenhuma conta é ":trigger_value"', 'rule_trigger_not_account_is' => 'Neither account is ":trigger_value"',
'rule_trigger_not_account_contains' => 'Nenhuma conta contém ":trigger_value"', 'rule_trigger_not_account_contains' => 'Neither account contains ":trigger_value"',
'rule_trigger_not_account_ends' => 'Nenhuma conta termina em ":trigger_value"', 'rule_trigger_not_account_ends' => 'Neither account ends on ":trigger_value"',
'rule_trigger_not_account_starts' => 'Nenhuma conta começa com ":trigger_value"', 'rule_trigger_not_account_starts' => 'Neither account starts with ":trigger_value"',
'rule_trigger_not_account_nr_is' => 'Nenhum número de conta / IBAN é ":trigger_value"', 'rule_trigger_not_account_nr_is' => 'Neither account number / IBAN is ":trigger_value"',
'rule_trigger_not_account_nr_contains' => 'Nenhum número de conta / IBAN contém ":trigger_value"', 'rule_trigger_not_account_nr_contains' => 'Neither account number / IBAN contains ":trigger_value"',
'rule_trigger_not_account_nr_ends' => 'Nenhum número de conta / IBAN termina em ":trigger_value"', 'rule_trigger_not_account_nr_ends' => 'Neither account number / IBAN ends on ":trigger_value"',
'rule_trigger_not_account_nr_starts' => 'Nenhum número de conta / IBAN começa com ":trigger_value"', 'rule_trigger_not_account_nr_starts' => 'Neither account number / IBAN starts with ":trigger_value"',
'rule_trigger_not_category_is' => 'Nenhuma categoria é ":trigger_value"', 'rule_trigger_not_category_is' => 'Neither category is ":trigger_value"',
'rule_trigger_not_category_contains' => 'Nenhuma categoria contém ":trigger_value"', 'rule_trigger_not_category_contains' => 'Neither category contains ":trigger_value"',
'rule_trigger_not_category_ends' => 'Nenhuma categoria termina em ":trigger_value"', 'rule_trigger_not_category_ends' => 'Neither category ends on ":trigger_value"',
'rule_trigger_not_category_starts' => 'Nenhuma categoria começa com ":trigger_value"', 'rule_trigger_not_category_starts' => 'Neither category starts with ":trigger_value"',
'rule_trigger_not_budget_is' => 'Nenhum orçamento é ":trigger_value"', 'rule_trigger_not_budget_is' => 'Neither budget is ":trigger_value"',
'rule_trigger_not_budget_contains' => 'Nenhum orçamento contém ":trigger_value"', 'rule_trigger_not_budget_contains' => 'Neither budget contains ":trigger_value"',
'rule_trigger_not_budget_ends' => 'Nenhum orçamento termina em ":trigger_value"', 'rule_trigger_not_budget_ends' => 'Neither budget ends on ":trigger_value"',
'rule_trigger_not_budget_starts' => 'Nenhum orçamento começa com ":trigger_value"', 'rule_trigger_not_budget_starts' => 'Neither budget starts with ":trigger_value"',
'rule_trigger_not_bill_is' => 'Fatura não é ":trigger_value"', 'rule_trigger_not_bill_is' => 'Bill is not is ":trigger_value"',
'rule_trigger_not_bill_contains' => 'Fatura não contém ":trigger_value"', 'rule_trigger_not_bill_contains' => 'Bill does not contain ":trigger_value"',
'rule_trigger_not_bill_ends' => 'Fatura não termina em ":trigger_value"', 'rule_trigger_not_bill_ends' => 'Bill does not end on ":trigger_value"',
'rule_trigger_not_bill_starts' => 'Fatura não termina com ":trigger_value"', 'rule_trigger_not_bill_starts' => 'Bill does not end with ":trigger_value"',
'rule_trigger_not_external_id_is' => 'ID Externo não é ":trigger_value"', 'rule_trigger_not_external_id_is' => 'External ID is not ":trigger_value"',
'rule_trigger_not_external_id_contains' => 'ID Externo não contém ":trigger_value"', 'rule_trigger_not_external_id_contains' => 'External ID does not contain ":trigger_value"',
'rule_trigger_not_external_id_ends' => 'ID Externo não termina em ":trigger_value"', 'rule_trigger_not_external_id_ends' => 'External ID does not end on ":trigger_value"',
'rule_trigger_not_external_id_starts' => 'ID Externo não inicia com ":trigger_value"', 'rule_trigger_not_external_id_starts' => 'External ID does not start with ":trigger_value"',
'rule_trigger_not_internal_reference_is' => 'Referência interna não é ":trigger_value"', 'rule_trigger_not_internal_reference_is' => 'Internal reference is not ":trigger_value"',
'rule_trigger_not_internal_reference_contains' => 'Internal reference does not contain ":trigger_value"', 'rule_trigger_not_internal_reference_contains' => 'Internal reference does not contain ":trigger_value"',
'rule_trigger_not_internal_reference_ends' => 'Internal reference does not end on ":trigger_value"', 'rule_trigger_not_internal_reference_ends' => 'Internal reference does not end on ":trigger_value"',
'rule_trigger_not_internal_reference_starts' => 'Internal reference does not start with ":trigger_value"', 'rule_trigger_not_internal_reference_starts' => 'Internal reference does not start with ":trigger_value"',
@@ -1344,9 +1344,6 @@ return [
'delete_data_title' => 'Delete data from Firefly III', 'delete_data_title' => 'Delete data from Firefly III',
'permanent_delete_stuff' => 'You can delete stuff from Firefly III. Using the buttons below means that your items will be removed from view and hidden. There is no undo-button for this, but the items may remain in the database where you can salvage them if necessary.', 'permanent_delete_stuff' => 'You can delete stuff from Firefly III. Using the buttons below means that your items will be removed from view and hidden. There is no undo-button for this, but the items may remain in the database where you can salvage them if necessary.',
'other_sessions_logged_out' => 'Todas as suas outras sessões foram desconectadas.', 'other_sessions_logged_out' => 'Todas as suas outras sessões foram desconectadas.',
'delete_unused_accounts' => 'Deleting unused accounts will clean your auto-complete lists.',
'delete_all_unused_accounts' => 'Delete unused accounts',
'deleted_all_unused_accounts' => 'All unused accounts are deleted',
'delete_all_budgets' => 'Excluir TODOS os seus orçamentos', 'delete_all_budgets' => 'Excluir TODOS os seus orçamentos',
'delete_all_categories' => 'Excluir TODAS as suas categorias', 'delete_all_categories' => 'Excluir TODAS as suas categorias',
'delete_all_tags' => 'Excluir TODAS as suas tags', 'delete_all_tags' => 'Excluir TODAS as suas tags',
@@ -1486,9 +1483,6 @@ return [
'title_deposit' => 'Receita / Renda', 'title_deposit' => 'Receita / Renda',
'title_transfer' => 'Transferências', 'title_transfer' => 'Transferências',
'title_transfers' => 'Transferências', 'title_transfers' => 'Transferências',
'submission_options' => 'Submission options',
'apply_rules_checkbox' => 'Apply rules',
'fire_webhooks_checkbox' => 'Fire webhooks',
// convert stuff: // convert stuff:
'convert_is_already_type_Withdrawal' => 'Esta transação é já uma retirada', 'convert_is_already_type_Withdrawal' => 'Esta transação é já uma retirada',

View File

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