diff --git a/app/Events/RegisteredUser.php b/app/Events/RegisteredUser.php index a49d099f88..1d91c81412 100644 --- a/app/Events/RegisteredUser.php +++ b/app/Events/RegisteredUser.php @@ -36,20 +36,14 @@ class RegisteredUser extends Event { use SerializesModels; - /** @var string The users IP address */ - public $ipAddress; - /** @var User The user */ - public $user; + public User $user; /** * Create a new event instance. This event is triggered when a new user registers. - * - * @param User $user - * @param string $ipAddress + * @param User $user */ - public function __construct(User $user, string $ipAddress) + public function __construct(User $user) { - $this->user = $user; - $this->ipAddress = $ipAddress; + $this->user = $user; } } diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index fc07889266..93c62e362e 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -171,6 +171,7 @@ class Handler extends ExceptionHandler 'url' => request()->fullUrl(), 'userAgent' => request()->userAgent(), 'json' => request()->acceptsJson(), + 'method' => request()->method(), 'headers' => $headers, ]; diff --git a/app/Handlers/Events/UserEventHandler.php b/app/Handlers/Events/UserEventHandler.php index 18994a20fa..c34caedf9b 100644 --- a/app/Handlers/Events/UserEventHandler.php +++ b/app/Handlers/Events/UserEventHandler.php @@ -309,7 +309,6 @@ class UserEventHandler // get the email address $email = $event->user->email; $uri = route('index'); - $ipAddress = $event->ipAddress; // see if user has alternative email address: $pref = app('preferences')->getForUser($event->user, 'remote_guard_alt_email'); @@ -319,7 +318,7 @@ class UserEventHandler // send email. try { - Mail::to($email)->send(new RegisteredUserMail($uri, $ipAddress)); + Mail::to($email)->send(new RegisteredUserMail($uri)); } catch (Exception $e) { // @phpstan-ignore-line Log::error($e->getMessage()); diff --git a/app/Repositories/PiggyBank/ModifiesPiggyBanks.php b/app/Repositories/PiggyBank/ModifiesPiggyBanks.php index 99f093f9a5..ff41f6fbdf 100644 --- a/app/Repositories/PiggyBank/ModifiesPiggyBanks.php +++ b/app/Repositories/PiggyBank/ModifiesPiggyBanks.php @@ -403,7 +403,7 @@ trait ModifiesPiggyBanks // if the piggy bank is now smaller than the current relevant rep, // remove money from the rep. $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); $this->createEvent($piggyBank, $diff); diff --git a/app/Support/Navigation.php b/app/Support/Navigation.php index 0e34b48f1d..a9fda5a1cd 100644 --- a/app/Support/Navigation.php +++ b/app/Support/Navigation.php @@ -582,6 +582,32 @@ class Navigation 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)); } @@ -629,6 +655,19 @@ class Navigation 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)); } @@ -673,7 +712,31 @@ class Navigation 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)); } } diff --git a/app/Transformers/ObjectGroupTransformer.php b/app/Transformers/ObjectGroupTransformer.php index 48cb6d48cf..3f350d79cf 100644 --- a/app/Transformers/ObjectGroupTransformer.php +++ b/app/Transformers/ObjectGroupTransformer.php @@ -57,8 +57,8 @@ class ObjectGroupTransformer extends AbstractTransformer return [ 'id' => (string) $objectGroup->id, - 'created_at' => $objectGroup->created_at->toAtomString(), - 'updated_at' => $objectGroup->updated_at->toAtomString(), + 'created_at' => $objectGroup->created_at?->toAtomString(), + 'updated_at' => $objectGroup->updated_at?->toAtomString(), 'title' => $objectGroup->title, 'order' => (int) $objectGroup->order, 'links' => [ diff --git a/changelog.md b/changelog.md index f18105f38c..627fd8e1cc 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## 5.7.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 - ⚠️ This release no longer supports LDAP. diff --git a/config/firefly.php b/config/firefly.php index 41739d66e3..e79541419a 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -101,7 +101,7 @@ return [ 'webhooks' => false, 'handle_debts' => true, ], - 'version' => '5.7.0', + 'version' => '5.7.1', 'api_version' => '1.5.6', 'db_version' => 18, diff --git a/frontend/src/i18n/de_DE/index.js b/frontend/src/i18n/de_DE/index.js index b55a763469..58541c3c57 100644 --- a/frontend/src/i18n/de_DE/index.js +++ b/frontend/src/i18n/de_DE/index.js @@ -45,7 +45,7 @@ export default { "delete": "L\u00f6schen", "reconcile": "Abgleichen", "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_ends_choice": "Quellkonto-Name endet mit..", "rule_trigger_source_account_is_choice": "Quellkonto-Name lautet..", diff --git a/frontend/src/i18n/fr_FR/index.js b/frontend/src/i18n/fr_FR/index.js index 4355a3c6d3..f744c90d45 100644 --- a/frontend/src/i18n/fr_FR/index.js +++ b/frontend/src/i18n/fr_FR/index.js @@ -18,7 +18,7 @@ export default { }, "list": { "name": "Nom", - "account_number": "Account number", + "account_number": "N\u00b0 de compte", "currentBalance": "Solde courant", "lastActivity": "Activit\u00e9 r\u00e9cente", "active": "Actif ?" @@ -45,7 +45,7 @@ export default { "delete": "Supprimer", "reconcile": "Rapprocher", "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_ends_choice": "Le nom du compte source se termine par..", "rule_trigger_source_account_is_choice": "Le nom du compte source est..", diff --git a/frontend/src/i18n/it_IT/index.js b/frontend/src/i18n/it_IT/index.js index 1940437d2a..d6adaae5b6 100644 --- a/frontend/src/i18n/it_IT/index.js +++ b/frontend/src/i18n/it_IT/index.js @@ -18,7 +18,7 @@ export default { }, "list": { "name": "Nome", - "account_number": "Account number", + "account_number": "Numero conto", "currentBalance": "Saldo corrente", "lastActivity": "Ultima attivit\u00e0", "active": "Attivo" diff --git a/frontend/src/i18n/pl_PL/index.js b/frontend/src/i18n/pl_PL/index.js index 5325db8b8b..b9a7e071f0 100644 --- a/frontend/src/i18n/pl_PL/index.js +++ b/frontend/src/i18n/pl_PL/index.js @@ -18,7 +18,7 @@ export default { }, "list": { "name": "Nazwa", - "account_number": "Account number", + "account_number": "Numer konta", "currentBalance": "Bie\u017c\u0105ce saldo", "lastActivity": "Ostatnia aktywno\u015b\u0107", "active": "Jest aktywny?" @@ -45,7 +45,7 @@ export default { "delete": "Usu\u0144", "reconcile": "Uzgodnij", "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_ends_choice": "Konto \u017ar\u00f3d\u0142owe ko\u0144czy si\u0119 na..", "rule_trigger_source_account_is_choice": "Kontem \u017ar\u00f3d\u0142owym jest..", diff --git a/frontend/src/i18n/sv_SE/index.js b/frontend/src/i18n/sv_SE/index.js index 808ef0e733..35724560ef 100644 --- a/frontend/src/i18n/sv_SE/index.js +++ b/frontend/src/i18n/sv_SE/index.js @@ -18,7 +18,7 @@ export default { }, "list": { "name": "Namn", - "account_number": "Account number", + "account_number": "Kontonummer", "currentBalance": "Nuvarande saldo", "lastActivity": "Senaste aktivitet", "active": "\u00c4r aktiv?" @@ -45,7 +45,7 @@ export default { "delete": "Ta bort", "reconcile": "Avst\u00e4mning", "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_ends_choice": "K\u00e4llkontonamn slutar med..", "rule_trigger_source_account_is_choice": "K\u00e4llkontonamn \u00e4r..", diff --git a/frontend/src/i18n/zh_CN/index.js b/frontend/src/i18n/zh_CN/index.js index ef263bc056..a5c33ceac5 100644 --- a/frontend/src/i18n/zh_CN/index.js +++ b/frontend/src/i18n/zh_CN/index.js @@ -18,7 +18,7 @@ export default { }, "list": { "name": "\u540d\u79f0", - "account_number": "Account number", + "account_number": "\u8d26\u6237\u53f7\u7801", "currentBalance": "\u76ee\u524d\u4f59\u989d", "lastActivity": "\u4e0a\u6b21\u6d3b\u52a8", "active": "\u662f\u5426\u542f\u7528\uff1f" @@ -37,7 +37,7 @@ export default { "asset_accounts": "\u8d44\u4ea7\u8d26\u6237", "expense_accounts": "\u652f\u51fa\u8d26\u6237", "revenue_accounts": "\u6536\u5165\u8d26\u6237", - "liabilities_accounts": "Liabilities" + "liabilities_accounts": "\u503a\u52a1" }, "firefly": { "actions": "\u64cd\u4f5c", diff --git a/releases.md b/releases.md index 9b981aa948..ba9d4d4a50 100644 --- a/releases.md +++ b/releases.md @@ -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. ### Minor Release Support Matrix -| Version | Supported | -| ------- | ------------------ | -| Firefly III v5.6.x | :white_check_mark: | -| Firefly III v5.5.x | :x: | -| Firefly III v5.4.x | :x: | -| Firefly III v5.3.x | :x: | -| Firefly III v5.2.x (and earlier) | :x: | +| Version | Supported | +|----------------------------------|--------------------| +| Firefly III v5.7.x | :white_check_mark: | +| Firefly III v5.6.x | :x: | +| Firefly III v5.5.x | :x: | +| Firefly III v5.4.x | :x: | +| Firefly III v5.3.x | :x: | +| Firefly III v5.2.x (and earlier) | :x: | ### Upgrade path and support policy The upgrade path for Firefly III is: diff --git a/resources/lang/de_DE/firefly.php b/resources/lang/de_DE/firefly.php index 438f812bf7..454c4da8b2 100644 --- a/resources/lang/de_DE/firefly.php +++ b/resources/lang/de_DE/firefly.php @@ -31,7 +31,7 @@ return [ 'split' => 'Teilen', 'single_split' => 'Teil', 'clone' => 'Duplizieren', - 'confirm_action' => 'Confirm action', + 'confirm_action' => 'Aktion bestätigen', 'last_seven_days' => 'Letzte sieben Tage', 'last_thirty_days' => 'Letzte 30 Tage', 'last_180_days' => 'Letzte 180 Tage', diff --git a/resources/lang/fr_FR/firefly.php b/resources/lang/fr_FR/firefly.php index 4d31f3dee4..93e94d2643 100644 --- a/resources/lang/fr_FR/firefly.php +++ b/resources/lang/fr_FR/firefly.php @@ -31,7 +31,7 @@ return [ 'split' => 'Ventiler', 'single_split' => 'Ventilation', 'clone' => 'Cloner', - 'confirm_action' => 'Confirm action', + 'confirm_action' => 'Confirmer l\'action', 'last_seven_days' => '7 Derniers Jours', 'last_thirty_days' => 'Trente derniers jours', 'last_180_days' => '180 derniers jours', diff --git a/resources/lang/fr_FR/list.php b/resources/lang/fr_FR/list.php index 95706e6472..096c7cea40 100644 --- a/resources/lang/fr_FR/list.php +++ b/resources/lang/fr_FR/list.php @@ -76,7 +76,7 @@ return [ 'type' => 'Type', 'completed' => 'Terminé', 'iban' => 'Numéro IBAN', - 'account_number' => 'Account number', + 'account_number' => 'N° de compte', 'paid_current_period' => 'Payé cette période', 'email' => 'E-mail', 'registered_at' => 'Enregistré le', diff --git a/resources/lang/it_IT/config.php b/resources/lang/it_IT/config.php index 733c6538d6..fc69afc654 100644 --- a/resources/lang/it_IT/config.php +++ b/resources/lang/it_IT/config.php @@ -34,10 +34,10 @@ return [ 'month_and_day_js' => 'Do MMMM YYYY', //'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_js' => 'MMMM Do', + 'month_and_day_no_year_js' => 'D MMMM', //'date_time' => '%B %e, %Y, @ %T', 'date_time_js' => 'Do MMMM YYYY, @ HH:mm:ss', diff --git a/resources/lang/it_IT/list.php b/resources/lang/it_IT/list.php index 41acbfbccc..e4a3b663d2 100644 --- a/resources/lang/it_IT/list.php +++ b/resources/lang/it_IT/list.php @@ -76,7 +76,7 @@ return [ 'type' => 'Tipo', 'completed' => 'Completato', 'iban' => 'IBAN', - 'account_number' => 'Account number', + 'account_number' => 'Numero conto', 'paid_current_period' => 'Pagati in questo periodo', 'email' => 'Email', 'registered_at' => 'Registrato il', diff --git a/resources/lang/pl_PL/firefly.php b/resources/lang/pl_PL/firefly.php index 930b78a265..648dada96b 100644 --- a/resources/lang/pl_PL/firefly.php +++ b/resources/lang/pl_PL/firefly.php @@ -31,7 +31,7 @@ return [ 'split' => 'Podziel', 'single_split' => 'Podział', 'clone' => 'Sklonuj', - 'confirm_action' => 'Confirm action', + 'confirm_action' => 'Potwierdź akcję', 'last_seven_days' => 'Ostatnie 7 dni', 'last_thirty_days' => 'Ostanie 30 dni', 'last_180_days' => 'Ostatnie 180 dni', diff --git a/resources/lang/pl_PL/list.php b/resources/lang/pl_PL/list.php index e9c0f7f8ee..61de109c6e 100644 --- a/resources/lang/pl_PL/list.php +++ b/resources/lang/pl_PL/list.php @@ -76,7 +76,7 @@ return [ 'type' => 'Typ', 'completed' => 'Zakończone', 'iban' => 'IBAN', - 'account_number' => 'Account number', + 'account_number' => 'Numer konta', 'paid_current_period' => 'Zapłacono w tym okresie', 'email' => 'Adres E-Mail', 'registered_at' => 'Zarejestrowano', diff --git a/resources/lang/sv_SE/email.php b/resources/lang/sv_SE/email.php index e863bf278b..edc8630e38 100644 --- a/resources/lang/sv_SE/email.php +++ b/resources/lang/sv_SE/email.php @@ -44,8 +44,8 @@ return [ // access token created '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_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_explanation' => 'Med denna token, kan de få tillgång till alla dina finansiella poster genom Firefly III API.', + 'access_token_created_revoke' => 'Om detta inte var du, vänligen återkalla denna token så snart som möjligt på :url', // registered '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_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_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_end_date_zero' => 'Your bill **":name"** is due to end on :date. This moment will pass **TODAY!**', + 'bill_warning_end_date' => 'Din räkning **":name"** förfaller :date. Detta ögonblick kommer att passera om cirka **:diff dagar**.', + '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' => '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_please_action' => 'Please take the appropriate action.', diff --git a/resources/lang/sv_SE/firefly.php b/resources/lang/sv_SE/firefly.php index 4cab14d065..a52bb9696a 100644 --- a/resources/lang/sv_SE/firefly.php +++ b/resources/lang/sv_SE/firefly.php @@ -31,7 +31,7 @@ return [ 'split' => 'Dela', 'single_split' => 'Dela', 'clone' => 'Klona', - 'confirm_action' => 'Confirm action', + 'confirm_action' => 'Bekräfta åtgärd', 'last_seven_days' => 'Senaste 7 dagarna', 'last_thirty_days' => 'Senaste 30 dagarna', 'last_180_days' => 'Senaste 180 dagarna', diff --git a/resources/lang/sv_SE/list.php b/resources/lang/sv_SE/list.php index 2b987b707a..095b2c1ddf 100644 --- a/resources/lang/sv_SE/list.php +++ b/resources/lang/sv_SE/list.php @@ -76,7 +76,7 @@ return [ 'type' => 'Typ', 'completed' => 'Slutförd', 'iban' => 'IBAN', - 'account_number' => 'Account number', + 'account_number' => 'Kontonummer', 'paid_current_period' => 'Betalt den här perioden', 'email' => 'E-post', 'registered_at' => 'Registrerad den', diff --git a/resources/lang/zh_CN/breadcrumbs.php b/resources/lang/zh_CN/breadcrumbs.php index 8874b4c7b1..7e3e694d13 100644 --- a/resources/lang/zh_CN/breadcrumbs.php +++ b/resources/lang/zh_CN/breadcrumbs.php @@ -73,6 +73,6 @@ return [ 'asset_accounts' => '资产账户', 'expense_accounts' => '支出账户', 'revenue_accounts' => '收入账户', - 'liabilities_accounts' => 'Liabilities', + 'liabilities_accounts' => '债务', 'placeholder' => '[Placeholder][占位符]', ]; diff --git a/resources/lang/zh_CN/email.php b/resources/lang/zh_CN/email.php index 310d43cd92..70fbd43b05 100644 --- a/resources/lang/zh_CN/email.php +++ b/resources/lang/zh_CN/email.php @@ -45,15 +45,15 @@ return [ 'access_token_created_subject' => '创建了一个新的访问令牌', '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_revoke' => 'If this wasn\'t you, please revoke this token as soon as possible at :url', + 'access_token_created_revoke' => '如果这不是您的操作,请尽快访问链接撤销该令牌::url。', // registered '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_pw' => 'If you have forgotten your password already, please reset it using [the password reset tool](:address/password/reset).', + 'registered_welcome' => '欢迎来到 [Firefly III](:address)。收到这封电子邮件即确认您的注册已经完成。耶!', + 'registered_pw' => '如果您忘记了您的密码,请使用 [密码重置工具] (:address/password/reset) 重置密码。', '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_text' => 'If you haven\'t already, please also read the first use guide and the full description.', + 'registered_doc_html' => '如果您尚未阅读过,请阅读一下[设计理念](https://docs.firefly-iii.org/about-firefly-iii/personal-finances)。', + 'registered_doc_text' => '我们推荐您阅读新用户使用指南和完整说明。', 'registered_closing' => '祝您使用愉快!', 'registered_firefly_iii_link' => 'Firefly III:', 'registered_pw_reset_link' => '密码已重置', @@ -62,25 +62,25 @@ return [ // email change 'email_change_subject' => '您的 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_old' => '旧的电子邮件地址为::email', - 'email_change_old_strong' => 'The old email address was: **:email**', + 'email_change_old_strong' => '旧电子邮件地址为:**: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_undo_link' => '若要撤销改动,请点击此链接:', // OAuth token created '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_explanation' => 'With this client, they can access **all** of your financial records through the Firefly III API.', - 'oauth_created_undo' => 'If this wasn\'t you, please revoke this client as soon as possible at `:url`', + 'oauth_created_body' => '有人(希望是您)刚刚使用您的账户创建了一个新的 Firefly III API OAuth 客户端。客户端标签是“:name”,回调地址是 `:url`。', + 'oauth_created_explanation' => '通过该客户端,您的**所有**财务信息都可以通过 Firefly III API 来获取。', + 'oauth_created_undo' => '如果这不是您的操作,请尽快访问链接撤销该客户端授权:`:url`', // reset password 'reset_pw_subject' => '您的密码重置请求', '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_subject' => 'Firefly III 发生了错误', @@ -104,14 +104,14 @@ return [ 'new_journals_header' => 'Firefly III 为您创建了一笔交易,您可以在您的 Firefly III 站点中查看:|Firefly III 为您创建了 :count 笔交易,您可以在您的 Firefly III 站点中查看:', // bill warning - 'bill_warning_subject_end_date' => 'Your bill ":name" is due to end in :diff days', - 'bill_warning_subject_now_end_date' => 'Your bill ":name" is due to end TODAY', + 'bill_warning_subject_end_date' => '您的账单“:name”将于 :diff 天后到期', + '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_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_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_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' => '请采取适当的行动。', ]; diff --git a/resources/lang/zh_CN/errors.php b/resources/lang/zh_CN/errors.php index 44212a9987..c5f02b4088 100644 --- a/resources/lang/zh_CN/errors.php +++ b/resources/lang/zh_CN/errors.php @@ -47,8 +47,8 @@ return [ 'tell_more' => '请提交给我们更多信息,而不仅仅是“网页提示说很抱歉”。', 'include_logs' => '请包含错误日志(见上文)。', 'what_did_you_do' => '告诉我们您进行了哪些操作。', - 'offline_header' => 'You are probably offline', - 'offline_unreachable' => 'Firefly III is unreachable. Your device is currently offline or the server is not working.', - 'offline_github' => 'If you are sure both your device and the server are online, please open a ticket on GitHub.', + 'offline_header' => '您可能处于离线状态', + 'offline_unreachable' => '无法访问 Firefly III。您的设备目前处于离线状态或服务器无法正常工作。', + 'offline_github' => '如果您确信您的设备和服务器均正常在线运行,请在 GitHub 上创建工单。', ]; diff --git a/resources/lang/zh_CN/form.php b/resources/lang/zh_CN/form.php index fa070e9302..a3e4c63f03 100644 --- a/resources/lang/zh_CN/form.php +++ b/resources/lang/zh_CN/form.php @@ -58,7 +58,7 @@ return [ 'currency' => '货币', 'account_id' => '资产账户', 'budget_id' => '预算', - 'bill_id' => 'Bill', + 'bill_id' => '账单', 'opening_balance' => '初始余额', 'tagMode' => '标签模式', 'virtual_balance' => '虚拟账户余额', @@ -121,7 +121,7 @@ return [ 'stop_processing' => '停止处理', 'start_date' => '范围起始', 'end_date' => '范围结束', - 'enddate' => 'End date', + 'enddate' => '结束日期', 'start' => '范围起始', 'end' => '范围结束', 'delete_account' => '删除账户“:name”', @@ -159,11 +159,11 @@ return [ 'delete_all_permanently' => '永久删除已选项目', 'update_all_journals' => '更新这些交易', '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_rules' => '与此规则组关联的唯一一条规则也会被删除。|与此规则组关联的 :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 个存钱罐将不会被删除。', 'bill_keep_transactions' => '与此账单关联的唯一一笔交易不会被删除。|与此账单关联的 :count 笔交易不会被删除。', 'budget_keep_transactions' => '与此预算关联的唯一一笔交易不会被删除。|与此预算关联的 :count 笔交易不会被删除。', @@ -181,7 +181,7 @@ return [ 'login_name' => '登录', 'is_owner' => '是管理员?', 'url' => 'URL', - 'bill_end_date' => 'End date', + 'bill_end_date' => '结束日期', // import 'apply_rules' => '应用规则', diff --git a/resources/lang/zh_CN/list.php b/resources/lang/zh_CN/list.php index 34759664e8..ca1ce430b6 100644 --- a/resources/lang/zh_CN/list.php +++ b/resources/lang/zh_CN/list.php @@ -46,7 +46,7 @@ return [ 'account_type' => '账户类型', 'created_at' => '创建于', 'account' => '账户', - 'external_url' => 'External URL', + 'external_url' => '外部链接', 'matchingAmount' => '金额', 'destination' => '目标', 'source' => '来源', @@ -76,7 +76,7 @@ return [ 'type' => '类型', 'completed' => '已完成', 'iban' => '国际银行账户号码(IBAN)', - 'account_number' => 'Account number', + 'account_number' => '账户号码', 'paid_current_period' => '当前周期支付', 'email' => '电子邮件', 'registered_at' => '注册于', @@ -135,7 +135,7 @@ return [ 'liability_type' => '债务类型', 'liability_direction' => 'Liability in/out', 'end_date' => '截止日期', - 'payment_info' => 'Payment information', - 'expected_info' => 'Next expected transaction', + 'payment_info' => '付款信息', + 'expected_info' => '下一个预期的交易', 'start_date' => '起始日期', ]; diff --git a/resources/lang/zh_CN/validation.php b/resources/lang/zh_CN/validation.php index 547b9b7186..8f158333eb 100644 --- a/resources/lang/zh_CN/validation.php +++ b/resources/lang/zh_CN/validation.php @@ -61,15 +61,15 @@ return [ 'accepted' => ':attribute 必须接受', 'bic' => '此 BIC 无效', '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_active_action' => 'Rule must have at least one active action.', + 'at_least_one_active_action' => '规则必须至少有一个启用的动作。', 'base64' => '此 base64 编码数据无效', 'model_id_invalid' => '指定的 ID 不能用于此模型', 'less' => ':attribute 必须小于 10,000,000', 'active_url' => ':attribute 不是有效的网址', 'after' => ':attribute 必须是一个在 :date 之后的日期', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => '开始日期必须早于结束日期。', 'alpha' => ':attribute 只能包含英文字母', 'alpha_dash' => ':attribute 只能包含英文字母、数字和减号', 'alpha_num' => ':attribute 只能包含英文字母和数字', @@ -143,8 +143,8 @@ return [ 'starts_with' => '此值必须以 :values 开头', 'unique_webhook' => '您已经拥有使用此值的 Webhook', 'unique_existing_webhook' => '您已经拥有另一个使用此值的 Webhook', - 'same_account_type' => 'Both accounts must be of the same account type', - 'same_account_currency' => 'Both accounts must have the same currency setting', + 'same_account_type' => '两个账户必须是相同类型的账户', + 'same_account_currency' => '两个账户必须设置有相同的货币', 'secure_password' => '此密码不安全,请重试。访问 https://bit.ly/FF3-password-security 获取更多信息。', 'valid_recurrence_rep_type' => '此重复类型不能用于定期交易', @@ -209,15 +209,15 @@ return [ 'need_id_in_edit' => '每笔拆分必须有 transaction_journal_id (有效的 ID 或 0)。', '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_bad_data' => '搜索 ID “:id”或名称“:name”时找不到有效的目标账户', 'generic_invalid_source' => '您不能使用此账户作为来源账户', 'generic_invalid_destination' => '您不能使用此账户作为目标账户', - 'generic_no_source' => 'You must submit source account information.', - 'generic_no_destination' => 'You must submit destination account information.', + 'generic_no_source' => '您必须提交源账户信息。', + 'generic_no_destination' => '您必须提交目标账户信息。', 'gte.numeric' => ':attribute 必须大于或等于 :value', 'gt.numeric' => ':attribute 必须大于 :value', diff --git a/resources/views/emails/error-html.twig b/resources/views/emails/error-html.twig index 571d7ba757..d06b2c3ddc 100644 --- a/resources/views/emails/error-html.twig +++ b/resources/views/emails/error-html.twig @@ -26,7 +26,7 @@

