Browse Source

Merge branch 'main' into pr/5116

pull/5116/head
Thomas Kaul 2 months ago
parent
commit
acf2c9e39f
  1. 22
      CHANGELOG.md
  2. 8
      apps/client/src/app/app-routing.module.ts
  3. 4
      apps/client/src/app/app.component.ts
  4. 14
      apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
  5. 9
      apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
  6. 27
      apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
  7. 1
      apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts
  8. 34
      apps/client/src/app/components/user-account-access/user-account-access.component.ts
  9. 35
      apps/client/src/app/components/user-account-access/user-account-access.module.ts
  10. 19
      apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
  11. 26
      apps/client/src/app/components/user-account-membership/user-account-membership.module.ts
  12. 40
      apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
  13. 36
      apps/client/src/app/components/user-account-settings/user-account-settings.module.ts
  14. 2
      apps/client/src/app/pages/about/changelog/changelog-page.component.ts
  15. 4
      apps/client/src/app/pages/about/changelog/changelog-page.routes.ts
  16. 2
      apps/client/src/app/pages/about/license/license-page.component.ts
  17. 4
      apps/client/src/app/pages/about/license/license-page.routes.ts
  18. 2
      apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts
  19. 4
      apps/client/src/app/pages/about/oss-friends/oss-friends-page.routes.ts
  20. 2
      apps/client/src/app/pages/about/overview/about-overview-page.component.ts
  21. 4
      apps/client/src/app/pages/about/overview/about-overview-page.routes.ts
  22. 2
      apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts
  23. 4
      apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.routes.ts
  24. 2
      apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.component.ts
  25. 4
      apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.routes.ts
  26. 22
      apps/client/src/app/pages/accounts/accounts-page-routing.module.ts
  27. 26
      apps/client/src/app/pages/accounts/accounts-page.component.ts
  28. 30
      apps/client/src/app/pages/accounts/accounts-page.module.ts
  29. 15
      apps/client/src/app/pages/accounts/accounts-page.routes.ts
  30. 37
      apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts
  31. 32
      apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts
  32. 30
      apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts
  33. 27
      apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts
  34. 14
      apps/client/src/app/pages/portfolio/activities/activities-page.component.ts
  35. 4
      apps/client/src/app/pages/portfolio/activities/activities-page.routes.ts
  36. 4
      apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
  37. 4
      apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
  38. 70
      apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
  39. 6
      apps/client/src/app/pages/portfolio/allocations/allocations-page.html
  40. 4
      apps/client/src/app/pages/portfolio/allocations/allocations-page.routes.ts
  41. 2
      apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
  42. 4
      apps/client/src/app/pages/portfolio/analysis/analysis-page.routes.ts
  43. 2
      apps/client/src/app/pages/portfolio/fire/fire-page.component.ts
  44. 4
      apps/client/src/app/pages/portfolio/fire/fire-page.routes.ts
  45. 2
      apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts
  46. 4
      apps/client/src/app/pages/portfolio/x-ray/x-ray-page.routes.ts
  47. 42
      apps/client/src/app/pages/user-account/user-account-page-routing.module.ts
  48. 19
      apps/client/src/app/pages/user-account/user-account-page.component.ts
  49. 26
      apps/client/src/app/pages/user-account/user-account-page.module.ts
  50. 35
      apps/client/src/app/pages/user-account/user-account-page.routes.ts
  51. 112
      apps/client/src/locales/messages.ca.xlf
  52. 58
      apps/client/src/locales/messages.de.xlf
  53. 112
      apps/client/src/locales/messages.es.xlf
  54. 58
      apps/client/src/locales/messages.fr.xlf
  55. 58
      apps/client/src/locales/messages.it.xlf
  56. 58
      apps/client/src/locales/messages.nl.xlf
  57. 58
      apps/client/src/locales/messages.pl.xlf
  58. 58
      apps/client/src/locales/messages.pt.xlf
  59. 58
      apps/client/src/locales/messages.tr.xlf
  60. 58
      apps/client/src/locales/messages.uk.xlf
  61. 57
      apps/client/src/locales/messages.xlf
  62. 58
      apps/client/src/locales/messages.zh.xlf
  63. 6
      libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts
  64. 4
      libs/ui/src/lib/i18n.ts
  65. 13
      libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
  66. 4
      package-lock.json
  67. 2
      package.json
  68. 2
      prisma/migrations/20250708090630_added_alternative_investment_to_asset_class/migration.sql
  69. 2
      prisma/migrations/20250708090631_added_collectible_to_asset_sub_class/migration.sql
  70. 2
      prisma/schema.prisma

22
CHANGELOG.md

@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased ## Unreleased
### Added
- Added alternative investment as an asset class
- Added collectible as an asset sub class
### Changed
- Improved the language localization for Catalan (`ca`)
## 2.179.0 - 2025-07-07
### Added
- Added a _Manage Asset Profile_ button for administrators to the holding detail dialog
### Changed ### Changed
- Respected the filter by account for accounts when exporting activities on the portfolio activities page - Respected the filter by account for accounts when exporting activities on the portfolio activities page
@ -20,13 +35,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Improved the language localization in the users table of the admin control panel - Improved the language localization in the users table of the admin control panel
- Refactored the accounts pages to standalone
- Refactored the portfolio pages to standalone - Refactored the portfolio pages to standalone
- Refactored the user account pages to standalone
- Renamed `Settings` to `settings` in the `User` database schema - Renamed `Settings` to `settings` in the `User` database schema
- Improved the language localization for Catalan (`ca`)
- Improved the language localization for Dutch (`nl`) - Improved the language localization for Dutch (`nl`)
- Improved the language localization for Español (`es`) - Improved the language localization for Español (`es`)
- Improved the language localization for German (`de`) - Improved the language localization for German (`de`)
- Upgraded `ionicons` from version `7.4.0` to `8.0.10` - Upgraded `ionicons` from version `7.4.0` to `8.0.10`
### Fixed
- Fixed the allocations by asset class for unknown asset classes on the allocations page
## 2.178.0 - 2025-07-05 ## 2.178.0 - 2025-07-05
### Changed ### Changed

8
apps/client/src/app/app-routing.module.ts

