Merge branch 'main' of github.com:ghostfolio/ghostfolio
All checks were successful
Docker image CD / build_and_push (push) Successful in 21m54s
All checks were successful
Docker image CD / build_and_push (push) Successful in 21m54s
This commit is contained in:
commit
fa2739bbb4
11
CHANGELOG.md
11
CHANGELOG.md
@ -9,12 +9,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
### Added
|
||||
|
||||
- Added the endpoints (`DELETE`, `GET` and `POST`) for the watchlist
|
||||
|
||||
## 2.154.0 - 2025-04-21
|
||||
|
||||
### Added
|
||||
|
||||
- Extended the benchmark detail dialog by the current market price
|
||||
- Added the performance calculation type to the user settings (experimental)
|
||||
- Added `watchlist` to the `User` database schema as a preparation for watching assets
|
||||
|
||||
### Changed
|
||||
|
||||
- Made the historical market data editor expandable in the admin control panel
|
||||
- Renamed `Subscription` to `subscriptions` in the `User` database schema
|
||||
- Parallelized the requests in the get quotes functionality of the _Financial Modeling Prep_ service
|
||||
- Migrated the lookup functionality by `isin` of the _Financial Modeling Prep_ service to its stable API version
|
||||
- Improved the language localization for German (`de`)
|
||||
|
||||
### Fixed
|
||||
|
||||
|
@ -645,7 +645,7 @@ export class AdminService {
|
||||
Order: {
|
||||
where: {
|
||||
User: {
|
||||
Subscription: {
|
||||
subscriptions: {
|
||||
some: {
|
||||
expiresAt: {
|
||||
gt: new Date()
|
||||
@ -806,7 +806,7 @@ export class AdminService {
|
||||
createdAt: true,
|
||||
id: true,
|
||||
role: true,
|
||||
Subscription: {
|
||||
subscriptions: {
|
||||
orderBy: {
|
||||
expiresAt: 'desc'
|
||||
},
|
||||
@ -821,7 +821,7 @@ export class AdminService {
|
||||
});
|
||||
|
||||
return usersWithAnalytics.map(
|
||||
({ _count, Analytics, createdAt, id, role, Subscription }) => {
|
||||
({ _count, Analytics, createdAt, id, role, subscriptions }) => {
|
||||
const daysSinceRegistration =
|
||||
differenceInDays(new Date(), createdAt) + 1;
|
||||
const engagement = Analytics
|
||||
@ -830,8 +830,8 @@ export class AdminService {
|
||||
|
||||
const subscription =
|
||||
this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION') &&
|
||||
Subscription?.length > 0
|
||||
? Subscription[0]
|
||||
subscriptions?.length > 0
|
||||
? subscriptions[0]
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
|
@ -38,6 +38,7 @@ import { GhostfolioModule } from './endpoints/data-providers/ghostfolio/ghostfol
|
||||
import { MarketDataModule } from './endpoints/market-data/market-data.module';
|
||||
import { PublicModule } from './endpoints/public/public.module';
|
||||
import { TagsModule } from './endpoints/tags/tags.module';
|
||||
import { WatchlistModule } from './endpoints/watchlist/watchlist.module';
|
||||
import { ExchangeRateModule } from './exchange-rate/exchange-rate.module';
|
||||
import { ExportModule } from './export/export.module';
|
||||
import { HealthModule } from './health/health.module';
|
||||
@ -128,7 +129,8 @@ import { UserModule } from './user/user.module';
|
||||
SymbolModule,
|
||||
TagsModule,
|
||||
TwitterBotModule,
|
||||
UserModule
|
||||
UserModule,
|
||||
WatchlistModule
|
||||
],
|
||||
providers: [CronService]
|
||||
})
|
||||
|
@ -24,6 +24,7 @@ import {
|
||||
} from '@nestjs/common';
|
||||
import { REQUEST } from '@nestjs/core';
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
import { isISIN } from 'class-validator';
|
||||
import { getReasonPhrase, StatusCodes } from 'http-status-codes';
|
||||
|
||||
import { GetDividendsDto } from './get-dividends.dto';
|
||||
@ -301,7 +302,9 @@ export class GhostfolioController {
|
||||
try {
|
||||
const result = await this.ghostfolioService.lookup({
|
||||
includeIndices,
|
||||
query: query.toLowerCase()
|
||||
query: isISIN(query.toUpperCase())
|
||||
? query.toUpperCase()
|
||||
: query.toLowerCase()
|
||||
});
|
||||
|
||||
await this.ghostfolioService.incrementDailyRequests({
|
||||
|
@ -0,0 +1,10 @@
|
||||
import { DataSource } from '@prisma/client';
|
||||
import { IsEnum, IsString } from 'class-validator';
|
||||
|
||||
export class CreateWatchlistItemDto {
|
||||
@IsEnum(DataSource)
|
||||
dataSource: DataSource;
|
||||
|
||||
@IsString()
|
||||
symbol: string;
|
||||
}
|
85
apps/api/src/app/endpoints/watchlist/watchlist.controller.ts
Normal file
85
apps/api/src/app/endpoints/watchlist/watchlist.controller.ts
Normal file
@ -0,0 +1,85 @@
|
||||
import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator';
|
||||
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
|
||||
import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
|
||||
import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor';
|
||||
import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces';
|
||||
import { permissions } from '@ghostfolio/common/permissions';
|
||||
import { RequestWithUser } from '@ghostfolio/common/types';
|
||||
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Delete,
|
||||
Get,
|
||||
HttpException,
|
||||
Inject,
|
||||
Param,
|
||||
Post,
|
||||
UseGuards,
|
||||
UseInterceptors
|
||||
} from '@nestjs/common';
|
||||
import { REQUEST } from '@nestjs/core';
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
import { DataSource } from '@prisma/client';
|
||||
import { StatusCodes, getReasonPhrase } from 'http-status-codes';
|
||||
|
||||
import { CreateWatchlistItemDto } from './create-watchlist-item.dto';
|
||||
import { WatchlistService } from './watchlist.service';
|
||||
|
||||
@Controller('watchlist')
|
||||
export class WatchlistController {
|
||||
public constructor(
|
||||
@Inject(REQUEST) private readonly request: RequestWithUser,
|
||||
private readonly watchlistService: WatchlistService
|
||||
) {}
|
||||
|
||||
@Post()
|
||||
@HasPermission(permissions.createWatchlistItem)
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@UseInterceptors(TransformDataSourceInRequestInterceptor)
|
||||
public async createWatchlistItem(@Body() data: CreateWatchlistItemDto) {
|
||||
return this.watchlistService.createWatchlistItem({
|
||||
dataSource: data.dataSource,
|
||||
symbol: data.symbol,
|
||||
userId: this.request.user.id
|
||||
});
|
||||
}
|
||||
|
||||
@Delete(':dataSource/:symbol')
|
||||
@HasPermission(permissions.deleteWatchlistItem)
|
||||
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
||||
@UseInterceptors(TransformDataSourceInRequestInterceptor)
|
||||
public async deleteWatchlistItem(
|
||||
@Param('dataSource') dataSource: DataSource,
|
||||
@Param('symbol') symbol: string
|
||||
) {
|
||||
const watchlistItem = await this.watchlistService
|
||||
.getWatchlistItems(this.request.user.id)
|
||||
.then((items) => {
|
||||
return items.find((item) => {
|
||||
return item.dataSource === dataSource && item.symbol === symbol;
|
||||
});
|
||||
});
|
||||
|
||||
if (!watchlistItem) {
|
||||
throw new HttpException(
|
||||
getReasonPhrase(StatusCodes.NOT_FOUND),
|
||||
StatusCodes.NOT_FOUND
|
||||
);
|
||||
}
|
||||
|
||||
return this.watchlistService.deleteWatchlistItem({
|
||||
dataSource,
|
||||
symbol,
|
||||
userId: this.request.user.id
|
||||
});
|
||||
}
|
||||
|
||||
@Get()
|
||||
@HasPermission(permissions.readWatchlist)
|
||||
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
||||
@UseInterceptors(TransformDataSourceInResponseInterceptor)
|
||||
public async getWatchlistItems(): Promise<AssetProfileIdentifier[]> {
|
||||
return this.watchlistService.getWatchlistItems(this.request.user.id);
|
||||
}
|
||||
}
|
19
apps/api/src/app/endpoints/watchlist/watchlist.module.ts
Normal file
19
apps/api/src/app/endpoints/watchlist/watchlist.module.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
|
||||
import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module';
|
||||
import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module';
|
||||
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
import { WatchlistController } from './watchlist.controller';
|
||||
import { WatchlistService } from './watchlist.service';
|
||||
|
||||
@Module({
|
||||
controllers: [WatchlistController],
|
||||
imports: [
|
||||
PrismaModule,
|
||||
TransformDataSourceInRequestModule,
|
||||
TransformDataSourceInResponseModule
|
||||
],
|
||||
providers: [WatchlistService]
|
||||
})
|
||||
export class WatchlistModule {}
|
79
apps/api/src/app/endpoints/watchlist/watchlist.service.ts
Normal file
79
apps/api/src/app/endpoints/watchlist/watchlist.service.ts
Normal file
@ -0,0 +1,79 @@
|
||||
import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service';
|
||||
import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces';
|
||||
|
||||
import { Injectable, NotFoundException } from '@nestjs/common';
|
||||
import { DataSource } from '@prisma/client';
|
||||
|
||||
@Injectable()
|
||||
export class WatchlistService {
|
||||
public constructor(private readonly prismaService: PrismaService) {}
|
||||
|
||||
public async createWatchlistItem({
|
||||
dataSource,
|
||||
symbol,
|
||||
userId
|
||||
}: {
|
||||
dataSource: DataSource;
|
||||
symbol: string;
|
||||
userId: string;
|
||||
}): Promise<void> {
|
||||
const symbolProfile = await this.prismaService.symbolProfile.findUnique({
|
||||
where: {
|
||||
dataSource_symbol: { dataSource, symbol }
|
||||
}
|
||||
});
|
||||
|
||||
if (!symbolProfile) {
|
||||
throw new NotFoundException(
|
||||
`Asset profile not found for ${symbol} (${dataSource})`
|
||||
);
|
||||
}
|
||||
|
||||
await this.prismaService.user.update({
|
||||
data: {
|
||||
watchlist: {
|
||||
connect: {
|
||||
dataSource_symbol: { dataSource, symbol }
|
||||
}
|
||||
}
|
||||
},
|
||||
where: { id: userId }
|
||||
});
|
||||
}
|
||||
|
||||
public async deleteWatchlistItem({
|
||||
dataSource,
|
||||
symbol,
|
||||
userId
|
||||
}: {
|
||||
dataSource: DataSource;
|
||||
symbol: string;
|
||||
userId: string;
|
||||
}) {
|
||||
await this.prismaService.user.update({
|
||||
data: {
|
||||
watchlist: {
|
||||
disconnect: {
|
||||
dataSource_symbol: { dataSource, symbol }
|
||||
}
|
||||
}
|
||||
},
|
||||
where: { id: userId }
|
||||
});
|
||||
}
|
||||
|
||||
public async getWatchlistItems(
|
||||
userId: string
|
||||
): Promise<AssetProfileIdentifier[]> {
|
||||
const user = await this.prismaService.user.findUnique({
|
||||
select: {
|
||||
watchlist: {
|
||||
select: { dataSource: true, symbol: true }
|
||||
}
|
||||
},
|
||||
where: { id: userId }
|
||||
});
|
||||
|
||||
return user.watchlist ?? [];
|
||||
}
|
||||
}
|
@ -4,12 +4,17 @@ import {
|
||||
SymbolMetrics
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { PortfolioSnapshot } from '@ghostfolio/common/models';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
export class MwrPortfolioCalculator extends PortfolioCalculator {
|
||||
protected calculateOverallPerformance(): PortfolioSnapshot {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
|
||||
protected getPerformanceCalculationType() {
|
||||
return PerformanceCalculationType.MWR;
|
||||
}
|
||||
|
||||
protected getSymbolMetrics({}: {
|
||||
end: Date;
|
||||
exchangeRates: { [dateString: string]: number };
|
||||
|
@ -5,20 +5,16 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration/con
|
||||
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { Filter, HistoricalDataItem } from '@ghostfolio/common/interfaces';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { MwrPortfolioCalculator } from './mwr/portfolio-calculator';
|
||||
import { PortfolioCalculator } from './portfolio-calculator';
|
||||
import { RoaiPortfolioCalculator } from './roai/portfolio-calculator';
|
||||
import { RoiPortfolioCalculator } from './roi/portfolio-calculator';
|
||||
import { TwrPortfolioCalculator } from './twr/portfolio-calculator';
|
||||
|
||||
export enum PerformanceCalculationType {
|
||||
MWR = 'MWR', // Money-Weighted Rate of Return
|
||||
ROAI = 'ROAI', // Return on Average Investment
|
||||
TWR = 'TWR' // Time-Weighted Rate of Return
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
export class PortfolioCalculatorFactory {
|
||||
public constructor(
|
||||
@ -58,6 +54,7 @@ export class PortfolioCalculatorFactory {
|
||||
portfolioSnapshotService: this.portfolioSnapshotService,
|
||||
redisCacheService: this.redisCacheService
|
||||
});
|
||||
|
||||
case PerformanceCalculationType.ROAI:
|
||||
return new RoaiPortfolioCalculator({
|
||||
accountBalanceItems,
|
||||
@ -71,6 +68,21 @@ export class PortfolioCalculatorFactory {
|
||||
portfolioSnapshotService: this.portfolioSnapshotService,
|
||||
redisCacheService: this.redisCacheService
|
||||
});
|
||||
|
||||
case PerformanceCalculationType.ROI:
|
||||
return new RoiPortfolioCalculator({
|
||||
accountBalanceItems,
|
||||
activities,
|
||||
currency,
|
||||
filters,
|
||||
userId,
|
||||
configurationService: this.configurationService,
|
||||
currentRateService: this.currentRateService,
|
||||
exchangeRateDataService: this.exchangeRateDataService,
|
||||
portfolioSnapshotService: this.portfolioSnapshotService,
|
||||
redisCacheService: this.redisCacheService
|
||||
});
|
||||
|
||||
case PerformanceCalculationType.TWR:
|
||||
return new TwrPortfolioCalculator({
|
||||
accountBalanceItems,
|
||||
@ -84,6 +96,7 @@ export class PortfolioCalculatorFactory {
|
||||
portfolioSnapshotService: this.portfolioSnapshotService,
|
||||
redisCacheService: this.redisCacheService
|
||||
});
|
||||
|
||||
default:
|
||||
throw new Error('Invalid calculation type');
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ import {
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { PortfolioSnapshot, TimelinePosition } from '@ghostfolio/common/models';
|
||||
import { GroupBy } from '@ghostfolio/common/types';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Logger } from '@nestjs/common';
|
||||
import { Big } from 'big.js';
|
||||
@ -623,6 +624,8 @@ export abstract class PortfolioCalculator {
|
||||
};
|
||||
}
|
||||
|
||||
protected abstract getPerformanceCalculationType(): PerformanceCalculationType;
|
||||
|
||||
public getDataProviderInfos() {
|
||||
return this.dataProviderInfos;
|
||||
}
|
||||
@ -1073,6 +1076,7 @@ export abstract class PortfolioCalculator {
|
||||
// Compute in the background
|
||||
this.portfolioSnapshotService.addJobToQueue({
|
||||
data: {
|
||||
calculationType: this.getPerformanceCalculationType(),
|
||||
filters: this.filters,
|
||||
userCurrency: this.currency,
|
||||
userId: this.userId
|
||||
@ -1089,6 +1093,7 @@ export abstract class PortfolioCalculator {
|
||||
// Wait for computation
|
||||
await this.portfolioSnapshotService.addJobToQueue({
|
||||
data: {
|
||||
calculationType: this.getPerformanceCalculationType(),
|
||||
filters: this.filters,
|
||||
userCurrency: this.currency,
|
||||
userId: this.userId
|
||||
|
@ -4,10 +4,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PortfolioCalculatorFactory,
|
||||
PerformanceCalculationType
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -17,6 +14,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -4,10 +4,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PerformanceCalculationType,
|
||||
PortfolioCalculatorFactory
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -17,6 +14,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -4,10 +4,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PortfolioCalculatorFactory,
|
||||
PerformanceCalculationType
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -17,6 +14,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -4,10 +4,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PortfolioCalculatorFactory,
|
||||
PerformanceCalculationType
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -18,6 +15,7 @@ import { ExchangeRateDataServiceMock } from '@ghostfolio/api/services/exchange-r
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -4,10 +4,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PortfolioCalculatorFactory,
|
||||
PerformanceCalculationType
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -17,6 +14,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -4,10 +4,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PortfolioCalculatorFactory,
|
||||
PerformanceCalculationType
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -18,6 +15,7 @@ import { ExchangeRateDataServiceMock } from '@ghostfolio/api/services/exchange-r
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -4,10 +4,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PortfolioCalculatorFactory,
|
||||
PerformanceCalculationType
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -17,6 +14,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -4,10 +4,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PortfolioCalculatorFactory,
|
||||
PerformanceCalculationType
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -17,6 +14,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -4,10 +4,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PerformanceCalculationType,
|
||||
PortfolioCalculatorFactory
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -18,6 +15,7 @@ import { ExchangeRateDataServiceMock } from '@ghostfolio/api/services/exchange-r
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -1,8 +1,5 @@
|
||||
import { userDummyData } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PerformanceCalculationType,
|
||||
PortfolioCalculatorFactory
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -12,6 +9,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
|
||||
|
@ -6,10 +6,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PerformanceCalculationType,
|
||||
PortfolioCalculatorFactory
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -19,6 +16,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
import { join } from 'path';
|
||||
|
@ -6,10 +6,7 @@ import {
|
||||
symbolProfileDummyData,
|
||||
userDummyData
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
|
||||
import {
|
||||
PerformanceCalculationType,
|
||||
PortfolioCalculatorFactory
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
|
||||
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
@ -19,6 +16,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
|
||||
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
|
||||
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
|
||||
import { parseDate } from '@ghostfolio/common/helper';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Big } from 'big.js';
|
||||
import { join } from 'path';
|
||||
|
@ -9,6 +9,7 @@ import {
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { PortfolioSnapshot, TimelinePosition } from '@ghostfolio/common/models';
|
||||
import { DateRange } from '@ghostfolio/common/types';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Logger } from '@nestjs/common';
|
||||
import { Big } from 'big.js';
|
||||
@ -112,6 +113,10 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
|
||||
};
|
||||
}
|
||||
|
||||
protected getPerformanceCalculationType() {
|
||||
return PerformanceCalculationType.ROAI;
|
||||
}
|
||||
|
||||
protected getSymbolMetrics({
|
||||
chartDateMap,
|
||||
dataSource,
|
||||
|
@ -0,0 +1,29 @@
|
||||
import { PortfolioCalculator } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator';
|
||||
import {
|
||||
AssetProfileIdentifier,
|
||||
SymbolMetrics
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { PortfolioSnapshot } from '@ghostfolio/common/models';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
export class RoiPortfolioCalculator extends PortfolioCalculator {
|
||||
protected calculateOverallPerformance(): PortfolioSnapshot {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
|
||||
protected getPerformanceCalculationType() {
|
||||
return PerformanceCalculationType.ROI;
|
||||
}
|
||||
|
||||
protected getSymbolMetrics({}: {
|
||||
end: Date;
|
||||
exchangeRates: { [dateString: string]: number };
|
||||
marketSymbolMap: {
|
||||
[date: string]: { [symbol: string]: Big };
|
||||
};
|
||||
start: Date;
|
||||
step?: number;
|
||||
} & AssetProfileIdentifier): SymbolMetrics {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
}
|
@ -4,12 +4,17 @@ import {
|
||||
SymbolMetrics
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { PortfolioSnapshot } from '@ghostfolio/common/models';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
export class TwrPortfolioCalculator extends PortfolioCalculator {
|
||||
protected calculateOverallPerformance(): PortfolioSnapshot {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
|
||||
protected getPerformanceCalculationType() {
|
||||
return PerformanceCalculationType.TWR;
|
||||
}
|
||||
|
||||
protected getSymbolMetrics({}: {
|
||||
end: Date;
|
||||
exchangeRates: { [dateString: string]: number };
|
||||
|
@ -50,13 +50,14 @@ import {
|
||||
UserSettings
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { TimelinePosition } from '@ghostfolio/common/models';
|
||||
import type {
|
||||
import {
|
||||
AccountWithValue,
|
||||
DateRange,
|
||||
GroupBy,
|
||||
RequestWithUser,
|
||||
UserWithSettings
|
||||
} from '@ghostfolio/common/types';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import { REQUEST } from '@nestjs/core';
|
||||
@ -85,10 +86,7 @@ import {
|
||||
import { isEmpty } from 'lodash';
|
||||
|
||||
import { PortfolioCalculator } from './calculator/portfolio-calculator';
|
||||
import {
|
||||
PerformanceCalculationType,
|
||||
PortfolioCalculatorFactory
|
||||
} from './calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from './calculator/portfolio-calculator.factory';
|
||||
import { PortfolioHoldingDetail } from './interfaces/portfolio-holding-detail.interface';
|
||||
import { RulesService } from './rules.service';
|
||||
|
||||
@ -278,14 +276,16 @@ export class PortfolioService {
|
||||
savingsRate: number;
|
||||
}): Promise<PortfolioInvestments> {
|
||||
const userId = await this.getUserId(impersonationId, this.request.user.id);
|
||||
const user = await this.userService.user({ id: userId });
|
||||
const userCurrency = this.getUserCurrency(user);
|
||||
|
||||
const { endDate, startDate } = getIntervalFromDateRange(dateRange);
|
||||
|
||||
const { activities } =
|
||||
await this.orderService.getOrdersForPortfolioCalculator({
|
||||
filters,
|
||||
userId,
|
||||
userCurrency: this.getUserCurrency()
|
||||
userCurrency,
|
||||
userId
|
||||
});
|
||||
|
||||
if (activities.length === 0) {
|
||||
@ -299,8 +299,8 @@ export class PortfolioService {
|
||||
activities,
|
||||
filters,
|
||||
userId,
|
||||
calculationType: PerformanceCalculationType.ROAI,
|
||||
currency: this.request.user.Settings.settings.baseCurrency
|
||||
calculationType: this.getUserPerformanceCalculationType(user),
|
||||
currency: userCurrency
|
||||
});
|
||||
|
||||
const { historicalData } = await portfolioCalculator.getSnapshot();
|
||||
@ -376,7 +376,7 @@ export class PortfolioService {
|
||||
activities,
|
||||
filters,
|
||||
userId,
|
||||
calculationType: PerformanceCalculationType.ROAI,
|
||||
calculationType: this.getUserPerformanceCalculationType(user),
|
||||
currency: userCurrency
|
||||
});
|
||||
|
||||
@ -684,7 +684,7 @@ export class PortfolioService {
|
||||
const portfolioCalculator = this.calculatorFactory.createCalculator({
|
||||
activities,
|
||||
userId,
|
||||
calculationType: PerformanceCalculationType.ROAI,
|
||||
calculationType: this.getUserPerformanceCalculationType(user),
|
||||
currency: userCurrency
|
||||
});
|
||||
|
||||
@ -935,12 +935,13 @@ export class PortfolioService {
|
||||
})?.id;
|
||||
const userId = await this.getUserId(impersonationId, this.request.user.id);
|
||||
const user = await this.userService.user({ id: userId });
|
||||
const userCurrency = this.getUserCurrency(user);
|
||||
|
||||
const { activities } =
|
||||
await this.orderService.getOrdersForPortfolioCalculator({
|
||||
filters,
|
||||
userId,
|
||||
userCurrency: this.getUserCurrency()
|
||||
userCurrency,
|
||||
userId
|
||||
});
|
||||
|
||||
if (activities.length === 0) {
|
||||
@ -954,8 +955,8 @@ export class PortfolioService {
|
||||
activities,
|
||||
filters,
|
||||
userId,
|
||||
calculationType: PerformanceCalculationType.ROAI,
|
||||
currency: this.request.user.Settings.settings.baseCurrency
|
||||
calculationType: this.getUserPerformanceCalculationType(user),
|
||||
currency: userCurrency
|
||||
});
|
||||
|
||||
const portfolioSnapshot = await portfolioCalculator.getSnapshot();
|
||||
@ -1120,7 +1121,7 @@ export class PortfolioService {
|
||||
activities,
|
||||
filters,
|
||||
userId,
|
||||
calculationType: PerformanceCalculationType.ROAI,
|
||||
calculationType: this.getUserPerformanceCalculationType(user),
|
||||
currency: userCurrency
|
||||
});
|
||||
|
||||
@ -2021,6 +2022,12 @@ export class PortfolioService {
|
||||
return impersonationUserId || aUserId;
|
||||
}
|
||||
|
||||
private getUserPerformanceCalculationType(
|
||||
aUser: UserWithSettings
|
||||
): PerformanceCalculationType {
|
||||
return aUser?.Settings?.settings.performanceCalculationType;
|
||||
}
|
||||
|
||||
private async getValueOfAccountsAndPlatforms({
|
||||
activities,
|
||||
filters = [],
|
||||
|
@ -41,6 +41,7 @@ import {
|
||||
permissions
|
||||
} from '@ghostfolio/common/permissions';
|
||||
import { UserWithSettings } from '@ghostfolio/common/types';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { EventEmitter2 } from '@nestjs/event-emitter';
|
||||
@ -189,7 +190,7 @@ export class UserService {
|
||||
provider,
|
||||
role,
|
||||
Settings,
|
||||
Subscription,
|
||||
subscriptions,
|
||||
thirdPartyId,
|
||||
updatedAt
|
||||
} = await this.prismaService.user.findUnique({
|
||||
@ -200,7 +201,7 @@ export class UserService {
|
||||
},
|
||||
Analytics: true,
|
||||
Settings: true,
|
||||
Subscription: true
|
||||
subscriptions: true
|
||||
},
|
||||
where: userWhereUniqueInput
|
||||
});
|
||||
@ -246,6 +247,12 @@ export class UserService {
|
||||
? 'max'
|
||||
: ((user.Settings.settings as UserSettings)?.dateRange ?? 'max');
|
||||
|
||||
// Set default value for performance calculation type
|
||||
if (!(user.Settings.settings as UserSettings)?.performanceCalculationType) {
|
||||
(user.Settings.settings as UserSettings).performanceCalculationType =
|
||||
PerformanceCalculationType.ROAI;
|
||||
}
|
||||
|
||||
// Set default value for view mode
|
||||
if (!(user.Settings.settings as UserSettings).viewMode) {
|
||||
(user.Settings.settings as UserSettings).viewMode = 'DEFAULT';
|
||||
@ -340,8 +347,8 @@ export class UserService {
|
||||
|
||||
if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) {
|
||||
user.subscription = await this.subscriptionService.getSubscription({
|
||||
createdAt: user.createdAt,
|
||||
subscriptions: Subscription
|
||||
subscriptions,
|
||||
createdAt: user.createdAt
|
||||
});
|
||||
|
||||
if (user.subscription?.type === 'Basic') {
|
||||
|
@ -357,6 +357,10 @@ export class FinancialModelingPrepService implements DataProviderInterface {
|
||||
}
|
||||
|
||||
try {
|
||||
const currencyBySymbolMap: {
|
||||
[symbol: string]: Pick<SymbolProfile, 'currency'>;
|
||||
} = {};
|
||||
|
||||
const quotes = await fetch(
|
||||
`${this.getUrl({ version: 'stable' })}/batch-quote-short?symbols=${symbols.join(',')}&apikey=${this.apiKey}`,
|
||||
{
|
||||
@ -364,11 +368,17 @@ export class FinancialModelingPrepService implements DataProviderInterface {
|
||||
}
|
||||
).then((res) => res.json());
|
||||
|
||||
for (const { price, symbol } of quotes) {
|
||||
const { currency } = await this.getAssetProfile({ symbol });
|
||||
await Promise.all(
|
||||
quotes.map(({ symbol }) => {
|
||||
return this.getAssetProfile({ symbol }).then(({ currency }) => {
|
||||
currencyBySymbolMap[symbol] = { currency };
|
||||
});
|
||||
})
|
||||
);
|
||||
|
||||
for (const { price, symbol } of quotes) {
|
||||
response[symbol] = {
|
||||
currency,
|
||||
currency: currencyBySymbolMap[symbol]?.currency,
|
||||
dataProviderInfo: this.getDataProviderInfo(),
|
||||
dataSource: DataSource.FINANCIAL_MODELING_PREP,
|
||||
marketPrice: price,
|
||||
@ -395,12 +405,15 @@ export class FinancialModelingPrepService implements DataProviderInterface {
|
||||
}
|
||||
|
||||
public async search({ query }: GetSearchParams): Promise<LookupResponse> {
|
||||
const assetProfileBySymbolMap: {
|
||||
[symbol: string]: Partial<SymbolProfile>;
|
||||
} = {};
|
||||
let items: LookupItem[] = [];
|
||||
|
||||
try {
|
||||
if (isISIN(query)) {
|
||||
if (isISIN(query?.toUpperCase())) {
|
||||
const result = await fetch(
|
||||
`${this.getUrl({ version: 4 })}/search/isin?isin=${query}&apikey=${this.apiKey}`,
|
||||
`${this.getUrl({ version: 'stable' })}/search-isin?isin=${query.toUpperCase()}&apikey=${this.apiKey}`,
|
||||
{
|
||||
signal: AbortSignal.timeout(
|
||||
this.configurationService.get('REQUEST_TIMEOUT')
|
||||
@ -408,15 +421,23 @@ export class FinancialModelingPrepService implements DataProviderInterface {
|
||||
}
|
||||
).then((res) => res.json());
|
||||
|
||||
items = result.map(({ companyName, currency, symbol }) => {
|
||||
await Promise.all(
|
||||
result.map(({ symbol }) => {
|
||||
return this.getAssetProfile({ symbol }).then((assetProfile) => {
|
||||
assetProfileBySymbolMap[symbol] = assetProfile;
|
||||
});
|
||||
})
|
||||
);
|
||||
|
||||
items = result.map(({ assetClass, assetSubClass, name, symbol }) => {
|
||||
return {
|
||||
currency,
|
||||
assetClass,
|
||||
assetSubClass,
|
||||
symbol,
|
||||
assetClass: undefined, // TODO
|
||||
assetSubClass: undefined, // TODO
|
||||
currency: assetProfileBySymbolMap[symbol]?.currency,
|
||||
dataProviderInfo: this.getDataProviderInfo(),
|
||||
dataSource: this.getName(),
|
||||
name: this.formatName({ name: companyName })
|
||||
name: this.formatName({ name })
|
||||
};
|
||||
});
|
||||
} else {
|
||||
|
@ -1,6 +1,8 @@
|
||||
import { Filter } from '@ghostfolio/common/interfaces';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
export interface IPortfolioSnapshotQueueJob {
|
||||
calculationType: PerformanceCalculationType;
|
||||
filters: Filter[];
|
||||
userCurrency: string;
|
||||
userId: string;
|
||||
|
@ -1,9 +1,6 @@
|
||||
import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/account-balance.service';
|
||||
import { OrderService } from '@ghostfolio/api/app/order/order.service';
|
||||
import {
|
||||
PerformanceCalculationType,
|
||||
PortfolioCalculatorFactory
|
||||
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
|
||||
import { PortfolioSnapshotValue } from '@ghostfolio/api/app/portfolio/interfaces/snapshot-value.interface';
|
||||
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
|
||||
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
|
||||
@ -68,7 +65,7 @@ export class PortfolioSnapshotProcessor {
|
||||
const portfolioCalculator = this.calculatorFactory.createCalculator({
|
||||
accountBalanceItems,
|
||||
activities,
|
||||
calculationType: PerformanceCalculationType.ROAI,
|
||||
calculationType: job.data.calculationType,
|
||||
currency: job.data.userCurrency,
|
||||
filters: job.data.filters,
|
||||
userId: job.data.userId
|
||||
|
@ -55,14 +55,14 @@ export class SymbolProfileService {
|
||||
? {
|
||||
some: {
|
||||
User: {
|
||||
Subscription: { some: { expiresAt: { gt: new Date() } } }
|
||||
subscriptions: { some: { expiresAt: { gt: new Date() } } }
|
||||
}
|
||||
}
|
||||
}
|
||||
: {
|
||||
every: {
|
||||
User: {
|
||||
Subscription: { none: { expiresAt: { gt: new Date() } } }
|
||||
subscriptions: { none: { expiresAt: { gt: new Date() } } }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,25 +2,7 @@
|
||||
<h1 class="d-none d-sm-block h3 mb-3 text-center" i18n>Settings</h1>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="align-items-center d-flex py-1">
|
||||
<div class="pr-1 w-50">
|
||||
<div i18n>Presenter View</div>
|
||||
<div class="hint-text text-muted" i18n>
|
||||
Protection for sensitive information like absolute performances and
|
||||
quantity values
|
||||
</div>
|
||||
</div>
|
||||
<div class="pl-1 w-50">
|
||||
<mat-slide-toggle
|
||||
color="primary"
|
||||
hideIcon="true"
|
||||
[checked]="user.settings.isRestrictedView"
|
||||
[disabled]="!hasPermissionToUpdateUserSettings"
|
||||
(change)="onRestrictedViewChange($event)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex mt-4 py-1">
|
||||
<div class="d-flex py-1">
|
||||
<form #changeUserSettingsForm="ngForm" class="w-100">
|
||||
<div class="d-flex mb-2">
|
||||
<div class="align-items-center d-flex pt-1 pt-1 w-50">
|
||||
@ -43,6 +25,32 @@
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@if (user?.settings?.isExperimentalFeatures && !user?.subscription) {
|
||||
<div class="d-flex mb-2">
|
||||
<div class="align-items-center d-flex pt-1 pt-1 w-50">
|
||||
<ng-container i18n>Performance Calculation</ng-container>
|
||||
</div>
|
||||
<div class="pl-1 w-50">
|
||||
<mat-form-field appearance="outline" class="w-100 without-hint">
|
||||
<mat-select
|
||||
name="performanceCalculationType"
|
||||
[disabled]="true"
|
||||
[value]="user.settings.performanceCalculationType"
|
||||
(selectionChange)="
|
||||
onChangeUserSetting(
|
||||
'performanceCalculationType',
|
||||
$event.value
|
||||
)
|
||||
"
|
||||
>
|
||||
<mat-option value="ROAI"
|
||||
>Return on Average Investment (ROAI)</mat-option
|
||||
>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="align-items-center d-flex mb-2">
|
||||
<div class="pr-1 w-50">
|
||||
<div i18n>Language</div>
|
||||
@ -172,6 +180,24 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="align-items-center d-flex mt-4 py-1">
|
||||
<div class="pr-1 w-50">
|
||||
<div i18n>Presenter View</div>
|
||||
<div class="hint-text text-muted" i18n>
|
||||
Protection for sensitive information like absolute performances and
|
||||
quantity values
|
||||
</div>
|
||||
</div>
|
||||
<div class="pl-1 w-50">
|
||||
<mat-slide-toggle
|
||||
color="primary"
|
||||
hideIcon="true"
|
||||
[checked]="user.settings.isRestrictedView"
|
||||
[disabled]="!hasPermissionToUpdateUserSettings"
|
||||
(change)="onRestrictedViewChange($event)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex mt-4 py-1">
|
||||
<div class="pr-1 w-50">
|
||||
<div i18n>Zen Mode</div>
|
||||
|
@ -27,9 +27,10 @@ import { map, Observable, Subject, takeUntil } from 'rxjs';
|
||||
export class GfApiPageComponent implements OnInit {
|
||||
public dividends$: Observable<DividendsResponse['dividends']>;
|
||||
public historicalData$: Observable<HistoricalResponse['historicalData']>;
|
||||
public isinLookupItems$: Observable<LookupResponse['items']>;
|
||||
public lookupItems$: Observable<LookupResponse['items']>;
|
||||
public quotes$: Observable<QuotesResponse['quotes']>;
|
||||
public status$: Observable<DataProviderGhostfolioStatusResponse>;
|
||||
public symbols$: Observable<LookupResponse['items']>;
|
||||
|
||||
private apiKey: string;
|
||||
private unsubscribeSubject = new Subject<void>();
|
||||
@ -41,9 +42,10 @@ export class GfApiPageComponent implements OnInit {
|
||||
|
||||
this.dividends$ = this.fetchDividends({ symbol: 'KO' });
|
||||
this.historicalData$ = this.fetchHistoricalData({ symbol: 'AAPL' });
|
||||
this.isinLookupItems$ = this.fetchLookupItems({ query: 'US0378331005' });
|
||||
this.lookupItems$ = this.fetchLookupItems({ query: 'apple' });
|
||||
this.quotes$ = this.fetchQuotes({ symbols: ['AAPL', 'VOO.US'] });
|
||||
this.status$ = this.fetchStatus();
|
||||
this.symbols$ = this.fetchSymbols({ query: 'apple' });
|
||||
}
|
||||
|
||||
public ngOnDestroy() {
|
||||
@ -93,32 +95,7 @@ export class GfApiPageComponent implements OnInit {
|
||||
);
|
||||
}
|
||||
|
||||
private fetchQuotes({ symbols }: { symbols: string[] }) {
|
||||
const params = new HttpParams().set('symbols', symbols.join(','));
|
||||
|
||||
return this.http
|
||||
.get<QuotesResponse>('/api/v2/data-providers/ghostfolio/quotes', {
|
||||
params,
|
||||
headers: this.getHeaders()
|
||||
})
|
||||
.pipe(
|
||||
map(({ quotes }) => {
|
||||
return quotes;
|
||||
}),
|
||||
takeUntil(this.unsubscribeSubject)
|
||||
);
|
||||
}
|
||||
|
||||
private fetchStatus() {
|
||||
return this.http
|
||||
.get<DataProviderGhostfolioStatusResponse>(
|
||||
'/api/v2/data-providers/ghostfolio/status',
|
||||
{ headers: this.getHeaders() }
|
||||
)
|
||||
.pipe(takeUntil(this.unsubscribeSubject));
|
||||
}
|
||||
|
||||
private fetchSymbols({
|
||||
private fetchLookupItems({
|
||||
includeIndices = false,
|
||||
query
|
||||
}: {
|
||||
@ -144,6 +121,31 @@ export class GfApiPageComponent implements OnInit {
|
||||
);
|
||||
}
|
||||
|
||||
private fetchQuotes({ symbols }: { symbols: string[] }) {
|
||||
const params = new HttpParams().set('symbols', symbols.join(','));
|
||||
|
||||
return this.http
|
||||
.get<QuotesResponse>('/api/v2/data-providers/ghostfolio/quotes', {
|
||||
params,
|
||||
headers: this.getHeaders()
|
||||
})
|
||||
.pipe(
|
||||
map(({ quotes }) => {
|
||||
return quotes;
|
||||
}),
|
||||
takeUntil(this.unsubscribeSubject)
|
||||
);
|
||||
}
|
||||
|
||||
private fetchStatus() {
|
||||
return this.http
|
||||
.get<DataProviderGhostfolioStatusResponse>(
|
||||
'/api/v2/data-providers/ghostfolio/status',
|
||||
{ headers: this.getHeaders() }
|
||||
)
|
||||
.pipe(takeUntil(this.unsubscribeSubject));
|
||||
}
|
||||
|
||||
private getHeaders() {
|
||||
return new HttpHeaders({
|
||||
[HEADER_KEY_SKIP_INTERCEPTOR]: 'true',
|
||||
|
@ -3,10 +3,21 @@
|
||||
<h2 class="text-center">Status</h2>
|
||||
<div>{{ status$ | async | json }}</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<div>
|
||||
<h2 class="text-center">Lookup</h2>
|
||||
@if (symbols$) {
|
||||
@let symbols = symbols$ | async;
|
||||
@if (lookupItems$) {
|
||||
@let symbols = lookupItems$ | async;
|
||||
<ul>
|
||||
@for (item of symbols; track item.symbol) {
|
||||
<li>{{ item.name }} ({{ item.symbol }})</li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
</div>
|
||||
<div>
|
||||
<h2 class="text-center">Lookup (ISIN)</h2>
|
||||
@if (isinLookupItems$) {
|
||||
@let symbols = isinLookupItems$ | async;
|
||||
<ul>
|
||||
@for (item of symbols; track item.symbol) {
|
||||
<li>{{ item.name }} ({{ item.symbol }})</li>
|
||||
|
@ -314,19 +314,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -350,7 +342,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2779,7 +2779,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -3255,7 +3255,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -3371,7 +3371,7 @@
|
||||
<target state="new">Presenter View</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9f81affcfbf06f94f1dd5219e3388c1b7e196a0b" datatype="html">
|
||||
@ -3379,7 +3379,7 @@
|
||||
<target state="new"> Protection for sensitive information like absolute performances and quantity values </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -3387,7 +3387,7 @@
|
||||
<target state="new">Base Currency</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html">
|
||||
@ -3395,7 +3395,7 @@
|
||||
<target state="new">Language</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="62c28ddba8fedb2ae7b0fff9a641778b59791aa2" datatype="html">
|
||||
@ -3403,7 +3403,7 @@
|
||||
<target state="new"> If a translation is missing, kindly support us in extending it <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -3415,7 +3415,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -3423,7 +3423,7 @@
|
||||
<target state="new">Date and number format</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -3431,7 +3431,7 @@
|
||||
<target state="new">Appearance</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -3439,7 +3439,7 @@
|
||||
<target state="new">Auto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -3447,7 +3447,7 @@
|
||||
<target state="new">Light</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -3455,7 +3455,7 @@
|
||||
<target state="new">Dark</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -3463,7 +3463,7 @@
|
||||
<target state="new">Zen Mode</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3475,7 +3475,7 @@
|
||||
<target state="new"> Distraction-free experience for turbulent times </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
@ -3483,7 +3483,7 @@
|
||||
<target state="new">Biometric Authentication</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -3491,7 +3491,7 @@
|
||||
<target state="new">Sign in with fingerprint</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -3499,7 +3499,7 @@
|
||||
<target state="new">Experimental Features</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3507,7 +3507,7 @@
|
||||
<target state="new"> Sneak peek at upcoming functionality </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
@ -3515,7 +3515,7 @@
|
||||
<target state="new">Export Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -3523,7 +3523,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -3531,7 +3531,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -7409,7 +7409,7 @@
|
||||
<target state="new">Please enter your Ghostfolio API key:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7921,6 +7921,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -1050,7 +1050,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1710,7 +1710,7 @@
|
||||
<target state="translated">Präsentationsansicht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -1718,7 +1718,7 @@
|
||||
<target state="translated">Basiswährung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -1730,7 +1730,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -1738,7 +1738,7 @@
|
||||
<target state="translated">Datums- und Zahlenformat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -1746,7 +1746,7 @@
|
||||
<target state="translated">Zen Modus</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -1758,7 +1758,7 @@
|
||||
<target state="translated"> Einloggen mit Fingerabdruck </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -1770,7 +1770,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -2566,7 +2566,7 @@
|
||||
<target state="translated">Sprache</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3ccabfc3dc288eaa2355ba43298c739f85951ec3" datatype="html">
|
||||
@ -2850,7 +2850,7 @@
|
||||
<target state="translated">Experimentelle Funktionen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="44fcf77e86dc038202ebad6b46d1d833d60d781b" datatype="html">
|
||||
@ -2898,7 +2898,7 @@
|
||||
<target state="translated">Aussehen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2906,7 +2906,7 @@
|
||||
<target state="translated">Automatisch</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2914,7 +2914,7 @@
|
||||
<target state="translated">Hell</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2922,7 +2922,7 @@
|
||||
<target state="translated">Dunkel</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="112783260724635106" datatype="html">
|
||||
@ -3186,19 +3186,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -3222,7 +3214,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3450,7 +3450,7 @@
|
||||
<target state="translated"> Ausblenden von sensiblen Informationen wie absoluter Performance und Stückzahl </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="071f26a758dfeaed37626c8758754707c35e3915" datatype="html">
|
||||
@ -3458,7 +3458,7 @@
|
||||
<target state="translated"> Unbeschwertes Erlebnis für turbulente Zeiten </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3466,7 +3466,7 @@
|
||||
<target state="translated"> Vorschau auf kommende Funktionalität </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
|
||||
@ -4702,7 +4702,7 @@
|
||||
<target state="translated">Biometrische Authentifizierung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4786,7 +4786,7 @@
|
||||
<target state="translated">Daten exportieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -6159,7 +6159,7 @@
|
||||
<target state="translated"> Wenn eine Übersetzung fehlt, unterstütze uns bitte dabei, sie <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{language}}.xlf" target="_blank" >"/>hier<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/> zu ergänzen. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4405333887341433096" datatype="html">
|
||||
@ -6599,7 +6599,7 @@
|
||||
<target state="translated">Gefahrenzone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6607,7 +6607,7 @@
|
||||
<target state="translate">Konto schliessen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -7433,7 +7433,7 @@
|
||||
<target state="translated">Bitte gib den API-Schlüssel ein:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7921,6 +7921,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="translated">Performance Berechnung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -1035,7 +1035,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1695,7 +1695,7 @@
|
||||
<target state="translated">Vista del presentador</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -1703,7 +1703,7 @@
|
||||
<target state="translated">Divisa base</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -1715,7 +1715,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -1723,7 +1723,7 @@
|
||||
<target state="translated">Formato de fecha y número</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -1731,7 +1731,7 @@
|
||||
<target state="translated">Modo Zen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -1743,7 +1743,7 @@
|
||||
<target state="translated"> Iniciar sesión con huella digital </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -1755,7 +1755,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -2551,7 +2551,7 @@
|
||||
<target state="translated">Idioma</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3ccabfc3dc288eaa2355ba43298c739f85951ec3" datatype="html">
|
||||
@ -2835,7 +2835,7 @@
|
||||
<target state="translated">Funcionalidades experimentales</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1931353503905413384" datatype="html">
|
||||
@ -2883,7 +2883,7 @@
|
||||
<target state="translated">Apariencia</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2891,7 +2891,7 @@
|
||||
<target state="translated">Automático</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2899,7 +2899,7 @@
|
||||
<target state="translated">Claro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2907,7 +2907,7 @@
|
||||
<target state="translated">Oscuro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="112783260724635106" datatype="html">
|
||||
@ -3171,19 +3171,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -3207,7 +3199,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3435,7 +3435,7 @@
|
||||
<target state="translated"> Protección de información confidencial como rendimientos absolutos y valores cuantitativos </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="071f26a758dfeaed37626c8758754707c35e3915" datatype="html">
|
||||
@ -3443,7 +3443,7 @@
|
||||
<target state="translated"> Experiencia sin distracciones para tiempos turbulentos </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3451,7 +3451,7 @@
|
||||
<target state="translated"> Un adelanto de las próximas funciones </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
|
||||
@ -4679,7 +4679,7 @@
|
||||
<target state="new">Biometric Authentication</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4763,7 +4763,7 @@
|
||||
<target state="new">Export Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -6136,7 +6136,7 @@
|
||||
<target state="new"> If a translation is missing, kindly support us in extending it <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4405333887341433096" datatype="html">
|
||||
@ -6576,7 +6576,7 @@
|
||||
<target state="translated">Zona peligrosa</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6584,7 +6584,7 @@
|
||||
<target state="translated">Eliminar cuenta</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -7410,7 +7410,7 @@
|
||||
<target state="new">Please enter your Ghostfolio API key:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7922,6 +7922,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -1386,7 +1386,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1950,7 +1950,7 @@
|
||||
<target state="translated">Vue de Présentation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -1958,7 +1958,7 @@
|
||||
<target state="translated">Devise de Base</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html">
|
||||
@ -1966,7 +1966,7 @@
|
||||
<target state="translated">Langue</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec2d3a89b366d1ca80be056e9e71f0165ae75c7b" datatype="html">
|
||||
@ -1978,19 +1978,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -2014,7 +2006,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2030,7 +2030,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -2038,7 +2038,7 @@
|
||||
<target state="translated">Format de date et d’heure</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -2046,7 +2046,7 @@
|
||||
<target state="translated">Apparence</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2054,7 +2054,7 @@
|
||||
<target state="translated">Auto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2062,7 +2062,7 @@
|
||||
<target state="translated">Clair</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2070,7 +2070,7 @@
|
||||
<target state="translated">Sombre</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -2078,7 +2078,7 @@
|
||||
<target state="translated">Mode Zen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2090,7 +2090,7 @@
|
||||
<target state="translated"> Se connecter avec empreinte </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -2098,7 +2098,7 @@
|
||||
<target state="translated">Fonctionnalités expérimentales</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -2110,7 +2110,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -3434,7 +3434,7 @@
|
||||
<target state="translated"> Protection pour les informations sensibles telles que la performance absolue et les montants </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="071f26a758dfeaed37626c8758754707c35e3915" datatype="html">
|
||||
@ -3442,7 +3442,7 @@
|
||||
<target state="translated"> Expérience sans distraction pour les périodes tumultueuses </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3450,7 +3450,7 @@
|
||||
<target state="translated"> Avant-première de fonctionnalités futures </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
|
||||
@ -4678,7 +4678,7 @@
|
||||
<target state="translated">Authentication biométrique</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4762,7 +4762,7 @@
|
||||
<target state="translated">Exporter les Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -6135,7 +6135,7 @@
|
||||
<target state="translated"> Si une traduction est manquante, veuillez nous aider à compléter la traduction <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4405333887341433096" datatype="html">
|
||||
@ -6575,7 +6575,7 @@
|
||||
<target state="translated">Zone de danger</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6583,7 +6583,7 @@
|
||||
<target state="translated">Supprimer le compte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -7409,7 +7409,7 @@
|
||||
<target state="translated">Veuillez saisir votre clé API Ghostfolio :</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7921,6 +7921,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -1035,7 +1035,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1695,7 +1695,7 @@
|
||||
<target state="translated">Vista presentatore</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -1703,7 +1703,7 @@
|
||||
<target state="translated">Valuta base</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -1715,7 +1715,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -1723,7 +1723,7 @@
|
||||
<target state="translated">Formato data e numero</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -1731,7 +1731,7 @@
|
||||
<target state="translated">Modalità Zen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -1743,7 +1743,7 @@
|
||||
<target state="translated">Accesso con impronta digitale</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -1755,7 +1755,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -2551,7 +2551,7 @@
|
||||
<target state="translated">Lingua</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3ccabfc3dc288eaa2355ba43298c739f85951ec3" datatype="html">
|
||||
@ -2835,7 +2835,7 @@
|
||||
<target state="translated">Funzionalità sperimentali</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1931353503905413384" datatype="html">
|
||||
@ -2883,7 +2883,7 @@
|
||||
<target state="translated">Aspetto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2891,7 +2891,7 @@
|
||||
<target state="translated">Auto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2899,7 +2899,7 @@
|
||||
<target state="translated">Chiaro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2907,7 +2907,7 @@
|
||||
<target state="translated">Scuro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="112783260724635106" datatype="html">
|
||||
@ -3171,19 +3171,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -3207,7 +3199,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3435,7 +3435,7 @@
|
||||
<target state="translated"> Protezione delle informazioni sensibili come le prestazioni assolute e i valori quantitativi </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="071f26a758dfeaed37626c8758754707c35e3915" datatype="html">
|
||||
@ -3443,7 +3443,7 @@
|
||||
<target state="translated"> Esperienza priva di distrazioni per i periodi più turbolenti </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3451,7 +3451,7 @@
|
||||
<target state="translated"> Un’anteprima delle funzionalità in arrivo </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
|
||||
@ -4679,7 +4679,7 @@
|
||||
<target state="translated">Autenticazione biometrica</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4763,7 +4763,7 @@
|
||||
<target state="translated">Esporta dati</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -6136,7 +6136,7 @@
|
||||
<target state="translated"> Se manca una traduzione, puoi aiutarci modificando questo file: <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4405333887341433096" datatype="html">
|
||||
@ -6576,7 +6576,7 @@
|
||||
<target state="translated">Zona di Pericolo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6584,7 +6584,7 @@
|
||||
<target state="translated">Chiudi l’account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -7410,7 +7410,7 @@
|
||||
<target state="new">Please enter your Ghostfolio API key:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7922,6 +7922,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -1034,7 +1034,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1694,7 +1694,7 @@
|
||||
<target state="translated">Presentatie weergave</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -1702,7 +1702,7 @@
|
||||
<target state="translated">Basisvaluta</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -1714,7 +1714,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -1722,7 +1722,7 @@
|
||||
<target state="translated">Datum- en getalnotatie</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -1730,7 +1730,7 @@
|
||||
<target state="translated">Zen-modus</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -1742,7 +1742,7 @@
|
||||
<target state="new"> Aanmelden met vingerafdruk </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -1754,7 +1754,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -2550,7 +2550,7 @@
|
||||
<target state="translated">Taal</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3ccabfc3dc288eaa2355ba43298c739f85951ec3" datatype="html">
|
||||
@ -2834,7 +2834,7 @@
|
||||
<target state="translated">Experimentele functies</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1931353503905413384" datatype="html">
|
||||
@ -2882,7 +2882,7 @@
|
||||
<target state="translated">Weergave</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2890,7 +2890,7 @@
|
||||
<target state="translated">Automatisch</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2898,7 +2898,7 @@
|
||||
<target state="translated">Licht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2906,7 +2906,7 @@
|
||||
<target state="translated">Donker</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="112783260724635106" datatype="html">
|
||||
@ -3170,19 +3170,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -3206,7 +3198,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3434,7 +3434,7 @@
|
||||
<target state="new"> Bescherming voor gevoelige informatie zoals absoluut rendement en hoeveelheden </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="071f26a758dfeaed37626c8758754707c35e3915" datatype="html">
|
||||
@ -3442,7 +3442,7 @@
|
||||
<target state="new"> Afleidingsvrije ervaring voor roerige tijden </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3450,7 +3450,7 @@
|
||||
<target state="new"> Voorproefje van nieuwe functionaliteit </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
|
||||
@ -4678,7 +4678,7 @@
|
||||
<target state="translated">Biometrische authenticatie</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4762,7 +4762,7 @@
|
||||
<target state="translated">Exporteer Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -6135,7 +6135,7 @@
|
||||
<target state="new"> If a translation is missing, kindly support us in extending it <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4405333887341433096" datatype="html">
|
||||
@ -6575,7 +6575,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6583,7 +6583,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -7409,7 +7409,7 @@
|
||||
<target state="new">Please enter your Ghostfolio API key:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7921,6 +7921,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -747,19 +747,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -783,7 +775,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2435,7 +2435,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -3083,7 +3083,7 @@
|
||||
<target state="translated">Widok Prezentera</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9f81affcfbf06f94f1dd5219e3388c1b7e196a0b" datatype="html">
|
||||
@ -3091,7 +3091,7 @@
|
||||
<target state="translated"> Ochrona dla wrażliwych informacji takich jak wyniki i wartości ilościowe </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -3099,7 +3099,7 @@
|
||||
<target state="translated">Waluta Bazowa</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html">
|
||||
@ -3107,7 +3107,7 @@
|
||||
<target state="translated">Język</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -3119,7 +3119,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -3127,7 +3127,7 @@
|
||||
<target state="translated">Format daty i liczb</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -3135,7 +3135,7 @@
|
||||
<target state="translated">Wygląd (tryb)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -3143,7 +3143,7 @@
|
||||
<target state="translated">Auto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -3151,7 +3151,7 @@
|
||||
<target state="translated">Jasny</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -3159,7 +3159,7 @@
|
||||
<target state="translated">Ciemny</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -3167,7 +3167,7 @@
|
||||
<target state="translated">Tryb Zen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3179,7 +3179,7 @@
|
||||
<target state="translated"> Doświadczenie bez zakłóceń w niespokojnych czasach </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
@ -3187,7 +3187,7 @@
|
||||
<target state="translated">Uwierzytelnianie Biometryczne</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -3195,7 +3195,7 @@
|
||||
<target state="translated">Logowanie za pomocą linii papilarnych</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -3203,7 +3203,7 @@
|
||||
<target state="translated">Funkcje Eksperymentalne</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3211,7 +3211,7 @@
|
||||
<target state="translated"> Podgląd nadchodzących funkcjonalności </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -3223,7 +3223,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
@ -3231,7 +3231,7 @@
|
||||
<target state="translated">Eksportuj Dane</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -6135,7 +6135,7 @@
|
||||
<target state="translated"> Jeżeli brakuje jakiegoś tłumaczenia, uprzejmie prosimy o wsparcie w jego uzupełnieniu <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>tutaj<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4405333887341433096" datatype="html">
|
||||
@ -6575,7 +6575,7 @@
|
||||
<target state="translated">Strefa Zagrożenia</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6583,7 +6583,7 @@
|
||||
<target state="translated">Zamknij Konto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -7409,7 +7409,7 @@
|
||||
<target state="translated">Wprowadź swój klucz API konta Ghostfolio:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7921,6 +7921,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -1266,7 +1266,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1934,7 +1934,7 @@
|
||||
<target state="translated">Vista do Apresentador</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -1942,7 +1942,7 @@
|
||||
<target state="translated">Moeda Base</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html">
|
||||
@ -1950,7 +1950,7 @@
|
||||
<target state="translated">Língua</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4555457172864212828" datatype="html">
|
||||
@ -1974,7 +1974,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -1982,7 +1982,7 @@
|
||||
<target state="translated">Formato de números e datas</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -1990,7 +1990,7 @@
|
||||
<target state="translated">Modo Zen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2002,7 +2002,7 @@
|
||||
<target state="translated">Aparência</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2010,7 +2010,7 @@
|
||||
<target state="translated">Auto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2018,7 +2018,7 @@
|
||||
<target state="translated">Claro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2026,7 +2026,7 @@
|
||||
<target state="translated">Escuro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -2034,7 +2034,7 @@
|
||||
<target state="translated"> Iniciar sessão com impressão digital </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -2042,7 +2042,7 @@
|
||||
<target state="translated">Funcionalidades Experimentais</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -2054,7 +2054,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -3214,19 +3214,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -3250,7 +3242,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3434,7 +3434,7 @@
|
||||
<target state="translated"> Proteção para informações sensíveis, como desempenhos absolutos e valores quantitativos </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="071f26a758dfeaed37626c8758754707c35e3915" datatype="html">
|
||||
@ -3442,7 +3442,7 @@
|
||||
<target state="translated"> Experiência sem distrações para tempos turbulentos </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3450,7 +3450,7 @@
|
||||
<target state="translated"> Acesso antecipado a funcionalidades futuras </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2573979fd7d8602db44b7b4ad493428bc354d2f5" datatype="html">
|
||||
@ -4678,7 +4678,7 @@
|
||||
<target state="translated">Autenticação biométrica</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4762,7 +4762,7 @@
|
||||
<target state="translated">Exportar dados</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -6135,7 +6135,7 @@
|
||||
<target state="new"> If a translation is missing, kindly support us in extending it <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4405333887341433096" datatype="html">
|
||||
@ -6575,7 +6575,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6583,7 +6583,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -7409,7 +7409,7 @@
|
||||
<target state="new">Please enter your Ghostfolio API key:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7921,6 +7921,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -719,19 +719,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -755,7 +747,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2283,7 +2283,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -3191,7 +3191,7 @@
|
||||
<target state="translated">Zen Modu</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -4959,7 +4959,7 @@
|
||||
<target state="translated">Sunum Görünümü</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9f81affcfbf06f94f1dd5219e3388c1b7e196a0b" datatype="html">
|
||||
@ -4967,7 +4967,7 @@
|
||||
<target state="translated">Gerçek performans ve miktar değerleri gibi hassas bilgilerin saklanması için</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -4975,7 +4975,7 @@
|
||||
<target state="translated">Temel Para Birimi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html">
|
||||
@ -4983,7 +4983,7 @@
|
||||
<target state="translated">Dil</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -4995,7 +4995,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -5003,7 +5003,7 @@
|
||||
<target state="translated">Tarih ve Sayı Formatları</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -5011,7 +5011,7 @@
|
||||
<target state="translated">Görünüm</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -5019,7 +5019,7 @@
|
||||
<target state="translated">Otomatik</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -5027,7 +5027,7 @@
|
||||
<target state="translated">Açık</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -5035,7 +5035,7 @@
|
||||
<target state="translated">Koyu</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="071f26a758dfeaed37626c8758754707c35e3915" datatype="html">
|
||||
@ -5043,7 +5043,7 @@
|
||||
<target state="translated">Çalkantılı zamanlar için dikkat dağıtmayan bir deneyim</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
@ -5051,7 +5051,7 @@
|
||||
<target state="translated">Biyometrik Kimlik Doğrulama</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -5059,7 +5059,7 @@
|
||||
<target state="translated">Parmak iziyle oturum aç</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -5067,7 +5067,7 @@
|
||||
<target state="translated">Deneysel Özellikler</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -5075,7 +5075,7 @@
|
||||
<target state="translated">Gelecek özelliklere göz atın</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -5087,7 +5087,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
@ -5095,7 +5095,7 @@
|
||||
<target state="translated">Verileri Dışa Aktar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -6135,7 +6135,7 @@
|
||||
<target state="new"> If a translation is missing, kindly support us in extending it <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4405333887341433096" datatype="html">
|
||||
@ -6575,7 +6575,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6583,7 +6583,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -7409,7 +7409,7 @@
|
||||
<target state="new">Please enter your Ghostfolio API key:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7921,6 +7921,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -314,19 +314,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -350,7 +342,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2907,7 +2907,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -3431,7 +3431,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7156797854368699223" datatype="html">
|
||||
@ -3619,7 +3619,7 @@
|
||||
<target state="translated">Режим доповідача</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9f81affcfbf06f94f1dd5219e3388c1b7e196a0b" datatype="html">
|
||||
@ -3627,7 +3627,7 @@
|
||||
<target state="translated"> Захист конфіденційної інформації, такої як абсолютні показники та кількісні значення </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -3635,7 +3635,7 @@
|
||||
<target state="translated">Базова валюта</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html">
|
||||
@ -3643,7 +3643,7 @@
|
||||
<target state="translated">Мова</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="62c28ddba8fedb2ae7b0fff9a641778b59791aa2" datatype="html">
|
||||
@ -3651,7 +3651,7 @@
|
||||
<target state="translated"> Якщо переклад відсутній, будь ласка, підтримайте нас у його розширенні <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/> тут<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -3663,7 +3663,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -3671,7 +3671,7 @@
|
||||
<target state="translated">Формат дати та чисел</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -3679,7 +3679,7 @@
|
||||
<target state="translated">Зовнішній вигляд</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -3687,7 +3687,7 @@
|
||||
<target state="translated">Автоматичний</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -3695,7 +3695,7 @@
|
||||
<target state="translated">Світлий</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -3703,7 +3703,7 @@
|
||||
<target state="translated">Темний</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -3711,7 +3711,7 @@
|
||||
<target state="translated">Режим дзен</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3723,7 +3723,7 @@
|
||||
<target state="translated"> Досвід без відволікань для неспокійних часів </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
@ -3731,7 +3731,7 @@
|
||||
<target state="translated">Біометрична аутентифікація</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -3739,7 +3739,7 @@
|
||||
<target state="translated">Увійти з відбитком пальця</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -3747,7 +3747,7 @@
|
||||
<target state="translated">Експериментальні функції</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3755,7 +3755,7 @@
|
||||
<target state="translated"> Попередній перегляд майбутніх функцій </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
@ -3763,7 +3763,7 @@
|
||||
<target state="translated">Експортувати дані</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -3771,7 +3771,7 @@
|
||||
<target state="translated">Зона небезпеки</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -3779,7 +3779,7 @@
|
||||
<target state="translated">Закрити обліковий запис</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -4067,7 +4067,7 @@
|
||||
<target state="translated">Будь ласка, введіть ваш ключ API Ghostfolio:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7751010942038334793" datatype="html">
|
||||
@ -7921,6 +7921,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -725,19 +725,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -761,7 +753,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2306,7 +2306,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -2893,28 +2893,28 @@
|
||||
<source>Presenter View</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9f81affcfbf06f94f1dd5219e3388c1b7e196a0b" datatype="html">
|
||||
<source> Protection for sensitive information like absolute performances and quantity values </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
<source>Base Currency</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html">
|
||||
<source>Language</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -2925,49 +2925,49 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
<source>Date and number format</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
<source>Appearance</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
<source>Auto</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
<source>Light</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
<source>Dark</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
<source>Zen Mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2978,35 +2978,35 @@
|
||||
<source> Distraction-free experience for turbulent times </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
<source>Biometric Authentication</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
<source>Sign in with fingerprint</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
<source>Experimental Features</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -3017,14 +3017,14 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
<source>Export Data</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -5609,7 +5609,7 @@
|
||||
<source> If a translation is missing, kindly support us in extending it <x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>. </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="14c9ea2fbedf3057aac46aa68312770460312107" datatype="html">
|
||||
@ -5992,7 +5992,7 @@
|
||||
<source>Close Account</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4941836956820527118" datatype="html">
|
||||
@ -6006,7 +6006,7 @@
|
||||
<source>Danger Zone</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d30a34e40fd0afa4f0233005752e4ab615e83a0" datatype="html">
|
||||
@ -6703,7 +6703,7 @@
|
||||
<source>Please enter your Ghostfolio API key:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="169eed2bc3e08e1bea977bcc5d799379f6b8a758" datatype="html">
|
||||
@ -7161,6 +7161,13 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -748,19 +748,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -784,7 +776,15 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2444,7 +2444,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">281</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -3092,7 +3092,7 @@
|
||||
<target state="translated">演示者视图</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9f81affcfbf06f94f1dd5219e3388c1b7e196a0b" datatype="html">
|
||||
@ -3100,7 +3100,7 @@
|
||||
<target state="translated">保护绝对性能和数量值等敏感信息</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="68baf7bff1f9242d0f6e4c0952dafefa6553cecd" datatype="html">
|
||||
@ -3108,7 +3108,7 @@
|
||||
<target state="translated">基础货币</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html">
|
||||
@ -3116,7 +3116,7 @@
|
||||
<target state="translated">语言</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -3128,7 +3128,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
<context context-type="linenumber">135</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -3136,7 +3136,7 @@
|
||||
<target state="translated">日期和数字格式</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -3144,7 +3144,7 @@
|
||||
<target state="translated">外貌</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
<context context-type="linenumber">160</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -3152,7 +3152,7 @@
|
||||
<target state="translated">自动</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -3160,7 +3160,7 @@
|
||||
<target state="translated">明亮</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">175</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -3168,7 +3168,7 @@
|
||||
<target state="translated">黑暗</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">176</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -3176,7 +3176,7 @@
|
||||
<target state="translated">极简模式</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3188,7 +3188,7 @@
|
||||
<target state="translated">动荡时期的无干扰体验</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
@ -3196,7 +3196,7 @@
|
||||
<target state="translated">生物识别认证</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -3204,7 +3204,7 @@
|
||||
<target state="translated">使用指纹登录</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -3212,7 +3212,7 @@
|
||||
<target state="translated">实验性功能</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
@ -3220,7 +3220,7 @@
|
||||
<target state="translated">预览即将推出的功能</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
<context context-type="linenumber">238</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -3232,7 +3232,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
@ -3240,7 +3240,7 @@
|
||||
<target state="translated">导出数据</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
<context context-type="linenumber">262</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -6136,7 +6136,7 @@
|
||||
<target state="translated">如果翻译缺失,请支持我们进行扩展<x id="START_LINK" ctype="x-a" equiv-text="<a href="https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf" target="_blank" >"/>这里<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>。</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="14c9ea2fbedf3057aac46aa68312770460312107" datatype="html">
|
||||
@ -6576,7 +6576,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6584,7 +6584,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">309</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -7410,7 +7410,7 @@
|
||||
<target state="new">Please enter your Ghostfolio API key:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/api/api-page.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b53d197b1067954e0c294f6884e74edacc0c644" datatype="html">
|
||||
@ -7922,6 +7922,14 @@
|
||||
<context context-type="linenumber">38</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3554d4201718e0ac1637ef3833c0fbe8aa6ffadb" datatype="html">
|
||||
<source>Performance Calculation</source>
|
||||
<target state="new">Performance Calculation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -5,6 +5,7 @@ import {
|
||||
HoldingsViewMode,
|
||||
ViewMode
|
||||
} from '@ghostfolio/common/types';
|
||||
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
|
||||
|
||||
export interface UserSettings {
|
||||
annualInterestRate?: number;
|
||||
@ -22,6 +23,7 @@ export interface UserSettings {
|
||||
isRestrictedView?: boolean;
|
||||
language?: string;
|
||||
locale?: string;
|
||||
performanceCalculationType?: PerformanceCalculationType;
|
||||
projectedTotalAmount?: number;
|
||||
retirementDate?: string;
|
||||
savingsRate?: number;
|
||||
|
@ -17,6 +17,7 @@ export const permissions = {
|
||||
createPlatform: 'createPlatform',
|
||||
createTag: 'createTag',
|
||||
createUserAccount: 'createUserAccount',
|
||||
createWatchlistItem: 'createWatchlistItem',
|
||||
deleteAccess: 'deleteAccess',
|
||||
deleteAccount: 'deleteAccount',
|
||||
deleteAccountBalance: 'deleteAccountBalance',
|
||||
@ -26,6 +27,7 @@ export const permissions = {
|
||||
deletePlatform: 'deletePlatform',
|
||||
deleteTag: 'deleteTag',
|
||||
deleteUser: 'deleteUser',
|
||||
deleteWatchlistItem: 'deleteWatchlistItem',
|
||||
enableDataProviderGhostfolio: 'enableDataProviderGhostfolio',
|
||||
enableFearAndGreedIndex: 'enableFearAndGreedIndex',
|
||||
enableImport: 'enableImport',
|
||||
@ -41,6 +43,7 @@ export const permissions = {
|
||||
readMarketDataOfOwnAssetProfile: 'readMarketDataOfOwnAssetProfile',
|
||||
readPlatforms: 'readPlatforms',
|
||||
readTags: 'readTags',
|
||||
readWatchlist: 'readWatchlist',
|
||||
reportDataGlitch: 'reportDataGlitch',
|
||||
toggleReadOnlyMode: 'toggleReadOnlyMode',
|
||||
updateAccount: 'updateAccount',
|
||||
@ -64,7 +67,9 @@ export function getPermissions(aRole: Role): string[] {
|
||||
permissions.createAccess,
|
||||
permissions.createAccount,
|
||||
permissions.createAccountBalance,
|
||||
permissions.createWatchlistItem,
|
||||
permissions.deleteAccountBalance,
|
||||
permissions.deleteWatchlistItem,
|
||||
permissions.createMarketData,
|
||||
permissions.createMarketDataOfOwnAssetProfile,
|
||||
permissions.createOrder,
|
||||
@ -84,6 +89,7 @@ export function getPermissions(aRole: Role): string[] {
|
||||
permissions.readMarketDataOfOwnAssetProfile,
|
||||
permissions.readPlatforms,
|
||||
permissions.readTags,
|
||||
permissions.readWatchlist,
|
||||
permissions.updateAccount,
|
||||
permissions.updateAuthDevice,
|
||||
permissions.updateMarketData,
|
||||
@ -100,7 +106,8 @@ export function getPermissions(aRole: Role): string[] {
|
||||
permissions.accessAssistant,
|
||||
permissions.accessHoldingsChart,
|
||||
permissions.createUserAccount,
|
||||
permissions.readAiPrompt
|
||||
permissions.readAiPrompt,
|
||||
permissions.readWatchlist
|
||||
];
|
||||
|
||||
case 'USER':
|
||||
@ -113,14 +120,17 @@ export function getPermissions(aRole: Role): string[] {
|
||||
permissions.createMarketDataOfOwnAssetProfile,
|
||||
permissions.createOrder,
|
||||
permissions.createOwnTag,
|
||||
permissions.createWatchlistItem,
|
||||
permissions.deleteAccess,
|
||||
permissions.deleteAccount,
|
||||
permissions.deleteAccountBalance,
|
||||
permissions.deleteAuthDevice,
|
||||
permissions.deleteOrder,
|
||||
permissions.deleteOwnUser,
|
||||
permissions.deleteWatchlistItem,
|
||||
permissions.readAiPrompt,
|
||||
permissions.readMarketDataOfOwnAssetProfile,
|
||||
permissions.readWatchlist,
|
||||
permissions.updateAccount,
|
||||
permissions.updateAuthDevice,
|
||||
permissions.updateMarketDataOfOwnAssetProfile,
|
||||
|
@ -0,0 +1,6 @@
|
||||
export enum PerformanceCalculationType {
|
||||
MWR = 'MWR', // Money-Weighted Rate of Return
|
||||
ROAI = 'ROAI', // Return on Average Investment
|
||||
ROI = 'ROI', // Return on Investment
|
||||
TWR = 'TWR' // Time-Weighted Rate of Return
|
||||
}
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "ghostfolio",
|
||||
"version": "2.153.0",
|
||||
"version": "2.154.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "ghostfolio",
|
||||
"version": "2.153.0",
|
||||
"version": "2.154.0",
|
||||
"hasInstallScript": true,
|
||||
"license": "AGPL-3.0",
|
||||
"dependencies": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ghostfolio",
|
||||
"version": "2.153.0",
|
||||
"version": "2.154.0",
|
||||
"homepage": "https://ghostfol.io",
|
||||
"license": "AGPL-3.0",
|
||||
"repository": "https://github.com/ghostfolio/ghostfolio",
|
||||
|
@ -250,6 +250,7 @@ model User {
|
||||
id String @id @default(uuid())
|
||||
provider Provider @default(ANONYMOUS)
|
||||
role Role @default(USER)
|
||||
subscriptions Subscription[]
|
||||
thirdPartyId String?
|
||||
updatedAt DateTime @updatedAt
|
||||
watchlist SymbolProfile[] @relation("UserWatchlist")
|
||||
@ -261,7 +262,6 @@ model User {
|
||||
AuthDevice AuthDevice[]
|
||||
Order Order[]
|
||||
Settings Settings?
|
||||
Subscription Subscription[]
|
||||
SymbolProfile SymbolProfile[]
|
||||
Tag Tag[]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user