From 44e537a409da5d3bef60e44ed138bbc72e340cf3 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 27 Sep 2025 19:54:25 +0200 Subject: [PATCH 01/34] Task/refactor transaction to activity in activities page component (#5596) * Refactor transaction to activity --- .../portfolio/activities/activities-page.component.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index 33cf5148b..a722dffbf 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -305,10 +305,10 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit { }); } - public openUpdateActivityDialog(activity: Activity) { + public openUpdateActivityDialog(aActivity: Activity) { const dialogRef = this.dialog.open(GfCreateOrUpdateActivityDialog, { data: { - activity, + activity: aActivity, accounts: this.user?.accounts, user: this.user }, @@ -319,10 +319,10 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit { dialogRef .afterClosed() .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((transaction: UpdateOrderDto | null) => { - if (transaction) { + .subscribe((activity: UpdateOrderDto) => { + if (activity) { this.dataService - .putOrder(transaction) + .putOrder(activity) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe({ next: () => { From ba205f7abb74f8a9c07a8c51d179292c48277ed4 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 27 Sep 2025 19:55:09 +0200 Subject: [PATCH 02/34] Task/reorder methods of data service (#5597) * Reorder methods --- apps/client/src/app/services/data.service.ts | 84 ++++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index 820ad5e3c..6ab370399 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -512,48 +512,6 @@ export class DataService { ); } - public fetchSymbolItem({ - dataSource, - includeHistoricalData, - symbol - }: { - dataSource: DataSource | string; - includeHistoricalData?: number; - symbol: string; - }) { - let params = new HttpParams(); - - if (includeHistoricalData) { - params = params.append('includeHistoricalData', includeHistoricalData); - } - - return this.http.get(`/api/v1/symbol/${dataSource}/${symbol}`, { - params - }); - } - - public fetchSymbols({ - includeIndices = false, - query - }: { - includeIndices?: boolean; - query: string; - }) { - let params = new HttpParams().set('query', query); - - if (includeIndices) { - params = params.append('includeIndices', includeIndices); - } - - return this.http - .get('/api/v1/symbol/lookup', { params }) - .pipe( - map(({ items }) => { - return items; - }) - ); - } - public fetchPortfolioDetails({ filters, withMarkets = false @@ -725,6 +683,48 @@ export class DataService { ); } + public fetchSymbolItem({ + dataSource, + includeHistoricalData, + symbol + }: { + dataSource: DataSource | string; + includeHistoricalData?: number; + symbol: string; + }) { + let params = new HttpParams(); + + if (includeHistoricalData) { + params = params.append('includeHistoricalData', includeHistoricalData); + } + + return this.http.get(`/api/v1/symbol/${dataSource}/${symbol}`, { + params + }); + } + + public fetchSymbols({ + includeIndices = false, + query + }: { + includeIndices?: boolean; + query: string; + }) { + let params = new HttpParams().set('query', query); + + if (includeIndices) { + params = params.append('includeIndices', includeIndices); + } + + return this.http + .get('/api/v1/symbol/lookup', { params }) + .pipe( + map(({ items }) => { + return items; + }) + ); + } + public fetchTags() { return this.http.get('/api/v1/tags'); } From 924bed9f84b71a5fa3fed4c94d4be202f02f715a Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 27 Sep 2025 19:56:02 +0200 Subject: [PATCH 03/34] Feature/upgrade @types/lodash to version 4.17.20 (#5424) * Upgrade @types/lodash to version 4.17.20 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7b31242c0..3134cf488 100644 --- a/package-lock.json +++ b/package-lock.json @@ -130,7 +130,7 @@ "@types/big.js": "6.2.2", "@types/google-spreadsheet": "3.1.5", "@types/jest": "29.5.13", - "@types/lodash": "4.17.17", + "@types/lodash": "4.17.20", "@types/node": "22.15.17", "@types/papaparse": "5.3.7", "@types/passport-google-oauth20": "2.0.16", @@ -14435,9 +14435,9 @@ } }, "node_modules/@types/lodash": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.17.tgz", - "integrity": "sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 463310c60..2c6934604 100644 --- a/package.json +++ b/package.json @@ -176,7 +176,7 @@ "@types/big.js": "6.2.2", "@types/google-spreadsheet": "3.1.5", "@types/jest": "29.5.13", - "@types/lodash": "4.17.17", + "@types/lodash": "4.17.20", "@types/node": "22.15.17", "@types/papaparse": "5.3.7", "@types/passport-google-oauth20": "2.0.16", From 86d3b258612500648561f38ac5944d2ee77ead16 Mon Sep 17 00:00:00 2001 From: Raj Gupta <150777419+Raj-G07@users.noreply.github.com> Date: Sat, 27 Sep 2025 23:32:37 +0530 Subject: [PATCH 04/34] Feature/add sorting to job queue table (#5560) * Add sorting to job queue table * Update changelog --- CHANGELOG.md | 1 + .../admin-jobs/admin-jobs.component.ts | 10 +++- .../app/components/admin-jobs/admin-jobs.html | 58 ++++++++++++++++--- 3 files changed, 60 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cfc95d387..d2f0363b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Added support for column sorting to the queue jobs table in the admin control panel - Added a blog post: _Hacktoberfest 2025_ ### Changed diff --git a/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts b/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts index d28749b9c..8ed72445f 100644 --- a/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts +++ b/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts @@ -16,7 +16,8 @@ import { ChangeDetectorRef, Component, OnDestroy, - OnInit + OnInit, + ViewChild } from '@angular/core'; import { FormBuilder, @@ -27,6 +28,7 @@ import { import { MatButtonModule } from '@angular/material/button'; import { MatMenuModule } from '@angular/material/menu'; import { MatSelectModule } from '@angular/material/select'; +import { MatSort, MatSortModule } from '@angular/material/sort'; import { MatTableDataSource, MatTableModule } from '@angular/material/table'; import { IonIcon } from '@ionic/angular/standalone'; import { JobStatus } from 'bull'; @@ -44,6 +46,7 @@ import { removeCircleOutline, timeOutline } from 'ionicons/icons'; +import { get } from 'lodash'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -57,6 +60,7 @@ import { takeUntil } from 'rxjs/operators'; MatButtonModule, MatMenuModule, MatSelectModule, + MatSortModule, MatTableModule, NgxSkeletonLoaderModule, ReactiveFormsModule @@ -66,6 +70,8 @@ import { takeUntil } from 'rxjs/operators'; templateUrl: './admin-jobs.html' }) export class GfAdminJobsComponent implements OnDestroy, OnInit { + @ViewChild(MatSort) sort: MatSort; + public DATA_GATHERING_QUEUE_PRIORITY_LOW = DATA_GATHERING_QUEUE_PRIORITY_LOW; public DATA_GATHERING_QUEUE_PRIORITY_HIGH = DATA_GATHERING_QUEUE_PRIORITY_HIGH; @@ -196,6 +202,8 @@ export class GfAdminJobsComponent implements OnDestroy, OnInit { .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ jobs }) => { this.dataSource = new MatTableDataSource(jobs); + this.dataSource.sort = this.sort; + this.dataSource.sortingDataAccessor = get; this.isLoading = false; diff --git a/apps/client/src/app/components/admin-jobs/admin-jobs.html b/apps/client/src/app/components/admin-jobs/admin-jobs.html index f2bfaa931..14f1b211b 100644 --- a/apps/client/src/app/components/admin-jobs/admin-jobs.html +++ b/apps/client/src/app/components/admin-jobs/admin-jobs.html @@ -16,9 +16,21 @@ - +
-
+ Job ID @@ -27,7 +39,12 @@ - + Type @@ -42,7 +59,12 @@ - + Symbol @@ -51,7 +73,12 @@ - + Data Source @@ -60,7 +87,12 @@ - + Priority @@ -79,7 +111,12 @@ - + Attempts @@ -88,7 +125,12 @@ - + Created From 36063021c0aa8d7fbe8dd38fa0c7230086c107ca Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 27 Sep 2025 20:04:47 +0200 Subject: [PATCH 05/34] Release 2.203.0 (#5606) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2f0363b4..8ddf62e81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 2.203.0 - 2025-09-27 ### Added diff --git a/package-lock.json b/package-lock.json index 3134cf488..2e5af6455 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.202.0", + "version": "2.203.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.202.0", + "version": "2.203.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 2c6934604..8f2a908c3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.202.0", + "version": "2.203.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From eaa87abc20e0db4ddd7d562acb52b993e798e3aa Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 28 Sep 2025 08:38:53 +0200 Subject: [PATCH 06/34] Bugfix/fix GitHub stars count in Hacktoberfest 2025 blog post (#5607) * Fix stars count --- .../2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html b/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html index 318d86aa0..cc2e6e80b 100644 --- a/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html +++ b/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html @@ -50,7 +50,7 @@

With over 200 contributors, the OSS project is used daily by a growing global community. Ghostfolio counts more than - 6’600 stars on GitHub + 6’500 stars on GitHub and 1’600’000+ pulls on Docker Hub Date: Sun, 28 Sep 2025 08:39:36 +0200 Subject: [PATCH 07/34] Task/reuse blog path of public routes in sitemap service (#5608) * Reuse blog path of public routes --- apps/api/src/app/endpoints/sitemap/sitemap.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts index b8cdfc5c6..359a29531 100644 --- a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts +++ b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts @@ -124,7 +124,7 @@ export class SitemapService { languageCode, rootUrl, route: { - routerLink: ['blog', ...routerLink], + routerLink: [publicRoutes.blog.path, ...routerLink], path: undefined } }); From 8263224bc52356ac8b8f7c9b5b8940a7e45690b7 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 28 Sep 2025 10:02:18 +0200 Subject: [PATCH 08/34] Task/improve wording in Hacktoberfest 2025 blog post (#5611) * Improve wording --- .../09/hacktoberfest-2025/hacktoberfest-2025-page.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html b/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html index cc2e6e80b..bde5a2fee 100644 --- a/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html +++ b/apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html @@ -19,10 +19,9 @@ time and we are looking forward to meeting new open-source contributors along the way. Every year in October, Hacktoberfest celebrates open source by - highlighting projects, maintainers, and contributors worldwide. Open - source maintainers around the globe dedicate extra time to support - new contributors while guiding them through their first pull - requests on + highlighting projects, maintainers, and contributors from around the + globe. Open source maintainers dedicate extra time to support new + contributors while guiding them through their first pull requests on GitHub.

From 6ff1d65a7092f783e088603f9be7e39552c4f09b Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 30 Sep 2025 08:40:11 +0200 Subject: [PATCH 09/34] Feature/add safe withdrawal rate to user settings (#5629) * Add safe withdrawal rate to user settings * Update changelog --- CHANGELOG.md | 10 ++++++++++ apps/api/src/app/user/update-user-setting.dto.ts | 4 ++++ apps/api/src/app/user/user.service.ts | 5 +++++ .../app/pages/portfolio/fire/fire-page.component.ts | 5 ++++- .../src/app/pages/portfolio/fire/fire-page.html | 12 ++++++++++-- .../src/lib/interfaces/user-settings.interface.ts | 1 + 6 files changed, 34 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ddf62e81..36d4cbec2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Added + +- Added the safe withdrawal rate to the user settings (experimental) + +### Changed + +- Improved the wording of the 4% rule in the _FIRE_ section + ## 2.203.0 - 2025-09-27 ### Added diff --git a/apps/api/src/app/user/update-user-setting.dto.ts b/apps/api/src/app/user/update-user-setting.dto.ts index b34b6fae2..3ee59f7dd 100644 --- a/apps/api/src/app/user/update-user-setting.dto.ts +++ b/apps/api/src/app/user/update-user-setting.dto.ts @@ -104,6 +104,10 @@ export class UpdateUserSettingDto { @IsOptional() retirementDate?: string; + @IsNumber() + @IsOptional() + safeWithdrawalRate?: number; + @IsNumber() @IsOptional() savingsRate?: number; diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 6512fbbc2..f797270ff 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -265,6 +265,11 @@ export class UserService { PerformanceCalculationType.ROAI; } + // Set default value for safe withdrawal rate + if (!(user.settings.settings as UserSettings)?.safeWithdrawalRate) { + (user.settings.settings as UserSettings).safeWithdrawalRate = 0.04; + } + // Set default value for view mode if (!(user.settings.settings as UserSettings).viewMode) { (user.settings.settings as UserSettings).viewMode = 'DEFAULT'; 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 83650d9ca..ab0fbc787 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 @@ -63,7 +63,10 @@ export class GfFirePageComponent implements OnDestroy, OnInit { this.fireWealth = new Big(10000); } - this.withdrawalRatePerYear = this.fireWealth.mul(4).div(100); + this.withdrawalRatePerYear = this.fireWealth.mul( + this.user.settings.safeWithdrawalRate + ); + this.withdrawalRatePerMonth = this.withdrawalRatePerYear.div(12); this.isLoading = false; 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 77fd1640c..dd29dbcc8 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.html +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -37,7 +37,7 @@

- 4% Rule + Sustainable retirement income @if (user?.subscription?.type === 'Basic') { } @@ -96,7 +96,15 @@ [value]="fireWealth?.toNumber()" /> - and a withdrawal rate of 4%. + and a safe withdrawal rate (SWR) of + .

} diff --git a/libs/common/src/lib/interfaces/user-settings.interface.ts b/libs/common/src/lib/interfaces/user-settings.interface.ts index e5c65f82d..65325a42f 100644 --- a/libs/common/src/lib/interfaces/user-settings.interface.ts +++ b/libs/common/src/lib/interfaces/user-settings.interface.ts @@ -29,6 +29,7 @@ export interface UserSettings { performanceCalculationType?: PerformanceCalculationType; projectedTotalAmount?: number; retirementDate?: string; + safeWithdrawalRate?: number; savingsRate?: number; viewMode?: ViewMode; xRayRules?: XRayRulesSettings; From c99af52b2f4641c8241008c2edffed39daaa2096 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 30 Sep 2025 09:09:33 +0200 Subject: [PATCH 10/34] Feature/update locales (#5577) * Update locales * Update translations * Update changelog --------- Co-authored-by: github-actions[bot] Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> --- CHANGELOG.md | 1 + apps/client/src/locales/messages.ca.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.de.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.es.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.fr.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.it.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.nl.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.pl.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.pt.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.tr.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.uk.xlf | 82 +++++++++++++------------ apps/client/src/locales/messages.xlf | 78 ++++++++++++----------- apps/client/src/locales/messages.zh.xlf | 82 +++++++++++++------------ 13 files changed, 515 insertions(+), 466 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36d4cbec2..f9bbcca84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved the wording of the 4% rule in the _FIRE_ section +- Improved the language localization for German (`de`) ## 2.203.0 - 2025-09-27 diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index bd4be27a4..1ec2b0e97 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -647,7 +647,7 @@ Tipus apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -667,7 +667,7 @@ Perfil d’Actiu apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -675,7 +675,7 @@ Dades Històriques de Mercat apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -687,7 +687,7 @@ Origen de les Dades apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -711,7 +711,7 @@ Prioritat apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -719,7 +719,7 @@ Intents apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -727,7 +727,7 @@ Creat apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -735,7 +735,7 @@ Finalitzat apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -743,7 +743,7 @@ Estat apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -763,7 +763,7 @@ Aturar Processos apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -771,7 +771,7 @@ Veure les Dades apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -779,7 +779,7 @@ Veure Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -787,7 +787,7 @@ Executar Procés apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -795,7 +795,7 @@ Suprimir Procés apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -3065,6 +3065,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -3776,7 +3780,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -4271,6 +4275,14 @@ 138 + + 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 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 + 68 + + Dividend Dividend @@ -4463,22 +4475,6 @@ 7 - - 4% Rule - 4% Regla - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Pricing Preus @@ -4711,6 +4707,14 @@ 234 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio us permet fer un seguiment de la vostra riquesa. @@ -5697,7 +5701,7 @@ Símbol apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -5781,7 +5785,7 @@ Valuós libs/ui/src/lib/i18n.ts - 41 + 43 @@ -5789,7 +5793,7 @@ Passiu libs/ui/src/lib/i18n.ts - 42 + 41 @@ -5801,7 +5805,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -6429,7 +6433,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6473,7 +6477,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6509,7 +6513,7 @@ Portfolio Snapshot apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6979,7 +6983,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 4dcc345d4..c8cb4c9b1 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -42,7 +42,7 @@ Typ apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -286,7 +286,7 @@ Jobs löschen apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -294,7 +294,7 @@ Datenquelle apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -318,7 +318,7 @@ Versuche apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -326,7 +326,7 @@ Erstellt apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -334,7 +334,7 @@ Abgeschlossen apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -342,7 +342,7 @@ Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -370,7 +370,7 @@ Historische Marktdaten apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -382,7 +382,7 @@ Daten anzeigen apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -390,7 +390,7 @@ Stacktrace anzeigen apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -398,7 +398,7 @@ Job löschen apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -1492,6 +1492,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1761,14 +1765,6 @@ 7 - - 4% Rule - 4% Regel - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings Positionen @@ -1830,7 +1826,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -2033,6 +2029,14 @@ 132 + + Sustainable retirement income + Nachhaltiges Einkommen im Ruhestand + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio verschafft dir den Überblick über dein Vermögen. @@ -2670,7 +2674,7 @@ Symbol apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -2965,6 +2969,14 @@ 425 + + 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önnest du pro Jahr oder pro Monatentnehmen, bezogen auf dein Gesamtanlagevermögen von und einer sicheren Entnahmerate (SWR) von . + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 68 + + Dividend Dividenden @@ -4038,7 +4050,7 @@ Verbindlichkeit libs/ui/src/lib/i18n.ts - 42 + 41 @@ -4282,7 +4294,7 @@ Wertsache libs/ui/src/lib/i18n.ts - 41 + 43 @@ -4470,7 +4482,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -5328,7 +5340,7 @@ Anlageprofil apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -5723,14 +5735,6 @@ 8 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Wenn du heute in den Ruhestand gehen würdest, könnest du pro Jahr oder pro Monat entnehmen, bezogen auf dein Gesamtanlagevermögen von und einer Entnahmerate von 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Reset Filters Filter zurücksetzen @@ -5889,7 +5893,7 @@ Job ausführen apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5897,7 +5901,7 @@ Priorität apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -6453,7 +6457,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6497,7 +6501,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6533,7 +6537,7 @@ Portfolio Snapshot apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -7003,7 +7007,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index c23d83944..864bd02fc 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -43,7 +43,7 @@ Tipo apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -287,7 +287,7 @@ Elimina los trabajos apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -295,7 +295,7 @@ Fuente de datos apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -319,7 +319,7 @@ Intentos apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -327,7 +327,7 @@ Creado apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -335,7 +335,7 @@ Finalizado apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -343,7 +343,7 @@ Estado apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -371,7 +371,7 @@ Datos históricos del mercado apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -383,7 +383,7 @@ Visualiza los datos apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -391,7 +391,7 @@ Visualiza Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -399,7 +399,7 @@ Elimina el trabajo apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -1477,6 +1477,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1746,14 +1750,6 @@ 7 - - 4% Rule - Regla del 4% - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings Participaciones @@ -1815,7 +1811,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -2018,6 +2014,14 @@ 132 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio te permite hacer un seguimiento de tu riqueza. @@ -2655,7 +2659,7 @@ Símbolo apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -2942,6 +2946,14 @@ 360 + + 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 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 + 68 + + Dividend Dividendo @@ -4015,7 +4027,7 @@ Responsabilidad libs/ui/src/lib/i18n.ts - 42 + 41 @@ -4259,7 +4271,7 @@ Valioso libs/ui/src/lib/i18n.ts - 41 + 43 @@ -4447,7 +4459,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -5305,7 +5317,7 @@ Perfil de activo apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -5700,14 +5712,6 @@ 8 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Si te jubilaras hoy, podrías retirar por año o por mes, basado en tus activos totales de y una tasa de retiro del 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Reset Filters Reiniciar filtros @@ -5866,7 +5870,7 @@ Ejecutar Tarea apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5874,7 +5878,7 @@ Prioridad apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -6430,7 +6434,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6474,7 +6478,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6510,7 +6514,7 @@ Instantánea de la cartera apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6980,7 +6984,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 0e7d8ab2d..9688f1a31 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -34,7 +34,7 @@ Type apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -342,7 +342,7 @@ Source Données apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -366,7 +366,7 @@ Tentatives apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -374,7 +374,7 @@ Créé apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -382,7 +382,7 @@ Terminé apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -390,7 +390,7 @@ Statut apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -410,7 +410,7 @@ Supprimer Tâches apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -426,7 +426,7 @@ Données historiques du marché apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -438,7 +438,7 @@ Voir Données apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -446,7 +446,7 @@ Voir la Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -454,7 +454,7 @@ Supprimer Tâche apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -1780,6 +1780,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1990,7 +1994,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -2253,6 +2257,14 @@ 138 + + 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 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 + 68 + + Dividend Dividende @@ -2357,14 +2369,6 @@ 7 - - 4% Rule - Règle des 4% - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings Positions @@ -2421,6 +2425,14 @@ 132 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio vous aide à garder un aperçu de votre patrimoine. @@ -2850,7 +2862,7 @@ Symbole apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -4014,7 +4026,7 @@ Dette libs/ui/src/lib/i18n.ts - 42 + 41 @@ -4258,7 +4270,7 @@ Actifs libs/ui/src/lib/i18n.ts - 41 + 43 @@ -4446,7 +4458,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -5304,7 +5316,7 @@ Profil d’Actif apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -5699,14 +5711,6 @@ 8 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Si vous prenez votre retraite aujourd’hui, vous pourrez retirer par an ou par mois, sur la base de vos actifs totaux de et un taux de retrait de 4 %. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Reset Filters Réinitialiser les Filtres @@ -5865,7 +5869,7 @@ Execute la tâche apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5873,7 +5877,7 @@ Priorité apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -6429,7 +6433,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6473,7 +6477,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6509,7 +6513,7 @@ Résumé du portefeuille apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6979,7 +6983,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index e6e96a265..f8e634bbb 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -43,7 +43,7 @@ Tipo apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -287,7 +287,7 @@ Elimina i lavori apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -295,7 +295,7 @@ Sorgente dei dati apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -319,7 +319,7 @@ Tentativi apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -327,7 +327,7 @@ Creato apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -335,7 +335,7 @@ Finito apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -343,7 +343,7 @@ Stato apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -371,7 +371,7 @@ Dati storici del mercato apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -383,7 +383,7 @@ Visualizza i dati apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -391,7 +391,7 @@ Visualizza Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -399,7 +399,7 @@ Elimina il lavoro apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -1477,6 +1477,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1746,14 +1750,6 @@ 7 - - 4% Rule - Regola del 4% - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings Partecipazioni @@ -1815,7 +1811,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -2018,6 +2014,14 @@ 132 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio ti permette di tenere traccia della tua ricchezza. @@ -2655,7 +2659,7 @@ Simbolo apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -2942,6 +2946,14 @@ 360 + + 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 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 + 68 + + Dividend Dividendi @@ -4015,7 +4027,7 @@ Passività libs/ui/src/lib/i18n.ts - 42 + 41 @@ -4259,7 +4271,7 @@ Prezioso libs/ui/src/lib/i18n.ts - 41 + 43 @@ -4447,7 +4459,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -5305,7 +5317,7 @@ Profilo dell’asset apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -5700,14 +5712,6 @@ 8 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Se andassi in pensione oggi, saresti in grado di prelevare all’anno o al mese, calcolato sul valore totale dei tuoi asset di e un prelievo costante del 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Reset Filters Reset Filtri @@ -5866,7 +5870,7 @@ Esegui il lavoro apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5874,7 +5878,7 @@ Priorità apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -6430,7 +6434,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6474,7 +6478,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6510,7 +6514,7 @@ Stato del Portfolio apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6980,7 +6984,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 140089733..9d423d431 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -42,7 +42,7 @@ Type apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -286,7 +286,7 @@ Taken verwijderen apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -294,7 +294,7 @@ Gegevensbron apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -318,7 +318,7 @@ Pogingen apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -326,7 +326,7 @@ Aangemaakt apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -334,7 +334,7 @@ Voltooid apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -342,7 +342,7 @@ Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -370,7 +370,7 @@ Historische marktgegevens apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -382,7 +382,7 @@ Bekijk gegevens apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -390,7 +390,7 @@ Bekijk Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -398,7 +398,7 @@ Taak verwijderen apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -1476,6 +1476,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1745,14 +1749,6 @@ 7 - - 4% Rule - 4% regel - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings Posities @@ -1814,7 +1810,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -2017,6 +2013,14 @@ 132 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio stelt je in staat om je vermogen bij te houden. @@ -2654,7 +2658,7 @@ Symbool apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -2941,6 +2945,14 @@ 360 + + 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 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 + 68 + + Dividend Dividend @@ -4014,7 +4026,7 @@ Verplichtingen libs/ui/src/lib/i18n.ts - 42 + 41 @@ -4258,7 +4270,7 @@ Waardevol libs/ui/src/lib/i18n.ts - 41 + 43 @@ -4446,7 +4458,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -5304,7 +5316,7 @@ Bezittingen Profiel apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -5699,14 +5711,6 @@ 8 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Als u vandaag met pensioen zou gaan, kunt u per jaar or per maand opnemen, gebaseerd op uw totale vermogen van en een opnamepercentage van 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Reset Filters Filters Herstellen @@ -5865,7 +5869,7 @@ Opdracht Uitvoeren apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5873,7 +5877,7 @@ Prioriteit apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -6429,7 +6433,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6473,7 +6477,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6509,7 +6513,7 @@ Portfolio Momentopname apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6979,7 +6983,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index b0d8e1840..ec59cfc53 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -243,7 +243,7 @@ Typ apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -563,7 +563,7 @@ Profil Aktywów apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -571,7 +571,7 @@ Historyczne Dane Rynkowe apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -583,7 +583,7 @@ Źródło Danych apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -607,7 +607,7 @@ Próby apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -615,7 +615,7 @@ Utworzono apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -623,7 +623,7 @@ Zakończono apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -631,7 +631,7 @@ Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -651,7 +651,7 @@ Usuń Zadania apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -659,7 +659,7 @@ Zobacz Dane apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -667,7 +667,7 @@ Wyświetl Stos Wywołań apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -675,7 +675,7 @@ Usuń Zadanie apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -2725,6 +2725,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -3395,7 +3399,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -3882,6 +3886,14 @@ 138 + + 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 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 + 68 + + Dividend Dywidenda @@ -4010,14 +4022,6 @@ 7 - - 4% Rule - Zasada 4% - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings Inwestycje @@ -4266,6 +4270,14 @@ 132 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio umożliwia śledzenie wartości swojego majątku. @@ -5096,7 +5108,7 @@ Symbol apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -5180,7 +5192,7 @@ Kosztowności libs/ui/src/lib/i18n.ts - 41 + 43 @@ -5188,7 +5200,7 @@ Zobowiązanie libs/ui/src/lib/i18n.ts - 42 + 41 @@ -5200,7 +5212,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -5699,14 +5711,6 @@ 8 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Jeśli przejdziesz na emeryturę dzisiaj, będziesz mógł wypłacić rocznie lub miesięcznie, w oparciu o Twój łączny majątek w wysokości i stopę wypłaty w wysokości 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Reset Filters Resetuj Filtry @@ -5865,7 +5869,7 @@ Wykonaj Zadanie apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5873,7 +5877,7 @@ Priorytet apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -6429,7 +6433,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6473,7 +6477,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6509,7 +6513,7 @@ Przegląd portfela apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6979,7 +6983,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 1fad5f3bb..031f3b551 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -34,7 +34,7 @@ Tipo apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -342,7 +342,7 @@ Fonte de dados apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -366,7 +366,7 @@ Tentativas apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -374,7 +374,7 @@ Criado apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -382,7 +382,7 @@ Terminado apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -390,7 +390,7 @@ Estado apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -410,7 +410,7 @@ Eliminar Tarefas apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -426,7 +426,7 @@ Histórico de Dados de Mercado apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -438,7 +438,7 @@ Visualizar dados apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -446,7 +446,7 @@ Ver Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -454,7 +454,7 @@ Apagar Tarefa apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -1756,6 +1756,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1962,7 +1966,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -2273,14 +2277,6 @@ 7 - - 4% Rule - Regra dos 4% - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings Posições @@ -2361,6 +2357,14 @@ 132 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. O Ghostfolio permite-lhe estar a par e gerir a sua riqueza. @@ -2702,7 +2706,7 @@ Símbolo apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -3005,6 +3009,14 @@ 71 + + 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 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 + 68 + + Dividend Dividendos @@ -4014,7 +4026,7 @@ Responsabilidade libs/ui/src/lib/i18n.ts - 42 + 41 @@ -4258,7 +4270,7 @@ De valor libs/ui/src/lib/i18n.ts - 41 + 43 @@ -4446,7 +4458,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -5304,7 +5316,7 @@ Perfil de ativos apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -5699,14 +5711,6 @@ 8 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Se você se aposentar hoje, poderá sacar per year or per month, based on your total assets of and a withdrawal rate of 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Reset Filters Redefinir filtros @@ -5865,7 +5869,7 @@ Executar trabalho apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5873,7 +5877,7 @@ Prioridade apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -6429,7 +6433,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6473,7 +6477,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6509,7 +6513,7 @@ Visão geral do portfólio apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6979,7 +6983,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 50522d41f..00d761c04 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -215,7 +215,7 @@ Tip apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -523,7 +523,7 @@ Veri Kaynağı apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -547,7 +547,7 @@ Deneme apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -555,7 +555,7 @@ Oluşturuldu apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -563,7 +563,7 @@ Tamamlandı apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -571,7 +571,7 @@ Durum apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -591,7 +591,7 @@ İşleri Sil apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -607,7 +607,7 @@ Tarihsel Piyasa Verisi apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -619,7 +619,7 @@ Veri Gör apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -627,7 +627,7 @@ Hata İzini Görüntüle apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -635,7 +635,7 @@ İşleri Sil apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -2297,6 +2297,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -2927,7 +2931,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -3390,6 +3394,14 @@ 138 + + 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 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 + 68 + + Dividend Temettü @@ -3518,14 +3530,6 @@ 7 - - 4% Rule - %4 Kuralı - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings Varlıklar @@ -3774,6 +3778,14 @@ 132 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio, varlıklarınızı takip etmenizi sağlar. @@ -4832,7 +4844,7 @@ Sembol apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -4900,7 +4912,7 @@ Kıymet libs/ui/src/lib/i18n.ts - 41 + 43 @@ -4908,7 +4920,7 @@ Yükümlülük libs/ui/src/lib/i18n.ts - 42 + 41 @@ -4920,7 +4932,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -5304,7 +5316,7 @@ Varlık Profili apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -5699,14 +5711,6 @@ 8 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Eğer bugün emekli olursanız, paranızı çekebilirsiniz yıllık veya aylık, toplam varlıklarınıza göre ve %4’lük bir çekilme oranı. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Reset Filters Filtreleri Sıfırla @@ -5865,7 +5869,7 @@ İşlemi Yürüt apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5873,7 +5877,7 @@ Öncelik apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -6429,7 +6433,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6473,7 +6477,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6509,7 +6513,7 @@ Portföy Anlık Görüntüsü apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6979,7 +6983,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index 734c29a16..d6058c551 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -671,7 +671,7 @@ Тип apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -691,7 +691,7 @@ Профіль активу apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -699,7 +699,7 @@ Історичні ринкові дані apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -711,7 +711,7 @@ Знімок портфеля apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -719,7 +719,7 @@ Джерело даних apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -743,7 +743,7 @@ Пріоритет apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -751,7 +751,7 @@ Спроби apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -759,7 +759,7 @@ Створено apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -767,7 +767,7 @@ Завершено apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -775,7 +775,7 @@ Статус apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -795,7 +795,7 @@ Видалити завдання apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -803,7 +803,7 @@ Переглянути дані apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -811,7 +811,7 @@ Переглянути трасування apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -819,7 +819,7 @@ Виконати завдання apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -827,7 +827,7 @@ Видалити завдання apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -2243,7 +2243,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -3341,6 +3341,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -4052,7 +4056,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -4583,6 +4587,14 @@ 138 + + 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 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 + 68 + + Dividend Дивіденди @@ -4775,22 +4787,6 @@ 7 - - 4% Rule - Правило 4% - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Якщо ви вийдете на пенсію сьогодні, ви зможете знімати на рік або на місяць, виходячи з вашого загального капіталу в та ставкою виведення у 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy. Ghostfolio X-ray використовує статичний аналіз для виявлення потенційних проблем та ризиків у вашому портфелі. Налаштуйте правила нижче та встановіть індивідуальні пороги, щоб узгодити їх з вашою особистою інвестиційною стратегією. @@ -5071,6 +5067,14 @@ 234 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio надає можливість вам стежити за вашим багатством. @@ -6307,7 +6311,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6359,7 +6363,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6503,7 +6507,7 @@ Символ apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -6595,7 +6599,7 @@ Цінний libs/ui/src/lib/i18n.ts - 41 + 43 @@ -6603,7 +6607,7 @@ Зобов’язання libs/ui/src/lib/i18n.ts - 42 + 41 @@ -6615,7 +6619,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 58da88399..9d5f0592c 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -228,7 +228,7 @@ Type apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -540,14 +540,14 @@ Asset Profile apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 Historical Market Data apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -558,7 +558,7 @@ Data Source apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -581,28 +581,28 @@ Attempts apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 Created apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 Finished apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -620,28 +620,28 @@ Delete Jobs apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 View Data apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 View Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 Delete Job apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -2529,6 +2529,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -3130,7 +3134,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -3569,6 +3573,13 @@ 138 + + 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 + 68 + + Dividend @@ -3684,13 +3695,6 @@ 7 - - 4% Rule - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings @@ -3917,6 +3921,13 @@ 132 + + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. @@ -4700,7 +4711,7 @@ Symbol apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -4778,14 +4789,14 @@ Valuable libs/ui/src/lib/i18n.ts - 41 + 43 Liability libs/ui/src/lib/i18n.ts - 42 + 41 @@ -4796,7 +4807,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -5209,13 +5220,6 @@ 266 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - year @@ -5350,7 +5354,7 @@ Execute Job apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5364,7 +5368,7 @@ Priority apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -5834,7 +5838,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -5891,7 +5895,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -5937,7 +5941,7 @@ Portfolio Snapshot apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6353,7 +6357,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index b845cf7ad..807cd30f2 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -244,7 +244,7 @@ 类型 apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + 48 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -572,7 +572,7 @@ 资产概况 apps/client/src/app/components/admin-jobs/admin-jobs.html - 35 + 52 @@ -580,7 +580,7 @@ 历史市场数据 apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 54 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -592,7 +592,7 @@ 数据源 apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 82 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -616,7 +616,7 @@ 尝试次数 apps/client/src/app/components/admin-jobs/admin-jobs.html - 83 + 120 @@ -624,7 +624,7 @@ 创建 apps/client/src/app/components/admin-jobs/admin-jobs.html - 92 + 134 @@ -632,7 +632,7 @@ 完成 apps/client/src/app/components/admin-jobs/admin-jobs.html - 101 + 143 @@ -640,7 +640,7 @@ 状态 apps/client/src/app/components/admin-jobs/admin-jobs.html - 110 + 152 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -660,7 +660,7 @@ 删除任务 apps/client/src/app/components/admin-jobs/admin-jobs.html - 151 + 193 @@ -668,7 +668,7 @@ 查看数据 apps/client/src/app/components/admin-jobs/admin-jobs.html - 166 + 208 @@ -676,7 +676,7 @@ 查看堆栈跟踪 apps/client/src/app/components/admin-jobs/admin-jobs.html - 173 + 215 @@ -684,7 +684,7 @@ 删除任务 apps/client/src/app/components/admin-jobs/admin-jobs.html - 180 + 222 @@ -2734,6 +2734,10 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html 168 + + apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html + 189 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -3404,7 +3408,7 @@ Job ID apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 34 @@ -3891,6 +3895,14 @@ 138 + + 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 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 + 68 + + Dividend 股息 @@ -4019,14 +4031,6 @@ 7 - - 4% Rule - 4%规则 - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 - - Holdings 持仓 @@ -4275,6 +4279,14 @@ 132 + + Sustainable retirement income + Sustainable retirement income + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + Ghostfolio empowers you to keep track of your wealth. Ghostfolio 使您能够跟踪您的财富。 @@ -5141,7 +5153,7 @@ 代码 apps/client/src/app/components/admin-jobs/admin-jobs.html - 46 + 68 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -5225,7 +5237,7 @@ 贵重物品 libs/ui/src/lib/i18n.ts - 41 + 43 @@ -5233,7 +5245,7 @@ 负债 libs/ui/src/lib/i18n.ts - 42 + 41 @@ -5245,7 +5257,7 @@ libs/ui/src/lib/i18n.ts - 43 + 42 @@ -5708,14 +5720,6 @@ 266 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - 如果你今天退休,你可以领取每年或者每月,根据您的总资产提款率为4%。 - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - year @@ -5866,7 +5870,7 @@ 执行作业 apps/client/src/app/components/admin-jobs/admin-jobs.html - 176 + 218 @@ -5874,7 +5878,7 @@ 优先级 apps/client/src/app/components/admin-jobs/admin-jobs.html - 64 + 96 @@ -6430,7 +6434,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 346 + 345 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -6474,7 +6478,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 348 + 347 libs/ui/src/lib/i18n.ts @@ -6510,7 +6514,7 @@ 投资组合快照 apps/client/src/app/components/admin-jobs/admin-jobs.html - 39 + 56 @@ -6980,7 +6984,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 357 + 356 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html From 51bcc67e9182ec3497c8d6ded201077522709042 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 30 Sep 2025 12:49:38 +0200 Subject: [PATCH 11/34] Feature/improve localization of sustainable retirement income (#5630) * Improve localization --- .../app/pages/portfolio/fire/fire-page.html | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) 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 dd29dbcc8..df81991c3 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.html +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -61,11 +61,11 @@ /> } @else { -
- If you retire today, you would be able to withdraw +
+ If you retire today, you would be able to withdraw +   - per year  + per year - or +   + or +   - per month, based on your total assets of +   + per month, +   + based on your total assets of +   - and a safe withdrawal rate (SWR) of +   + and a safe withdrawal rate (SWR) of +   Date: Tue, 30 Sep 2025 13:50:00 +0200 Subject: [PATCH 12/34] Feature/update locales (#5631) * Update locales * Update translations --------- Co-authored-by: github-actions[bot] Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> --- apps/client/src/locales/messages.ca.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.de.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.es.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.fr.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.it.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.nl.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.pl.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.pt.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.tr.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.uk.xlf | 56 +++++++++++++++++++++---- apps/client/src/locales/messages.xlf | 50 ++++++++++++++++++---- apps/client/src/locales/messages.zh.xlf | 56 +++++++++++++++++++++---- 12 files changed, 571 insertions(+), 95 deletions(-) diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 1ec2b0e97..216704d26 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -1965,6 +1965,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -2405,6 +2409,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -3759,6 +3767,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + New Users Usuaris nous @@ -4275,14 +4291,6 @@ 138 - - 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 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 - 68 - - Dividend Dividend @@ -4872,6 +4880,14 @@ 44 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Taula comparativa Ghostfolio vs @@ -5332,6 +5348,14 @@ 61 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Darrer tot el temps @@ -5952,6 +5976,14 @@ 72 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Oceania @@ -6384,6 +6416,14 @@ 83 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Inactive diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index c8cb4c9b1..ef65bd96d 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -800,6 +800,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -1152,6 +1156,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -2901,6 +2909,14 @@ 71 + + If you retire today, you would be able to withdraw + Wenn du heute in den Ruhestand gehen würdest, könntest du + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Ozeanien @@ -2969,14 +2985,6 @@ 425 - - 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önnest du pro Jahr oder pro Monatentnehmen, bezogen auf dein Gesamtanlagevermögen von und einer sicheren Entnahmerate (SWR) von . - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 68 - - Dividend Dividenden @@ -5175,6 +5183,14 @@ 59 + + and a safe withdrawal rate (SWR) of + und einer sicheren Entnahmerate (SWR) von + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + (Last 90 days) (Letzte 90 Tage) @@ -5375,6 +5391,14 @@ 5 + + , + entnehmen, + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Letztes Allzeithoch @@ -5391,6 +5415,14 @@ 13 + + per month + pro Monat + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Ghostfolio vs Vergleichstabelle @@ -6408,6 +6440,14 @@ 83 + + based on your total assets of + bezogen auf dein Gesamtanlagevermögen von + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Inaktiv diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 864bd02fc..5773a95e7 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -785,6 +785,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -1137,6 +1141,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -2886,6 +2894,14 @@ 71 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Oceanía @@ -2946,14 +2962,6 @@ 360 - - 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 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 - 68 - - Dividend Dividendo @@ -5152,6 +5160,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + (Last 90 days) (Últimos 90 días) @@ -5352,6 +5368,14 @@ 5 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Último máximo histórico @@ -5368,6 +5392,14 @@ 13 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Ghostfolio vs tabla comparativa @@ -6385,6 +6417,14 @@ 83 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Inactiva diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 9688f1a31..07496e53d 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -1080,6 +1080,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -1444,6 +1448,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -2257,14 +2265,6 @@ 138 - - 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 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 - 68 - - Dividend Dividende @@ -3033,6 +3033,14 @@ 72 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Océanie @@ -5151,6 +5159,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + (Last 90 days) (Derniers 90 jours) @@ -5351,6 +5367,14 @@ 5 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Dernier All Time High @@ -5367,6 +5391,14 @@ 13 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Ghostfolio vs tableau comparatif @@ -6384,6 +6416,14 @@ 83 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Inactif diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index f8e634bbb..9c49e4939 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -785,6 +785,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -1137,6 +1141,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -2886,6 +2894,14 @@ 71 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Oceania @@ -2946,14 +2962,6 @@ 360 - - 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 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 - 68 - - Dividend Dividendi @@ -5152,6 +5160,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + (Last 90 days) (Ultimi 90 giorni) @@ -5352,6 +5368,14 @@ 5 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Ultimo massimo storico @@ -5368,6 +5392,14 @@ 13 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Ghostfolio vs tabella di comparazione @@ -6385,6 +6417,14 @@ 83 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Inattivo diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 9d423d431..e1fa9d36e 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -784,6 +784,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -1136,6 +1140,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -2885,6 +2893,14 @@ 71 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Oceanië @@ -2945,14 +2961,6 @@ 360 - - 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 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 - 68 - - Dividend Dividend @@ -5151,6 +5159,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + (Last 90 days) (Laatste 90 dagen) @@ -5351,6 +5367,14 @@ 5 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Laatste Recordhoogte @@ -5367,6 +5391,14 @@ 13 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Ghostfolio vs vergelijkingstabel @@ -6384,6 +6416,14 @@ 83 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Inactief diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index ec59cfc53..8558e883e 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -1653,6 +1653,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -2117,6 +2121,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -3378,6 +3386,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + New Users Nowi Użytkownicy @@ -3886,14 +3902,6 @@ 138 - - 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 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 - 68 - - Dividend Dywidenda @@ -4411,6 +4419,14 @@ 44 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Ghostfolio vs - tabela porównawcza @@ -4755,6 +4771,14 @@ 106 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Ostatni Najwyższy Punkt w Historii @@ -5351,6 +5375,14 @@ 72 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Oceania @@ -6384,6 +6416,14 @@ 83 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Nieaktywny diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 031f3b551..45776a245 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -960,6 +960,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -1432,6 +1436,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -2877,6 +2885,14 @@ 72 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Oceânia @@ -3009,14 +3025,6 @@ 71 - - 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 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 - 68 - - Dividend Dividendos @@ -5151,6 +5159,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + (Last 90 days) (Últimos 90 dias) @@ -5351,6 +5367,14 @@ 5 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Última alta de todos os tempos @@ -5367,6 +5391,14 @@ 13 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Ghostfolio vs tabela de comparação @@ -6384,6 +6416,14 @@ 83 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Inativo diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 00d761c04..5b91056d1 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -1509,6 +1509,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -3394,14 +3398,6 @@ 138 - - 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 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 - 68 - - Dividend Temettü @@ -4254,6 +4250,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -5071,6 +5071,14 @@ 72 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Okyanusya @@ -5159,6 +5167,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + (Last 90 days) (Son 90 gün) @@ -5351,6 +5367,14 @@ 5 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Son, ATH @@ -5367,6 +5391,14 @@ 13 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Ghostfolio ve karşılatırma tablosu @@ -6384,6 +6416,14 @@ 83 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Pasif diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index d6058c551..3b069dd93 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -1497,6 +1497,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -2681,6 +2685,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -4035,6 +4043,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + New Users Нові користувачі @@ -4587,14 +4603,6 @@ 138 - - 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 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 - 68 - - Dividend Дивіденди @@ -4811,6 +4819,14 @@ 58 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive Неактивний @@ -5466,6 +5482,14 @@ 44 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Порівняльна таблиця Ghostfolio проти @@ -6030,6 +6054,14 @@ 61 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High Останній рекордний максимум @@ -6766,6 +6798,14 @@ 72 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania Океанія diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 9d5f0592c..7a185aa34 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -1548,6 +1548,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -1968,6 +1972,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -3116,6 +3124,13 @@ 59 + + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + New Users @@ -3573,13 +3588,6 @@ 138 - - 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 - 68 - - Dividend @@ -4046,6 +4054,13 @@ 44 + + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table @@ -4391,6 +4406,13 @@ 61 + + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High @@ -4930,6 +4952,13 @@ 72 + + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania @@ -5860,6 +5889,13 @@ 34 + + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 807cd30f2..f25ad787a 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -1662,6 +1662,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 97 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 81 + apps/client/src/app/pages/register/register-page.html 31 @@ -2126,6 +2130,10 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html 32 + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 78 + apps/client/src/app/pages/pricing/pricing-page.html 283 @@ -3387,6 +3395,14 @@ 59 + + and a safe withdrawal rate (SWR) of + and a safe withdrawal rate (SWR) of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 107 + + New Users 新用户 @@ -3895,14 +3911,6 @@ 138 - - 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 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 - 68 - - Dividend 股息 @@ -4420,6 +4428,14 @@ 44 + + per month + per month + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 92 + + Ghostfolio vs comparison table Ghostfolio vs比较表 @@ -4800,6 +4816,14 @@ 61 + + , + , + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 93 + + Last All Time High 上次历史最高纪录 @@ -5396,6 +5420,14 @@ 72 + + If you retire today, you would be able to withdraw + If you retire today, you would be able to withdraw + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 66 + + Oceania 大洋洲 @@ -6385,6 +6417,14 @@ 83 + + based on your total assets of + based on your total assets of + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 95 + + Inactive 非活跃 From da80efa0c620f73b37e96c1e34b421a60aecfdca Mon Sep 17 00:00:00 2001 From: David Requeno <108202767+DavidReque@users.noreply.github.com> Date: Tue, 30 Sep 2025 12:17:09 -0600 Subject: [PATCH 13/34] Task/localize number formatting of y-axis labels in line chart component (#5624) * Localize number formatting of y-axis labels in line chart component * Update changelog --- CHANGELOG.md | 1 + libs/ui/src/lib/line-chart/line-chart.component.ts | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9bbcca84..e94d88d01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Localized the number formatting of the y-axis labels in the line chart component - Improved the wording of the 4% rule in the _FIRE_ section - Improved the language localization for German (`de`) diff --git a/libs/ui/src/lib/line-chart/line-chart.component.ts b/libs/ui/src/lib/line-chart/line-chart.component.ts index e7f8b132e..0afef5959 100644 --- a/libs/ui/src/lib/line-chart/line-chart.component.ts +++ b/libs/ui/src/lib/line-chart/line-chart.component.ts @@ -261,7 +261,10 @@ export class GfLineChartComponent } if (typeof tickValue === 'number') { - return tickValue.toFixed(2); + return tickValue.toLocaleString(this.locale, { + maximumFractionDigits: 2, + minimumFractionDigits: 2 + }); } return tickValue; From 8f923d04861c91606b0a87cefa178607dea36a38 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 30 Sep 2025 20:23:58 +0200 Subject: [PATCH 14/34] Feature/improve number formatting of y-axis in investment chart component (#5633) * Improve number formatting of y-axis * Update changelog --- CHANGELOG.md | 1 + libs/common/src/lib/chart-helper.ts | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e94d88d01..7593b5e2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the number formatting of the y-axis labels in the investment chart component - Localized the number formatting of the y-axis labels in the line chart component - Improved the wording of the 4% rule in the _FIRE_ section - Improved the language localization for German (`de`) diff --git a/libs/common/src/lib/chart-helper.ts b/libs/common/src/lib/chart-helper.ts index 4181ebbbf..697f39467 100644 --- a/libs/common/src/lib/chart-helper.ts +++ b/libs/common/src/lib/chart-helper.ts @@ -132,8 +132,10 @@ export function getVerticalHoverLinePlugin( } export function transformTickToAbbreviation(value: number) { - if (value >= -999 && value <= 999) { - return value.toString(); + if (value === 0) { + return '0'; + } else if (value >= -999 && value <= 999) { + return value.toFixed(2); } else if (value >= -999999 && value <= 999999) { return `${value / 1000}K`; } else { From 0c65afeb22e5b8c9d32e73a34ef3e896fa136c53 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 30 Sep 2025 20:26:09 +0200 Subject: [PATCH 15/34] Feature/improve usability of create asset profile dialog in market data section of admin control panel (#5613) * Improve usability * Update changelog --- CHANGELOG.md | 1 + .../create-asset-profile-dialog.component.ts | 9 +++++---- .../create-asset-profile-dialog.html | 9 ++++++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7593b5e2a..d8b5a688d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the number formatting of the y-axis labels in the investment chart component - Localized the number formatting of the y-axis labels in the line chart component - Improved the wording of the 4% rule in the _FIRE_ section +- Improved the usability of the create asset profile dialog in the market data section of the admin control panel - Improved the language localization for German (`de`) ## 2.203.0 - 2025-09-27 diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts index 94433e56c..18dc48c39 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts @@ -55,6 +55,7 @@ import { CreateAssetProfileDialogMode } from './interfaces/interfaces'; }) export class GfCreateAssetProfileDialogComponent implements OnInit, OnDestroy { public createAssetProfileForm: FormGroup; + public ghostfolioPrefix = `${ghostfolioPrefix}_`; public mode: CreateAssetProfileDialogMode; private customCurrencies: string[]; @@ -77,9 +78,7 @@ export class GfCreateAssetProfileDialogComponent implements OnInit, OnDestroy { addCurrency: new FormControl(null, [ this.iso4217CurrencyCodeValidator() ]), - addSymbol: new FormControl(`${ghostfolioPrefix}_`, [ - Validators.required - ]), + addSymbol: new FormControl(null, [Validators.required]), searchSymbol: new FormControl(null, [Validators.required]) }, { @@ -95,6 +94,8 @@ export class GfCreateAssetProfileDialogComponent implements OnInit, OnDestroy { } public onRadioChange(mode: CreateAssetProfileDialogMode) { + this.createAssetProfileForm.reset(); + this.mode = mode; } @@ -133,7 +134,7 @@ export class GfCreateAssetProfileDialogComponent implements OnInit, OnDestroy { } else if (this.mode === 'manual') { this.dialogRef.close({ dataSource: 'MANUAL', - symbol: this.createAssetProfileForm.get('addSymbol').value + symbol: `${this.ghostfolioPrefix}${this.createAssetProfileForm.get('addSymbol').value}` }); } } diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html index c60ca83b8..1474596aa 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -38,6 +38,7 @@ Symbol + {{ ghostfolioPrefix }}
} @else if (mode === 'currency') { @@ -53,7 +54,13 @@ }
- +
Value @@ -291,7 +291,7 @@ Value diff --git a/libs/ui/src/lib/benchmark/benchmark.component.scss b/libs/ui/src/lib/benchmark/benchmark.component.scss index 990b8b294..5d4e87f30 100644 --- a/libs/ui/src/lib/benchmark/benchmark.component.scss +++ b/libs/ui/src/lib/benchmark/benchmark.component.scss @@ -1,13 +1,3 @@ :host { display: block; - - .gf-table { - th { - ::ng-deep { - .mat-sort-header-container { - justify-content: inherit; - } - } - } - } } diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.scss b/libs/ui/src/lib/holdings-table/holdings-table.component.scss index 990b8b294..5d4e87f30 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.scss +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.scss @@ -1,13 +1,3 @@ :host { display: block; - - .gf-table { - th { - ::ng-deep { - .mat-sort-header-container { - justify-content: inherit; - } - } - } - } } From d242da13d3d623c8b4f2bd6b5d3ce54e91c9235c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 30 Sep 2025 20:30:12 +0200 Subject: [PATCH 17/34] Release 2.204.0 (#5635) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 396d83ebd..1d942225b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 2.203.0 - 2025-09-30 ### Added diff --git a/package-lock.json b/package-lock.json index 2e5af6455..f9129a9d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.203.0", + "version": "2.204.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.203.0", + "version": "2.204.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 8f2a908c3..6ad1e6498 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.203.0", + "version": "2.204.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 27b6afc1ab18974a79b365fd0b64a402c51e5c61 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 30 Sep 2025 20:33:14 +0200 Subject: [PATCH 18/34] Release 2.204.0 (#5636) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d942225b..a0c866e2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## 2.203.0 - 2025-09-30 +## 2.204.0 - 2025-09-30 ### Added From dcd2d179085b88d7401113efe5be3f81083da9a9 Mon Sep 17 00:00:00 2001 From: SK Akram Date: Wed, 1 Oct 2025 12:39:14 +0530 Subject: [PATCH 19/34] Task/prefix create watchlist item dialog component with Gf (#5617) * Prefix create watchlist item dialog component --- .../create-watchlist-item-dialog.component.ts | 4 ++-- .../home-watchlist.component.ts | 21 +++++++++++-------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.ts b/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.ts index 759e47a01..7bd7d2ae1 100644 --- a/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.ts +++ b/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.ts @@ -36,13 +36,13 @@ import { Subject } from 'rxjs'; styleUrls: ['./create-watchlist-item-dialog.component.scss'], templateUrl: 'create-watchlist-item-dialog.html' }) -export class CreateWatchlistItemDialogComponent implements OnInit, OnDestroy { +export class GfCreateWatchlistItemDialogComponent implements OnInit, OnDestroy { public createWatchlistItemForm: FormGroup; private unsubscribeSubject = new Subject(); public constructor( - public readonly dialogRef: MatDialogRef, + public readonly dialogRef: MatDialogRef, public readonly formBuilder: FormBuilder ) {} diff --git a/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts b/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts index 226d748cd..efe93a843 100644 --- a/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts +++ b/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts @@ -28,7 +28,7 @@ import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; -import { CreateWatchlistItemDialogComponent } from './create-watchlist-item-dialog/create-watchlist-item-dialog.component'; +import { GfCreateWatchlistItemDialogComponent } from './create-watchlist-item-dialog/create-watchlist-item-dialog.component'; import { CreateWatchlistItemDialogParams } from './create-watchlist-item-dialog/interfaces/interfaces'; @Component({ @@ -149,14 +149,17 @@ export class HomeWatchlistComponent implements OnDestroy, OnInit { .subscribe((user) => { this.user = user; - const dialogRef = this.dialog.open(CreateWatchlistItemDialogComponent, { - autoFocus: false, - data: { - deviceType: this.deviceType, - locale: this.user?.settings?.locale - } as CreateWatchlistItemDialogParams, - width: this.deviceType === 'mobile' ? '100vw' : '50rem' - }); + const dialogRef = this.dialog.open( + GfCreateWatchlistItemDialogComponent, + { + autoFocus: false, + data: { + deviceType: this.deviceType, + locale: this.user?.settings?.locale + } as CreateWatchlistItemDialogParams, + width: this.deviceType === 'mobile' ? '100vw' : '50rem' + } + ); dialogRef .afterClosed() From ce1560751ea15142620b0c7ea302c0a0af724064 Mon Sep 17 00:00:00 2001 From: CodeySnooze <234940681+CodeySnooze@users.noreply.github.com> Date: Wed, 1 Oct 2025 17:31:32 +0530 Subject: [PATCH 20/34] Task/add component suffix to import activities dialog component (#5620) * Add component suffix --- .../pages/portfolio/activities/activities-page.component.ts | 6 +++--- .../import-activities-dialog.component.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index a722dffbf..d251407cf 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -28,7 +28,7 @@ import { Subject, Subscription } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { GfCreateOrUpdateActivityDialog } from './create-or-update-activity-dialog/create-or-update-activity-dialog.component'; -import { GfImportActivitiesDialog } from './import-activities-dialog/import-activities-dialog.component'; +import { GfImportActivitiesDialogComponent } from './import-activities-dialog/import-activities-dialog.component'; import { ImportActivitiesDialogParams } from './import-activities-dialog/interfaces/interfaces'; @Component({ @@ -245,7 +245,7 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit { } public onImport() { - const dialogRef = this.dialog.open(GfImportActivitiesDialog, { + const dialogRef = this.dialog.open(GfImportActivitiesDialogComponent, { data: { deviceType: this.deviceType, user: this.user @@ -268,7 +268,7 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit { } public onImportDividends() { - const dialogRef = this.dialog.open(GfImportActivitiesDialog, { + const dialogRef = this.dialog.open(GfImportActivitiesDialogComponent, { data: { activityTypes: ['DIVIDEND'], deviceType: this.deviceType, diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts index ea3292663..228eac5c3 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts @@ -78,7 +78,7 @@ import { ImportActivitiesDialogParams } from './interfaces/interfaces'; styleUrls: ['./import-activities-dialog.scss'], templateUrl: 'import-activities-dialog.html' }) -export class GfImportActivitiesDialog implements OnDestroy { +export class GfImportActivitiesDialogComponent implements OnDestroy { public accounts: CreateAccountWithBalancesDto[] = []; public activities: Activity[] = []; public assetProfileForm: FormGroup; @@ -109,7 +109,7 @@ export class GfImportActivitiesDialog implements OnDestroy { private dataService: DataService, private deviceService: DeviceDetectorService, private formBuilder: FormBuilder, - public dialogRef: MatDialogRef, + public dialogRef: MatDialogRef, private importActivitiesService: ImportActivitiesService, private snackBar: MatSnackBar ) { From 5375d0fee10cd5d2bf418112fc216a77d649750a Mon Sep 17 00:00:00 2001 From: Anirban Biswas <139000437+Rustix69@users.noreply.github.com> Date: Wed, 1 Oct 2025 17:58:27 +0530 Subject: [PATCH 21/34] Task/add component suffix to create or update activity dialog component (#5628) * Add component suffix --- .../activities/activities-page.component.ts | 58 ++++++++++--------- ...ate-or-update-activity-dialog.component.ts | 4 +- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index d251407cf..ce99fbf77 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -27,7 +27,7 @@ import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject, Subscription } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; -import { GfCreateOrUpdateActivityDialog } from './create-or-update-activity-dialog/create-or-update-activity-dialog.component'; +import { GfCreateOrUpdateActivityDialogComponent } from './create-or-update-activity-dialog/create-or-update-activity-dialog.component'; import { GfImportActivitiesDialogComponent } from './import-activities-dialog/import-activities-dialog.component'; import { ImportActivitiesDialogParams } from './import-activities-dialog/interfaces/interfaces'; @@ -306,15 +306,18 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit { } public openUpdateActivityDialog(aActivity: Activity) { - const dialogRef = this.dialog.open(GfCreateOrUpdateActivityDialog, { - data: { - activity: aActivity, - accounts: this.user?.accounts, - user: this.user - }, - height: this.deviceType === 'mobile' ? '98vh' : '80vh', - width: this.deviceType === 'mobile' ? '100vw' : '50rem' - }); + const dialogRef = this.dialog.open( + GfCreateOrUpdateActivityDialogComponent, + { + data: { + activity: aActivity, + accounts: this.user?.accounts, + user: this.user + }, + height: this.deviceType === 'mobile' ? '98vh' : '80vh', + width: this.deviceType === 'mobile' ? '100vw' : '50rem' + } + ); dialogRef .afterClosed() @@ -347,23 +350,26 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit { .subscribe((user) => { this.updateUser(user); - const dialogRef = this.dialog.open(GfCreateOrUpdateActivityDialog, { - data: { - accounts: this.user?.accounts, - activity: { - ...aActivity, - accountId: aActivity?.accountId, - date: new Date(), - id: null, - fee: 0, - type: aActivity?.type ?? 'BUY', - unitPrice: null + const dialogRef = this.dialog.open( + GfCreateOrUpdateActivityDialogComponent, + { + data: { + accounts: this.user?.accounts, + activity: { + ...aActivity, + accountId: aActivity?.accountId, + date: new Date(), + id: null, + fee: 0, + type: aActivity?.type ?? 'BUY', + unitPrice: null + }, + user: this.user }, - user: this.user - }, - height: this.deviceType === 'mobile' ? '98vh' : '80vh', - width: this.deviceType === 'mobile' ? '100vw' : '50rem' - }); + height: this.deviceType === 'mobile' ? '98vh' : '80vh', + width: this.deviceType === 'mobile' ? '100vw' : '50rem' + } + ); dialogRef .afterClosed() diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts index 6454b9918..3261e9752 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts @@ -76,7 +76,7 @@ import { ActivityType } from './types/activity-type.type'; styleUrls: ['./create-or-update-activity-dialog.scss'], templateUrl: 'create-or-update-activity-dialog.html' }) -export class GfCreateOrUpdateActivityDialog implements OnDestroy { +export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy { public activityForm: FormGroup; public assetClassOptions: AssetClassSelectorOption[] = Object.keys(AssetClass) @@ -110,7 +110,7 @@ export class GfCreateOrUpdateActivityDialog implements OnDestroy { @Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateActivityDialogParams, private dataService: DataService, private dateAdapter: DateAdapter, - public dialogRef: MatDialogRef, + public dialogRef: MatDialogRef, private formBuilder: FormBuilder, @Inject(MAT_DATE_LOCALE) private locale: string, private userService: UserService From 0a79a27e0db729383aaec369b7bab626f36da803 Mon Sep 17 00:00:00 2001 From: SK Akram Date: Wed, 1 Oct 2025 18:03:36 +0530 Subject: [PATCH 22/34] Task/prefix home watchlist component with Gf (#5640) * Prefix home watchlist component with Gf --- .../app/components/home-watchlist/home-watchlist.component.ts | 2 +- apps/client/src/app/pages/home/home-page.routes.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts b/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts index efe93a843..4c0b614c0 100644 --- a/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts +++ b/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts @@ -45,7 +45,7 @@ import { CreateWatchlistItemDialogParams } from './create-watchlist-item-dialog/ styleUrls: ['./home-watchlist.scss'], templateUrl: './home-watchlist.html' }) -export class HomeWatchlistComponent implements OnDestroy, OnInit { +export class GfHomeWatchlistComponent implements OnDestroy, OnInit { public deviceType: string; public hasImpersonationId: boolean; public hasPermissionToCreateWatchlistItem: boolean; diff --git a/apps/client/src/app/pages/home/home-page.routes.ts b/apps/client/src/app/pages/home/home-page.routes.ts index 9ae280939..452844cd7 100644 --- a/apps/client/src/app/pages/home/home-page.routes.ts +++ b/apps/client/src/app/pages/home/home-page.routes.ts @@ -2,7 +2,7 @@ import { GfHomeHoldingsComponent } from '@ghostfolio/client/components/home-hold import { HomeMarketComponent } from '@ghostfolio/client/components/home-market/home-market.component'; import { GfHomeOverviewComponent } from '@ghostfolio/client/components/home-overview/home-overview.component'; import { GfHomeSummaryComponent } from '@ghostfolio/client/components/home-summary/home-summary.component'; -import { HomeWatchlistComponent } from '@ghostfolio/client/components/home-watchlist/home-watchlist.component'; +import { GfHomeWatchlistComponent } from '@ghostfolio/client/components/home-watchlist/home-watchlist.component'; import { MarketsComponent } from '@ghostfolio/client/components/markets/markets.component'; import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { internalRoutes } from '@ghostfolio/common/routes/routes'; @@ -41,7 +41,7 @@ export const routes: Routes = [ }, { path: internalRoutes.home.subRoutes.watchlist.path, - component: HomeWatchlistComponent, + component: GfHomeWatchlistComponent, title: internalRoutes.home.subRoutes.watchlist.title } ], From 8b7ad345061d0ec8c810db10e3ba555a66b824ff Mon Sep 17 00:00:00 2001 From: Flavien Lankai-Mills Date: Wed, 1 Oct 2025 14:36:15 +0200 Subject: [PATCH 23/34] Task/add component suffix to create or update access dialog component (#5621) * Add component suffix --- .../create-or-update-access-dialog.component.ts | 4 ++-- .../user-account-access/user-account-access.component.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts index 1a4d3210a..067eb2d59 100644 --- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts +++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts @@ -47,7 +47,7 @@ import { CreateOrUpdateAccessDialogParams } from './interfaces/interfaces'; styleUrls: ['./create-or-update-access-dialog.scss'], templateUrl: 'create-or-update-access-dialog.html' }) -export class GfCreateOrUpdateAccessDialog implements OnDestroy { +export class GfCreateOrUpdateAccessDialogComponent implements OnDestroy { public accessForm: FormGroup; private unsubscribeSubject = new Subject(); @@ -55,7 +55,7 @@ export class GfCreateOrUpdateAccessDialog implements OnDestroy { public constructor( private changeDetectorRef: ChangeDetectorRef, @Inject(MAT_DIALOG_DATA) private data: CreateOrUpdateAccessDialogParams, - public dialogRef: MatDialogRef, + public dialogRef: MatDialogRef, private dataService: DataService, private formBuilder: FormBuilder, private notificationService: NotificationService diff --git a/apps/client/src/app/components/user-account-access/user-account-access.component.ts b/apps/client/src/app/components/user-account-access/user-account-access.component.ts index c7959486b..178df374d 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.component.ts +++ b/apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -30,7 +30,7 @@ import { DeviceDetectorService } from 'ngx-device-detector'; import { EMPTY, Subject } from 'rxjs'; import { catchError, takeUntil } from 'rxjs/operators'; -import { GfCreateOrUpdateAccessDialog } from './create-or-update-access-dialog/create-or-update-access-dialog.component'; +import { GfCreateOrUpdateAccessDialogComponent } from './create-or-update-access-dialog/create-or-update-access-dialog.component'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -179,7 +179,7 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit { } private openCreateAccessDialog() { - const dialogRef = this.dialog.open(GfCreateOrUpdateAccessDialog, { + const dialogRef = this.dialog.open(GfCreateOrUpdateAccessDialogComponent, { data: { access: { alias: '', From 3c1118e02722f84fcf1790a900a28220272797c3 Mon Sep 17 00:00:00 2001 From: Jasmeet Singh Date: Wed, 1 Oct 2025 18:08:57 +0530 Subject: [PATCH 24/34] Task/prefix home market component with Gf (#5643) * Prefix home market component with Gf --- .../src/app/components/home-market/home-market.component.ts | 2 +- apps/client/src/app/pages/home/home-page.routes.ts | 4 ++-- apps/client/src/app/pages/markets/markets-page.component.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/client/src/app/components/home-market/home-market.component.ts b/apps/client/src/app/components/home-market/home-market.component.ts index f0aa4352d..32d89f8e0 100644 --- a/apps/client/src/app/components/home-market/home-market.component.ts +++ b/apps/client/src/app/components/home-market/home-market.component.ts @@ -35,7 +35,7 @@ import { takeUntil } from 'rxjs/operators'; styleUrls: ['./home-market.scss'], templateUrl: './home-market.html' }) -export class HomeMarketComponent implements OnDestroy, OnInit { +export class GfHomeMarketComponent implements OnDestroy, OnInit { public benchmarks: Benchmark[]; public deviceType: string; public fearAndGreedIndex: number; diff --git a/apps/client/src/app/pages/home/home-page.routes.ts b/apps/client/src/app/pages/home/home-page.routes.ts index 452844cd7..60f1b6f87 100644 --- a/apps/client/src/app/pages/home/home-page.routes.ts +++ b/apps/client/src/app/pages/home/home-page.routes.ts @@ -1,5 +1,5 @@ import { GfHomeHoldingsComponent } from '@ghostfolio/client/components/home-holdings/home-holdings.component'; -import { HomeMarketComponent } from '@ghostfolio/client/components/home-market/home-market.component'; +import { GfHomeMarketComponent } from '@ghostfolio/client/components/home-market/home-market.component'; import { GfHomeOverviewComponent } from '@ghostfolio/client/components/home-overview/home-overview.component'; import { GfHomeSummaryComponent } from '@ghostfolio/client/components/home-summary/home-summary.component'; import { GfHomeWatchlistComponent } from '@ghostfolio/client/components/home-watchlist/home-watchlist.component'; @@ -31,7 +31,7 @@ export const routes: Routes = [ }, { path: internalRoutes.home.subRoutes.markets.path, - component: HomeMarketComponent, + component: GfHomeMarketComponent, title: internalRoutes.home.subRoutes.markets.title }, { diff --git a/apps/client/src/app/pages/markets/markets-page.component.ts b/apps/client/src/app/pages/markets/markets-page.component.ts index 2d4a25876..11d4ebbde 100644 --- a/apps/client/src/app/pages/markets/markets-page.component.ts +++ b/apps/client/src/app/pages/markets/markets-page.component.ts @@ -1,4 +1,4 @@ -import { HomeMarketComponent } from '@ghostfolio/client/components/home-market/home-market.component'; +import { GfHomeMarketComponent } from '@ghostfolio/client/components/home-market/home-market.component'; import { CommonModule } from '@angular/common'; import { Component, OnDestroy } from '@angular/core'; @@ -6,7 +6,7 @@ import { Subject } from 'rxjs'; @Component({ host: { class: 'page' }, - imports: [CommonModule, HomeMarketComponent], + imports: [CommonModule, GfHomeMarketComponent], selector: 'gf-markets-page', styleUrls: ['./markets-page.scss'], templateUrl: './markets-page.html' From bb139bcfe6ceca3c2482e0c5fee893a9cfd6f712 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 1 Oct 2025 15:34:21 +0200 Subject: [PATCH 25/34] Feature/improve language localization for de 20250930 (#5638) * Update translations * Update changelog --- CHANGELOG.md | 6 ++++++ apps/client/src/locales/messages.de.xlf | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0c866e2d..eca7c850c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Improved the language localization for German (`de`) + ## 2.204.0 - 2025-09-30 ### Added diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index ef65bd96d..d5add9012 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -5393,7 +5393,7 @@ , - entnehmen, + entnehmen, apps/client/src/app/pages/portfolio/fire/fire-page.html 93 From e9c42598db6ecc2a5bbdc2e537e981d2d8a039bb Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:05:35 +0200 Subject: [PATCH 26/34] Feature/improve support for mutual funds in FMP service (#5651) * Improve support for mutual funds in getAssetProfile() * Update changelog --- CHANGELOG.md | 1 + .../financial-modeling-prep.service.ts | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eca7c850c..8035eb99c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the support for mutual funds in the _Financial Modeling Prep_ service (get asset profiles) - Improved the language localization for German (`de`) ## 2.204.0 - 2025-09-30 diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index 8f52fb779..e64416258 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -106,7 +106,10 @@ export class FinancialModelingPrepService implements DataProviderInterface { response.assetClass = assetClass; response.assetSubClass = assetSubClass; - if (assetSubClass === AssetSubClass.ETF) { + if ( + assetSubClass === AssetSubClass.ETF || + assetSubClass === AssetSubClass.MUTUALFUND + ) { const etfCountryWeightings = await fetch( `${this.getUrl({ version: 'stable' })}/etf/country-weightings?symbol=${symbol}&apikey=${this.apiKey}`, { From 3cbbbb7c1e9a3042492da4d49219b3b93b78c038 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:06:44 +0200 Subject: [PATCH 27/34] Feature/upgrade prisma to version 6.16.3 (#5652) * Upgrade prisma to version 6.16.3 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 92 +++++++++++++++++++++++------------------------ package.json | 4 +-- 3 files changed, 49 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8035eb99c..2881c6ac9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the support for mutual funds in the _Financial Modeling Prep_ service (get asset profiles) - Improved the language localization for German (`de`) +- Upgraded `prisma` from version `6.16.1` to `6.16.3` ## 2.204.0 - 2025-09-30 diff --git a/package-lock.json b/package-lock.json index f9129a9d4..57e7d851e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "@nestjs/schedule": "6.0.0", "@nestjs/serve-static": "5.0.3", "@openrouter/ai-sdk-provider": "0.7.2", - "@prisma/client": "6.16.1", + "@prisma/client": "6.16.3", "@simplewebauthn/browser": "13.1.0", "@simplewebauthn/server": "13.1.1", "@stripe/stripe-js": "7.9.0", @@ -149,7 +149,7 @@ "nx": "21.5.1", "prettier": "3.6.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.16.1", + "prisma": "6.16.3", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "8.3.0", @@ -11960,9 +11960,9 @@ "license": "MIT" }, "node_modules/@prisma/client": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.16.1.tgz", - "integrity": "sha512-QaBCOY29lLAxEFFJgBPyW3WInCW52fJeQTmWx/h6YsP5u0bwuqP51aP0uhqFvhK9DaZPwvai/M4tSDYLVE9vRg==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.16.3.tgz", + "integrity": "sha512-JfNfAtXG+/lIopsvoZlZiH2k5yNx87mcTS4t9/S5oufM1nKdXYxOvpDC1XoTCFBa5cQh7uXnbMPsmZrwZY80xw==", "hasInstallScript": true, "license": "Apache-2.0", "engines": { @@ -11982,9 +11982,9 @@ } }, "node_modules/@prisma/config": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.16.1.tgz", - "integrity": "sha512-sz3uxRPNL62QrJ0EYiujCFkIGZ3hg+9hgC1Ae1HjoYuj0BxCqHua4JNijYvYCrh9LlofZDZcRBX3tHBfLvAngA==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.16.3.tgz", + "integrity": "sha512-VlsLnG4oOuKGGMToEeVaRhoTBZu5H3q51jTQXb/diRags3WV0+BQK5MolJTtP6G7COlzoXmWeS11rNBtvg+qFQ==", "devOptional": true, "license": "Apache-2.0", "dependencies": { @@ -11995,53 +11995,53 @@ } }, "node_modules/@prisma/debug": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.16.1.tgz", - "integrity": "sha512-RWv/VisW5vJE4cDRTuAHeVedtGoItXTnhuLHsSlJ9202QKz60uiXWywBlVcqXVq8bFeIZoCoWH+R1duZJPwqLw==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.16.3.tgz", + "integrity": "sha512-89DdqWtdKd7qoc9/qJCKLTazj3W3zPEiz0hc7HfZdpjzm21c7orOUB5oHWJsG+4KbV4cWU5pefq3CuDVYF9vgA==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/engines": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.16.1.tgz", - "integrity": "sha512-EOnEM5HlosPudBqbI+jipmaW/vQEaF0bKBo4gVkGabasINHR6RpC6h44fKZEqx4GD8CvH+einD2+b49DQrwrAg==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.16.3.tgz", + "integrity": "sha512-b+Rl4nzQDcoqe6RIpSHv8f5lLnwdDGvXhHjGDiokObguAAv/O1KaX1Oc69mBW/GFWKQpCkOraobLjU6s1h8HGg==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.16.1", - "@prisma/engines-version": "6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43", - "@prisma/fetch-engine": "6.16.1", - "@prisma/get-platform": "6.16.1" + "@prisma/debug": "6.16.3", + "@prisma/engines-version": "6.16.1-1.bb420e667c1820a8c05a38023385f6cc7ef8e83a", + "@prisma/fetch-engine": "6.16.3", + "@prisma/get-platform": "6.16.3" } }, "node_modules/@prisma/engines-version": { - "version": "6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43.tgz", - "integrity": "sha512-ThvlDaKIVrnrv97ujNFDYiQbeMQpLa0O86HFA2mNoip4mtFqM7U5GSz2ie1i2xByZtvPztJlNRgPsXGeM/kqAA==", + "version": "6.16.1-1.bb420e667c1820a8c05a38023385f6cc7ef8e83a", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.16.1-1.bb420e667c1820a8c05a38023385f6cc7ef8e83a.tgz", + "integrity": "sha512-fftRmosBex48Ph1v2ll1FrPpirwtPZpNkE5CDCY1Lw2SD2ctyrLlVlHiuxDAAlALwWBOkPbAll4+EaqdGuMhJw==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/fetch-engine": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.16.1.tgz", - "integrity": "sha512-fl/PKQ8da5YTayw86WD3O9OmKJEM43gD3vANy2hS5S1CnfW2oPXk+Q03+gUWqcKK306QqhjjIHRFuTZ31WaosQ==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.16.3.tgz", + "integrity": "sha512-bUoRIkVaI+CCaVGrSfcKev0/Mk4ateubqWqGZvQ9uCqFv2ENwWIR3OeNuGin96nZn5+SkebcD7RGgKr/+mJelw==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.16.1", - "@prisma/engines-version": "6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43", - "@prisma/get-platform": "6.16.1" + "@prisma/debug": "6.16.3", + "@prisma/engines-version": "6.16.1-1.bb420e667c1820a8c05a38023385f6cc7ef8e83a", + "@prisma/get-platform": "6.16.3" } }, "node_modules/@prisma/get-platform": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.16.1.tgz", - "integrity": "sha512-kUfg4vagBG7dnaGRcGd1c0ytQFcDj2SUABiuveIpL3bthFdTLI6PJeLEia6Q8Dgh+WhPdo0N2q0Fzjk63XTyaA==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.16.3.tgz", + "integrity": "sha512-X1LxiFXinJ4iQehrodGp0f66Dv6cDL0GbRlcCoLtSu6f4Wi+hgo7eND/afIs5029GQLgNWKZ46vn8hjyXTsHLA==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.16.1" + "@prisma/debug": "6.16.3" } }, "node_modules/@redis/client": { @@ -17285,9 +17285,9 @@ } }, "node_modules/c12/node_modules/jiti": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz", - "integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", "devOptional": true, "license": "MIT", "bin": { @@ -33713,16 +33713,16 @@ } }, "node_modules/nypm": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.1.tgz", - "integrity": "sha512-hlacBiRiv1k9hZFiphPUkfSQ/ZfQzZDzC+8z0wL3lvDAOUu/2NnChkKuMoMjNur/9OpKuz2QsIeiPVN0xM5Q0w==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz", + "integrity": "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==", "devOptional": true, "license": "MIT", "dependencies": { "citty": "^0.1.6", "consola": "^3.4.2", "pathe": "^2.0.3", - "pkg-types": "^2.2.0", + "pkg-types": "^2.3.0", "tinyexec": "^1.0.1" }, "bin": { @@ -34903,9 +34903,9 @@ } }, "node_modules/pkg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.2.0.tgz", - "integrity": "sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", "devOptional": true, "license": "MIT", "dependencies": { @@ -35747,15 +35747,15 @@ } }, "node_modules/prisma": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.16.1.tgz", - "integrity": "sha512-MFkMU0eaDDKAT4R/By2IA9oQmwLTxokqv2wegAErr9Rf+oIe7W2sYpE/Uxq0H2DliIR7vnV63PkC1bEwUtl98w==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.16.3.tgz", + "integrity": "sha512-4tJq3KB9WRshH5+QmzOLV54YMkNlKOtLKaSdvraI5kC/axF47HuOw6zDM8xrxJ6s9o2WodY654On4XKkrobQdQ==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/config": "6.16.1", - "@prisma/engines": "6.16.1" + "@prisma/config": "6.16.3", + "@prisma/engines": "6.16.3" }, "bin": { "prisma": "build/index.js" diff --git a/package.json b/package.json index 6ad1e6498..a8aedcd6f 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "@nestjs/schedule": "6.0.0", "@nestjs/serve-static": "5.0.3", "@openrouter/ai-sdk-provider": "0.7.2", - "@prisma/client": "6.16.1", + "@prisma/client": "6.16.3", "@simplewebauthn/browser": "13.1.0", "@simplewebauthn/server": "13.1.1", "@stripe/stripe-js": "7.9.0", @@ -195,7 +195,7 @@ "nx": "21.5.1", "prettier": "3.6.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.16.1", + "prisma": "6.16.3", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "8.3.0", From 244e63a127a762bd892236aac2c0636c4b70db27 Mon Sep 17 00:00:00 2001 From: Omar Eltomy <97570527+omareltomy@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:09:20 +0300 Subject: [PATCH 28/34] Feature/restrict retirement date picker of FIRE calculator to future dates (#5627) * Restrict retirement date picker of FIRE calculator to future dates * Update changelog --- CHANGELOG.md | 1 + libs/ui/src/lib/fire-calculator/fire-calculator.component.html | 1 + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts | 2 ++ 3 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2881c6ac9..d72c0bd84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Restricted the selection of the retirement date picker in the _FIRE_ calculator to a future date - Improved the support for mutual funds in the _Financial Modeling Prep_ service (get asset profiles) - Improved the language localization for German (`de`) - Upgraded `prisma` from version `6.16.1` to `6.16.3` 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 60d5204e1..ef4722255 100644 --- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.html +++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.html @@ -40,6 +40,7 @@ formControlName="retirementDate" matInput [matDatepicker]="datepicker" + [min]="minDate" /> ; public isLoading = true; + public minDate = addDays(new Date(), 1); public periodsToRetire = 0; private readonly CONTRIBUTION_PERIOD = 12; From 4f51253b7ec65eb5f41caeff7e8fe2e3a31ac138 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:11:44 +0200 Subject: [PATCH 29/34] Release 2.205.0 (#5654) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d72c0bd84..717a36953 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 2.205.0 - 2025-10-01 ### Changed diff --git a/package-lock.json b/package-lock.json index 57e7d851e..8f8676556 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.204.0", + "version": "2.205.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.204.0", + "version": "2.205.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index a8aedcd6f..28881f546 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.204.0", + "version": "2.205.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 4e2a1b8de5fb272036d79f88d3344573b3e774b5 Mon Sep 17 00:00:00 2001 From: Mariam Saeed <69825646+Mariam-Saeed@users.noreply.github.com> Date: Thu, 2 Oct 2025 16:17:02 +0300 Subject: [PATCH 30/34] Feature/improve usability of create watchlist item dialog (#5661) * Improve usability of create watchlist item dialog * Update changelog --- CHANGELOG.md | 6 ++++++ .../create-watchlist-item-dialog.html | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 717a36953..6d0a3c3c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Improved the usability of the _Cancel_ / _Close_ buttons in the create watchlist item dialog + ## 2.205.0 - 2025-10-01 ### Changed diff --git a/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html b/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html index dd59a9309..92e194891 100644 --- a/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html +++ b/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html @@ -12,7 +12,13 @@
- +