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
commit f4af19e121
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
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-access-tokens',
'firefly-iii:remove-bills',
'firefly-iii:fix-negative-limits',
'firefly-iii:enable-currencies',
'firefly-iii:fix-transfer-budgets',
'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-access-tokens',
'firefly-iii:remove-bills',
'firefly-iii:fix-negative-limits',
'firefly-iii:enable-currencies',
'firefly-iii:fix-transfer-budgets',
'firefly-iii:fix-uneven-amount',

View File

@ -288,18 +288,27 @@ class AccountFactory
$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 */
$factory = app(AccountMetaFactory::class);
foreach ($fields as $field) {
// if the field is set but NULL, skip it.
// if the field is set but "", update it.
if (array_key_exists($field, $data) && null !== $data[$field]) {
// convert boolean value:
if (is_bool($data[$field]) && false === $data[$field]) {
$data[$field] = 0;
}
if (is_bool($data[$field]) && true === $data[$field]) {
if (true === $data[$field]) {
$data[$field] = 1;
}

View File

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

View File

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

View File

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

View File

@ -115,6 +115,16 @@ trait AccountServiceTrait
$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:
if (!array_key_exists('account_role', $data)) {
$data['account_role'] = null;

View File

@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
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
### Added

View File

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

45
composer.lock generated
View File

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

View File

@ -219,6 +219,13 @@ return [
'default_language' => envNonEmpty('DEFAULT_LANGUAGE', 'en_US'),
'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
'valid_attachment_models' => [
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_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",
"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_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",
@ -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_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.",
"webhook_trigger_STORE_TRANSACTION": "Ap\u00f3s cria\u00e7\u00e3o da transa\u00e7\u00e3o",
"webhook_trigger_UPDATE_TRANSACTION": "Ap\u00f3s atualiza\u00e7\u00e3o da transa\u00e7\u00e3o",
"webhook_trigger_DESTROY_TRANSACTION": "Ap\u00f3s exclus\u00e3o da transa\u00e7\u00e3o",
"webhook_response_TRANSACTIONS": "Detalhes da transa\u00e7\u00e3o",
"webhook_response_ACCOUNTS": "Detalhes da conta",
"webhook_response_none_NONE": "Sem detalhes",
"webhook_trigger_STORE_TRANSACTION": "After transaction creation",
"webhook_trigger_UPDATE_TRANSACTION": "After transaction update",
"webhook_trigger_DESTROY_TRANSACTION": "After transaction delete",
"webhook_response_TRANSACTIONS": "Transaction details",
"webhook_response_ACCOUNTS": "Account details",
"webhook_response_none_NONE": "No details",
"webhook_delivery_JSON": "JSON",
"actions": "A\u00e7\u00f5es",
"meta_data": "Meta dados",
"webhook_messages": "Mensagem do webhook",
"webhook_messages": "Webhook message",
"inactive": "Inativo",
"no_webhook_messages": "N\u00e3o h\u00e1 mensagens de webhook",
"inspect": "Inspecionar",
"create_new_webhook": "Criar novo webhook",
"no_webhook_messages": "There are no webhook messages",
"inspect": "Inspect",
"create_new_webhook": "Create new webhook",
"webhooks": "Webhooks",
"webhook_trigger_form_help": "Indica em que evento o webhook ser\u00e1 acionado",
"webhook_response_form_help": "Indica que o webhook dever\u00e1 enviar para a URL.",
"webhook_delivery_form_help": "Em que formato o webhook dever\u00e1 entregar os dados.",
"webhook_active_form_help": "O webhook dever\u00e1 estar ativo ou n\u00e3o ser\u00e1 chamado.",
"edit_webhook_js": "Editar 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.",
"view_message": "Ver mensagem",
"view_attempts": "Ver tentativas que falharam",
"message_content_title": "Conte\u00fado da mensagem do webhook",
"message_content_help": "Este \u00e9 o conte\u00fado da mensagem enviada (ou a tentativa) usando este webhook.",
"attempt_content_title": "Tentativas do webhook",
"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.",
"no_attempts": "N\u00e3o h\u00e1 tentativas mal sucedidas. Esta \u00e9 uma coisa boa!",
"webhook_attempt_at": "Tentativa em {moment}",
"logs": "Registros",
"response": "Resposta",
"visit_webhook_url": "Acesse a URL do webhook",
"reset_webhook_secret": "Redefinir chave do webhook"
"webhook_trigger_form_help": "Indicate on what event the webhook will trigger",
"webhook_response_form_help": "Indicate what the webhook must submit to the URL.",
"webhook_delivery_form_help": "Which format the webhook must deliver data in.",
"webhook_active_form_help": "The webhook must be active or it won't be called.",
"edit_webhook_js": "Edit webhook \"{title}\"",
"webhook_was_triggered": "The webhook was triggered on the indicated transaction. You can refresh this page to see the results.",
"view_message": "View message",
"view_attempts": "View failed attempts",
"message_content_title": "Webhook message content",
"message_content_help": "This is the content of the message that was sent (or tried) using this webhook.",
"attempt_content_title": "Webhook attempts",
"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": "There are no unsuccessful attempts. That's a good thing!",
"webhook_attempt_at": "Attempt at {moment}",
"logs": "Logs",
"response": "Response",
"visit_webhook_url": "Visit webhook URL",
"reset_webhook_secret": "Reset webhook secret"
},
"form": {
"url": "link",
@ -135,20 +132,20 @@
"payment_date": "Data de pagamento",
"invoice_date": "Data da Fatura",
"internal_reference": "Refer\u00eancia interna",
"webhook_response": "Resposta",
"webhook_trigger": "Gatilho",
"webhook_delivery": "Entrega"
"webhook_response": "Response",
"webhook_trigger": "Trigger",
"webhook_delivery": "Delivery"
},
"list": {
"active": "Est\u00e1 ativo?",
"trigger": "Gatilho",
"response": "Resposta",
"delivery": "Entrega",
"trigger": "Trigger",
"response": "Response",
"delivery": "Delivery",
"url": "URL",
"secret": "Chave"
"secret": "Secret"
},
"config": {
"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_breadcrumb' => 'Webhooks',
'no_webhook_messages' => 'Não há mensagens de webhook',
'webhook_trigger_STORE_TRANSACTION' => 'Após criação da transação',
'webhook_trigger_UPDATE_TRANSACTION' => 'Após atualização da transação',
'webhook_trigger_DESTROY_TRANSACTION' => 'Após exclusão da transação',
'webhook_response_TRANSACTIONS' => 'Detalhes da transação',
'webhook_response_ACCOUNTS' => 'Detalhes da conta',
'webhook_response_none_NONE' => 'Sem detalhes',
'no_webhook_messages' => 'There are no webhook messages',
'webhook_trigger_STORE_TRANSACTION' => 'After transaction creation',
'webhook_trigger_UPDATE_TRANSACTION' => 'After transaction update',
'webhook_trigger_DESTROY_TRANSACTION' => 'After transaction delete',
'webhook_response_TRANSACTIONS' => 'Transaction details',
'webhook_response_ACCOUNTS' => 'Account details',
'webhook_response_none_NONE' => 'No details',
'webhook_delivery_JSON' => 'JSON',
'inspect' => 'Inspecionar',
'create_new_webhook' => 'Criar novo webhook',
'webhooks_create_breadcrumb' => 'Criar novo webhook',
'webhook_trigger_form_help' => 'Indica em que evento o webhook será acionado',
'webhook_response_form_help' => 'Indica que o webhook deverá enviar para a URL.',
'webhook_delivery_form_help' => 'Em que formato o webhook deverá entregar os dados.',
'webhook_active_form_help' => 'O webhook deverá estar ativo ou não será chamado.',
'stored_new_webhook' => 'Novo webhook armazenado: ":title"',
'delete_webhook' => 'Excluir webhook',
'deleted_webhook' => 'Webhook ":title" excluído',
'edit_webhook' => 'Editar webhook ":title"',
'updated_webhook' => 'Webhook ":title" atualizado',
'edit_webhook_js' => 'Editar webhook "{title}"',
'inspect' => 'Inspect',
'create_new_webhook' => 'Create new webhook',
'webhooks_create_breadcrumb' => 'Create new webhook',
'webhook_trigger_form_help' => 'Indicate on what event the webhook will trigger',
'webhook_response_form_help' => 'Indicate what the webhook must submit to the URL.',
'webhook_delivery_form_help' => 'Which format the webhook must deliver data in.',
'webhook_active_form_help' => 'The webhook must be active or it won\'t be called.',
'stored_new_webhook' => 'Stored new webhook ":title"',
'delete_webhook' => 'Delete webhook',
'deleted_webhook' => 'Deleted webhook ":title"',
'edit_webhook' => 'Edit webhook ":title"',
'updated_webhook' => 'Updated webhook ":title"',
'edit_webhook_js' => 'Edit 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_messages' => 'Mensagem do webhook',
'view_message' => 'Ver mensagem',
'view_attempts' => 'Ver tentativas que falharam',
'message_content_title' => 'Conteúdo da mensagem do webhook',
'message_content_help' => 'Este é o conteúdo da mensagem enviada (ou a tentativa) usando este webhook.',
'attempt_content_title' => 'Tentativas do webhook',
'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.',
'no_attempts' => 'Não há tentativas mal sucedidas. Esta é uma coisa boa!',
'webhook_attempt_at' => 'Tentativa em {moment}',
'logs' => 'Registros',
'response' => 'Resposta',
'visit_webhook_url' => 'Acesse a URL do webhook',
'reset_webhook_secret' => 'Redefinir chave do webhook',
'webhook_was_triggered' => 'The webhook was triggered on the indicated transaction. You can refresh this page to see the results.',
'webhook_messages' => 'Webhook message',
'view_message' => 'View message',
'view_attempts' => 'View failed attempts',
'message_content_title' => 'Webhook message content',
'message_content_help' => 'This is the content of the message that was sent (or tried) using this webhook.',
'attempt_content_title' => 'Webhook attempts',
'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' => 'There are no unsuccessful attempts. That\'s a good thing!',
'webhook_attempt_at' => 'Attempt at {moment}',
'logs' => 'Logs',
'response' => 'Response',
'visit_webhook_url' => 'Visit webhook URL',
'reset_webhook_secret' => 'Reset webhook secret',
// API access
'authorization_request' => 'Firefly III v:version Pedido de autorização',
@ -325,24 +325,24 @@ return [
// old
'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_reconciled' => 'Transação está reconciliada',
'search_modifier_not_reconciled' => 'Transação não está reconciliada',
'search_modifier_not_date_on' => 'Transaction date is not ":value"',
'search_modifier_reconciled' => 'Transaction is reconciled',
'search_modifier_not_reconciled' => 'Transaction is not reconciled',
'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_after' => 'Data da transação é posterior ou em ":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_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_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_not_internal_reference_is' => 'Referência interna não é ":value"',
'search_modifier_description_starts' => 'Descrição começa com ":value"',
'search_modifier_not_description_starts' => 'Descrição não começa com ":value"',
'search_modifier_description_ends' => 'Descrição termina em ":value"',
'search_modifier_not_internal_reference_is' => 'Internal reference is not ":value"',
'search_modifier_description_starts' => 'Description starts with ":value"',
'search_modifier_not_description_starts' => 'Description does not start with ":value"',
'search_modifier_description_ends' => 'Description ends on ":value"',
'search_modifier_not_description_ends' => 'Description does not end on ":value"',
'search_modifier_description_contains' => 'Descrição contém ":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_not_category_is' => 'Category is not ":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_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_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_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_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_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_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_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"',
@ -455,86 +455,86 @@ return [
// new
'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_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_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_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_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_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_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_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_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_not_category_contains' => 'Categoria não contém ":value"',
'search_modifier_category_ends' => 'Categoria termina em ":value"',
'search_modifier_not_category_ends' => 'Categoria não termina em ":value"',
'search_modifier_not_category_contains' => 'Category does not contain ":value"',
'search_modifier_category_ends' => 'Category ends on ":value"',
'search_modifier_not_category_ends' => 'Category does not end on ":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_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_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_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_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_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_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_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_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_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_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_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_starts' => 'Referência interna não inicia com ":value"',
'search_modifier_not_internal_reference_ends' => 'Internal reference does not end with ":value"',
'search_modifier_not_internal_reference_starts' => 'Internal reference does not start with ":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_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_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_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_not_has_no_attachments' => 'A transação tem anexos',
'search_modifier_not_has_attachments' => 'A transação não tem anexos',
'search_modifier_account_is_cash' => 'Qualquer outra conta é a conta em "(dinheiro)".',
'search_modifier_not_account_is_cash' => 'Nenhuma das contas é a conta em "(dinheiro)".',
'search_modifier_not_has_no_attachments' => 'Transaction has attachments',
'search_modifier_not_has_attachments' => 'Transaction has no attachments',
'search_modifier_account_is_cash' => 'Either account is the "(cash)" account.',
'search_modifier_not_account_is_cash' => 'Neither account is the "(cash)" account.',
'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_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_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_not_foreign_amount_more' => 'A quantidade em moeda estrangeira é menor que ":value"',
'search_modifier_not_foreign_amount_less' => 'A quantidade em moeda estrangeira é maior que ":value"',
'search_modifier_not_foreign_amount_more' => 'The foreign amount is less than ":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_exists' => 'Transação existe (qualquer transação)',
'search_modifier_not_exists' => 'Transação não existe (sem transação)',
'search_modifier_exists' => 'Transaction exists (any transaction)',
'search_modifier_not_exists' => 'Transaction does not exist (no transaction)',
// date fields
'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_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_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_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"',
@ -1038,56 +1038,56 @@ return [
'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_tag_is' => 'Tag is not ":trigger_value"',
'rule_trigger_not_tag_is_not' => 'A tag é ":trigger_value"',
'rule_trigger_not_description_is' => 'Descrição não é ":trigger_value"',
'rule_trigger_not_description_contains' => 'Descrição não contém',
'rule_trigger_not_description_ends' => 'Descrição não termina com ":trigger_value"',
'rule_trigger_not_description_starts' => 'Descrição não começa com ":trigger_value"',
'rule_trigger_not_notes_is' => 'As notas não são ":trigger_value"',
'rule_trigger_not_notes_contains' => 'As notas não contêm ":trigger_value"',
'rule_trigger_not_notes_ends' => 'As notas não terminam em ":trigger_value"',
'rule_trigger_not_notes_starts' => 'As notas não começam com ":trigger_value"',
'rule_trigger_not_source_account_is' => 'Conta de origem não é ":trigger_value"',
'rule_trigger_not_source_account_contains' => 'Conta de origem não contém ":trigger_value"',
'rule_trigger_not_source_account_ends' => 'Conta de origem não termina em ":trigger_value"',
'rule_trigger_not_source_account_starts' => 'Conta de origem não começa com ":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_contains' => 'Número da conta de origem / IBAN não contém ":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_starts' => 'Número da conta de origem / IBAN não começa com ":trigger_value"',
'rule_trigger_not_destination_account_is' => 'Conta de destino não é ":trigger_value"',
'rule_trigger_not_destination_account_contains' => 'Conta de destino não contém ":trigger_value"',
'rule_trigger_not_destination_account_ends' => 'Conta de destino não termina em ":trigger_value"',
'rule_trigger_not_destination_account_starts' => 'Conta de destino não começa com ":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_contains' => 'Número da conta de destino / IBAN não contém ":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_starts' => 'Número da conta de destino / IBAN não começa com ":trigger_value"',
'rule_trigger_not_account_is' => 'Nenhuma conta é ":trigger_value"',
'rule_trigger_not_account_contains' => 'Nenhuma conta contém ":trigger_value"',
'rule_trigger_not_account_ends' => 'Nenhuma conta termina em ":trigger_value"',
'rule_trigger_not_account_starts' => 'Nenhuma conta começa com ":trigger_value"',
'rule_trigger_not_account_nr_is' => 'Nenhum número de conta / IBAN é ":trigger_value"',
'rule_trigger_not_account_nr_contains' => 'Nenhum número de conta / IBAN contém ":trigger_value"',
'rule_trigger_not_account_nr_ends' => 'Nenhum número de conta / IBAN termina em ":trigger_value"',
'rule_trigger_not_account_nr_starts' => 'Nenhum número de conta / IBAN começa com ":trigger_value"',
'rule_trigger_not_category_is' => 'Nenhuma categoria é ":trigger_value"',
'rule_trigger_not_category_contains' => 'Nenhuma categoria contém ":trigger_value"',
'rule_trigger_not_category_ends' => 'Nenhuma categoria termina em ":trigger_value"',
'rule_trigger_not_category_starts' => 'Nenhuma categoria começa com ":trigger_value"',
'rule_trigger_not_budget_is' => 'Nenhum orçamento é ":trigger_value"',
'rule_trigger_not_budget_contains' => 'Nenhum orçamento contém ":trigger_value"',
'rule_trigger_not_budget_ends' => 'Nenhum orçamento termina em ":trigger_value"',
'rule_trigger_not_budget_starts' => 'Nenhum orçamento começa com ":trigger_value"',
'rule_trigger_not_bill_is' => 'Fatura não é ":trigger_value"',
'rule_trigger_not_bill_contains' => 'Fatura não contém ":trigger_value"',
'rule_trigger_not_bill_ends' => 'Fatura não termina em ":trigger_value"',
'rule_trigger_not_bill_starts' => 'Fatura não termina com ":trigger_value"',
'rule_trigger_not_external_id_is' => 'ID Externo não é ":trigger_value"',
'rule_trigger_not_external_id_contains' => 'ID Externo não contém ":trigger_value"',
'rule_trigger_not_external_id_ends' => 'ID Externo não termina em ":trigger_value"',
'rule_trigger_not_external_id_starts' => 'ID Externo não inicia com ":trigger_value"',
'rule_trigger_not_internal_reference_is' => 'Referência interna não é ":trigger_value"',
'rule_trigger_not_tag_is_not' => 'Tag is ":trigger_value"',
'rule_trigger_not_description_is' => 'Description is not ":trigger_value"',
'rule_trigger_not_description_contains' => 'Description does not contain',
'rule_trigger_not_description_ends' => 'Description does not end with ":trigger_value"',
'rule_trigger_not_description_starts' => 'Description does not start with ":trigger_value"',
'rule_trigger_not_notes_is' => 'Notes are not ":trigger_value"',
'rule_trigger_not_notes_contains' => 'Notes do not contain ":trigger_value"',
'rule_trigger_not_notes_ends' => 'Notes do not end on ":trigger_value"',
'rule_trigger_not_notes_starts' => 'Notes do not start with ":trigger_value"',
'rule_trigger_not_source_account_is' => 'Source account is not ":trigger_value"',
'rule_trigger_not_source_account_contains' => 'Source account does not contain ":trigger_value"',
'rule_trigger_not_source_account_ends' => 'Source account does not end on ":trigger_value"',
'rule_trigger_not_source_account_starts' => 'Source account does not start with ":trigger_value"',
'rule_trigger_not_source_account_nr_is' => 'Source account number / IBAN is not ":trigger_value"',
'rule_trigger_not_source_account_nr_contains' => 'Source account number / IBAN does not contain ":trigger_value"',
'rule_trigger_not_source_account_nr_ends' => 'Source account number / IBAN does not end on ":trigger_value"',
'rule_trigger_not_source_account_nr_starts' => 'Source account number / IBAN does not start with ":trigger_value"',
'rule_trigger_not_destination_account_is' => 'Destination account is not ":trigger_value"',
'rule_trigger_not_destination_account_contains' => 'Destination account does not contain ":trigger_value"',
'rule_trigger_not_destination_account_ends' => 'Destination account does not end on ":trigger_value"',
'rule_trigger_not_destination_account_starts' => 'Destination account does not start with ":trigger_value"',
'rule_trigger_not_destination_account_nr_is' => 'Destination account number / IBAN is not ":trigger_value"',
'rule_trigger_not_destination_account_nr_contains' => 'Destination account number / IBAN does not contain ":trigger_value"',
'rule_trigger_not_destination_account_nr_ends' => 'Destination account number / IBAN does not end on ":trigger_value"',
'rule_trigger_not_destination_account_nr_starts' => 'Destination account number / IBAN does not start with ":trigger_value"',
'rule_trigger_not_account_is' => 'Neither account is ":trigger_value"',
'rule_trigger_not_account_contains' => 'Neither account contains ":trigger_value"',
'rule_trigger_not_account_ends' => 'Neither account ends on ":trigger_value"',
'rule_trigger_not_account_starts' => 'Neither account starts with ":trigger_value"',
'rule_trigger_not_account_nr_is' => 'Neither account number / IBAN is ":trigger_value"',
'rule_trigger_not_account_nr_contains' => 'Neither account number / IBAN contains ":trigger_value"',
'rule_trigger_not_account_nr_ends' => 'Neither account number / IBAN ends on ":trigger_value"',
'rule_trigger_not_account_nr_starts' => 'Neither account number / IBAN starts with ":trigger_value"',
'rule_trigger_not_category_is' => 'Neither category is ":trigger_value"',
'rule_trigger_not_category_contains' => 'Neither category contains ":trigger_value"',
'rule_trigger_not_category_ends' => 'Neither category ends on ":trigger_value"',
'rule_trigger_not_category_starts' => 'Neither category starts with ":trigger_value"',
'rule_trigger_not_budget_is' => 'Neither budget is ":trigger_value"',
'rule_trigger_not_budget_contains' => 'Neither budget contains ":trigger_value"',
'rule_trigger_not_budget_ends' => 'Neither budget ends on ":trigger_value"',
'rule_trigger_not_budget_starts' => 'Neither budget starts with ":trigger_value"',
'rule_trigger_not_bill_is' => 'Bill is not is ":trigger_value"',
'rule_trigger_not_bill_contains' => 'Bill does not contain ":trigger_value"',
'rule_trigger_not_bill_ends' => 'Bill does not end on ":trigger_value"',
'rule_trigger_not_bill_starts' => 'Bill does not end with ":trigger_value"',
'rule_trigger_not_external_id_is' => 'External ID is not ":trigger_value"',
'rule_trigger_not_external_id_contains' => 'External ID does not contain ":trigger_value"',
'rule_trigger_not_external_id_ends' => 'External ID does not end on ":trigger_value"',
'rule_trigger_not_external_id_starts' => 'External ID does not start with ":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_ends' => 'Internal reference does not end on ":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',
'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.',
'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_categories' => 'Excluir TODAS as suas categorias',
'delete_all_tags' => 'Excluir TODAS as suas tags',
@ -1486,9 +1483,6 @@ return [
'title_deposit' => 'Receita / Renda',
'title_transfer' => 'Transferências',
'title_transfers' => 'Transferências',
'submission_options' => 'Submission options',
'apply_rules_checkbox' => 'Apply rules',
'fire_webhooks_checkbox' => 'Fire webhooks',
// convert stuff:
'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.projectVersion=5.7.13
sonar.projectVersion=5.7.14
sonar.sources=app,bootstrap,database,resources/assets,resources/views,routes,tests
sonar.sourceEncoding=UTF-8