{{ trans('email.error_ip', { ip: ip }) }} (info)
- {{ trans('email.error_url', {url :url }) }}
+ {{ method }} {{ trans('email.error_url', {url :url }) }}

@@ -47,7 +47,7 @@

{% 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] }}
{% endif %} {% endfor %} diff --git a/resources/views/emails/error-text.twig b/resources/views/emails/error-text.twig index 96276ae4e0..8ca0e20e76 100644 --- a/resources/views/emails/error-text.twig +++ b/resources/views/emails/error-text.twig @@ -14,7 +14,7 @@ {% endif %} {{ 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_stacktrace')|striptags|raw }} @@ -28,7 +28,7 @@ {{ trans('email.error_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] }} {% endif %} {% endfor %} diff --git a/resources/views/list/piggy-banks.twig b/resources/views/list/piggy-banks.twig index 222187ee8a..582ae43411 100644 --- a/resources/views/list/piggy-banks.twig +++ b/resources/views/list/piggy-banks.twig @@ -93,7 +93,7 @@ {% endif %} - {% 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) }} {% endif %} diff --git a/resources/views/piggy-banks/show.twig b/resources/views/piggy-banks/show.twig index 1615c4fafc..c3ba9a0b10 100644 --- a/resources/views/piggy-banks/show.twig +++ b/resources/views/piggy-banks/show.twig @@ -84,7 +84,7 @@ {% endif %} - {% if piggyBank.targetdate %} + {% if piggyBank.targetdate and piggy.save_per_month %} {{ 'suggested_amount'|_ }} diff --git a/sonar-project.properties b/sonar-project.properties index 5f41538f49..b17c65a2d6 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -12,6 +12,6 @@ sonar.organization=firefly-iii #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.sourceEncoding=UTF-8