diff --git a/CHANGELOG.md b/CHANGELOG.md index 49da55d4f..cdf6e4718 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,10 +16,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Recomputed the portfolio snapshot calculation in the background on a portfolio change - Improved the deduplication of the portfolio snapshot calculation jobs by considering the filters - Refactored the deprecated animation providers (`provideAnimations()` and `provideNoopAnimations()`) +- Improved the language localization for German (`de`) - Improved the language localization for Polish (`pl`) ### Fixed +- Fixed an issue with the localization in the _FIRE_ page - Improved the spacing in the testimonial section on the landing page ## 3.32.0 - 2026-07-22 diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts index e7b694819..b7ef8b302 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts @@ -1,6 +1,7 @@ import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { SubscriptionType } from '@ghostfolio/common/enums'; +import { formatMonthAndYear } from '@ghostfolio/common/helper'; import { FireCalculationCompleteEvent, FireWealth, @@ -77,6 +78,20 @@ export class GfFirePageComponent implements OnInit { ); private readonly userService = inject(UserService); + protected get retirementDateLabel(): string { + const retirementDate = + this.user?.settings?.retirementDate ?? this.retirementDate; + + if (!retirementDate) { + return ''; + } + + return formatMonthAndYear({ + date: new Date(retirementDate), + locale: this.user?.settings?.locale + }); + } + public ngOnInit() { this.isLoading = true; diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.html b/apps/client/src/app/pages/portfolio/fire/fire-page.html index 2730b35cd..3bc62dd95 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.html +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -66,47 +66,38 @@
If you retire today, you would be able to withdraw -   - -   - per year -   - or -   - -   - per monthIf you retire today, you would be able to withdraw + + per year + or + + per month, based on your total assets of + + and a safe withdrawal rate (SWR) of - , based on your total assets of -   - - -   - and a safe withdrawal rate (SWR) of @if ( !hasImpersonationId && hasPermissionToUpdateUserSettings && @@ -137,53 +128,40 @@ @if (user?.settings?.isExperimentalFeatures) {
- By -   - {{ - user?.settings?.retirementDate ?? retirementDate - | date: 'MMMM yyyy' - }} - , -   - this is projected to increase to -   - -   - per yearBy {{ retirementDateLabel }}, this is projected to increase to + + per year + or + + per month, assuming a + + annual interest rate. -   - or -   - -   - per month - , assuming a -   - -   - annual interest rate.
}
diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index aa1734e32..b6ae28a2a 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -4223,14 +4223,6 @@ 60 - - and a safe withdrawal rate (SWR) of - and a safe withdrawal rate (SWR) of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - New Users Usuaris nous @@ -6636,9 +6628,9 @@ 78 - - If you retire today, you would be able to withdraw - If you retire today, you would be able to withdraw + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + If you retire today, you would be able to withdraw per any o per month, based on your total assets of and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -6968,14 +6960,6 @@ 263 - - , based on your total assets of - , based on your total assets of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Inactive diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 1aa95c70f..1d65a313a 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -3281,9 +3281,9 @@ 77 - - If you retire today, you would be able to withdraw - Wenn du heute in den Ruhestand gehen würdest, könntest du + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + Wenn du heute in den Ruhestand gehen würdest, könntest du pro Jahr oder pro Monat entnehmen, bezogen auf dein Gesamtanlagevermögen von und einer sicheren Entnahmerate (SWR) von apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -5763,14 +5763,6 @@ 60 - - and a safe withdrawal rate (SWR) of - und einer sicheren Entnahmerate (SWR) von - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - Available on Verfügbar für @@ -6992,14 +6984,6 @@ 263 - - , based on your total assets of - entnehmen, bezogen auf dein Gesamtanlagevermögen von - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Inaktiv diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 81f5ce42e..e030136af 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -3266,9 +3266,9 @@ 77 - - If you retire today, you would be able to withdraw - Si te jubilas hoy, podrías retirar + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + Si te jubilas hoy, podrías retirar por año o por mes, basado en tus activos totales de y una tasa de retiro segura (SWR) de apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -5740,14 +5740,6 @@ 60 - - and a safe withdrawal rate (SWR) of - y una tasa de retiro segura (SWR) de - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - Available on Available on @@ -6969,14 +6961,6 @@ 263 - - , based on your total assets of - , basado en tus activos totales de - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Inactiva diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 3637a997f..3763466f7 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -3441,9 +3441,9 @@ 78 - - If you retire today, you would be able to withdraw - Si vous partez à la retraite aujourd’hui, vous pourriez retirer + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + Si vous partez à la retraite aujourd’hui, vous pourriez retirer par an ou par mois, basé sur le total de vos actifs de et un taux de retrait sûr (SWR) de apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -5739,14 +5739,6 @@ 60 - - and a safe withdrawal rate (SWR) of - et un taux de retrait sûr (SWR) de - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - Available on Disponible sur @@ -6968,14 +6960,6 @@ 263 - - , based on your total assets of - , basé sur le total de vos actifs de - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Inactif diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 26f5752c8..86675aac4 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -3266,9 +3266,9 @@ 77 - - If you retire today, you would be able to withdraw - If you retire today, you would be able to withdraw + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + If you retire today, you would be able to withdraw per anno oppure per month, based on your total assets of and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -5740,14 +5740,6 @@ 60 - - and a safe withdrawal rate (SWR) of - and a safe withdrawal rate (SWR) of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - Available on Available on @@ -6969,14 +6961,6 @@ 263 - - , based on your total assets of - , based on your total assets of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Inattivo diff --git a/apps/client/src/locales/messages.ja.xlf b/apps/client/src/locales/messages.ja.xlf index f584352a4..219f41f81 100644 --- a/apps/client/src/locales/messages.ja.xlf +++ b/apps/client/src/locales/messages.ja.xlf @@ -3879,14 +3879,6 @@ 60 - - and a safe withdrawal rate (SWR) of - および安全な引き出し率(SWR)の - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - New Users 新規ユーザー @@ -6068,9 +6060,9 @@ 78 - - If you retire today, you would be able to withdraw - もしあなたが今日退職するなら、あなたは引き出すことができるでしょう + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + もしあなたが今日退職するなら、あなたは引き出すことができるでしょう 年あたり または 月あたり, based on your total assets of および安全な引き出し率(SWR)の apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -7041,14 +7033,6 @@ 39 - - , based on your total assets of - , based on your total assets of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Inactive diff --git a/apps/client/src/locales/messages.ko.xlf b/apps/client/src/locales/messages.ko.xlf index 6793e720e..b570f552c 100644 --- a/apps/client/src/locales/messages.ko.xlf +++ b/apps/client/src/locales/messages.ko.xlf @@ -3871,14 +3871,6 @@ 60 - - and a safe withdrawal rate (SWR) of - 안전 인출률(SWR)은 다음과 같습니다. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - New Users 신규 사용자 @@ -6068,9 +6060,9 @@ 78 - - If you retire today, you would be able to withdraw - 오늘 퇴사하면 탈퇴 가능 + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + 오늘 퇴사하면 탈퇴 가능 연간 또는 매월, 귀하의 총 자산을 기준으로 안전 인출률(SWR)은 다음과 같습니다. apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -7041,14 +7033,6 @@ 39 - - , based on your total assets of - , 귀하의 총 자산을 기준으로 - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive 비활성 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 1f70d5518..cd3777050 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -3265,9 +3265,9 @@ 77 - - If you retire today, you would be able to withdraw - Als u vandaag met pensioen gaat, kunt u + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + Als u vandaag met pensioen gaat, kunt u per jaar of per maand opnemen, dit is gebaseerd op uw totale vermogen van en een veilige opnameratio (SWR) van apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -5739,14 +5739,6 @@ 60 - - and a safe withdrawal rate (SWR) of - en een veilige opnameratio (SWR) van - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - Available on Beschikbaar op @@ -6968,14 +6960,6 @@ 263 - - , based on your total assets of - opnemen, dit is gebaseerd op uw totale vermogen van - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Inactief diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 0bc20eec6..1068a7d57 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -3838,14 +3838,6 @@ 60 - - and a safe withdrawal rate (SWR) of - oraz bezpiecznej stopy wypłaty (SWR) na poziomie - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - New Users Nowi Użytkownicy @@ -5991,9 +5983,9 @@ 78 - - If you retire today, you would be able to withdraw - Gdybyś przeszedł na emeryturę dziś, mógłbyś wypłacać + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + Gdybyś przeszedł na emeryturę dziś, mógłbyś wypłacać rocznie lub miesięcznie, na podstawie całkowitej wartości aktywów wynoszącej oraz bezpiecznej stopy wypłaty (SWR) na poziomie apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -6968,14 +6960,6 @@ 263 - - , based on your total assets of - , na podstawie całkowitej wartości aktywów wynoszącej - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Nieaktywny diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 80f351a93..751e813ba 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -3269,9 +3269,9 @@ 78 - - If you retire today, you would be able to withdraw - If you retire today, you would be able to withdraw + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + If you retire today, you would be able to withdraw por ano ou per month, based on your total assets of and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -5739,14 +5739,6 @@ 60 - - and a safe withdrawal rate (SWR) of - and a safe withdrawal rate (SWR) of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - Available on Available on @@ -6968,14 +6960,6 @@ 263 - - , based on your total assets of - , based on your total assets of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Inativo diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 85a1ce506..3f7086da7 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -5643,9 +5643,9 @@ 78 - - If you retire today, you would be able to withdraw - If you retire today, you would be able to withdraw + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + If you retire today, you would be able to withdraw yıllık veya per month, based on your total assets of and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -5747,14 +5747,6 @@ 60 - - and a safe withdrawal rate (SWR) of - and a safe withdrawal rate (SWR) of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - Available on Available on @@ -6968,14 +6960,6 @@ 263 - - , based on your total assets of - , based on your total assets of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Pasif diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index 953b05b35..a3857d31d 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -4519,14 +4519,6 @@ 60 - - and a safe withdrawal rate (SWR) of - та безпечним рівнем зняття коштів (SWR) у розмірі - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - New Users Нові користувачі @@ -5343,14 +5335,6 @@ 58 - - , based on your total assets of - , based on your total assets of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive Неактивний @@ -7598,9 +7582,9 @@ 78 - - If you retire today, you would be able to withdraw - If you retire today, you would be able to withdraw + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + If you retire today, you would be able to withdraw на рік або per month, based on your total assets of та безпечним рівнем зняття коштів (SWR) у розмірі apps/client/src/app/pages/portfolio/fire/fire-page.html 69 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 5e26a30cb..208eff81b 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -3544,13 +3544,6 @@ 60 - - and a safe withdrawal rate (SWR) of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - New Users @@ -5519,8 +5512,8 @@ 78 - - If you retire today, you would be able to withdraw + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -6396,13 +6389,6 @@ 39 - - , based on your total assets of - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index be338019d..6a3439d47 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -3855,14 +3855,6 @@ 60 - - and a safe withdrawal rate (SWR) of - 和安全取款率 (SWR) 为 - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 109 - - New Users 新用户 @@ -6044,9 +6036,9 @@ 78 - - If you retire today, you would be able to withdraw - 如果您今天退休,您将能够提取 + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a safe withdrawal rate (SWR) of + 如果您今天退休,您将能够提取 每年 每月基于您总资产的 和安全取款率 (SWR) 为 apps/client/src/app/pages/portfolio/fire/fire-page.html 69 @@ -6969,14 +6961,6 @@ 263 - - , based on your total assets of - 基于您总资产的 - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 97 - - Inactive 非活跃 diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 7787b2a97..5d1ff538e 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -233,6 +233,19 @@ export function extractNumberFromString({ } } +export function formatMonthAndYear({ + date, + locale +}: { + date: Date; + locale?: string; +}) { + return new Intl.DateTimeFormat(locale, { + month: 'long', + year: 'numeric' + }).format(date); +} + export function getAllActivityTypes(): ActivityType[] { return Object.values(ActivityType); } diff --git a/libs/ui/src/lib/fire-calculator/fire-calculator.component.html b/libs/ui/src/lib/fire-calculator/fire-calculator.component.html index df78cadca..b2162a764 100644 --- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.html +++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.html @@ -30,11 +30,7 @@ Retirement Date -
- {{ - calculatorForm.get('retirementDate')?.value | date: 'MMMM yyyy' - }} -
+
{{ retirementDateLabel }}
= 0) { this.calculatorForm.setValue(