@ -16,16 +16,14 @@ const routes: Routes = [
{ {
path: internalRoutes.account.path, path: internalRoutes.account.path,
loadChildren: () => loadChildren: () =>
import('./pages/user-account/user-account-page.module').then( import('./pages/user-account/user-account-page.routes').then(
(m) => m.UserAccountPageModule (m) => m.routes
) )
}, },
{ {
path: internalRoutes.accounts.path, path: internalRoutes.accounts.path,
loadChildren: () => loadChildren: () =>
import('./pages/accounts/accounts-page.module').then( import('./pages/accounts/accounts-page.routes').then((m) => m.routes)
(m) => m.AccountsPageModule
)
}, },
{ {
path: internalRoutes.adminControl.path, path: internalRoutes.adminControl.path,

4
apps/client/src/app/app.component.ts

@ -320,6 +320,10 @@ export class AppComponent implements OnDestroy, OnInit {
colorScheme: this.user?.settings?.colorScheme, colorScheme: this.user?.settings?.colorScheme,
deviceType: this.deviceType, deviceType: this.deviceType,
hasImpersonationId: this.hasImpersonationId, hasImpersonationId: this.hasImpersonationId,
hasPermissionToAccessAdminControl: hasPermission(
this.user?.permissions,
permissions.accessAdminControl
),
hasPermissionToCreateOrder: hasPermissionToCreateOrder:
!this.hasImpersonationId && !this.hasImpersonationId &&
hasPermission(this.user?.permissions, permissions.createOrder) && hasPermission(this.user?.permissions, permissions.createOrder) &&

14
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts

@ -68,16 +68,10 @@ export class AdminMarketDataComponent
@ViewChild(MatSort) sort: MatSort; @ViewChild(MatSort) sort: MatSort;
public activeFilters: Filter[] = []; public activeFilters: Filter[] = [];
public allFilters: Filter[] = [ public allFilters: Filter[] = Object.keys(AssetSubClass)
AssetSubClass.BOND, .filter((assetSubClass) => {
AssetSubClass.COMMODITY, return assetSubClass !== 'CASH';
AssetSubClass.CRYPTOCURRENCY, })
AssetSubClass.ETF,
AssetSubClass.MUTUALFUND,
AssetSubClass.PRECIOUS_METAL,
AssetSubClass.PRIVATE_EQUITY,
AssetSubClass.STOCK
]
.map((assetSubClass) => { .map((assetSubClass) => {
return { return {
id: assetSubClass.toString(), id: assetSubClass.toString(),

9
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts

@ -46,12 +46,13 @@ import { MatFormFieldModule } from '@angular/material/form-field';
import { SortDirection } from '@angular/material/sort'; import { SortDirection } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table'; import { MatTableDataSource } from '@angular/material/table';
import { MatTabsModule } from '@angular/material/tabs'; import { MatTabsModule } from '@angular/material/tabs';
import { Router } from '@angular/router'; import { Router, RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone'; import { IonIcon } from '@ionic/angular/standalone';
import { Account, MarketData, Tag } from '@prisma/client'; import { Account, MarketData, Tag } from '@prisma/client';
import { format, isSameMonth, isToday, parseISO } from 'date-fns'; import { format, isSameMonth, isToday, parseISO } from 'date-fns';
import { addIcons } from 'ionicons'; import { addIcons } from 'ionicons';
import { import {
createOutline,
flagOutline, flagOutline,
readerOutline, readerOutline,
serverOutline, serverOutline,
@ -85,7 +86,8 @@ import { HoldingDetailDialogParams } from './interfaces/interfaces';
MatDialogModule, MatDialogModule,
MatFormFieldModule, MatFormFieldModule,
MatTabsModule, MatTabsModule,
NgxSkeletonLoaderModule NgxSkeletonLoaderModule,
RouterModule
], ],
schemas: [CUSTOM_ELEMENTS_SCHEMA], schemas: [CUSTOM_ELEMENTS_SCHEMA],
selector: 'gf-holding-detail-dialog', selector: 'gf-holding-detail-dialog',
@ -127,6 +129,8 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
public quantity: number; public quantity: number;
public quantityPrecision = 2; public quantityPrecision = 2;
public reportDataGlitchMail: string; public reportDataGlitchMail: string;
public routerLinkAdminControlMarketData =
internalRoutes.adminControl.subRoutes.marketData.routerLink;
public sectors: { public sectors: {
[name: string]: { name: string; value: number }; [name: string]: { name: string; value: number };
}; };
@ -152,6 +156,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
private userService: UserService private userService: UserService
) { ) {
addIcons({ addIcons({
createOutline,
flagOutline, flagOutline,
readerOutline, readerOutline,
serverOutline, serverOutline,

27
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html

@ -412,16 +412,37 @@
/> />
@if ( @if (
dataSource?.data.length > 0 && data.hasPermissionToAccessAdminControl ||
data.hasPermissionToReportDataGlitch === true (dataSource?.data.length > 0 &&
data.hasPermissionToReportDataGlitch === true)
) { ) {
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<hr /> <hr />
@if (data.hasPermissionToAccessAdminControl) {
<a
class="mr-2"
mat-stroked-button
[queryParams]="{
assetProfileDialog: true,
dataSource: SymbolProfile?.dataSource,
symbol: SymbolProfile?.symbol
}"
[routerLink]="routerLinkAdminControlMarketData"
(click)="onClose()"
><ion-icon class="mr-1" name="create-outline"></ion-icon
><span i18n>Manage Asset Profile</span>...</a
>
}
@if (
dataSource?.data.length > 0 &&
data.hasPermissionToReportDataGlitch === true
) {
<a color="warn" mat-stroked-button [href]="reportDataGlitchMail" <a color="warn" mat-stroked-button [href]="reportDataGlitchMail"
><ion-icon class="mr-1" name="flag-outline"></ion-icon ><ion-icon class="mr-1" name="flag-outline"></ion-icon
><span i18n>Report Data Glitch</span></a ><span i18n>Report Data Glitch</span>...</a
> >
}
</div> </div>
</div> </div>
} }

1
apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts

@ -8,6 +8,7 @@ export interface HoldingDetailDialogParams {
dataSource: DataSource; dataSource: DataSource;
deviceType: string; deviceType: string;
hasImpersonationId: boolean; hasImpersonationId: boolean;
hasPermissionToAccessAdminControl: boolean;
hasPermissionToCreateOrder: boolean; hasPermissionToCreateOrder: boolean;
hasPermissionToReportDataGlitch: boolean; hasPermissionToReportDataGlitch: boolean;
hasPermissionToUpdateOrder: boolean; hasPermissionToUpdateOrder: boolean;

34
apps/client/src/app/components/user-account-access/user-account-access.component.ts

@ -1,4 +1,5 @@
import { CreateAccessDto } from '@ghostfolio/api/app/access/create-access.dto'; import { CreateAccessDto } from '@ghostfolio/api/app/access/create-access.dto';
import { GfPortfolioAccessTableModule } from '@ghostfolio/client/components/access-table/access-table.module';
import { ConfirmationDialogType } from '@ghostfolio/client/core/notification/confirmation-dialog/confirmation-dialog.type'; import { ConfirmationDialogType } from '@ghostfolio/client/core/notification/confirmation-dialog/confirmation-dialog.type';
import { NotificationService } from '@ghostfolio/client/core/notification/notification.service'; import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { DataService } from '@ghostfolio/client/services/data.service'; import { DataService } from '@ghostfolio/client/services/data.service';
@ -6,17 +7,24 @@ import { TokenStorageService } from '@ghostfolio/client/services/token-storage.s
import { UserService } from '@ghostfolio/client/services/user/user.service'; import { UserService } from '@ghostfolio/client/services/user/user.service';
import { Access, User } from '@ghostfolio/common/interfaces'; import { Access, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
import { CommonModule } from '@angular/common';
import { import {
ChangeDetectionStrategy, ChangeDetectionStrategy,
ChangeDetectorRef, ChangeDetectorRef,
Component, Component,
CUSTOM_ELEMENTS_SCHEMA,
OnDestroy, OnDestroy,
OnInit OnInit
} from '@angular/core'; } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms'; import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog'; import { MatButtonModule } from '@angular/material/button';
import { ActivatedRoute, Router } from '@angular/router'; import { MatDialog, MatDialogModule } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons'; import { addIcons } from 'ionicons';
import { addOutline, eyeOffOutline, eyeOutline } from 'ionicons/icons'; import { addOutline, eyeOffOutline, eyeOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector'; import { DeviceDetectorService } from 'ngx-device-detector';
@ -24,16 +32,30 @@ import { EMPTY, Subject } from 'rxjs';
import { catchError, takeUntil } from 'rxjs/operators'; import { catchError, takeUntil } from 'rxjs/operators';
import { CreateOrUpdateAccessDialog } from './create-or-update-access-dialog/create-or-update-access-dialog.component'; import { CreateOrUpdateAccessDialog } from './create-or-update-access-dialog/create-or-update-access-dialog.component';
import { GfCreateOrUpdateAccessDialogModule } from './create-or-update-access-dialog/create-or-update-access-dialog.module';
@Component({ @Component({
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
host: { class: 'has-fab' }, host: { class: 'has-fab' },
imports: [
CommonModule,
GfCreateOrUpdateAccessDialogModule,
GfPortfolioAccessTableModule,
GfPremiumIndicatorComponent,
IonIcon,
MatButtonModule,
MatDialogModule,
MatFormFieldModule,
MatInputModule,
ReactiveFormsModule,
RouterModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
selector: 'gf-user-account-access', selector: 'gf-user-account-access',
styleUrls: ['./user-account-access.scss'], styleUrls: ['./user-account-access.scss'],
templateUrl: './user-account-access.html', templateUrl: './user-account-access.html'
standalone: false
}) })
export class UserAccountAccessComponent implements OnDestroy, OnInit { export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
public accessesGet: Access[]; public accessesGet: Access[];
public accessesGive: Access[]; public accessesGive: Access[];
public deviceType: string; public deviceType: string;

35
apps/client/src/app/components/user-account-access/user-account-access.module.ts

@ -1,35 +0,0 @@
import { GfPortfolioAccessTableModule } from '@ghostfolio/client/components/access-table/access-table.module';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatDialogModule } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { GfCreateOrUpdateAccessDialogModule } from './create-or-update-access-dialog/create-or-update-access-dialog.module';
import { UserAccountAccessComponent } from './user-account-access.component';
@NgModule({
declarations: [UserAccountAccessComponent],
exports: [UserAccountAccessComponent],
imports: [
CommonModule,
GfCreateOrUpdateAccessDialogModule,
GfPortfolioAccessTableModule,
GfPremiumIndicatorComponent,
IonIcon,
MatButtonModule,
MatDialogModule,
MatFormFieldModule,
MatInputModule,
ReactiveFormsModule,
RouterModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class GfUserAccountAccessModule {}

19
apps/client/src/app/components/user-account-membership/user-account-membership.component.ts

@ -6,14 +6,20 @@ import { getDateFormatString } from '@ghostfolio/common/helper';
import { User } from '@ghostfolio/common/interfaces'; import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { publicRoutes } from '@ghostfolio/common/routes/routes'; import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { GfMembershipCardComponent } from '@ghostfolio/ui/membership-card';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
import { CommonModule } from '@angular/common';
import { import {
ChangeDetectionStrategy, ChangeDetectionStrategy,
ChangeDetectorRef, ChangeDetectorRef,
Component, Component,
OnDestroy OnDestroy
} from '@angular/core'; } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatSnackBar } from '@angular/material/snack-bar'; import { MatSnackBar } from '@angular/material/snack-bar';
import { RouterModule } from '@angular/router';
import ms, { StringValue } from 'ms'; import ms, { StringValue } from 'ms';
import { StripeService } from 'ngx-stripe'; import { StripeService } from 'ngx-stripe';
import { EMPTY, Subject } from 'rxjs'; import { EMPTY, Subject } from 'rxjs';
@ -21,12 +27,19 @@ import { catchError, switchMap, takeUntil } from 'rxjs/operators';
@Component({ @Component({
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
CommonModule,
GfMembershipCardComponent,
GfPremiumIndicatorComponent,
MatButtonModule,
MatCardModule,
RouterModule
],
selector: 'gf-user-account-membership', selector: 'gf-user-account-membership',
styleUrls: ['./user-account-membership.scss'], styleUrls: ['./user-account-membership.scss'],
templateUrl: './user-account-membership.html', templateUrl: './user-account-membership.html'
standalone: false
}) })
export class UserAccountMembershipComponent implements OnDestroy { export class GfUserAccountMembershipComponent implements OnDestroy {
public baseCurrency: string; public baseCurrency: string;
public coupon: number; public coupon: number;
public couponId: string; public couponId: string;

26
apps/client/src/app/components/user-account-membership/user-account-membership.module.ts

@ -1,26 +0,0 @@
import { GfMembershipCardComponent } from '@ghostfolio/ui/membership-card';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { RouterModule } from '@angular/router';
import { UserAccountMembershipComponent } from './user-account-membership.component';
@NgModule({
declarations: [UserAccountMembershipComponent],
exports: [UserAccountMembershipComponent],
imports: [
CommonModule,
GfMembershipCardComponent,
GfPremiumIndicatorComponent,
GfValueComponent,
MatButtonModule,
MatCardModule,
RouterModule
]
})
export class GfUserAccountMembershipModule {}

40
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts

@ -13,16 +13,33 @@ import { downloadAsFile } from '@ghostfolio/common/helper';
import { User } from '@ghostfolio/common/interfaces'; import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { CommonModule } from '@angular/common';
import { import {
ChangeDetectionStrategy, ChangeDetectionStrategy,
ChangeDetectorRef, ChangeDetectorRef,
Component, Component,
CUSTOM_ELEMENTS_SCHEMA,
OnDestroy, OnDestroy,
OnInit OnInit
} from '@angular/core'; } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms'; import {
import { MatSlideToggleChange } from '@angular/material/slide-toggle'; FormBuilder,
FormsModule,
ReactiveFormsModule,
Validators
} from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import {
MatSlideToggleChange,
MatSlideToggleModule
} from '@angular/material/slide-toggle';
import { MatSnackBar } from '@angular/material/snack-bar'; import { MatSnackBar } from '@angular/material/snack-bar';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { format, parseISO } from 'date-fns'; import { format, parseISO } from 'date-fns';
import { addIcons } from 'ionicons'; import { addIcons } from 'ionicons';
import { eyeOffOutline, eyeOutline } from 'ionicons/icons'; import { eyeOffOutline, eyeOutline } from 'ionicons/icons';
@ -32,12 +49,25 @@ import { catchError, takeUntil } from 'rxjs/operators';
@Component({ @Component({
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
CommonModule,
FormsModule,
IonIcon,
MatButtonModule,
MatCardModule,
MatFormFieldModule,
MatInputModule,
MatSelectModule,
MatSlideToggleModule,
ReactiveFormsModule,
RouterModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
selector: 'gf-user-account-settings', selector: 'gf-user-account-settings',
styleUrls: ['./user-account-settings.scss'], styleUrls: ['./user-account-settings.scss'],
templateUrl: './user-account-settings.html', templateUrl: './user-account-settings.html'
standalone: false
}) })
export class UserAccountSettingsComponent implements OnDestroy, OnInit { export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
public appearancePlaceholder = $localize`Auto`; public appearancePlaceholder = $localize`Auto`;
public baseCurrency: string; public baseCurrency: string;
public currencies: string[] = []; public currencies: string[] = [];

36
apps/client/src/app/components/user-account-settings/user-account-settings.module.ts

@ -1,36 +0,0 @@
import { GfValueComponent } from '@ghostfolio/ui/value';
import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { UserAccountSettingsComponent } from './user-account-settings.component';
@NgModule({
declarations: [UserAccountSettingsComponent],
exports: [UserAccountSettingsComponent],
imports: [
CommonModule,
FormsModule,
GfValueComponent,
IonIcon,
MatButtonModule,
MatCardModule,
MatFormFieldModule,
MatInputModule,
MatSelectModule,
MatSlideToggleModule,
ReactiveFormsModule,
RouterModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class GfUserAccountSettingsModule {}

2
apps/client/src/app/pages/about/changelog/changelog-page.component.ts

@ -9,7 +9,7 @@ import { Subject } from 'rxjs';
styleUrls: ['./changelog-page.scss'], styleUrls: ['./changelog-page.scss'],
templateUrl: './changelog-page.html' templateUrl: './changelog-page.html'
}) })
export class ChangelogPageComponent implements OnDestroy { export class GfChangelogPageComponent implements OnDestroy {
public isLoading = true; public isLoading = true;
private unsubscribeSubject = new Subject<void>(); private unsubscribeSubject = new Subject<void>();

4
apps/client/src/app/pages/about/changelog/changelog-page.routes.ts

@ -3,12 +3,12 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { ChangelogPageComponent } from './changelog-page.component'; import { GfChangelogPageComponent } from './changelog-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: ChangelogPageComponent, component: GfChangelogPageComponent,
path: '', path: '',
title: publicRoutes.about.subRoutes.changelog.title title: publicRoutes.about.subRoutes.changelog.title
} }

2
apps/client/src/app/pages/about/license/license-page.component.ts

@ -8,7 +8,7 @@ import { Subject } from 'rxjs';
styleUrls: ['./license-page.scss'], styleUrls: ['./license-page.scss'],
templateUrl: './license-page.html' templateUrl: './license-page.html'
}) })
export class LicensePageComponent implements OnDestroy { export class GfLicensePageComponent implements OnDestroy {
private unsubscribeSubject = new Subject<void>(); private unsubscribeSubject = new Subject<void>();
public ngOnDestroy() { public ngOnDestroy() {

4
apps/client/src/app/pages/about/license/license-page.routes.ts

@ -3,12 +3,12 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { LicensePageComponent } from './license-page.component'; import { GfLicensePageComponent } from './license-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: LicensePageComponent, component: GfLicensePageComponent,
path: '', path: '',
title: publicRoutes.about.subRoutes.license.title title: publicRoutes.about.subRoutes.license.title
} }

2
apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts

@ -14,7 +14,7 @@ const ossFriends = require('../../../../assets/oss-friends.json');
styleUrls: ['./oss-friends-page.scss'], styleUrls: ['./oss-friends-page.scss'],
templateUrl: './oss-friends-page.html' templateUrl: './oss-friends-page.html'
}) })
export class OpenSourceSoftwareFriendsPageComponent implements OnDestroy { export class GfOpenSourceSoftwareFriendsPageComponent implements OnDestroy {
public ossFriends = ossFriends.data; public ossFriends = ossFriends.data;
private unsubscribeSubject = new Subject<void>(); private unsubscribeSubject = new Subject<void>();

4
apps/client/src/app/pages/about/oss-friends/oss-friends-page.routes.ts

@ -3,12 +3,12 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { OpenSourceSoftwareFriendsPageComponent } from './oss-friends-page.component'; import { GfOpenSourceSoftwareFriendsPageComponent } from './oss-friends-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: OpenSourceSoftwareFriendsPageComponent, component: GfOpenSourceSoftwareFriendsPageComponent,
path: '', path: '',
title: publicRoutes.about.subRoutes.ossFriends.title title: publicRoutes.about.subRoutes.ossFriends.title
} }

2
apps/client/src/app/pages/about/overview/about-overview-page.component.ts

@ -33,7 +33,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./about-overview-page.scss'], styleUrls: ['./about-overview-page.scss'],
templateUrl: './about-overview-page.html' templateUrl: './about-overview-page.html'
}) })
export class AboutOverviewPageComponent implements OnDestroy, OnInit { export class GfAboutOverviewPageComponent implements OnDestroy, OnInit {
public hasPermissionForStatistics: boolean; public hasPermissionForStatistics: boolean;
public hasPermissionForSubscription: boolean; public hasPermissionForSubscription: boolean;
public isLoggedIn: boolean; public isLoggedIn: boolean;

4
apps/client/src/app/pages/about/overview/about-overview-page.routes.ts

@ -2,12 +2,12 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { AboutOverviewPageComponent } from './about-overview-page.component'; import { GfAboutOverviewPageComponent } from './about-overview-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: AboutOverviewPageComponent, component: GfAboutOverviewPageComponent,
path: '', path: '',
title: $localize`About` title: $localize`About`
} }

2
apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts

@ -8,7 +8,7 @@ import { Subject } from 'rxjs';
styleUrls: ['./privacy-policy-page.scss'], styleUrls: ['./privacy-policy-page.scss'],
templateUrl: './privacy-policy-page.html' templateUrl: './privacy-policy-page.html'
}) })
export class PrivacyPolicyPageComponent implements OnDestroy { export class GfPrivacyPolicyPageComponent implements OnDestroy {
private unsubscribeSubject = new Subject<void>(); private unsubscribeSubject = new Subject<void>();
public ngOnDestroy() { public ngOnDestroy() {

4
apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.routes.ts

@ -3,12 +3,12 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { PrivacyPolicyPageComponent } from './privacy-policy-page.component'; import { GfPrivacyPolicyPageComponent } from './privacy-policy-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: PrivacyPolicyPageComponent, component: GfPrivacyPolicyPageComponent,
path: '', path: '',
title: publicRoutes.about.subRoutes.privacyPolicy.title title: publicRoutes.about.subRoutes.privacyPolicy.title
} }

2
apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.component.ts

@ -8,7 +8,7 @@ import { Subject } from 'rxjs';
styleUrls: ['./terms-of-service-page.scss'], styleUrls: ['./terms-of-service-page.scss'],
templateUrl: './terms-of-service-page.html' templateUrl: './terms-of-service-page.html'
}) })
export class TermsOfServicePageComponent implements OnDestroy { export class GfTermsOfServicePageComponent implements OnDestroy {
private unsubscribeSubject = new Subject<void>(); private unsubscribeSubject = new Subject<void>();
public ngOnDestroy() { public ngOnDestroy() {

4
apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.routes.ts

@ -3,12 +3,12 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { TermsOfServicePageComponent } from './terms-of-service-page.component'; import { GfTermsOfServicePageComponent } from './terms-of-service-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: TermsOfServicePageComponent, component: GfTermsOfServicePageComponent,
path: '', path: '',
title: publicRoutes.about.subRoutes.termsOfService.title title: publicRoutes.about.subRoutes.termsOfService.title
} }

22
apps/client/src/app/pages/accounts/accounts-page-routing.module.ts

@ -1,22 +0,0 @@
import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { AccountsPageComponent } from './accounts-page.component';
const routes: Routes = [
{
canActivate: [AuthGuard],
component: AccountsPageComponent,
path: '',
title: internalRoutes.accounts.title
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class AccountsPageRoutingModule {}

26
apps/client/src/app/pages/accounts/accounts-page.component.ts

@ -2,7 +2,9 @@ import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto
import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto'; import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto';
import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto'; import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto';
import { AccountDetailDialog } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.component'; import { AccountDetailDialog } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.component';
import { GfAccountDetailDialogModule } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.module';
import { AccountDetailDialogParams } from '@ghostfolio/client/components/account-detail-dialog/interfaces/interfaces'; import { AccountDetailDialogParams } from '@ghostfolio/client/components/account-detail-dialog/interfaces/interfaces';
import { GfAccountsTableModule } from '@ghostfolio/client/components/accounts-table/accounts-table.module';
import { NotificationService } from '@ghostfolio/client/core/notification/notification.service'; import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { DataService } from '@ghostfolio/client/services/data.service'; import { DataService } from '@ghostfolio/client/services/data.service';
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
@ -11,8 +13,9 @@ import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router, RouterModule } from '@angular/router';
import { Account as AccountModel } from '@prisma/client'; import { Account as AccountModel } from '@prisma/client';
import { addIcons } from 'ionicons'; import { addIcons } from 'ionicons';
import { addOutline } from 'ionicons/icons'; import { addOutline } from 'ionicons/icons';
@ -20,17 +23,22 @@ import { DeviceDetectorService } from 'ngx-device-detector';
import { EMPTY, Subject, Subscription } from 'rxjs'; import { EMPTY, Subject, Subscription } from 'rxjs';
import { catchError, takeUntil } from 'rxjs/operators'; import { catchError, takeUntil } from 'rxjs/operators';
import { CreateOrUpdateAccountDialog } from './create-or-update-account-dialog/create-or-update-account-dialog.component'; import { GfCreateOrUpdateAccountDialogComponent } from './create-or-update-account-dialog/create-or-update-account-dialog.component';
import { TransferBalanceDialog } from './transfer-balance/transfer-balance-dialog.component'; import { GfTransferBalanceDialogComponent } from './transfer-balance/transfer-balance-dialog.component';
@Component({ @Component({
host: { class: 'has-fab page' }, host: { class: 'has-fab page' },
imports: [
GfAccountDetailDialogModule,
GfAccountsTableModule,
MatButtonModule,
RouterModule
],
selector: 'gf-accounts-page', selector: 'gf-accounts-page',
styleUrls: ['./accounts-page.scss'], styleUrls: ['./accounts-page.scss'],
templateUrl: './accounts-page.html', templateUrl: './accounts-page.html'
standalone: false
}) })
export class AccountsPageComponent implements OnDestroy, OnInit { export class GfAccountsPageComponent implements OnDestroy, OnInit {
public accounts: AccountModel[]; public accounts: AccountModel[];
public deviceType: string; public deviceType: string;
public hasImpersonationId: boolean; public hasImpersonationId: boolean;
@ -177,7 +185,7 @@ export class AccountsPageComponent implements OnDestroy, OnInit {
name, name,
platformId platformId
}: AccountModel) { }: AccountModel) {
const dialogRef = this.dialog.open(CreateOrUpdateAccountDialog, { const dialogRef = this.dialog.open(GfCreateOrUpdateAccountDialogComponent, {
data: { data: {
account: { account: {
balance, balance,
@ -251,7 +259,7 @@ export class AccountsPageComponent implements OnDestroy, OnInit {
} }
private openCreateAccountDialog() { private openCreateAccountDialog() {
const dialogRef = this.dialog.open(CreateOrUpdateAccountDialog, { const dialogRef = this.dialog.open(GfCreateOrUpdateAccountDialogComponent, {
data: { data: {
account: { account: {
balance: 0, balance: 0,
@ -293,7 +301,7 @@ export class AccountsPageComponent implements OnDestroy, OnInit {
} }
private openTransferBalanceDialog() { private openTransferBalanceDialog() {
const dialogRef = this.dialog.open(TransferBalanceDialog, { const dialogRef = this.dialog.open(GfTransferBalanceDialogComponent, {
data: { data: {
accounts: this.accounts accounts: this.accounts
}, },

30
apps/client/src/app/pages/accounts/accounts-page.module.ts

@ -1,30 +0,0 @@
import { GfAccountDetailDialogModule } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.module';
import { GfAccountsTableModule } from '@ghostfolio/client/components/accounts-table/accounts-table.module';
import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { AccountsPageRoutingModule } from './accounts-page-routing.module';
import { AccountsPageComponent } from './accounts-page.component';
import { GfCreateOrUpdateAccountDialogModule } from './create-or-update-account-dialog/create-or-update-account-dialog.module';
import { GfTransferBalanceDialogModule } from './transfer-balance/transfer-balance-dialog.module';
@NgModule({
declarations: [AccountsPageComponent],
imports: [
AccountsPageRoutingModule,
CommonModule,
GfAccountDetailDialogModule,
GfAccountsTableModule,
GfCreateOrUpdateAccountDialogModule,
GfTransferBalanceDialogModule,
IonIcon,
MatButtonModule,
RouterModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class AccountsPageModule {}

15
apps/client/src/app/pages/accounts/accounts-page.routes.ts

@ -0,0 +1,15 @@
import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { Routes } from '@angular/router';
import { GfAccountsPageComponent } from './accounts-page.component';
export const routes: Routes = [
{
canActivate: [AuthGuard],
component: GfAccountsPageComponent,
path: '',
title: internalRoutes.accounts.title
}
];

37
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts

@ -2,7 +2,10 @@ import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto
import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto'; import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto';
import { DataService } from '@ghostfolio/client/services/data.service'; import { DataService } from '@ghostfolio/client/services/data.service';
import { validateObjectForForm } from '@ghostfolio/client/util/form.util'; import { validateObjectForForm } from '@ghostfolio/client/util/form.util';
import { GfCurrencySelectorComponent } from '@ghostfolio/ui/currency-selector';
import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
import { CommonModule, NgClass } from '@angular/common';
import { import {
ChangeDetectionStrategy, ChangeDetectionStrategy,
Component, Component,
@ -13,10 +16,20 @@ import {
AbstractControl, AbstractControl,
FormBuilder, FormBuilder,
FormGroup, FormGroup,
ReactiveFormsModule,
ValidatorFn, ValidatorFn,
Validators Validators
} from '@angular/forms'; } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatButtonModule } from '@angular/material/button';
import { MatCheckboxModule } from '@angular/material/checkbox';
import {
MAT_DIALOG_DATA,
MatDialogModule,
MatDialogRef
} from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { Platform } from '@prisma/client'; import { Platform } from '@prisma/client';
import { Observable, Subject } from 'rxjs'; import { Observable, Subject } from 'rxjs';
import { map, startWith } from 'rxjs/operators'; import { map, startWith } from 'rxjs/operators';
@ -24,14 +37,26 @@ import { map, startWith } from 'rxjs/operators';
import { CreateOrUpdateAccountDialogParams } from './interfaces/interfaces'; import { CreateOrUpdateAccountDialogParams } from './interfaces/interfaces';
@Component({ @Component({
changeDetection: ChangeDetectionStrategy.OnPush,
host: { class: 'h-100' }, host: { class: 'h-100' },
imports: [
CommonModule,
GfCurrencySelectorComponent,
GfEntityLogoComponent,
MatAutocompleteModule,
MatButtonModule,
MatCheckboxModule,
MatDialogModule,
MatFormFieldModule,
MatInputModule,
NgClass,
ReactiveFormsModule
],
selector: 'gf-create-or-update-account-dialog', selector: 'gf-create-or-update-account-dialog',
changeDetection: ChangeDetectionStrategy.OnPush,
styleUrls: ['./create-or-update-account-dialog.scss'], styleUrls: ['./create-or-update-account-dialog.scss'],
templateUrl: 'create-or-update-account-dialog.html', templateUrl: 'create-or-update-account-dialog.html'
standalone: false
}) })
export class CreateOrUpdateAccountDialog implements OnDestroy { export class GfCreateOrUpdateAccountDialogComponent implements OnDestroy {
public accountForm: FormGroup; public accountForm: FormGroup;
public currencies: string[] = []; public currencies: string[] = [];
public filteredPlatforms: Observable<Platform[]>; public filteredPlatforms: Observable<Platform[]>;
@ -42,7 +67,7 @@ export class CreateOrUpdateAccountDialog implements OnDestroy {
public constructor( public constructor(
@Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateAccountDialogParams, @Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateAccountDialogParams,
private dataService: DataService, private dataService: DataService,
public dialogRef: MatDialogRef<CreateOrUpdateAccountDialog>, public dialogRef: MatDialogRef<GfCreateOrUpdateAccountDialogComponent>,
private formBuilder: FormBuilder private formBuilder: FormBuilder
) {} ) {}

32
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts

@ -1,32 +0,0 @@
import { GfCurrencySelectorComponent } from '@ghostfolio/ui/currency-selector';
import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatButtonModule } from '@angular/material/button';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatDialogModule } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { CreateOrUpdateAccountDialog } from './create-or-update-account-dialog.component';
@NgModule({
declarations: [CreateOrUpdateAccountDialog],
imports: [
CommonModule,
FormsModule,
GfCurrencySelectorComponent,
GfEntityLogoComponent,
MatAutocompleteModule,
MatButtonModule,
MatCheckboxModule,
MatDialogModule,
MatFormFieldModule,
MatInputModule,
ReactiveFormsModule
]
})
export class GfCreateOrUpdateAccountDialogModule {}

30
apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts

@ -1,4 +1,5 @@
import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto'; import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto';
import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
import { import {
ChangeDetectionStrategy, ChangeDetectionStrategy,
@ -10,24 +11,41 @@ import {
AbstractControl, AbstractControl,
FormBuilder, FormBuilder,
FormGroup, FormGroup,
ReactiveFormsModule,
ValidationErrors, ValidationErrors,
Validators Validators
} from '@angular/forms'; } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MatButtonModule } from '@angular/material/button';
import {
MAT_DIALOG_DATA,
MatDialogModule,
MatDialogRef
} from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { Account } from '@prisma/client'; import { Account } from '@prisma/client';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
import { TransferBalanceDialogParams } from './interfaces/interfaces'; import { TransferBalanceDialogParams } from './interfaces/interfaces';
@Component({ @Component({
changeDetection: ChangeDetectionStrategy.OnPush,
host: { class: 'h-100' }, host: { class: 'h-100' },
imports: [
GfEntityLogoComponent,
MatButtonModule,
MatDialogModule,
MatFormFieldModule,
MatInputModule,
MatSelectModule,
ReactiveFormsModule
],
selector: 'gf-transfer-balance-dialog', selector: 'gf-transfer-balance-dialog',
changeDetection: ChangeDetectionStrategy.OnPush,
styleUrls: ['./transfer-balance-dialog.scss'], styleUrls: ['./transfer-balance-dialog.scss'],
templateUrl: 'transfer-balance-dialog.html', templateUrl: 'transfer-balance-dialog.html'
standalone: false
}) })
export class TransferBalanceDialog implements OnDestroy { export class GfTransferBalanceDialogComponent implements OnDestroy {
public accounts: Account[] = []; public accounts: Account[] = [];
public currency: string; public currency: string;
public transferBalanceForm: FormGroup; public transferBalanceForm: FormGroup;
@ -36,7 +54,7 @@ export class TransferBalanceDialog implements OnDestroy {
public constructor( public constructor(
@Inject(MAT_DIALOG_DATA) public data: TransferBalanceDialogParams, @Inject(MAT_DIALOG_DATA) public data: TransferBalanceDialogParams,
public dialogRef: MatDialogRef<TransferBalanceDialog>, public dialogRef: MatDialogRef<GfTransferBalanceDialogComponent>,
private formBuilder: FormBuilder private formBuilder: FormBuilder
) {} ) {}

27
apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts

@ -1,27 +0,0 @@
import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatDialogModule } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { TransferBalanceDialog } from './transfer-balance-dialog.component';
@NgModule({
declarations: [TransferBalanceDialog],
imports: [
CommonModule,
GfEntityLogoComponent,
MatButtonModule,
MatDialogModule,
MatFormFieldModule,
MatInputModule,
MatSelectModule,
ReactiveFormsModule
]
})
export class GfTransferBalanceDialogModule {}

14
apps/client/src/app/pages/portfolio/activities/activities-page.component.ts

@ -27,8 +27,8 @@ import { DeviceDetectorService } from 'ngx-device-detector';
import { Subject, Subscription } from 'rxjs'; import { Subject, Subscription } from 'rxjs';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
import { CreateOrUpdateActivityDialog } from './create-or-update-activity-dialog/create-or-update-activity-dialog.component'; import { GfCreateOrUpdateActivityDialog } from './create-or-update-activity-dialog/create-or-update-activity-dialog.component';
import { ImportActivitiesDialog } from './import-activities-dialog/import-activities-dialog.component'; import { GfImportActivitiesDialog } from './import-activities-dialog/import-activities-dialog.component';
import { ImportActivitiesDialogParams } from './import-activities-dialog/interfaces/interfaces'; import { ImportActivitiesDialogParams } from './import-activities-dialog/interfaces/interfaces';
@Component({ @Component({
@ -44,7 +44,7 @@ import { ImportActivitiesDialogParams } from './import-activities-dialog/interfa
styleUrls: ['./activities-page.scss'], styleUrls: ['./activities-page.scss'],
templateUrl: './activities-page.html' templateUrl: './activities-page.html'
}) })
export class ActivitiesPageComponent implements OnDestroy, OnInit { export class GfActivitiesPageComponent implements OnDestroy, OnInit {
public dataSource: MatTableDataSource<Activity>; public dataSource: MatTableDataSource<Activity>;
public deviceType: string; public deviceType: string;
public hasImpersonationId: boolean; public hasImpersonationId: boolean;
@ -245,7 +245,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit {
} }
public onImport() { public onImport() {
const dialogRef = this.dialog.open(ImportActivitiesDialog, { const dialogRef = this.dialog.open(GfImportActivitiesDialog, {
data: { data: {
deviceType: this.deviceType, deviceType: this.deviceType,
user: this.user user: this.user
@ -267,7 +267,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit {
} }
public onImportDividends() { public onImportDividends() {
const dialogRef = this.dialog.open(ImportActivitiesDialog, { const dialogRef = this.dialog.open(GfImportActivitiesDialog, {
data: { data: {
activityTypes: ['DIVIDEND'], activityTypes: ['DIVIDEND'],
deviceType: this.deviceType, deviceType: this.deviceType,
@ -304,7 +304,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit {
} }
public openUpdateActivityDialog(activity: Activity) { public openUpdateActivityDialog(activity: Activity) {
const dialogRef = this.dialog.open(CreateOrUpdateActivityDialog, { const dialogRef = this.dialog.open(GfCreateOrUpdateActivityDialog, {
data: { data: {
activity, activity,
accounts: this.user?.accounts, accounts: this.user?.accounts,
@ -345,7 +345,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit {
.subscribe((user) => { .subscribe((user) => {
this.updateUser(user); this.updateUser(user);
const dialogRef = this.dialog.open(CreateOrUpdateActivityDialog, { const dialogRef = this.dialog.open(GfCreateOrUpdateActivityDialog, {
data: { data: {
accounts: this.user?.accounts, accounts: this.user?.accounts,
activity: { activity: {

4
apps/client/src/app/pages/portfolio/activities/activities-page.routes.ts

@ -3,12 +3,12 @@ import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { ActivitiesPageComponent } from './activities-page.component'; import { GfActivitiesPageComponent } from './activities-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: ActivitiesPageComponent, component: GfActivitiesPageComponent,
path: '', path: '',
title: internalRoutes.portfolio.subRoutes.activities.title title: internalRoutes.portfolio.subRoutes.activities.title
} }

4
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts

@ -71,7 +71,7 @@ import { CreateOrUpdateActivityDialogParams } from './interfaces/interfaces';
styleUrls: ['./create-or-update-activity-dialog.scss'], styleUrls: ['./create-or-update-activity-dialog.scss'],
templateUrl: 'create-or-update-activity-dialog.html' templateUrl: 'create-or-update-activity-dialog.html'
}) })
export class CreateOrUpdateActivityDialog implements OnDestroy { export class GfCreateOrUpdateActivityDialog implements OnDestroy {
public activityForm: FormGroup; public activityForm: FormGroup;
public assetClasses = Object.keys(AssetClass).map((assetClass) => { public assetClasses = Object.keys(AssetClass).map((assetClass) => {
return { id: assetClass, label: translate(assetClass) }; return { id: assetClass, label: translate(assetClass) };
@ -101,7 +101,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
@Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateActivityDialogParams, @Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateActivityDialogParams,
private dataService: DataService, private dataService: DataService,
private dateAdapter: DateAdapter<any>, private dateAdapter: DateAdapter<any>,
public dialogRef: MatDialogRef<CreateOrUpdateActivityDialog>, public dialogRef: MatDialogRef<GfCreateOrUpdateActivityDialog>,
private formBuilder: FormBuilder, private formBuilder: FormBuilder,
@Inject(MAT_DATE_LOCALE) private locale: string, @Inject(MAT_DATE_LOCALE) private locale: string,
private userService: UserService private userService: UserService

4
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts

@ -74,7 +74,7 @@ import { ImportActivitiesDialogParams } from './interfaces/interfaces';
styleUrls: ['./import-activities-dialog.scss'], styleUrls: ['./import-activities-dialog.scss'],
templateUrl: 'import-activities-dialog.html' templateUrl: 'import-activities-dialog.html'
}) })
export class ImportActivitiesDialog implements OnDestroy { export class GfImportActivitiesDialog implements OnDestroy {
public accounts: CreateAccountDto[] = []; public accounts: CreateAccountDto[] = [];
public activities: Activity[] = []; public activities: Activity[] = [];
public assetProfileForm: FormGroup; public assetProfileForm: FormGroup;
@ -102,7 +102,7 @@ export class ImportActivitiesDialog implements OnDestroy {
private dataService: DataService, private dataService: DataService,
private deviceService: DeviceDetectorService, private deviceService: DeviceDetectorService,
private formBuilder: FormBuilder, private formBuilder: FormBuilder,
public dialogRef: MatDialogRef<ImportActivitiesDialog>, public dialogRef: MatDialogRef<GfImportActivitiesDialog>,
private importActivitiesService: ImportActivitiesService, private importActivitiesService: ImportActivitiesService,
private snackBar: MatSnackBar private snackBar: MatSnackBar
) { ) {

70
apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts

@ -27,7 +27,13 @@ import { MatCardModule } from '@angular/material/card';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { MatProgressBarModule } from '@angular/material/progress-bar'; import { MatProgressBarModule } from '@angular/material/progress-bar';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { Account, AssetClass, DataSource, Platform } from '@prisma/client'; import {
Account,
AssetClass,
AssetSubClass,
DataSource,
Platform
} from '@prisma/client';
import { isNumber } from 'lodash'; import { isNumber } from 'lodash';
import { DeviceDetectorService } from 'ngx-device-detector'; import { DeviceDetectorService } from 'ngx-device-detector';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
@ -48,7 +54,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./allocations-page.scss'], styleUrls: ['./allocations-page.scss'],
templateUrl: './allocations-page.html' templateUrl: './allocations-page.html'
}) })
export class AllocationsPageComponent implements OnDestroy, OnInit { export class GfAllocationsPageComponent implements OnDestroy, OnInit {
public accounts: { public accounts: {
[id: string]: Pick<Account, 'name'> & { [id: string]: Pick<Account, 'name'> & {
id: string; id: string;
@ -63,6 +69,18 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
}; };
public deviceType: string; public deviceType: string;
public hasImpersonationId: boolean; public hasImpersonationId: boolean;
public holdings: {
[symbol: string]: Pick<
PortfolioPosition,
| 'assetClass'
| 'assetClassLabel'
| 'assetSubClass'
| 'assetSubClassLabel'
| 'currency'
| 'exchange'
| 'name'
> & { etfProvider: string; value: number };
};
public isLoading = false; public isLoading = false;
public markets: { public markets: {
[key in Market]: { id: Market; valueInPercentage: number }; [key in Market]: { id: Market; valueInPercentage: number };
@ -81,18 +99,6 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
}; };
}; };
public portfolioDetails: PortfolioDetails; public portfolioDetails: PortfolioDetails;
public positions: {
[symbol: string]: Pick<
PortfolioPosition,
| 'assetClass'
| 'assetClassLabel'
| 'assetSubClass'
| 'assetSubClassLabel'
| 'currency'
| 'exchange'
| 'name'
> & { etfProvider: string; value: number };
};
public sectors: { public sectors: {
[name: string]: { name: string; value: number }; [name: string]: { name: string; value: number };
}; };
@ -237,6 +243,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
value: 0 value: 0
} }
}; };
this.holdings = {};
this.marketsAdvanced = { this.marketsAdvanced = {
[UNKNOWN_KEY]: { [UNKNOWN_KEY]: {
id: UNKNOWN_KEY, id: UNKNOWN_KEY,
@ -282,7 +289,6 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
platforms: {}, platforms: {},
summary: undefined summary: undefined
}; };
this.positions = {};
this.sectors = { this.sectors = {
[UNKNOWN_KEY]: { [UNKNOWN_KEY]: {
name: UNKNOWN_KEY, name: UNKNOWN_KEY,
@ -319,16 +325,6 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
}; };
} }
this.markets = this.portfolioDetails.markets;
Object.values(this.portfolioDetails.marketsAdvanced).forEach(
({ id, valueInBaseCurrency, valueInPercentage }) => {
this.marketsAdvanced[id].value = isNumber(valueInBaseCurrency)
? valueInBaseCurrency
: valueInPercentage;
}
);
for (const [symbol, position] of Object.entries( for (const [symbol, position] of Object.entries(
this.portfolioDetails.holdings this.portfolioDetails.holdings
)) { )) {
@ -340,12 +336,12 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
value = position.valueInBaseCurrency; value = position.valueInBaseCurrency;
} }
this.positions[symbol] = { this.holdings[symbol] = {
value, value,
assetClass: position.assetClass, assetClass: position.assetClass || (UNKNOWN_KEY as AssetClass),
assetClassLabel: position.assetClassLabel, assetClassLabel: position.assetClassLabel || UNKNOWN_KEY,
assetSubClass: position.assetSubClass, assetSubClass: position.assetSubClass || (UNKNOWN_KEY as AssetSubClass),
assetSubClassLabel: position.assetSubClassLabel, assetSubClassLabel: position.assetSubClassLabel || UNKNOWN_KEY,
currency: position.currency, currency: position.currency,
etfProvider: this.extractEtfProvider({ etfProvider: this.extractEtfProvider({
assetSubClass: position.assetSubClass, assetSubClass: position.assetSubClass,
@ -462,8 +458,8 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
} }
} }
if (this.positions[symbol].assetSubClass === 'ETF') { if (this.holdings[symbol].assetSubClass === 'ETF') {
this.totalValueInEtf += this.positions[symbol].value; this.totalValueInEtf += this.holdings[symbol].value;
} }
this.symbols[prettifySymbol(symbol)] = { this.symbols[prettifySymbol(symbol)] = {
@ -476,6 +472,16 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
}; };
} }
this.markets = this.portfolioDetails.markets;
Object.values(this.portfolioDetails.marketsAdvanced).forEach(
({ id, valueInBaseCurrency, valueInPercentage }) => {
this.marketsAdvanced[id].value = isNumber(valueInBaseCurrency)
? valueInBaseCurrency
: valueInPercentage;
}
);
for (const [ for (const [
id, id,
{ name, valueInBaseCurrency, valueInPercentage } { name, valueInBaseCurrency, valueInPercentage }

6
apps/client/src/app/pages/portfolio/allocations/allocations-page.html

@ -70,7 +70,7 @@
<gf-portfolio-proportion-chart <gf-portfolio-proportion-chart
[baseCurrency]="user?.settings?.baseCurrency" [baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme" [colorScheme]="user?.settings?.colorScheme"
[data]="positions" [data]="holdings"
[isInPercent]="hasImpersonationId || user.settings.isRestrictedView" [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
[keys]="['currency']" [keys]="['currency']"
[locale]="user?.settings?.locale" [locale]="user?.settings?.locale"
@ -92,7 +92,7 @@
<gf-portfolio-proportion-chart <gf-portfolio-proportion-chart
[baseCurrency]="user?.settings?.baseCurrency" [baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme" [colorScheme]="user?.settings?.colorScheme"
[data]="positions" [data]="holdings"
[isInPercent]="hasImpersonationId || user.settings.isRestrictedView" [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
[keys]="['assetClassLabel', 'assetSubClassLabel']" [keys]="['assetClassLabel', 'assetSubClassLabel']"
[locale]="user?.settings?.locale" [locale]="user?.settings?.locale"
@ -313,7 +313,7 @@
<gf-portfolio-proportion-chart <gf-portfolio-proportion-chart
[baseCurrency]="user?.settings?.baseCurrency" [baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme" [colorScheme]="user?.settings?.colorScheme"
[data]="positions" [data]="holdings"
[isInPercent]="hasImpersonationId || user.settings.isRestrictedView" [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
[keys]="['etfProvider']" [keys]="['etfProvider']"
[locale]="user?.settings?.locale" [locale]="user?.settings?.locale"

4
apps/client/src/app/pages/portfolio/allocations/allocations-page.routes.ts

@ -2,12 +2,12 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { AllocationsPageComponent } from './allocations-page.component'; import { GfAllocationsPageComponent } from './allocations-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: AllocationsPageComponent, component: GfAllocationsPageComponent,
path: '', path: '',
title: $localize`Allocations` title: $localize`Allocations`
} }

2
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts

@ -62,7 +62,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./analysis-page.scss'], styleUrls: ['./analysis-page.scss'],
templateUrl: './analysis-page.html' templateUrl: './analysis-page.html'
}) })
export class AnalysisPageComponent implements OnDestroy, OnInit { export class GfAnalysisPageComponent implements OnDestroy, OnInit {
@ViewChild(MatMenuTrigger) actionsMenuButton!: MatMenuTrigger; @ViewChild(MatMenuTrigger) actionsMenuButton!: MatMenuTrigger;
public benchmark: Partial<SymbolProfile>; public benchmark: Partial<SymbolProfile>;

4
apps/client/src/app/pages/portfolio/analysis/analysis-page.routes.ts

@ -3,12 +3,12 @@ import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { AnalysisPageComponent } from './analysis-page.component'; import { GfAnalysisPageComponent } from './analysis-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: AnalysisPageComponent, component: GfAnalysisPageComponent,
path: '', path: '',
title: internalRoutes.portfolio.subRoutes.analysis.title title: internalRoutes.portfolio.subRoutes.analysis.title
} }

2
apps/client/src/app/pages/portfolio/fire/fire-page.component.ts

@ -27,7 +27,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./fire-page.scss'], styleUrls: ['./fire-page.scss'],
templateUrl: './fire-page.html' templateUrl: './fire-page.html'
}) })
export class FirePageComponent implements OnDestroy, OnInit { export class GfFirePageComponent implements OnDestroy, OnInit {
public deviceType: string; public deviceType: string;
public fireWealth: Big; public fireWealth: Big;
public hasImpersonationId: boolean; public hasImpersonationId: boolean;

4
apps/client/src/app/pages/portfolio/fire/fire-page.routes.ts

@ -2,12 +2,12 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { FirePageComponent } from './fire-page.component'; import { GfFirePageComponent } from './fire-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: FirePageComponent, component: GfFirePageComponent,
path: '', path: '',
title: 'FIRE' title: 'FIRE'
} }

2
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts

@ -35,7 +35,7 @@ import { Subject, takeUntil } from 'rxjs';
styleUrl: './x-ray-page.component.scss', styleUrl: './x-ray-page.component.scss',
templateUrl: './x-ray-page.component.html' templateUrl: './x-ray-page.component.html'
}) })
export class XRayPageComponent { export class GfXRayPageComponent {
public accountClusterRiskRules: PortfolioReportRule[]; public accountClusterRiskRules: PortfolioReportRule[];
public assetClassClusterRiskRules: PortfolioReportRule[]; public assetClassClusterRiskRules: PortfolioReportRule[];
public currencyClusterRiskRules: PortfolioReportRule[]; public currencyClusterRiskRules: PortfolioReportRule[];

4
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.routes.ts

@ -2,12 +2,12 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
import { Routes } from '@angular/router'; import { Routes } from '@angular/router';
import { XRayPageComponent } from './x-ray-page.component'; import { GfXRayPageComponent } from './x-ray-page.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: XRayPageComponent, component: GfXRayPageComponent,
path: '', path: '',
title: 'X-ray' title: 'X-ray'
} }

42
apps/client/src/app/pages/user-account/user-account-page-routing.module.ts

@ -1,42 +0,0 @@
import { UserAccountAccessComponent } from '@ghostfolio/client/components/user-account-access/user-account-access.component';
import { UserAccountMembershipComponent } from '@ghostfolio/client/components/user-account-membership/user-account-membership.component';
import { UserAccountSettingsComponent } from '@ghostfolio/client/components/user-account-settings/user-account-settings.component';
import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { UserAccountPageComponent } from './user-account-page.component';
const routes: Routes = [
{
canActivate: [AuthGuard],
children: [
{
path: '',
component: UserAccountSettingsComponent,
title: internalRoutes.account.title
},
{
path: internalRoutes.account.subRoutes.membership.path,
component: UserAccountMembershipComponent,
title: internalRoutes.account.subRoutes.membership.title
},
{
path: internalRoutes.account.subRoutes.access.path,
component: UserAccountAccessComponent,
title: internalRoutes.account.subRoutes.access.title
}
],
component: UserAccountPageComponent,
path: '',
title: $localize`My Ghostfolio`
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class UserAccountPageRoutingModule {}

19
apps/client/src/app/pages/user-account/user-account-page.component.ts

@ -2,7 +2,17 @@ import { UserService } from '@ghostfolio/client/services/user/user.service';
import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces';
import { internalRoutes } from '@ghostfolio/common/routes/routes'; import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { CommonModule } from '@angular/common';
import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
OnDestroy,
OnInit
} from '@angular/core';
import { MatTabsModule } from '@angular/material/tabs';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons'; import { addIcons } from 'ionicons';
import { diamondOutline, keyOutline, settingsOutline } from 'ionicons/icons'; import { diamondOutline, keyOutline, settingsOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector'; import { DeviceDetectorService } from 'ngx-device-detector';
@ -10,12 +20,13 @@ import { Subject, takeUntil } from 'rxjs';
@Component({ @Component({
host: { class: 'page has-tabs' }, host: { class: 'page has-tabs' },
imports: [CommonModule, IonIcon, MatTabsModule, RouterModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
selector: 'gf-user-account-page', selector: 'gf-user-account-page',
styleUrls: ['./user-account-page.scss'], styleUrls: ['./user-account-page.scss'],
templateUrl: './user-account-page.html', templateUrl: './user-account-page.html'
standalone: false
}) })
export class UserAccountPageComponent implements OnDestroy, OnInit { export class GfUserAccountPageComponent implements OnDestroy, OnInit {
public deviceType: string; public deviceType: string;
public tabs: TabConfiguration[] = []; public tabs: TabConfiguration[] = [];
public user: User; public user: User;

26
apps/client/src/app/pages/user-account/user-account-page.module.ts

@ -1,26 +0,0 @@
import { GfUserAccountAccessModule } from '@ghostfolio/client/components/user-account-access/user-account-access.module';
import { GfUserAccountMembershipModule } from '@ghostfolio/client/components/user-account-membership/user-account-membership.module';
import { GfUserAccountSettingsModule } from '@ghostfolio/client/components/user-account-settings/user-account-settings.module';
import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { MatTabsModule } from '@angular/material/tabs';
import { IonIcon } from '@ionic/angular/standalone';
import { UserAccountPageRoutingModule } from './user-account-page-routing.module';
import { UserAccountPageComponent } from './user-account-page.component';
@NgModule({
declarations: [UserAccountPageComponent],
imports: [
CommonModule,
GfUserAccountAccessModule,
GfUserAccountMembershipModule,
GfUserAccountSettingsModule,
IonIcon,
MatTabsModule,
UserAccountPageRoutingModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class UserAccountPageModule {}

35
apps/client/src/app/pages/user-account/user-account-page.routes.ts

@ -0,0 +1,35 @@
import { GfUserAccountAccessComponent } from '@ghostfolio/client/components/user-account-access/user-account-access.component';
import { GfUserAccountMembershipComponent } from '@ghostfolio/client/components/user-account-membership/user-account-membership.component';
import { GfUserAccountSettingsComponent } from '@ghostfolio/client/components/user-account-settings/user-account-settings.component';
import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { Routes } from '@angular/router';
import { GfUserAccountPageComponent } from './user-account-page.component';
export const routes: Routes = [
{
canActivate: [AuthGuard],
children: [
{
path: '',
component: GfUserAccountSettingsComponent,
title: internalRoutes.account.title
},
{
path: internalRoutes.account.subRoutes.membership.path,
component: GfUserAccountMembershipComponent,
title: internalRoutes.account.subRoutes.membership.title
},
{
path: internalRoutes.account.subRoutes.access.path,
component: GfUserAccountAccessComponent,
title: internalRoutes.account.subRoutes.access.title
}
],
component: GfUserAccountPageComponent,
path: '',
title: $localize`My Ghostfolio`
}
];

112
apps/client/src/locales/messages.ca.xlf

@ -2203,11 +2203,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html"> <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">
@ -2327,7 +2327,7 @@
<target state="translated">Informar d’un Problema amb les Dades</target> <target state="translated">Informar d’un Problema amb les Dades</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="8204176479746810612" datatype="html"> <trans-unit id="8204176479746810612" datatype="html">
@ -3027,7 +3027,7 @@
<target state="translated">Introduïu el vostre codi de cupó.</target> <target state="translated">Introduïu el vostre codi de cupó.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -3035,7 +3035,7 @@
<target state="translated">No s’ha pogut bescanviar el codi de cupó</target> <target state="translated">No s’ha pogut bescanviar el codi de cupó</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -3043,7 +3043,7 @@
<target state="translated">El codi del cupó s’ha bescanviat</target> <target state="translated">El codi del cupó s’ha bescanviat</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -3051,7 +3051,7 @@
<target state="translated">Torna a carregar</target> <target state="translated">Torna a carregar</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html"> <trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html">
@ -3087,7 +3087,7 @@
<target state="translated">Automàtic</target> <target state="translated">Automàtic</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4941836956820527118" datatype="html"> <trans-unit id="4941836956820527118" datatype="html">
@ -3095,7 +3095,7 @@
<target state="translated">De debò vols tancar el teu compte de Ghostfolio?</target> <target state="translated">De debò vols tancar el teu compte de Ghostfolio?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -3103,7 +3103,7 @@
<target state="translated">De debò vols eliminar aquest mètode d’inici de sessió?</target> <target state="translated">De debò vols eliminar aquest mètode d’inici de sessió?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="5724720497710437101" datatype="html"> <trans-unit id="5724720497710437101" datatype="html">
@ -3111,7 +3111,7 @@
<target state="translated">Ups! Hi ha hagut un error en configurar l’autenticació biomètrica.</target> <target state="translated">Ups! Hi ha hagut un error en configurar l’autenticació biomètrica.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html"> <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
@ -3339,7 +3339,7 @@
<target state="translated">D’acord</target> <target state="translated">D’acord</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -3431,7 +3431,7 @@
<target state="translated">Vaja, la transferència del saldo en efectiu ha fallat.</target> <target state="translated">Vaja, la transferència del saldo en efectiu ha fallat.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html"> <trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html">
@ -5338,7 +5338,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ecdfd0aa6379102d20ffcf1e9e762edc54f148f4" datatype="html"> <trans-unit id="ecdfd0aa6379102d20ffcf1e9e762edc54f148f4" datatype="html">
<source>❌ No</source> <source>❌ No</source>
<target state="new">❌ No</target> <target state="translated">❌ No</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">147</context> <context context-type="linenumber">147</context>
@ -5374,7 +5374,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ff2d2e1c823a7f2f04ab702a021c486d9bfe9854" datatype="html"> <trans-unit id="ff2d2e1c823a7f2f04ab702a021c486d9bfe9854" datatype="html">
<source> Self-Hosting </source> <source> Self-Hosting </source>
<target state="new"> Self-Hosting </target> <target state="translated"> Autoallotjament </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">170</context> <context context-type="linenumber">170</context>
@ -5382,7 +5382,7 @@
</trans-unit> </trans-unit>
<trans-unit id="fbce449c2e3719c495e4e3ba0107df816b039ebe" datatype="html"> <trans-unit id="fbce449c2e3719c495e4e3ba0107df816b039ebe" datatype="html">
<source> Use anonymously </source> <source> Use anonymously </source>
<target state="new"> Use anonymously </target> <target state="translated"> Utilitza de manera anònima </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">209</context> <context context-type="linenumber">209</context>
@ -5390,7 +5390,7 @@
</trans-unit> </trans-unit>
<trans-unit id="f37bf6923c7cffbb879c67fcb782950e28c431d0" datatype="html"> <trans-unit id="f37bf6923c7cffbb879c67fcb782950e28c431d0" datatype="html">
<source> Free Plan </source> <source> Free Plan </source>
<target state="new"> Free Plan </target> <target state="translated"> Pla gratuït </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">248</context> <context context-type="linenumber">248</context>
@ -5398,7 +5398,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ef3b860007773ebddac904fb42a1694b12d285c6" datatype="html"> <trans-unit id="ef3b860007773ebddac904fb42a1694b12d285c6" datatype="html">
<source>Starting from</source> <source>Starting from</source>
<target state="new">Starting from</target> <target state="translated">A partir de</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">289</context> <context context-type="linenumber">289</context>
@ -5410,7 +5410,7 @@
</trans-unit> </trans-unit>
<trans-unit id="752daa6baad0f8b4684b5c6775345b02bed6746e" datatype="html"> <trans-unit id="752daa6baad0f8b4684b5c6775345b02bed6746e" datatype="html">
<source>year</source> <source>year</source>
<target state="new">year</target> <target state="translated">any</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">290</context> <context context-type="linenumber">290</context>
@ -5422,7 +5422,7 @@
</trans-unit> </trans-unit>
<trans-unit id="fcde58253a4cfd52c228eebdae74e1be7a1ab714" datatype="html"> <trans-unit id="fcde58253a4cfd52c228eebdae74e1be7a1ab714" datatype="html">
<source>Notes</source> <source>Notes</source>
<target state="new">Notes</target> <target state="translated">Notes</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">302</context> <context context-type="linenumber">302</context>
@ -5446,7 +5446,7 @@
</trans-unit> </trans-unit>
<trans-unit id="47e58765787443fe08ef8ccc25a1419310e43b2a" datatype="html"> <trans-unit id="47e58765787443fe08ef8ccc25a1419310e43b2a" datatype="html">
<source> Effortlessly track, analyze, and visualize your wealth with Ghostfolio. </source> <source> Effortlessly track, analyze, and visualize your wealth with Ghostfolio. </source>
<target state="new"> Effortlessly track, analyze, and visualize your wealth with Ghostfolio. </target> <target state="translated"> Fes un seguiment, analitza i visualitza el teu patrimoni sense esforç amb Ghostfolio. </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">328</context> <context context-type="linenumber">328</context>
@ -5454,7 +5454,7 @@
</trans-unit> </trans-unit>
<trans-unit id="968ab39db7fbb2621ba4536940768e6b6ee9c71f" datatype="html"> <trans-unit id="968ab39db7fbb2621ba4536940768e6b6ee9c71f" datatype="html">
<source> Get Started </source> <source> Get Started </source>
<target state="new"> Get Started </target> <target state="translated"> Comença </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">333</context> <context context-type="linenumber">333</context>
@ -5462,7 +5462,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2a9166b3eef0128afb3981b4eeed6e087414adbd" datatype="html"> <trans-unit id="2a9166b3eef0128afb3981b4eeed6e087414adbd" datatype="html">
<source>Personal Finance Tools</source> <source>Personal Finance Tools</source>
<target state="new">Personal Finance Tools</target> <target state="translated">Eines de finances personals</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">351</context> <context context-type="linenumber">351</context>
@ -5470,7 +5470,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2446117790692479672" datatype="html"> <trans-unit id="2446117790692479672" datatype="html">
<source>Resources</source> <source>Resources</source>
<target state="new">Resources</target> <target state="translated">Recursos</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context> <context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
<context context-type="linenumber">332</context> <context context-type="linenumber">332</context>
@ -5478,7 +5478,7 @@
</trans-unit> </trans-unit>
<trans-unit id="464e2dd48454ce55302532bf14e73bb0650480ac" datatype="html"> <trans-unit id="464e2dd48454ce55302532bf14e73bb0650480ac" datatype="html">
<source>Guides</source> <source>Guides</source>
<target state="new">Guides</target> <target state="translated">Guies</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/guides/resources-guides.component.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/guides/resources-guides.component.html</context>
<context context-type="linenumber">4</context> <context context-type="linenumber">4</context>
@ -5486,7 +5486,7 @@
</trans-unit> </trans-unit>
<trans-unit id="6edd1a650db2af580ebe746813024c45f1d854b1" datatype="html"> <trans-unit id="6edd1a650db2af580ebe746813024c45f1d854b1" datatype="html">
<source>Glossary</source> <source>Glossary</source>
<target state="new">Glossary</target> <target state="translated">Glossari</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/glossary/resources-glossary.component.html</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/glossary/resources-glossary.component.html</context>
<context context-type="linenumber">4</context> <context context-type="linenumber">4</context>
@ -5494,7 +5494,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3737711445155929474" datatype="html"> <trans-unit id="3737711445155929474" datatype="html">
<source>Membership</source> <source>Membership</source>
<target state="new">Membership</target> <target state="translated">Pertinença</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context> <context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
<context context-type="linenumber">31</context> <context context-type="linenumber">31</context>
@ -5502,7 +5502,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5278627882107105833" datatype="html"> <trans-unit id="5278627882107105833" datatype="html">
<source>Access</source> <source>Access</source>
<target state="new">Access</target> <target state="translated">Access</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context> <context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
<context context-type="linenumber">26</context> <context context-type="linenumber">26</context>
@ -5510,10 +5510,10 @@
</trans-unit> </trans-unit>
<trans-unit id="3453373677180899990" datatype="html"> <trans-unit id="3453373677180899990" datatype="html">
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="new">My Ghostfolio</target> <target state="translated">El meu Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html"> <trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html">
@ -5646,7 +5646,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3105754554141014845" datatype="html"> <trans-unit id="3105754554141014845" datatype="html">
<source>Week to date</source> <source>Week to date</source>
<target state="new">Week to date</target> <target state="translated">Setmana fins avui</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context>
<context context-type="linenumber">354</context> <context context-type="linenumber">354</context>
@ -5654,7 +5654,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7451343426685730864" datatype="html"> <trans-unit id="7451343426685730864" datatype="html">
<source>WTD</source> <source>WTD</source>
<target state="new">WTD</target> <target state="translated">WTD</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context>
<context context-type="linenumber">354</context> <context context-type="linenumber">354</context>
@ -5662,7 +5662,7 @@
</trans-unit> </trans-unit>
<trans-unit id="358501326846847310" datatype="html"> <trans-unit id="358501326846847310" datatype="html">
<source>Month to date</source> <source>Month to date</source>
<target state="new">Month to date</target> <target state="translated">Mes fins a la data</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context>
<context context-type="linenumber">358</context> <context context-type="linenumber">358</context>
@ -5670,7 +5670,7 @@
</trans-unit> </trans-unit>
<trans-unit id="399380803601269035" datatype="html"> <trans-unit id="399380803601269035" datatype="html">
<source>MTD</source> <source>MTD</source>
<target state="new">MTD</target> <target state="translated">MTD</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context>
<context context-type="linenumber">358</context> <context context-type="linenumber">358</context>
@ -5678,7 +5678,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2593751087640318641" datatype="html"> <trans-unit id="2593751087640318641" datatype="html">
<source>Year to date</source> <source>Year to date</source>
<target state="new">Year to date</target> <target state="translated">Any fins a la data</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context>
<context context-type="linenumber">362</context> <context context-type="linenumber">362</context>
@ -5686,7 +5686,7 @@
</trans-unit> </trans-unit>
<trans-unit id="6479044529603381727" datatype="html"> <trans-unit id="6479044529603381727" datatype="html">
<source>year</source> <source>year</source>
<target state="new">year</target> <target state="translated">any</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context>
<context context-type="linenumber">372</context> <context context-type="linenumber">372</context>
@ -5694,7 +5694,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7658073495909471632" datatype="html"> <trans-unit id="7658073495909471632" datatype="html">
<source>years</source> <source>years</source>
<target state="new">years</target> <target state="translated">anys</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context>
<context context-type="linenumber">397</context> <context context-type="linenumber">397</context>
@ -5702,7 +5702,7 @@
</trans-unit> </trans-unit>
<trans-unit id="db287ecf48f50d8a83c1dbdcee6282723b4cd9ad" datatype="html"> <trans-unit id="db287ecf48f50d8a83c1dbdcee6282723b4cd9ad" datatype="html">
<source>Asset Profiles</source> <source>Asset Profiles</source>
<target state="new">Asset Profiles</target> <target state="translated">Perfils d’actius</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-settings/admin-settings.component.html</context> <context context-type="sourcefile">apps/client/src/app/components/admin-settings/admin-settings.component.html</context>
<context context-type="linenumber">106</context> <context context-type="linenumber">106</context>
@ -5710,7 +5710,7 @@
</trans-unit> </trans-unit>
<trans-unit id="14c9ea2fbedf3057aac46aa68312770460312107" datatype="html"> <trans-unit id="14c9ea2fbedf3057aac46aa68312770460312107" datatype="html">
<source>Date Range</source> <source>Date Range</source>
<target state="new">Date Range</target> <target state="translated">Interval de dates</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.html</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.html</context>
<context context-type="linenumber">130</context> <context context-type="linenumber">130</context>
@ -5718,7 +5718,7 @@
</trans-unit> </trans-unit>
<trans-unit id="327159ba32f365c6c3ffc8507308808dd149394e" datatype="html"> <trans-unit id="327159ba32f365c6c3ffc8507308808dd149394e" datatype="html">
<source> Reset Filters </source> <source> Reset Filters </source>
<target state="new"> Reset Filters </target> <target state="translated"> Restableix els filtres </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.html</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.html</context>
<context context-type="linenumber">224</context> <context context-type="linenumber">224</context>
@ -5726,7 +5726,7 @@
</trans-unit> </trans-unit>
<trans-unit id="73864299814955e733ade6e3e7204548b7b9adae" datatype="html"> <trans-unit id="73864299814955e733ade6e3e7204548b7b9adae" datatype="html">
<source> Apply Filters </source> <source> Apply Filters </source>
<target state="new"> Apply Filters </target> <target state="translated"> Aplicar filtres </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.html</context> <context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.html</context>
<context context-type="linenumber">234</context> <context context-type="linenumber">234</context>
@ -6009,7 +6009,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6333857424161463201" datatype="html"> <trans-unit id="6333857424161463201" datatype="html">
@ -6317,11 +6317,11 @@
<target state="new">No data available</target> <target state="new">No data available</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -7059,7 +7059,7 @@
<target state="new">Could not generate an API key</target> <target state="new">Could not generate an API key</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7067,7 +7067,7 @@
<target state="new">Set this API key in your self-hosted environment:</target> <target state="new">Set this API key in your self-hosted environment:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7075,7 +7075,7 @@
<target state="new">Ghostfolio Premium Data Provider API Key</target> <target state="new">Ghostfolio Premium Data Provider API Key</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7083,7 +7083,7 @@
<target state="new">Do you really want to generate a new API key?</target> <target state="new">Do you really want to generate a new API key?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7147,7 +7147,7 @@
<target state="new">Me</target> <target state="new">Me</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7387,7 +7387,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8008,7 +8008,7 @@
<target state="new">Do you really want to generate a new security token?</target> <target state="new">Do you really want to generate a new security token?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8047,6 +8047,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

58
apps/client/src/locales/messages.de.xlf

@ -1046,11 +1046,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -1370,7 +1370,7 @@
<target state="translated">Datenfehler melden</target> <target state="translated">Datenfehler melden</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html"> <trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html">
@ -1474,7 +1474,7 @@
<target state="translated">Okay</target> <target state="translated">Okay</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -1641,8 +1641,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">Mein Ghostfolio</target> <target state="translated">Mein Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1257540657265073416" datatype="html"> <trans-unit id="1257540657265073416" datatype="html">
@ -1650,7 +1650,7 @@
<target state="translated">Bitte gebe deinen Gutscheincode ein.</target> <target state="translated">Bitte gebe deinen Gutscheincode ein.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -1658,7 +1658,7 @@
<target state="translated">Gutscheincode konnte nicht eingelöst werden</target> <target state="translated">Gutscheincode konnte nicht eingelöst werden</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -1666,7 +1666,7 @@
<target state="translated">Gutscheincode wurde eingelöst</target> <target state="translated">Gutscheincode wurde eingelöst</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -1674,7 +1674,7 @@
<target state="translated">Neu laden</target> <target state="translated">Neu laden</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -1682,7 +1682,7 @@
<target state="translated">Möchtest du diese Anmeldemethode wirklich löschen?</target> <target state="translated">Möchtest du diese Anmeldemethode wirklich löschen?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html"> <trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
@ -2906,7 +2906,7 @@
<target state="translated">Automatisch</target> <target state="translated">Automatisch</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html"> <trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
@ -3110,7 +3110,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4893616715766810081" datatype="html"> <trans-unit id="4893616715766810081" datatype="html">
@ -3118,11 +3118,11 @@
<target state="translated">Keine Daten verfügbar</target> <target state="translated">Keine Daten verfügbar</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1228771048078164312" datatype="html"> <trans-unit id="1228771048078164312" datatype="html">
@ -5716,7 +5716,7 @@
<target state="translated">Ups, der Cash-Bestand Transfer ist fehlgeschlagen.</target> <target state="translated">Ups, der Cash-Bestand Transfer ist fehlgeschlagen.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1189482335778578193" datatype="html"> <trans-unit id="1189482335778578193" datatype="html">
@ -6241,7 +6241,7 @@
<target state="translated">Möchtest du dieses Ghostfolio Konto wirklich schliessen?</target> <target state="translated">Möchtest du dieses Ghostfolio Konto wirklich schliessen?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -6289,7 +6289,7 @@
<target state="translated">Ups! Beim Einrichten der biometrischen Authentifizierung ist ein Fehler aufgetreten.</target> <target state="translated">Ups! Beim Einrichten der biometrischen Authentifizierung ist ein Fehler aufgetreten.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -7083,7 +7083,7 @@
<target state="translated">API-Schlüssel konnte nicht erstellt werden</target> <target state="translated">API-Schlüssel konnte nicht erstellt werden</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7091,7 +7091,7 @@
<target state="translated">Setze diesen API-Schlüssel in deiner selbst gehosteten Umgebung:</target> <target state="translated">Setze diesen API-Schlüssel in deiner selbst gehosteten Umgebung:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7099,7 +7099,7 @@
<target state="translated">API-Schlüssel für den Ghostfolio Premium Datenanbieter</target> <target state="translated">API-Schlüssel für den Ghostfolio Premium Datenanbieter</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7107,7 +7107,7 @@
<target state="translated">Möchtest du wirklich einen neuen API-Schlüssel erstellen?</target> <target state="translated">Möchtest du wirklich einen neuen API-Schlüssel erstellen?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7171,7 +7171,7 @@
<target state="translated">Ich</target> <target state="translated">Ich</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7411,7 +7411,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8008,7 +8008,7 @@
<target state="translated">Möchtest du wirklich ein neues Sicherheits-Token generieren?</target> <target state="translated">Möchtest du wirklich ein neues Sicherheits-Token generieren?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8047,6 +8047,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="translated">Anlageprofil verwalten</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

112
apps/client/src/locales/messages.es.xlf

@ -1031,11 +1031,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -1355,7 +1355,7 @@
<target state="translated">Reporta un anomalía de los datos</target> <target state="translated">Reporta un anomalía de los datos</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html"> <trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html">
@ -1459,7 +1459,7 @@
<target state="translated">De acuerdo</target> <target state="translated">De acuerdo</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -1626,8 +1626,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">Mi Ghostfolio</target> <target state="translated">Mi Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1257540657265073416" datatype="html"> <trans-unit id="1257540657265073416" datatype="html">
@ -1635,7 +1635,7 @@
<target state="translated">Por favor, ingresa tu código de cupón:</target> <target state="translated">Por favor, ingresa tu código de cupón:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -1643,7 +1643,7 @@
<target state="translated">No se puede canjear este código de cupón</target> <target state="translated">No se puede canjear este código de cupón</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -1651,7 +1651,7 @@
<target state="translated">El codigo de cupón ha sido canjeado</target> <target state="translated">El codigo de cupón ha sido canjeado</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -1659,7 +1659,7 @@
<target state="translated">Refrescar</target> <target state="translated">Refrescar</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -1667,7 +1667,7 @@
<target state="translated">¿Estás seguro de eliminar este método de acceso?</target> <target state="translated">¿Estás seguro de eliminar este método de acceso?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html"> <trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
@ -2891,7 +2891,7 @@
<target state="translated">Automático</target> <target state="translated">Automático</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html"> <trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
@ -3095,7 +3095,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4893616715766810081" datatype="html"> <trans-unit id="4893616715766810081" datatype="html">
@ -3103,11 +3103,11 @@
<target state="translated">Sin datos disponibles</target> <target state="translated">Sin datos disponibles</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1228771048078164312" datatype="html"> <trans-unit id="1228771048078164312" datatype="html">
@ -5693,7 +5693,7 @@
<target state="translated">Oops, el saldo de efectivo no se ha transferido.</target> <target state="translated">Oops, el saldo de efectivo no se ha transferido.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1189482335778578193" datatype="html"> <trans-unit id="1189482335778578193" datatype="html">
@ -6218,7 +6218,7 @@
<target state="translated">¿Estás seguro de querer borrar tu cuenta de Ghostfolio?</target> <target state="translated">¿Estás seguro de querer borrar tu cuenta de Ghostfolio?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -6266,7 +6266,7 @@
<target state="translated">¡Ups! Hubo un error al configurar la autenticación biométrica.</target> <target state="translated">¡Ups! Hubo un error al configurar la autenticación biométrica.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -6279,7 +6279,7 @@
</trans-unit> </trans-unit>
<trans-unit id="829826868886560502" datatype="html"> <trans-unit id="829826868886560502" datatype="html">
<source>Benchmarks</source> <source>Benchmarks</source>
<target state="new">Benchmarks</target> <target state="translated">Puntos de referencia</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
<context context-type="linenumber">91</context> <context context-type="linenumber">91</context>
@ -6303,7 +6303,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8127349194179456616" datatype="html"> <trans-unit id="8127349194179456616" datatype="html">
<source>Oops! Could not delete profiles.</source> <source>Oops! Could not delete profiles.</source>
<target state="new">Oops! Could not delete profiles.</target> <target state="translated">¡Ups! No se pudieron eliminar los perfiles.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.service.ts</context> <context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.service.ts</context>
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
@ -6327,7 +6327,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html"> <trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/>? </source> <source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/>? </source>
<target state="new"> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/>? </target> <target state="translated">¿Te gustaría <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>refinar<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> tu <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>estrategia de inversión personal<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/>?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
<context context-type="linenumber">211</context> <context context-type="linenumber">211</context>
@ -6335,7 +6335,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4455104386790567151" datatype="html"> <trans-unit id="4455104386790567151" datatype="html">
<source>Alternative</source> <source>Alternative</source>
<target state="new">Alternative</target> <target state="translated">Alternativa</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">80</context> <context context-type="linenumber">80</context>
@ -6343,7 +6343,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2818570902941667477" datatype="html"> <trans-unit id="2818570902941667477" datatype="html">
<source>App</source> <source>App</source>
<target state="new">App</target> <target state="translated">Aplicación</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">81</context> <context context-type="linenumber">81</context>
@ -6351,7 +6351,7 @@
</trans-unit> </trans-unit>
<trans-unit id="647668541461749965" datatype="html"> <trans-unit id="647668541461749965" datatype="html">
<source>Budgeting</source> <source>Budgeting</source>
<target state="new">Budgeting</target> <target state="translated">Presupuestación</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">82</context> <context context-type="linenumber">82</context>
@ -6359,7 +6359,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1274247756500564795" datatype="html"> <trans-unit id="1274247756500564795" datatype="html">
<source>Community</source> <source>Community</source>
<target state="new">Community</target> <target state="translated">Comunidad</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">83</context> <context context-type="linenumber">83</context>
@ -6367,7 +6367,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4622218074144052433" datatype="html"> <trans-unit id="4622218074144052433" datatype="html">
<source>Family Office</source> <source>Family Office</source>
<target state="new">Family Office</target> <target state="translated">Family Office</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">84</context> <context context-type="linenumber">84</context>
@ -6375,7 +6375,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3178143531053451735" datatype="html"> <trans-unit id="3178143531053451735" datatype="html">
<source>Investor</source> <source>Investor</source>
<target state="new">Investor</target> <target state="translated">Inversor</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">87</context> <context context-type="linenumber">87</context>
@ -6383,7 +6383,7 @@
</trans-unit> </trans-unit>
<trans-unit id="6984983607470794786" datatype="html"> <trans-unit id="6984983607470794786" datatype="html">
<source>Open Source</source> <source>Open Source</source>
<target state="new">Open Source</target> <target state="translated">Código abierto</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">88</context> <context context-type="linenumber">88</context>
@ -6391,7 +6391,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4852914940817689575" datatype="html"> <trans-unit id="4852914940817689575" datatype="html">
<source>Personal Finance</source> <source>Personal Finance</source>
<target state="new">Personal Finance</target> <target state="translated">Finanzas personales</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">90</context> <context context-type="linenumber">90</context>
@ -6399,7 +6399,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8440128775129354214" datatype="html"> <trans-unit id="8440128775129354214" datatype="html">
<source>Privacy</source> <source>Privacy</source>
<target state="new">Privacy</target> <target state="translated">Privacidad</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">91</context> <context context-type="linenumber">91</context>
@ -6407,7 +6407,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5093701986340458388" datatype="html"> <trans-unit id="5093701986340458388" datatype="html">
<source>Software</source> <source>Software</source>
<target state="new">Software</target> <target state="translated">Software</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">93</context> <context context-type="linenumber">93</context>
@ -6415,7 +6415,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2932360890997178383" datatype="html"> <trans-unit id="2932360890997178383" datatype="html">
<source>Tool</source> <source>Tool</source>
<target state="new">Tool</target> <target state="translated">Herramienta</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">94</context> <context context-type="linenumber">94</context>
@ -6423,7 +6423,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2657610384052021428" datatype="html"> <trans-unit id="2657610384052021428" datatype="html">
<source>User Experience</source> <source>User Experience</source>
<target state="new">User Experience</target> <target state="translated">Experiencia del usuario</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">95</context> <context context-type="linenumber">95</context>
@ -6431,7 +6431,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1099393285611854080" datatype="html"> <trans-unit id="1099393285611854080" datatype="html">
<source>Wealth</source> <source>Wealth</source>
<target state="new">Wealth</target> <target state="translated">Riqueza</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">96</context>
@ -6439,7 +6439,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3311387105238837884" datatype="html"> <trans-unit id="3311387105238837884" datatype="html">
<source>Wealth Management</source> <source>Wealth Management</source>
<target state="new">Wealth Management</target> <target state="translated">Gestión de patrimonios</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts</context>
<context context-type="linenumber">97</context> <context context-type="linenumber">97</context>
@ -6447,7 +6447,7 @@
</trans-unit> </trans-unit>
<trans-unit id="797743923912773831" datatype="html"> <trans-unit id="797743923912773831" datatype="html">
<source>Australia</source> <source>Australia</source>
<target state="new">Australia</target> <target state="translated">Australia</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">74</context> <context context-type="linenumber">74</context>
@ -6455,7 +6455,7 @@
</trans-unit> </trans-unit>
<trans-unit id="21641575311466062" datatype="html"> <trans-unit id="21641575311466062" datatype="html">
<source>Austria</source> <source>Austria</source>
<target state="new">Austria</target> <target state="translated">Austria</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">75</context> <context context-type="linenumber">75</context>
@ -6463,7 +6463,7 @@
</trans-unit> </trans-unit>
<trans-unit id="6787546539374733271" datatype="html"> <trans-unit id="6787546539374733271" datatype="html">
<source>Belgium</source> <source>Belgium</source>
<target state="new">Belgium</target> <target state="translated">Bélgica</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">76</context> <context context-type="linenumber">76</context>
@ -6471,7 +6471,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8273479446468988017" datatype="html"> <trans-unit id="8273479446468988017" datatype="html">
<source>Bulgaria</source> <source>Bulgaria</source>
<target state="new">Bulgaria</target> <target state="translated">Bulgaria</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">78</context> <context context-type="linenumber">78</context>
@ -6479,7 +6479,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3486679398271885916" datatype="html"> <trans-unit id="3486679398271885916" datatype="html">
<source>Canada</source> <source>Canada</source>
<target state="new">Canada</target> <target state="translated">Canadá</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">79</context> <context context-type="linenumber">79</context>
@ -6487,7 +6487,7 @@
</trans-unit> </trans-unit>
<trans-unit id="724957661944599897" datatype="html"> <trans-unit id="724957661944599897" datatype="html">
<source>Czech Republic</source> <source>Czech Republic</source>
<target state="new">Czech Republic</target> <target state="translated">República Checa</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">80</context> <context context-type="linenumber">80</context>
@ -6495,7 +6495,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8812557643580169825" datatype="html"> <trans-unit id="8812557643580169825" datatype="html">
<source>Finland</source> <source>Finland</source>
<target state="new">Finland</target> <target state="translated">Finlandia</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">81</context> <context context-type="linenumber">81</context>
@ -6503,7 +6503,7 @@
</trans-unit> </trans-unit>
<trans-unit id="956678847762152494" datatype="html"> <trans-unit id="956678847762152494" datatype="html">
<source>France</source> <source>France</source>
<target state="new">France</target> <target state="translated">Francia</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">82</context> <context context-type="linenumber">82</context>
@ -6511,7 +6511,7 @@
</trans-unit> </trans-unit>
<trans-unit id="6014862663057951430" datatype="html"> <trans-unit id="6014862663057951430" datatype="html">
<source>Germany</source> <source>Germany</source>
<target state="new">Germany</target> <target state="translated">Alemania</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">83</context> <context context-type="linenumber">83</context>
@ -6519,7 +6519,7 @@
</trans-unit> </trans-unit>
<trans-unit id="212820117866187249" datatype="html"> <trans-unit id="212820117866187249" datatype="html">
<source>India</source> <source>India</source>
<target state="new">India</target> <target state="translated">India</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">84</context> <context context-type="linenumber">84</context>
@ -7060,7 +7060,7 @@
<target state="new">Could not generate an API key</target> <target state="new">Could not generate an API key</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7068,7 +7068,7 @@
<target state="new">Set this API key in your self-hosted environment:</target> <target state="new">Set this API key in your self-hosted environment:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7076,7 +7076,7 @@
<target state="new">Ghostfolio Premium Data Provider API Key</target> <target state="new">Ghostfolio Premium Data Provider API Key</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7084,7 +7084,7 @@
<target state="new">Do you really want to generate a new API key?</target> <target state="new">Do you really want to generate a new API key?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7148,7 +7148,7 @@
<target state="new">Me</target> <target state="new">Me</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7388,7 +7388,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8009,7 +8009,7 @@
<target state="new">Do you really want to generate a new security token?</target> <target state="new">Do you really want to generate a new security token?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8048,6 +8048,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

58
apps/client/src/locales/messages.fr.xlf

@ -1342,11 +1342,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -1706,7 +1706,7 @@
<target state="translated">Signaler une Erreur de Données</target> <target state="translated">Signaler une Erreur de Données</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6048892649018070225" datatype="html"> <trans-unit id="6048892649018070225" datatype="html">
@ -1810,7 +1810,7 @@
<target state="translated">D’accord</target> <target state="translated">D’accord</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -1881,8 +1881,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">Mon Ghostfolio</target> <target state="translated">Mon Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="616064537937996961" datatype="html"> <trans-unit id="616064537937996961" datatype="html">
@ -1890,7 +1890,7 @@
<target state="translated">Auto</target> <target state="translated">Auto</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1257540657265073416" datatype="html"> <trans-unit id="1257540657265073416" datatype="html">
@ -1898,7 +1898,7 @@
<target state="translated">Veuillez entrer votre code promotionnel.</target> <target state="translated">Veuillez entrer votre code promotionnel.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -1906,7 +1906,7 @@
<target state="translated">Le code promotionnel n’a pas pu être appliqué</target> <target state="translated">Le code promotionnel n’a pas pu être appliqué</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -1914,7 +1914,7 @@
<target state="translated">Le code promotionnel a été appliqué</target> <target state="translated">Le code promotionnel a été appliqué</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -1922,7 +1922,7 @@
<target state="translated">Rafraîchir</target> <target state="translated">Rafraîchir</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -1930,7 +1930,7 @@
<target state="translated">Voulez-vous vraiment supprimer cette méthode de connexion ?</target> <target state="translated">Voulez-vous vraiment supprimer cette méthode de connexion ?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html"> <trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
@ -3154,7 +3154,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="8106025670158480144" datatype="html"> <trans-unit id="8106025670158480144" datatype="html">
@ -3330,11 +3330,11 @@
<target state="translated">Pas de données disponibles</target> <target state="translated">Pas de données disponibles</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="0f845001c88b82c18535e6d44f5597061f506e42" datatype="html"> <trans-unit id="0f845001c88b82c18535e6d44f5597061f506e42" datatype="html">
@ -5692,7 +5692,7 @@
<target state="translated">Oops, échec du transfert de la cash balance.</target> <target state="translated">Oops, échec du transfert de la cash balance.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1189482335778578193" datatype="html"> <trans-unit id="1189482335778578193" datatype="html">
@ -6217,7 +6217,7 @@
<target state="translated">Confirmer la suppresion de votre compte Ghostfolio ?</target> <target state="translated">Confirmer la suppresion de votre compte Ghostfolio ?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -6265,7 +6265,7 @@
<target state="translated">Oops! Une erreur s’est produite lors de la configuration de l’authentification biométrique.</target> <target state="translated">Oops! Une erreur s’est produite lors de la configuration de l’authentification biométrique.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -7059,7 +7059,7 @@
<target state="translated">Impossible de générer une clé API</target> <target state="translated">Impossible de générer une clé API</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7067,7 +7067,7 @@
<target state="translated">Définissez cette clé API dans votre environnement auto-hébergé :</target> <target state="translated">Définissez cette clé API dans votre environnement auto-hébergé :</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7075,7 +7075,7 @@
<target state="translated">Clé API du fournisseur de données Ghostfolio Premium</target> <target state="translated">Clé API du fournisseur de données Ghostfolio Premium</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7083,7 +7083,7 @@
<target state="translated">Voulez-vous vraiment générer une nouvelle clé API ?</target> <target state="translated">Voulez-vous vraiment générer une nouvelle clé API ?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7147,7 +7147,7 @@
<target state="translated">Moi</target> <target state="translated">Moi</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7387,7 +7387,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8008,7 +8008,7 @@
<target state="new">Do you really want to generate a new security token?</target> <target state="new">Do you really want to generate a new security token?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8047,6 +8047,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

58
apps/client/src/locales/messages.it.xlf

@ -1031,11 +1031,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -1355,7 +1355,7 @@
<target state="translated">Segnala un’anomalia dei dati</target> <target state="translated">Segnala un’anomalia dei dati</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html"> <trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html">
@ -1459,7 +1459,7 @@
<target state="translated">Bene</target> <target state="translated">Bene</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -1626,8 +1626,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">Il mio Ghostfolio</target> <target state="translated">Il mio Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1257540657265073416" datatype="html"> <trans-unit id="1257540657265073416" datatype="html">
@ -1635,7 +1635,7 @@
<target state="translated">Inserisci il tuo codice del buono:</target> <target state="translated">Inserisci il tuo codice del buono:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -1643,7 +1643,7 @@
<target state="translated">Impossibile riscattare il codice del buono</target> <target state="translated">Impossibile riscattare il codice del buono</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -1651,7 +1651,7 @@
<target state="translated">Il codice del buono è stato riscattato</target> <target state="translated">Il codice del buono è stato riscattato</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -1659,7 +1659,7 @@
<target state="translated">Ricarica</target> <target state="translated">Ricarica</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -1667,7 +1667,7 @@
<target state="translated">Vuoi davvero rimuovere questo metodo di accesso?</target> <target state="translated">Vuoi davvero rimuovere questo metodo di accesso?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html"> <trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
@ -2891,7 +2891,7 @@
<target state="translated">Auto</target> <target state="translated">Auto</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html"> <trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
@ -3095,7 +3095,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4893616715766810081" datatype="html"> <trans-unit id="4893616715766810081" datatype="html">
@ -3103,11 +3103,11 @@
<target state="translated">Nessun dato disponibile</target> <target state="translated">Nessun dato disponibile</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1228771048078164312" datatype="html"> <trans-unit id="1228771048078164312" datatype="html">
@ -5693,7 +5693,7 @@
<target state="translated">Ops, il trasferimento del saldo di cassa è fallito.</target> <target state="translated">Ops, il trasferimento del saldo di cassa è fallito.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1189482335778578193" datatype="html"> <trans-unit id="1189482335778578193" datatype="html">
@ -6218,7 +6218,7 @@
<target state="translated">Confermi di voler chiudere il tuo account Ghostfolio?</target> <target state="translated">Confermi di voler chiudere il tuo account Ghostfolio?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -6266,7 +6266,7 @@
<target state="translated">Ops! C’è stato un errore impostando l’autenticazione biometrica.</target> <target state="translated">Ops! C’è stato un errore impostando l’autenticazione biometrica.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -7060,7 +7060,7 @@
<target state="translated">Non è stato possibile generare un API key</target> <target state="translated">Non è stato possibile generare un API key</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7068,7 +7068,7 @@
<target state="translated">Imposta questa API key nel tuo ambiente self-hosted:</target> <target state="translated">Imposta questa API key nel tuo ambiente self-hosted:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7076,7 +7076,7 @@
<target state="translated">API Key for Ghostfolio Premium Data Provider</target> <target state="translated">API Key for Ghostfolio Premium Data Provider</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7084,7 +7084,7 @@
<target state="translated">Vuoi davvero generare una nuova API key?</target> <target state="translated">Vuoi davvero generare una nuova API key?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7148,7 +7148,7 @@
<target state="translated">Me</target> <target state="translated">Me</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7388,7 +7388,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8009,7 +8009,7 @@
<target state="new">Do you really want to generate a new security token?</target> <target state="new">Do you really want to generate a new security token?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8048,6 +8048,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

58
apps/client/src/locales/messages.nl.xlf

@ -1030,11 +1030,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -1354,7 +1354,7 @@
<target state="translated">Gegevensstoring melden</target> <target state="translated">Gegevensstoring melden</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html"> <trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html">
@ -1458,7 +1458,7 @@
<target state="translated">Oké</target> <target state="translated">Oké</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -1625,8 +1625,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">Mijn Ghostfolio</target> <target state="translated">Mijn Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1257540657265073416" datatype="html"> <trans-unit id="1257540657265073416" datatype="html">
@ -1634,7 +1634,7 @@
<target state="translated">Voer je couponcode in:</target> <target state="translated">Voer je couponcode in:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -1642,7 +1642,7 @@
<target state="translated">Kon je kortingscode niet inwisselen</target> <target state="translated">Kon je kortingscode niet inwisselen</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -1650,7 +1650,7 @@
<target state="translated">Je couponcode is ingewisseld</target> <target state="translated">Je couponcode is ingewisseld</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -1658,7 +1658,7 @@
<target state="translated">Herladen</target> <target state="translated">Herladen</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -1666,7 +1666,7 @@
<target state="translated">Wil je deze aanmeldingsmethode echt verwijderen?</target> <target state="translated">Wil je deze aanmeldingsmethode echt verwijderen?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html"> <trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
@ -2890,7 +2890,7 @@
<target state="translated">Automatisch</target> <target state="translated">Automatisch</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html"> <trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
@ -3094,7 +3094,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4893616715766810081" datatype="html"> <trans-unit id="4893616715766810081" datatype="html">
@ -3102,11 +3102,11 @@
<target state="translated">Geen gegevens beschikbaar</target> <target state="translated">Geen gegevens beschikbaar</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1228771048078164312" datatype="html"> <trans-unit id="1228771048078164312" datatype="html">
@ -5692,7 +5692,7 @@
<target state="translated">Oeps, geldoverdracht is mislukt.</target> <target state="translated">Oeps, geldoverdracht is mislukt.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1189482335778578193" datatype="html"> <trans-unit id="1189482335778578193" datatype="html">
@ -6217,7 +6217,7 @@
<target state="translated">Wilt u uw Ghostfolio account echt sluiten?</target> <target state="translated">Wilt u uw Ghostfolio account echt sluiten?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -6265,7 +6265,7 @@
<target state="translated">Oeps! Er is een fout opgetreden met het instellen van de biometrische authenticatie.</target> <target state="translated">Oeps! Er is een fout opgetreden met het instellen van de biometrische authenticatie.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -7059,7 +7059,7 @@
<target state="translated">Er kon geen API-sleutel worden gegenereerd</target> <target state="translated">Er kon geen API-sleutel worden gegenereerd</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7067,7 +7067,7 @@
<target state="translated">Stel deze API-sleutel in uw zelf-gehoste omgeving in:</target> <target state="translated">Stel deze API-sleutel in uw zelf-gehoste omgeving in:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7075,7 +7075,7 @@
<target state="translated">Ghostfolio Premium Gegevensleverancier API-sleutel</target> <target state="translated">Ghostfolio Premium Gegevensleverancier API-sleutel</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7083,7 +7083,7 @@
<target state="translated">Wilt u echt een nieuwe API-sleutel genereren?</target> <target state="translated">Wilt u echt een nieuwe API-sleutel genereren?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7147,7 +7147,7 @@
<target state="translated">Ik</target> <target state="translated">Ik</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7387,7 +7387,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8008,7 +8008,7 @@
<target state="translated">Wilt u echt een nieuwe securitytoken genereren?</target> <target state="translated">Wilt u echt een nieuwe securitytoken genereren?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8047,6 +8047,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

58
apps/client/src/locales/messages.pl.xlf

@ -2015,11 +2015,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -2515,7 +2515,7 @@
<target state="translated">Zgłoś Błąd Danych</target> <target state="translated">Zgłoś Błąd Danych</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html"> <trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
@ -2759,7 +2759,7 @@
<target state="translated">Wpisz kod kuponu:</target> <target state="translated">Wpisz kod kuponu:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -2767,7 +2767,7 @@
<target state="translated">Nie udało się zrealizować kodu kuponu</target> <target state="translated">Nie udało się zrealizować kodu kuponu</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -2775,7 +2775,7 @@
<target state="translated">Kupon został zrealizowany</target> <target state="translated">Kupon został zrealizowany</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -2783,7 +2783,7 @@
<target state="translated">Odśwież</target> <target state="translated">Odśwież</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html"> <trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html">
@ -2819,7 +2819,7 @@
<target state="translated">Auto</target> <target state="translated">Auto</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -2827,7 +2827,7 @@
<target state="translated">Czy na pewno chcesz usunąć tą metode logowania?</target> <target state="translated">Czy na pewno chcesz usunąć tą metode logowania?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html"> <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
@ -3035,7 +3035,7 @@
<target state="translated">Okej</target> <target state="translated">Okej</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -3119,7 +3119,7 @@
<target state="translated">Ups, transfer salda nie powiódł się.</target> <target state="translated">Ups, transfer salda nie powiódł się.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html"> <trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html">
@ -5067,8 +5067,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">Moje Ghostfolio</target> <target state="translated">Moje Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html"> <trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html">
@ -5428,7 +5428,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6333857424161463201" datatype="html"> <trans-unit id="6333857424161463201" datatype="html">
@ -5728,11 +5728,11 @@
<target state="translated">Brak danych</target> <target state="translated">Brak danych</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="d762c43328624b5dd81f3c6a3023203ae9a7553f" datatype="html"> <trans-unit id="d762c43328624b5dd81f3c6a3023203ae9a7553f" datatype="html">
@ -6217,7 +6217,7 @@
<target state="translated">Czy na pewno chcesz zamknąć swoje konto Ghostfolio?</target> <target state="translated">Czy na pewno chcesz zamknąć swoje konto Ghostfolio?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -6265,7 +6265,7 @@
<target state="translated">Ups! Wystąpił błąd podczas konfigurowania uwierzytelniania biometrycznego.</target> <target state="translated">Ups! Wystąpił błąd podczas konfigurowania uwierzytelniania biometrycznego.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -7059,7 +7059,7 @@
<target state="translated">Nie udało się wygenerować klucza API</target> <target state="translated">Nie udało się wygenerować klucza API</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7067,7 +7067,7 @@
<target state="translated">Ustaw ten klucz API w samodzielnie hostowanym środowisku:</target> <target state="translated">Ustaw ten klucz API w samodzielnie hostowanym środowisku:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7075,7 +7075,7 @@
<target state="translated">Klucz API dostawcy danych Premium Ghostfolio</target> <target state="translated">Klucz API dostawcy danych Premium Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7083,7 +7083,7 @@
<target state="translated">Czy na pewno chcesz wygenerować nowy klucz API?</target> <target state="translated">Czy na pewno chcesz wygenerować nowy klucz API?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7147,7 +7147,7 @@
<target state="translated">Ja</target> <target state="translated">Ja</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7387,7 +7387,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8008,7 +8008,7 @@
<target state="new">Do you really want to generate a new security token?</target> <target state="new">Do you really want to generate a new security token?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8047,6 +8047,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

58
apps/client/src/locales/messages.pt.xlf

@ -1214,11 +1214,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -1666,7 +1666,7 @@
<target state="translated">Dados do Relatório com Problema</target> <target state="translated">Dados do Relatório com Problema</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html"> <trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html">
@ -1794,7 +1794,7 @@
<target state="translated">OK</target> <target state="translated">OK</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -1865,8 +1865,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">O meu Ghostfolio</target> <target state="translated">O meu Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="616064537937996961" datatype="html"> <trans-unit id="616064537937996961" datatype="html">
@ -1874,7 +1874,7 @@
<target state="translated">Auto</target> <target state="translated">Auto</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1257540657265073416" datatype="html"> <trans-unit id="1257540657265073416" datatype="html">
@ -1882,7 +1882,7 @@
<target state="translated">Por favor, insira o seu código de cupão:</target> <target state="translated">Por favor, insira o seu código de cupão:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -1890,7 +1890,7 @@
<target state="translated">Não foi possível resgatar o código de cupão</target> <target state="translated">Não foi possível resgatar o código de cupão</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -1898,7 +1898,7 @@
<target state="translated">Código de cupão foi resgatado</target> <target state="translated">Código de cupão foi resgatado</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -1906,7 +1906,7 @@
<target state="translated">Atualizar</target> <target state="translated">Atualizar</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -1914,7 +1914,7 @@
<target state="translated">Deseja realmente remover este método de início de sessão?</target> <target state="translated">Deseja realmente remover este método de início de sessão?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html"> <trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
@ -3002,7 +3002,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="8106025670158480144" datatype="html"> <trans-unit id="8106025670158480144" datatype="html">
@ -3178,11 +3178,11 @@
<target state="translated">Sem dados disponíveis</target> <target state="translated">Sem dados disponíveis</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="064d88bead9e71bd849ecaefd8b38cca8f195a88" datatype="html"> <trans-unit id="064d88bead9e71bd849ecaefd8b38cca8f195a88" datatype="html">
@ -5692,7 +5692,7 @@
<target state="translated">Ops, a transferência do saldo em dinheiro falhou.</target> <target state="translated">Ops, a transferência do saldo em dinheiro falhou.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1189482335778578193" datatype="html"> <trans-unit id="1189482335778578193" datatype="html">
@ -6217,7 +6217,7 @@
<target state="translated">Você realmente deseja encerrar sua conta Ghostfolio?</target> <target state="translated">Você realmente deseja encerrar sua conta Ghostfolio?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -6265,7 +6265,7 @@
<target state="translated">Ops! Ocorreu um erro ao configurar a autenticação biométrica.</target> <target state="translated">Ops! Ocorreu um erro ao configurar a autenticação biométrica.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -7059,7 +7059,7 @@
<target state="new">Could not generate an API key</target> <target state="new">Could not generate an API key</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7067,7 +7067,7 @@
<target state="new">Set this API key in your self-hosted environment:</target> <target state="new">Set this API key in your self-hosted environment:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7075,7 +7075,7 @@
<target state="new">Ghostfolio Premium Data Provider API Key</target> <target state="new">Ghostfolio Premium Data Provider API Key</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7083,7 +7083,7 @@
<target state="new">Do you really want to generate a new API key?</target> <target state="new">Do you really want to generate a new API key?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7147,7 +7147,7 @@
<target state="new">Me</target> <target state="new">Me</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7387,7 +7387,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8008,7 +8008,7 @@
<target state="new">Do you really want to generate a new security token?</target> <target state="new">Do you really want to generate a new security token?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8047,6 +8047,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

58
apps/client/src/locales/messages.tr.xlf

@ -1863,11 +1863,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -2355,7 +2355,7 @@
<target state="translated">Rapor Veri Sorunu</target> <target state="translated">Rapor Veri Sorunu</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html"> <trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
@ -2611,7 +2611,7 @@
<target state="translated">Tamam</target> <target state="translated">Tamam</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -4551,8 +4551,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">Benim Ghostfolio’m</target> <target state="translated">Benim Ghostfolio’m</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="616064537937996961" datatype="html"> <trans-unit id="616064537937996961" datatype="html">
@ -4560,7 +4560,7 @@
<target state="translated">Otomatik</target> <target state="translated">Otomatik</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1257540657265073416" datatype="html"> <trans-unit id="1257540657265073416" datatype="html">
@ -4568,7 +4568,7 @@
<target state="translated">Lütfen kupon kodunuzu girin:</target> <target state="translated">Lütfen kupon kodunuzu girin:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -4576,7 +4576,7 @@
<target state="translated">Kupon kodu kullanılamadı</target> <target state="translated">Kupon kodu kullanılamadı</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -4584,7 +4584,7 @@
<target state="translated">Kupon kodu kullanıldı</target> <target state="translated">Kupon kodu kullanıldı</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -4592,7 +4592,7 @@
<target state="translated">Yeniden Yükle</target> <target state="translated">Yeniden Yükle</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -4600,7 +4600,7 @@
<target state="translated">Bu giriş yöntemini kaldırmayı gerçekten istiyor musunuz?</target> <target state="translated">Bu giriş yöntemini kaldırmayı gerçekten istiyor musunuz?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html"> <trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
@ -5144,7 +5144,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6333857424161463201" datatype="html"> <trans-unit id="6333857424161463201" datatype="html">
@ -5392,11 +5392,11 @@
<target state="translated">Veri mevcut değil</target> <target state="translated">Veri mevcut değil</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1c0638816928ae45284e60504936ca985960df5c" datatype="html"> <trans-unit id="1c0638816928ae45284e60504936ca985960df5c" datatype="html">
@ -5692,7 +5692,7 @@
<target state="translated">Hay Allah, Nakit bakiyesi tranferi başarısız oldu.</target> <target state="translated">Hay Allah, Nakit bakiyesi tranferi başarısız oldu.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1189482335778578193" datatype="html"> <trans-unit id="1189482335778578193" datatype="html">
@ -6217,7 +6217,7 @@
<target state="translated">Ghostfolio hesabınızı kapatmak istediğinize emin misiniz?</target> <target state="translated">Ghostfolio hesabınızı kapatmak istediğinize emin misiniz?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -6265,7 +6265,7 @@
<target state="translated">Oops! Biyometrik kimlik doğrulama ayarlanırken bir hata oluştu.</target> <target state="translated">Oops! Biyometrik kimlik doğrulama ayarlanırken bir hata oluştu.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -7059,7 +7059,7 @@
<target state="translated">API anahtarı oluşturulamadı</target> <target state="translated">API anahtarı oluşturulamadı</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7067,7 +7067,7 @@
<target state="translated">Bu API anahtarını kendi barındırılan ortamınıza ayarlayın:</target> <target state="translated">Bu API anahtarını kendi barındırılan ortamınıza ayarlayın:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7075,7 +7075,7 @@
<target state="translated">Ghostfolio Premium Veri Sağlayıcı API Anahtarı</target> <target state="translated">Ghostfolio Premium Veri Sağlayıcı API Anahtarı</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7083,7 +7083,7 @@
<target state="translated">Yeni bir API anahtarı oluşturmak istediğinize emin misiniz?</target> <target state="translated">Yeni bir API anahtarı oluşturmak istediğinize emin misiniz?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7147,7 +7147,7 @@
<target state="translated">Ben</target> <target state="translated">Ben</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7387,7 +7387,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8008,7 +8008,7 @@
<target state="new">Do you really want to generate a new security token?</target> <target state="new">Do you really want to generate a new security token?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8047,6 +8047,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

58
apps/client/src/locales/messages.uk.xlf

@ -2299,11 +2299,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f3ac156b32df7ac0c3085fcc904ca8d1da12897d" datatype="html"> <trans-unit id="f3ac156b32df7ac0c3085fcc904ca8d1da12897d" datatype="html">
@ -2431,7 +2431,7 @@
<target state="translated">Повідомити про збій даних</target> <target state="translated">Повідомити про збій даних</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="8204176479746810612" datatype="html"> <trans-unit id="8204176479746810612" datatype="html">
@ -3163,7 +3163,7 @@
<target state="translated">Я</target> <target state="translated">Я</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -3187,7 +3187,7 @@
<target state="translated">Не вдалося згенерувати ключ API</target> <target state="translated">Не вдалося згенерувати ключ API</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1579692722565712588" datatype="html"> <trans-unit id="1579692722565712588" datatype="html">
@ -3195,7 +3195,7 @@
<target state="translated">ОК</target> <target state="translated">ОК</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -3211,7 +3211,7 @@
<target state="translated">Встановіть цей ключ API у вашому self-hosted середовищі:</target> <target state="translated">Встановіть цей ключ API у вашому self-hosted середовищі:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -3219,7 +3219,7 @@
<target state="translated">Ключ API Ghostfolio Premium Data Provider</target> <target state="translated">Ключ API Ghostfolio Premium Data Provider</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -3227,7 +3227,7 @@
<target state="translated">Ви дійсно хочете згенерувати новий ключ API?</target> <target state="translated">Ви дійсно хочете згенерувати новий ключ API?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -3235,7 +3235,7 @@
<target state="translated">Не вдалося обміняти код купона</target> <target state="translated">Не вдалося обміняти код купона</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -3243,7 +3243,7 @@
<target state="translated">Код купона був обміняний</target> <target state="translated">Код купона був обміняний</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -3251,7 +3251,7 @@
<target state="translated">Перезавантажити</target> <target state="translated">Перезавантажити</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1257540657265073416" datatype="html"> <trans-unit id="1257540657265073416" datatype="html">
@ -3259,7 +3259,7 @@
<target state="translated">Будь ласка, введіть ваш код купона.</target> <target state="translated">Будь ласка, введіть ваш код купона.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html"> <trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html">
@ -3303,7 +3303,7 @@
<target state="translated">Автоматичний</target> <target state="translated">Автоматичний</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4941836956820527118" datatype="html"> <trans-unit id="4941836956820527118" datatype="html">
@ -3311,7 +3311,7 @@
<target state="translated">Ви дійсно хочете закрити ваш обліковий запис Ghostfolio?</target> <target state="translated">Ви дійсно хочете закрити ваш обліковий запис Ghostfolio?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -3319,7 +3319,7 @@
<target state="translated">Ви дійсно хочете вилучити цей спосіб входу?</target> <target state="translated">Ви дійсно хочете вилучити цей спосіб входу?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="5724720497710437101" datatype="html"> <trans-unit id="5724720497710437101" datatype="html">
@ -3327,7 +3327,7 @@
<target state="translated">Упс! Виникла помилка під час налаштування біометричної автентифікації.</target> <target state="translated">Упс! Виникла помилка під час налаштування біометричної автентифікації.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html"> <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
@ -3631,7 +3631,7 @@
<target state="translated">Упс, перенесення балансу готівки не вдалося.</target> <target state="translated">Упс, перенесення балансу готівки не вдалося.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html"> <trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html">
@ -6126,8 +6126,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">Мій Ghostfolio</target> <target state="translated">Мій Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html"> <trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html">
@ -6663,7 +6663,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6973601224334878334" datatype="html"> <trans-unit id="6973601224334878334" datatype="html">
@ -7151,11 +7151,11 @@
<target state="translated">Дані недоступні</target> <target state="translated">Дані недоступні</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="b225488f8b209e9704760dc9f5d99845a5d07bf6" datatype="html"> <trans-unit id="b225488f8b209e9704760dc9f5d99845a5d07bf6" datatype="html">
@ -7387,7 +7387,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8008,7 +8008,7 @@
<target state="new">Do you really want to generate a new security token?</target> <target state="new">Do you really want to generate a new security token?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8047,6 +8047,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

57
apps/client/src/locales/messages.xlf

@ -1904,11 +1904,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -2356,7 +2356,7 @@
<source>Report Data Glitch</source> <source>Report Data Glitch</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html"> <trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
@ -2580,28 +2580,28 @@
<source>Please enter your coupon code.</source> <source>Please enter your coupon code.</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
<source>Could not redeem coupon code</source> <source>Could not redeem coupon code</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
<source>Coupon code has been redeemed</source> <source>Coupon code has been redeemed</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
<source>Reload</source> <source>Reload</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html"> <trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html">
@ -2633,14 +2633,14 @@
<source>Auto</source> <source>Auto</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
<source>Do you really want to remove this sign in method?</source> <source>Do you really want to remove this sign in method?</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html"> <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
@ -2825,7 +2825,7 @@
<source>Okay</source> <source>Okay</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -2900,7 +2900,7 @@
<source>Oops, cash balance transfer has failed.</source> <source>Oops, cash balance transfer has failed.</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html"> <trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html">
@ -4660,8 +4660,8 @@
<trans-unit id="3453373677180899990" datatype="html"> <trans-unit id="3453373677180899990" datatype="html">
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html"> <trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html">
@ -5001,7 +5001,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6333857424161463201" datatype="html"> <trans-unit id="6333857424161463201" datatype="html">
@ -5264,11 +5264,11 @@
<source>No data available</source> <source>No data available</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="62c28ddba8fedb2ae7b0fff9a641778b59791aa2" datatype="html"> <trans-unit id="62c28ddba8fedb2ae7b0fff9a641778b59791aa2" datatype="html">
@ -5655,7 +5655,7 @@
<source>Do you really want to close your Ghostfolio account?</source> <source>Do you really want to close your Ghostfolio account?</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -5690,7 +5690,7 @@
<source>Oops! There was an error setting up biometric authentication.</source> <source>Oops! There was an error setting up biometric authentication.</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -6408,28 +6408,28 @@
<source>Could not generate an API key</source> <source>Could not generate an API key</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
<source>Do you really want to generate a new API key?</source> <source>Do you really want to generate a new API key?</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
<source>Ghostfolio Premium Data Provider API Key</source> <source>Ghostfolio Premium Data Provider API Key</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
<source>Set this API key in your self-hosted environment:</source> <source>Set this API key in your self-hosted environment:</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="8508033bf4a7ba848a54b1606283d2f38679ede9" datatype="html"> <trans-unit id="8508033bf4a7ba848a54b1606283d2f38679ede9" datatype="html">
@ -6471,7 +6471,7 @@
<source>Me</source> <source>Me</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4068738931505527681" datatype="html"> <trans-unit id="4068738931505527681" datatype="html">
@ -6682,7 +6682,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="bb9188e6fbfd19db7f6ba5433592beaff50da35d" datatype="html"> <trans-unit id="bb9188e6fbfd19db7f6ba5433592beaff50da35d" datatype="html">
@ -7209,7 +7209,7 @@
<source>Do you really want to generate a new security token?</source> <source>Do you really want to generate a new security token?</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1419479195323304896" datatype="html"> <trans-unit id="1419479195323304896" datatype="html">
@ -7235,6 +7235,13 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

58
apps/client/src/locales/messages.zh.xlf

@ -2024,11 +2024,11 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">133</context> <context context-type="linenumber">155</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">163</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html"> <trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
@ -2524,7 +2524,7 @@
<target state="translated">报告数据故障</target> <target state="translated">报告数据故障</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context> <context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">423</context> <context context-type="linenumber">443</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html"> <trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
@ -2768,7 +2768,7 @@
<target state="translated">请输入您的优惠券代码。</target> <target state="translated">请输入您的优惠券代码。</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">202</context> <context context-type="linenumber">215</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4420880039966769543" datatype="html"> <trans-unit id="4420880039966769543" datatype="html">
@ -2776,7 +2776,7 @@
<target state="translated">无法兑换优惠券代码</target> <target state="translated">无法兑换优惠券代码</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">166</context> <context context-type="linenumber">179</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4819099731531004979" datatype="html"> <trans-unit id="4819099731531004979" datatype="html">
@ -2784,7 +2784,7 @@
<target state="translated">优惠券代码已兑换</target> <target state="translated">优惠券代码已兑换</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">179</context> <context context-type="linenumber">192</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7967484035994732534" datatype="html"> <trans-unit id="7967484035994732534" datatype="html">
@ -2792,7 +2792,7 @@
<target state="translated">重新加载</target> <target state="translated">重新加载</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">180</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html"> <trans-unit id="218afa01afa0cfc71b1a6507a3387763ecaa9332" datatype="html">
@ -2828,7 +2828,7 @@
<target state="translated">自动</target> <target state="translated">自动</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">41</context> <context context-type="linenumber">71</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7963559562180316948" datatype="html"> <trans-unit id="7963559562180316948" datatype="html">
@ -2836,7 +2836,7 @@
<target state="translated">您确实要删除此登录方法吗?</target> <target state="translated">您确实要删除此登录方法吗?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">252</context> <context context-type="linenumber">282</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html"> <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
@ -3044,7 +3044,7 @@
<target state="translated">好的</target> <target state="translated">好的</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">154</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context> <context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
@ -3128,7 +3128,7 @@
<target state="translated">糟糕,现金余额转账失败。</target> <target state="translated">糟糕,现金余额转账失败。</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">322</context> <context context-type="linenumber">330</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html"> <trans-unit id="220a4641dcde60d1d86ceec62886b1878f1578d3" datatype="html">
@ -5100,8 +5100,8 @@
<source>My Ghostfolio</source> <source>My Ghostfolio</source>
<target state="translated">我的 Ghostfolio</target> <target state="translated">我的 Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page-routing.module.ts</context> <context context-type="sourcefile">apps/client/src/app/pages/user-account/user-account-page.routes.ts</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">33</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html"> <trans-unit id="495a0574bd9a3d619a8b16dd5b893c6f617beded" datatype="html">
@ -5485,7 +5485,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">400</context> <context context-type="linenumber">411</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6333857424161463201" datatype="html"> <trans-unit id="6333857424161463201" datatype="html">
@ -5785,11 +5785,11 @@
<target state="translated">无可用数据</target> <target state="translated">无可用数据</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">402</context> <context context-type="linenumber">413</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context> <context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">415</context> <context context-type="linenumber">426</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="62c28ddba8fedb2ae7b0fff9a641778b59791aa2" datatype="html"> <trans-unit id="62c28ddba8fedb2ae7b0fff9a641778b59791aa2" datatype="html">
@ -6218,7 +6218,7 @@
<target state="translated">您确定要关闭您的 Ghostfolio 账户吗?</target> <target state="translated">您确定要关闭您的 Ghostfolio 账户吗?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">208</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html"> <trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
@ -6266,7 +6266,7 @@
<target state="translated">哎呀!设置生物识别认证时发生错误。</target> <target state="translated">哎呀!设置生物识别认证时发生错误。</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
<context context-type="linenumber">306</context> <context context-type="linenumber">336</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
@ -7060,7 +7060,7 @@
<target state="translated">无法生成 API 密钥</target> <target state="translated">无法生成 API 密钥</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">128</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="9173945515149078768" datatype="html"> <trans-unit id="9173945515149078768" datatype="html">
@ -7068,7 +7068,7 @@
<target state="translated">在您的自托管环境中设置此 API 密钥:</target> <target state="translated">在您的自托管环境中设置此 API 密钥:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">143</context> <context context-type="linenumber">156</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7954609080122968528" datatype="html"> <trans-unit id="7954609080122968528" datatype="html">
@ -7076,7 +7076,7 @@
<target state="translated">Ghostfolio Premium 数据提供者 API 密钥</target> <target state="translated">Ghostfolio Premium 数据提供者 API 密钥</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">146</context> <context context-type="linenumber">159</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7165424720111432862" datatype="html"> <trans-unit id="7165424720111432862" datatype="html">
@ -7084,7 +7084,7 @@
<target state="translated">您确定要生成新的 API 密钥吗?</target> <target state="translated">您确定要生成新的 API 密钥吗?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.component.ts</context>
<context context-type="linenumber">151</context> <context context-type="linenumber">164</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html"> <trans-unit id="337ca2e5eeea28eaca91e8511eb5eaafdb385ce6" datatype="html">
@ -7148,7 +7148,7 @@
<target state="translated">我</target> <target state="translated">我</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">191</context> <context context-type="linenumber">213</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html"> <trans-unit id="110cc6cb39e1806d3775fd76f1d0753c9bc0e062" datatype="html">
@ -7388,7 +7388,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">149</context> <context context-type="linenumber">171</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6751986162338860240" datatype="html"> <trans-unit id="6751986162338860240" datatype="html">
@ -8009,7 +8009,7 @@
<target state="new">Do you really want to generate a new security token?</target> <target state="new">Do you really want to generate a new security token?</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context> <context context-type="sourcefile">apps/client/src/app/components/user-account-access/user-account-access.component.ts</context>
<context context-type="linenumber">154</context> <context context-type="linenumber">176</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html"> <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">
@ -8048,6 +8048,14 @@
<context context-type="linenumber">56</context> <context context-type="linenumber">56</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="61c6a7fddc76f4d72eda9551defde5de2e026989" datatype="html">
<source>Manage Asset Profile</source>
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">434</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

6
libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts

@ -1,4 +1,5 @@
import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { SearchMode } from '@ghostfolio/ui/assistant/enums/search-mode'; import { SearchMode } from '@ghostfolio/ui/assistant/enums/search-mode';
import { import {
IAssetSearchResultItem, IAssetSearchResultItem,
@ -54,13 +55,16 @@ export class GfAssistantListItemComponent
dataSource: this.item?.dataSource, dataSource: this.item?.dataSource,
symbol: this.item?.symbol symbol: this.item?.symbol
}; };
this.routerLink = ['/admin', 'market-data'];
this.routerLink =
internalRoutes.adminControl.subRoutes.marketData.routerLink;
} else if (this.item?.mode === SearchMode.HOLDING) { } else if (this.item?.mode === SearchMode.HOLDING) {
this.queryParams = { this.queryParams = {
dataSource: this.item?.dataSource, dataSource: this.item?.dataSource,
holdingDetailDialog: true, holdingDetailDialog: true,
symbol: this.item?.symbol symbol: this.item?.symbol
}; };
this.routerLink = []; this.routerLink = [];
} else if (this.item?.mode === SearchMode.QUICK_LINK) { } else if (this.item?.mode === SearchMode.QUICK_LINK) {
this.queryParams = {}; this.queryParams = {};

4
libs/ui/src/lib/i18n.ts

@ -41,7 +41,7 @@ const locales = {
SELL: $localize`Sell`, SELL: $localize`Sell`,
// AssetClass (enum) // AssetClass (enum)
CASH: $localize`Cash`, ALTERNATIVE_INVESTMENT: $localize`Alternative Investment`,
COMMODITY: $localize`Commodity`, COMMODITY: $localize`Commodity`,
EQUITY: $localize`Equity`, EQUITY: $localize`Equity`,
FIXED_INCOME: $localize`Fixed Income`, FIXED_INCOME: $localize`Fixed Income`,
@ -50,6 +50,8 @@ const locales = {
// AssetSubClass (enum) // AssetSubClass (enum)
BOND: $localize`Bond`, BOND: $localize`Bond`,
CASH: $localize`Cash`,
COLLECTIBLE: $localize`Collectible`,
CRYPTOCURRENCY: $localize`Cryptocurrency`, CRYPTOCURRENCY: $localize`Cryptocurrency`,
ETF: $localize`ETF`, ETF: $localize`ETF`,
MUTUALFUND: $localize`Mutual Fund`, MUTUALFUND: $localize`Mutual Fund`,

13
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts

@ -29,6 +29,7 @@ import { ArcElement } from 'chart.js';
import { DoughnutController } from 'chart.js'; import { DoughnutController } from 'chart.js';
import { Chart } from 'chart.js'; import { Chart } from 'chart.js';
import ChartDataLabels from 'chartjs-plugin-datalabels'; import ChartDataLabels from 'chartjs-plugin-datalabels';
import { isUUID } from 'class-validator';
import Color from 'color'; import Color from 'color';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
@ -245,9 +246,13 @@ export class GfPortfolioProportionChartComponent
let lightnessRatio = 0.2; let lightnessRatio = 0.2;
Object.keys(item.subCategory ?? {}).forEach((subCategory) => { Object.keys(item.subCategory ?? {}).forEach((subCategory) => {
if (item.name === UNKNOWN_KEY) {
backgroundColorSubCategory.push(item.color);
} else {
backgroundColorSubCategory.push( backgroundColorSubCategory.push(
Color(item.color).lighten(lightnessRatio).hex() Color(item.color).lighten(lightnessRatio).hex()
); );
}
dataSubCategory.push(item.subCategory[subCategory].value.toNumber()); dataSubCategory.push(item.subCategory[subCategory].value.toNumber());
labelSubCategory.push(subCategory); labelSubCategory.push(subCategory);
@ -344,8 +349,14 @@ export class GfPortfolioProportionChartComponent
align: 'end', align: 'end',
anchor: 'end', anchor: 'end',
formatter: (value, context) => { formatter: (value, context) => {
const symbol = context.chart.data.labels?.[
context.dataIndex
] as string;
return value > 0 return value > 0
? context.chart.data.labels?.[context.dataIndex] ? isUUID(symbol)
? (translate(this.data[symbol]?.name) ?? symbol)
: symbol
: ''; : '';
}, },
offset: 8 offset: 8

4
package-lock.json

@ -1,12 +1,12 @@
{ {
"name": "ghostfolio", "name": "ghostfolio",
"version": "2.178.0", "version": "2.179.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ghostfolio", "name": "ghostfolio",
"version": "2.178.0", "version": "2.179.0",
"hasInstallScript": true, "hasInstallScript": true,
"license": "AGPL-3.0", "license": "AGPL-3.0",
"dependencies": { "dependencies": {

2
package.json

@ -1,6 +1,6 @@
{ {
"name": "ghostfolio", "name": "ghostfolio",
"version": "2.178.0", "version": "2.179.0",
"homepage": "https://ghostfol.io", "homepage": "https://ghostfol.io",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"repository": "https://github.com/ghostfolio/ghostfolio", "repository": "https://github.com/ghostfolio/ghostfolio",

2
prisma/migrations/20250708090630_added_alternative_investment_to_asset_class/migration.sql

@ -0,0 +1,2 @@
-- AlterEnum
ALTER TYPE "AssetClass" ADD VALUE 'ALTERNATIVE_INVESTMENT';

2
prisma/migrations/20250708090631_added_collectible_to_asset_sub_class/migration.sql

@ -0,0 +1,2 @@
-- AlterEnum
ALTER TYPE "AssetSubClass" ADD VALUE 'COLLECTIBLE';

2
prisma/schema.prisma

@ -278,6 +278,7 @@ enum AccessPermission {
} }
enum AssetClass { enum AssetClass {
ALTERNATIVE_INVESTMENT
COMMODITY COMMODITY
EQUITY EQUITY
FIXED_INCOME FIXED_INCOME
@ -288,6 +289,7 @@ enum AssetClass {
enum AssetSubClass { enum AssetSubClass {
BOND BOND
CASH CASH
COLLECTIBLE
COMMODITY COMMODITY
CRYPTOCURRENCY CRYPTOCURRENCY
ETF ETF

Loading…
Cancel
Save