From f3c8ec27cb8db49070c63cfd23a379e43a087baf Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 10 Jan 2023 20:06:42 +0100 Subject: [PATCH 1/7] Feature/improve deprecated sass imports (#1581) * Improve deprecated Sass imports * Update changelog --- CHANGELOG.md | 6 ++ apps/client/src/app/app.component.scss | 2 +- .../access-table/access-table.component.scss | 2 +- .../accounts-table.component.scss | 2 +- .../app/components/admin-jobs/admin-jobs.scss | 2 +- .../admin-market-data-detail.component.scss | 2 +- .../admin-market-data/admin-market-data.scss | 2 +- .../admin-overview/admin-overview.scss | 2 +- .../components/admin-users/admin-users.scss | 2 +- .../components/header/header.component.scss | 2 +- .../home-holdings/home-holdings.scss | 2 +- .../components/home-market/home-market.scss | 2 +- .../home-overview/home-overview.scss | 2 +- .../components/home-summary/home-summary.scss | 2 +- .../positions/positions.component.scss | 2 +- .../src/app/pages/admin/admin-page.scss | 2 +- apps/client/src/app/pages/home/home-page.scss | 2 +- .../src/app/pages/landing/landing-page.scss | 2 +- .../app/pages/portfolio/portfolio-page.scss | 2 +- apps/client/src/app/pages/zen/zen-page.scss | 2 +- apps/client/src/styles.scss | 4 +- apps/client/src/styles/bootstrap.scss | 74 +++++++++---------- apps/client/src/styles/ghostfolio-style.scss | 2 +- .../activities-filter.component.scss | 2 +- .../activities-table.component.scss | 2 +- .../holdings-table.component.scss | 2 +- 26 files changed, 68 insertions(+), 62 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9679a3b5..b331871ef 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 deprecated `~` in _Sass_ imports + ## 1.225.0 - 2023-01-07 ### Added diff --git a/apps/client/src/app/app.component.scss b/apps/client/src/app/app.component.scss index ab7878d73..6d6ac0639 100644 --- a/apps/client/src/app/app.component.scss +++ b/apps/client/src/app/app.component.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/access-table/access-table.component.scss b/apps/client/src/app/components/access-table/access-table.component.scss index ad5f401f6..f506edfc6 100644 --- a/apps/client/src/app/components/access-table/access-table.component.scss +++ b/apps/client/src/app/components/access-table/access-table.component.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/accounts-table/accounts-table.component.scss b/apps/client/src/app/components/accounts-table/accounts-table.component.scss index cd8d01321..ccb23a20e 100644 --- a/apps/client/src/app/components/accounts-table/accounts-table.component.scss +++ b/apps/client/src/app/components/accounts-table/accounts-table.component.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/admin-jobs/admin-jobs.scss b/apps/client/src/app/components/admin-jobs/admin-jobs.scss index b97d286cc..b5b58f67e 100644 --- a/apps/client/src/app/components/admin-jobs/admin-jobs.scss +++ b/apps/client/src/app/components/admin-jobs/admin-jobs.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.scss b/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.scss index 13db0835b..a922b5d69 100644 --- a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.scss +++ b/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.scss b/apps/client/src/app/components/admin-market-data/admin-market-data.scss index b97d286cc..b5b58f67e 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.scss +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/admin-overview/admin-overview.scss b/apps/client/src/app/components/admin-overview/admin-overview.scss index f44df0eba..0481f246f 100644 --- a/apps/client/src/app/components/admin-overview/admin-overview.scss +++ b/apps/client/src/app/components/admin-overview/admin-overview.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/admin-users/admin-users.scss b/apps/client/src/app/components/admin-users/admin-users.scss index a3916f727..8dce735ff 100644 --- a/apps/client/src/app/components/admin-users/admin-users.scss +++ b/apps/client/src/app/components/admin-users/admin-users.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/header/header.component.scss b/apps/client/src/app/components/header/header.component.scss index 32d125703..b78df5e63 100644 --- a/apps/client/src/app/components/header/header.component.scss +++ b/apps/client/src/app/components/header/header.component.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/home-holdings/home-holdings.scss b/apps/client/src/app/components/home-holdings/home-holdings.scss index b97d286cc..b5b58f67e 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.scss +++ b/apps/client/src/app/components/home-holdings/home-holdings.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/home-market/home-market.scss b/apps/client/src/app/components/home-market/home-market.scss index 2d7ffa0dd..f9e5e6275 100644 --- a/apps/client/src/app/components/home-market/home-market.scss +++ b/apps/client/src/app/components/home-market/home-market.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/home-overview/home-overview.scss b/apps/client/src/app/components/home-overview/home-overview.scss index ac86f6909..ab13a3ee2 100644 --- a/apps/client/src/app/components/home-overview/home-overview.scss +++ b/apps/client/src/app/components/home-overview/home-overview.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/home-summary/home-summary.scss b/apps/client/src/app/components/home-summary/home-summary.scss index b97d286cc..b5b58f67e 100644 --- a/apps/client/src/app/components/home-summary/home-summary.scss +++ b/apps/client/src/app/components/home-summary/home-summary.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/components/positions/positions.component.scss b/apps/client/src/app/components/positions/positions.component.scss index 1f1d20bcc..90eff65ea 100644 --- a/apps/client/src/app/components/positions/positions.component.scss +++ b/apps/client/src/app/components/positions/positions.component.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/pages/admin/admin-page.scss b/apps/client/src/app/pages/admin/admin-page.scss index 42a21abb3..72b22f8ce 100644 --- a/apps/client/src/app/pages/admin/admin-page.scss +++ b/apps/client/src/app/pages/admin/admin-page.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { color: rgb(var(--dark-primary-text)); diff --git a/apps/client/src/app/pages/home/home-page.scss b/apps/client/src/app/pages/home/home-page.scss index ecb03cf29..dbb6dd2d6 100644 --- a/apps/client/src/app/pages/home/home-page.scss +++ b/apps/client/src/app/pages/home/home-page.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { color: rgb(var(--dark-primary-text)); diff --git a/apps/client/src/app/pages/landing/landing-page.scss b/apps/client/src/app/pages/landing/landing-page.scss index bb0b66394..74c416b08 100644 --- a/apps/client/src/app/pages/landing/landing-page.scss +++ b/apps/client/src/app/pages/landing/landing-page.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.scss b/apps/client/src/app/pages/portfolio/portfolio-page.scss index b5471d5ce..535b5af50 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.scss +++ b/apps/client/src/app/pages/portfolio/portfolio-page.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { color: rgb(var(--dark-primary-text)); diff --git a/apps/client/src/app/pages/zen/zen-page.scss b/apps/client/src/app/pages/zen/zen-page.scss index 73e482c91..4a0154291 100644 --- a/apps/client/src/app/pages/zen/zen-page.scss +++ b/apps/client/src/app/pages/zen/zen-page.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { color: rgb(var(--dark-primary-text)); diff --git a/apps/client/src/styles.scss b/apps/client/src/styles.scss index 83d4367e4..bb3e1ccd6 100644 --- a/apps/client/src/styles.scss +++ b/apps/client/src/styles.scss @@ -3,9 +3,9 @@ @import './styles/bootstrap'; @import './styles/table'; -@import '~angular-material-css-vars/src/lib/main'; +@import 'node_modules/angular-material-css-vars/src/lib/main'; -@import '~svgmap/dist/svgMap'; +@import 'node_modules/svgmap/dist/svgMap'; $mat-css-dark-theme-selector: '.is-dark-theme'; $mat-css-light-theme-selector: '.is-light-theme'; diff --git a/apps/client/src/styles/bootstrap.scss b/apps/client/src/styles/bootstrap.scss index 49b9bf057..4c13e7978 100644 --- a/apps/client/src/styles/bootstrap.scss +++ b/apps/client/src/styles/bootstrap.scss @@ -5,40 +5,40 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -@import '~bootstrap/scss/functions'; -@import '~bootstrap/scss/variables'; -@import '~bootstrap/scss/mixins'; -@import '~bootstrap/scss/root'; -@import '~bootstrap/scss/reboot'; -@import '~bootstrap/scss/type'; -@import '~bootstrap/scss/images'; -// @import '~bootstrap/scss/code'; -@import '~bootstrap/scss/grid'; -// @import '~bootstrap/scss/tables'; -// @import '~bootstrap/scss/forms'; -// @import '~bootstrap/scss/buttons'; -// @import '~bootstrap/scss/transitions'; -// @import '~bootstrap/scss/dropdown'; -// @import '~bootstrap/scss/button-group'; -// @import '~bootstrap/scss/input-group'; -// @import '~bootstrap/scss/custom-forms'; -// @import '~bootstrap/scss/nav'; -// @import '~bootstrap/scss/navbar'; -// @import '~bootstrap/scss/card'; -// @import '~bootstrap/scss/breadcrumb'; -// @import '~bootstrap/scss/pagination'; -@import '~bootstrap/scss/badge'; -// @import '~bootstrap/scss/jumbotron'; -// @import '~bootstrap/scss/alert'; -// @import '~bootstrap/scss/progress'; -// @import '~bootstrap/scss/media'; -// @import '~bootstrap/scss/list-group'; -// @import '~bootstrap/scss/close'; -// @import '~bootstrap/scss/toasts'; -// @import '~bootstrap/scss/modal'; -// @import '~bootstrap/scss/tooltip'; -// @import '~bootstrap/scss/popover'; -// @import '~bootstrap/scss/carousel'; -// @import '~bootstrap/scss/spinners'; -@import '~bootstrap/scss/utilities'; -// @import '~bootstrap/scss/print'; +@import 'node_modules/bootstrap/scss/functions'; +@import 'node_modules/bootstrap/scss/variables'; +@import 'node_modules/bootstrap/scss/mixins'; +@import 'node_modules/bootstrap/scss/root'; +@import 'node_modules/bootstrap/scss/reboot'; +@import 'node_modules/bootstrap/scss/type'; +@import 'node_modules/bootstrap/scss/images'; +// @import 'node_modules/bootstrap/scss/code'; +@import 'node_modules/bootstrap/scss/grid'; +// @import 'node_modules/bootstrap/scss/tables'; +// @import 'node_modules/bootstrap/scss/forms'; +// @import 'node_modules/bootstrap/scss/buttons'; +// @import 'node_modules/bootstrap/scss/transitions'; +// @import 'node_modules/bootstrap/scss/dropdown'; +// @import 'node_modules/bootstrap/scss/button-group'; +// @import 'node_modules/bootstrap/scss/input-group'; +// @import 'node_modules/bootstrap/scss/custom-forms'; +// @import 'node_modules/bootstrap/scss/nav'; +// @import 'node_modules/bootstrap/scss/navbar'; +// @import 'node_modules/bootstrap/scss/card'; +// @import 'node_modules/bootstrap/scss/breadcrumb'; +// @import 'node_modules/bootstrap/scss/pagination'; +@import 'node_modules/bootstrap/scss/badge'; +// @import 'node_modules/bootstrap/scss/jumbotron'; +// @import 'node_modules/bootstrap/scss/alert'; +// @import 'node_modules/bootstrap/scss/progress'; +// @import 'node_modules/bootstrap/scss/media'; +// @import 'node_modules/bootstrap/scss/list-group'; +// @import 'node_modules/bootstrap/scss/close'; +// @import 'node_modules/bootstrap/scss/toasts'; +// @import 'node_modules/bootstrap/scss/modal'; +// @import 'node_modules/bootstrap/scss/tooltip'; +// @import 'node_modules/bootstrap/scss/popover'; +// @import 'node_modules/bootstrap/scss/carousel'; +// @import 'node_modules/bootstrap/scss/spinners'; +@import 'node_modules/bootstrap/scss/utilities'; +// @import 'node_modules/bootstrap/scss/print'; diff --git a/apps/client/src/styles/ghostfolio-style.scss b/apps/client/src/styles/ghostfolio-style.scss index 9556c6b5b..51ceeb884 100644 --- a/apps/client/src/styles/ghostfolio-style.scss +++ b/apps/client/src/styles/ghostfolio-style.scss @@ -1,6 +1,6 @@ $mat-css-dark-theme-selector: '.is-dark-theme'; -@import '~angular-material-css-vars/src/lib/public-util'; +@import 'node_modules/angular-material-css-vars/src/lib/public-util'; $alpha-disabled-text: 0.38; $alpha-hover: 0.04; diff --git a/libs/ui/src/lib/activities-filter/activities-filter.component.scss b/libs/ui/src/lib/activities-filter/activities-filter.component.scss index d859ac16d..c0d474724 100644 --- a/libs/ui/src/lib/activities-filter/activities-filter.component.scss +++ b/libs/ui/src/lib/activities-filter/activities-filter.component.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; diff --git a/libs/ui/src/lib/activities-table/activities-table.component.scss b/libs/ui/src/lib/activities-table/activities-table.component.scss index 42af383e4..6321a26c4 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.scss +++ b/libs/ui/src/lib/activities-table/activities-table.component.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; 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 f0da6525f..d7c678476 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.scss +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.scss @@ -1,4 +1,4 @@ -@import '~apps/client/src/styles/ghostfolio-style'; +@import 'apps/client/src/styles/ghostfolio-style'; :host { display: block; From fc8e23a9c8e4270f50c50b6931c41be1c00a49c1 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 10 Jan 2023 20:43:48 +0100 Subject: [PATCH 2/7] Feature/improve form of import dividends dialog (#1582) * Disable while loading * Update changelog --- CHANGELOG.md | 3 ++- .../import-activities-dialog.component.ts | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b331871ef..4a35e673c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Improved the deprecated `~` in _Sass_ imports +- Improved the form of the import dividends dialog (disable while loading) +- Removed the deprecated `~` in _Sass_ imports ## 1.225.0 - 2023-01-07 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 77ef8dfe8..e72b7cde3 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 @@ -56,6 +56,7 @@ export class ImportActivitiesDialog implements OnDestroy { this.data?.activityTypes?.[0] === 'DIVIDEND' ) { this.mode = 'DIVIDEND'; + this.uniqueAssetForm.controls['uniqueAsset'].disable(); this.dataService .fetchPositions({ @@ -72,6 +73,7 @@ export class ImportActivitiesDialog implements OnDestroy { this.holdings = sortBy(positions, ({ name }) => { return name.toLowerCase(); }); + this.uniqueAssetForm.controls['uniqueAsset'].enable(); this.changeDetectorRef.markForCheck(); }); @@ -111,6 +113,8 @@ export class ImportActivitiesDialog implements OnDestroy { } public onLoadDividends() { + this.uniqueAssetForm.controls['uniqueAsset'].disable(); + const { dataSource, symbol } = this.uniqueAssetForm.controls['uniqueAsset'].value; From 90a7a84ac5a9502ff3c002e31f16bbbe40bebb26 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 10 Jan 2023 20:52:05 +0100 Subject: [PATCH 3/7] Feature/add global heat map to landing page (#1584) * Add global heat map * Update changelog --- CHANGELOG.md | 4 ++++ apps/api/src/app/info/info.service.ts | 5 +++++ .../world-map-chart.component.ts | 6 +++--- .../pages/landing/landing-page.component.ts | 18 +++++++++++++++++- .../src/app/pages/landing/landing-page.html | 15 +++++++++++++++ .../app/pages/landing/landing-page.module.ts | 4 ++++ .../src/app/pages/landing/landing-page.scss | 4 ++++ .../allocations/allocations-page.component.ts | 6 ++++++ .../allocations/allocations-page.html | 2 +- libs/common/src/lib/config.ts | 1 + .../src/lib/interfaces/info-item.interface.ts | 2 +- 11 files changed, 61 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a35e673c..63dded11b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Extended the landing page by a global heat map of subscribers + ### Changed - Improved the form of the import dividends dialog (disable while loading) diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index 810611375..911243057 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -7,6 +7,7 @@ import { PropertyService } from '@ghostfolio/api/services/property/property.serv import { TagService } from '@ghostfolio/api/services/tag/tag.service'; import { DEMO_USER_ID, + PROPERTY_COUNTRIES_OF_SUBSCRIBERS, PROPERTY_IS_READ_ONLY_MODE, PROPERTY_SLACK_COMMUNITY_USERS, PROPERTY_STRIPE_CONFIG, @@ -92,6 +93,10 @@ export class InfoService { if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { globalPermissions.push(permissions.enableSubscription); + info.countriesOfSubscribers = + ((await this.propertyService.getByKey( + PROPERTY_COUNTRIES_OF_SUBSCRIBERS + )) as string[]) ?? []; info.stripePublicKey = this.configurationService.get('STRIPE_PUBLIC_KEY'); } diff --git a/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts b/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts index 22e4adc66..ef49eebde 100644 --- a/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts +++ b/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts @@ -16,8 +16,8 @@ import svgMap from 'svgmap'; styleUrls: ['./world-map-chart.component.scss'] }) export class WorldMapChartComponent implements OnChanges, OnDestroy, OnInit { - @Input() baseCurrency: string; - @Input() countries: { [code: string]: { name: string; value: number } }; + @Input() countries: { [code: string]: { name?: string; value: number } }; + @Input() format: string; @Input() isInPercent = false; public isLoading = true; @@ -71,7 +71,7 @@ export class WorldMapChartComponent implements OnChanges, OnDestroy, OnInit { applyData: 'value', data: { value: { - format: this.isInPercent ? `{0}%` : `{0} ${this.baseCurrency}` + format: this.format } }, values: this.countries diff --git a/apps/client/src/app/pages/landing/landing-page.component.ts b/apps/client/src/app/pages/landing/landing-page.component.ts index f8c2c6a23..f4a80c652 100644 --- a/apps/client/src/app/pages/landing/landing-page.component.ts +++ b/apps/client/src/app/pages/landing/landing-page.component.ts @@ -13,10 +13,14 @@ import { Subject } from 'rxjs'; templateUrl: './landing-page.html' }) export class LandingPageComponent implements OnDestroy, OnInit { + public countriesOfSubscribersMap: { + [code: string]: { value: number }; + } = {}; public currentYear = format(new Date(), 'yyyy'); public demoAuthToken: string; public deviceType: string; public hasPermissionForStatistics: boolean; + public hasPermissionForSubscription: boolean; public hasPermissionToCreateUser: boolean; public statistics: Statistics; public testimonials = [ @@ -48,13 +52,25 @@ export class LandingPageComponent implements OnDestroy, OnInit { private dataService: DataService, private deviceService: DeviceDetectorService ) { - const { globalPermissions, statistics } = this.dataService.fetchInfo(); + const { countriesOfSubscribers, globalPermissions, statistics } = + this.dataService.fetchInfo(); + + for (const country of countriesOfSubscribers) { + this.countriesOfSubscribersMap[country] = { + value: 1 + }; + } this.hasPermissionForStatistics = hasPermission( globalPermissions, permissions.enableStatistics ); + this.hasPermissionForSubscription = hasPermission( + globalPermissions, + permissions.enableSubscription + ); + this.hasPermissionToCreateUser = hasPermission( globalPermissions, permissions.createUserAccount diff --git a/apps/client/src/app/pages/landing/landing-page.html b/apps/client/src/app/pages/landing/landing-page.html index 0c8f20bce..64f943f3c 100644 --- a/apps/client/src/app/pages/landing/landing-page.html +++ b/apps/client/src/app/pages/landing/landing-page.html @@ -269,6 +269,21 @@ +
+
+

+ Members from around the globe are using + Ghostfolio Premium +

+
+
+ +
+
+

diff --git a/apps/client/src/app/pages/landing/landing-page.module.ts b/apps/client/src/app/pages/landing/landing-page.module.ts index 37c67f270..4a3ce00cb 100644 --- a/apps/client/src/app/pages/landing/landing-page.module.ts +++ b/apps/client/src/app/pages/landing/landing-page.module.ts @@ -3,7 +3,9 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { RouterModule } from '@angular/router'; +import { GfWorldMapChartModule } from '@ghostfolio/client/components/world-map-chart/world-map-chart.module'; import { GfLogoModule } from '@ghostfolio/ui/logo'; +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { GfValueModule } from '@ghostfolio/ui/value'; import { LandingPageRoutingModule } from './landing-page-routing.module'; @@ -14,7 +16,9 @@ import { LandingPageComponent } from './landing-page.component'; imports: [ CommonModule, GfLogoModule, + GfPremiumIndicatorModule, GfValueModule, + GfWorldMapChartModule, LandingPageRoutingModule, MatButtonModule, MatCardModule, diff --git a/apps/client/src/app/pages/landing/landing-page.scss b/apps/client/src/app/pages/landing/landing-page.scss index 74c416b08..bbc3c587a 100644 --- a/apps/client/src/app/pages/landing/landing-page.scss +++ b/apps/client/src/app/pages/landing/landing-page.scss @@ -9,6 +9,10 @@ } } + .customer-map-container { + aspect-ratio: 16 / 9; + } + .downloads { img { height: 2.5rem; diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts index ea0f65ac0..16cad4a90 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts @@ -84,6 +84,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { }; public user: User; + public worldMapChartFormat: string; private unsubscribeSubject = new Subject(); @@ -193,6 +194,11 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { ...tagFilters ]; + this.worldMapChartFormat = + this.hasImpersonationId || this.user.settings.isRestrictedView + ? `{0}%` + : `{0} ${this.user?.settings?.baseCurrency}`; + this.changeDetectorRef.markForCheck(); } }); diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html index 43d838808..907b62d51 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html @@ -257,8 +257,8 @@
diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index 5c8529231..91e83e2e0 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -72,6 +72,7 @@ export const GATHER_HISTORICAL_MARKET_DATA_PROCESS_OPTIONS: JobOptions = { export const MAX_CHART_ITEMS = 365; export const PROPERTY_BENCHMARKS = 'BENCHMARKS'; +export const PROPERTY_COUNTRIES_OF_SUBSCRIBERS = 'COUNTRIES_OF_SUBSCRIBERS'; export const PROPERTY_COUPONS = 'COUPONS'; export const PROPERTY_CURRENCIES = 'CURRENCIES'; export const PROPERTY_IS_READ_ONLY_MODE = 'IS_READ_ONLY_MODE'; diff --git a/libs/common/src/lib/interfaces/info-item.interface.ts b/libs/common/src/lib/interfaces/info-item.interface.ts index 3751c6405..bcb28402c 100644 --- a/libs/common/src/lib/interfaces/info-item.interface.ts +++ b/libs/common/src/lib/interfaces/info-item.interface.ts @@ -6,12 +6,12 @@ import { Subscription } from './subscription.interface'; export interface InfoItem { baseCurrency: string; benchmarks: Partial[]; + countriesOfSubscribers?: string[]; currencies: string[]; demoAuthToken: string; fearAndGreedDataSource?: string; globalPermissions: string[]; isReadOnlyMode?: boolean; - lastDataGathering?: Date; platforms: { id: string; name: string }[]; statistics: Statistics; stripePublicKey?: string; From 1b899da9ff87f14fd7657426797e581957116528 Mon Sep 17 00:00:00 2001 From: Martin Vandenbussche Date: Tue, 10 Jan 2023 20:59:32 +0100 Subject: [PATCH 4/7] Minor tweaks to README.md (#1585) * Minor tweaks to README.md - Reduced reliance on HTML in the README.md file. - Added alt text on images for improved accessibility - Very minor formatting tweaks Signed-off-by: Martin Vandenbussche --- README.md | 73 +++++++++++++++++++++++++------------------------------ 1 file changed, 33 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 2b26a2335..675a5a48f 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,26 @@
- - Ghostfolio Logo - - -

Ghostfolio

-

- Open Source Wealth Management Software -

-

- Ghostfol.io | Live Demo | Ghostfolio Premium | FAQ | Blog | Slack | Twitter -

-

- - - - - - License: AGPL v3 -

+ +[Ghostfolio logo](https://ghostfol.io) + +# Ghostfolio + +**Open Source Wealth Management Software** + +[**Ghostfol.io**](https://ghostfol.io) | [**Live Demo**](https://ghostfol.io/en/demo) | [**Ghostfolio Premium**](https://ghostfol.io/en/pricing) | [**FAQ**](https://ghostfol.io/en/faq) | +[**Blog**](https://ghostfol.io/en/blog) | [**Slack**](https://join.slack.com/t/ghostfolio/shared_invite/zt-vsaan64h-F_I0fEo5M0P88lP9ibCxFg) | [**Twitter**](https://twitter.com/ghostfolio_) + +[![Shield: Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-Support-yellow?logo=buymeacoffee)](https://www.buymeacoffee.com/ghostfolio) +[![Shield: Contributions Welcome](https://img.shields.io/badge/Contributions-Welcome-orange.svg)](#contributing) +[![Shield: License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) +
**Ghostfolio** is an open source wealth management software built with web technology. The application empowers busy people to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions. The software is designed for personal use in continuous operation. -
- - +
+ +[Preview image of the Ghostfolio video trailer](https://www.youtube.com/watch?v=yY6ObSQVJZk) +
## Ghostfolio Premium @@ -63,8 +55,10 @@ Ghostfolio is for you if you are... - âś… Zen Mode - âś… Progressive Web App (PWA) with a mobile-first design -
- +
+ +Image of a phone showing the Ghostfolio app open +
## Technology Stack @@ -84,13 +78,9 @@ The frontend is built with [Angular](https://angular.io) and uses [Angular Mater We provide official container images hosted on [Docker Hub](https://hub.docker.com/r/ghostfolio/ghostfolio) for `linux/amd64` and `linux/arm64`.
- - Buy me a coffee button - + +[Buy me a coffee button](https://www.buymeacoffee.com/ghostfolio) +
### Supported Environment Variables @@ -175,10 +165,13 @@ Please follow the instructions of the Ghostfolio [Unraid Community App](https:// ### Start Server -
    -
  1. Debug: Run yarn watch:server and click "Launch Program" in Visual Studio Code
  2. -
  3. Serve: Run yarn start:server
  4. -
+#### Debug + +Run `yarn watch:server` and click "Launch program" in [Visual Studio Code](https://code.visualstudio.com) + +##### Serve + +Run `yarn start:server` ### Start Client @@ -278,7 +271,7 @@ Ghostfolio is **100% free** and **open source**. We encourage and support an act Not sure what to work on? We have got some ideas. Please join the Ghostfolio [Slack channel](https://join.slack.com/t/ghostfolio/shared_invite/zt-vsaan64h-F_I0fEo5M0P88lP9ibCxFg), tweet to [@ghostfolio\_](https://twitter.com/ghostfolio_) or send an e-mail to hi@ghostfol.io. We would love to hear from you. -If you like to support this project, get **[Ghostfolio Premium](https://ghostfol.io/en/pricing)** or **[Buy me a coffee](https://www.buymeacoffee.com/ghostfolio)**. +If you like to support this project, get [**Ghostfolio Premium**](https://ghostfol.io/en/pricing) or [**Buy me a coffee**](https://www.buymeacoffee.com/ghostfolio). ## License From aeba6e1f03badf0744e40b403e029adcb7fd0cdf Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 11 Jan 2023 07:47:44 +0100 Subject: [PATCH 5/7] Feature/configure thousand separator in world map chart (#1588) * Set thousandSeparator * Update changelog --- CHANGELOG.md | 1 + .../components/world-map-chart/world-map-chart.component.ts | 5 ++++- apps/client/src/app/pages/landing/landing-page.module.ts | 2 -- .../app/pages/portfolio/allocations/allocations-page.html | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63dded11b..ce50bb067 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Extended the landing page by a global heat map of subscribers +- Added support for the thousand separator in the global heat map component ### Changed diff --git a/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts b/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts index ef49eebde..9d7c61d62 100644 --- a/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts +++ b/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts @@ -7,6 +7,7 @@ import { OnDestroy, OnInit } from '@angular/core'; +import { getNumberFormatGroup } from '@ghostfolio/common/helper'; import svgMap from 'svgmap'; @Component({ @@ -19,6 +20,7 @@ export class WorldMapChartComponent implements OnChanges, OnDestroy, OnInit { @Input() countries: { [code: string]: { name?: string; value: number } }; @Input() format: string; @Input() isInPercent = false; + @Input() locale: string; public isLoading = true; public svgMapElement; @@ -71,7 +73,8 @@ export class WorldMapChartComponent implements OnChanges, OnDestroy, OnInit { applyData: 'value', data: { value: { - format: this.format + format: this.format, + thousandSeparator: getNumberFormatGroup(this.locale) } }, values: this.countries diff --git a/apps/client/src/app/pages/landing/landing-page.module.ts b/apps/client/src/app/pages/landing/landing-page.module.ts index 4a3ce00cb..9a3f02cce 100644 --- a/apps/client/src/app/pages/landing/landing-page.module.ts +++ b/apps/client/src/app/pages/landing/landing-page.module.ts @@ -5,7 +5,6 @@ import { MatCardModule } from '@angular/material/card'; import { RouterModule } from '@angular/router'; import { GfWorldMapChartModule } from '@ghostfolio/client/components/world-map-chart/world-map-chart.module'; import { GfLogoModule } from '@ghostfolio/ui/logo'; -import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { GfValueModule } from '@ghostfolio/ui/value'; import { LandingPageRoutingModule } from './landing-page-routing.module'; @@ -16,7 +15,6 @@ import { LandingPageComponent } from './landing-page.component'; imports: [ CommonModule, GfLogoModule, - GfPremiumIndicatorModule, GfValueModule, GfWorldMapChartModule, LandingPageRoutingModule, diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html index 907b62d51..78d86d182 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html @@ -260,6 +260,7 @@ [countries]="countries" [format]="worldMapChartFormat" [isInPercent]="hasImpersonationId || user.settings.isRestrictedView" + [locale]="user?.settings?.locale" >
From 0208bd0923d5a67b74a537a4cb9a9dc69d5749af Mon Sep 17 00:00:00 2001 From: Martin Vandenbussche Date: Wed, 11 Jan 2023 19:38:46 +0100 Subject: [PATCH 6/7] Feature/French translation (#1583) * Finished the French translation --- .../src/app/pages/account/account-page.html | 4 +- apps/client/src/locales/messages.fr.xlf | 638 +++++++++--------- 2 files changed, 321 insertions(+), 321 deletions(-) diff --git a/apps/client/src/app/pages/account/account-page.html b/apps/client/src/app/pages/account/account-page.html index 7746ba902..c9ed454e4 100644 --- a/apps/client/src/app/pages/account/account-page.html +++ b/apps/client/src/app/pages/account/account-page.html @@ -135,10 +135,10 @@ >Español (Community) - + > Italiano (Community) The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. - The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. + Le risque de perte en investissant peut être important. Il est déconseillé d'investir de l'argent dont vous pourriez avoir besoin à court terme. apps/client/src/app/app.component.html 56,57 @@ -11,7 +11,7 @@ Alias - Alias + Alias apps/client/src/app/components/access-table/access-table.component.html 3 @@ -23,7 +23,7 @@ Grantee - Grantee + Bénéficiaire apps/client/src/app/components/access-table/access-table.component.html 10 @@ -31,7 +31,7 @@ Type - Type + Type apps/client/src/app/components/access-table/access-table.component.html 17 @@ -59,7 +59,7 @@ Details - Details + Détails apps/client/src/app/components/access-table/access-table.component.html 27 @@ -67,7 +67,7 @@ Revoke - Revoke + Révoquer apps/client/src/app/components/access-table/access-table.component.html 54 @@ -75,7 +75,7 @@ Do you really want to revoke this granted access? - Do you really want to revoke this granted access? + Voulez-vous vraiment révoquer cet accès ? apps/client/src/app/components/access-table/access-table.component.ts 49 @@ -83,7 +83,7 @@ Account Type - Account Type + Type de Compte apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html 25 @@ -91,7 +91,7 @@ Platform - Platform + Plateforme apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html 29 @@ -107,7 +107,7 @@ Activities - Activities + Activités apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html 35 @@ -135,7 +135,7 @@ Name - Name + Nom apps/client/src/app/components/accounts-table/accounts-table.component.html 22 @@ -159,7 +159,7 @@ Total - Total + Total apps/client/src/app/components/accounts-table/accounts-table.component.html 38 @@ -171,7 +171,7 @@ Currency - Currency + Devise apps/client/src/app/components/accounts-table/accounts-table.component.html 48 @@ -195,7 +195,7 @@ Cash Balance - Cash Balance + Balance Cash apps/client/src/app/components/accounts-table/accounts-table.component.html 112 @@ -207,7 +207,7 @@ Value - Value + Valeur apps/client/src/app/components/accounts-table/accounts-table.component.html 147 @@ -235,7 +235,7 @@ Edit - Edit + Modifier apps/client/src/app/components/accounts-table/accounts-table.component.html 224 @@ -247,7 +247,7 @@ Delete - Delete + Supprimer apps/client/src/app/components/accounts-table/accounts-table.component.html 232 @@ -267,7 +267,7 @@ Do you really want to delete this account? - Do you really want to delete this account? + Voulez-vous vraiment supprimer ce compte ? apps/client/src/app/components/accounts-table/accounts-table.component.ts 81 @@ -275,7 +275,7 @@ Symbol - Symbol + Symbole apps/client/src/app/components/admin-jobs/admin-jobs.html 24 @@ -291,7 +291,7 @@ Data Source - Data Source + Source Données apps/client/src/app/components/admin-jobs/admin-jobs.html 25 @@ -307,7 +307,7 @@ Attempts - Attempts + Tentatives apps/client/src/app/components/admin-jobs/admin-jobs.html 26 @@ -315,7 +315,7 @@ Created - Created + Créé apps/client/src/app/components/admin-jobs/admin-jobs.html 27 @@ -323,7 +323,7 @@ Finished - Finished + Terminé apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -331,7 +331,7 @@ Status - Status + Statut apps/client/src/app/components/admin-jobs/admin-jobs.html 29 @@ -339,7 +339,7 @@ Delete Jobs - Delete Jobs + Supprimer Tâches apps/client/src/app/components/admin-jobs/admin-jobs.html 41 @@ -347,7 +347,7 @@ Asset Profile - Asset Profile + Profil d'Actifs apps/client/src/app/components/admin-jobs/admin-jobs.html 58 @@ -355,7 +355,7 @@ Historical Market Data - Historical Market Data + Données de Marché Historiques apps/client/src/app/components/admin-jobs/admin-jobs.html 63 @@ -363,7 +363,7 @@ View Data - View Data + Voir Données apps/client/src/app/components/admin-jobs/admin-jobs.html 118 @@ -371,7 +371,7 @@ View Stacktrace - View Stacktrace + Voir la Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html 125 @@ -379,7 +379,7 @@ Delete Job - Delete Job + Supprimer Tâche apps/client/src/app/components/admin-jobs/admin-jobs.html 128 @@ -387,7 +387,7 @@ Details for - Details for + Détails pour apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html 2 @@ -395,7 +395,7 @@ Date - Date + Date apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html 6 @@ -411,7 +411,7 @@ Market Price - Market Price + Prix du Marché apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html 26 @@ -423,7 +423,7 @@ Cancel - Cancel + Annuler apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html 46 @@ -455,7 +455,7 @@ Save - Save + Sauvegarder apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html 48 @@ -479,7 +479,7 @@ Filter by... - Filter by... + Filtrer par... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts 128 @@ -487,7 +487,7 @@ Asset Class - Asset Class + Classe d'Actifs apps/client/src/app/components/admin-market-data/admin-market-data.html 42 @@ -507,7 +507,7 @@ Asset Sub Class - Asset Sub Class + Sous-classe d'Actifs apps/client/src/app/components/admin-market-data/admin-market-data.html 51 @@ -527,7 +527,7 @@ First Activity - First Activity + Première Activité apps/client/src/app/components/admin-market-data/admin-market-data.html 60 @@ -543,7 +543,7 @@ Activities Count - Activities Count + Nombre d'Activités apps/client/src/app/components/admin-market-data/admin-market-data.html 69 @@ -551,7 +551,7 @@ Historical Data - Historical Data + Données Historiques apps/client/src/app/components/admin-market-data/admin-market-data.html 78 @@ -559,7 +559,7 @@ Sectors Count - Sectors Count + Nombre de Secteurs apps/client/src/app/components/admin-market-data/admin-market-data.html 87 @@ -567,7 +567,7 @@ Countries Count - Countries Count + Nombre de Pays apps/client/src/app/components/admin-market-data/admin-market-data.html 96 @@ -575,7 +575,7 @@ Gather Recent Data - Gather Recent Data + Obtenir les Données Récentes apps/client/src/app/components/admin-market-data/admin-market-data.html 131 @@ -583,7 +583,7 @@ Gather All Data - Gather All Data + Obtenir toutes les Données apps/client/src/app/components/admin-market-data/admin-market-data.html 134 @@ -591,7 +591,7 @@ Gather Profile Data - Gather Profile Data + Obtenir les Données du Profil apps/client/src/app/components/admin-market-data/admin-market-data.html 137 @@ -607,7 +607,7 @@ Gather Data - Gather Data + Obtenir les Données apps/client/src/app/components/admin-market-data/admin-market-data.html 155 @@ -619,7 +619,7 @@ Refresh - Refresh + Rafraîchir apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 22 @@ -627,7 +627,7 @@ Sector - Sector + Secteur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 110 @@ -639,7 +639,7 @@ Country - Country + Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 119 @@ -651,7 +651,7 @@ Sectors - Sectors + Secteurs apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 125 @@ -667,7 +667,7 @@ Countries - Countries + Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 135 @@ -679,7 +679,7 @@ Symbol Mapping - Symbol Mapping + Équivalence de Symboles apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 149 @@ -687,7 +687,7 @@ Note - Note + Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 160 @@ -699,7 +699,7 @@ Please add a currency: - Please add a currency: + Veuillez ajouter une devise : apps/client/src/app/components/admin-overview/admin-overview.component.ts 110 @@ -707,7 +707,7 @@ Do you really want to delete this coupon? - Do you really want to delete this coupon? + Voulez-vous vraiment supprimer ce code promotionnel ? apps/client/src/app/components/admin-overview/admin-overview.component.ts 124 @@ -715,7 +715,7 @@ Do you really want to delete this currency? - Do you really want to delete this currency? + Voulez-vous vraiment supprimer cette devise ? apps/client/src/app/components/admin-overview/admin-overview.component.ts 137 @@ -723,7 +723,7 @@ Do you really want to flush the cache? - Do you really want to flush the cache? + Voulez-vous vraiment vider le cache ? apps/client/src/app/components/admin-overview/admin-overview.component.ts 154 @@ -731,7 +731,7 @@ Please set your system message: - Please set your system message: + Veuillez définir votre message système : apps/client/src/app/components/admin-overview/admin-overview.component.ts 184 @@ -739,7 +739,7 @@ User Count - User Count + Nombre d'Utilisateurs apps/client/src/app/components/admin-overview/admin-overview.html 7 @@ -747,7 +747,7 @@ Activity Count - Activity Count + Nombre d'Activités apps/client/src/app/components/admin-overview/admin-overview.html 17 @@ -755,7 +755,7 @@ per User - per User + par Utilisateur apps/client/src/app/components/admin-overview/admin-overview.html 26 @@ -763,7 +763,7 @@ Exchange Rates - Exchange Rates + Taux de Conversion apps/client/src/app/components/admin-overview/admin-overview.html 31 @@ -771,7 +771,7 @@ Add Currency - Add Currency + Ajouter Devise apps/client/src/app/components/admin-overview/admin-overview.html 70 @@ -779,7 +779,7 @@ Benchmarks - Benchmarks + Références apps/client/src/app/components/admin-overview/admin-overview.html 79 @@ -787,7 +787,7 @@ Tags - Tags + Étiquettes apps/client/src/app/components/admin-overview/admin-overview.html 92 @@ -803,7 +803,7 @@ User Signup - User Signup + Inscription de Nouveaux Utilisateurs apps/client/src/app/components/admin-overview/admin-overview.html 102 @@ -811,7 +811,7 @@ Read-only Mode - Read-only Mode + Mode Lecture Seule apps/client/src/app/components/admin-overview/admin-overview.html 112 @@ -819,7 +819,7 @@ System Message - System Message + Message Système apps/client/src/app/components/admin-overview/admin-overview.html 122 @@ -827,7 +827,7 @@ Set Message - Set Message + Définir Message apps/client/src/app/components/admin-overview/admin-overview.html 144 @@ -835,7 +835,7 @@ Coupons - Coupons + Codes promotionnels apps/client/src/app/components/admin-overview/admin-overview.html 152 @@ -843,7 +843,7 @@ Add - Add + Ajouter apps/client/src/app/components/admin-overview/admin-overview.html 187 @@ -851,7 +851,7 @@ Housekeeping - Housekeeping + Maintenance apps/client/src/app/components/admin-overview/admin-overview.html 194 @@ -859,7 +859,7 @@ Flush Cache - Flush Cache + Vider le Cache apps/client/src/app/components/admin-overview/admin-overview.html 198 @@ -867,7 +867,7 @@ Do you really want to delete this user? - Do you really want to delete this user? + Voulez-vous vraiment supprimer cet·te utilisateur·rice ? apps/client/src/app/components/admin-users/admin-users.component.ts 59 @@ -875,7 +875,7 @@ User - User + Utilisateur apps/client/src/app/components/admin-users/admin-users.html 9 @@ -887,7 +887,7 @@ Registration - Registration + Inscription apps/client/src/app/components/admin-users/admin-users.html 11 @@ -895,7 +895,7 @@ Accounts - Accounts + Comptes apps/client/src/app/components/admin-users/admin-users.html 14 @@ -915,7 +915,7 @@ Engagement per Day - Engagement per Day + Engagement par Jour apps/client/src/app/components/admin-users/admin-users.html 20 @@ -923,7 +923,7 @@ Last Request - Last Request + Dernière Requête apps/client/src/app/components/admin-users/admin-users.html 22 @@ -931,7 +931,7 @@ Performance - Performance + Performance apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html 4 @@ -947,7 +947,7 @@ Compare with... - Compare with... + Comparer avec... apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html 18 @@ -955,7 +955,7 @@ Portfolio - Portfolio + Portefeuille apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 101 @@ -967,7 +967,7 @@ Benchmark - Benchmark + Référence apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 110 @@ -975,7 +975,7 @@ Current Market Mood - Current Market Mood + Sentiment Actuel du Marché apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html 12 @@ -983,7 +983,7 @@ Overview - Overview + Aperçu apps/client/src/app/components/header/header.component.html 21 @@ -995,7 +995,7 @@ Portfolio - Portfolio + Portefeuille apps/client/src/app/components/header/header.component.html 32 @@ -1007,7 +1007,7 @@ Admin Control - Admin Control + Contrôle Administrateur apps/client/src/app/components/header/header.component.html 55 @@ -1019,7 +1019,7 @@ Resources - Resources + Ressources apps/client/src/app/components/header/header.component.html 66 @@ -1035,7 +1035,7 @@ Pricing - Pricing + Prix apps/client/src/app/components/header/header.component.html 80 @@ -1051,7 +1051,7 @@ About - About + À propos apps/client/src/app/components/header/header.component.html 91 @@ -1063,7 +1063,7 @@ Me - Me + Moi apps/client/src/app/components/header/header.component.html 127 @@ -1071,7 +1071,7 @@ My Ghostfolio - My Ghostfolio + Mon Ghostfolio apps/client/src/app/components/header/header.component.html 183 @@ -1079,7 +1079,7 @@ About Ghostfolio - About Ghostfolio + À propos de Ghostfolio apps/client/src/app/components/header/header.component.html 222 @@ -1087,7 +1087,7 @@ Features - Features + Fonctionnalités apps/client/src/app/components/header/header.component.html 249 @@ -1095,7 +1095,7 @@ Markets - Markets + Marchés apps/client/src/app/components/header/header.component.html 283 @@ -1107,7 +1107,7 @@ Sign in - Sign in + Se connecter apps/client/src/app/components/header/header.component.html 292 @@ -1119,7 +1119,7 @@ Get started - Get started + Démarrer apps/client/src/app/components/header/header.component.html 300 @@ -1127,7 +1127,7 @@ Sign in - Sign in + Se connecter apps/client/src/app/components/header/header.component.ts 119 @@ -1139,7 +1139,7 @@ Oops! Incorrect Security Token. - Oops! Incorrect Security Token. + Oups! Jeton de Sécurité Incorrect. apps/client/src/app/components/header/header.component.ts 133 @@ -1147,7 +1147,7 @@ Manage Activities - Manage Activities + Gérer les Activités apps/client/src/app/components/home-holdings/home-holdings.html 30 @@ -1159,7 +1159,7 @@ Fear - Fear + Peur apps/client/src/app/components/home-market/home-market.component.ts 24 @@ -1167,7 +1167,7 @@ Greed - Greed + Avidité apps/client/src/app/components/home-market/home-market.component.ts 25 @@ -1175,7 +1175,7 @@ Last Days - Last Days + derniers jours apps/client/src/app/components/home-market/home-market.html 6 @@ -1183,7 +1183,7 @@ This feature requires a subscription. - This feature requires a subscription. + Cette fonctionnalité requiert un Abonnement. apps/client/src/app/components/home-summary/home-summary.component.ts 112 @@ -1195,7 +1195,7 @@ Upgrade Plan - Upgrade Plan + Mettre à Niveau l'Abonnement apps/client/src/app/components/home-summary/home-summary.component.ts 114 @@ -1207,7 +1207,7 @@ Summary - Summary + Résumé apps/client/src/app/components/home-summary/home-summary.html 2 @@ -1215,7 +1215,7 @@ Total Amount - Total Amount + Montant Total apps/client/src/app/components/investment-chart/investment-chart.component.ts 178 @@ -1223,7 +1223,7 @@ Savings Rate - Savings Rate + Taux d'Épargne apps/client/src/app/components/investment-chart/investment-chart.component.ts 230 @@ -1231,7 +1231,7 @@ Security Token - Security Token + Jeton de Sécurité apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 10,14 @@ -1243,7 +1243,7 @@ or - or + ou apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 20,22 @@ -1263,7 +1263,7 @@ Sign in with Internet Identity - Sign in with Internet Identity + Se connecter avec Internet Identity apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 30,34 @@ -1271,7 +1271,7 @@ Sign in with Google - Sign in with Google + Se connecter avec Google apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 40,46 @@ -1279,7 +1279,7 @@ Stay signed in - Stay signed in + Rester connecté apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 49,55 @@ -1287,7 +1287,7 @@ Time in Market - Time in Market + Temps sur le Marché apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 3 @@ -1295,7 +1295,7 @@ Buy - Buy + Achat apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 12 @@ -1307,7 +1307,7 @@ Sell - Sell + Vente apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 23 @@ -1319,7 +1319,7 @@ Investment - Investment + Investissement apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 37 @@ -1331,7 +1331,7 @@ Absolute Gross Performance - Absolute Gross Performance + Performance Absolue Brute apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 48 @@ -1339,7 +1339,7 @@ Gross Performance (TWR) - Gross Performance (TWR) + Performance Brute (TWR) apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 59 @@ -1347,7 +1347,7 @@ Fees for - Fees for + Frais pour apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 74,77 @@ -1355,7 +1355,7 @@ {VAR_PLURAL, plural, =1 {transaction} other {transactions}} - {VAR_PLURAL, plural, =1 {transaction} other {transactions}} + {VAR_PLURAL, plural, =1 {transaction} autres {transactions}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 75,76 @@ -1363,7 +1363,7 @@ Absolute Net Performance - Absolute Net Performance + Performance Absolue Nette apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 92 @@ -1371,7 +1371,7 @@ Net Performance (TWR) - Net Performance (TWR) + Performance nette (TWR) apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 103 @@ -1379,7 +1379,7 @@ Total Assets - Total Assets + Actifs Totaux apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 119 @@ -1387,7 +1387,7 @@ Valuables - Valuables + Biens apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 131 @@ -1395,7 +1395,7 @@ Emergency Fund - Emergency Fund + Fonds d'Urgence apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 142 @@ -1403,7 +1403,7 @@ Buying Power - Buying Power + Pouvoir d'Achat apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 162 @@ -1411,7 +1411,7 @@ Excluded from Analysis - Excluded from Analysis + Exclus de l'Analyse apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 173 @@ -1419,7 +1419,7 @@ Net Worth - Net Worth + Fortune apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 187 @@ -1427,7 +1427,7 @@ Annualized Performance - Annualized Performance + Performance annualisée apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 198 @@ -1435,7 +1435,7 @@ Dividend - Dividend + Dividende apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 214 @@ -1451,7 +1451,7 @@ Please enter the amount of your emergency fund: - Please enter the amount of your emergency fund: + Veuillez entrer le montant de votre fonds d'urgence : apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts 52 @@ -1459,7 +1459,7 @@ Change - Change + Différence apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html 46 @@ -1467,7 +1467,7 @@ Average Unit Price - Average Unit Price + Prix Unitaire Moyen apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html 67 @@ -1475,7 +1475,7 @@ Minimum Price - Minimum Price + Prix Minimum apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html 88 @@ -1483,7 +1483,7 @@ Maximum Price - Maximum Price + Prix Maximum apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html 99 @@ -1491,7 +1491,7 @@ Quantity - Quantity + Quantité apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html 109 @@ -1507,7 +1507,7 @@ First Buy Date - First Buy Date + Date du Premier Achat apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html 129 @@ -1515,7 +1515,7 @@ Transactions - Transactions + Transactions apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html 138 @@ -1523,7 +1523,7 @@ Report Data Glitch - Report Data Glitch + Signaler une Erreur de Données apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html 249 @@ -1531,7 +1531,7 @@ Today - Today + Aujourd'hui apps/client/src/app/components/toggle/toggle.component.ts 21 @@ -1539,7 +1539,7 @@ YTD - YTD + CDA apps/client/src/app/components/toggle/toggle.component.ts 22 @@ -1547,7 +1547,7 @@ 1Y - 1Y + 1A apps/client/src/app/components/toggle/toggle.component.ts 23 @@ -1555,7 +1555,7 @@ 5Y - 5Y + 5A apps/client/src/app/components/toggle/toggle.component.ts 24 @@ -1563,7 +1563,7 @@ Max - Max + Max apps/client/src/app/components/toggle/toggle.component.ts 25 @@ -1571,7 +1571,7 @@ This feature is currently unavailable. - This feature is currently unavailable. + Cette fonctionnalité est momentanément indisponible. apps/client/src/app/core/http-response.interceptor.ts 59 @@ -1579,7 +1579,7 @@ Please try again later. - Please try again later. + Veuillez réessayer plus tard. apps/client/src/app/core/http-response.interceptor.ts 61 @@ -1595,7 +1595,7 @@ Oops! Something went wrong. - Oops! Something went wrong. + Oups! Quelque chose s'est mal passé. apps/client/src/app/core/http-response.interceptor.ts 86 @@ -1607,7 +1607,7 @@ Okay - Okay + D'accord apps/client/src/app/core/http-response.interceptor.ts 89 @@ -1619,7 +1619,7 @@ About - About + À propos apps/client/src/app/pages/about/about-page-routing.module.ts 12 @@ -1627,7 +1627,7 @@ Changelog & License - Changelog & License + Historique des modifications & License apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts 12 @@ -1635,7 +1635,7 @@ Changelog - Changelog + Historique des modifications apps/client/src/app/pages/about/changelog/changelog-page.html 4 @@ -1643,7 +1643,7 @@ License - License + License apps/client/src/app/pages/about/changelog/changelog-page.html 15 @@ -1651,7 +1651,7 @@ Privacy Policy - Privacy Policy + Politique de Vie Privée apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts 12 @@ -1659,7 +1659,7 @@ Privacy Policy - Privacy Policy + Politique de Vie Privée apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html 4 @@ -1667,7 +1667,7 @@ My Ghostfolio - My Ghostfolio + Mon Ghostfolio apps/client/src/app/pages/account/account-page-routing.module.ts 12 @@ -1675,7 +1675,7 @@ Auto - Auto + Auto apps/client/src/app/pages/account/account-page.component.ts 45 @@ -1683,7 +1683,7 @@ Please enter your coupon code: - Please enter your coupon code: + Veuillez entrer votre code promotionnel : apps/client/src/app/pages/account/account-page.component.ts 236 @@ -1691,7 +1691,7 @@ Could not redeem coupon code - Could not redeem coupon code + Le code promotionnel n'a pas pu être appliqué apps/client/src/app/pages/account/account-page.component.ts 246 @@ -1699,7 +1699,7 @@ Coupon code has been redeemed - Coupon code has been redeemed + Le code promotionnel a été appliqué apps/client/src/app/pages/account/account-page.component.ts 258 @@ -1707,7 +1707,7 @@ Reload - Reload + Rafraîchir apps/client/src/app/pages/account/account-page.component.ts 259 @@ -1715,7 +1715,7 @@ Do you really want to remove this sign in method? - Do you really want to remove this sign in method? + Voulez-vous vraiment supprimer cette méthode de connexion ? apps/client/src/app/pages/account/account-page.component.ts 305 @@ -1723,7 +1723,7 @@ Account - Account + Compte apps/client/src/app/pages/account/account-page.html 4 @@ -1739,7 +1739,7 @@ Membership - Membership + Adhésion apps/client/src/app/pages/account/account-page.html 15 @@ -1747,7 +1747,7 @@ Upgrade - Upgrade + Mettre à niveau apps/client/src/app/pages/account/account-page.html 37 @@ -1755,7 +1755,7 @@ per year - per year + par an apps/client/src/app/pages/account/account-page.html 48 @@ -1763,7 +1763,7 @@ Try Premium - Try Premium + Essayer Premium apps/client/src/app/pages/account/account-page.html 56 @@ -1771,7 +1771,7 @@ Redeem Coupon - Redeem Coupon + Utiliser un Code Promotionnel apps/client/src/app/pages/account/account-page.html 68 @@ -1779,7 +1779,7 @@ Presenter View - Presenter View + Vue de Présentation apps/client/src/app/pages/account/account-page.html 75 @@ -1787,7 +1787,7 @@ Hides sensitive values such as absolute performances and quantities. - Hides sensitive values such as absolute performances and quantities. + Masque les données sensibles telles que la performance absolue et les quantités. apps/client/src/app/pages/account/account-page.html 76,79 @@ -1795,7 +1795,7 @@ Base Currency - Base Currency + Devise de Base apps/client/src/app/pages/account/account-page.html 94 @@ -1803,7 +1803,7 @@ Language - Language + Langue apps/client/src/app/pages/account/account-page.html 118 @@ -1811,7 +1811,7 @@ Community - Community + Communauté apps/client/src/app/pages/account/account-page.html 135 @@ -1827,7 +1827,7 @@ Locale - Locale + Paramètres régionaux apps/client/src/app/pages/account/account-page.html 160 @@ -1835,7 +1835,7 @@ Date and number format - Date and number format + Format de date et d'heure apps/client/src/app/pages/account/account-page.html 162 @@ -1843,7 +1843,7 @@ Appearance - Appearance + Apparence apps/client/src/app/pages/account/account-page.html 188 @@ -1851,7 +1851,7 @@ Auto - Auto + Auto apps/client/src/app/pages/account/account-page.html 203 @@ -1859,7 +1859,7 @@ Light - Light + Clair apps/client/src/app/pages/account/account-page.html 204 @@ -1867,7 +1867,7 @@ Dark - Dark + Sombre apps/client/src/app/pages/account/account-page.html 205 @@ -1875,7 +1875,7 @@ Zen Mode - Zen Mode + Mode Zen apps/client/src/app/pages/account/account-page.html 214 @@ -1883,7 +1883,7 @@ Sign in with fingerprint - Sign in with fingerprint + Se connecter avec empreinte apps/client/src/app/pages/account/account-page.html 226 @@ -1891,7 +1891,7 @@ Experimental Features - Experimental Features + Fonctionnalités expérimentales apps/client/src/app/pages/account/account-page.html 241 @@ -1899,7 +1899,7 @@ User ID - User ID + ID d'utilisateur apps/client/src/app/pages/account/account-page.html 253 @@ -1907,7 +1907,7 @@ Granted Access - Granted Access + Accès donné apps/client/src/app/pages/account/account-page.html 262 @@ -1915,7 +1915,7 @@ Grant access - Grant access + Donner accès apps/client/src/app/pages/account/create-or-update-access-dialog/create-or-update-access-dialog.html 2 @@ -1923,7 +1923,7 @@ Public - Public + Public apps/client/src/app/pages/account/create-or-update-access-dialog/create-or-update-access-dialog.html 19 @@ -1931,7 +1931,7 @@ Accounts - Accounts + Comptes apps/client/src/app/pages/accounts/accounts-page-routing.module.ts 12 @@ -1939,7 +1939,7 @@ Update account - Update account + Mettre à jour compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html 2 @@ -1947,7 +1947,7 @@ Add account - Add account + Ajouter compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html 3 @@ -1955,7 +1955,7 @@ Cash - Cash + Cash apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html 15 @@ -1963,7 +1963,7 @@ Securities - Securities + Titres apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html 16 @@ -1971,7 +1971,7 @@ Account ID - Account ID + ID du compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html 63 @@ -1979,7 +1979,7 @@ Jobs - Jobs + Tâches apps/client/src/app/pages/admin/admin-page-routing.module.ts 16 @@ -1987,7 +1987,7 @@ Market Data - Market Data + Données de Marché apps/client/src/app/pages/admin/admin-page-routing.module.ts 20 @@ -1995,7 +1995,7 @@ Admin Control - Admin Control + Contrôle Admin apps/client/src/app/pages/admin/admin-page-routing.module.ts 25 @@ -2003,7 +2003,7 @@ Users - Users + Utilisateurs apps/client/src/app/pages/admin/admin-page-routing.module.ts 27 @@ -2011,7 +2011,7 @@ Blog - Blog + Blog apps/client/src/app/pages/blog/blog-page-routing.module.ts 12 @@ -2019,7 +2019,7 @@ Blog - Blog + Blog apps/client/src/app/pages/blog/blog-page.html 4 @@ -2027,7 +2027,7 @@ As you are already logged in, you cannot access the demo account. - As you are already logged in, you cannot access the demo account. + Puisque vous êtes déjà connecté·e, vous ne pouvez pas accéder au compte de démonstration. apps/client/src/app/pages/demo/demo-page.component.ts 31 @@ -2035,7 +2035,7 @@ FAQ - FAQ + FAQ apps/client/src/app/pages/faq/faq-page-routing.module.ts 12 @@ -2043,7 +2043,7 @@ Features - Features + Fonctionnalités apps/client/src/app/pages/features/features-page-routing.module.ts 12 @@ -2051,7 +2051,7 @@ Holdings - Holdings + Positions apps/client/src/app/pages/home/home-page-routing.module.ts 23 @@ -2063,7 +2063,7 @@ Summary - Summary + Résumé apps/client/src/app/pages/home/home-page-routing.module.ts 28 @@ -2071,7 +2071,7 @@ Markets - Markets + Marchés apps/client/src/app/pages/home/home-page-routing.module.ts 33 @@ -2083,7 +2083,7 @@ Activities - Activities + Activités apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts 12 @@ -2091,7 +2091,7 @@ Update activity - Update activity + Mettre à jour activité apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 7,8 @@ -2099,7 +2099,7 @@ Add activity - Add activity + Ajouter activité apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 8,11 @@ -2107,7 +2107,7 @@ Item - Item + Bien apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 16,18 @@ -2115,7 +2115,7 @@ Name, symbol or ISIN - Name, symbol or ISIN + Nom, symbole, ou ISIN apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 37,40 @@ -2123,7 +2123,7 @@ Unit Price - Unit Price + Prix Unitaire apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 118,121 @@ -2135,7 +2135,7 @@ Fee - Fee + Frais apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 139,140 @@ -2151,7 +2151,7 @@ Importing data... - Importing data... + Import des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 48 @@ -2159,7 +2159,7 @@ Import has been completed - Import has been completed + L'import est terminé apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 55,54 @@ -2167,7 +2167,7 @@ Validating data... - Validating data... + Validation des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 86 @@ -2175,7 +2175,7 @@ Choose File - Choose File + Choisir Fichier apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 18,21 @@ -2183,7 +2183,7 @@ The following file formats are supported: - The following file formats are supported: + Les formats de fichier suivants sont supportés : apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 21,23 @@ -2191,7 +2191,7 @@ Back - Back + Retour apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 79,83 @@ -2199,7 +2199,7 @@ Import - Import + Importer apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 94,99 @@ -2207,7 +2207,7 @@ Allocations - Allocations + Répartitions apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts 12 @@ -2215,7 +2215,7 @@ Initial - Initial + Initial apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts 58 @@ -2223,7 +2223,7 @@ Current - Current + Actuel apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts 59 @@ -2231,7 +2231,7 @@ Filter by account or tag... - Filter by account or tag... + Filtrer par compte ou étiquette... apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts 136 @@ -2247,7 +2247,7 @@ Allocations - Allocations + Répartitions apps/client/src/app/pages/portfolio/allocations/allocations-page.html 4 @@ -2255,7 +2255,7 @@ Proportion of Net Worth - Proportion of Net Worth + Proportion de votre Fortune apps/client/src/app/pages/portfolio/allocations/allocations-page.html 18 @@ -2263,7 +2263,7 @@ By Account - By Account + Par Compte apps/client/src/app/pages/portfolio/allocations/allocations-page.html 41 @@ -2271,7 +2271,7 @@ By Currency - By Currency + Par Devise apps/client/src/app/pages/portfolio/allocations/allocations-page.html 67 @@ -2279,7 +2279,7 @@ By Asset Class - By Asset Class + Par Classe d'Actifs apps/client/src/app/pages/portfolio/allocations/allocations-page.html 96 @@ -2287,7 +2287,7 @@ By Holding - By Holding + Par Position apps/client/src/app/pages/portfolio/allocations/allocations-page.html 125 @@ -2295,7 +2295,7 @@ By Sector - By Sector + Par Secteur apps/client/src/app/pages/portfolio/allocations/allocations-page.html 154 @@ -2303,7 +2303,7 @@ By Continent - By Continent + Par Continent apps/client/src/app/pages/portfolio/allocations/allocations-page.html 184 @@ -2311,7 +2311,7 @@ By Country - By Country + Par Pays apps/client/src/app/pages/portfolio/allocations/allocations-page.html 213 @@ -2319,7 +2319,7 @@ Regions - Regions + Régions apps/client/src/app/pages/portfolio/allocations/allocations-page.html 245 @@ -2331,7 +2331,7 @@ Developed Markets - Developed Markets + Marchés Développés apps/client/src/app/pages/portfolio/allocations/allocations-page.html 271 @@ -2343,7 +2343,7 @@ Emerging Markets - Emerging Markets + Marchés Émergents apps/client/src/app/pages/portfolio/allocations/allocations-page.html 280 @@ -2355,7 +2355,7 @@ Other Markets - Other Markets + Autres marchés apps/client/src/app/pages/portfolio/allocations/allocations-page.html 289 @@ -2367,7 +2367,7 @@ Analysis - Analysis + Analyse apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts 12 @@ -2375,7 +2375,7 @@ Dividend - Dividend + Dividende apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 43 @@ -2383,7 +2383,7 @@ Deposit - Deposit + Dépôt apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 48 @@ -2399,7 +2399,7 @@ Monthly - Monthly + Mensuel apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 54 @@ -2407,7 +2407,7 @@ Analysis - Analysis + Analyse apps/client/src/app/pages/portfolio/analysis/analysis-page.html 2 @@ -2415,7 +2415,7 @@ Top - Top + Haut apps/client/src/app/pages/portfolio/analysis/analysis-page.html 40 @@ -2423,7 +2423,7 @@ Bottom - Bottom + Bas apps/client/src/app/pages/portfolio/analysis/analysis-page.html 86 @@ -2431,7 +2431,7 @@ Portfolio Evolution - Portfolio Evolution + Évolution du Portefeuille apps/client/src/app/pages/portfolio/analysis/analysis-page.html 136 @@ -2439,7 +2439,7 @@ Investment Timeline - Investment Timeline + Historique des Investissements apps/client/src/app/pages/portfolio/analysis/analysis-page.html 166 @@ -2447,7 +2447,7 @@ Dividend Timeline - Dividend Timeline + Historique des Dividendes apps/client/src/app/pages/portfolio/analysis/analysis-page.html 203 @@ -2455,7 +2455,7 @@ FIRE - FIRE + FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts 12 @@ -2463,7 +2463,7 @@ FIRE - FIRE + FIRE apps/client/src/app/pages/portfolio/fire/fire-page.html 4 @@ -2471,7 +2471,7 @@ Calculator - Calculator + Calculatrice apps/client/src/app/pages/portfolio/fire/fire-page.html 7 @@ -2479,7 +2479,7 @@ 4% Rule - 4% Rule + Règle des 4% apps/client/src/app/pages/portfolio/fire/fire-page.html 28 @@ -2487,7 +2487,7 @@ 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%. + Si vous prenez votre retraite aujourd'hui, vous pourriez retirer par an ou par mois, sur base de vos actifs totaux de et un taux de retrait de 4%. apps/client/src/app/pages/portfolio/fire/fire-page.html 51,79 @@ -2495,7 +2495,7 @@ Holdings - Holdings + Positions apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -2507,7 +2507,7 @@ Pricing - Pricing + Prix apps/client/src/app/pages/pricing/pricing-page-routing.module.ts 12 @@ -2515,7 +2515,7 @@ Hello, has shared a Portfolio with you! - Hello, has shared a Portfolio with you! + Bonjour, a partagé un Portefeuille avec vous ! apps/client/src/app/pages/public/public-page.html 4,7 @@ -2523,7 +2523,7 @@ Currencies - Currencies + Devises apps/client/src/app/pages/public/public-page.html 30 @@ -2531,7 +2531,7 @@ Continents - Continents + Continents apps/client/src/app/pages/public/public-page.html 60 @@ -2539,7 +2539,7 @@ Ghostfolio empowers you to keep track of your wealth. - Ghostfolio empowers you to keep track of your wealth. + Ghostfolio vous aide à garder un aperçu de votre patrimoine. apps/client/src/app/pages/public/public-page.html 132,134 @@ -2547,7 +2547,7 @@ Get Started - Get Started + Démarrer apps/client/src/app/pages/public/public-page.html 137 @@ -2555,7 +2555,7 @@ Registration - Registration + Enregistrement apps/client/src/app/pages/register/register-page-routing.module.ts 12 @@ -2563,7 +2563,7 @@ Create Account - Create Account + Creér Compte apps/client/src/app/pages/register/register-page.html 27,29 @@ -2575,7 +2575,7 @@ Continue with Internet Identity - Continue with Internet Identity + Continue avec Internet Identity apps/client/src/app/pages/register/register-page.html 41,44 @@ -2583,7 +2583,7 @@ Continue with Google - Continue with Google + Continuer avec Google apps/client/src/app/pages/register/register-page.html 51,56 @@ -2591,7 +2591,7 @@ Copy to clipboard - Copy to clipboard + Copier vers le presse-papier apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 26 @@ -2599,7 +2599,7 @@ I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. - I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. + Je certifie avoir sauvé mon Jeton de Sécurité ci-dessus dans un endroit sûr. Si je le perds, je ne pourrai pas récupérer mon compte. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 31,34 @@ -2607,7 +2607,7 @@ Agree and continue - Agree and continue + Accepter et continuer apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 44 @@ -2615,7 +2615,7 @@ Resources - Resources + Ressources apps/client/src/app/pages/resources/resources-page-routing.module.ts 12 @@ -2623,7 +2623,7 @@ Oops, authentication has failed. - Oops, authentication has failed. + Oups, l'identification a échoué. apps/client/src/app/pages/webauthn/webauthn-page.html 18 @@ -2631,7 +2631,7 @@ Try again - Try again + Essayer à nouveau apps/client/src/app/pages/webauthn/webauthn-page.html 26 @@ -2639,7 +2639,7 @@ Go back to Home Page - Go back to Home Page + Retour à la Page d'Accueil apps/client/src/app/pages/webauthn/webauthn-page.html 30 @@ -2647,7 +2647,7 @@ Overview - Overview + Aperçu apps/client/src/app/pages/zen/zen-page-routing.module.ts 19 @@ -2655,7 +2655,7 @@ Draft - Draft + Brouillon libs/ui/src/lib/activities-table/activities-table.component.html 125 @@ -2663,7 +2663,7 @@ Import Activities - Import Activities + Importer Activités libs/ui/src/lib/activities-table/activities-table.component.html 389 @@ -2671,7 +2671,7 @@ Export Activities - Export Activities + Exporter Activités libs/ui/src/lib/activities-table/activities-table.component.html 399 @@ -2679,7 +2679,7 @@ Export Drafts as ICS - Export Drafts as ICS + Exporter Brouillons sous ICS libs/ui/src/lib/activities-table/activities-table.component.html 409 @@ -2687,7 +2687,7 @@ Clone - Clone + Dupliquer libs/ui/src/lib/activities-table/activities-table.component.html 430 @@ -2695,7 +2695,7 @@ Export Draft as ICS - Export Draft as ICS + Exporter Brouillon sous ICS libs/ui/src/lib/activities-table/activities-table.component.html 438 @@ -2703,7 +2703,7 @@ Do you really want to delete this activity? - Do you really want to delete this activity? + Voulez-vous vraiment supprimer cette activité ? libs/ui/src/lib/activities-table/activities-table.component.ts 196 @@ -2711,7 +2711,7 @@ Filter by account, currency, symbol or type... - Filter by account, currency, symbol or type... + Filtrer par compte, devise, symbole, ou type... libs/ui/src/lib/activities-table/activities-table.component.ts 376 @@ -2719,7 +2719,7 @@ Index - Index + Indice libs/ui/src/lib/benchmark/benchmark.component.html 3 @@ -2727,7 +2727,7 @@ Change from All Time High - Change from All Time High + Différence avec le Record Historique libs/ui/src/lib/benchmark/benchmark.component.html 12 @@ -2735,7 +2735,7 @@ from ATH - from ATH + par rapport au record historique libs/ui/src/lib/benchmark/benchmark.component.html 14 @@ -2743,7 +2743,7 @@ Savings Rate - Savings Rate + Taux d'Épargne libs/ui/src/lib/fire-calculator/fire-calculator.component.html 10 @@ -2751,7 +2751,7 @@ per month - per month + par mois libs/ui/src/lib/fire-calculator/fire-calculator.component.html 17 @@ -2759,7 +2759,7 @@ Investment Horizon - Investment Horizon + Horizon d'Investissement libs/ui/src/lib/fire-calculator/fire-calculator.component.html 21 @@ -2767,7 +2767,7 @@ years - years + années libs/ui/src/lib/fire-calculator/fire-calculator.component.html 23 @@ -2775,7 +2775,7 @@ Annual Interest Rate - Annual Interest Rate + Taux d'Intérêt Annuel libs/ui/src/lib/fire-calculator/fire-calculator.component.html 27 @@ -2783,7 +2783,7 @@ Projected Total Amount - Projected Total Amount + Montant Total Prévu libs/ui/src/lib/fire-calculator/fire-calculator.component.html 44 @@ -2791,7 +2791,7 @@ Interest - Interest + Intérêt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 291 @@ -2799,7 +2799,7 @@ Savings - Savings + Épargne libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 301 @@ -2807,7 +2807,7 @@ Allocation - Allocation + Part libs/ui/src/lib/holdings-table/holdings-table.component.html 95 @@ -2815,7 +2815,7 @@ Show all - Show all + Montrer tout libs/ui/src/lib/holdings-table/holdings-table.component.html 171 @@ -2823,7 +2823,7 @@ Account - Account + Compte libs/ui/src/lib/i18n.ts 4 @@ -2831,7 +2831,7 @@ Asset Class - Asset Class + Classe d'Actifs libs/ui/src/lib/i18n.ts 5 @@ -2839,7 +2839,7 @@ Asset Sub Class - Asset Sub Class + Sous-classe d'Actifs libs/ui/src/lib/i18n.ts 6 @@ -2847,15 +2847,15 @@ Emergency Fund - Emergency Fund + Fonds d'Urgence libs/ui/src/lib/i18n.ts 7 Other - Other + Autre libs/ui/src/lib/i18n.ts 8 @@ -2867,7 +2867,7 @@ Securities - Securities + Titres libs/ui/src/lib/i18n.ts 9 @@ -2875,7 +2875,7 @@ Symbol - Symbol + Symbole libs/ui/src/lib/i18n.ts 10 @@ -2883,7 +2883,7 @@ Tag - Tag + Étiquette libs/ui/src/lib/i18n.ts 11 @@ -2891,7 +2891,7 @@ Cash - Cash + Cash libs/ui/src/lib/i18n.ts 14 @@ -2899,7 +2899,7 @@ Commodity - Commodity + Marchandise libs/ui/src/lib/i18n.ts 15 @@ -2907,7 +2907,7 @@ Equity - Equity + Capital libs/ui/src/lib/i18n.ts 16 @@ -2915,7 +2915,7 @@ Fixed Income - Fixed Income + Revenu Fixe libs/ui/src/lib/i18n.ts 17 @@ -2923,7 +2923,7 @@ Real Estate - Real Estate + Immobilier libs/ui/src/lib/i18n.ts 18 @@ -2931,7 +2931,7 @@ Bond - Bond + Obligation libs/ui/src/lib/i18n.ts 21 @@ -2939,7 +2939,7 @@ Cryptocurrency - Cryptocurrency + Cryptomonnaie libs/ui/src/lib/i18n.ts 22 @@ -2947,7 +2947,7 @@ ETF - ETF + ETF libs/ui/src/lib/i18n.ts 23 @@ -2955,7 +2955,7 @@ Mutual Fund - Mutual Fund + SICAV libs/ui/src/lib/i18n.ts 24 @@ -2963,7 +2963,7 @@ Precious Metal - Precious Metal + Métal Précieux libs/ui/src/lib/i18n.ts 25 @@ -2971,7 +2971,7 @@ Private Equity - Private Equity + Capital Propre libs/ui/src/lib/i18n.ts 26 @@ -2979,7 +2979,7 @@ Stock - Stock + Action libs/ui/src/lib/i18n.ts 27 @@ -2987,7 +2987,7 @@ Africa - Africa + Afrique libs/ui/src/lib/i18n.ts 30 @@ -2995,7 +2995,7 @@ Asia - Asia + Asie libs/ui/src/lib/i18n.ts 31 @@ -3003,7 +3003,7 @@ Europe - Europe + Europe libs/ui/src/lib/i18n.ts 32 @@ -3011,7 +3011,7 @@ North America - North America + Amérique du Nord libs/ui/src/lib/i18n.ts 33 @@ -3019,7 +3019,7 @@ Oceania - Oceania + Océanie libs/ui/src/lib/i18n.ts 34 @@ -3027,7 +3027,7 @@ South America - South America + Amérique du Sud libs/ui/src/lib/i18n.ts 35 @@ -3035,7 +3035,7 @@ Time to add your first activity. - Time to add your first activity. + Il est temps d'ajouter votre première activité. libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html 12 @@ -3043,7 +3043,7 @@ No data available - No data available + Pas de données disponibles libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts 371 From 3f2d3a2da9a9b0ad20f94f3b7ad9f5c94b92fbe5 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 11 Jan 2023 19:45:44 +0100 Subject: [PATCH 7/7] Minor improvements (#1589) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 675a5a48f..f09dd7541 100644 --- a/README.md +++ b/README.md @@ -167,9 +167,9 @@ Please follow the instructions of the Ghostfolio [Unraid Community App](https:// #### Debug -Run `yarn watch:server` and click "Launch program" in [Visual Studio Code](https://code.visualstudio.com) +Run `yarn watch:server` and click _Launch Program_ in [Visual Studio Code](https://code.visualstudio.com) -##### Serve +#### Serve Run `yarn start:server`