mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-12 15:35:15 +00:00
new language strings and updated code
This commit is contained in:
@@ -24,13 +24,17 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Factory;
|
namespace FireflyIII\Factory;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\AccountMeta;
|
use FireflyIII\Models\AccountMeta;
|
||||||
|
use Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AccountMetaFactory
|
* Class AccountMetaFactory
|
||||||
*/
|
*/
|
||||||
class AccountMetaFactory
|
class AccountMetaFactory
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $data
|
* @param array $data
|
||||||
*
|
*
|
||||||
@@ -41,4 +45,45 @@ class AccountMetaFactory
|
|||||||
return AccountMeta::create($data);
|
return AccountMeta::create($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create update or delete meta data.
|
||||||
|
*
|
||||||
|
* @param Account $account
|
||||||
|
* @param string $field
|
||||||
|
* @param string $value
|
||||||
|
*
|
||||||
|
* @return AccountMeta|null
|
||||||
|
*/
|
||||||
|
public function crud(Account $account, string $field, string $value): ?AccountMeta
|
||||||
|
{
|
||||||
|
/** @var AccountMeta $entry */
|
||||||
|
$entry = $account->accountMeta()->where('name', $field)->first();
|
||||||
|
|
||||||
|
// must not be an empty string:
|
||||||
|
if ('' !== $value) {
|
||||||
|
|
||||||
|
// if $data has field and $entry is null, create new one:
|
||||||
|
if (null === $entry) {
|
||||||
|
Log::debug(sprintf('Created meta-field "%s":"%s" for account #%d ("%s") ', $field, $value, $account->id, $account->name));
|
||||||
|
$this->create(['account_id' => $account->id, 'name' => $field, 'data' => $value]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// if $data has field and $entry is not null, update $entry:
|
||||||
|
if (null !== $entry) {
|
||||||
|
$entry->data = $value;
|
||||||
|
$entry->save();
|
||||||
|
Log::debug(sprintf('Updated meta-field "%s":"%s" for #%d ("%s") ', $field, $value, $account->id, $account->name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ('' === $value && null !== $entry && isset($data[$field])) {
|
||||||
|
try {
|
||||||
|
$entry->delete();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
Log::debug(sprintf('Could not delete entry: %s', $e->getMessage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $entry;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -113,7 +113,10 @@ class TransactionFactory
|
|||||||
$destinationAccount = $this->findAccount($destinationType, $data['destination_id'], $data['destination_name']);
|
$destinationAccount = $this->findAccount($destinationType, $data['destination_id'], $data['destination_name']);
|
||||||
|
|
||||||
if (null === $sourceAccount || null === $destinationAccount) {
|
if (null === $sourceAccount || null === $destinationAccount) {
|
||||||
Log::error('Info about source/dest:', $data);
|
$debugData = $data;
|
||||||
|
$debugData['source_type'] = $sourceType;
|
||||||
|
$debugData['dest_type'] = $destinationType;
|
||||||
|
Log::error('Info about source/dest:', $debugData);
|
||||||
throw new FireflyException('Could not determine source or destination account.');
|
throw new FireflyException('Could not determine source or destination account.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -22,6 +22,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -31,7 +32,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
* @property int $transaction_journal_id
|
* @property int $transaction_journal_id
|
||||||
* @property int $piggy_bank_id
|
* @property int $piggy_bank_id
|
||||||
* @property int $id
|
* @property int $id
|
||||||
* @property mixed date
|
* @property Carbon date
|
||||||
*/
|
*/
|
||||||
class PiggyBankEvent extends Model
|
class PiggyBankEvent extends Model
|
||||||
{
|
{
|
||||||
|
@@ -48,21 +48,21 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
|||||||
* @property int transaction_currency_id
|
* @property int transaction_currency_id
|
||||||
* @property TransactionCurrency $transactionCurrency
|
* @property TransactionCurrency $transactionCurrency
|
||||||
* @property Collection $tags
|
* @property Collection $tags
|
||||||
* @property mixed user_id
|
* @property int user_id
|
||||||
* @property mixed transactions
|
* @property Collection transactions
|
||||||
* @property int transaction_count
|
* @property int transaction_count
|
||||||
* @property Carbon interest_date
|
* @property Carbon interest_date
|
||||||
* @property Carbon book_date
|
* @property Carbon book_date
|
||||||
* @property Carbon process_date
|
* @property Carbon process_date
|
||||||
* @property bool encrypted
|
* @property bool encrypted
|
||||||
* @property int order
|
* @property int order
|
||||||
* @property int budget_id
|
* @property int budget_id
|
||||||
* @property string period_marker
|
* @property string period_marker
|
||||||
* @property Carbon $date
|
* @property Carbon $date
|
||||||
* @property string $transaction_type_type
|
* @property string $transaction_type_type
|
||||||
* @property int $id
|
* @property int $id
|
||||||
* @property TransactionType $transactionType
|
* @property TransactionType $transactionType
|
||||||
* @property Collection budgets
|
* @property Collection budgets
|
||||||
*
|
*
|
||||||
* @SuppressWarnings(PHPMD.TooManyPublicMethods)
|
* @SuppressWarnings(PHPMD.TooManyPublicMethods)
|
||||||
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
|
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
|
||||||
|
@@ -48,6 +48,7 @@ class ApiContext
|
|||||||
*
|
*
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
* @return BunqApiContext|FakeApiContext
|
* @return BunqApiContext|FakeApiContext
|
||||||
|
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
|
||||||
*/
|
*/
|
||||||
public function create(BunqEnumApiEnvironmentType $environmentType, string $apiKey, string $description, array $permittedIps, string $proxyUrl = null
|
public function create(BunqEnumApiEnvironmentType $environmentType, string $apiKey, string $description, array $permittedIps, string $proxyUrl = null
|
||||||
) {
|
) {
|
||||||
|
@@ -27,8 +27,12 @@ use Carbon\Carbon;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
*
|
||||||
* Class Release
|
* Class Release
|
||||||
|
*
|
||||||
|
* @SuppressWarnings(PHPMD.ShortVariable)
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
class Release extends GithubObject
|
class Release extends GithubObject
|
||||||
{
|
{
|
||||||
|
@@ -40,12 +40,14 @@ class AccountDestroyService
|
|||||||
* @param Account|null $moveTo
|
* @param Account|null $moveTo
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function destroy(Account $account, ?Account $moveTo): void
|
public function destroy(Account $account, ?Account $moveTo): void
|
||||||
{
|
{
|
||||||
if (null !== $moveTo) {
|
if (null !== $moveTo) {
|
||||||
DB::table('transactions')->where('account_id', $account->id)->update(['account_id' => $moveTo->id]);
|
DB::table('transactions')->where('account_id', $account->id)->update(['account_id' => $moveTo->id]);
|
||||||
}
|
}
|
||||||
|
$service = app(JournalDestroyService::class);
|
||||||
|
|
||||||
Log::debug('Now trigger account delete response #' . $account->id);
|
Log::debug('Now trigger account delete response #' . $account->id);
|
||||||
/** @var Transaction $transaction */
|
/** @var Transaction $transaction */
|
||||||
@@ -56,7 +58,7 @@ class AccountDestroyService
|
|||||||
if (null !== $journal) {
|
if (null !== $journal) {
|
||||||
Log::debug('Call for deletion of journal #' . $journal->id);
|
Log::debug('Call for deletion of journal #' . $journal->id);
|
||||||
/** @var JournalDestroyService $service */
|
/** @var JournalDestroyService $service */
|
||||||
$service = app(JournalDestroyService::class);
|
|
||||||
$service->destroy($journal);
|
$service->destroy($journal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,10 @@ use Log;
|
|||||||
class RecurrenceDestroyService
|
class RecurrenceDestroyService
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
* Delete recurrence.
|
||||||
|
*
|
||||||
* @param Recurrence $recurrence
|
* @param Recurrence $recurrence
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function destroy(Recurrence $recurrence): void
|
public function destroy(Recurrence $recurrence): void
|
||||||
{
|
{
|
||||||
|
@@ -23,13 +23,11 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Services\Internal\Support;
|
namespace FireflyIII\Services\Internal\Support;
|
||||||
|
|
||||||
use Exception;
|
|
||||||
use FireflyIII\Factory\AccountFactory;
|
use FireflyIII\Factory\AccountFactory;
|
||||||
use FireflyIII\Factory\AccountMetaFactory;
|
use FireflyIII\Factory\AccountMetaFactory;
|
||||||
use FireflyIII\Factory\TransactionFactory;
|
use FireflyIII\Factory\TransactionFactory;
|
||||||
use FireflyIII\Factory\TransactionJournalFactory;
|
use FireflyIII\Factory\TransactionJournalFactory;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\AccountMeta;
|
|
||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
use FireflyIII\Models\Note;
|
use FireflyIII\Models\Note;
|
||||||
use FireflyIII\Models\Transaction;
|
use FireflyIII\Models\Transaction;
|
||||||
@@ -128,6 +126,7 @@ trait AccountServiceTrait
|
|||||||
*
|
*
|
||||||
* @return TransactionJournal|null
|
* @return TransactionJournal|null
|
||||||
* @throws \FireflyIII\Exceptions\FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
|
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
|
||||||
*/
|
*/
|
||||||
public function storeIBJournal(Account $account, array $data): ?TransactionJournal
|
public function storeIBJournal(Account $account, array $data): ?TransactionJournal
|
||||||
{
|
{
|
||||||
@@ -181,7 +180,7 @@ trait AccountServiceTrait
|
|||||||
/** @var TransactionFactory $factory */
|
/** @var TransactionFactory $factory */
|
||||||
$factory = app(TransactionFactory::class);
|
$factory = app(TransactionFactory::class);
|
||||||
$factory->setUser($account->user);
|
$factory->setUser($account->user);
|
||||||
$one = $factory->create(
|
$factory->create(
|
||||||
[
|
[
|
||||||
'account' => $firstAccount,
|
'account' => $firstAccount,
|
||||||
'transaction_journal' => $journal,
|
'transaction_journal' => $journal,
|
||||||
@@ -193,7 +192,7 @@ trait AccountServiceTrait
|
|||||||
'reconciled' => false,
|
'reconciled' => false,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$two = $factory->create(
|
$factory->create(
|
||||||
[
|
[
|
||||||
'account' => $secondAccount,
|
'account' => $secondAccount,
|
||||||
'transaction_journal' => $journal,
|
'transaction_journal' => $journal,
|
||||||
@@ -205,9 +204,6 @@ trait AccountServiceTrait
|
|||||||
'reconciled' => false,
|
'reconciled' => false,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
if (null !== $one && null !== $two) {
|
|
||||||
Log::notice(sprintf('Stored two transactions for new account, #%d and #%d', $one->id, $two->id));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $journal;
|
return $journal;
|
||||||
}
|
}
|
||||||
@@ -267,6 +263,7 @@ trait AccountServiceTrait
|
|||||||
* @param array $data
|
* @param array $data
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function updateIBJournal(Account $account, TransactionJournal $journal, array $data): bool
|
public function updateIBJournal(Account $account, TransactionJournal $journal, array $data): bool
|
||||||
{
|
{
|
||||||
@@ -274,7 +271,6 @@ trait AccountServiceTrait
|
|||||||
$amount = (string)$data['openingBalance'];
|
$amount = (string)$data['openingBalance'];
|
||||||
$negativeAmount = bcmul($amount, '-1');
|
$negativeAmount = bcmul($amount, '-1');
|
||||||
$currencyId = (int)$data['currency_id'];
|
$currencyId = (int)$data['currency_id'];
|
||||||
|
|
||||||
Log::debug(sprintf('Submitted amount for opening balance to update is "%s"', $amount));
|
Log::debug(sprintf('Submitted amount for opening balance to update is "%s"', $amount));
|
||||||
if (0 === bccomp($amount, '0')) {
|
if (0 === bccomp($amount, '0')) {
|
||||||
Log::notice(sprintf('Amount "%s" is zero, delete opening balance.', $amount));
|
Log::notice(sprintf('Amount "%s" is zero, delete opening balance.', $amount));
|
||||||
@@ -282,16 +278,11 @@ trait AccountServiceTrait
|
|||||||
$service = app(JournalDestroyService::class);
|
$service = app(JournalDestroyService::class);
|
||||||
$service->destroy($journal);
|
$service->destroy($journal);
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// update date:
|
|
||||||
$journal->date = $date;
|
$journal->date = $date;
|
||||||
$journal->transaction_currency_id = $currencyId;
|
$journal->transaction_currency_id = $currencyId;
|
||||||
$journal->save();
|
$journal->save();
|
||||||
|
|
||||||
// update transactions:
|
|
||||||
/** @var Transaction $transaction */
|
/** @var Transaction $transaction */
|
||||||
foreach ($journal->transactions()->get() as $transaction) {
|
foreach ($journal->transactions()->get() as $transaction) {
|
||||||
if ((int)$account->id === (int)$transaction->account_id) {
|
if ((int)$account->id === (int)$transaction->account_id) {
|
||||||
@@ -317,6 +308,7 @@ trait AccountServiceTrait
|
|||||||
*
|
*
|
||||||
* @param Account $account
|
* @param Account $account
|
||||||
* @param array $data
|
* @param array $data
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function updateMetaData(Account $account, array $data): void
|
public function updateMetaData(Account $account, array $data): void
|
||||||
{
|
{
|
||||||
@@ -331,33 +323,7 @@ trait AccountServiceTrait
|
|||||||
/** @var AccountMetaFactory $factory */
|
/** @var AccountMetaFactory $factory */
|
||||||
$factory = app(AccountMetaFactory::class);
|
$factory = app(AccountMetaFactory::class);
|
||||||
foreach ($fields as $field) {
|
foreach ($fields as $field) {
|
||||||
/** @var AccountMeta $entry */
|
$factory->crud($account, $field, $data[$field] ?? '');
|
||||||
$entry = $account->accountMeta()->where('name', $field)->first();
|
|
||||||
|
|
||||||
// must not be an empty string:
|
|
||||||
if (isset($data[$field]) && \strlen((string)$data[$field]) > 0) {
|
|
||||||
|
|
||||||
// if $data has field and $entry is null, create new one:
|
|
||||||
if (null === $entry) {
|
|
||||||
Log::debug(sprintf('Created meta-field "%s":"%s" for account #%d ("%s") ', $field, $data[$field], $account->id, $account->name));
|
|
||||||
$factory->create(['account_id' => $account->id, 'name' => $field, 'data' => $data[$field],]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if $data has field and $entry is not null, update $entry:
|
|
||||||
// let's not bother with a service.
|
|
||||||
if (null !== $entry) {
|
|
||||||
$entry->data = $data[$field];
|
|
||||||
$entry->save();
|
|
||||||
Log::debug(sprintf('Updated meta-field "%s":"%s" for #%d ("%s") ', $field, $data[$field], $account->id, $account->name));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (null !== $entry && isset($data[$field]) && '' === (string)$data[$field]) {
|
|
||||||
try {
|
|
||||||
$entry->delete();
|
|
||||||
} catch (Exception $e) {
|
|
||||||
Log::debug(sprintf('Could not delete entry: %s', $e->getMessage()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -38,8 +38,11 @@ trait JournalServiceTrait
|
|||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Link tags to journal.
|
||||||
|
*
|
||||||
* @param TransactionJournal $journal
|
* @param TransactionJournal $journal
|
||||||
* @param array $data
|
* @param array $data
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function connectTags(TransactionJournal $journal, array $data): void
|
public function connectTags(TransactionJournal $journal, array $data): void
|
||||||
{
|
{
|
||||||
|
@@ -45,15 +45,6 @@ use Log;
|
|||||||
*/
|
*/
|
||||||
trait RecurringTransactionTrait
|
trait RecurringTransactionTrait
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* @param null|string $expectedType
|
|
||||||
* @param int|null $accountId
|
|
||||||
* @param null|string $accountName
|
|
||||||
*
|
|
||||||
* @return Account|null
|
|
||||||
*/
|
|
||||||
abstract public function findAccount(?string $expectedType, ?int $accountId, ?string $accountName): ?Account;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Recurrence $recurrence
|
* @param Recurrence $recurrence
|
||||||
* @param array $repetitions
|
* @param array $repetitions
|
||||||
@@ -76,8 +67,12 @@ trait RecurringTransactionTrait
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Store transactions of a recurring transactions. It's complex but readable.
|
||||||
|
*
|
||||||
* @param Recurrence $recurrence
|
* @param Recurrence $recurrence
|
||||||
* @param array $transactions
|
* @param array $transactions
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
|
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
|
||||||
*/
|
*/
|
||||||
public function createTransactions(Recurrence $recurrence, array $transactions): void
|
public function createTransactions(Recurrence $recurrence, array $transactions): void
|
||||||
{
|
{
|
||||||
@@ -103,9 +98,8 @@ trait RecurringTransactionTrait
|
|||||||
$factory = app(TransactionCurrencyFactory::class);
|
$factory = app(TransactionCurrencyFactory::class);
|
||||||
$currency = $factory->find($array['currency_id'], $array['currency_code']);
|
$currency = $factory->find($array['currency_id'], $array['currency_code']);
|
||||||
$foreignCurrency = $factory->find($array['foreign_currency_id'], $array['foreign_currency_code']);
|
$foreignCurrency = $factory->find($array['foreign_currency_id'], $array['foreign_currency_code']);
|
||||||
$defaultCurrency = app('amount')->getDefaultCurrencyByUser($recurrence->user);
|
|
||||||
if (null === $currency) {
|
if (null === $currency) {
|
||||||
$currency = $defaultCurrency;
|
$currency = app('amount')->getDefaultCurrencyByUser($recurrence->user);
|
||||||
}
|
}
|
||||||
$transaction = new RecurrenceTransaction(
|
$transaction = new RecurrenceTransaction(
|
||||||
[
|
[
|
||||||
@@ -178,6 +172,17 @@ trait RecurringTransactionTrait
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @param null|string $expectedType
|
||||||
|
* @param int|null $accountId
|
||||||
|
* @param null|string $accountName
|
||||||
|
*
|
||||||
|
* @return Account|null
|
||||||
|
*/
|
||||||
|
abstract public function findAccount(?string $expectedType, ?int $accountId, ?string $accountName): ?Account;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update meta data for recurring transaction.
|
||||||
|
*
|
||||||
* @param Recurrence $recurrence
|
* @param Recurrence $recurrence
|
||||||
* @param array $data
|
* @param array $data
|
||||||
*/
|
*/
|
||||||
@@ -186,6 +191,22 @@ trait RecurringTransactionTrait
|
|||||||
// only two special meta fields right now. Let's just hard code them.
|
// only two special meta fields right now. Let's just hard code them.
|
||||||
$piggyId = (int)($data['meta']['piggy_bank_id'] ?? 0.0);
|
$piggyId = (int)($data['meta']['piggy_bank_id'] ?? 0.0);
|
||||||
$piggyName = $data['meta']['piggy_bank_name'] ?? '';
|
$piggyName = $data['meta']['piggy_bank_name'] ?? '';
|
||||||
|
$this->updatePiggyBank($recurrence, $piggyId, $piggyName);
|
||||||
|
|
||||||
|
|
||||||
|
$tags = $data['meta']['tags'] ?? [];
|
||||||
|
$this->updateTags($recurrence, $tags);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Recurrence $recurrence
|
||||||
|
* @param int $piggyId
|
||||||
|
* @param string $piggyName
|
||||||
|
*/
|
||||||
|
protected function updatePiggyBank(Recurrence $recurrence, int $piggyId, string $piggyName): void
|
||||||
|
{
|
||||||
|
|
||||||
/** @var PiggyBankFactory $factory */
|
/** @var PiggyBankFactory $factory */
|
||||||
$factory = app(PiggyBankFactory::class);
|
$factory = app(PiggyBankFactory::class);
|
||||||
$factory->setUser($recurrence->user);
|
$factory->setUser($recurrence->user);
|
||||||
@@ -203,9 +224,14 @@ trait RecurringTransactionTrait
|
|||||||
// delete if present
|
// delete if present
|
||||||
$recurrence->recurrenceMeta()->where('name', 'piggy_bank_id')->delete();
|
$recurrence->recurrenceMeta()->where('name', 'piggy_bank_id')->delete();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
$tags = $data['meta']['tags'] ?? [];
|
* @param Recurrence $recurrence
|
||||||
|
* @param array $tagst
|
||||||
|
*/
|
||||||
|
protected function updateTags(Recurrence $recurrence, array $tags): void
|
||||||
|
{
|
||||||
if (\count($tags) > 0) {
|
if (\count($tags) > 0) {
|
||||||
/** @var RecurrenceMeta $entry */
|
/** @var RecurrenceMeta $entry */
|
||||||
$entry = $recurrence->recurrenceMeta()->where('name', 'tags')->first();
|
$entry = $recurrence->recurrenceMeta()->where('name', 'tags')->first();
|
||||||
|
@@ -51,47 +51,30 @@ trait TransactionServiceTrait
|
|||||||
* @param string $direction
|
* @param string $direction
|
||||||
*
|
*
|
||||||
* @return string|null
|
* @return string|null
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function accountType(TransactionJournal $journal, string $direction): ?string
|
public function accountType(TransactionJournal $journal, string $direction): ?string
|
||||||
{
|
{
|
||||||
$types = [];
|
$types = [];
|
||||||
$type = $journal->transactionType->type;
|
$type = $journal->transactionType->type;
|
||||||
switch ($type) {
|
if (TransactionType::WITHDRAWAL === $type) {
|
||||||
default:
|
$types['source'] = AccountType::ASSET;
|
||||||
// @codeCoverageIgnoreStart
|
$types['destination'] = AccountType::EXPENSE;
|
||||||
Log::error(sprintf('Cannot handle type "%s" in accountType()', $type));
|
|
||||||
|
|
||||||
return null;
|
|
||||||
// @codeCoverageIgnoreEnd
|
|
||||||
case TransactionType::WITHDRAWAL:
|
|
||||||
$types['source'] = AccountType::ASSET;
|
|
||||||
$types['destination'] = AccountType::EXPENSE;
|
|
||||||
break;
|
|
||||||
case TransactionType::DEPOSIT:
|
|
||||||
$types['source'] = AccountType::REVENUE;
|
|
||||||
$types['destination'] = AccountType::ASSET;
|
|
||||||
break;
|
|
||||||
case TransactionType::TRANSFER:
|
|
||||||
$types['source'] = AccountType::ASSET;
|
|
||||||
$types['destination'] = AccountType::ASSET;
|
|
||||||
break;
|
|
||||||
case TransactionType::RECONCILIATION:
|
|
||||||
// always NULL, since this is handled by the reconciliation.
|
|
||||||
$types['source'] = null;
|
|
||||||
$types['destination'] = null;
|
|
||||||
|
|
||||||
// return here:
|
|
||||||
return $types[$direction];
|
|
||||||
}
|
}
|
||||||
if (!isset($types[$direction])) {
|
if (TransactionType::DEPOSIT === $type) {
|
||||||
// @codeCoverageIgnoreStart
|
$types['source'] = AccountType::REVENUE;
|
||||||
Log::error(sprintf('No type set for direction "%s" and type "%s"', $type, $direction));
|
$types['destination'] = AccountType::ASSET;
|
||||||
|
}
|
||||||
return null;
|
if (TransactionType::TRANSFER === $type) {
|
||||||
// @codeCoverageIgnoreEnd
|
$types['source'] = AccountType::ASSET;
|
||||||
|
$types['destination'] = AccountType::ASSET;
|
||||||
|
}
|
||||||
|
if (TransactionType::RECONCILIATION === $type) {
|
||||||
|
$types['source'] = null;
|
||||||
|
$types['destination'] = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $types[$direction];
|
return $types[$direction] ?? null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -101,6 +84,7 @@ trait TransactionServiceTrait
|
|||||||
*
|
*
|
||||||
* @return Account|null
|
* @return Account|null
|
||||||
* @throws \FireflyIII\Exceptions\FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function findAccount(?string $expectedType, ?int $accountId, ?string $accountName): ?Account
|
public function findAccount(?string $expectedType, ?int $accountId, ?string $accountName): ?Account
|
||||||
{
|
{
|
||||||
@@ -115,55 +99,23 @@ trait TransactionServiceTrait
|
|||||||
return $repository->findNull($accountId);
|
return $repository->findNull($accountId);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($expectedType) {
|
if ($accountId > 0) {
|
||||||
case AccountType::ASSET:
|
// must be able to find it based on ID. Validator should catch invalid ID's.
|
||||||
if ($accountId > 0) {
|
return $repository->findNull($accountId);
|
||||||
// must be able to find it based on ID. Validator should catch invalid ID's.
|
|
||||||
return $repository->findNull($accountId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// alternatively, return by name. Validator should catch invalid names.
|
|
||||||
return $repository->findByName($accountName, [AccountType::ASSET]);
|
|
||||||
case AccountType::EXPENSE:
|
|
||||||
if ($accountId > 0) {
|
|
||||||
// must be able to find it based on ID. Validator should catch invalid ID's.
|
|
||||||
return $repository->findNull($accountId);
|
|
||||||
}
|
|
||||||
if (\strlen($accountName) > 0) {
|
|
||||||
/** @var AccountFactory $factory */
|
|
||||||
$factory = app(AccountFactory::class);
|
|
||||||
$factory->setUser($this->user);
|
|
||||||
|
|
||||||
return $factory->findOrCreate($accountName, AccountType::EXPENSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
// return cash account:
|
|
||||||
return $repository->getCashAccount();
|
|
||||||
case AccountType::REVENUE:
|
|
||||||
if ($accountId > 0) {
|
|
||||||
// must be able to find it based on ID. Validator should catch invalid ID's.
|
|
||||||
return $repository->findNull($accountId);
|
|
||||||
}
|
|
||||||
if (\strlen($accountName) > 0) {
|
|
||||||
// alternatively, return by name.
|
|
||||||
/** @var AccountFactory $factory */
|
|
||||||
$factory = app(AccountFactory::class);
|
|
||||||
$factory->setUser($this->user);
|
|
||||||
|
|
||||||
return $factory->findOrCreate($accountName, AccountType::REVENUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
// return cash account:
|
|
||||||
return $repository->getCashAccount();
|
|
||||||
|
|
||||||
default:
|
|
||||||
// @codeCoverageIgnoreStart
|
|
||||||
Log::error(sprintf('Cannot find account of type "%s".', $expectedType));
|
|
||||||
|
|
||||||
return null;
|
|
||||||
// @codeCoverageIgnoreEnd
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (AccountType::ASSET === $expectedType) {
|
||||||
|
return $repository->findByName($accountName, [AccountType::ASSET]);
|
||||||
|
}
|
||||||
|
// for revenue and expense:
|
||||||
|
if (\strlen($accountName) > 0) {
|
||||||
|
/** @var AccountFactory $factory */
|
||||||
|
$factory = app(AccountFactory::class);
|
||||||
|
$factory->setUser($this->user);
|
||||||
|
|
||||||
|
return $factory->findOrCreate($accountName, $expectedType);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $repository->getCashAccount();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -42,6 +42,8 @@ class AccountUpdateService
|
|||||||
*
|
*
|
||||||
* @return Account
|
* @return Account
|
||||||
* @throws \FireflyIII\Exceptions\FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
|
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
|
||||||
*/
|
*/
|
||||||
public function update(Account $account, array $data): Account
|
public function update(Account $account, array $data): Account
|
||||||
{
|
{
|
||||||
|
@@ -45,6 +45,8 @@ class JournalUpdateService
|
|||||||
*
|
*
|
||||||
* @return TransactionJournal
|
* @return TransactionJournal
|
||||||
* @throws \FireflyIII\Exceptions\FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
|
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function update(TransactionJournal $journal, array $data): TransactionJournal
|
public function update(TransactionJournal $journal, array $data): TransactionJournal
|
||||||
{
|
{
|
||||||
|
@@ -70,6 +70,10 @@ class TransactionUpdateService
|
|||||||
*
|
*
|
||||||
* @return Transaction
|
* @return Transaction
|
||||||
* @throws \FireflyIII\Exceptions\FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
|
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
|
* @SuppressWarnings(PHPMD.NPathComplexity)
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
public function update(Transaction $transaction, array $data): Transaction
|
public function update(Transaction $transaction, array $data): Transaction
|
||||||
{
|
{
|
||||||
@@ -113,7 +117,7 @@ class TransactionUpdateService
|
|||||||
$this->setForeignCurrency($transaction, $foreign);
|
$this->setForeignCurrency($transaction, $foreign);
|
||||||
$this->setForeignAmount($transaction, $foreignAmount);
|
$this->setForeignAmount($transaction, $foreignAmount);
|
||||||
}
|
}
|
||||||
if (null === $foreign && null === $data['foreign_amount']) {
|
if (null === $foreign || null === $data['foreign_amount']) {
|
||||||
$this->setForeignCurrency($transaction, null);
|
$this->setForeignCurrency($transaction, null);
|
||||||
$this->setForeignAmount($transaction, null);
|
$this->setForeignAmount($transaction, null);
|
||||||
}
|
}
|
||||||
|
@@ -26,8 +26,10 @@ namespace FireflyIII\Services\Spectre\Object;
|
|||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
|
||||||
* Class Account
|
* Class Account
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
* @SuppressWarnings(PHPMD.ShortVariable)
|
||||||
*/
|
*/
|
||||||
class Account extends SpectreObject
|
class Account extends SpectreObject
|
||||||
{
|
{
|
||||||
|
@@ -26,8 +26,11 @@ namespace FireflyIII\Services\Spectre\Object;
|
|||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
*
|
||||||
* Class Attempt
|
* Class Attempt
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
* @SuppressWarnings(PHPMD.ShortVariable)
|
||||||
|
* @SuppressWarnings(PHPMD.TooManyFields)
|
||||||
*/
|
*/
|
||||||
class Attempt extends SpectreObject
|
class Attempt extends SpectreObject
|
||||||
{
|
{
|
||||||
|
@@ -23,8 +23,10 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Services\Spectre\Object;
|
namespace FireflyIII\Services\Spectre\Object;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
|
||||||
* Class Customer
|
* Class Customer
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
* @SuppressWarnings(PHPMD.ShortVariable)
|
||||||
*/
|
*/
|
||||||
class Customer extends SpectreObject
|
class Customer extends SpectreObject
|
||||||
{
|
{
|
||||||
|
@@ -24,8 +24,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Services\Spectre\Object;
|
namespace FireflyIII\Services\Spectre\Object;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
|
||||||
* Class Holder
|
* Class Holder
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
class Holder extends SpectreObject
|
class Holder extends SpectreObject
|
||||||
{
|
{
|
||||||
@@ -33,6 +34,7 @@ class Holder extends SpectreObject
|
|||||||
* Holder constructor.
|
* Holder constructor.
|
||||||
*
|
*
|
||||||
* @param array $data
|
* @param array $data
|
||||||
|
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||||
*/
|
*/
|
||||||
public function __construct(array $data)
|
public function __construct(array $data)
|
||||||
{
|
{
|
||||||
|
@@ -27,8 +27,10 @@ use Carbon\Carbon;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
|
||||||
* Class Login
|
* Class Login
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
* @SuppressWarnings(PHPMD.ShortVariable)
|
||||||
|
* @SuppressWarnings(PHPMD.TooManyFields)
|
||||||
*/
|
*/
|
||||||
class Login extends SpectreObject
|
class Login extends SpectreObject
|
||||||
{
|
{
|
||||||
|
@@ -26,8 +26,10 @@ namespace FireflyIII\Services\Spectre\Object;
|
|||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
|
||||||
* Class Transaction
|
* Class Transaction
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
|
* @SuppressWarnings(PHPMD.ShortVariable)
|
||||||
*/
|
*/
|
||||||
class Transaction extends SpectreObject
|
class Transaction extends SpectreObject
|
||||||
{
|
{
|
||||||
@@ -169,7 +171,10 @@ class Transaction extends SpectreObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Get opposing account data.
|
||||||
|
*
|
||||||
* @return array
|
* @return array
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function getOpposingAccountData(): array
|
public function getOpposingAccountData(): array
|
||||||
{
|
{
|
||||||
|
@@ -26,8 +26,11 @@ namespace FireflyIII\Services\Spectre\Object;
|
|||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
|
||||||
* Class TransactionExtra
|
* Class TransactionExtra
|
||||||
|
*
|
||||||
|
* @SuppressWarnings(PHPMD.TooManyFields)
|
||||||
|
* @SuppressWarnings(PHPMD.ShortVariable)
|
||||||
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
class TransactionExtra extends SpectreObject
|
class TransactionExtra extends SpectreObject
|
||||||
{
|
{
|
||||||
|
@@ -40,6 +40,7 @@ class ListAccountsRequest extends SpectreRequest
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function call(): void
|
public function call(): void
|
||||||
{
|
{
|
||||||
@@ -60,8 +61,6 @@ class ListAccountsRequest extends SpectreRequest
|
|||||||
$hasNextPage = true;
|
$hasNextPage = true;
|
||||||
$nextId = $response['meta']['next_id'];
|
$nextId = $response['meta']['next_id'];
|
||||||
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
||||||
} else {
|
|
||||||
Log::debug('No next page.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// store customers:
|
// store customers:
|
||||||
|
@@ -38,6 +38,7 @@ class ListCustomersRequest extends SpectreRequest
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @throws \FireflyIII\Exceptions\FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function call(): void
|
public function call(): void
|
||||||
{
|
{
|
||||||
@@ -58,8 +59,6 @@ class ListCustomersRequest extends SpectreRequest
|
|||||||
$hasNextPage = true;
|
$hasNextPage = true;
|
||||||
$nextId = $response['meta']['next_id'];
|
$nextId = $response['meta']['next_id'];
|
||||||
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
||||||
} else {
|
|
||||||
Log::debug('No next page.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// store customers:
|
// store customers:
|
||||||
|
@@ -42,6 +42,7 @@ class ListLoginsRequest extends SpectreRequest
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function call(): void
|
public function call(): void
|
||||||
{
|
{
|
||||||
@@ -62,8 +63,6 @@ class ListLoginsRequest extends SpectreRequest
|
|||||||
$hasNextPage = true;
|
$hasNextPage = true;
|
||||||
$nextId = $response['meta']['next_id'];
|
$nextId = $response['meta']['next_id'];
|
||||||
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
||||||
} else {
|
|
||||||
Log::debug('No next page.');
|
|
||||||
}
|
}
|
||||||
$collection = new Collection;
|
$collection = new Collection;
|
||||||
// store logins:
|
// store logins:
|
||||||
|
@@ -40,6 +40,7 @@ class ListTransactionsRequest extends SpectreRequest
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
|
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
|
||||||
*/
|
*/
|
||||||
public function call(): void
|
public function call(): void
|
||||||
{
|
{
|
||||||
@@ -60,8 +61,6 @@ class ListTransactionsRequest extends SpectreRequest
|
|||||||
$hasNextPage = true;
|
$hasNextPage = true;
|
||||||
$nextId = $response['meta']['next_id'];
|
$nextId = $response['meta']['next_id'];
|
||||||
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
||||||
} else {
|
|
||||||
Log::debug('No next page, done with ListTransactionsRequest.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// store customers:
|
// store customers:
|
||||||
|
@@ -61,7 +61,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
|||||||
* @property bool $isAdmin used in admin user controller.
|
* @property bool $isAdmin used in admin user controller.
|
||||||
* @property bool $has2FA used in admin user controller.
|
* @property bool $has2FA used in admin user controller.
|
||||||
* @property array $prefs used in admin user controller.
|
* @property array $prefs used in admin user controller.
|
||||||
* @property mixed password
|
* @property string password
|
||||||
* @property Collection roles
|
* @property Collection roles
|
||||||
* @property string blocked_code
|
* @property string blocked_code
|
||||||
* @property bool blocked
|
* @property bool blocked
|
||||||
|
@@ -521,8 +521,8 @@ Sollen zusätzlich Ihre Girokonten angezeigt werden?',
|
|||||||
'secure_pw_history' => 'Im August 2017 veröffentlichte die bekannte Sicherheitsforscherin Troy Hunt eine Liste von 306 Millionen gestohlenen Passwörtern. Diese Passwörter wurden während der Einbrüche bei Firmen wie LinkedIn, Adobe und NeoPets (und vielen mehr) gestohlen.',
|
'secure_pw_history' => 'Im August 2017 veröffentlichte die bekannte Sicherheitsforscherin Troy Hunt eine Liste von 306 Millionen gestohlenen Passwörtern. Diese Passwörter wurden während der Einbrüche bei Firmen wie LinkedIn, Adobe und NeoPets (und vielen mehr) gestohlen.',
|
||||||
'secure_pw_check_box' => 'Durch Ankreuzen des Kästchens sendet Firefly III die ersten fünf Zeichen des SHA1-Hash Ihres Passworts an <a href="https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/">die Website von Troy Hunt</a>, um festzustellen, ob es auf der Liste enthalten ist. Dies wird Sie davon abhalten, unsichere Passwörter zu verwenden, wie es in der neuesten <a href="https://pages.nist.gov/800-63-3/sp800-63b.html">NIST Sonderveröffentlichung</a> zu diesem Thema empfohlen wird.',
|
'secure_pw_check_box' => 'Durch Ankreuzen des Kästchens sendet Firefly III die ersten fünf Zeichen des SHA1-Hash Ihres Passworts an <a href="https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/">die Website von Troy Hunt</a>, um festzustellen, ob es auf der Liste enthalten ist. Dies wird Sie davon abhalten, unsichere Passwörter zu verwenden, wie es in der neuesten <a href="https://pages.nist.gov/800-63-3/sp800-63b.html">NIST Sonderveröffentlichung</a> zu diesem Thema empfohlen wird.',
|
||||||
'secure_pw_sha1' => 'Aber ich dachte, dass SHA1 schon geknackt wurde?',
|
'secure_pw_sha1' => 'Aber ich dachte, dass SHA1 schon geknackt wurde?',
|
||||||
'secure_pw_hash_speed' => 'Yes, but not in this context. As you can read on <a href="https://shattered.io/">the website detailing how they broke SHA1</a>, it is now slightly easier to find a "collision": another digest that results in the same SHA1-hash. It now only takes 10,000 years using a single-GPU machine.',
|
'secure_pw_hash_speed' => 'Ja, aber nicht in diesem Zusammenhang. Wie Sie auf <a href="https://shattered.io/">auf der Website, die erklärt, wie SHA1 gebrochen wurde, lesen können</a>, ist es jetzt etwas leichter, eine "Kollision" zu finden: eine andere Zeichenfolge, die zu demselben SHA1-Hash führt. Es dauert nur mehr 10.000 Jahre mit einer einzigen GPU-Maschine.',
|
||||||
'secure_pw_hash_security' => 'This digest would not be equal to your password, nor would it be useful on (a site like) Firefly III. This application does not use SHA1 for password verification. So it is safe to check this box. Your password is hashed and only the first five characters of this digest are sent over HTTPS.',
|
'secure_pw_hash_security' => 'Dieser Auszug wäre weder mit Ihrem Passwort gleichzusetzen, noch wäre sie auf einer Seite wie Firefly III nützlich. Diese Anwendung verwendet SHA1 nicht zur Passwortverifizierung. Es ist also sicher, dieses Kontrollkästchen zu aktivieren. Ihr Passwort wird verschlüsselt und nur die ersten fünf Zeichen dieses Auszuges werden über HTTPS gesendet.',
|
||||||
'secure_pw_should' => 'Soll ich die Box ankreuzen?',
|
'secure_pw_should' => 'Soll ich die Box ankreuzen?',
|
||||||
'secure_pw_long_password' => 'Wenn Sie gerade ein langes, Single-Use-Passwort für Firefly III mit einem Kennwortgenerator generiert haben: <strong>Nein</strong>.',
|
'secure_pw_long_password' => 'Wenn Sie gerade ein langes, Single-Use-Passwort für Firefly III mit einem Kennwortgenerator generiert haben: <strong>Nein</strong>.',
|
||||||
'secure_pw_short' => 'Wenn Sie gerade das Passwort eingegeben haben, welches Sie immer verwenden: <em>Bitte ja</em>.',
|
'secure_pw_short' => 'Wenn Sie gerade das Passwort eingegeben haben, welches Sie immer verwenden: <em>Bitte ja</em>.',
|
||||||
|
@@ -219,7 +219,7 @@ return [
|
|||||||
'column_account-iban' => 'Bestandskonto (IBAN)',
|
'column_account-iban' => 'Bestandskonto (IBAN)',
|
||||||
'column_account-id' => 'Kennung des Bestandkontos (passend zu FF3)',
|
'column_account-id' => 'Kennung des Bestandkontos (passend zu FF3)',
|
||||||
'column_account-name' => 'Bestandskonto (Name)',
|
'column_account-name' => 'Bestandskonto (Name)',
|
||||||
'column_account-bic' => 'Asset account (BIC)',
|
'column_account-bic' => 'Bestandskonto (BIC)',
|
||||||
'column_amount' => 'Betrag',
|
'column_amount' => 'Betrag',
|
||||||
'column_amount_foreign' => 'Betrag (in Fremdwährung)',
|
'column_amount_foreign' => 'Betrag (in Fremdwährung)',
|
||||||
'column_amount_debit' => 'Betrag (Debitoren-Spalte)',
|
'column_amount_debit' => 'Betrag (Debitoren-Spalte)',
|
||||||
|
@@ -112,7 +112,7 @@ return [
|
|||||||
'sepa-cc' => 'SEPA • Verrechnungsschlüssel',
|
'sepa-cc' => 'SEPA • Verrechnungsschlüssel',
|
||||||
'sepa-ep' => 'SEPA • Externer Verwendungszweck',
|
'sepa-ep' => 'SEPA • Externer Verwendungszweck',
|
||||||
'sepa-ci' => 'SEPA • Identifikationsnummer des Zahlungsempfängers',
|
'sepa-ci' => 'SEPA • Identifikationsnummer des Zahlungsempfängers',
|
||||||
'sepa-batch-id' => 'SEPA Batch ID',
|
'sepa-batch-id' => 'SEPA Batch-Kennung',
|
||||||
'external_id' => 'Externe Kennung',
|
'external_id' => 'Externe Kennung',
|
||||||
'account_at_bunq' => 'Konto bei „bunq”',
|
'account_at_bunq' => 'Konto bei „bunq”',
|
||||||
'file_name' => 'Dateiname',
|
'file_name' => 'Dateiname',
|
||||||
|
@@ -50,8 +50,8 @@ return [
|
|||||||
'at_least_one_action' => 'Regel muss mindestens eine Aktion enthalten',
|
'at_least_one_action' => 'Regel muss mindestens eine Aktion enthalten',
|
||||||
'base64' => 'Dies sind keine gültigen base64-kodierten Daten.',
|
'base64' => 'Dies sind keine gültigen base64-kodierten Daten.',
|
||||||
'model_id_invalid' => 'Die angegebene ID scheint für dieses Modell ungültig zu sein.',
|
'model_id_invalid' => 'Die angegebene ID scheint für dieses Modell ungültig zu sein.',
|
||||||
'more' => ':attribute must be larger than :value.',
|
'more' => ':attribute muss größer als :value sein.',
|
||||||
'less' => ':attribute must be less than 10,000,000',
|
'less' => ':attribute muss kleiner als 10.000.000 sein',
|
||||||
'active_url' => ':attribute ist keine gültige URL.',
|
'active_url' => ':attribute ist keine gültige URL.',
|
||||||
'after' => ':attribute muss ein Datum nach :date sein.',
|
'after' => ':attribute muss ein Datum nach :date sein.',
|
||||||
'alpha' => ':attribute darf nur Buchstaben enthalten.',
|
'alpha' => ':attribute darf nur Buchstaben enthalten.',
|
||||||
|
@@ -26,8 +26,8 @@ return [
|
|||||||
'home' => 'Inicio',
|
'home' => 'Inicio',
|
||||||
'edit_currency' => 'Editar moneda ":name"',
|
'edit_currency' => 'Editar moneda ":name"',
|
||||||
'delete_currency' => 'Eliminar moneda ":name"',
|
'delete_currency' => 'Eliminar moneda ":name"',
|
||||||
'newPiggyBank' => 'Crear nueva alcancía',
|
'newPiggyBank' => 'Crear nueva hucha',
|
||||||
'edit_piggyBank' => 'Editar alcancía ":name"',
|
'edit_piggyBank' => 'Editar hucha ":name"',
|
||||||
'preferences' => 'Preferencias',
|
'preferences' => 'Preferencias',
|
||||||
'profile' => 'Perfil',
|
'profile' => 'Perfil',
|
||||||
'changePassword' => 'Cambiar contraseña',
|
'changePassword' => 'Cambiar contraseña',
|
||||||
@@ -36,14 +36,14 @@ return [
|
|||||||
'newBill' => 'Nueva factura',
|
'newBill' => 'Nueva factura',
|
||||||
'edit_bill' => 'Editar factura ":name"',
|
'edit_bill' => 'Editar factura ":name"',
|
||||||
'delete_bill' => 'Eliminar factura ":name"',
|
'delete_bill' => 'Eliminar factura ":name"',
|
||||||
'reports' => 'Reportes',
|
'reports' => 'Informes',
|
||||||
'search_result' => 'Resultados de la búsqueda para ":query"',
|
'search_result' => 'Resultados de la búsqueda para ":query"',
|
||||||
'withdrawal_list' => 'Gastos',
|
'withdrawal_list' => 'Gastos',
|
||||||
'deposit_list' => 'Ganancia, ingresos y depósitos',
|
'deposit_list' => 'Ganancia, ingresos y depósitos',
|
||||||
'transfer_list' => 'Transferencias',
|
'transfer_list' => 'Transferencias',
|
||||||
'transfers_list' => 'Transferencias',
|
'transfers_list' => 'Transferencias',
|
||||||
'reconciliation_list' => 'Reconciliaciones',
|
'reconciliation_list' => 'Reconciliaciones',
|
||||||
'create_withdrawal' => 'Crear nuevo retiro',
|
'create_withdrawal' => 'Crear nueva retirada',
|
||||||
'create_deposit' => 'Crear nuevo depósito',
|
'create_deposit' => 'Crear nuevo depósito',
|
||||||
'create_transfer' => 'Crear nueva transferencia',
|
'create_transfer' => 'Crear nueva transferencia',
|
||||||
'edit_journal' => 'Editar transacción ":description"',
|
'edit_journal' => 'Editar transacción ":description"',
|
||||||
|
@@ -24,16 +24,16 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'no_demo_text' => 'Lamentablemente no hay textos de ayuda para <abbr title=":route">esta página</abbr>.',
|
'no_demo_text' => 'Lamentablemente no hay textos de ayuda para <abbr title=":route">esta página</abbr>.',
|
||||||
'see_help_icon' => 'Sin embargo, el ícono <i class="fa fa-question-circle"></i> en la esquina superior-derecha puede tener más información.',
|
'see_help_icon' => 'Sin embargo, el icono <i class="fa fa-question-circle"></i> en la esquina superior derecha puede tener más información.',
|
||||||
'index' => '¡Bienvenido a <strong>Firefly III</strong>! En esta página tendrá una vista rápida de sus finanzas. Para más información, mire sus cuentas rarr; <a href=":asset">Asset Accounts</a> y, claro, las páginas de <a href=":budgets">presupuestos</a> y <a href=":reports">reportes</a>. O simplemente investigue la aplicación por su cuenta.',
|
'index' => '¡Bienvenido a <strong>Firefly III</strong>! En esta página tendrá una vista rápida de sus finanzas. Para más información, mire sus cuentas → <a href=":asset">Cuentas de activos</a> y, por supuesto, las páginas de <a href=":budgets">presupuestos</a> e <a href=":reports">Informes</a>. O simplemente investigue la aplicación por su cuenta.',
|
||||||
'accounts-index' => 'Las cajas de ahorro son sus cuentas de banco personales. Las cuentas de gastos contienen sus gastos habituales como compras y salidas con amigos. Las cuentas de ingresos repesentan ingresos de su trabajo u otras fuentes. En esta página puede editarlas o eliminarlas.',
|
'accounts-index' => 'Las cajas de activos son sus cuentas de banco personales. Las cuentas de gastos contienen sus gastos habituales como compras y salidas con amigos. Las cuentas de ingresos repesentan diner que recibe de su trabajo, gobierno u otras fuentes de ingresos. En esta página puede editarlas o eliminarlas.',
|
||||||
'budgets-index' => 'Esta página le muestra una visión general de sus presupuestos. La barra superior muestra la cantidad que está disponible para ser presupuestado. Esto se puede personalizar para cualquier período haciendo clic en la cantidad a la derecha. La cantidad que has gastado hasta ahora se muestra en la barra de abajo. Debajo están los gastos por presupuesto y lo que ha presupuestado para ellos.',
|
'budgets-index' => 'Esta página le muestra una visión general de sus presupuestos. La barra superior muestra la cantidad que está disponible para ser presupuestada. Esto se puede personalizar para cualquier período haciendo clic en la cantidad a la derecha. La cantidad que ha gastado hasta ahora se muestra en la barra de abajo. Debajo están los gastos por presupuesto y lo que ha presupuestado para ellos.',
|
||||||
'reports-index-start' => 'Firefly III da soporte a un buen numero de tipos de reportes. Lea sobre ellos haciendo clic en el icono <i class="fa fa-question-circle"></i> en el tope de la esquina derecha.',
|
'reports-index-start' => 'Firefly III da soporte a un buen numero de tipos de informes. Lea sobre ellos haciendo clic en el icono <i class="fa fa-question-circle"></i> en la esquina superior derecha.',
|
||||||
'reports-index-examples' => 'Asegúrese de revisar estos ejemplos: <a href=":one">un resumen financiero mensual</a>, <a href=":two">un resumen financiero anual</a> y <a href=":three">una vista general del presupuesto</a>.',
|
'reports-index-examples' => 'Asegúrese de revisar estos ejemplos: <a href=":one">un resumen financiero mensual</a>, <a href=":two">un resumen financiero anual</a> y <a href=":three">una vista general del presupuesto</a>.',
|
||||||
'currencies-index' => 'Firefly III admite múltiples monedas. A pesar de que la moneda por defecto es el Euro, se puede seleccionar el Dólar de EE.UU, y muchas otras monedas. Como se puede ver se ha incluido una pequeña selección de monedas, pero puedes agregar tu propia moneda si lo deseas. Sin embargo, cambiar la moneda predeterminada no cambiará la moneda de las transacciones existentes: Firefly III admite el uso de varias monedas al mismo tiempo.',
|
'currencies-index' => 'Firefly III admite múltiples monedas. A pesar de que la moneda por defecto es el Euro, se puede seleccionar el Dólar de EE. UU, y muchas otras monedas. Como se puede ver se ha incluido una pequeña selección de monedas, pero puede agregar su propia moneda si lo desea. Sin embargo, cambiar la moneda predeterminada no cambiará la moneda de las transacciones existentes: Firefly III admite el uso de varias monedas al mismo tiempo.',
|
||||||
'transactions-index' => 'Estos gastos, depósitos y transferencias no son particularmente imaginativos. Se han generado automáticamente.',
|
'transactions-index' => 'Estos gastos, depósitos y transferencias no son particularmente imaginativos. Se han generado automáticamente.',
|
||||||
'piggy-banks-index' => 'Como puede ver, hay tres alcancías. Utilice los botones más y menos para influir en la cantidad de dinero en cada alcancía. Haga clic en el nombre de la alcancía para ver la administración de cada una.',
|
'piggy-banks-index' => 'Como puede ver, hay tres huchas. Utilice los botones más y menos para influir en la cantidad de dinero en cada hucha. Haga clic en el nombre de la hucha para ver la administración de cada una.',
|
||||||
'import-index' => 'Any CSV file can be imported into Firefly III. It also supports importing data from bunq and Spectre. Other banks and financial aggregators will be implemented in the future. As a demo-user however, you can only see the "fake"-provider in action. It will generate some random transactions to show you how the process works.',
|
'import-index' => 'Cualquier archivo CSV se puede importar en Firefly III. También soporta la importación de datos desde bunq y Spectre. Otros bancos y agregadores financieros se implementarán en el futuro. Sin embargo, como usuario de la demo, solo puede ver el "falso"-proveedor en acción. Generará algunas transacciones aleatorias para mostrarle cómo funciona el proceso.',
|
||||||
'recurring-index' => 'Please note that this feature is under active development and may not work as expected.',
|
'recurring-index' => 'Por favor, tenga en cuenta que esta característica está bajo desarrollo activo y puede no funcionar como se espera.',
|
||||||
'recurring-create' => 'Please note that this feature is under active development and may not work as expected.',
|
'recurring-create' => 'Por favor, tenga en cuenta que esta característica está bajo desarrollo activo y puede no funcionar como se espera.',
|
||||||
];
|
];
|
||||||
|
@@ -172,15 +172,15 @@ return [
|
|||||||
'want_to_login' => 'Yo quiero entrar al sistema',
|
'want_to_login' => 'Yo quiero entrar al sistema',
|
||||||
'button_register' => 'Registrar',
|
'button_register' => 'Registrar',
|
||||||
'authorization' => 'Autorización',
|
'authorization' => 'Autorización',
|
||||||
'active_bills_only' => 'active bills only',
|
'active_bills_only' => 'solo facturas activas',
|
||||||
'average_per_bill' => 'average per bill',
|
'average_per_bill' => 'media por factura',
|
||||||
'expected_total' => 'expected total',
|
'expected_total' => 'total esperado',
|
||||||
// API access
|
// API access
|
||||||
'authorization_request' => 'Firefly III v:version Solicitud de autorización',
|
'authorization_request' => 'Firefly III v:version Solicitud de autorización',
|
||||||
'authorization_request_intro' => 'El <strong>:client</strong> está solicitando permiso para acceder a su administración financiera. ¿Desea autorizar <strong>:client</strong> para acceder a estos registros?',
|
'authorization_request_intro' => 'El <strong>:client</strong> está solicitando permiso para acceder a su administración financiera. ¿Desea autorizar <strong>:client</strong> para acceder a estos registros?',
|
||||||
'scopes_will_be_able' => 'Esta aplicación podrá:',
|
'scopes_will_be_able' => 'Esta aplicación podrá:',
|
||||||
'button_authorize' => 'Autorizar',
|
'button_authorize' => 'Autorizar',
|
||||||
'none_in_select_list' => '(none)',
|
'none_in_select_list' => '(ninguno)',
|
||||||
|
|
||||||
// check for updates:
|
// check for updates:
|
||||||
'update_check_title' => 'Ver actualizaciones',
|
'update_check_title' => 'Ver actualizaciones',
|
||||||
@@ -269,10 +269,10 @@ return [
|
|||||||
'move_rule_group_down' => 'Mover el grupo de reglas hacia abajo',
|
'move_rule_group_down' => 'Mover el grupo de reglas hacia abajo',
|
||||||
'save_rules_by_moving' => 'Guardar esta(s) regla(s) moviéndola(s) a otro grupo:',
|
'save_rules_by_moving' => 'Guardar esta(s) regla(s) moviéndola(s) a otro grupo:',
|
||||||
'make_new_rule' => 'Hacer nueva regla en grupo de regla ":title"',
|
'make_new_rule' => 'Hacer nueva regla en grupo de regla ":title"',
|
||||||
'rule_is_strict' => 'strict rule',
|
'rule_is_strict' => 'regla estricta',
|
||||||
'rule_is_not_strict' => 'non-strict rule',
|
'rule_is_not_strict' => 'regla no estricta',
|
||||||
'rule_help_stop_processing' => 'Al marcar esta casilla, las reglas posteriores de este grupo no se ejecutarán.',
|
'rule_help_stop_processing' => 'Al marcar esta casilla, las reglas posteriores de este grupo no se ejecutarán.',
|
||||||
'rule_help_strict' => 'In strict rules ALL triggers must fire for the action(s) to be executed. In non-strict rules, ANY trigger is enough for the action(s) to be executed.',
|
'rule_help_strict' => 'En las reglas estrictas TODOS los desencadenadores deben actuar para acción(es) que será(n) ejecutada(s). En las reglas no estrictas, CUALQUIER desencadenador es suficiente para que la(s) acción(es) se ejecute(n).',
|
||||||
'rule_help_active' => 'Las reglas inactivas nunca se ejecutan.',
|
'rule_help_active' => 'Las reglas inactivas nunca se ejecutan.',
|
||||||
'stored_new_rule' => 'Guardar la nueva regla con titulo ":title"',
|
'stored_new_rule' => 'Guardar la nueva regla con titulo ":title"',
|
||||||
'deleted_rule' => 'Regla eliminada con titulo ":title"',
|
'deleted_rule' => 'Regla eliminada con titulo ":title"',
|
||||||
@@ -350,8 +350,8 @@ return [
|
|||||||
'rule_trigger_budget_is' => 'Presupuesto es ":trigger_value"',
|
'rule_trigger_budget_is' => 'Presupuesto es ":trigger_value"',
|
||||||
'rule_trigger_tag_is_choice' => '(una) etiqueta es..',
|
'rule_trigger_tag_is_choice' => '(una) etiqueta es..',
|
||||||
'rule_trigger_tag_is' => 'Una etiqueta es ":trigger_value"',
|
'rule_trigger_tag_is' => 'Una etiqueta es ":trigger_value"',
|
||||||
'rule_trigger_currency_is_choice' => 'Transaction currency is..',
|
'rule_trigger_currency_is_choice' => 'La moneda de la transacción es..',
|
||||||
'rule_trigger_currency_is' => 'Transaction currency is ":trigger_value"',
|
'rule_trigger_currency_is' => 'La moneda de la transacción es ":trigger_value"',
|
||||||
'rule_trigger_has_attachments_choice' => 'Tiene al menos tantos archivos adjuntos',
|
'rule_trigger_has_attachments_choice' => 'Tiene al menos tantos archivos adjuntos',
|
||||||
'rule_trigger_has_attachments' => 'Tiene al menos :trigger_value anexo (s)',
|
'rule_trigger_has_attachments' => 'Tiene al menos :trigger_value anexo (s)',
|
||||||
'rule_trigger_store_journal' => 'Cuando la transacción es creada',
|
'rule_trigger_store_journal' => 'Cuando la transacción es creada',
|
||||||
@@ -411,19 +411,19 @@ return [
|
|||||||
'rule_action_clear_notes_choice' => 'Eliminar cualquier nota',
|
'rule_action_clear_notes_choice' => 'Eliminar cualquier nota',
|
||||||
'rule_action_clear_notes' => 'Eliminar cualquier nota',
|
'rule_action_clear_notes' => 'Eliminar cualquier nota',
|
||||||
'rule_action_set_notes_choice' => 'Establecer notas para..',
|
'rule_action_set_notes_choice' => 'Establecer notas para..',
|
||||||
'rule_action_link_to_bill_choice' => 'Link to a bill..',
|
'rule_action_link_to_bill_choice' => 'Enlace a una factura..',
|
||||||
'rule_action_link_to_bill' => 'Link to bill ":action_value"',
|
'rule_action_link_to_bill' => 'Enlace a una factura ":action_value"',
|
||||||
'rule_action_set_notes' => 'Establecer notas para:action_value',
|
'rule_action_set_notes' => 'Establecer notas para:action_value',
|
||||||
|
|
||||||
'rules_have_read_warning' => '¿Has leído la advertencia?',
|
'rules_have_read_warning' => '¿Has leído la advertencia?',
|
||||||
'apply_rule_warning' => 'Advertencia: Ejecutando una regla (grupo) en una gran selección de transacciones podría tomar años, y podría exceder el tiempo de espera. Si lo hace, la regla (grupo) solo se aplicara a un subconjunto desconocido de sus transacciones. Esto podría dejar a su administración financiera en ruinas. por favor tenga cuidado.',
|
'apply_rule_warning' => 'Advertencia: Ejecutando una regla (grupo) en una gran selección de transacciones podría tomar años, y podría exceder el tiempo de espera. Si lo hace, la regla (grupo) solo se aplicara a un subconjunto desconocido de sus transacciones. Esto podría dejar a su administración financiera en ruinas. por favor tenga cuidado.',
|
||||||
'rulegroup_for_bills_title' => 'Rule group for bills',
|
'rulegroup_for_bills_title' => 'Regla de grupo para facturas',
|
||||||
'rulegroup_for_bills_description' => 'A special rule group for all the rules that involve bills.',
|
'rulegroup_for_bills_description' => 'Regla de grupo especial para todas las reglas que impliquen facturas.',
|
||||||
'rule_for_bill_title' => 'Auto-generated rule for bill ":name"',
|
'rule_for_bill_title' => 'Regla autogenerada para factura ":name"',
|
||||||
'rule_for_bill_description' => 'This rule is auto-generated to try to match bill ":name".',
|
'rule_for_bill_description' => 'Esta regla es autogenerada para intentar emparejar la factura ":name".',
|
||||||
'create_rule_for_bill' => 'Create a new rule for bill ":name"',
|
'create_rule_for_bill' => 'Crear una nueva regla para la factura ":name"',
|
||||||
'create_rule_for_bill_txt' => 'You have just created a new bill called ":name", congratulations! Firefly III can automagically match new withdrawals to this bill. For example, whenever you pay your rent, the bill "rent" will be linked to the expense. This way, Firefly III can accurately show you which bills are due and which ones aren\'t. In order to do so, a new rule must be created. Firefly III has filled in some sensible defaults for you. Please make sure these are correct. If these values are correct, Firefly III will automatically link the correct withdrawal to the correct bill. Please check out the triggers to see if they are correct, and add some if they\'re wrong.',
|
'create_rule_for_bill_txt' => 'Acaba de crear una nueva factura llamada ":name", ¡enhorabuena! Firefly III puede asociar de manera automágica nuevas retiradas con esta factura. Por ejemplo, siempre que pague su alquiler, la factura "alquiler" será enlazada a ese gasto. De esta manera, Firefly III puede mostrarle de forma precisa qué facturas han vencido y cuáles no. Para ello, una nueva regla debe ser creada. Si estos valores son correctos, Firefly III enlazará automáticamente el retiro correspondiente con la factura correcta. Por favor, revise los desencadenadores para ver si son correctos, y añada algunos si son incorrectos.',
|
||||||
'new_rule_for_bill_title' => 'Rule for bill ":name"',
|
'new_rule_for_bill_title' => 'Regla para la factura ":name"',
|
||||||
'new_rule_for_bill_description' => 'This rule marks transactions for bill ":name".',
|
'new_rule_for_bill_description' => 'This rule marks transactions for bill ":name".',
|
||||||
|
|
||||||
// tags
|
// tags
|
||||||
|
@@ -24,7 +24,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'html_language' => 'fr',
|
'html_language' => 'fr',
|
||||||
'locale' => 'fr, French, fr_FR, fr_FR.utf8, fr_FR.UTF-8',
|
'locale' => 'fr, French, fr_FR.utf8, fr_FR.UTF-8',
|
||||||
'month' => '%B %Y',
|
'month' => '%B %Y',
|
||||||
'month_and_day' => '%e %B %Y',
|
'month_and_day' => '%e %B %Y',
|
||||||
'month_and_date_day' => '%A %e %B %Y',
|
'month_and_date_day' => '%A %e %B %Y',
|
||||||
|
@@ -481,7 +481,7 @@ return [
|
|||||||
'list_page_size_label' => 'Nombre d\'élément par page',
|
'list_page_size_label' => 'Nombre d\'élément par page',
|
||||||
'between_dates' => '(:start et :end)',
|
'between_dates' => '(:start et :end)',
|
||||||
'pref_optional_fields_transaction' => 'Champs optionnels pour les transactions',
|
'pref_optional_fields_transaction' => 'Champs optionnels pour les transactions',
|
||||||
'pref_optional_fields_transaction_help' => 'Par défaut, tous les champs ne sont pas activés lors de la création d\'une nouvelle transaction (en raison de possibles problèmes d',
|
'pref_optional_fields_transaction_help' => 'Par défaut, tous les champs ne sont pas disponibles lors de la création d\'une nouvelle transaction (pour éviter de surcharger la page). Vous pouvez activer les champs suivants si vous pensez qu\'ils peuvent vous être utiles. Bien sûr, tout champ désactivé mais précédemment rempli restera visible quel que soit son paramétrage.',
|
||||||
'optional_tj_date_fields' => 'Champ date',
|
'optional_tj_date_fields' => 'Champ date',
|
||||||
'optional_tj_business_fields' => 'Champs professionnels',
|
'optional_tj_business_fields' => 'Champs professionnels',
|
||||||
'optional_tj_attachment_fields' => 'Champs de pièces jointes',
|
'optional_tj_attachment_fields' => 'Champs de pièces jointes',
|
||||||
@@ -509,24 +509,24 @@ return [
|
|||||||
'delete_your_account_help' => 'La suppression de votre compte supprimera également les comptes, les opérations, <em>tout</em> ce que vous pourriez avoir enregistré dans Firefly III. Tout sera SUPPRIME.',
|
'delete_your_account_help' => 'La suppression de votre compte supprimera également les comptes, les opérations, <em>tout</em> ce que vous pourriez avoir enregistré dans Firefly III. Tout sera SUPPRIME.',
|
||||||
'delete_your_account_password' => 'Entrez votre mot de passe pour continuer.',
|
'delete_your_account_password' => 'Entrez votre mot de passe pour continuer.',
|
||||||
'password' => 'Mot de passe',
|
'password' => 'Mot de passe',
|
||||||
'are_you_sure' => 'Etes-vous sûr ? Vous ne pourrez pas annuler cette action.',
|
'are_you_sure' => 'Êtes-vous sûr ? Vous ne pourrez pas annuler cette action.',
|
||||||
'delete_account_button' => 'SUPPRIMER votre compte',
|
'delete_account_button' => 'SUPPRIMER votre compte',
|
||||||
'invalid_current_password' => 'Mot de passe actuel non valide!',
|
'invalid_current_password' => 'Mot de passe actuel non valide !',
|
||||||
'password_changed' => 'Mot de passe modifié!',
|
'password_changed' => 'Mot de passe modifié !',
|
||||||
'should_change' => 'L’idée est de changer votre mot de passe.',
|
'should_change' => 'L’idée est de changer votre mot de passe.',
|
||||||
'invalid_password' => 'Mot de passe incorrect!',
|
'invalid_password' => 'Mot de passe incorrect !',
|
||||||
'what_is_pw_security' => 'Qu\'est-ce que "vérifier la sécurité du mot de passe" ?',
|
'what_is_pw_security' => 'Qu\'est-ce que "vérifier la sécurité du mot de passe" ?',
|
||||||
'secure_pw_title' => 'Comment choisir un mot de passe sécurisé',
|
'secure_pw_title' => 'Comment choisir un mot de passe sécurisé',
|
||||||
'secure_pw_history' => 'En août 2017, le réputé chercheur en sécurité Troy Hunt a publié une liste de 306 millions de mots de passe volés. Ces mots de passe ont été volés lors de cambriolages d\'entreprises comme LinkedIn, Adobe ou NeoPets (et bien d’autres).',
|
'secure_pw_history' => 'En août 2017, le réputé chercheur en sécurité Troy Hunt a publié une liste de 306 millions de mots de passe volés. Ces mots de passe ont été volés lors de cambriolages d\'entreprises comme LinkedIn, Adobe ou NeoPets (et bien d’autres).',
|
||||||
'secure_pw_check_box' => 'En cochant la case, Firefly III enverra l\'empreinte SHA1 de votre mot de passe au <a href="https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/">site Web de Troy Hunt</a> pour voir si c’est sur la liste. Cela vous empêchera d\'utiliser des mots de passe non sûr comme cela est recommandé dans les dernières <a href="https://pages.nist.gov/800-63-3/sp800-63b.html">Publication Special NIST</a> à ce sujet.',
|
'secure_pw_check_box' => 'En cochant la case, Firefly III enverra l\'empreinte SHA1 de votre mot de passe au <a href="https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/">site Web de Troy Hunt</a> pour voir si c’est sur la liste. Cela vous empêchera d\'utiliser des mots de passe non sûr comme cela est recommandé dans les dernières <a href="https://pages.nist.gov/800-63-3/sp800-63b.html">Publication Special NIST</a> à ce sujet.',
|
||||||
'secure_pw_sha1' => 'Mais je pensais que SHA1 était cassé ?',
|
'secure_pw_sha1' => 'Mais je pensais que SHA1 était cassé ?',
|
||||||
'secure_pw_hash_speed' => 'Yes, but not in this context. As you can read on <a href="https://shattered.io/">the website detailing how they broke SHA1</a>, it is now slightly easier to find a "collision": another digest that results in the same SHA1-hash. It now only takes 10,000 years using a single-GPU machine.',
|
'secure_pw_hash_speed' => 'Oui, mais pas dans ce contexte. Comme vous pouvez le lire sur <a href="https://shattered.io/">le site web détaillant comment SHA1 a été cassé</a>, c’est maintenant légèrement plus facile de trouver une « collision » : une autre chaîne qui aboutit à la même empreinte SHA1. Maintenant, cela prend seulement 10 000 ans, à l’aide d’une machine mono-GPU.',
|
||||||
'secure_pw_hash_security' => 'This digest would not be equal to your password, nor would it be useful on (a site like) Firefly III. This application does not use SHA1 for password verification. So it is safe to check this box. Your password is hashed and only the first five characters of this digest are sent over HTTPS.',
|
'secure_pw_hash_security' => 'L\'empreinte ne sera pas identique à votre mot de passe et ne sera d\'aucune utilité pour Firefly III. Cette application n’utilise pas SHA1 pour la vérification des mots de passe. Il n\'y a donc aucun risque à cocher cette case. Votre mot de passer est haché et seuls les cinq premiers caractères de son empreinte sont envoyés via HTTPS.',
|
||||||
'secure_pw_should' => 'Dois-je cocher la case ?',
|
'secure_pw_should' => 'Dois-je cocher la case ?',
|
||||||
'secure_pw_long_password' => 'Si vous venez de générer un long mot de passe unique pour Firefly III à l\'aide d\'un type de générateur de mot de passe : <strong>non</strong>.',
|
'secure_pw_long_password' => 'Si vous venez de générer un long mot de passe unique pour Firefly III à l\'aide d\'un générateur de mot de passe : <strong>non</strong>.',
|
||||||
'secure_pw_short' => 'Si vous venez d\'entrer le mot de passe que vous utilisez toujours : <em>oui</em>.',
|
'secure_pw_short' => 'Si vous venez d\'entrer le mot de passe que vous utilisez toujours : <em>oui</em>.',
|
||||||
'command_line_token' => 'Jeton de ligne de commande',
|
'command_line_token' => 'Jeton de ligne de commande',
|
||||||
'explain_command_line_token' => 'Vous avez besoin de ce jeton pour exécuter des opérations optionnelles en ligne de commandes telles qu\'importer et exporter des données. Sans celui-ci, de telles commandes sensibles ne fonctionneront pas. Personne ne vous le demandera, pas même moi. Si vous craignez de le perdre, ou si vous êtes parano, régénérez ce jeton à l\'aide du bouton.',
|
'explain_command_line_token' => 'Vous avez besoin de ce jeton pour exécuter des opérations optionnelles en ligne de commandes telles qu\'importer et exporter des données. Sans celui-ci, de telles commandes sensibles ne fonctionneront pas. Ne partagez jamais votre jeton. Personne ne vous le demandera, pas même moi. Si vous craignez de le perdre, ou si vous êtes parano, régénérez ce jeton à l\'aide du bouton.',
|
||||||
'regenerate_command_line_token' => 'Régénérer le jeton de ligne de commande',
|
'regenerate_command_line_token' => 'Régénérer le jeton de ligne de commande',
|
||||||
'token_regenerated' => 'Un nouveau jeton en ligne de commande a été généré',
|
'token_regenerated' => 'Un nouveau jeton en ligne de commande a été généré',
|
||||||
'change_your_email' => 'Changer votre adresse e-mail',
|
'change_your_email' => 'Changer votre adresse e-mail',
|
||||||
@@ -558,9 +558,9 @@ return [
|
|||||||
'convert_is_already_type_Withdrawal' => 'Cette transaction est déjà un retrait',
|
'convert_is_already_type_Withdrawal' => 'Cette transaction est déjà un retrait',
|
||||||
'convert_is_already_type_Deposit' => 'Cette transaction est déjà un dépôt',
|
'convert_is_already_type_Deposit' => 'Cette transaction est déjà un dépôt',
|
||||||
'convert_is_already_type_Transfer' => 'Cette transaction est déjà un transfert',
|
'convert_is_already_type_Transfer' => 'Cette transaction est déjà un transfert',
|
||||||
'convert_to_Withdrawal' => 'Convertir ":description" vers un retrait',
|
'convert_to_Withdrawal' => 'Convertir ":description" en retrait',
|
||||||
'convert_to_Deposit' => 'Convertir ":description" vers un dépôt',
|
'convert_to_Deposit' => 'Convertir ":description" en dépôt',
|
||||||
'convert_to_Transfer' => 'Convertir ":description" vers un transfert',
|
'convert_to_Transfer' => 'Convertir ":description" en transfert',
|
||||||
'convert_options_WithdrawalDeposit' => 'Convertir un retrait en dépôt',
|
'convert_options_WithdrawalDeposit' => 'Convertir un retrait en dépôt',
|
||||||
'convert_options_WithdrawalTransfer' => 'Convertir un retrait en transfert',
|
'convert_options_WithdrawalTransfer' => 'Convertir un retrait en transfert',
|
||||||
'convert_options_DepositTransfer' => 'Convertir un dépôt en transfert',
|
'convert_options_DepositTransfer' => 'Convertir un dépôt en transfert',
|
||||||
@@ -579,7 +579,7 @@ return [
|
|||||||
'convert_please_set_asset_source' => 'Veuillez choisir le compte d’actifs d\'où proviendra l’argent.',
|
'convert_please_set_asset_source' => 'Veuillez choisir le compte d’actifs d\'où proviendra l’argent.',
|
||||||
'convert_explanation_withdrawal_deposit' => 'Si vous convertissez ce retrait en dépôt, :amount sera déposé dans <a href=":sourceRoute">:sourceName</a> au lieu de le retirer.',
|
'convert_explanation_withdrawal_deposit' => 'Si vous convertissez ce retrait en dépôt, :amount sera déposé dans <a href=":sourceRoute">:sourceName</a> au lieu de le retirer.',
|
||||||
'convert_explanation_withdrawal_transfer' => 'Si vous convertissez cette dépense en transfert, :amount sera transféré de <a href=":sourceRoute">:sourceName</a> vers un nouveau compte d\'actif, au lieu d\'être payé à <a href=":destinationRoute">:destinationName</a>.',
|
'convert_explanation_withdrawal_transfer' => 'Si vous convertissez cette dépense en transfert, :amount sera transféré de <a href=":sourceRoute">:sourceName</a> vers un nouveau compte d\'actif, au lieu d\'être payé à <a href=":destinationRoute">:destinationName</a>.',
|
||||||
'convert_explanation_deposit_withdrawal' => 'Si vous convertissez ce dépôt dans un retrait :amount sera supprimé de <a href=":destinationRoute">:destinationName</a> au lieu d\'y être ajouté.',
|
'convert_explanation_deposit_withdrawal' => 'Si vous convertissez ce dépôt en retrait :amount sera supprimé de <a href=":destinationRoute">:destinationName</a> au lieu d\'y être ajouté.',
|
||||||
'convert_explanation_deposit_transfer' => 'Si vous convertissez ce dépôt en transfert, :amount sera transféré d\'un compte d\'actif de votre choix en <a href=":destinationRoute">:destinationName</a>.',
|
'convert_explanation_deposit_transfer' => 'Si vous convertissez ce dépôt en transfert, :amount sera transféré d\'un compte d\'actif de votre choix en <a href=":destinationRoute">:destinationName</a>.',
|
||||||
'convert_explanation_transfer_withdrawal' => 'Si vous convertissez ce transfert en retrait, le montant passera de <a href=":sourceRoute">:sourceName</a> à une nouvelle destination comme une dépense, au lieu de <a href=":destinationRoute">:destinationName</a> en tant que transfert.',
|
'convert_explanation_transfer_withdrawal' => 'Si vous convertissez ce transfert en retrait, le montant passera de <a href=":sourceRoute">:sourceName</a> à une nouvelle destination comme une dépense, au lieu de <a href=":destinationRoute">:destinationName</a> en tant que transfert.',
|
||||||
'convert_explanation_transfer_deposit' => 'Si vous convertissez ce transfert en dépôt, :amount sera déposé dans le compte <a href=":destinationRoute">:destinationName</a> au lieu d\'y être transféré.',
|
'convert_explanation_transfer_deposit' => 'Si vous convertissez ce transfert en dépôt, :amount sera déposé dans le compte <a href=":destinationRoute">:destinationName</a> au lieu d\'y être transféré.',
|
||||||
@@ -592,7 +592,7 @@ return [
|
|||||||
// create new stuff:
|
// create new stuff:
|
||||||
'create_new_withdrawal' => 'Créer une nouvelle dépense',
|
'create_new_withdrawal' => 'Créer une nouvelle dépense',
|
||||||
'create_new_deposit' => 'Créer un nouveau dépôt',
|
'create_new_deposit' => 'Créer un nouveau dépôt',
|
||||||
'create_new_transfer' => 'Creer un nouveau transfert',
|
'create_new_transfer' => 'Créer un nouveau transfert',
|
||||||
'create_new_asset' => 'Créer un nouveau compte d’actif',
|
'create_new_asset' => 'Créer un nouveau compte d’actif',
|
||||||
'create_new_expense' => 'Créer nouveau compte de dépenses',
|
'create_new_expense' => 'Créer nouveau compte de dépenses',
|
||||||
'create_new_revenue' => 'Créer nouveau compte de recettes',
|
'create_new_revenue' => 'Créer nouveau compte de recettes',
|
||||||
@@ -602,7 +602,7 @@ return [
|
|||||||
// currencies:
|
// currencies:
|
||||||
'create_currency' => 'Créer une nouvelle devise',
|
'create_currency' => 'Créer une nouvelle devise',
|
||||||
'store_currency' => 'Créer une nouvelle devise',
|
'store_currency' => 'Créer une nouvelle devise',
|
||||||
'update_currency' => 'Mise à jour de la balance',
|
'update_currency' => 'Mise à jour de la devise',
|
||||||
'new_default_currency' => ':name est maintenant la devise par défaut.',
|
'new_default_currency' => ':name est maintenant la devise par défaut.',
|
||||||
'cannot_delete_currency' => 'Impossible de supprimer :name car il est encore utilisé.',
|
'cannot_delete_currency' => 'Impossible de supprimer :name car il est encore utilisé.',
|
||||||
'deleted_currency' => 'Devise ":name" supprimée',
|
'deleted_currency' => 'Devise ":name" supprimée',
|
||||||
@@ -625,15 +625,15 @@ return [
|
|||||||
'stored_new_budget' => 'Nouveau budget ":name" créé',
|
'stored_new_budget' => 'Nouveau budget ":name" créé',
|
||||||
'available_between' => 'Disponible entre le :start et le :end',
|
'available_between' => 'Disponible entre le :start et le :end',
|
||||||
'transactionsWithoutBudget' => 'Dépenses non budgétisées',
|
'transactionsWithoutBudget' => 'Dépenses non budgétisées',
|
||||||
'transactions_no_budget' => 'Dépenses non budgetisées entre le :start et le :end',
|
'transactions_no_budget' => 'Dépenses non budgétisées entre le :start et le :end',
|
||||||
'spent_between' => 'Dépensé entre le :start et le :end',
|
'spent_between' => 'Dépensé entre le :start et le :end',
|
||||||
'createBudget' => 'Nouveau budget',
|
'createBudget' => 'Nouveau budget',
|
||||||
'inactiveBudgets' => 'Budgets inactifs',
|
'inactiveBudgets' => 'Budgets inactifs',
|
||||||
'without_budget_between' => 'Opérations non budgetisées entre le :start et le :end',
|
'without_budget_between' => 'Opérations non budgétisées entre le :start et le :end',
|
||||||
'delete_budget' => 'Supprimer le budget ":name"',
|
'delete_budget' => 'Supprimer le budget ":name"',
|
||||||
'deleted_budget' => 'Budget ":name" supprimé',
|
'deleted_budget' => 'Budget ":name" supprimé',
|
||||||
'edit_budget' => 'Modifier le budget ":name"',
|
'edit_budget' => 'Modifier le budget ":name"',
|
||||||
'updated_budget' => 'Mettre à jour le budget ":name"',
|
'updated_budget' => 'Budget ":name" mis à jour',
|
||||||
'update_amount' => 'Mettre à jour le montant',
|
'update_amount' => 'Mettre à jour le montant',
|
||||||
'update_budget' => 'Mettre à jour le budget',
|
'update_budget' => 'Mettre à jour le budget',
|
||||||
'update_budget_amount_range' => 'Mettre à jour le montant disponible (prévu) entre le :start et le :end',
|
'update_budget_amount_range' => 'Mettre à jour le montant disponible (prévu) entre le :start et le :end',
|
||||||
@@ -664,7 +664,7 @@ return [
|
|||||||
'cannot_scan_inactive_bill' => 'Les factures inactives ne peuvent pas être analysées.',
|
'cannot_scan_inactive_bill' => 'Les factures inactives ne peuvent pas être analysées.',
|
||||||
'rescanned_bill' => 'Tout a été réexaminé, :total transaction(s) a/ont été liée(s) à la facture.',
|
'rescanned_bill' => 'Tout a été réexaminé, :total transaction(s) a/ont été liée(s) à la facture.',
|
||||||
'average_bill_amount_year' => 'Montant moyen des factures ( :year)',
|
'average_bill_amount_year' => 'Montant moyen des factures ( :year)',
|
||||||
'average_bill_amount_overall' => 'Montant moyen de la facture (global)',
|
'average_bill_amount_overall' => 'Montant moyen des factures (global)',
|
||||||
'bill_is_active' => 'Facture en cours',
|
'bill_is_active' => 'Facture en cours',
|
||||||
'bill_expected_between' => 'Attendu entre le :start et le :end',
|
'bill_expected_between' => 'Attendu entre le :start et le :end',
|
||||||
'bill_will_automatch' => 'La facture sera automatiquement liée aux transactions correspondantes',
|
'bill_will_automatch' => 'La facture sera automatiquement liée aux transactions correspondantes',
|
||||||
@@ -724,9 +724,9 @@ return [
|
|||||||
'account_type' => 'Type de compte',
|
'account_type' => 'Type de compte',
|
||||||
'save_transactions_by_moving' => 'Enregistrer ces opération(s) en les déplaçant vers un autre compte :',
|
'save_transactions_by_moving' => 'Enregistrer ces opération(s) en les déplaçant vers un autre compte :',
|
||||||
'stored_new_account' => 'Nouveau compte ":name" créé !',
|
'stored_new_account' => 'Nouveau compte ":name" créé !',
|
||||||
'updated_account' => 'Nom du compte ":name"',
|
'updated_account' => 'Compte ":name" mis à jour',
|
||||||
'credit_card_options' => 'Cartes de crédit',
|
'credit_card_options' => 'Cartes de crédit',
|
||||||
'no_transactions_account' => 'Il n\'y a pas de transaction (dans cette période) pour le compte d\'actif ":name".',
|
'no_transactions_account' => 'Il n\'y a pas de transaction (sur cette période) pour le compte d\'actif ":name".',
|
||||||
'no_data_for_chart' => 'Il n\'y a pas assez d\'informations (pour le moment) pour générer ce graphique.',
|
'no_data_for_chart' => 'Il n\'y a pas assez d\'informations (pour le moment) pour générer ce graphique.',
|
||||||
'select_more_than_one_account' => 'Veuillez sélectionner plus d\'un compte',
|
'select_more_than_one_account' => 'Veuillez sélectionner plus d\'un compte',
|
||||||
'select_more_than_one_category' => 'Veuillez sélectionner plus d\'une catégorie',
|
'select_more_than_one_category' => 'Veuillez sélectionner plus d\'une catégorie',
|
||||||
@@ -763,7 +763,7 @@ return [
|
|||||||
'category' => 'Catégorie',
|
'category' => 'Catégorie',
|
||||||
'delete_category' => 'Supprimer la catégorie ":name"',
|
'delete_category' => 'Supprimer la catégorie ":name"',
|
||||||
'deleted_category' => 'Catégorie ":name" supprimée',
|
'deleted_category' => 'Catégorie ":name" supprimée',
|
||||||
'store_category' => 'Créer une nouvelle catgorie',
|
'store_category' => 'Créer une nouvelle catégorie',
|
||||||
'stored_category' => 'Nouvelle catégorie stockée ":name"',
|
'stored_category' => 'Nouvelle catégorie stockée ":name"',
|
||||||
'without_category_between' => 'Sans catégorie entre :start et :end',
|
'without_category_between' => 'Sans catégorie entre :start et :end',
|
||||||
|
|
||||||
@@ -778,14 +778,14 @@ return [
|
|||||||
'delete_deposit' => 'Supprimer le dépôt ":description"',
|
'delete_deposit' => 'Supprimer le dépôt ":description"',
|
||||||
'delete_transfer' => 'Supprimer le transfert ":description"',
|
'delete_transfer' => 'Supprimer le transfert ":description"',
|
||||||
'deleted_withdrawal' => 'Retrait ":name" correctement supprimé',
|
'deleted_withdrawal' => 'Retrait ":name" correctement supprimé',
|
||||||
'deleted_deposit' => 'Dépot ":name" correctement supprimé',
|
'deleted_deposit' => 'Dépôt ":name" correctement supprimé',
|
||||||
'deleted_transfer' => 'Opération ":name" correctement supprimée',
|
'deleted_transfer' => 'Opération ":name" correctement supprimée',
|
||||||
'stored_journal' => 'Opération ":description" créée avec succès',
|
'stored_journal' => 'Opération ":description" créée avec succès',
|
||||||
'select_transactions' => 'Sélectionner des opérations',
|
'select_transactions' => 'Sélectionner des opérations',
|
||||||
'rule_group_select_transactions' => 'Appliquer le groupe de règles ":title" sur les transactions',
|
'rule_group_select_transactions' => 'Appliquer le groupe de règles ":title" sur les transactions',
|
||||||
'rule_select_transactions' => 'Appliquer la règle ":title" sur les transactions',
|
'rule_select_transactions' => 'Appliquer la règle ":title" sur les transactions',
|
||||||
'stop_selection' => 'Arrêter de sélectionner les transactions',
|
'stop_selection' => 'Arrêter de sélectionner les transactions',
|
||||||
'reconcile_selected' => 'Rapproché',
|
'reconcile_selected' => 'Rapprocher',
|
||||||
'mass_delete_journals' => 'Supprimer un certain nombre de transactions',
|
'mass_delete_journals' => 'Supprimer un certain nombre de transactions',
|
||||||
'mass_edit_journals' => 'Modifier un certain nombre d’opérations',
|
'mass_edit_journals' => 'Modifier un certain nombre d’opérations',
|
||||||
'mass_bulk_journals' => 'Modifier un certain nombre d’opérations en masse',
|
'mass_bulk_journals' => 'Modifier un certain nombre d’opérations en masse',
|
||||||
@@ -795,7 +795,7 @@ return [
|
|||||||
'no_bulk_budget' => 'Ne pas mettre à jour le budget',
|
'no_bulk_budget' => 'Ne pas mettre à jour le budget',
|
||||||
'no_bulk_tags' => 'Ne pas mettre à jour le·s tag·s',
|
'no_bulk_tags' => 'Ne pas mettre à jour le·s tag·s',
|
||||||
'bulk_edit' => 'Modification en masse',
|
'bulk_edit' => 'Modification en masse',
|
||||||
'cannot_edit_other_fields' => 'Vous ne pouvez pas modifier en masse d\'autres champs que ceux-ci, car il n’y a pas de place pour tous les montrer. S’il vous plaît suivez le lien et modifiez les par un par un, si vous devez modifier ces champs.',
|
'cannot_edit_other_fields' => 'Vous ne pouvez pas modifier en masse d\'autres champs que ceux-ci, car il n’y a pas de place pour tous les afficher. S’il vous plaît suivez le lien et modifiez les un par un si vous devez modifier ces champs.',
|
||||||
'no_budget' => '(pas de budget)',
|
'no_budget' => '(pas de budget)',
|
||||||
'no_budget_squared' => '(pas de budget)',
|
'no_budget_squared' => '(pas de budget)',
|
||||||
'perm-delete-many' => 'Supprimer de nombreux éléments en une seule fois peut engendrer des erreurs. Soyez prudent.',
|
'perm-delete-many' => 'Supprimer de nombreux éléments en une seule fois peut engendrer des erreurs. Soyez prudent.',
|
||||||
@@ -815,7 +815,7 @@ return [
|
|||||||
'submit' => 'Soumettre',
|
'submit' => 'Soumettre',
|
||||||
'getting_started' => 'Mise en route',
|
'getting_started' => 'Mise en route',
|
||||||
'to_get_started' => 'Vous venez d\'installer Firefly III avec succès. Pour commencer avec cet outil, entrez le nom de votre banque et le solde de votre compte courant principal. Ne vous inquiétez pas si vous avez plusieurs comptes. Vous pourrez les ajouter plus tard. Firefly III a simplement besoin de quelque chose pour commencer.',
|
'to_get_started' => 'Vous venez d\'installer Firefly III avec succès. Pour commencer avec cet outil, entrez le nom de votre banque et le solde de votre compte courant principal. Ne vous inquiétez pas si vous avez plusieurs comptes. Vous pourrez les ajouter plus tard. Firefly III a simplement besoin de quelque chose pour commencer.',
|
||||||
'savings_balance_text' => 'Firefly III créera automatiquement un compte d\'épargne pour vous. Par défaut, il n\'y aura pas d\'argent dans votre compte d\'épargne, mais si vous le dites à Firefly III, le solde sera stocké en tant que tel.',
|
'savings_balance_text' => 'Firefly III créera automatiquement un compte d\'épargne pour vous. Par défaut, il n\'y aura pas d\'argent sur ce compte d\'épargne, mais si vous indiquez un montant à Firefly III, il l\'enregistrera en tant que solde.',
|
||||||
'finish_up_new_user' => 'C\'est tout ! Vous pouvez continuer en appuyant sur <strong>Envoyer</strong>. Vous passerez à l\'index de Firefly III.',
|
'finish_up_new_user' => 'C\'est tout ! Vous pouvez continuer en appuyant sur <strong>Envoyer</strong>. Vous passerez à l\'index de Firefly III.',
|
||||||
'stored_new_accounts_new_user' => 'Super ! Vos nouveaux comptes ont été créés.',
|
'stored_new_accounts_new_user' => 'Super ! Vos nouveaux comptes ont été créés.',
|
||||||
'set_preferred_language' => 'Si vous préférez utiliser Firefly III dans une autre langue, veuillez l\'indiquer ici.',
|
'set_preferred_language' => 'Si vous préférez utiliser Firefly III dans une autre langue, veuillez l\'indiquer ici.',
|
||||||
@@ -831,7 +831,7 @@ return [
|
|||||||
'newWithdrawal' => 'Nouvelle dépense',
|
'newWithdrawal' => 'Nouvelle dépense',
|
||||||
'newDeposit' => 'Nouveau dépôt',
|
'newDeposit' => 'Nouveau dépôt',
|
||||||
'newTransfer' => 'Nouveau transfert',
|
'newTransfer' => 'Nouveau transfert',
|
||||||
'bills_to_pay' => 'Facture à payer',
|
'bills_to_pay' => 'Factures à payer',
|
||||||
'per_day' => 'Par jour',
|
'per_day' => 'Par jour',
|
||||||
'left_to_spend_per_day' => 'Reste à dépenser par jour',
|
'left_to_spend_per_day' => 'Reste à dépenser par jour',
|
||||||
'bills_paid' => 'Factures payées',
|
'bills_paid' => 'Factures payées',
|
||||||
@@ -858,7 +858,7 @@ return [
|
|||||||
'expenses' => 'Dépenses',
|
'expenses' => 'Dépenses',
|
||||||
'income' => 'Recette / revenu',
|
'income' => 'Recette / revenu',
|
||||||
'transfers' => 'Transferts',
|
'transfers' => 'Transferts',
|
||||||
'moneyManagement' => 'Gérer les comptes',
|
'moneyManagement' => 'Gestion financière',
|
||||||
'piggyBanks' => 'Tirelires',
|
'piggyBanks' => 'Tirelires',
|
||||||
'bills' => 'Factures',
|
'bills' => 'Factures',
|
||||||
'withdrawal' => 'Dépense',
|
'withdrawal' => 'Dépense',
|
||||||
@@ -897,16 +897,16 @@ return [
|
|||||||
'report_all_time_quick' => 'Tous les temps, tous les comptes',
|
'report_all_time_quick' => 'Tous les temps, tous les comptes',
|
||||||
'reports_can_bookmark' => 'N’oubliez pas que les rapports peuvent être mis en signet.',
|
'reports_can_bookmark' => 'N’oubliez pas que les rapports peuvent être mis en signet.',
|
||||||
'incomeVsExpenses' => 'Revenus vs dépenses',
|
'incomeVsExpenses' => 'Revenus vs dépenses',
|
||||||
'accountBalances' => 'Solde du compte',
|
'accountBalances' => 'Soldes du compte',
|
||||||
'balanceStart' => 'Solde au début de la période',
|
'balanceStart' => 'Solde au début de la période',
|
||||||
'balanceEnd' => 'Solde à la fin de la période',
|
'balanceEnd' => 'Solde à la fin de la période',
|
||||||
'splitByAccount' => 'Divisé par compte',
|
'splitByAccount' => 'Divisé par compte',
|
||||||
'coveredWithTags' => 'Recouvert de tags',
|
'coveredWithTags' => 'Recouvert de tags',
|
||||||
'leftInBudget' => 'Budget restant',
|
'leftInBudget' => 'Budget restant',
|
||||||
'sumOfSums' => 'Montant des sommes',
|
'sumOfSums' => 'Somme des montants',
|
||||||
'noCategory' => '(aucune catégorie)',
|
'noCategory' => '(aucune catégorie)',
|
||||||
'notCharged' => 'Pas encore chargé',
|
'notCharged' => 'Pas encore chargé',
|
||||||
'inactive' => 'Désactivé',
|
'inactive' => 'Inactif',
|
||||||
'active' => 'Actif',
|
'active' => 'Actif',
|
||||||
'difference' => 'Différence',
|
'difference' => 'Différence',
|
||||||
'money_flowing_in' => 'Rentrée',
|
'money_flowing_in' => 'Rentrée',
|
||||||
@@ -921,7 +921,7 @@ return [
|
|||||||
'report_type_budget' => 'Rapport du budget',
|
'report_type_budget' => 'Rapport du budget',
|
||||||
'report_type_tag' => 'Rapport de tag',
|
'report_type_tag' => 'Rapport de tag',
|
||||||
'report_type_account' => 'Rapport de compte de dépenses/recettes',
|
'report_type_account' => 'Rapport de compte de dépenses/recettes',
|
||||||
'more_info_help' => 'Plus d’informations sur ces types de rapports se trouvent dans les pages d’aide. Appuyez sur l’icône (?) dans le coin supérieur droit.',
|
'more_info_help' => 'Vous trouverez plus d’informations sur ces différents types de rapports dans les pages d’aide. Appuyez sur l’icône (?) dans le coin supérieur droit.',
|
||||||
'report_included_accounts' => 'Comptes inclus',
|
'report_included_accounts' => 'Comptes inclus',
|
||||||
'report_date_range' => 'Intervalle de dates',
|
'report_date_range' => 'Intervalle de dates',
|
||||||
'report_preset_ranges' => 'Pré-configurer les étendues',
|
'report_preset_ranges' => 'Pré-configurer les étendues',
|
||||||
@@ -948,8 +948,8 @@ return [
|
|||||||
'expense_per_account' => 'Dépenses par compte',
|
'expense_per_account' => 'Dépenses par compte',
|
||||||
'expense_per_tag' => 'Dépenses par tag',
|
'expense_per_tag' => 'Dépenses par tag',
|
||||||
'income_per_tag' => 'Revenus par tag',
|
'income_per_tag' => 'Revenus par tag',
|
||||||
'include_expense_not_in_budget' => 'Frais inclus non compris dans le(s) budget(s) sélectionné(s)',
|
'include_expense_not_in_budget' => 'Les dépenses incluses ne sont pas dans le(s) budget(s) sélectionné(s)',
|
||||||
'include_expense_not_in_account' => 'Frais inclus non compris dans le(s) compte(s) sélectionné(s)',
|
'include_expense_not_in_account' => 'Les dépenses incluses ne sont pas dans le(s) compte(s) sélectionné(s)',
|
||||||
'include_expense_not_in_category' => 'Les dépenses incluses ne sont pas dans la(les) catégorie(s) sélectionnée(s)',
|
'include_expense_not_in_category' => 'Les dépenses incluses ne sont pas dans la(les) catégorie(s) sélectionnée(s)',
|
||||||
'include_income_not_in_category' => 'Les revenus inclus ne sont pas dans la(les) catégorie(s) sélectionnée(s)',
|
'include_income_not_in_category' => 'Les revenus inclus ne sont pas dans la(les) catégorie(s) sélectionnée(s)',
|
||||||
'include_income_not_in_account' => 'Revenus inclus non compris dans le(s) compte(s) sélectionné(s)',
|
'include_income_not_in_account' => 'Revenus inclus non compris dans le(s) compte(s) sélectionné(s)',
|
||||||
@@ -979,7 +979,7 @@ return [
|
|||||||
'select_expense_revenue' => 'Sélectionner le compte de dépenses / recettes',
|
'select_expense_revenue' => 'Sélectionner le compte de dépenses / recettes',
|
||||||
|
|
||||||
// charts:
|
// charts:
|
||||||
'chart' => 'Diagramme',
|
'chart' => 'Graphique',
|
||||||
'month' => 'Mois',
|
'month' => 'Mois',
|
||||||
'budget' => 'Budget',
|
'budget' => 'Budget',
|
||||||
'spent' => 'Dépensé',
|
'spent' => 'Dépensé',
|
||||||
@@ -990,7 +990,7 @@ return [
|
|||||||
'left' => 'Reste',
|
'left' => 'Reste',
|
||||||
'max-amount' => 'Montant maximum',
|
'max-amount' => 'Montant maximum',
|
||||||
'min-amount' => 'Montant minimum',
|
'min-amount' => 'Montant minimum',
|
||||||
'journal-amount' => 'Entrée de facture courante',
|
'journal-amount' => 'Entrée de la facture courante',
|
||||||
'name' => 'Nom',
|
'name' => 'Nom',
|
||||||
'date' => 'Date',
|
'date' => 'Date',
|
||||||
'paid' => 'Payé',
|
'paid' => 'Payé',
|
||||||
@@ -1001,7 +1001,7 @@ return [
|
|||||||
'balance' => 'Solde',
|
'balance' => 'Solde',
|
||||||
'sum' => 'Somme',
|
'sum' => 'Somme',
|
||||||
'average' => 'Moyenne',
|
'average' => 'Moyenne',
|
||||||
'balanceFor' => 'Balance pour :name',
|
'balanceFor' => 'Solde pour :name',
|
||||||
|
|
||||||
// piggy banks:
|
// piggy banks:
|
||||||
'add_money_to_piggy' => 'Ajouter de l’argent à la tirelire ":name"',
|
'add_money_to_piggy' => 'Ajouter de l’argent à la tirelire ":name"',
|
||||||
@@ -1009,7 +1009,7 @@ return [
|
|||||||
'new_piggy_bank' => 'Nouvelle tirelire',
|
'new_piggy_bank' => 'Nouvelle tirelire',
|
||||||
'store_piggy_bank' => 'Créer une nouvelle tirelire',
|
'store_piggy_bank' => 'Créer une nouvelle tirelire',
|
||||||
'stored_piggy_bank' => 'Créer une nouvelle tirelire ":name"',
|
'stored_piggy_bank' => 'Créer une nouvelle tirelire ":name"',
|
||||||
'account_status' => 'Statut du compte',
|
'account_status' => 'État du compte',
|
||||||
'left_for_piggy_banks' => 'Reste pour les tirelires',
|
'left_for_piggy_banks' => 'Reste pour les tirelires',
|
||||||
'sum_of_piggy_banks' => 'Somme des tirelires',
|
'sum_of_piggy_banks' => 'Somme des tirelires',
|
||||||
'saved_so_far' => 'Mis de côté jusqu\'à présent',
|
'saved_so_far' => 'Mis de côté jusqu\'à présent',
|
||||||
@@ -1024,7 +1024,7 @@ return [
|
|||||||
'remove' => 'Enlever',
|
'remove' => 'Enlever',
|
||||||
'max_amount_add' => 'Le montant maximum que vous pouvez ajouter est',
|
'max_amount_add' => 'Le montant maximum que vous pouvez ajouter est',
|
||||||
'max_amount_remove' => 'Le montant maximum que vous pouvez supprimer est',
|
'max_amount_remove' => 'Le montant maximum que vous pouvez supprimer est',
|
||||||
'update_piggy_button' => 'Mise à jour tirelire',
|
'update_piggy_button' => 'Mise à jour de la tirelire',
|
||||||
'update_piggy_title' => 'Mise à jour de tirelire ":name"',
|
'update_piggy_title' => 'Mise à jour de tirelire ":name"',
|
||||||
'updated_piggy_bank' => 'Mise à jour de la tirelire ":name"',
|
'updated_piggy_bank' => 'Mise à jour de la tirelire ":name"',
|
||||||
'details' => 'Détails',
|
'details' => 'Détails',
|
||||||
@@ -1082,7 +1082,7 @@ return [
|
|||||||
'block_code_expired' => 'Compte démo expiré',
|
'block_code_expired' => 'Compte démo expiré',
|
||||||
'no_block_code' => 'Aucune raison pour le blocage ou utilisateur non bloqué',
|
'no_block_code' => 'Aucune raison pour le blocage ou utilisateur non bloqué',
|
||||||
'block_code_email_changed' => 'L\'utilisateur n\'a pas encore confirmé sa nouvelle adresse e-mail',
|
'block_code_email_changed' => 'L\'utilisateur n\'a pas encore confirmé sa nouvelle adresse e-mail',
|
||||||
'admin_update_email' => 'Contrairement à la page de profil, l\'utilisateur NE SERA PAS informé que son adresse email a changé!',
|
'admin_update_email' => 'Contrairement à la page de profil, l\'utilisateur NE SERA PAS informé que son adresse email a changé !',
|
||||||
'update_user' => 'Utilisateur mis à jour',
|
'update_user' => 'Utilisateur mis à jour',
|
||||||
'updated_user' => 'Les données utilisateur ont bien été modifiées.',
|
'updated_user' => 'Les données utilisateur ont bien été modifiées.',
|
||||||
'delete_user' => 'Supprimer l\'utilisateur :email',
|
'delete_user' => 'Supprimer l\'utilisateur :email',
|
||||||
@@ -1108,9 +1108,9 @@ return [
|
|||||||
'link_type_help_outward' => 'Par exemple "est dupliqué par"',
|
'link_type_help_outward' => 'Par exemple "est dupliqué par"',
|
||||||
'save_connections_by_moving' => 'Enregistrez le lien entre ces transactions en les déplaçant vers un autre type de lien :',
|
'save_connections_by_moving' => 'Enregistrez le lien entre ces transactions en les déplaçant vers un autre type de lien :',
|
||||||
'do_not_save_connection' => '(ne pas enregistrer la connexion)',
|
'do_not_save_connection' => '(ne pas enregistrer la connexion)',
|
||||||
'link_transaction' => 'Lien transaction',
|
'link_transaction' => 'Lier la transaction',
|
||||||
'link_to_other_transaction' => 'Lier cette transaction à une autre transaction',
|
'link_to_other_transaction' => 'Lier cette transaction à une autre transaction',
|
||||||
'select_transaction_to_link' => 'Sélectionnez une transaction pour lier cette transaction à',
|
'select_transaction_to_link' => 'Sélectionnez une transaction à laquelle lier cette transaction',
|
||||||
'this_transaction' => 'Cette transaction',
|
'this_transaction' => 'Cette transaction',
|
||||||
'transaction' => 'Transaction',
|
'transaction' => 'Transaction',
|
||||||
'comments' => 'Commentaires',
|
'comments' => 'Commentaires',
|
||||||
|
@@ -219,7 +219,7 @@ return [
|
|||||||
'column_account-iban' => 'Compte d’actif (IBAN)',
|
'column_account-iban' => 'Compte d’actif (IBAN)',
|
||||||
'column_account-id' => 'Compte d\'actif (ID correspondant à FF3)',
|
'column_account-id' => 'Compte d\'actif (ID correspondant à FF3)',
|
||||||
'column_account-name' => 'Compte d’actif (nom)',
|
'column_account-name' => 'Compte d’actif (nom)',
|
||||||
'column_account-bic' => 'Asset account (BIC)',
|
'column_account-bic' => 'Compte d’actif (BIC)',
|
||||||
'column_amount' => 'Montant',
|
'column_amount' => 'Montant',
|
||||||
'column_amount_foreign' => 'Montant (en devise étrangère)',
|
'column_amount_foreign' => 'Montant (en devise étrangère)',
|
||||||
'column_amount_debit' => 'Montant (colonne débit)',
|
'column_amount_debit' => 'Montant (colonne débit)',
|
||||||
|
@@ -112,7 +112,7 @@ return [
|
|||||||
'sepa-cc' => 'Code de compensation SEPA',
|
'sepa-cc' => 'Code de compensation SEPA',
|
||||||
'sepa-ep' => 'Objectif externe SEPA',
|
'sepa-ep' => 'Objectif externe SEPA',
|
||||||
'sepa-ci' => 'Identifiant Créancier SEPA',
|
'sepa-ci' => 'Identifiant Créancier SEPA',
|
||||||
'sepa-batch-id' => 'SEPA Batch ID',
|
'sepa-batch-id' => 'ID de lot SEPA',
|
||||||
'external_id' => 'ID externe',
|
'external_id' => 'ID externe',
|
||||||
'account_at_bunq' => 'Compte avec bunq',
|
'account_at_bunq' => 'Compte avec bunq',
|
||||||
'file_name' => 'Nom du fichier',
|
'file_name' => 'Nom du fichier',
|
||||||
|
@@ -50,8 +50,8 @@ return [
|
|||||||
'at_least_one_action' => 'Une règle doit avoir au moins une action.',
|
'at_least_one_action' => 'Une règle doit avoir au moins une action.',
|
||||||
'base64' => 'Il ne s\'agit pas de données base64 valides.',
|
'base64' => 'Il ne s\'agit pas de données base64 valides.',
|
||||||
'model_id_invalid' => 'L’ID fournit ne semble pas valide pour ce modèle.',
|
'model_id_invalid' => 'L’ID fournit ne semble pas valide pour ce modèle.',
|
||||||
'more' => ':attribute must be larger than :value.',
|
'more' => ':attribute doit être supérieur à :value.',
|
||||||
'less' => ':attribute must be less than 10,000,000',
|
'less' => ':attribute doit être inférieur à 10 000 000',
|
||||||
'active_url' => 'Le champ :attribute n\'est pas une URL valide.',
|
'active_url' => 'Le champ :attribute n\'est pas une URL valide.',
|
||||||
'after' => 'Le champ :attribute doit être une date postérieure à :date.',
|
'after' => 'Le champ :attribute doit être une date postérieure à :date.',
|
||||||
'alpha' => 'Le champ :attribute doit seulement contenir des lettres.',
|
'alpha' => 'Le champ :attribute doit seulement contenir des lettres.',
|
||||||
|
@@ -24,7 +24,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'html_language' => 'it',
|
'html_language' => 'it',
|
||||||
'locale' => 'it, Italiano, it_IT, it_IT.utf8, it_IT.UTF-8',
|
'locale' => 'it, Italiano, it_IT.utf8, it_IT.UTF-8',
|
||||||
'month' => '%B %Y',
|
'month' => '%B %Y',
|
||||||
'month_and_day' => '%e %B %Y',
|
'month_and_day' => '%e %B %Y',
|
||||||
'month_and_date_day' => '%A %B %e %Y',
|
'month_and_date_day' => '%A %B %e %Y',
|
||||||
|
@@ -520,8 +520,8 @@ return [
|
|||||||
'secure_pw_history' => 'Nell\'agosto 2017 il noto ricercatore di sicurezza Troy Hunt ha pubblicato una lista di 306 milioni di password rubate. Queste password sono state rubate durante incursioni in aziende come LinkedIn, Adobe e NeoPets (e molte altre).',
|
'secure_pw_history' => 'Nell\'agosto 2017 il noto ricercatore di sicurezza Troy Hunt ha pubblicato una lista di 306 milioni di password rubate. Queste password sono state rubate durante incursioni in aziende come LinkedIn, Adobe e NeoPets (e molte altre).',
|
||||||
'secure_pw_check_box' => 'Selezionando la casella, Firefly III invierà l\'hash SHA1 della tua password a <a href="https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/">il sito web di Troy Hunt</a> per vedere se è presente nell\'elenco. Questo ti impedirà di usare password non sicure come raccomandato nell\'ultima <a href="https://pages.nist.gov/800-63-3/sp800-63b.html">Pubblicazione speciale NIST</a> su questo argomento.',
|
'secure_pw_check_box' => 'Selezionando la casella, Firefly III invierà l\'hash SHA1 della tua password a <a href="https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/">il sito web di Troy Hunt</a> per vedere se è presente nell\'elenco. Questo ti impedirà di usare password non sicure come raccomandato nell\'ultima <a href="https://pages.nist.gov/800-63-3/sp800-63b.html">Pubblicazione speciale NIST</a> su questo argomento.',
|
||||||
'secure_pw_sha1' => 'Ma pensavo che SHA1 fosse rotto?',
|
'secure_pw_sha1' => 'Ma pensavo che SHA1 fosse rotto?',
|
||||||
'secure_pw_hash_speed' => 'Yes, but not in this context. As you can read on <a href="https://shattered.io/">the website detailing how they broke SHA1</a>, it is now slightly easier to find a "collision": another digest that results in the same SHA1-hash. It now only takes 10,000 years using a single-GPU machine.',
|
'secure_pw_hash_speed' => 'Sì, ma non in questo contesto. Come puoi leggere sul <a href="https://shattered.io/">sito che descrive in dettaglio come è stato sconfitto SHA1</a>, ora è leggermente più facile trovare una "collisione", ovvero un altro digest che abbia lo stesso hash in SHA1. Ora sono richiesti solamente 10.000 anni usando una macchina con una singola GPU.',
|
||||||
'secure_pw_hash_security' => 'This digest would not be equal to your password, nor would it be useful on (a site like) Firefly III. This application does not use SHA1 for password verification. So it is safe to check this box. Your password is hashed and only the first five characters of this digest are sent over HTTPS.',
|
'secure_pw_hash_security' => 'Questo digest non sarebbe uguale alla tua password né sarebbe utile su (un sito come) Firefly III. Questa applicazione non usa SHA1 per la verifica della password. Della tua password ne viene fatto l\'hash e solo i primi cinque caratteri di questo digest vengono inviati via HTTPS.',
|
||||||
'secure_pw_should' => 'Devo controllare la scatola?',
|
'secure_pw_should' => 'Devo controllare la scatola?',
|
||||||
'secure_pw_long_password' => 'Se hai appena generato una password lunga e monouso per Firefly III utilizzando un qualche tipo di generatore di password: <strong>no</strong>.',
|
'secure_pw_long_password' => 'Se hai appena generato una password lunga e monouso per Firefly III utilizzando un qualche tipo di generatore di password: <strong>no</strong>.',
|
||||||
'secure_pw_short' => 'Se hai appena inserito la password, usi sempre: <em>Si prega di</em>.',
|
'secure_pw_short' => 'Se hai appena inserito la password, usi sempre: <em>Si prega di</em>.',
|
||||||
|
@@ -219,7 +219,7 @@ return [
|
|||||||
'column_account-iban' => 'Conto attività (IBAN)',
|
'column_account-iban' => 'Conto attività (IBAN)',
|
||||||
'column_account-id' => 'ID conto attività (mappa FF3)',
|
'column_account-id' => 'ID conto attività (mappa FF3)',
|
||||||
'column_account-name' => 'Conto attività (nome)',
|
'column_account-name' => 'Conto attività (nome)',
|
||||||
'column_account-bic' => 'Asset account (BIC)',
|
'column_account-bic' => 'Conto attività (BIC)',
|
||||||
'column_amount' => 'Importo',
|
'column_amount' => 'Importo',
|
||||||
'column_amount_foreign' => 'Importo (in altra valuta)',
|
'column_amount_foreign' => 'Importo (in altra valuta)',
|
||||||
'column_amount_debit' => 'Importo (colonna debito)',
|
'column_amount_debit' => 'Importo (colonna debito)',
|
||||||
|
@@ -112,7 +112,7 @@ return [
|
|||||||
'sepa-cc' => 'Codice Compensazione SEPA',
|
'sepa-cc' => 'Codice Compensazione SEPA',
|
||||||
'sepa-ep' => 'SEPA External Purpose',
|
'sepa-ep' => 'SEPA External Purpose',
|
||||||
'sepa-ci' => 'Identificativo Creditore SEPA',
|
'sepa-ci' => 'Identificativo Creditore SEPA',
|
||||||
'sepa-batch-id' => 'SEPA Batch ID',
|
'sepa-batch-id' => 'ID Batch SEPA',
|
||||||
'external_id' => 'ID esterno',
|
'external_id' => 'ID esterno',
|
||||||
'account_at_bunq' => 'Conto con Bunq',
|
'account_at_bunq' => 'Conto con Bunq',
|
||||||
'file_name' => 'Nome del file',
|
'file_name' => 'Nome del file',
|
||||||
|
@@ -50,8 +50,8 @@ return [
|
|||||||
'at_least_one_action' => 'Una regola deve avere almeno una azione.',
|
'at_least_one_action' => 'Una regola deve avere almeno una azione.',
|
||||||
'base64' => 'Questi non sono dati codificati in base64 validi.',
|
'base64' => 'Questi non sono dati codificati in base64 validi.',
|
||||||
'model_id_invalid' => 'L\'ID fornito sembra non essere valido per questo modello.',
|
'model_id_invalid' => 'L\'ID fornito sembra non essere valido per questo modello.',
|
||||||
'more' => ':attribute must be larger than :value.',
|
'more' => ':attribute deve essere più grande di :value.',
|
||||||
'less' => ':attribute must be less than 10,000,000',
|
'less' => ':attribute deve essere minore di 10.000.000',
|
||||||
'active_url' => ':attribute non è un URL valido.',
|
'active_url' => ':attribute non è un URL valido.',
|
||||||
'after' => ':attribute deve essere una data dopo :date.',
|
'after' => ':attribute deve essere una data dopo :date.',
|
||||||
'alpha' => ':attribute può contenere solo lettere.',
|
'alpha' => ':attribute può contenere solo lettere.',
|
||||||
|
@@ -24,7 +24,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'html_language' => 'nl',
|
'html_language' => 'nl',
|
||||||
'locale' => 'nl, Dutch, nl_NL, nl_NL.utf8, nl_NL.UTF-8',
|
'locale' => 'nl, Dutch, nl_NL.utf8, nl_NL.UTF-8',
|
||||||
'month' => '%B %Y',
|
'month' => '%B %Y',
|
||||||
'month_and_day' => '%e %B %Y',
|
'month_and_day' => '%e %B %Y',
|
||||||
'month_and_date_day' => '%A %e %B %Y',
|
'month_and_date_day' => '%A %e %B %Y',
|
||||||
|
@@ -520,8 +520,8 @@ return [
|
|||||||
'secure_pw_history' => 'De bekende security onderzoeker Troy Hunt gaf in augustus 2017 een lijst vrij van 306 miljoen gestolen wachtwoorden. Deze wachtwoorden waren gestolen tijdens hacks van bekende bedrijven zoals LinkedIn, Adobe en NeoPets (en vele anderen).',
|
'secure_pw_history' => 'De bekende security onderzoeker Troy Hunt gaf in augustus 2017 een lijst vrij van 306 miljoen gestolen wachtwoorden. Deze wachtwoorden waren gestolen tijdens hacks van bekende bedrijven zoals LinkedIn, Adobe en NeoPets (en vele anderen).',
|
||||||
'secure_pw_check_box' => 'Zet het vinkje, en Firefly III stuurt de eerste vijf karakters van de SHA1-hash van je wachtwoord naar <a href="https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/">de website van Troy Hunt</a> om te zien of-ie op de lijst staat. Dit voorkomt dat je een onveilig wachtwoord gebruikt, zoals is voorgeschreven in <a href="https://pages.nist.gov/800-63-3/sp800-63b.html">een speciale publicatie van het NIST</a> over dit onderwerp.',
|
'secure_pw_check_box' => 'Zet het vinkje, en Firefly III stuurt de eerste vijf karakters van de SHA1-hash van je wachtwoord naar <a href="https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/">de website van Troy Hunt</a> om te zien of-ie op de lijst staat. Dit voorkomt dat je een onveilig wachtwoord gebruikt, zoals is voorgeschreven in <a href="https://pages.nist.gov/800-63-3/sp800-63b.html">een speciale publicatie van het NIST</a> over dit onderwerp.',
|
||||||
'secure_pw_sha1' => 'Maar SHA1 is toch gebroken?',
|
'secure_pw_sha1' => 'Maar SHA1 is toch gebroken?',
|
||||||
'secure_pw_hash_speed' => 'Yes, but not in this context. As you can read on <a href="https://shattered.io/">the website detailing how they broke SHA1</a>, it is now slightly easier to find a "collision": another digest that results in the same SHA1-hash. It now only takes 10,000 years using a single-GPU machine.',
|
'secure_pw_hash_speed' => 'Ja, maar niet in deze context. Zoals je kan lezen op <a href="https://shattered.io/">de website over SHA1</a> is het nu makkelijker geworden om een "collision" te vinden: twee stukken tekst die dezelfde SHA1-hash opleveren. Dit kan nu in 10.000 jaar op een machine met één grafische kaart.',
|
||||||
'secure_pw_hash_security' => 'This digest would not be equal to your password, nor would it be useful on (a site like) Firefly III. This application does not use SHA1 for password verification. So it is safe to check this box. Your password is hashed and only the first five characters of this digest are sent over HTTPS.',
|
'secure_pw_hash_security' => 'Deze hash is niet gelijk aan jouw wachtwoord, noch is deze te gebruiken op een site (zoals) Firefly III. Deze app gebruikt geen SHA1 voor wachtwoordverificatie. Dat maakt het veilig om de checkbox aan te vinken. Je wachtwoord wordt gehasht en alleen de eerste vijf karakters van die hash worden verstuurt over HTTPS.',
|
||||||
'secure_pw_should' => 'Vinkje zetten of niet?',
|
'secure_pw_should' => 'Vinkje zetten of niet?',
|
||||||
'secure_pw_long_password' => 'Als je net een lang wachtwoord hebt gegenereerd met een password generator tool: <strong>nee</strong>.',
|
'secure_pw_long_password' => 'Als je net een lang wachtwoord hebt gegenereerd met een password generator tool: <strong>nee</strong>.',
|
||||||
'secure_pw_short' => 'Gebruik je het wachtwoord dat je altijd gebruikt? <em>Ja, doen!</em>',
|
'secure_pw_short' => 'Gebruik je het wachtwoord dat je altijd gebruikt? <em>Ja, doen!</em>',
|
||||||
|
@@ -219,7 +219,7 @@ return [
|
|||||||
'column_account-iban' => 'Betaalrekening (IBAN)',
|
'column_account-iban' => 'Betaalrekening (IBAN)',
|
||||||
'column_account-id' => 'Betaalrekening (ID gelijk aan FF3)',
|
'column_account-id' => 'Betaalrekening (ID gelijk aan FF3)',
|
||||||
'column_account-name' => 'Betaalrekeningnaam',
|
'column_account-name' => 'Betaalrekeningnaam',
|
||||||
'column_account-bic' => 'Asset account (BIC)',
|
'column_account-bic' => 'Betaalrekening (BIC)',
|
||||||
'column_amount' => 'Bedrag',
|
'column_amount' => 'Bedrag',
|
||||||
'column_amount_foreign' => 'Bedrag (in vreemde valuta)',
|
'column_amount_foreign' => 'Bedrag (in vreemde valuta)',
|
||||||
'column_amount_debit' => 'Bedrag (debetkolom)',
|
'column_amount_debit' => 'Bedrag (debetkolom)',
|
||||||
|
@@ -112,7 +112,7 @@ return [
|
|||||||
'sepa-cc' => 'SEPA vrijwaringscode',
|
'sepa-cc' => 'SEPA vrijwaringscode',
|
||||||
'sepa-ep' => 'SEPA transactiedoeleinde',
|
'sepa-ep' => 'SEPA transactiedoeleinde',
|
||||||
'sepa-ci' => 'SEPA crediteuridentificatie',
|
'sepa-ci' => 'SEPA crediteuridentificatie',
|
||||||
'sepa-batch-id' => 'SEPA Batch ID',
|
'sepa-batch-id' => 'SEPA batchnummer',
|
||||||
'external_id' => 'Externe ID',
|
'external_id' => 'Externe ID',
|
||||||
'account_at_bunq' => 'Bunq-account',
|
'account_at_bunq' => 'Bunq-account',
|
||||||
'file_name' => 'Bestandsnaam',
|
'file_name' => 'Bestandsnaam',
|
||||||
|
@@ -50,8 +50,8 @@ return [
|
|||||||
'at_least_one_action' => 'De regel moet minstens één actie hebben.',
|
'at_least_one_action' => 'De regel moet minstens één actie hebben.',
|
||||||
'base64' => 'Dit is geen geldige base64 gecodeerde data.',
|
'base64' => 'Dit is geen geldige base64 gecodeerde data.',
|
||||||
'model_id_invalid' => 'Dit ID past niet bij dit object.',
|
'model_id_invalid' => 'Dit ID past niet bij dit object.',
|
||||||
'more' => ':attribute must be larger than :value.',
|
'more' => ':attribute moet groter zijn dan :value.',
|
||||||
'less' => ':attribute must be less than 10,000,000',
|
'less' => ':attribute moet minder zijn dan 10.000.000',
|
||||||
'active_url' => ':attribute is geen geldige URL.',
|
'active_url' => ':attribute is geen geldige URL.',
|
||||||
'after' => ':attribute moet een datum na :date zijn.',
|
'after' => ':attribute moet een datum na :date zijn.',
|
||||||
'alpha' => ':attribute mag alleen letters bevatten.',
|
'alpha' => ':attribute mag alleen letters bevatten.',
|
||||||
|
Reference in New Issue
Block a user