From 43fca7ff43a71126e05220c266af43b5c68d31fd Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 23 Jul 2024 20:59:23 +0200 Subject: [PATCH] Feature/improve personal finance tools product page (#3599) * Localize origin * Localize regions * Localize tags --- .../product-page.component.ts | 40 ++++++++- .../personal-finance-tools/product-page.html | 88 +++++-------------- libs/common/src/lib/interfaces/product.ts | 2 +- libs/common/src/lib/personal-finance-tools.ts | 14 +-- libs/ui/src/lib/i18n.ts | 24 ++++- 5 files changed, 93 insertions(+), 75 deletions(-) diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts index 3004a3ec4..76fe7eb97 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -1,6 +1,7 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { Product } from '@ghostfolio/common/interfaces'; import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools'; +import { translate } from '@ghostfolio/ui/i18n'; import { CommonModule } from '@angular/common'; import { Component, OnInit } from '@angular/core'; @@ -26,6 +27,7 @@ export class GfProductPageComponent implements OnInit { '/' + $localize`resources`, 'personal-finance-tools' ]; + public tags: string[]; public constructor( private dataService: DataService, @@ -56,7 +58,7 @@ export class GfProductPageComponent implements OnInit { ], name: 'Ghostfolio', origin: $localize`Switzerland`, - region: $localize`Global`, + regions: [$localize`Global`], slogan: 'Open Source Wealth Management', useAnonymously: true }; @@ -64,5 +66,41 @@ export class GfProductPageComponent implements OnInit { this.product2 = personalFinanceTools.find(({ key }) => { return key === this.route.snapshot.data['key']; }); + + if (this.product2.origin) { + this.product2.origin = translate(this.product2.origin); + } + + if (this.product2.regions) { + this.product2.regions = this.product2.regions.map((region) => { + return translate(region); + }); + } + + this.tags = [ + this.product1.name, + this.product2.name, + $localize`Alternative`, + $localize`App`, + $localize`Budgeting`, + $localize`Community`, + $localize`Family Office`, + `Fintech`, + $localize`Investment`, + $localize`Investor`, + $localize`Open Source`, + `OSS`, + $localize`Personal Finance`, + $localize`Privacy`, + $localize`Portfolio`, + $localize`Software`, + $localize`Tool`, + $localize`User Experience`, + $localize`Wealth`, + $localize`Wealth Management`, + `WealthTech` + ].sort((a, b) => { + return a.localeCompare(b, undefined, { sensitivity: 'base' }); + }); } } diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.html b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.html index a8bc1d197..1c7102ed9 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.html +++ b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -80,8 +80,24 @@ Region - {{ product1.region }} - {{ product2.region }} + + @for ( + region of product1.regions; + track region; + let isLast = $last + ) { + {{ region }}{{ isLast ? '' : ', ' }} + } + + + @for ( + region of product2.regions; + track region; + let isLast = $last + ) { + {{ region }}{{ isLast ? '' : ', ' }} + } + @@ -236,69 +252,11 @@