Merge branch 'release/5.7.1'

This commit is contained in:
James Cole 2022-04-04 05:48:39 +02:00
commit 7d438375c1
36 changed files with 156 additions and 92 deletions

View File

@ -36,20 +36,14 @@ class RegisteredUser extends Event
{ {
use SerializesModels; use SerializesModels;
/** @var string The users IP address */ public User $user;
public $ipAddress;
/** @var User The user */
public $user;
/** /**
* Create a new event instance. This event is triggered when a new user registers. * Create a new event instance. This event is triggered when a new user registers.
* * @param User $user
* @param User $user
* @param string $ipAddress
*/ */
public function __construct(User $user, string $ipAddress) public function __construct(User $user)
{ {
$this->user = $user; $this->user = $user;
$this->ipAddress = $ipAddress;
} }
} }

View File

@ -171,6 +171,7 @@ class Handler extends ExceptionHandler
'url' => request()->fullUrl(), 'url' => request()->fullUrl(),
'userAgent' => request()->userAgent(), 'userAgent' => request()->userAgent(),
'json' => request()->acceptsJson(), 'json' => request()->acceptsJson(),
'method' => request()->method(),
'headers' => $headers, 'headers' => $headers,
]; ];

View File

@ -309,7 +309,6 @@ class UserEventHandler
// get the email address // get the email address
$email = $event->user->email; $email = $event->user->email;
$uri = route('index'); $uri = route('index');
$ipAddress = $event->ipAddress;
// see if user has alternative email address: // see if user has alternative email address:
$pref = app('preferences')->getForUser($event->user, 'remote_guard_alt_email'); $pref = app('preferences')->getForUser($event->user, 'remote_guard_alt_email');
@ -319,7 +318,7 @@ class UserEventHandler
// send email. // send email.
try { try {
Mail::to($email)->send(new RegisteredUserMail($uri, $ipAddress)); Mail::to($email)->send(new RegisteredUserMail($uri));
} catch (Exception $e) { // @phpstan-ignore-line } catch (Exception $e) { // @phpstan-ignore-line
Log::error($e->getMessage()); Log::error($e->getMessage());

View File

@ -403,7 +403,7 @@ trait ModifiesPiggyBanks
// if the piggy bank is now smaller than the current relevant rep, // if the piggy bank is now smaller than the current relevant rep,
// remove money from the rep. // remove money from the rep.
$repetition = $this->getRepetition($piggyBank); $repetition = $this->getRepetition($piggyBank);
if (null !== $repetition && $repetition->currentamount > $piggyBank->targetamount) { if (null !== $repetition && $repetition->currentamount > $piggyBank->targetamount && 0.0 !== (float)$piggyBank->targetamount) {
$diff = bcsub($piggyBank->targetamount, $repetition->currentamount); $diff = bcsub($piggyBank->targetamount, $repetition->currentamount);
$this->createEvent($piggyBank, $diff); $this->createEvent($piggyBank, $diff);

View File

@ -582,6 +582,32 @@ class Navigation
return $date; return $date;
} }
switch ($repeatFreq) {
default:
break;
case 'last7';
$date->subDays(7);
return $date;
case 'last30';
$date->subDays(30);
return $date;
case 'last90':
$date->subDays(90);
return $date;
case 'last365':
$date->subDays(365);
return $date;
case 'YTD':
$date->subYear();
return $date;
case 'QTD':
$date->subQuarter();
return $date;
case 'MTD':
$date->subMonth();
return $date;
}
throw new FireflyException(sprintf('Cannot do subtractPeriod for $repeat_freq "%s"', $repeatFreq)); throw new FireflyException(sprintf('Cannot do subtractPeriod for $repeat_freq "%s"', $repeatFreq));
} }
@ -629,6 +655,19 @@ class Navigation
return $fiscalHelper->endOfFiscalYear($end); return $fiscalHelper->endOfFiscalYear($end);
} }
switch ($range) {
default:
break;
case 'last7';
case 'last30';
case 'last90':
case 'last365':
case 'YTD':
case 'QTD':
case 'MTD':
return $end;
}
throw new FireflyException(sprintf('updateEndDate cannot handle range "%s"', $range)); throw new FireflyException(sprintf('updateEndDate cannot handle range "%s"', $range));
} }
@ -673,7 +712,31 @@ class Navigation
return $fiscalHelper->startOfFiscalYear($start); return $fiscalHelper->startOfFiscalYear($start);
} }
switch ($range) {
default:
break;
case 'last7';
$start->subDays(7);
return $start;
case 'last30';
$start->subDays(30);
return $start;
case 'last90':
$start->subDays(90);
return $start;
case 'last365':
$start->subDays(365);
return $start;
case 'YTD':
$start->startOfYear();
return $start;
case 'QTD':
$start->startOfQuarter();
return $start;
case 'MTD':
$start->startOfMonth();
return $start;
}
throw new FireflyException(sprintf('updateStartDate cannot handle range "%s"', $range)); throw new FireflyException(sprintf('updateStartDate cannot handle range "%s"', $range));
} }
} }

View File

@ -57,8 +57,8 @@ class ObjectGroupTransformer extends AbstractTransformer
return [ return [
'id' => (string) $objectGroup->id, 'id' => (string) $objectGroup->id,
'created_at' => $objectGroup->created_at->toAtomString(), 'created_at' => $objectGroup->created_at?->toAtomString(),
'updated_at' => $objectGroup->updated_at->toAtomString(), 'updated_at' => $objectGroup->updated_at?->toAtomString(),
'title' => $objectGroup->title, 'title' => $objectGroup->title,
'order' => (int) $objectGroup->order, 'order' => (int) $objectGroup->order,
'links' => [ 'links' => [

View File

@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/). This project adheres to [Semantic Versioning](http://semver.org/).
## 5.7.1 - 2022-04-05
### Fixed
- Fixes an issue with showing piggy banks
- [Issue 5961](https://github.com/firefly-iii/firefly-iii/issues/5961) Fixes an issue registering new users
## 5.7.0 - 2022-04-04 ## 5.7.0 - 2022-04-04
- ⚠️ This release no longer supports LDAP. - ⚠️ This release no longer supports LDAP.

View File

@ -101,7 +101,7 @@ return [
'webhooks' => false, 'webhooks' => false,
'handle_debts' => true, 'handle_debts' => true,
], ],
'version' => '5.7.0', 'version' => '5.7.1',
'api_version' => '1.5.6', 'api_version' => '1.5.6',
'db_version' => 18, 'db_version' => 18,

View File

@ -45,7 +45,7 @@ export default {
"delete": "L\u00f6schen", "delete": "L\u00f6schen",
"reconcile": "Abgleichen", "reconcile": "Abgleichen",
"create_new_asset": "Neues Bestandskonto erstellen", "create_new_asset": "Neues Bestandskonto erstellen",
"confirm_action": "Confirm action", "confirm_action": "Aktion best\u00e4tigen",
"rule_trigger_source_account_starts_choice": "Name des Quellkontos beginnt mit..", "rule_trigger_source_account_starts_choice": "Name des Quellkontos beginnt mit..",
"rule_trigger_source_account_ends_choice": "Quellkonto-Name endet mit..", "rule_trigger_source_account_ends_choice": "Quellkonto-Name endet mit..",
"rule_trigger_source_account_is_choice": "Quellkonto-Name lautet..", "rule_trigger_source_account_is_choice": "Quellkonto-Name lautet..",

View File

@ -18,7 +18,7 @@ export default {
}, },
"list": { "list": {
"name": "Nom", "name": "Nom",
"account_number": "Account number", "account_number": "N\u00b0 de compte",
"currentBalance": "Solde courant", "currentBalance": "Solde courant",
"lastActivity": "Activit\u00e9 r\u00e9cente", "lastActivity": "Activit\u00e9 r\u00e9cente",
"active": "Actif ?" "active": "Actif ?"
@ -45,7 +45,7 @@ export default {
"delete": "Supprimer", "delete": "Supprimer",
"reconcile": "Rapprocher", "reconcile": "Rapprocher",
"create_new_asset": "Cr\u00e9er un nouveau compte d\u2019actif", "create_new_asset": "Cr\u00e9er un nouveau compte d\u2019actif",
"confirm_action": "Confirm action", "confirm_action": "Confirmer l'action",
"rule_trigger_source_account_starts_choice": "Le nom du compte source commence par..", "rule_trigger_source_account_starts_choice": "Le nom du compte source commence par..",
"rule_trigger_source_account_ends_choice": "Le nom du compte source se termine par..", "rule_trigger_source_account_ends_choice": "Le nom du compte source se termine par..",
"rule_trigger_source_account_is_choice": "Le nom du compte source est..", "rule_trigger_source_account_is_choice": "Le nom du compte source est..",

View File

@ -18,7 +18,7 @@ export default {
}, },
"list": { "list": {
"name": "Nome", "name": "Nome",
"account_number": "Account number", "account_number": "Numero conto",
"currentBalance": "Saldo corrente", "currentBalance": "Saldo corrente",
"lastActivity": "Ultima attivit\u00e0", "lastActivity": "Ultima attivit\u00e0",
"active": "Attivo" "active": "Attivo"

View File

@ -18,7 +18,7 @@ export default {
}, },
"list": { "list": {
"name": "Nazwa", "name": "Nazwa",
"account_number": "Account number", "account_number": "Numer konta",
"currentBalance": "Bie\u017c\u0105ce saldo", "currentBalance": "Bie\u017c\u0105ce saldo",
"lastActivity": "Ostatnia aktywno\u015b\u0107", "lastActivity": "Ostatnia aktywno\u015b\u0107",
"active": "Jest aktywny?" "active": "Jest aktywny?"
@ -45,7 +45,7 @@ export default {
"delete": "Usu\u0144", "delete": "Usu\u0144",
"reconcile": "Uzgodnij", "reconcile": "Uzgodnij",
"create_new_asset": "Utw\u00f3rz nowe konto aktyw\u00f3w", "create_new_asset": "Utw\u00f3rz nowe konto aktyw\u00f3w",
"confirm_action": "Confirm action", "confirm_action": "Potwierd\u017a akcj\u0119",
"rule_trigger_source_account_starts_choice": "Konto \u017ar\u00f3d\u0142owe si\u0119 zaczyna od..", "rule_trigger_source_account_starts_choice": "Konto \u017ar\u00f3d\u0142owe si\u0119 zaczyna od..",
"rule_trigger_source_account_ends_choice": "Konto \u017ar\u00f3d\u0142owe ko\u0144czy si\u0119 na..", "rule_trigger_source_account_ends_choice": "Konto \u017ar\u00f3d\u0142owe ko\u0144czy si\u0119 na..",
"rule_trigger_source_account_is_choice": "Kontem \u017ar\u00f3d\u0142owym jest..", "rule_trigger_source_account_is_choice": "Kontem \u017ar\u00f3d\u0142owym jest..",

View File

@ -18,7 +18,7 @@ export default {
}, },
"list": { "list": {
"name": "Namn", "name": "Namn",
"account_number": "Account number", "account_number": "Kontonummer",
"currentBalance": "Nuvarande saldo", "currentBalance": "Nuvarande saldo",
"lastActivity": "Senaste aktivitet", "lastActivity": "Senaste aktivitet",
"active": "\u00c4r aktiv?" "active": "\u00c4r aktiv?"
@ -45,7 +45,7 @@ export default {
"delete": "Ta bort", "delete": "Ta bort",
"reconcile": "Avst\u00e4mning", "reconcile": "Avst\u00e4mning",
"create_new_asset": "Skapa ett nytt tillg\u00e5ngskonto", "create_new_asset": "Skapa ett nytt tillg\u00e5ngskonto",
"confirm_action": "Confirm action", "confirm_action": "Bekr\u00e4fta \u00e5tg\u00e4rd",
"rule_trigger_source_account_starts_choice": "K\u00e4llkontonamn b\u00f6rjar med..", "rule_trigger_source_account_starts_choice": "K\u00e4llkontonamn b\u00f6rjar med..",
"rule_trigger_source_account_ends_choice": "K\u00e4llkontonamn slutar med..", "rule_trigger_source_account_ends_choice": "K\u00e4llkontonamn slutar med..",
"rule_trigger_source_account_is_choice": "K\u00e4llkontonamn \u00e4r..", "rule_trigger_source_account_is_choice": "K\u00e4llkontonamn \u00e4r..",

View File

@ -18,7 +18,7 @@ export default {
}, },
"list": { "list": {
"name": "\u540d\u79f0", "name": "\u540d\u79f0",
"account_number": "Account number", "account_number": "\u8d26\u6237\u53f7\u7801",
"currentBalance": "\u76ee\u524d\u4f59\u989d", "currentBalance": "\u76ee\u524d\u4f59\u989d",
"lastActivity": "\u4e0a\u6b21\u6d3b\u52a8", "lastActivity": "\u4e0a\u6b21\u6d3b\u52a8",
"active": "\u662f\u5426\u542f\u7528\uff1f" "active": "\u662f\u5426\u542f\u7528\uff1f"
@ -37,7 +37,7 @@ export default {
"asset_accounts": "\u8d44\u4ea7\u8d26\u6237", "asset_accounts": "\u8d44\u4ea7\u8d26\u6237",
"expense_accounts": "\u652f\u51fa\u8d26\u6237", "expense_accounts": "\u652f\u51fa\u8d26\u6237",
"revenue_accounts": "\u6536\u5165\u8d26\u6237", "revenue_accounts": "\u6536\u5165\u8d26\u6237",
"liabilities_accounts": "Liabilities" "liabilities_accounts": "\u503a\u52a1"
}, },
"firefly": { "firefly": {
"actions": "\u64cd\u4f5c", "actions": "\u64cd\u4f5c",

View File

@ -14,13 +14,14 @@ Patch releases are based on the major/minor release tag. The release speed is on
The different alpha and beta builds will be compiled from their corresponding tags. Please note they are done to assist in the stabilization process. If it breaks you get to keep both parts. The different alpha and beta builds will be compiled from their corresponding tags. Please note they are done to assist in the stabilization process. If it breaks you get to keep both parts.
### Minor Release Support Matrix ### Minor Release Support Matrix
| Version | Supported | | Version | Supported |
| ------- | ------------------ | |----------------------------------|--------------------|
| Firefly III v5.6.x | :white_check_mark: | | Firefly III v5.7.x | :white_check_mark: |
| Firefly III v5.5.x | :x: | | Firefly III v5.6.x | :x: |
| Firefly III v5.4.x | :x: | | Firefly III v5.5.x | :x: |
| Firefly III v5.3.x | :x: | | Firefly III v5.4.x | :x: |
| Firefly III v5.2.x (and earlier) | :x: | | Firefly III v5.3.x | :x: |
| Firefly III v5.2.x (and earlier) | :x: |
### Upgrade path and support policy ### Upgrade path and support policy
The upgrade path for Firefly III is: The upgrade path for Firefly III is:

View File

@ -31,7 +31,7 @@ return [
'split' => 'Teilen', 'split' => 'Teilen',
'single_split' => 'Teil', 'single_split' => 'Teil',
'clone' => 'Duplizieren', 'clone' => 'Duplizieren',
'confirm_action' => 'Confirm action', 'confirm_action' => 'Aktion bestätigen',
'last_seven_days' => 'Letzte sieben Tage', 'last_seven_days' => 'Letzte sieben Tage',
'last_thirty_days' => 'Letzte 30 Tage', 'last_thirty_days' => 'Letzte 30 Tage',
'last_180_days' => 'Letzte 180 Tage', 'last_180_days' => 'Letzte 180 Tage',

View File

@ -31,7 +31,7 @@ return [
'split' => 'Ventiler', 'split' => 'Ventiler',
'single_split' => 'Ventilation', 'single_split' => 'Ventilation',
'clone' => 'Cloner', 'clone' => 'Cloner',
'confirm_action' => 'Confirm action', 'confirm_action' => 'Confirmer l\'action',
'last_seven_days' => '7 Derniers Jours', 'last_seven_days' => '7 Derniers Jours',
'last_thirty_days' => 'Trente derniers jours', 'last_thirty_days' => 'Trente derniers jours',
'last_180_days' => '180 derniers jours', 'last_180_days' => '180 derniers jours',

View File

@ -76,7 +76,7 @@ return [
'type' => 'Type', 'type' => 'Type',
'completed' => 'Terminé', 'completed' => 'Terminé',
'iban' => 'Numéro IBAN', 'iban' => 'Numéro IBAN',
'account_number' => 'Account number', 'account_number' => 'N° de compte',
'paid_current_period' => 'Payé cette période', 'paid_current_period' => 'Payé cette période',
'email' => 'E-mail', 'email' => 'E-mail',
'registered_at' => 'Enregistré le', 'registered_at' => 'Enregistré le',

View File

@ -34,10 +34,10 @@ return [
'month_and_day_js' => 'Do MMMM YYYY', 'month_and_day_js' => 'Do MMMM YYYY',
//'month_and_date_day' => '%A %B %e, %Y', //'month_and_date_day' => '%A %B %e, %Y',
'month_and_date_day_js' => 'dddd MMMM Do, YYYY', 'month_and_date_day_js' => 'dddd D MMMM YYYY',
//'month_and_day_no_year' => '%B %e', //'month_and_day_no_year' => '%B %e',
'month_and_day_no_year_js' => 'MMMM Do', 'month_and_day_no_year_js' => 'D MMMM',
//'date_time' => '%B %e, %Y, @ %T', //'date_time' => '%B %e, %Y, @ %T',
'date_time_js' => 'Do MMMM YYYY, @ HH:mm:ss', 'date_time_js' => 'Do MMMM YYYY, @ HH:mm:ss',

View File

@ -76,7 +76,7 @@ return [
'type' => 'Tipo', 'type' => 'Tipo',
'completed' => 'Completato', 'completed' => 'Completato',
'iban' => 'IBAN', 'iban' => 'IBAN',
'account_number' => 'Account number', 'account_number' => 'Numero conto',
'paid_current_period' => 'Pagati in questo periodo', 'paid_current_period' => 'Pagati in questo periodo',
'email' => 'Email', 'email' => 'Email',
'registered_at' => 'Registrato il', 'registered_at' => 'Registrato il',

View File

@ -31,7 +31,7 @@ return [
'split' => 'Podziel', 'split' => 'Podziel',
'single_split' => 'Podział', 'single_split' => 'Podział',
'clone' => 'Sklonuj', 'clone' => 'Sklonuj',
'confirm_action' => 'Confirm action', 'confirm_action' => 'Potwierdź akcję',
'last_seven_days' => 'Ostatnie 7 dni', 'last_seven_days' => 'Ostatnie 7 dni',
'last_thirty_days' => 'Ostanie 30 dni', 'last_thirty_days' => 'Ostanie 30 dni',
'last_180_days' => 'Ostatnie 180 dni', 'last_180_days' => 'Ostatnie 180 dni',

View File

@ -76,7 +76,7 @@ return [
'type' => 'Typ', 'type' => 'Typ',
'completed' => 'Zakończone', 'completed' => 'Zakończone',
'iban' => 'IBAN', 'iban' => 'IBAN',
'account_number' => 'Account number', 'account_number' => 'Numer konta',
'paid_current_period' => 'Zapłacono w tym okresie', 'paid_current_period' => 'Zapłacono w tym okresie',
'email' => 'Adres E-Mail', 'email' => 'Adres E-Mail',
'registered_at' => 'Zarejestrowano', 'registered_at' => 'Zarejestrowano',

View File

@ -44,8 +44,8 @@ return [
// access token created // access token created
'access_token_created_subject' => 'En ny åtkomsttoken skapades', 'access_token_created_subject' => 'En ny åtkomsttoken skapades',
'access_token_created_body' => 'Någon (förhoppningsvis du) har just skapat en ny Firefly III API Access-token för ditt användarkonto.', 'access_token_created_body' => 'Någon (förhoppningsvis du) har just skapat en ny Firefly III API Access-token för ditt användarkonto.',
'access_token_created_explanation' => 'With this token, they can access **all** of your financial records through the Firefly III API.', 'access_token_created_explanation' => 'Med denna token, kan de få tillgång till <strong>alla</strong> dina finansiella poster genom Firefly III API.',
'access_token_created_revoke' => 'If this wasn\'t you, please revoke this token as soon as possible at :url', 'access_token_created_revoke' => 'Om detta inte var du, vänligen återkalla denna token så snart som möjligt på :url',
// registered // registered
'registered_subject' => 'Välkommen till Firefly III!', 'registered_subject' => 'Välkommen till Firefly III!',
@ -108,9 +108,9 @@ return [
'bill_warning_subject_now_end_date' => 'Your bill ":name" is due to end TODAY', 'bill_warning_subject_now_end_date' => 'Your bill ":name" is due to end TODAY',
'bill_warning_subject_extension_date' => 'Your bill ":name" is due to be extended or cancelled in :diff days', 'bill_warning_subject_extension_date' => 'Your bill ":name" is due to be extended or cancelled in :diff days',
'bill_warning_subject_now_extension_date' => 'Your bill ":name" is due to be extended or cancelled TODAY', 'bill_warning_subject_now_extension_date' => 'Your bill ":name" is due to be extended or cancelled TODAY',
'bill_warning_end_date' => 'Your bill **":name"** is due to end on :date. This moment will pass in about **:diff days**.', 'bill_warning_end_date' => 'Din räkning **":name"** förfaller :date. Detta ögonblick kommer att passera om cirka **:diff dagar**.',
'bill_warning_extension_date' => 'Your bill **":name"** is due to be extended or cancelled on :date. This moment will pass in about **:diff days**.', 'bill_warning_extension_date' => 'Din räkning **":name"** kommer att förlängas eller avbrytas den :date. Detta ögonblick kommer att passera om cirka **:diff dagar**.',
'bill_warning_end_date_zero' => 'Your bill **":name"** is due to end on :date. This moment will pass **TODAY!**', 'bill_warning_end_date_zero' => 'Din räkning **":name"** förfaller :date. Detta ögonblick kommer att passera **IDAG!**',
'bill_warning_extension_date_zero' => 'Your bill **":name"** is due to be extended or cancelled on :date. This moment will pass **TODAY!**', 'bill_warning_extension_date_zero' => 'Your bill **":name"** is due to be extended or cancelled on :date. This moment will pass **TODAY!**',
'bill_warning_please_action' => 'Please take the appropriate action.', 'bill_warning_please_action' => 'Please take the appropriate action.',

View File

@ -31,7 +31,7 @@ return [
'split' => 'Dela', 'split' => 'Dela',
'single_split' => 'Dela', 'single_split' => 'Dela',
'clone' => 'Klona', 'clone' => 'Klona',
'confirm_action' => 'Confirm action', 'confirm_action' => 'Bekräfta åtgärd',
'last_seven_days' => 'Senaste 7 dagarna', 'last_seven_days' => 'Senaste 7 dagarna',
'last_thirty_days' => 'Senaste 30 dagarna', 'last_thirty_days' => 'Senaste 30 dagarna',
'last_180_days' => 'Senaste 180 dagarna', 'last_180_days' => 'Senaste 180 dagarna',

View File

@ -76,7 +76,7 @@ return [
'type' => 'Typ', 'type' => 'Typ',
'completed' => 'Slutförd', 'completed' => 'Slutförd',
'iban' => 'IBAN', 'iban' => 'IBAN',
'account_number' => 'Account number', 'account_number' => 'Kontonummer',
'paid_current_period' => 'Betalt den här perioden', 'paid_current_period' => 'Betalt den här perioden',
'email' => 'E-post', 'email' => 'E-post',
'registered_at' => 'Registrerad den', 'registered_at' => 'Registrerad den',

View File

@ -73,6 +73,6 @@ return [
'asset_accounts' => '资产账户', 'asset_accounts' => '资产账户',
'expense_accounts' => '支出账户', 'expense_accounts' => '支出账户',
'revenue_accounts' => '收入账户', 'revenue_accounts' => '收入账户',
'liabilities_accounts' => 'Liabilities', 'liabilities_accounts' => '债务',
'placeholder' => '[Placeholder][占位符]', 'placeholder' => '[Placeholder][占位符]',
]; ];

View File

@ -45,15 +45,15 @@ return [
'access_token_created_subject' => '创建了一个新的访问令牌', 'access_token_created_subject' => '创建了一个新的访问令牌',
'access_token_created_body' => '有人(希望是您)刚刚为您的帐户创建了一个新的 Firefly III API 访问令牌。', 'access_token_created_body' => '有人(希望是您)刚刚为您的帐户创建了一个新的 Firefly III API 访问令牌。',
'access_token_created_explanation' => 'With this token, they can access **all** of your financial records through the Firefly III API.', 'access_token_created_explanation' => 'With this token, they can access **all** of your financial records through the Firefly III API.',
'access_token_created_revoke' => 'If this wasn\'t you, please revoke this token as soon as possible at :url', 'access_token_created_revoke' => '如果这不是您的操作,请尽快访问链接撤销该令牌::url。',
// registered // registered
'registered_subject' => '欢迎使用 Firefly III', 'registered_subject' => '欢迎使用 Firefly III',
'registered_welcome' => 'Welcome to [Firefly III](:address). Your registration has made it, and this email is here to confirm it. Yay!', 'registered_welcome' => '欢迎来到 [Firefly III](:address)。收到这封电子邮件即确认您的注册已经完成。耶!',
'registered_pw' => 'If you have forgotten your password already, please reset it using [the password reset tool](:address/password/reset).', 'registered_pw' => '如果您忘记了您的密码,请使用 [密码重置工具] (:address/password/reset) 重置密码。',
'registered_help' => '每个页面右上角都有一个帮助图标。如果您需要帮助,请点击它!', 'registered_help' => '每个页面右上角都有一个帮助图标。如果您需要帮助,请点击它!',
'registered_doc_html' => 'If you haven\'t already, please read the [grand theory](https://docs.firefly-iii.org/about-firefly-iii/personal-finances).', 'registered_doc_html' => '如果您尚未阅读过,请阅读一下[设计理念](https://docs.firefly-iii.org/about-firefly-iii/personal-finances)。',
'registered_doc_text' => 'If you haven\'t already, please also read the first use guide and the full description.', 'registered_doc_text' => '我们推荐您阅读新用户使用指南和完整说明。',
'registered_closing' => '祝您使用愉快!', 'registered_closing' => '祝您使用愉快!',
'registered_firefly_iii_link' => 'Firefly III:', 'registered_firefly_iii_link' => 'Firefly III:',
'registered_pw_reset_link' => '密码已重置', 'registered_pw_reset_link' => '密码已重置',
@ -62,25 +62,25 @@ return [
// email change // email change
'email_change_subject' => '您的 Firefly III 电子邮件地址已更改', 'email_change_subject' => '您的 Firefly III 电子邮件地址已更改',
'email_change_body_to_new' => '您或有人访问您的 Firefly III 帐户已更改您的电子邮件地址。 如果不是您操作的,请忽略并删除。', 'email_change_body_to_new' => '您或有人访问您的 Firefly III 帐户已更改您的电子邮件地址。 如果不是您操作的,请忽略并删除。',
'email_change_body_to_old' => 'You or somebody with access to your Firefly III account has changed your email address. If you did not expect this to happen, you **must** follow the "undo"-link below to protect your account!', 'email_change_body_to_old' => '您或拥有您帐户访问权限的人修改了您的电子邮件地址。如果您没有进行该操作,您**必须**点击下方的“撤销操作”链接来保护您的帐户!',
'email_change_ignore' => '如果该操作由您本人进行,您可以安全地忽略此消息。', 'email_change_ignore' => '如果该操作由您本人进行,您可以安全地忽略此消息。',
'email_change_old' => '旧的电子邮件地址为::email', 'email_change_old' => '旧的电子邮件地址为::email',
'email_change_old_strong' => 'The old email address was: **:email**', 'email_change_old_strong' => '旧电子邮件地址为:**:email**',
'email_change_new' => '新的电子邮件地址为::email', 'email_change_new' => '新的电子邮件地址为::email',
'email_change_new_strong' => 'The new email address is: **:email**', 'email_change_new_strong' => '新电子邮件地址是:**:email**',
'email_change_instructions' => '在您确认该项更改前,您无法使用 Firefly III。请点击下方链接进行操作。', 'email_change_instructions' => '在您确认该项更改前,您无法使用 Firefly III。请点击下方链接进行操作。',
'email_change_undo_link' => '若要撤销改动,请点击此链接:', 'email_change_undo_link' => '若要撤销改动,请点击此链接:',
// OAuth token created // OAuth token created
'oauth_created_subject' => '新的 OAuth 客户端完成创建', 'oauth_created_subject' => '新的 OAuth 客户端完成创建',
'oauth_created_body' => 'Somebody (hopefully you) just created a new Firefly III API OAuth Client for your user account. It\'s labeled ":name" and has callback URL `:url`.', 'oauth_created_body' => '有人(希望是您)刚刚使用您的账户创建了一个新的 Firefly III API OAuth 客户端。客户端标签是“:name”回调地址是 `:url`。',
'oauth_created_explanation' => 'With this client, they can access **all** of your financial records through the Firefly III API.', 'oauth_created_explanation' => '通过该客户端,您的**所有**财务信息都可以通过 Firefly III API 来获取。',
'oauth_created_undo' => 'If this wasn\'t you, please revoke this client as soon as possible at `:url`', 'oauth_created_undo' => '如果这不是您的操作,请尽快访问链接撤销该客户端授权:`:url`',
// reset password // reset password
'reset_pw_subject' => '您的密码重置请求', 'reset_pw_subject' => '您的密码重置请求',
'reset_pw_instructions' => '有人尝试重置您的密码。如果是您本人的操作,请点击下方链接进行重置。', 'reset_pw_instructions' => '有人尝试重置您的密码。如果是您本人的操作,请点击下方链接进行重置。',
'reset_pw_warning' => '**PLEASE** verify that the link actually goes to the Firefly III you expect it to go!', 'reset_pw_warning' => '请您**务必**确认打开的链接为真正的 Firefly III 站点。',
// error // error
'error_subject' => 'Firefly III 发生了错误', 'error_subject' => 'Firefly III 发生了错误',
@ -104,14 +104,14 @@ return [
'new_journals_header' => 'Firefly III 为您创建了一笔交易,您可以在您的 Firefly III 站点中查看:|Firefly III 为您创建了 :count 笔交易,您可以在您的 Firefly III 站点中查看:', 'new_journals_header' => 'Firefly III 为您创建了一笔交易,您可以在您的 Firefly III 站点中查看:|Firefly III 为您创建了 :count 笔交易,您可以在您的 Firefly III 站点中查看:',
// bill warning // bill warning
'bill_warning_subject_end_date' => 'Your bill ":name" is due to end in :diff days', 'bill_warning_subject_end_date' => '您的账单“:name”将于 :diff 天后到期',
'bill_warning_subject_now_end_date' => 'Your bill ":name" is due to end TODAY', 'bill_warning_subject_now_end_date' => '您的账单“:name”将于今天到期',
'bill_warning_subject_extension_date' => 'Your bill ":name" is due to be extended or cancelled in :diff days', 'bill_warning_subject_extension_date' => 'Your bill ":name" is due to be extended or cancelled in :diff days',
'bill_warning_subject_now_extension_date' => 'Your bill ":name" is due to be extended or cancelled TODAY', 'bill_warning_subject_now_extension_date' => 'Your bill ":name" is due to be extended or cancelled TODAY',
'bill_warning_end_date' => 'Your bill **":name"** is due to end on :date. This moment will pass in about **:diff days**.', 'bill_warning_end_date' => 'Your bill **":name"** is due to end on :date. This moment will pass in about **:diff days**.',
'bill_warning_extension_date' => 'Your bill **":name"** is due to be extended or cancelled on :date. This moment will pass in about **:diff days**.', 'bill_warning_extension_date' => 'Your bill **":name"** is due to be extended or cancelled on :date. This moment will pass in about **:diff days**.',
'bill_warning_end_date_zero' => 'Your bill **":name"** is due to end on :date. This moment will pass **TODAY!**', 'bill_warning_end_date_zero' => 'Your bill **":name"** is due to end on :date. This moment will pass **TODAY!**',
'bill_warning_extension_date_zero' => 'Your bill **":name"** is due to be extended or cancelled on :date. This moment will pass **TODAY!**', 'bill_warning_extension_date_zero' => 'Your bill **":name"** is due to be extended or cancelled on :date. This moment will pass **TODAY!**',
'bill_warning_please_action' => 'Please take the appropriate action.', 'bill_warning_please_action' => '请采取适当的行动。',
]; ];

View File

@ -47,8 +47,8 @@ return [
'tell_more' => '请提交给我们更多信息,而不仅仅是“网页提示说很抱歉”。', 'tell_more' => '请提交给我们更多信息,而不仅仅是“网页提示说很抱歉”。',
'include_logs' => '请包含错误日志(见上文)。', 'include_logs' => '请包含错误日志(见上文)。',
'what_did_you_do' => '告诉我们您进行了哪些操作。', 'what_did_you_do' => '告诉我们您进行了哪些操作。',
'offline_header' => 'You are probably offline', 'offline_header' => '您可能处于离线状态',
'offline_unreachable' => 'Firefly III is unreachable. Your device is currently offline or the server is not working.', 'offline_unreachable' => '无法访问 Firefly III。您的设备目前处于离线状态或服务器无法正常工作。',
'offline_github' => 'If you are sure both your device and the server are online, please open a ticket on <strong><a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a></strong>.', 'offline_github' => '如果您确信您的设备和服务器均正常在线运行,请在 <strong><a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a></strong> 上创建工单。',
]; ];

View File

@ -58,7 +58,7 @@ return [
'currency' => '货币', 'currency' => '货币',
'account_id' => '资产账户', 'account_id' => '资产账户',
'budget_id' => '预算', 'budget_id' => '预算',
'bill_id' => 'Bill', 'bill_id' => '账单',
'opening_balance' => '初始余额', 'opening_balance' => '初始余额',
'tagMode' => '标签模式', 'tagMode' => '标签模式',
'virtual_balance' => '虚拟账户余额', 'virtual_balance' => '虚拟账户余额',
@ -121,7 +121,7 @@ return [
'stop_processing' => '停止处理', 'stop_processing' => '停止处理',
'start_date' => '范围起始', 'start_date' => '范围起始',
'end_date' => '范围结束', 'end_date' => '范围结束',
'enddate' => 'End date', 'enddate' => '结束日期',
'start' => '范围起始', 'start' => '范围起始',
'end' => '范围结束', 'end' => '范围结束',
'delete_account' => '删除账户“:name”', 'delete_account' => '删除账户“:name”',
@ -159,11 +159,11 @@ return [
'delete_all_permanently' => '永久删除已选项目', 'delete_all_permanently' => '永久删除已选项目',
'update_all_journals' => '更新这些交易', 'update_all_journals' => '更新这些交易',
'also_delete_transactions' => '与此账户关联的唯一一笔交易也会被删除。|与此账户关联的 :count 笔交易也会被删除。', 'also_delete_transactions' => '与此账户关联的唯一一笔交易也会被删除。|与此账户关联的 :count 笔交易也会被删除。',
'also_delete_transactions_js' => 'No transactions|The only transaction connected to this account will be deleted as well.|All {count} transactions connected to this account will be deleted as well.', 'also_delete_transactions_js' => '没有交易|与此账户关联的唯一一笔交易也会被删除。|与此账户关联的 {count} 笔交易也会被删除。',
'also_delete_connections' => '与此关联类型相关联的唯一一笔交易会遗失连接。|与此关联类型相关联的 :count 笔交易会遗失连接。', 'also_delete_connections' => '与此关联类型相关联的唯一一笔交易会遗失连接。|与此关联类型相关联的 :count 笔交易会遗失连接。',
'also_delete_rules' => '与此规则组关联的唯一一条规则也会被删除。|与此规则组关联的 :count 条规则也会被删除。', 'also_delete_rules' => '与此规则组关联的唯一一条规则也会被删除。|与此规则组关联的 :count 条规则也会被删除。',
'also_delete_piggyBanks' => '与此账户关联的唯一一个存钱罐也会被删除。|与此账户关联的 :count 个存钱罐也会被删除。', 'also_delete_piggyBanks' => '与此账户关联的唯一一个存钱罐也会被删除。|与此账户关联的 :count 个存钱罐也会被删除。',
'also_delete_piggyBanks_js' => 'No piggy banks|The only piggy bank connected to this account will be deleted as well.|All {count} piggy banks connected to this account will be deleted as well.', 'also_delete_piggyBanks_js' => '没有存钱罐|与此账户关联的唯一一个存钱罐也会被删除。|与此账户关联的 {count} 个存钱罐也会被删除。',
'not_delete_piggy_banks' => '关联至此组的存钱罐将不会被删除。|关联至此组的 :count 个存钱罐将不会被删除。', 'not_delete_piggy_banks' => '关联至此组的存钱罐将不会被删除。|关联至此组的 :count 个存钱罐将不会被删除。',
'bill_keep_transactions' => '与此账单关联的唯一一笔交易不会被删除。|与此账单关联的 :count 笔交易不会被删除。', 'bill_keep_transactions' => '与此账单关联的唯一一笔交易不会被删除。|与此账单关联的 :count 笔交易不会被删除。',
'budget_keep_transactions' => '与此预算关联的唯一一笔交易不会被删除。|与此预算关联的 :count 笔交易不会被删除。', 'budget_keep_transactions' => '与此预算关联的唯一一笔交易不会被删除。|与此预算关联的 :count 笔交易不会被删除。',
@ -181,7 +181,7 @@ return [
'login_name' => '登录', 'login_name' => '登录',
'is_owner' => '是管理员?', 'is_owner' => '是管理员?',
'url' => 'URL', 'url' => 'URL',
'bill_end_date' => 'End date', 'bill_end_date' => '结束日期',
// import // import
'apply_rules' => '应用规则', 'apply_rules' => '应用规则',

View File

@ -46,7 +46,7 @@ return [
'account_type' => '账户类型', 'account_type' => '账户类型',
'created_at' => '创建于', 'created_at' => '创建于',
'account' => '账户', 'account' => '账户',
'external_url' => 'External URL', 'external_url' => '外部链接',
'matchingAmount' => '金额', 'matchingAmount' => '金额',
'destination' => '目标', 'destination' => '目标',
'source' => '来源', 'source' => '来源',
@ -76,7 +76,7 @@ return [
'type' => '类型', 'type' => '类型',
'completed' => '已完成', 'completed' => '已完成',
'iban' => '国际银行账户号码IBAN', 'iban' => '国际银行账户号码IBAN',
'account_number' => 'Account number', 'account_number' => '账户号码',
'paid_current_period' => '当前周期支付', 'paid_current_period' => '当前周期支付',
'email' => '电子邮件', 'email' => '电子邮件',
'registered_at' => '注册于', 'registered_at' => '注册于',
@ -135,7 +135,7 @@ return [
'liability_type' => '债务类型', 'liability_type' => '债务类型',
'liability_direction' => 'Liability in/out', 'liability_direction' => 'Liability in/out',
'end_date' => '截止日期', 'end_date' => '截止日期',
'payment_info' => 'Payment information', 'payment_info' => '付款信息',
'expected_info' => 'Next expected transaction', 'expected_info' => '下一个预期的交易',
'start_date' => '起始日期', 'start_date' => '起始日期',
]; ];

View File

@ -61,15 +61,15 @@ return [
'accepted' => ':attribute 必须接受', 'accepted' => ':attribute 必须接受',
'bic' => '此 BIC 无效', 'bic' => '此 BIC 无效',
'at_least_one_trigger' => '每条规则必须至少有一个触发条件', 'at_least_one_trigger' => '每条规则必须至少有一个触发条件',
'at_least_one_active_trigger' => 'Rule must have at least one active trigger.', 'at_least_one_active_trigger' => '规则必须至少有一个启用的触发条件。',
'at_least_one_action' => '每条规则必须至少有一个动作', 'at_least_one_action' => '每条规则必须至少有一个动作',
'at_least_one_active_action' => 'Rule must have at least one active action.', 'at_least_one_active_action' => '规则必须至少有一个启用的动作。',
'base64' => '此 base64 编码数据无效', 'base64' => '此 base64 编码数据无效',
'model_id_invalid' => '指定的 ID 不能用于此模型', 'model_id_invalid' => '指定的 ID 不能用于此模型',
'less' => ':attribute 必须小于 10,000,000', 'less' => ':attribute 必须小于 10,000,000',
'active_url' => ':attribute 不是有效的网址', 'active_url' => ':attribute 不是有效的网址',
'after' => ':attribute 必须是一个在 :date 之后的日期', 'after' => ':attribute 必须是一个在 :date 之后的日期',
'date_after' => 'The start date must be before the end date.', 'date_after' => '开始日期必须早于结束日期。',
'alpha' => ':attribute 只能包含英文字母', 'alpha' => ':attribute 只能包含英文字母',
'alpha_dash' => ':attribute 只能包含英文字母、数字和减号', 'alpha_dash' => ':attribute 只能包含英文字母、数字和减号',
'alpha_num' => ':attribute 只能包含英文字母和数字', 'alpha_num' => ':attribute 只能包含英文字母和数字',
@ -143,8 +143,8 @@ return [
'starts_with' => '此值必须以 :values 开头', 'starts_with' => '此值必须以 :values 开头',
'unique_webhook' => '您已经拥有使用此值的 Webhook', 'unique_webhook' => '您已经拥有使用此值的 Webhook',
'unique_existing_webhook' => '您已经拥有另一个使用此值的 Webhook', 'unique_existing_webhook' => '您已经拥有另一个使用此值的 Webhook',
'same_account_type' => 'Both accounts must be of the same account type', 'same_account_type' => '两个账户必须是相同类型的账户',
'same_account_currency' => 'Both accounts must have the same currency setting', 'same_account_currency' => '两个账户必须设置有相同的货币',
'secure_password' => '此密码不安全,请重试。访问 https://bit.ly/FF3-password-security 获取更多信息。', 'secure_password' => '此密码不安全,请重试。访问 https://bit.ly/FF3-password-security 获取更多信息。',
'valid_recurrence_rep_type' => '此重复类型不能用于定期交易', 'valid_recurrence_rep_type' => '此重复类型不能用于定期交易',
@ -209,15 +209,15 @@ return [
'need_id_in_edit' => '每笔拆分必须有 transaction_journal_id (有效的 ID 或 0)。', 'need_id_in_edit' => '每笔拆分必须有 transaction_journal_id (有效的 ID 或 0)。',
'ob_source_need_data' => '需要一个有效的来源账户ID和/或来源账户名称才能继续。', 'ob_source_need_data' => '需要一个有效的来源账户ID和/或来源账户名称才能继续。',
'lc_source_need_data' => 'Need to get a valid source account ID to continue.', 'lc_source_need_data' => '需要获取一个有效的来源账户 ID 才能继续。',
'ob_dest_need_data' => '需要一个有效的来源账户 ID 和/或来源账户名称才能继续', 'ob_dest_need_data' => '需要一个有效的来源账户 ID 和/或来源账户名称才能继续',
'ob_dest_bad_data' => '搜索 ID “:id”或名称“:name”时找不到有效的目标账户', 'ob_dest_bad_data' => '搜索 ID “:id”或名称“:name”时找不到有效的目标账户',
'generic_invalid_source' => '您不能使用此账户作为来源账户', 'generic_invalid_source' => '您不能使用此账户作为来源账户',
'generic_invalid_destination' => '您不能使用此账户作为目标账户', 'generic_invalid_destination' => '您不能使用此账户作为目标账户',
'generic_no_source' => 'You must submit source account information.', 'generic_no_source' => '您必须提交源账户信息。',
'generic_no_destination' => 'You must submit destination account information.', 'generic_no_destination' => '您必须提交目标账户信息。',
'gte.numeric' => ':attribute 必须大于或等于 :value', 'gte.numeric' => ':attribute 必须大于或等于 :value',
'gt.numeric' => ':attribute 必须大于 :value', 'gt.numeric' => ':attribute 必须大于 :value',

View File

@ -26,7 +26,7 @@
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;"> <p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
{{ trans('email.error_ip', { ip: ip }) }} (<a href="https://ipinfo.io/{{ ip }}/json?token={{ token }}">info</a>)<br /> {{ trans('email.error_ip', { ip: ip }) }} (<a href="https://ipinfo.io/{{ ip }}/json?token={{ token }}">info</a>)<br />
{{ trans('email.error_url', {url :url }) }}<br /> {{ method }} {{ trans('email.error_url', {url :url }) }}<br />
</p> </p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;"> <p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
@ -47,7 +47,7 @@
</p> </p>
<p style="font-family: monospace;font-size:11px;color:#aaa"> <p style="font-family: monospace;font-size:11px;color:#aaa">
{% for key, header in headers %} {% for key, header in headers %}
{% if (key != 'cookie') and header[0] != '' %} {% if (key != 'cookie') and header[0] != '' and key != 'x-xsrf-token' %}
- {{ key }}: {{ header[0] }}<br> - {{ key }}: {{ header[0] }}<br>
{% endif %} {% endif %}
{% endfor %} {% endfor %}

View File

@ -14,7 +14,7 @@
{% endif %} {% endif %}
{{ trans('email.error_ip', { ip: ip }) }} {{ trans('email.error_ip', { ip: ip }) }}
{{ trans('email.error_url', {url :url}) }} {{ method }} {{ trans('email.error_url', {url :url}) }}
{{ trans('email.error_user_agent', {userAgent: userAgent } ) }} {{ trans('email.error_user_agent', {userAgent: userAgent } ) }}
{{ trans('email.error_stacktrace')|striptags|raw }} {{ trans('email.error_stacktrace')|striptags|raw }}
@ -28,7 +28,7 @@
{{ trans('email.error_headers') }} {{ trans('email.error_headers') }}
{% for key, header in headers %} {% for key, header in headers %}
{% if (key != 'cookie') and header[0] != '' %} {% if (key != 'cookie') and header[0] != '' and key != 'x-xsrf-token' %}
- {{ key }}: {{ header[0] }} - {{ key }}: {{ header[0] }}
{% endif %} {% endif %}
{% endfor %} {% endfor %}

View File

@ -93,7 +93,7 @@
{% endif %} {% endif %}
</td> </td>
<td class="hidden-sm hidden-xs" style="text-align:right;"> <td class="hidden-sm hidden-xs" style="text-align:right;">
{% if piggy.target_date %} {% if piggy.target_date and piggy.save_per_month %}
{{ formatAmountBySymbol(piggy.save_per_month, piggy.currency_symbol, piggy.currency_decimal_places) }} {{ formatAmountBySymbol(piggy.save_per_month, piggy.currency_symbol, piggy.currency_decimal_places) }}
{% endif %} {% endif %}
</td> </td>

View File

@ -84,7 +84,7 @@
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% if piggyBank.targetdate %} {% if piggyBank.targetdate and piggy.save_per_month %}
<tr> <tr>
<td>{{ 'suggested_amount'|_ }}</td> <td>{{ 'suggested_amount'|_ }}</td>
<td> <td>

View File

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