diff --git a/CHANGELOG.md b/CHANGELOG.md index 713cf131..b4cb86aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,30 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 2.134.0 - 2025-01-15 + +### Added + +- Set up the language localization for Українська (`uk`) + +### Changed + +- Extended the health check endpoint to include database and cache operations (experimental) +- Refactored various `lodash` functions with native JavaScript equivalents +- Improved the language localization for German (`de`) +- Upgraded `prisma` from version `6.1.0` to `6.2.1` + +### Fixed + +- Fixed an issue with the import of activities with type `FEE` (where unit price is `0`) +- Fixed an issue with the renaming of activities with type `FEE`, `INTEREST`, `ITEM` or `LIABILITY` +- Handled an exception in the scraper configuration introduced by the migration from `got` to `fetch` + +## 2.133.1 - 2025-01-09 + +### Added + +- Added a _Copy AI prompt to clipboard_ action to the analysis page (experimental) ### Changed diff --git a/apps/api/src/app/app.module.ts b/apps/api/src/app/app.module.ts index 7ac2c591..6d097aef 100644 --- a/apps/api/src/app/app.module.ts +++ b/apps/api/src/app/app.module.ts @@ -31,6 +31,7 @@ import { AuthDeviceModule } from './auth-device/auth-device.module'; import { AuthModule } from './auth/auth.module'; import { BenchmarkModule } from './benchmark/benchmark.module'; import { CacheModule } from './cache/cache.module'; +import { AiModule } from './endpoints/ai/ai.module'; import { ApiKeysModule } from './endpoints/api-keys/api-keys.module'; import { GhostfolioModule } from './endpoints/data-providers/ghostfolio/ghostfolio.module'; import { MarketDataModule } from './endpoints/market-data/market-data.module'; @@ -57,6 +58,7 @@ import { UserModule } from './user/user.module'; AdminModule, AccessModule, AccountModule, + AiModule, ApiKeysModule, AssetModule, AuthDeviceModule, diff --git a/apps/api/src/app/benchmark/benchmark.service.ts b/apps/api/src/app/benchmark/benchmark.service.ts index a659281d..4e466668 100644 --- a/apps/api/src/app/benchmark/benchmark.service.ts +++ b/apps/api/src/app/benchmark/benchmark.service.ts @@ -38,7 +38,7 @@ import { isSameDay, subDays } from 'date-fns'; -import { isNumber, last, uniqBy } from 'lodash'; +import { isNumber, uniqBy } from 'lodash'; import ms from 'ms'; import { BenchmarkValue } from './interfaces/benchmark-value.interface'; @@ -258,7 +258,7 @@ export class BenchmarkService { } const includesEndDate = isSameDay( - parseDate(last(marketData).date), + parseDate(marketData.at(-1).date), endDate ); diff --git a/apps/api/src/app/endpoints/ai/ai.controller.ts b/apps/api/src/app/endpoints/ai/ai.controller.ts new file mode 100644 index 00000000..981b26aa --- /dev/null +++ b/apps/api/src/app/endpoints/ai/ai.controller.ts @@ -0,0 +1,39 @@ +import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator'; +import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'; +import { + DEFAULT_CURRENCY, + DEFAULT_LANGUAGE_CODE +} from '@ghostfolio/common/config'; +import { AiPromptResponse } from '@ghostfolio/common/interfaces'; +import { permissions } from '@ghostfolio/common/permissions'; +import type { RequestWithUser } from '@ghostfolio/common/types'; + +import { Controller, Get, Inject, UseGuards } from '@nestjs/common'; +import { REQUEST } from '@nestjs/core'; +import { AuthGuard } from '@nestjs/passport'; + +import { AiService } from './ai.service'; + +@Controller('ai') +export class AiController { + public constructor( + private readonly aiService: AiService, + @Inject(REQUEST) private readonly request: RequestWithUser + ) {} + + @Get('prompt') + @HasPermission(permissions.readAiPrompt) + @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async getPrompt(): Promise { + const prompt = await this.aiService.getPrompt({ + impersonationId: undefined, + languageCode: + this.request.user.Settings.settings.language ?? DEFAULT_LANGUAGE_CODE, + userCurrency: + this.request.user.Settings.settings.baseCurrency ?? DEFAULT_CURRENCY, + userId: this.request.user.id + }); + + return { prompt }; + } +} diff --git a/apps/api/src/app/endpoints/ai/ai.module.ts b/apps/api/src/app/endpoints/ai/ai.module.ts new file mode 100644 index 00000000..5a30f326 --- /dev/null +++ b/apps/api/src/app/endpoints/ai/ai.module.ts @@ -0,0 +1,51 @@ +import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/account-balance.service'; +import { AccountService } from '@ghostfolio/api/app/account/account.service'; +import { OrderModule } from '@ghostfolio/api/app/order/order.module'; +import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory'; +import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service'; +import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service'; +import { RulesService } from '@ghostfolio/api/app/portfolio/rules.service'; +import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; +import { UserModule } from '@ghostfolio/api/app/user/user.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module'; +import { ImpersonationModule } from '@ghostfolio/api/services/impersonation/impersonation.module'; +import { MarketDataModule } from '@ghostfolio/api/services/market-data/market-data.module'; +import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service'; +import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module'; +import { PortfolioSnapshotQueueModule } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.module'; +import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module'; + +import { Module } from '@nestjs/common'; + +import { AiController } from './ai.controller'; +import { AiService } from './ai.service'; + +@Module({ + controllers: [AiController], + imports: [ + ConfigurationModule, + DataProviderModule, + ExchangeRateDataModule, + ImpersonationModule, + MarketDataModule, + OrderModule, + PortfolioSnapshotQueueModule, + PrismaModule, + RedisCacheModule, + SymbolProfileModule, + UserModule + ], + providers: [ + AccountBalanceService, + AccountService, + AiService, + CurrentRateService, + MarketDataService, + PortfolioCalculatorFactory, + PortfolioService, + RulesService + ] +}) +export class AiModule {} diff --git a/apps/api/src/app/endpoints/ai/ai.service.ts b/apps/api/src/app/endpoints/ai/ai.service.ts new file mode 100644 index 00000000..59dec6ad --- /dev/null +++ b/apps/api/src/app/endpoints/ai/ai.service.ts @@ -0,0 +1,60 @@ +import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service'; + +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AiService { + public constructor(private readonly portfolioService: PortfolioService) {} + + public async getPrompt({ + impersonationId, + languageCode, + userCurrency, + userId + }: { + impersonationId: string; + languageCode: string; + userCurrency: string; + userId: string; + }) { + const { holdings } = await this.portfolioService.getDetails({ + impersonationId, + userId + }); + + const holdingsTable = [ + '| Name | Symbol | Currency | Asset Class | Asset Sub Class | Allocation in Percentage |', + '| --- | --- | --- | --- | --- | --- |', + ...Object.values(holdings) + .sort((a, b) => { + return b.allocationInPercentage - a.allocationInPercentage; + }) + .map( + ({ + allocationInPercentage, + assetClass, + assetSubClass, + currency, + name, + symbol + }) => { + return `| ${name} | ${symbol} | ${currency} | ${assetClass} | ${assetSubClass} | ${(allocationInPercentage * 100).toFixed(3)}% |`; + } + ) + ]; + + return [ + `You are a neutral financial assistant. Please analyze the following investment portfolio (base currency being ${userCurrency}) in simple words.`, + ...holdingsTable, + 'Structure your answer with these sections:', + 'Overview: Briefly summarize the portfolio’s composition and allocation rationale.', + 'Risk Assessment: Identify potential risks, including market volatility, concentration, and sectoral imbalances.', + 'Advantages: Highlight strengths, focusing on growth potential, diversification, or other benefits.', + 'Disadvantages: Point out weaknesses, such as overexposure or lack of defensive assets.', + 'Target Group: Discuss who this portfolio might suit (e.g., risk tolerance, investment goals, life stages, and experience levels).', + 'Optimization Ideas: Offer ideas to complement the portfolio, ensuring they are constructive and neutral in tone.', + 'Conclusion: Provide a concise summary highlighting key insights.', + `Provide your answer in the following language: ${languageCode}.` + ].join('\n'); + } +} diff --git a/apps/api/src/app/health/health.controller.ts b/apps/api/src/app/health/health.controller.ts index 62ee2041..6ff09825 100644 --- a/apps/api/src/app/health/health.controller.ts +++ b/apps/api/src/app/health/health.controller.ts @@ -3,13 +3,14 @@ import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interce import { Controller, Get, - HttpCode, HttpException, HttpStatus, Param, + Res, UseInterceptors } from '@nestjs/common'; import { DataSource } from '@prisma/client'; +import { Response } from 'express'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { HealthService } from './health.service'; @@ -19,9 +20,20 @@ export class HealthController { public constructor(private readonly healthService: HealthService) {} @Get() - @HttpCode(HttpStatus.OK) - public getHealth() { - return { status: getReasonPhrase(StatusCodes.OK) }; + public async getHealth(@Res() response: Response) { + const databaseServiceHealthy = await this.healthService.isDatabaseHealthy(); + const redisCacheServiceHealthy = + await this.healthService.isRedisCacheHealthy(); + + if (databaseServiceHealthy && redisCacheServiceHealthy) { + return response + .status(HttpStatus.OK) + .json({ status: getReasonPhrase(StatusCodes.OK) }); + } else { + return response + .status(HttpStatus.SERVICE_UNAVAILABLE) + .json({ status: getReasonPhrase(StatusCodes.SERVICE_UNAVAILABLE) }); + } } @Get('data-enhancer/:name') diff --git a/apps/api/src/app/health/health.module.ts b/apps/api/src/app/health/health.module.ts index 6ed46440..b8c4d581 100644 --- a/apps/api/src/app/health/health.module.ts +++ b/apps/api/src/app/health/health.module.ts @@ -1,6 +1,8 @@ +import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module'; import { DataEnhancerModule } from '@ghostfolio/api/services/data-provider/data-enhancer/data-enhancer.module'; import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { PropertyModule } from '@ghostfolio/api/services/property/property.module'; import { Module } from '@nestjs/common'; @@ -12,6 +14,8 @@ import { HealthService } from './health.service'; imports: [ DataEnhancerModule, DataProviderModule, + PropertyModule, + RedisCacheModule, TransformDataSourceInRequestModule ], providers: [HealthService] diff --git a/apps/api/src/app/health/health.service.ts b/apps/api/src/app/health/health.service.ts index b0c81139..f08f33a1 100644 --- a/apps/api/src/app/health/health.service.ts +++ b/apps/api/src/app/health/health.service.ts @@ -1,5 +1,8 @@ +import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service'; import { DataEnhancerService } from '@ghostfolio/api/services/data-provider/data-enhancer/data-enhancer.service'; import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; +import { PropertyService } from '@ghostfolio/api/services/property/property.service'; +import { PROPERTY_CURRENCIES } from '@ghostfolio/common/config'; import { Injectable } from '@nestjs/common'; import { DataSource } from '@prisma/client'; @@ -8,7 +11,9 @@ import { DataSource } from '@prisma/client'; export class HealthService { public constructor( private readonly dataEnhancerService: DataEnhancerService, - private readonly dataProviderService: DataProviderService + private readonly dataProviderService: DataProviderService, + private readonly propertyService: PropertyService, + private readonly redisCacheService: RedisCacheService ) {} public async hasResponseFromDataEnhancer(aName: string) { @@ -18,4 +23,24 @@ export class HealthService { public async hasResponseFromDataProvider(aDataSource: DataSource) { return this.dataProviderService.checkQuote(aDataSource); } + + public async isDatabaseHealthy() { + try { + await this.propertyService.getByKey(PROPERTY_CURRENCIES); + + return true; + } catch { + return false; + } + } + + public async isRedisCacheHealthy() { + try { + const isHealthy = await this.redisCacheService.isHealthy(); + + return isHealthy; + } catch { + return false; + } + } } diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 3b7290b4..eb1b841c 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -30,7 +30,7 @@ import { Injectable } from '@nestjs/common'; import { DataSource, Prisma, SymbolProfile } from '@prisma/client'; import { Big } from 'big.js'; import { endOfToday, format, isAfter, isSameSecond, parseISO } from 'date-fns'; -import { uniqBy } from 'lodash'; +import { isNumber, uniqBy } from 'lodash'; import { v4 as uuidv4 } from 'uuid'; @Injectable() @@ -328,7 +328,7 @@ export class ImportService { date ); - if (!unitPrice) { + if (!isNumber(unitPrice)) { throw new Error( `activities.${index} historical exchange rate at ${format( date, diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index eb18b358..2f8a9f0c 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -49,7 +49,7 @@ import { min, subDays } from 'date-fns'; -import { first, isNumber, last, sortBy, sum, uniq, uniqBy } from 'lodash'; +import { isNumber, sortBy, sum, uniq, uniqBy } from 'lodash'; export abstract class PortfolioCalculator { protected static readonly ENABLE_LOGGING = false; @@ -167,7 +167,7 @@ export abstract class PortfolioCalculator { @LogPerformance public async computeSnapshot(): Promise { - const lastTransactionPoint = last(this.transactionPoints); + const lastTransactionPoint = this.transactionPoints.at(-1); const transactionPoints = this.transactionPoints?.filter(({ date }) => { return isBefore(parseDate(date), this.endDate); @@ -772,9 +772,7 @@ export abstract class PortfolioCalculator { let firstActivityDate: Date; try { - const firstAccountBalanceDateString = first( - this.accountBalanceItems - )?.date; + const firstAccountBalanceDateString = this.accountBalanceItems[0]?.date; firstAccountBalanceDate = firstAccountBalanceDateString ? parseDate(firstAccountBalanceDateString) : new Date(); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts index 37499f0e..deb3cd72 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -201,7 +200,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: -15.8, netPerformanceInPercentage: -0.05528341497550734703, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts index 23c594e5..7b4d53b2 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -186,7 +185,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: -15.8, netPerformanceInPercentage: -0.05528341497550734703, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts index 90f6a59d..002cbd5e 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -177,7 +176,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 23.05, netPerformanceInPercentage: 0.08437042459736457, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts index e232b42c..640de398 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts @@ -20,7 +20,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -205,7 +204,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: new Big('27172.74').mul(0.97373).toNumber(), netPerformanceInPercentage: 42.41983590271396609433, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts index fe379a92..6f030a73 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -158,7 +157,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 0, netPerformanceInPercentage: 0, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts index 60fe6dc6..4e25c17f 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts @@ -20,7 +20,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -184,7 +183,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: new Big('26.33').mul(0.8854).toNumber(), netPerformanceInPercentage: 0.29544434470377019749, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts index 22856837..7fc5c526 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -158,7 +157,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 0, netPerformanceInPercentage: 0, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts index ba1cbeb3..54398542 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts @@ -20,7 +20,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -190,7 +189,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ totalInvestmentValueWithCurrencyEffect: 298.58 }) diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts index f9f99ee4..37f22e2f 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts @@ -21,7 +21,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; import { join } from 'path'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { @@ -182,7 +181,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 17.68, netPerformanceInPercentage: 0.12184460284330327256, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts index 66cdb9e8..caf196f5 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts @@ -21,7 +21,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; import { join } from 'path'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { @@ -229,7 +228,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 19.86, netPerformanceInPercentage: 0.13100263852242744063, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts index 3f53ee04..cf808deb 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts @@ -13,7 +13,7 @@ import { DateRange } from '@ghostfolio/common/types'; import { Logger } from '@nestjs/common'; import { Big } from 'big.js'; import { addMilliseconds, differenceInDays, format, isBefore } from 'date-fns'; -import { cloneDeep, first, last, sortBy } from 'lodash'; +import { cloneDeep, sortBy } from 'lodash'; export class TWRPortfolioCalculator extends PortfolioCalculator { private chartDates: string[]; @@ -221,7 +221,7 @@ export class TWRPortfolioCalculator extends PortfolioCalculator { }; } - const dateOfFirstTransaction = new Date(first(orders).date); + const dateOfFirstTransaction = new Date(orders[0].date); const endDateString = format(end, DATE_FORMAT); const startDateString = format(start, DATE_FORMAT); @@ -342,7 +342,7 @@ export class TWRPortfolioCalculator extends PortfolioCalculator { }); } - const lastOrder = last(orders); + const lastOrder = orders.at(-1); lastUnitPrice = lastOrder.unitPriceFromMarketData ?? lastOrder.unitPrice; } diff --git a/apps/api/src/app/portfolio/current-rate.service.ts b/apps/api/src/app/portfolio/current-rate.service.ts index ab7bf2eb..058bf1dd 100644 --- a/apps/api/src/app/portfolio/current-rate.service.ts +++ b/apps/api/src/app/portfolio/current-rate.service.ts @@ -13,7 +13,7 @@ import type { RequestWithUser } from '@ghostfolio/common/types'; import { Inject, Injectable } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { isBefore, isToday } from 'date-fns'; -import { flatten, isEmpty, uniqBy } from 'lodash'; +import { isEmpty, uniqBy } from 'lodash'; import { GetValueObject } from './interfaces/get-value-object.interface'; import { GetValuesObject } from './interfaces/get-values-object.interface'; @@ -102,7 +102,9 @@ export class CurrentRateService { }) ); - const values = flatten(await Promise.all(promises)); + const values = await Promise.all(promises).then((array) => { + return array.flat(); + }); const response: GetValuesObject = { dataProviderInfos, diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 400b0c3a..8b295aad 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -77,7 +77,7 @@ import { parseISO, set } from 'date-fns'; -import { isEmpty, last, uniq } from 'lodash'; +import { isEmpty, uniq } from 'lodash'; import { PortfolioCalculator } from './calculator/portfolio-calculator'; import { @@ -1133,18 +1133,15 @@ export class PortfolioService { netWorth, totalInvestment, valueWithCurrencyEffect - } = - chart?.length > 0 - ? last(chart) - : { - netPerformance: 0, - netPerformanceInPercentage: 0, - netPerformanceInPercentageWithCurrencyEffect: 0, - netPerformanceWithCurrencyEffect: 0, - netWorth: 0, - totalInvestment: 0, - valueWithCurrencyEffect: 0 - }; + } = chart?.at(-1) ?? { + netPerformance: 0, + netPerformanceInPercentage: 0, + netPerformanceInPercentageWithCurrencyEffect: 0, + netPerformanceWithCurrencyEffect: 0, + netWorth: 0, + totalInvestment: 0, + valueWithCurrencyEffect: 0 + }; return { chart, diff --git a/apps/api/src/app/redis-cache/redis-cache.service.ts b/apps/api/src/app/redis-cache/redis-cache.service.ts index c972c30a..51db93ec 100644 --- a/apps/api/src/app/redis-cache/redis-cache.service.ts +++ b/apps/api/src/app/redis-cache/redis-cache.service.ts @@ -7,6 +7,7 @@ import { Inject, Injectable, Logger } from '@nestjs/common'; import { Milliseconds } from 'cache-manager'; import { RedisCache } from 'cache-manager-redis-yet'; import { createHash } from 'crypto'; +import ms from 'ms'; @Injectable() export class RedisCacheService { @@ -59,6 +60,26 @@ export class RedisCacheService { return `quote-${getAssetProfileIdentifier({ dataSource, symbol })}`; } + public async isHealthy() { + try { + const client = this.cache.store.client; + + const isHealthy = await Promise.race([ + client.ping(), + new Promise((_, reject) => + setTimeout( + () => reject(new Error('Redis health check timeout')), + ms('2 seconds') + ) + ) + ]); + + return isHealthy === 'PONG'; + } catch (error) { + return false; + } + } + public async remove(key: string) { return this.cache.del(key); } diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 33e9a67d..b5c71179 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -312,7 +312,8 @@ export class UserService { currentPermissions = without( currentPermissions, permissions.accessHoldingsChart, - permissions.createAccess + permissions.createAccess, + permissions.readAiPrompt ); // Reset benchmark diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml index 5a49f671..9fd989f4 100644 --- a/apps/api/src/assets/sitemap.xml +++ b/apps/api/src/assets/sitemap.xml @@ -583,6 +583,12 @@ ${currentDate}T00:00:00+00:00 + Dutch, French, German, Italian, - Portuguese, Spanish and Turkish are currently supported. + Portuguese, Spanish and Turkish + + are currently supported.

diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts index 506a46a3..271a5cd5 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts @@ -1,7 +1,5 @@ import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { validateObjectForForm } from '@ghostfolio/client/util/form.util'; import { getDateFormatString } from '@ghostfolio/common/helper'; import { translate } from '@ghostfolio/ui/i18n'; @@ -24,6 +22,8 @@ import { isAfter, isToday } from 'date-fns'; import { EMPTY, Observable, Subject, lastValueFrom, of } from 'rxjs'; import { catchError, delay, map, startWith, takeUntil } from 'rxjs/operators'; +import { DataService } from '../../../../services/data.service'; +import { validateObjectForForm } from '../../../../util/form.util'; import { CreateOrUpdateActivityDialogParams } from './interfaces/interfaces'; @Component({ @@ -124,7 +124,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { name: [this.data.activity?.SymbolProfile?.name, Validators.required], quantity: [this.data.activity?.quantity, Validators.required], searchSymbol: [ - !!this.data.activity?.SymbolProfile + this.data.activity?.SymbolProfile ? { dataSource: this.data.activity?.SymbolProfile?.dataSource, symbol: this.data.activity?.SymbolProfile?.symbol @@ -476,7 +476,11 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { fee: this.activityForm.get('fee').value, quantity: this.activityForm.get('quantity').value, symbol: - this.activityForm.get('searchSymbol')?.value?.symbol ?? + (['FEE', 'INTEREST', 'ITEM', 'LIABILITY'].includes( + this.activityForm.get('type').value + ) + ? undefined + : this.activityForm.get('searchSymbol')?.value?.symbol) ?? this.activityForm.get('name')?.value, tags: this.activityForm.get('tags').value, type: this.activityForm.get('type').value, @@ -485,8 +489,9 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { try { if (this.mode === 'create') { - (activity as CreateOrderDto).updateAccountBalance = - this.activityForm.get('updateAccountBalance').value; + activity.updateAccountBalance = this.activityForm.get( + 'updateAccountBalance' + ).value; await validateObjectForForm({ classDto: CreateOrderDto, @@ -495,7 +500,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { object: activity }); - this.dialogRef.close(activity as CreateOrderDto); + this.dialogRef.close(activity); } else { (activity as UpdateOrderDto).id = this.data.activity.id; diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts index 76281d9e..acc561f1 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts @@ -12,10 +12,13 @@ import { ToggleOption, User } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { GroupBy } from '@ghostfolio/common/types'; import { translate } from '@ghostfolio/ui/i18n'; +import { Clipboard } from '@angular/cdk/clipboard'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { SymbolProfile } from '@prisma/client'; import { isNumber, sortBy } from 'lodash'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -40,6 +43,7 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { public dividendTimelineDataLabel = $localize`Dividend`; public firstOrderDate: Date; public hasImpersonationId: boolean; + public hasPermissionToReadAiPrompt: boolean; public investments: InvestmentItem[]; public investmentTimelineDataLabel = $localize`Investment`; public investmentsByGroup: InvestmentItem[]; @@ -74,9 +78,11 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { public constructor( private changeDetectorRef: ChangeDetectorRef, + private clipboard: Clipboard, private dataService: DataService, private deviceService: DeviceDetectorService, private impersonationStorageService: ImpersonationStorageService, + private snackBar: MatSnackBar, private userService: UserService ) { const { benchmarks } = this.dataService.fetchInfo(); @@ -133,6 +139,11 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { return id === this.user.settings?.benchmark; }); + this.hasPermissionToReadAiPrompt = hasPermission( + this.user.permissions, + permissions.readAiPrompt + ); + this.update(); } }); @@ -159,6 +170,20 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { this.fetchDividendsAndInvestments(); } + public onCopyPromptToClipboard() { + this.dataService.fetchPrompt().subscribe(({ prompt }) => { + this.clipboard.copy(prompt); + + this.snackBar.open( + '✅ ' + $localize`AI prompt has been copied to the clipboard`, + undefined, + { + duration: 3000 + } + ); + }); + } + public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html index f5ad2538..8e7a63d8 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html @@ -1,5 +1,37 @@

Analysis

+ @if (user?.settings?.isExperimentalFeatures) { +
+
+
+ + + + +
+
+
+ }
+ @if (label) { +
+ {{ label }} +
+ }

diff --git a/apps/client/src/app/pages/pricing/pricing-page.scss b/apps/client/src/app/pages/pricing/pricing-page.scss index ad8e97b1..c92ca364 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.scss +++ b/apps/client/src/app/pages/pricing/pricing-page.scss @@ -23,6 +23,12 @@ ion-icon[name='checkmark-circle-outline'] { color: rgba(var(--palette-primary-500), 1); } + + .badge-container { + left: 0; + right: 0; + top: 0; + } } } diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index 269a03e3..4a57d587 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -22,6 +22,7 @@ import { Access, AccountBalancesResponse, Accounts, + AiPromptResponse, ApiKeyResponse, AssetProfileIdentifier, BenchmarkMarketDataDetails, @@ -637,6 +638,10 @@ export class DataService { return this.http.get('/api/v1/portfolio/report'); } + public fetchPrompt() { + return this.http.get('/api/v1/ai/prompt'); + } + public fetchPublicPortfolio(aAccessId: string) { return this.http .get(`/api/v1/public/${aAccessId}/portfolio`) diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 9981f2a6..35cdf2a8 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -344,9 +344,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -354,7 +358,7 @@ El risc d’assumir pèrdues en les inversions és substancial. No és recomanable invertir diners que pugui necessitar a curt termini. apps/client/src/app/app.component.html - 200 + 205 @@ -575,7 +579,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -734,7 +738,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -879,7 +883,7 @@ Realment vol revocar aquest accés? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -2423,7 +2427,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -2439,7 +2443,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -2511,7 +2515,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -2827,7 +2831,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -3099,7 +3103,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -3119,7 +3123,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -3135,7 +3139,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -3151,7 +3155,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -3163,7 +3167,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -3179,7 +3183,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -3299,7 +3303,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -3351,7 +3355,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -3383,7 +3387,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -3391,7 +3395,7 @@ Do you really want to remove this sign in method? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -3399,7 +3403,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -3455,7 +3459,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -3463,7 +3467,7 @@ Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -3471,7 +3475,7 @@ Appearance apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -3479,7 +3483,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -3487,7 +3491,7 @@ Light apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -3495,7 +3499,7 @@ Dark apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -3503,7 +3507,7 @@ Zen Mode apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -3515,7 +3519,7 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -3523,7 +3527,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -3531,7 +3535,7 @@ Sign in with fingerprint apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -3539,7 +3543,7 @@ Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -3547,7 +3551,7 @@ Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3555,7 +3559,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -3563,7 +3567,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -3571,7 +3575,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -4083,7 +4087,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -4091,7 +4095,7 @@ Get Started apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -4211,7 +4215,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -5067,7 +5071,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -5079,11 +5083,11 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -5095,7 +5099,7 @@ Monthly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -5103,7 +5107,7 @@ Yearly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -5119,7 +5123,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -5127,7 +5131,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -5135,7 +5139,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -5143,7 +5147,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -5151,7 +5155,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -5159,7 +5163,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -5167,7 +5171,7 @@ Top apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -5175,7 +5179,7 @@ Bottom apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -5183,7 +5187,7 @@ Portfolio Evolution apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -5191,7 +5195,7 @@ Investment Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -5199,7 +5203,7 @@ Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -5207,7 +5211,7 @@ Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -5215,7 +5219,7 @@ Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -5319,7 +5323,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -5335,7 +5339,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -5351,7 +5355,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -5367,7 +5371,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -5415,7 +5419,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -5423,7 +5427,7 @@ For ambitious investors who need the full picture of their financial assets. apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -5431,7 +5435,7 @@ Email and Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -5439,7 +5443,7 @@ One-time payment, no auto-renewal. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -5447,7 +5451,7 @@ It’s free. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -7636,6 +7640,30 @@ 59 + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index fe4be371..b0dd8d4f 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -22,7 +22,7 @@ Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst. apps/client/src/app/app.component.html - 200 + 205 @@ -74,7 +74,7 @@ Möchtest du diese Zugangsberechtigung wirklich widerrufen? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -1026,7 +1026,7 @@ Registrieren apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -1054,7 +1054,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -1090,7 +1090,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1694,7 +1694,7 @@ Möchtest du diese Anmeldemethode wirklich löschen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -1730,7 +1730,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -1770,7 +1770,7 @@ Lokalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -1778,7 +1778,7 @@ Datums- und Zahlenformat apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -1786,7 +1786,7 @@ Zen Modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -1798,7 +1798,7 @@ Einloggen mit Fingerabdruck apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -1810,7 +1810,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -2146,7 +2146,7 @@ Zeitstrahl der Investitionen apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2154,7 +2154,7 @@ Gewinner apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2162,7 +2162,7 @@ Verlierer apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -2806,7 +2806,7 @@ Monatlich apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -2910,7 +2910,7 @@ Experimentelle Funktionen apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -2958,7 +2958,7 @@ Aussehen apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -2966,7 +2966,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -2974,7 +2974,7 @@ Hell apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -2982,7 +2982,7 @@ Dunkel apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -2998,7 +2998,7 @@ Portfolio Wertentwicklung apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -3280,9 +3280,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -3314,7 +3318,7 @@ Zeitstrahl der Dividenden apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3322,7 +3326,7 @@ Dividenden apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -3430,7 +3434,7 @@ Jährlich apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -3514,7 +3518,7 @@ Unbeschwertes Erlebnis für turbulente Zeiten apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -3522,7 +3526,7 @@ Vorschau auf kommende Funktionalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3546,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -3562,7 +3566,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -3578,7 +3582,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -3594,7 +3598,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -3622,7 +3626,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -3646,7 +3650,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -3662,7 +3666,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -3678,7 +3682,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -3718,7 +3722,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -3726,7 +3730,7 @@ Für ambitionierte Anleger, die den vollständigen Überblick über ihr Anlagevermögen benötigen. apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -3734,7 +3738,7 @@ Einmalige Zahlung, keine automatische Erneuerung. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -3750,7 +3754,7 @@ Es ist kostenlos. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -3786,7 +3790,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -3810,7 +3814,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -3834,7 +3838,7 @@ E-Mail und Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -3894,7 +3898,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -3918,7 +3922,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -4174,7 +4178,7 @@ Aktueller Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4182,7 +4186,7 @@ Längster Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4354,7 +4358,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -4762,7 +4766,7 @@ Biometrische Authentifizierung apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -4846,7 +4850,7 @@ Daten exportieren apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -4946,7 +4950,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -5304,7 +5308,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -5586,7 +5590,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -6311,11 +6315,11 @@ Einlage apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -6327,7 +6331,7 @@ Absolute Anlage Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6335,7 +6339,7 @@ Anlage Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6343,7 +6347,7 @@ Absolute Währungsperformance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6351,7 +6355,7 @@ Währungsperformance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6359,7 +6363,7 @@ Absolute Netto Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6367,7 +6371,7 @@ Netto Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6647,7 +6651,7 @@ Möchtest du dieses Ghostfolio Konto wirklich schliessen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -6655,7 +6659,7 @@ Gefahrenzone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6663,7 +6667,7 @@ Konto schliessen apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -6695,7 +6699,7 @@ Ups! Beim Einrichten der biometrischen Authentifizierung ist ein Fehler aufgetreten. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -7092,7 +7096,7 @@ Change with currency effect Change - Änderung mit Währungseffekt Change + Änderung mit Währungseffekt Änderung apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 50 @@ -7636,6 +7640,30 @@ 59 + + AI prompt has been copied to the clipboard + KI-Anweisung wurde in die Zwischenablage kopiert + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Kopiere KI-Anweisung die Zwischenablage + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link wurde in die Zwischenablage kopiert + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 56bf700b..9277735a 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -23,7 +23,7 @@ El riesgo de pérdida en trading puede ser sustancial. No es aconsejable invertir dinero que puedas necesitar a corto plazo. apps/client/src/app/app.component.html - 200 + 205 @@ -75,7 +75,7 @@ ¿Quieres revocar el acceso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -1027,7 +1027,7 @@ Empezar apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -1055,7 +1055,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -1091,7 +1091,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1695,7 +1695,7 @@ ¿Estás seguro de eliminar este método de acceso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -1731,7 +1731,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -1771,7 +1771,7 @@ Ubicación apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -1779,7 +1779,7 @@ Formato de fecha y número apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -1787,7 +1787,7 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -1799,7 +1799,7 @@ Iniciar sesión con huella digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -1811,7 +1811,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -2147,7 +2147,7 @@ Cronología de la inversión apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2155,7 +2155,7 @@ Lo mejor apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2163,7 +2163,7 @@ Lo peor apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -2835,7 +2835,7 @@ Mensual apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -2911,7 +2911,7 @@ Funcionalidades experimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -2959,7 +2959,7 @@ Apariencia apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -2967,7 +2967,7 @@ Automático apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -2975,7 +2975,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -2983,7 +2983,7 @@ Oscuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -2999,7 +2999,7 @@ Evolución cartera apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -3281,9 +3281,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -3315,7 +3319,7 @@ Dividendo apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -3327,7 +3331,7 @@ Calendario de dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3431,7 +3435,7 @@ Anual apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -3515,7 +3519,7 @@ Experiencia sin distracciones para tiempos turbulentos apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -3523,7 +3527,7 @@ Un adelanto de las próximas funciones apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3547,7 +3551,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -3563,7 +3567,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -3579,7 +3583,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -3595,7 +3599,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -3623,7 +3627,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -3647,7 +3651,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -3663,7 +3667,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -3679,7 +3683,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -3719,7 +3723,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -3727,7 +3731,7 @@ Para inversores ambiciosos que necesitan una visión completa de sus activos financieros apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -3735,7 +3739,7 @@ Pago único, sin renovación automática. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -3751,7 +3755,7 @@ Es gratis. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -3787,7 +3791,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -3811,7 +3815,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -3835,7 +3839,7 @@ Soporte a Traves de Email y Chat apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -3895,7 +3899,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -3919,7 +3923,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -4175,7 +4179,7 @@ Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4183,7 +4187,7 @@ Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4355,7 +4359,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -4763,7 +4767,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -4847,7 +4851,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -4947,7 +4951,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -5305,7 +5309,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -5587,7 +5591,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -6312,11 +6316,11 @@ Inversión apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -6328,7 +6332,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6336,7 +6340,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6344,7 +6348,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6352,7 +6356,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6360,7 +6364,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6368,7 +6372,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6648,7 +6652,7 @@ ¿Estás seguro de querer borrar tu cuenta de Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -6656,7 +6660,7 @@ Zona peligrosa apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6664,7 +6668,7 @@ Eliminar cuenta apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -6696,7 +6700,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -7637,6 +7641,30 @@ 59 + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 4159e464..245337d6 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -6,7 +6,7 @@ Le risque de perte en investissant peut être important. Il est déconseillé d’investir de l’argent dont vous pourriez avoir besoin à court terme. apps/client/src/app/app.component.html - 200 + 205 @@ -70,7 +70,7 @@ Voulez-vous vraiment révoquer cet accès ? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -1374,7 +1374,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -1450,7 +1450,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1954,7 +1954,7 @@ Voulez-vous vraiment supprimer cette méthode de connexion ? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -1990,7 +1990,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -2076,9 +2076,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -2086,7 +2090,7 @@ Paramètres régionaux apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -2094,7 +2098,7 @@ Format de date et d’heure apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -2102,7 +2106,7 @@ Apparence apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -2110,7 +2114,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -2118,7 +2122,7 @@ Clair apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -2126,7 +2130,7 @@ Sombre apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -2134,7 +2138,7 @@ Mode Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -2146,7 +2150,7 @@ Se connecter avec empreinte apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -2154,7 +2158,7 @@ Fonctionnalités expérimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -2166,7 +2170,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -2746,7 +2750,7 @@ Dividende apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -2766,7 +2770,7 @@ Mensuel apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -2782,7 +2786,7 @@ Haut apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2790,7 +2794,7 @@ Bas apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -2798,7 +2802,7 @@ Évolution du Portefeuille apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -2806,7 +2810,7 @@ Historique des Investissements apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2814,7 +2818,7 @@ Historique des Dividendes apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -2906,7 +2910,7 @@ Démarrer apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -3430,7 +3434,7 @@ Annuel apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -3514,7 +3518,7 @@ Expérience sans distraction pour les périodes tumultueuses apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -3522,7 +3526,7 @@ Avant-première de fonctionnalités futures apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3546,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -3562,7 +3566,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -3578,7 +3582,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -3594,7 +3598,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -3622,7 +3626,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -3646,7 +3650,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -3662,7 +3666,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -3678,7 +3682,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -3718,7 +3722,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -3726,7 +3730,7 @@ Pour les investisseurs ambitieux qui ont besoin d’une vue complète de leurs actifs financiers. apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -3734,7 +3738,7 @@ Paiement unique, sans auto-renouvellement. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -3750,7 +3754,7 @@ C’est gratuit. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -3786,7 +3790,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -3810,7 +3814,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -3834,7 +3838,7 @@ Support par E-mail et Tchat apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -3894,7 +3898,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -3918,7 +3922,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -4174,7 +4178,7 @@ Série en cours apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4182,7 +4186,7 @@ Série la plus longue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4354,7 +4358,7 @@ Logiciel Open Source apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -4762,7 +4766,7 @@ Authentication biométrique apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -4846,7 +4850,7 @@ Exporter les Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -4946,7 +4950,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -5304,7 +5308,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -5586,7 +5590,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -6311,11 +6315,11 @@ Investissement apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -6327,7 +6331,7 @@ Performance des Actifs en valeur absolue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6335,7 +6339,7 @@ Performance des Actifs apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6343,7 +6347,7 @@ Performance des devises en valeur absolue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6351,7 +6355,7 @@ Performance des devises apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6359,7 +6363,7 @@ Performance nette absolue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6367,7 +6371,7 @@ Performance nette apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6647,7 +6651,7 @@ Confirmer la suppresion de votre compte Ghostfolio ? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -6655,7 +6659,7 @@ Zone de danger apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6663,7 +6667,7 @@ Supprimer le compte apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -6695,7 +6699,7 @@ Oops! Une erreur s'est produite lors de la configuration de l'authentification biométrique. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -7636,6 +7640,30 @@ 59 + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 8423c6f6..acb9b8e4 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -23,7 +23,7 @@ Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine. apps/client/src/app/app.component.html - 200 + 205 @@ -75,7 +75,7 @@ Vuoi davvero revocare l’accesso concesso? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -1027,7 +1027,7 @@ Inizia apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -1055,7 +1055,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -1091,7 +1091,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1695,7 +1695,7 @@ Vuoi davvero rimuovere questo metodo di accesso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -1731,7 +1731,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -1771,7 +1771,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -1779,7 +1779,7 @@ Formato data e numero apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -1787,7 +1787,7 @@ Modalità Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -1799,7 +1799,7 @@ Accesso con impronta digitale apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -1811,7 +1811,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -2147,7 +2147,7 @@ Cronologia degli investimenti apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2155,7 +2155,7 @@ In alto apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2163,7 +2163,7 @@ In basso apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -2835,7 +2835,7 @@ Mensile apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -2911,7 +2911,7 @@ Funzionalità sperimentali apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -2959,7 +2959,7 @@ Aspetto apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -2967,7 +2967,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -2975,7 +2975,7 @@ Chiaro apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -2983,7 +2983,7 @@ Scuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -2999,7 +2999,7 @@ Evoluzione del portafoglio apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -3281,9 +3281,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -3315,7 +3319,7 @@ Dividendi apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -3327,7 +3331,7 @@ Cronologia dei dividendi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3431,7 +3435,7 @@ Annuale apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -3515,7 +3519,7 @@ Esperienza priva di distrazioni per i periodi più turbolenti apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -3523,7 +3527,7 @@ Un’anteprima delle funzionalità in arrivo apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3547,7 +3551,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -3563,7 +3567,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -3579,7 +3583,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -3595,7 +3599,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -3623,7 +3627,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -3647,7 +3651,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -3663,7 +3667,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -3679,7 +3683,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -3719,7 +3723,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -3727,7 +3731,7 @@ Per gli investitori ambiziosi che hanno bisogno di un quadro completo dei propri asset finanziari. apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -3735,7 +3739,7 @@ Pagamento una tantum, senza rinnovo automatico. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -3751,7 +3755,7 @@ È gratuito. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -3787,7 +3791,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -3811,7 +3815,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -3835,7 +3839,7 @@ Supporto via email e chat apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -3895,7 +3899,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -3919,7 +3923,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -4175,7 +4179,7 @@ Serie attuale apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4183,7 +4187,7 @@ Serie più lunga apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4355,7 +4359,7 @@ Software open source apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -4763,7 +4767,7 @@ Autenticazione biometrica apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -4847,7 +4851,7 @@ Esporta dati apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -4947,7 +4951,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -5305,7 +5309,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -5587,7 +5591,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -6312,11 +6316,11 @@ Investimento apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -6328,7 +6332,7 @@ Rendimento assoluto dell'Asset apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6336,7 +6340,7 @@ Rendimento dell'Asset apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6344,7 +6348,7 @@ Rendimento assoluto della Valuta apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6352,7 +6356,7 @@ Rendimento della Valuta apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6360,7 +6364,7 @@ Rendimento assoluto della Valuta apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6368,7 +6372,7 @@ Rendimento Netto apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6648,7 +6652,7 @@ Confermi di voler chiudere il tuo account Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -6656,7 +6660,7 @@ Zona di Pericolo apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6664,7 +6668,7 @@ Chiudi l'account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -6696,7 +6700,7 @@ Ops! C'è stato un errore impostando l'autenticazione biometrica. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -7093,7 +7097,7 @@ Change with currency effect Change - Cambio con effetto valuta Cambia + Cambio con effetto valuta Cambia apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 50 @@ -7101,7 +7105,7 @@ Performance with currency effect Performance - Prestazioni con effetto valuta Prestazioni + Prestazioni con effetto valuta Prestazioni apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 69 @@ -7637,6 +7641,30 @@ 59 + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 71e3d1f5..92da1fbc 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -22,7 +22,7 @@ Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft. apps/client/src/app/app.component.html - 200 + 205 @@ -74,7 +74,7 @@ Wil je deze verleende toegang echt intrekken? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -1026,7 +1026,7 @@ Aan de slag apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -1054,7 +1054,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -1090,7 +1090,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1694,7 +1694,7 @@ Wil je deze aanmeldingsmethode echt verwijderen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -1730,7 +1730,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -1770,7 +1770,7 @@ Locatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -1778,7 +1778,7 @@ Datum- en getalnotatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -1786,7 +1786,7 @@ Zen-modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -1798,7 +1798,7 @@ Aanmelden met vingerafdruk apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -1810,7 +1810,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -2146,7 +2146,7 @@ Tijdlijn investeringen apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2154,7 +2154,7 @@ Winnaars apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2162,7 +2162,7 @@ Verliezers apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -2834,7 +2834,7 @@ Maandelijks apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -2910,7 +2910,7 @@ Experimentele functies apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -2958,7 +2958,7 @@ Weergave apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -2966,7 +2966,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -2974,7 +2974,7 @@ Licht apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -2982,7 +2982,7 @@ Donker apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -2998,7 +2998,7 @@ Waardeontwikkeling van portefeuille apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -3280,9 +3280,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -3314,7 +3318,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -3326,7 +3330,7 @@ Tijdlijn dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3430,7 +3434,7 @@ Jaarlijks apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -3514,7 +3518,7 @@ Afleidingsvrije ervaring voor roerige tijden apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -3522,7 +3526,7 @@ Voorproefje van nieuwe functionaliteit apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3546,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -3562,7 +3566,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -3578,7 +3582,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -3594,7 +3598,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -3622,7 +3626,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -3646,7 +3650,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -3662,7 +3666,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -3678,7 +3682,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -3718,7 +3722,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -3726,7 +3730,7 @@ Voor ambitieuze beleggers die een volledig beeld willen hebben van hun financiële assets. apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -3734,7 +3738,7 @@ Eenmalige betaling, geen automatische verlenging. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -3750,7 +3754,7 @@ Het is gratis. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -3786,7 +3790,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -3810,7 +3814,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -3834,7 +3838,7 @@ Ondersteuning via e-mail en chat apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -3894,7 +3898,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -3918,7 +3922,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -4174,7 +4178,7 @@ Huidige reeks apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4182,7 +4186,7 @@ Langste reeks apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4354,7 +4358,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -4762,7 +4766,7 @@ Biometrische authenticatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -4846,7 +4850,7 @@ Exporteer Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -4946,7 +4950,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -5304,7 +5308,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -5586,7 +5590,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -6311,11 +6315,11 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -6327,7 +6331,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6335,7 +6339,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6343,7 +6347,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6351,7 +6355,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6359,7 +6363,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6367,7 +6371,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6647,7 +6651,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -6655,7 +6659,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6663,7 +6667,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -6695,7 +6699,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -7636,6 +7640,30 @@ 59 + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index d2a4090e..2935020d 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -185,7 +185,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -378,7 +378,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -761,9 +761,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -771,7 +775,7 @@ Ryzyko strat na rynku może być znaczne. Nie jest zalecane inwestowanie pieniędzy, które mogą być potrzebne w krótkim okresie. apps/client/src/app/app.component.html - 200 + 205 @@ -835,7 +839,7 @@ Czy na pewno chcesz cofnąć przyznany dostęp? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -2315,7 +2319,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -2475,7 +2479,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2831,7 +2835,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -2851,7 +2855,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -2867,7 +2871,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -2883,7 +2887,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -2895,7 +2899,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -2911,7 +2915,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -2947,7 +2951,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -3075,7 +3079,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -3107,7 +3111,7 @@ Czy na pewno chcesz usunąć tą metode logowania? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -3155,7 +3159,7 @@ Ustawienia Regionalne apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -3163,7 +3167,7 @@ Format daty i liczb apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -3171,7 +3175,7 @@ Wygląd (tryb) apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -3179,7 +3183,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -3187,7 +3191,7 @@ Jasny apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -3195,7 +3199,7 @@ Ciemny apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -3203,7 +3207,7 @@ Tryb Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -3215,7 +3219,7 @@ Doświadczenie bez zakłóceń w niespokojnych czasach apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -3223,7 +3227,7 @@ Uwierzytelnianie Biometryczne apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -3231,7 +3235,7 @@ Logowanie za pomocą linii papilarnych apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -3239,7 +3243,7 @@ Funkcje Eksperymentalne apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -3247,7 +3251,7 @@ Podgląd nadchodzących funkcjonalności apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3259,7 +3263,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -3267,7 +3271,7 @@ Eksportuj Dane apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -3707,7 +3711,7 @@ Oprogramowanie Open Source apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -3715,7 +3719,7 @@ Rozpocznij apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -3827,7 +3831,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -4659,7 +4663,7 @@ Dywidenda apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -4679,7 +4683,7 @@ Miesięcznie apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -4687,7 +4691,7 @@ Rocznie apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -4703,7 +4707,7 @@ Największe wzrosty apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -4711,7 +4715,7 @@ Największy spadek apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -4719,7 +4723,7 @@ Rozwój portfela apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -4727,7 +4731,7 @@ Oś czasu inwestycji apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -4735,7 +4739,7 @@ Obecna passa apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4743,7 +4747,7 @@ Najdłuższa passa apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4751,7 +4755,7 @@ Oś czasu dywidend apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -4867,7 +4871,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -4883,7 +4887,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -4899,7 +4903,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -4915,7 +4919,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -4963,7 +4967,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -4971,7 +4975,7 @@ Dla ambitnych inwestorów, którzy potrzebują pełnego obrazu swoich aktywów finansowych. apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -4979,7 +4983,7 @@ Wsparcie przez E-mail i Czat apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -4995,7 +4999,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -5003,7 +5007,7 @@ Płatność jednorazowa, bez automatycznego odnawiania. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -5019,7 +5023,7 @@ Jest bezpłatny. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -6311,11 +6315,11 @@ Inwestycje apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -6327,7 +6331,7 @@ Łączny wynik aktywów apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6335,7 +6339,7 @@ Wyniki aktywów apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6343,7 +6347,7 @@ Łączny wynik walut apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6351,7 +6355,7 @@ Wynik walut apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6359,7 +6363,7 @@ Łączna wartość netto apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6367,7 +6371,7 @@ Wynik netto apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6647,7 +6651,7 @@ Czy na pewno chcesz zamknąć swoje konto Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -6655,7 +6659,7 @@ Strefa Zagrożenia apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6663,7 +6667,7 @@ Zamknij Konto apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -6695,7 +6699,7 @@ Ups! Wystąpił błąd podczas konfigurowania uwierzytelniania biometrycznego. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -7636,6 +7640,30 @@ 59 + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index f8034354..3aa493ec 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -6,7 +6,7 @@ O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo. apps/client/src/app/app.component.html - 200 + 205 @@ -70,7 +70,7 @@ Pretende realmente revogar este acesso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -1242,7 +1242,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -1326,7 +1326,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1938,7 +1938,7 @@ Deseja realmente remover este método de início de sessão? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -1974,7 +1974,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -2034,7 +2034,7 @@ Localidade apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -2042,7 +2042,7 @@ Formato de números e datas apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -2050,7 +2050,7 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -2062,7 +2062,7 @@ Aparência apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -2070,7 +2070,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -2078,7 +2078,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -2086,7 +2086,7 @@ Escuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -2094,7 +2094,7 @@ Iniciar sessão com impressão digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -2102,7 +2102,7 @@ Funcionalidades Experimentais apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -2114,7 +2114,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -2654,7 +2654,7 @@ Mensalmente apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -2670,7 +2670,7 @@ Topo apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2678,7 +2678,7 @@ Fundo apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -2686,7 +2686,7 @@ Evolução do Portefólio apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -2694,7 +2694,7 @@ Cronograma de Investimento apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2806,7 +2806,7 @@ Começar apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -3324,9 +3324,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -3382,7 +3386,7 @@ Dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -3394,7 +3398,7 @@ Cronograma de Dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3430,7 +3434,7 @@ Anualmente apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -3514,7 +3518,7 @@ Experiência sem distrações para tempos turbulentos apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -3522,7 +3526,7 @@ Acesso antecipado a funcionalidades futuras apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3546,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -3562,7 +3566,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -3578,7 +3582,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -3594,7 +3598,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -3622,7 +3626,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -3646,7 +3650,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -3662,7 +3666,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -3678,7 +3682,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -3718,7 +3722,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -3726,7 +3730,7 @@ Para investidores ambiciosos que precisam de ter uma visão completa de seus ativos financeiros. apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -3734,7 +3738,7 @@ Pagamento único, sem renovação automática. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -3750,7 +3754,7 @@ É gratuito. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -3786,7 +3790,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -3810,7 +3814,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -3834,7 +3838,7 @@ Suporte por Email e Chat apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -3894,7 +3898,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -3918,7 +3922,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -4174,7 +4178,7 @@ Série Atual apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4182,7 +4186,7 @@ Série mais Longa apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4354,7 +4358,7 @@ Software de código aberto apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -4762,7 +4766,7 @@ Autenticação biométrica apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -4846,7 +4850,7 @@ Exportar dados apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -4946,7 +4950,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -5304,7 +5308,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -5586,7 +5590,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -6311,11 +6315,11 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -6327,7 +6331,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6335,7 +6339,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6343,7 +6347,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6351,7 +6355,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6359,7 +6363,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6367,7 +6371,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6647,7 +6651,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -6655,7 +6659,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6663,7 +6667,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -6695,7 +6699,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -7636,6 +7640,30 @@ 59 + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 62e9608f..7734dae5 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -185,7 +185,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -378,7 +378,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -737,9 +737,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -747,7 +751,7 @@ Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez. apps/client/src/app/app.component.html - 200 + 205 @@ -811,7 +815,7 @@ Bu erişim iznini geri almayı gerçekten istiyor musunuz? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -2167,7 +2171,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -2327,7 +2331,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2675,7 +2679,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -2695,7 +2699,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -2711,7 +2715,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -2727,7 +2731,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -2739,7 +2743,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -2755,7 +2759,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -2791,7 +2795,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -3235,7 +3239,7 @@ Zen Modu apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -3271,7 +3275,7 @@ Açık Kaynak Yazılım apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -3279,7 +3283,7 @@ Başla apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -3367,7 +3371,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -4147,7 +4151,7 @@ Temettü apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -4167,7 +4171,7 @@ Aylık apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -4175,7 +4179,7 @@ Yıllık apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -4191,7 +4195,7 @@ Üst apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -4199,7 +4203,7 @@ Alt apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -4207,7 +4211,7 @@ Portföyün Gelişimi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -4215,7 +4219,7 @@ Yatırım Zaman Çizelgesi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -4223,7 +4227,7 @@ Güncel Seri apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4231,7 +4235,7 @@ En Uzun Seri apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4239,7 +4243,7 @@ Temettü Zaman Çizelgesi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -4339,7 +4343,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -4355,7 +4359,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -4371,7 +4375,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -4387,7 +4391,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -4435,7 +4439,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -4443,7 +4447,7 @@ Finansal varlıklarının tamamını görmeye ihtiyaç duyan hırslı yatırımcılar için. apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -4451,7 +4455,7 @@ E-posta ve Sohbet Desteği apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -4467,7 +4471,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -4475,7 +4479,7 @@ Tek seferlik ödeme, otomatik yenileme yok. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -4491,7 +4495,7 @@ Ücretsiz. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -4975,7 +4979,7 @@ Bu giriş yöntemini kaldırmayı gerçekten istiyor musunuz? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -5007,7 +5011,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -5063,7 +5067,7 @@ Yerel Ayarlar apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -5071,7 +5075,7 @@ Tarih ve Sayı Formatları apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -5079,7 +5083,7 @@ Görünüm apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -5087,7 +5091,7 @@ Otomatik apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -5095,7 +5099,7 @@ Açık apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -5103,7 +5107,7 @@ Koyu apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -5111,7 +5115,7 @@ Çalkantılı zamanlar için dikkat dağıtmayan bir deneyim apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -5119,7 +5123,7 @@ Biyometrik Kimlik Doğrulama apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -5127,7 +5131,7 @@ Parmak iziyle oturum aç apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -5135,7 +5139,7 @@ Deneysel Özellikler apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -5143,7 +5147,7 @@ Gelecek özelliklere göz atın apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -5155,7 +5159,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -5163,7 +5167,7 @@ Verileri Dışa Aktar apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -6311,11 +6315,11 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -6327,7 +6331,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6335,7 +6339,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6343,7 +6347,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6351,7 +6355,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6359,7 +6363,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6367,7 +6371,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6647,7 +6651,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -6655,7 +6659,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6663,7 +6667,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -6695,7 +6699,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -7636,6 +7640,30 @@ 59 + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf new file mode 100644 index 00000000..5988b6e7 --- /dev/null +++ b/apps/client/src/locales/messages.uk.xlf @@ -0,0 +1,7669 @@ + + + + + Features + Функції + + apps/client/src/app/app-routing.module.ts + 74 + + + + Internationalization + Інтернаціоналізація + + apps/client/src/app/app-routing.module.ts + 88 + + + + Sign in + Увійти + + apps/client/src/app/app-routing.module.ts + 150 + + + apps/client/src/app/components/header/header.component.ts + 231 + + + + You are using the Live Demo. + Ви використовуєте демо-версію. + + apps/client/src/app/app.component.html + 12 + + + + Create Account + Створити обліковий запис + + apps/client/src/app/app.component.html + 13 + + + apps/client/src/app/pages/register/register-page.html + 27 + + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 2 + + + + Personal Finance + Особисті фінанси + + apps/client/src/app/app.component.html + 57 + + + + Markets + Ринки + + apps/client/src/app/app.component.html + 61 + + + apps/client/src/app/components/header/header.component.html + 398 + + + apps/client/src/app/components/home-market/home-market.html + 2 + + + apps/client/src/app/pages/resources/markets/resources-markets.component.html + 2 + + + + Resources + Ресурси + + apps/client/src/app/app.component.html + 64 + + + apps/client/src/app/components/header/header.component.html + 82 + + + apps/client/src/app/components/header/header.component.html + 291 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.html + 4 + + + + About + Про нас + + apps/client/src/app/app.component.html + 70 + + + apps/client/src/app/components/header/header.component.html + 117 + + + apps/client/src/app/components/header/header.component.html + 364 + + + + Blog + Блог + + apps/client/src/app/app.component.html + 73 + + + apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html + 204 + + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html + 184 + + + apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html + 184 + + + apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html + 184 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html + 209 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html + 196 + + + apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html + 181 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html + 141 + + + apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.html + 168 + + + apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.html + 178 + + + apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.html + 202 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html + 253 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html + 233 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.html + 243 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.html + 154 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.html + 273 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.html + 181 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.html + 148 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.html + 270 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html + 187 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + + + apps/client/src/app/pages/blog/blog-page.html + 5 + + + + Changelog + Журнал змін + + apps/client/src/app/app.component.html + 77 + + + apps/client/src/app/pages/about/changelog/changelog-page.html + 4 + + + + Features + Функції + + apps/client/src/app/app.component.html + 79 + + + apps/client/src/app/components/header/header.component.html + 351 + + + apps/client/src/app/pages/features/features-page.html + 5 + + + + Frequently Asked Questions (FAQ) + Часті запитання (FAQ) + + apps/client/src/app/app.component.html + 83 + + + apps/client/src/app/pages/about/overview/about-overview-page.html + 146 + + + + License + Ліцензія + + apps/client/src/app/app.component.html + 88 + + + apps/client/src/app/pages/about/license/license-page.html + 4 + + + + Pricing + Ціни + + apps/client/src/app/app.component.html + 97 + + + apps/client/src/app/components/header/header.component.html + 99 + + + apps/client/src/app/components/header/header.component.html + 303 + + + apps/client/src/app/components/header/header.component.html + 379 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 287 + + + + Privacy Policy + Політика конфіденційності + + apps/client/src/app/app.component.html + 103 + + + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html + 4 + + + + Community + Спільнота + + apps/client/src/app/app.component.html + 121 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 83 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 88 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 96 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 100 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 110 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 114 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + + + apps/client/src/app/pages/features/features-page.html + 261 + + + + The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. + Ризик втрат у торгівлі може бути суттєвим. Не рекомендується інвестувати гроші, які можуть знадобитися в короткостроковій перспективі. + + apps/client/src/app/app.component.html + 205 + + + + about + about + snake-case + + apps/client/src/app/app.component.ts + 65 + + + apps/client/src/app/app.component.ts + 67 + + + apps/client/src/app/app.component.ts + 71 + + + apps/client/src/app/app.component.ts + 75 + + + apps/client/src/app/components/header/header.component.ts + 82 + + + apps/client/src/app/components/header/header.component.ts + 87 + + + apps/client/src/app/core/paths.ts + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + license + license + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + privacy-policy + privacy-policy + snake-case + + apps/client/src/app/app.component.ts + 76 + + + apps/client/src/app/core/paths.ts + 8 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + + faq + faq + snake-case + + apps/client/src/app/app.component.ts + 78 + + + apps/client/src/app/core/paths.ts + 3 + + + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 38 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 43 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 49 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 15 + + + + features + features + snake-case + + apps/client/src/app/app.component.ts + 79 + + + apps/client/src/app/components/header/header.component.ts + 83 + + + apps/client/src/app/components/header/header.component.ts + 88 + + + apps/client/src/app/core/paths.ts + 4 + + + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + markets + markets + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + + + apps/client/src/app/core/paths.ts + 6 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 18 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 15 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 32 + + + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 35 + + + + pricing + pricing + snake-case + + apps/client/src/app/app.component.ts + 81 + + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 74 + + + apps/client/src/app/components/header/header.component.ts + 85 + + + apps/client/src/app/components/header/header.component.ts + 90 + + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts + 17 + + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 43 + + + apps/client/src/app/core/http-response.interceptor.ts + 72 + + + apps/client/src/app/core/paths.ts + 7 + + + apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + + + libs/ui/src/lib/membership-card/membership-card.component.ts + 30 + + + + register + register + snake-case + + apps/client/src/app/app.component.ts + 82 + + + apps/client/src/app/components/header/header.component.ts + 91 + + + apps/client/src/app/core/auth.guard.ts + 55 + + + apps/client/src/app/core/paths.ts + 9 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 17 + + + apps/client/src/app/pages/features/features-page.component.ts + 28 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 28 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 44 + + + + resources + resources + snake-case + + apps/client/src/app/app.component.ts + 83 + + + apps/client/src/app/components/header/header.component.ts + 86 + + + apps/client/src/app/components/header/header.component.ts + 92 + + + apps/client/src/app/core/paths.ts + 10 + + + apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/features/features-page.component.ts + 29 + + + apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts + 17 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 22 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 31 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 40 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 15 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 26 + + + + Alias + Псевдонім + + apps/client/src/app/components/access-table/access-table.component.html + 4 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 + + + + Grantee + Одержувач + + apps/client/src/app/components/access-table/access-table.component.html + 11 + + + + Permission + Дозвіл + + apps/client/src/app/components/access-table/access-table.component.html + 18 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 32 + + + + View + Перегляд + + apps/client/src/app/components/access-table/access-table.component.html + 23 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 36 + + + + Restricted view + Обмежений перегляд + + apps/client/src/app/components/access-table/access-table.component.html + 26 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 34 + + + + Details + Деталі + + apps/client/src/app/components/access-table/access-table.component.html + 33 + + + + Copy link to clipboard + Скопіювати посилання в буфер обміну + + apps/client/src/app/components/access-table/access-table.component.html + 70 + + + + Revoke + Відкликати + + apps/client/src/app/components/access-table/access-table.component.html + 75 + + + + Link has been copied to the clipboard + Посилання скопійовано в буфер обміну + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Do you really want to revoke this granted access? + Ви дійсно хочете відкликати цей наданий доступ? + + apps/client/src/app/components/access-table/access-table.component.ts + 78 + + + + Cash Balance + Баланс готівки + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 47 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 136 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 34 + + + + Equity + Капітал + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 58 + + + + Activities + Діяльність + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 63 + + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 92 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 119 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 131 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 58 + + + apps/client/src/app/components/admin-users/admin-users.html + 135 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 209 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 319 + + + apps/client/src/app/pages/portfolio/activities/activities-page.html + 4 + + + + Platform + Платформа + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 67 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 86 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 48 + + + + Holdings + Активи + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 79 + + + apps/client/src/app/components/home-holdings/home-holdings.html + 4 + + + apps/client/src/app/pages/public/public-page.html + 70 + + + libs/ui/src/lib/assistant/assistant.html + 46 + + + + Cash Balances + Баланс готівки + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 124 + + + + Transfer Cash Balance + Перевести баланс готівки + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 10 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Name + Назва + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 43 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 60 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 207 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 30 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 15 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 30 + + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 15 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 15 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 138 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 138 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 28 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 + + + + Total + Загалом + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 55 + + + + Currency + Валюта + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 65 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 111 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 214 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 46 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 25 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 144 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 276 + + + + Value + Вартість + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 171 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 206 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 53 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 204 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 207 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 210 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 274 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 277 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 280 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 283 + + + libs/ui/src/lib/account-balances/account-balances.component.html + 34 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 257 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 293 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 74 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 + + + + Edit + Редагувати + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 278 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 231 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 78 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 92 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 85 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 430 + + + + Delete + Видалити + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 289 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 253 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 65 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 89 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 206 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 103 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 96 + + + libs/ui/src/lib/account-balances/account-balances.component.html + 80 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 457 + + + + Do you really want to delete this account? + Ви дійсно хочете видалити цей обліковий запис? + + apps/client/src/app/components/accounts-table/accounts-table.component.ts + 107 + + + + Type + Тип + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 15 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 161 + + + + Asset Profile + Профіль активу + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 35 + + + + Historical Market Data + Історичні ринкові дані + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 37 + + + + Portfolio Snapshot + Знімок портфеля + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 39 + + + + Symbol + Символ + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 46 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 46 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 96 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 39 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 289 + + + + Data Source + Джерело даних + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 55 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 77 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 106 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 154 + + + + Priority + Пріоритет + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 64 + + + + Attempts + Спроби + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 83 + + + + Created + Створено + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 92 + + + + Finished + Завершено + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 101 + + + + Status + Статус + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 110 + + + + Delete Jobs + Видалити завдання + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 151 + + + + View Data + Переглянути дані + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 166 + + + + View Stacktrace + Переглянути трасування + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 173 + + + + Execute Job + Виконати завдання + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 176 + + + + Delete Job + Видалити завдання + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 180 + + + + Benchmarks + Порівняльні показники + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 81 + + + + Currencies + Валюти + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 86 + + + + ETFs without Countries + ETF без країн + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 91 + + + + ETFs without Sectors + ETF без секторів + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 96 + + + + Filter by... + Фільтрувати за... + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 329 + + + + Asset Class + Клас активу + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 86 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 140 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 224 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 216 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 354 + + + libs/ui/src/lib/assistant/assistant.html + 166 + + + + Asset Sub Class + Підклас активу + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 95 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 149 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 237 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 225 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 370 + + + + Market Price + Ринкова ціна + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 104 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 98 + + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + + + + First Activity + Перша активність + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 119 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 122 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 197 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 50 + + + + Activities Count + Кількість активностей + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 128 + + + + Historical Data + Історичні дані + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 137 + + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 + + + + Sectors Count + Кількість секторів + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 146 + + + + Countries Count + Кількість країн + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 155 + + + + Gather Recent Data + Зібрати недавні дані + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 192 + + + + Gather All Data + Зібрати всі дані + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 195 + + + + Gather Profile Data + Зібрати дані профілю + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 198 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 45 + + + + Delete Profiles + Видалити профілі + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 206 + + + + Do you really want to delete this asset profile? + Ви дійсно хочете видалити цей профіль активу? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 36 + + + + Oops! Could not delete profiles. + Упс! Не вдалося видалити профілі. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 55 + + + + Do you really want to delete these profiles? + Ви дійсно хочете видалити ці профілі? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 67 + + + + Error + Помилка + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 317 + + + + The current market price is + Поточна ринкова ціна + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 326 + + + + Refresh + Оновити + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 22 + + + + Gather Historical Data + Зібрати історичні дані + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 32 + + + + Sector + Сектор + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 166 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 242 + + + + Country + Країна + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 177 + + + apps/client/src/app/components/admin-users/admin-users.html + 77 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 252 + + + + Sectors + Сектори + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 183 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 308 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 258 + + + apps/client/src/app/pages/public/public-page.html + 106 + + + + Countries + Країни + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 193 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 319 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 270 + + + + Benchmark + Порівняльний показник + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 265 + + + + Symbol Mapping + Зіставлення символів + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 271 + + + + Scraper Configuration + Конфігурація скребка + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 283 + + + + Test + Тест + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 301 + + + + Url + URL + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 331 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 51 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 25 + + + + Note + Примітка + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 344 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 78 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 339 + + + + Cancel + Скасувати + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 357 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 56 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 42 + + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 58 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 103 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 65 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 427 + + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 38 + + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + + + + Save + Зберегти + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 364 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 63 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 49 + + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 32 + + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 135 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 65 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 110 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 434 + + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + + + + Add Asset Profile + Додати профіль активу + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 7 + + + + Search + Пошук + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Додати вручну + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Add Currency + Додати валюту + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 22 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 105 + + + + Name, symbol or ISIN + Назва, символ або ISIN + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 29 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 124 + + + + Oops! Invalid currency. + Упс! Невірна валюта. + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 49 + + + + Please add a currency: + Будь ласка, додайте валюту: + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 126 + + + + is an invalid currency! + є недопустимою валютою! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 137 + + + + Do you really want to delete this coupon? + Ви дійсно хочете видалити цей купон? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 156 + + + + Do you really want to delete this currency? + Ви дійсно хочете видалити цю валюту? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 169 + + + + Do you really want to delete this system message? + Ви дійсно хочете видалити це системне повідомлення? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 182 + + + + Do you really want to flush the cache? + Ви дійсно хочете очистити кеш? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 206 + + + + Please set your system message: + Будь ласка, встановіть ваше системне повідомлення: + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 226 + + + + Version + Версія + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + User Count + Кількість користувачів + + apps/client/src/app/components/admin-overview/admin-overview.html + 13 + + + + Activity Count + Кількість активностей + + apps/client/src/app/components/admin-overview/admin-overview.html + 19 + + + + per User + на користувача + + apps/client/src/app/components/admin-overview/admin-overview.html + 28 + + + + Exchange Rates + Обмінні курси + + apps/client/src/app/components/admin-overview/admin-overview.html + 34 + + + + User Signup + Реєстрація користувача + + apps/client/src/app/components/admin-overview/admin-overview.html + 111 + + + + Read-only Mode + Режим лише для читання + + apps/client/src/app/components/admin-overview/admin-overview.html + 125 + + + + Data Gathering + Збір даних + + apps/client/src/app/components/admin-overview/admin-overview.html + 137 + + + + System Message + Системне повідомлення + + apps/client/src/app/components/admin-overview/admin-overview.html + 149 + + + + Set Message + Встановити повідомлення + + apps/client/src/app/components/admin-overview/admin-overview.html + 171 + + + + Coupons + Купони + + apps/client/src/app/components/admin-overview/admin-overview.html + 179 + + + + Add + Додати + + apps/client/src/app/components/admin-overview/admin-overview.html + 239 + + + libs/ui/src/lib/account-balances/account-balances.component.html + 93 + + + + Housekeeping + Прибирання + + apps/client/src/app/components/admin-overview/admin-overview.html + 247 + + + + Flush Cache + Очистити кеш + + apps/client/src/app/components/admin-overview/admin-overview.html + 251 + + + + Add Platform + Додати платформу + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 11 + + + + Accounts + Рахунки + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 65 + + + apps/client/src/app/components/admin-users/admin-users.html + 114 + + + apps/client/src/app/components/header/header.component.html + 54 + + + apps/client/src/app/components/header/header.component.html + 263 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 352 + + + apps/client/src/app/pages/accounts/accounts-page.html + 4 + + + + Do you really want to delete this platform? + Ви дійсно хочете видалити цю платформу? + + apps/client/src/app/components/admin-platform/admin-platform.component.ts + 87 + + + + Update platform + Оновити платформу + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 8 + + + + Add platform + Додати платформу + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 10 + + + + Data Providers + Постачальники даних + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 4 + + + + NEW + НОВИЙ + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 15 + + + + Valid until + Дійсне до + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + + + libs/ui/src/lib/membership-card/membership-card.component.html + 42 + + + + of + з + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 40 + + + + daily requests + щоденних запитів + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + Remove API key + Вилучити ключ API + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 56 + + + + Set API key + Встановити ключ API + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 68 + + + + Platforms + Платформи + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 79 + + + + Tags + Теги + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 85 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 377 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 414 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 383 + + + + Do you really want to delete the API key? + Ви дійсно хочете видалити ключ API? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key. + Будь ласка, введіть ваш ключ API Ghostfolio. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + + + Want to stay updated? Click below to get notified as soon as it’s available. + Хочете залишатися в курсі? Натисніть нижче, щоб отримати сповіщення, як тільки це буде доступно. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 23 + + + + Notify me + Сповістіть мене + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 32 + + + + or + або + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 31 + + + apps/client/src/app/pages/landing/landing-page.html + 47 + + + apps/client/src/app/pages/landing/landing-page.html + 450 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 97 + + + apps/client/src/app/pages/register/register-page.html + 30 + + + apps/client/src/app/pages/webauthn/webauthn-page.html + 29 + + + + I have an API key + У мене є ключ API + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 43 + + + + Add Tag + Додати тег + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 11 + + + + User + Користувач + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 44 + + + apps/client/src/app/components/header/header.component.html + 229 + + + + Do you really want to delete this tag? + Ви дійсно хочете видалити цей тег? + + apps/client/src/app/components/admin-tag/admin-tag.component.ts + 87 + + + + Update tag + Оновити тег + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 8 + + + + Add tag + Додати тег + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 10 + + + + Do you really want to delete this user? + Ви дійсно хочете видалити цього користувача? + + apps/client/src/app/components/admin-users/admin-users.component.ts + 139 + + + + User + Користувач + + apps/client/src/app/components/admin-users/admin-users.html + 29 + + + + Registration + Реєстрація + + apps/client/src/app/components/admin-users/admin-users.html + 97 + + + + Engagement per Day + Взаємодія за день + + apps/client/src/app/components/admin-users/admin-users.html + 157 + + + + API Requests Today + Запити API сьогодні + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Last Request + Останній запит + + apps/client/src/app/components/admin-users/admin-users.html + 202 + + + + Impersonate User + Видавати себе за користувача + + apps/client/src/app/components/admin-users/admin-users.html + 239 + + + + Delete User + Видалити користувача + + apps/client/src/app/components/admin-users/admin-users.html + 251 + + + + Performance + Продуктивність + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html + 6 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 142 + + + + Compare with... + Порівняти з... + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html + 18 + + + + Manage Benchmarks + Управляти порівняльними показниками + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html + 35 + + + + Portfolio + Портфель + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts + 117 + + + apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts + 46 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Benchmark + Порівняльний показник + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts + 129 + + + + Current Market Mood + Поточний ринковий настрій + + apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html + 12 + + + + Overview + Огляд + + apps/client/src/app/components/header/header.component.html + 28 + + + apps/client/src/app/components/header/header.component.html + 245 + + + + Portfolio + Портфель + + apps/client/src/app/components/header/header.component.html + 41 + + + apps/client/src/app/components/header/header.component.html + 255 + + + + Admin Control + Управління адміністратором + + apps/client/src/app/components/header/header.component.html + 68 + + + apps/client/src/app/components/header/header.component.html + 279 + + + + Upgrade Plan + Оновити план + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 61 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 + + + apps/client/src/app/pages/pricing/pricing-page.html + 293 + + + + Renew Plan + Поновити план + + apps/client/src/app/components/header/header.component.html + 191 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 24 + + + apps/client/src/app/pages/pricing/pricing-page.html + 299 + + + + Me + Я + + apps/client/src/app/components/header/header.component.html + 211 + + + + My Ghostfolio + Мій Ghostfolio + + apps/client/src/app/components/header/header.component.html + 270 + + + + About Ghostfolio + Про Ghostfolio + + apps/client/src/app/components/header/header.component.html + 316 + + + apps/client/src/app/pages/about/overview/about-overview-page.html + 5 + + + + Sign in + Увійти + + apps/client/src/app/components/header/header.component.html + 412 + + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 71 + + + + Get started + Почати + + apps/client/src/app/components/header/header.component.html + 422 + + + + Oops! Incorrect Security Token. + Упс! Неправильний Секретний Токен. + + apps/client/src/app/components/header/header.component.ts + 246 + + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 159 + + + + Change with currency effect Change + Зміна з урахуванням валютного ефекту Змінити + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 50 + + + + Performance with currency effect Performance + Продуктивність з урахуванням валютного ефекту валюти Продуктивність + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 69 + + + + Average Unit Price + Середня ціна за одиницю + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 87 + + + + Minimum Price + Мінімальна ціна + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 114 + + + + Maximum Price + Максимальна ціна + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 130 + + + + Quantity + Кількість + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 140 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 188 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 186 + + + + Investment + Інвестиція + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 152 + + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 58 + + + + Dividend + Дивіденд + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 165 + + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 319 + + + apps/client/src/app/pages/features/features-page.html + 63 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 201 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 271 + + + + Dividend Yield + Дохідність дивіденду + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 175 + + + + Fees + Комісії + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 187 + + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 84 + + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 + + + + Activity + Активність + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 207 + + + + Report Data Glitch + Повідомити про збій даних + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 433 + + + + Active + Активний + + apps/client/src/app/components/home-holdings/home-holdings.component.ts + 36 + + + + Closed + Закритий + + apps/client/src/app/components/home-holdings/home-holdings.component.ts + 37 + + + + Table + Таблиця + + apps/client/src/app/components/home-holdings/home-holdings.html + 16 + + + + Chart + Графік + + apps/client/src/app/components/home-holdings/home-holdings.html + 19 + + + + Manage Activities + Керування діяльністю + + apps/client/src/app/components/home-holdings/home-holdings.html + 63 + + + + Fear + Страх + + apps/client/src/app/components/home-market/home-market.component.ts + 28 + + + libs/ui/src/lib/i18n.ts + 98 + + + + Greed + Жадібність + + apps/client/src/app/components/home-market/home-market.component.ts + 29 + + + libs/ui/src/lib/i18n.ts + 99 + + + + Last Days + Останні днів + + apps/client/src/app/components/home-market/home-market.html + 7 + + + + Welcome to Ghostfolio + Ласкаво просимо в Ghostfolio + + apps/client/src/app/components/home-overview/home-overview.html + 7 + + + + Ready to take control of your personal finances? + Готові взяти під контроль ваші особисті фінанси? + + apps/client/src/app/components/home-overview/home-overview.html + 8 + + + + Setup your accounts + Налаштуйте ваші рахунки + + apps/client/src/app/components/home-overview/home-overview.html + 15 + + + + Get a comprehensive financial overview by adding your bank and brokerage accounts. + Отримайте комплексний фінансовий огляд, додавши ваші банківські та брокерські рахунки. + + apps/client/src/app/components/home-overview/home-overview.html + 17 + + + + Capture your activities + Фіксуйте свою діяльність + + apps/client/src/app/components/home-overview/home-overview.html + 24 + + + + Record your investment activities to keep your portfolio up to date. + Записуйте ваші інвестиційні активності, щоб підтримувати актуальність вашого портфеля. + + apps/client/src/app/components/home-overview/home-overview.html + 26 + + + + Monitor and analyze your portfolio + Відстежуйте та аналізуйте свій портфель + + apps/client/src/app/components/home-overview/home-overview.html + 33 + + + + Track your progress in real-time with comprehensive analysis and insights. + Відстежуйте свій прогрес в режимі реального часу за допомогою всебічного аналізу та інсайтів + + apps/client/src/app/components/home-overview/home-overview.html + 35 + + + + Setup accounts + Налаштувати рахунки + + apps/client/src/app/components/home-overview/home-overview.html + 44 + + + + Add activity + Додати активність + + apps/client/src/app/components/home-overview/home-overview.html + 52 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 8 + + + + Summary + Резюме + + apps/client/src/app/components/home-summary/home-summary.html + 2 + + + + Total Amount + Загальна сума + + apps/client/src/app/components/investment-chart/investment-chart.component.ts + 141 + + + + Savings Rate + Ставка заощаджень + + apps/client/src/app/components/investment-chart/investment-chart.component.ts + 200 + + + + Security Token + Секретний Токен + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 11 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 257 + + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 10 + + + + Sign in with Internet Identity + Увійти з Інтернет-Ідентичністю + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 42 + + + + Sign in with Google + Увійти з Google + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 52 + + + + Stay signed in + Залишатися в системі + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 61 + + + + Oops! A data provider is experiencing the hiccups. + Упс! У постачальника даних виникають проблеми. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + Market data is delayed for + Ринкові дані затримуються для + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 87 + + + + Time in Market + Час на ринку + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 3 + + + + {VAR_PLURAL, plural, =1 {activity} other {activities}} + {VAR_PLURAL, plural, =1 {актив} other {активи}} + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 14 + + + + Buy + Купити + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 31 + + + + Sell + Продати + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 43 + + + + Absolute Gross Performance + Абсолютна валова продуктивність + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 70 + + + + Absolute Net Performance + Абсолютна чиста продуктивність + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 102 + + + + Net Performance + Чиста продуктивність + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 117 + + + + Total Assets + Загальні активи + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 143 + + + + Valuables + Цінності + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 156 + + + + Emergency Fund + Резервний фонд + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 168 + + + apps/client/src/app/pages/features/features-page.html + 89 + + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 + + + + Cash + Готівка + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 202 + + + + Assets + Активи + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 215 + + + + Buying Power + Купівельна спроможність + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 228 + + + + Excluded from Analysis + Виключено з аналізу + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 240 + + + + Liabilities + Зобов'язання + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 255 + + + apps/client/src/app/pages/features/features-page.html + 102 + + + + Net Worth + Чистий капітал + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 273 + + + + Annualized Performance + Річна продуктивність + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 285 + + + + Interest + Відсотки + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 307 + + + + Save + Зберегти + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Please set the amount of your emergency fund. + Будь ласка, встановіть суму вашого резервного фонду. + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 64 + + + + Threshold range + Діапазон порогу + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + Threshold Min + Мінімальний поріг + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 54 + + + + Threshold Max + Максимальний поріг + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 92 + + + + Close + Закрити + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 129 + + + + Customize + Налаштувати + + apps/client/src/app/components/rule/rule.component.html + 67 + + + + Deactivate + Деактивувати + + apps/client/src/app/components/rule/rule.component.html + 72 + + + + Activate + Активувати + + apps/client/src/app/components/rule/rule.component.html + 74 + + + + Are you an ambitious investor who needs the full picture? + Ви амбітний інвестор, якому потрібна повна картина? + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 14 + + + + Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: + Оновіть до Ghostfolio Premium сьогодні та отримайте доступ до ексклюзивних функцій, щоб покращити ваш інвестиційний досвід: + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 17 + + + + Portfolio Summary + Резюме портфеля + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 24 + + + apps/client/src/app/pages/pricing/pricing-page.html + 57 + + + apps/client/src/app/pages/pricing/pricing-page.html + 218 + + + + Portfolio Allocations + Розподіли портфеля + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 28 + + + apps/client/src/app/pages/features/features-page.html + 161 + + + apps/client/src/app/pages/pricing/pricing-page.html + 61 + + + apps/client/src/app/pages/pricing/pricing-page.html + 222 + + + + Performance Benchmarks + Порівняльні показники продуктивності + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 32 + + + apps/client/src/app/pages/pricing/pricing-page.html + 65 + + + apps/client/src/app/pages/pricing/pricing-page.html + 226 + + + + FIRE Calculator + Калькулятор FIRE + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 36 + + + apps/client/src/app/pages/pricing/pricing-page.html + 69 + + + apps/client/src/app/pages/pricing/pricing-page.html + 230 + + + + Professional Data Provider + Професійний постачальник даних + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 40 + + + apps/client/src/app/pages/pricing/pricing-page.html + 245 + + + + and more Features... + і більше функцій... + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 44 + + + apps/client/src/app/pages/pricing/pricing-page.html + 85 + + + apps/client/src/app/pages/pricing/pricing-page.html + 257 + + + + Get the tools to effectively manage your finances and refine your personal investment strategy. + Отримайте інструменти для ефективного управління фінансами та вдосконалення вашої особистої інвестиційної стратегії. + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 47 + + + + Skip + Пропустити + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 54 + + + + Skip + Пропустити + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 83 + + + + Join now + Приєднуйтесь + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 93 + + + + Today + Сьогодні + + apps/client/src/app/components/toggle/toggle.component.ts + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 220 + + + + YTD + З початку року + + apps/client/src/app/components/toggle/toggle.component.ts + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 230 + + + + 1Y + 1 рік + + apps/client/src/app/components/toggle/toggle.component.ts + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 234 + + + + 5Y + 5 років + + apps/client/src/app/components/toggle/toggle.component.ts + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 256 + + + + Max + Максимум + + apps/client/src/app/components/toggle/toggle.component.ts + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 259 + + + + Oops! Could not grant access. + Упс! Не вдалося надати доступ. + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 91 + + + + Grant access + Надати доступ + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 + + + + Private + Приватний + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Public + Публічний + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 25 + + + + User ID + ID користувача + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 230 + + + + Me + Я + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Отриманий доступ + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + + + Granted Access + Наданий доступ + + apps/client/src/app/components/user-account-access/user-account-access.html + 7 + + + + Could not generate an API key + Не вдалося згенерувати ключ API + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 139 + + + + Okay + ОК + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + + + apps/client/src/app/core/http-response.interceptor.ts + 81 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 144 + + + + Set this API key in your self-hosted environment: + Встановіть цей ключ API у вашому self-hosted середовищі: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 154 + + + + Ghostfolio Premium Data Provider API Key + Ключ API Ghostfolio Premium Data Provider + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 157 + + + + Do you really want to generate a new API key? + Ви дійсно хочете згенерувати новий ключ API? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 162 + + + + Could not redeem coupon code + Не вдалося обміняти код купона + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 177 + + + + Coupon code has been redeemed + Код купона був обміняний + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 190 + + + + Reload + Перезавантажити + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 191 + + + + Please enter your coupon code. + Будь ласка, введіть ваш код купона. + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 213 + + + + per year + на рік + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 36 + + + apps/client/src/app/pages/pricing/pricing-page.html + 279 + + + + Try Premium + Спробуйте Premium + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 53 + + + + Redeem Coupon + Обміняти купон + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 67 + + + + No auto-renewal. + Без автоматичного поновлення. + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 74 + + + + Auto + Автоматичний + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 39 + + + + Do you really want to close your Ghostfolio account? + Ви дійсно хочете закрити ваш обліковий запис Ghostfolio? + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 174 + + + + Do you really want to remove this sign in method? + Ви дійсно хочете вилучити цей спосіб входу? + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 248 + + + + Oops! There was an error setting up biometric authentication. + Упс! Виникла помилка під час налаштування біометричної автентифікації. + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 302 + + + + Settings + Налаштування + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + Presenter View + Режим доповідача + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 + + + + Protection for sensitive information like absolute performances and quantity values + Захист конфіденційної інформації, такої як абсолютні показники та кількісні значення + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8 + + + + Base Currency + Базова валюта + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 27 + + + + Language + Мова + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 48 + + + + If a translation is missing, kindly support us in extending it here. + Якщо переклад відсутній, будь ласка, підтримайте нас у його розширенні тут. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 50 + + + + Locale + Локалізація + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 129 + + + + Date and number format + Формат дати та чисел + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 131 + + + + Appearance + Зовнішній вигляд + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 154 + + + + Auto + Автоматичний + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 168 + + + + Light + Світлий + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 169 + + + + Dark + Темний + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170 + + + + Zen Mode + Режим дзен + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 179 + + + apps/client/src/app/pages/features/features-page.html + 191 + + + + Distraction-free experience for turbulent times + Досвід без відволікань для неспокійних часів + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 180 + + + + Biometric Authentication + Біометрична аутентифікація + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 196 + + + + Sign in with fingerprint + Увійти з відбитком пальця + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 197 + + + + Experimental Features + Експериментальні функції + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 213 + + + + Sneak peek at upcoming functionality + Попередній перегляд майбутніх функцій + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 214 + + + + Export Data + Експортувати дані + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 238 + + + + Danger Zone + Зона небезпеки + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 250 + + + + Close Account + Закрити обліковий запис + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 285 + + + + This feature is currently unavailable. + Ця функція наразі недоступна. + + apps/client/src/app/core/http-response.interceptor.ts + 53 + + + + Please try again later. + Спробуйте ще раз пізніше. + + apps/client/src/app/core/http-response.interceptor.ts + 55 + + + apps/client/src/app/core/http-response.interceptor.ts + 80 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 143 + + + + This action is not allowed. + Ця дія заборонена. + + apps/client/src/app/core/http-response.interceptor.ts + 61 + + + + Oops! Something went wrong. + Упс! Щось пішло не так. + + apps/client/src/app/core/http-response.interceptor.ts + 78 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 141 + + + + Oops! It looks like you’re making too many requests. Please slow down a bit. + Упс! Здається, ви робите занадто багато запитів. Будь ласка, пригальмуй трохи. + + apps/client/src/app/core/http-response.interceptor.ts + 96 + + + + About + Про нас + + apps/client/src/app/pages/about/about-page-routing.module.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 45 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts + 13 + + + + Changelog + Журнал змін + + apps/client/src/app/pages/about/about-page.component.ts + 50 + + + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts + 13 + + + + License + Ліцензія + + apps/client/src/app/pages/about/about-page.component.ts + 55 + + + apps/client/src/app/pages/about/license/license-page-routing.module.ts + 13 + + + + Privacy Policy + Політика конфіденційності + + apps/client/src/app/pages/about/about-page.component.ts + 63 + + + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts + 13 + + + + Our + Наші + + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 6 + + + + Discover other exciting Open Source Software projects + Відкрийте для себе інші захоплюючі проекти з відкритим кодом + + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 9 + + + + Visit + Відвідати + + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 28 + + + + Accounts + Рахунки + + apps/client/src/app/pages/accounts/accounts-page-routing.module.ts + 13 + + + + Oops, cash balance transfer has failed. + Упс, перенесення балансу готівки не вдалося. + + apps/client/src/app/pages/accounts/accounts-page.component.ts + 318 + + + + Update account + Оновити рахунок + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 8 + + + + Add account + Додати рахунок + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 10 + + + + Account ID + Ідентифікатор облікового запису + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 96 + + + + From + Від + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + До + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 32 + + + + Transfer + Переказати + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 72 + + + + Admin Control + Управління адміністратором + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 20 + + + + Job Queue + Черга завдань + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 43 + + + + Market Data + Ринкові дані + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 30 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 38 + + + + Settings + Налаштування + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 35 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 33 + + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 18 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 36 + + + + Users + Користувачі + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 40 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 48 + + + + Overview + Огляд + + apps/client/src/app/pages/admin/admin-page.component.ts + 28 + + + apps/client/src/app/pages/home/home-page.component.ts + 38 + + + apps/client/src/app/pages/resources/resources-page.component.ts + 17 + + + apps/client/src/app/pages/zen/zen-page-routing.module.ts + 19 + + + apps/client/src/app/pages/zen/zen-page.component.ts + 35 + + + + Please enter your Ghostfolio API key: + Будь ласка, введіть ваш ключ API Ghostfolio: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Blog + Блог + + apps/client/src/app/pages/blog/blog-page-routing.module.ts + 13 + + + + Discover the latest Ghostfolio updates and insights on personal finance + Відкрийте для себе останні оновлення Ghostfolio та виявлення особистих фінансів + + apps/client/src/app/pages/blog/blog-page.html + 7 + + + + As you are already logged in, you cannot access the demo account. + Оскільки ви вже ввійшли, ви не можете отримати доступ до демонстраційного обліковий запис. + + apps/client/src/app/pages/demo/demo-page.component.ts + 35 + + + + Frequently Asked Questions (FAQ) + Часто задавані питання (FAQ) + + apps/client/src/app/pages/faq/faq-page-routing.module.ts + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 + + + + General + Загальні + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + + Cloud + Хмара + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Самохостинг + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + самохостинг + + apps/client/src/app/pages/faq/faq-page.component.ts + 49 + + + + Frequently Asked Questions (FAQ) + Часто задавані питання (FAQ) + + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html + 4 + + + + FAQ + FAQ + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + Check out the numerous features of Ghostfolio to manage your wealth + Огляньте численні функції Ghostfolio для управління вашим багатством + + apps/client/src/app/pages/features/features-page.html + 6 + + + + Stocks + Акції + + apps/client/src/app/pages/features/features-page.html + 15 + + + + ETFs + ETF + + apps/client/src/app/pages/features/features-page.html + 25 + + + + Bonds + Облігації + + apps/client/src/app/pages/features/features-page.html + 38 + + + + Cryptocurrencies + Криптовалюти + + apps/client/src/app/pages/features/features-page.html + 51 + + + + Wealth Items + Предмети багатства + + apps/client/src/app/pages/features/features-page.html + 76 + + + + Import and Export + Імпорт та експорт + + apps/client/src/app/pages/features/features-page.html + 115 + + + + Multi-Accounts + Багатокористувацькі акаунти + + apps/client/src/app/pages/features/features-page.html + 127 + + + + Portfolio Calculations + Розрахунки портфеля + + apps/client/src/app/pages/features/features-page.html + 141 + + + + Dark Mode + Темний режим + + apps/client/src/app/pages/features/features-page.html + 178 + + + + Market Mood + Ринковий настрій + + apps/client/src/app/pages/features/features-page.html + 206 + + + + Static Analysis + Статичний аналіз + + apps/client/src/app/pages/features/features-page.html + 225 + + + + Multi-Language + Багатомовність + + apps/client/src/app/pages/features/features-page.html + 242 + + + + Open Source Software + Програмне забезпечення з відкритим кодом + + apps/client/src/app/pages/features/features-page.html + 280 + + + + Get Started + Почати + + apps/client/src/app/pages/features/features-page.html + 305 + + + apps/client/src/app/pages/public/public-page.html + 220 + + + + Holdings + Активи + + apps/client/src/app/pages/home/home-page-routing.module.ts + 23 + + + apps/client/src/app/pages/home/home-page-routing.module.ts + 28 + + + apps/client/src/app/pages/home/home-page.component.ts + 43 + + + apps/client/src/app/pages/zen/zen-page.component.ts + 40 + + + + Summary + Резюме + + apps/client/src/app/pages/home/home-page-routing.module.ts + 33 + + + apps/client/src/app/pages/home/home-page.component.ts + 48 + + + + Markets + Ринки + + apps/client/src/app/pages/home/home-page-routing.module.ts + 38 + + + apps/client/src/app/pages/home/home-page.component.ts + 53 + + + apps/client/src/app/pages/markets/markets-page-routing.module.ts + 13 + + + apps/client/src/app/pages/resources/markets/resources-markets-routing.module.ts + 10 + + + apps/client/src/app/pages/resources/resources-page.component.ts + 27 + + + + Ghostfolio is a personal finance dashboard to keep track of your net worth including cash, stocks, ETFs and cryptocurrencies across multiple platforms. + Ghostfolio - це панель особистих фінансів для відстеження вашого чистого капіталу, включаючи готівку, акції, ETF та криптовалюти на різних платформах. + + apps/client/src/app/pages/i18n/i18n-page.html + 4 + + + + app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 + додаток, актив, криптовалюта, панель, etf, фінанси, управління, продуктивність, портфель, програмне забезпечення, акція, торгівля, багатство, web3 + + apps/client/src/app/pages/i18n/i18n-page.html + 9 + + + + My Account + Мій рахунок + + apps/client/src/app/pages/i18n/i18n-page.html + 13 + + + + Open Source Wealth Management Software + Програмне забезпечення управління багатством з відкритим кодом + + apps/client/src/app/pages/i18n/i18n-page.html + 14 + + + + Manage your wealth like a boss + Керуйте своїми фінансами як професіонал + + apps/client/src/app/pages/landing/landing-page.html + 5 + + + + Ghostfolio is a privacy-first, open source dashboard for your personal finances. Break down your asset allocation, know your net worth and make solid, data-driven investment decisions. + Ghostfolio - це інформаційна панель з відкритим кодом для управління вашими особистими фінансами, орієнтована насамперед на конфіденційність. Розподіліть свої активи, визначте чисту вартість свого майна та приймайте зважені інвестиційні рішення на основі даних. + + apps/client/src/app/pages/landing/landing-page.html + 9 + + + + Get Started + Почати + + apps/client/src/app/pages/landing/landing-page.html + 41 + + + apps/client/src/app/pages/pricing/pricing-page.html + 329 + + + + Live Demo + Жива демонстрація + + apps/client/src/app/pages/landing/landing-page.html + 49 + + + apps/client/src/app/pages/landing/landing-page.html + 451 + + + + Monthly Active Users + Щомісячні активні користувачі + + apps/client/src/app/pages/landing/landing-page.html + 70 + + + + Stars on GitHub + Зірки на GitHub + + apps/client/src/app/pages/landing/landing-page.html + 88 + + + apps/client/src/app/pages/open/open-page.html + 103 + + + + Pulls on Docker Hub + Завантаження на Docker Hub + + apps/client/src/app/pages/landing/landing-page.html + 106 + + + apps/client/src/app/pages/open/open-page.html + 117 + + + + As seen in + Як видно в + + apps/client/src/app/pages/landing/landing-page.html + 115 + + + + Protect your assets. Refine your personal investment strategy. + Захищайте свої активи. Вдосконалюйте власну інвестиційну стратегію. + + apps/client/src/app/pages/landing/landing-page.html + 225 + + + + Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. + Ghostfolio допомагає зайнятим людям відстежувати акції, ETF або криптовалюти без ризику бути відстеженими. + + apps/client/src/app/pages/landing/landing-page.html + 229 + + + + 360° View + 360° огляд + + apps/client/src/app/pages/landing/landing-page.html + 240 + + + + Get the full picture of your personal finances across multiple platforms. + Отримайте повну картину ваших особистих фінансів на різних платформах. + + apps/client/src/app/pages/landing/landing-page.html + 242 + + + + Web3 Ready + Готовий до Web3 + + apps/client/src/app/pages/landing/landing-page.html + 251 + + + + Use Ghostfolio anonymously and own your financial data. + Використовуйте Ghostfolio анонімно та володійте своїми фінансовими даними. + + apps/client/src/app/pages/landing/landing-page.html + 253 + + + + Open Source + Відкритий код + + apps/client/src/app/pages/landing/landing-page.html + 261 + + + + Benefit from continuous improvements through a strong community. + Отримуйте користь від постійних покращень завдяки сильній спільноті. + + apps/client/src/app/pages/landing/landing-page.html + 263 + + + + Why Ghostfolio? + Чому Ghostfolio? + + apps/client/src/app/pages/landing/landing-page.html + 272 + + + + Ghostfolio is for you if you are... + Ghostfolio для вас, якщо ви... + + apps/client/src/app/pages/landing/landing-page.html + 273 + + + + trading stocks, ETFs or cryptocurrencies on multiple platforms + торгуєте акціями, ETF або криптовалютами на різних платформах + + apps/client/src/app/pages/landing/landing-page.html + 280 + + + + pursuing a buy & hold strategy + дотримуєтеся стратегії купівлі та утримання + + apps/client/src/app/pages/landing/landing-page.html + 286 + + + + interested in getting insights of your portfolio composition + вас цікавлять інсайти вашого складу портфеля + + apps/client/src/app/pages/landing/landing-page.html + 291 + + + + valuing privacy and data ownership + цінуєте конфіденційність і володіння даними + + apps/client/src/app/pages/landing/landing-page.html + 296 + + + + into minimalism + займаєтесь мінімалізмом + + apps/client/src/app/pages/landing/landing-page.html + 299 + + + + caring about diversifying your financial resources + піклуєтесь про диверсифікацію ваших фінансових ресурсів + + apps/client/src/app/pages/landing/landing-page.html + 303 + + + + interested in financial independence + цікавитесь фінансовою незалежністю + + apps/client/src/app/pages/landing/landing-page.html + 307 + + + + saying no to spreadsheets in + кажете ні таблицям у + + apps/client/src/app/pages/landing/landing-page.html + 311 + + + + still reading this list + все ще читаєте цей список + + apps/client/src/app/pages/landing/landing-page.html + 314 + + + + Learn more about Ghostfolio + Дізнайтеся більше про Ghostfolio + + apps/client/src/app/pages/landing/landing-page.html + 319 + + + + What our users are saying + Що говорять користувачі + + apps/client/src/app/pages/landing/landing-page.html + 327 + + + + Members from around the globe are using Ghostfolio Premium + Члени зі всього світу використовують Ghostfolio Premium + + apps/client/src/app/pages/landing/landing-page.html + 366 + + + + How does Ghostfolio work? + Як працює Ghostfolio? + + apps/client/src/app/pages/landing/landing-page.html + 383 + + + + Get started in only 3 steps + Почніть всього за 3 кроки + + apps/client/src/app/pages/landing/landing-page.html + 386 + + + + Sign up anonymously* + Зареєструйтеся анонімно* + + apps/client/src/app/pages/landing/landing-page.html + 392 + + + + * no e-mail address nor credit card required + * не потрібні електронна адреса та кредитна картка + + apps/client/src/app/pages/landing/landing-page.html + 394 + + + + Add any of your historical transactions + Додайте будь-які з ваших історичних транзакцій + + apps/client/src/app/pages/landing/landing-page.html + 405 + + + + Get valuable insights of your portfolio composition + Отримуйте цінні інсайти вашого складу портфеля + + apps/client/src/app/pages/landing/landing-page.html + 417 + + + + Are you ready? + Ви готові? + + apps/client/src/app/pages/landing/landing-page.html + 431 + + + + Join now or check out the example account + Приєднуйтесь зараз або перегляньте демонстраційний рахунок + + apps/client/src/app/pages/landing/landing-page.html + 434 + + + + Get Started + Почати + + apps/client/src/app/pages/landing/landing-page.html + 446 + + + + At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status. + У Ghostfolio прозорість є основою наших цінностей. Ми публікуємо вихідний код як відкрите програмне забезпечення (OSS) під AGPL-3.0 ліцензією та відкрито ділимося агрегованими ключовими метриками операційного стану платформи. + + apps/client/src/app/pages/open/open-page.html + 6 + + + + (Last 24 hours) + (Останні 24 години) + + apps/client/src/app/pages/open/open-page.html + 37 + + + + Active Users + Активні користувачі + + apps/client/src/app/pages/open/open-page.html + 40 + + + apps/client/src/app/pages/open/open-page.html + 62 + + + + (Last 30 days) + (Останні 30 днів) + + apps/client/src/app/pages/open/open-page.html + 48 + + + apps/client/src/app/pages/open/open-page.html + 59 + + + + New Users + Нові користувачі + + apps/client/src/app/pages/open/open-page.html + 51 + + + + Users in Slack community + Користувачі в спільноті Slack + + apps/client/src/app/pages/open/open-page.html + 75 + + + + Contributors on GitHub + Учасники на GitHub + + apps/client/src/app/pages/open/open-page.html + 89 + + + + (Last 90 days) + (Останні 90 днів) + + apps/client/src/app/pages/open/open-page.html + 127 + + + + Uptime + Час безвідмовної роботи + + apps/client/src/app/pages/open/open-page.html + 132 + + + + Activities + Активності + + apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts + 13 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 40 + + + + Update activity + Оновити активність + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 10 + + + + Stocks, ETFs, bonds, cryptocurrencies, commodities + Акції, ETF, облігації, криптовалюти, товари + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 25 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 65 + + + + One-time fee, annual account fees + Одноразова комісія, щорічна комісія за обслуговування рахунку + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 33 + + + + Distribution of corporate earnings + Розподіл корпоративних доходів + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 41 + + + + Revenue for lending out money + Доходи за кредитування грошей + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 49 + + + + Mortgages, personal loans, credit cards + Іпотека, особисті кредити, кредитні картки + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 57 + + + + Luxury items, real estate, private companies + Предмети розкоші, нерухомість, приватні компанії + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 73 + + + + Account + Рахунок + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 85 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 308 + + + libs/ui/src/lib/assistant/assistant.html + 107 + + + + Update Cash Balance + Оновити баланс готівки + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 112 + + + + Date + Дата + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 160 + + + libs/ui/src/lib/account-balances/account-balances.component.html + 12 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 170 + + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + + + + Unit Price + Ціна за одиницю + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 213 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 286 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 210 + + + + Oops! Could not get the historical exchange rate from + Упс! Не вдалося отримати історичний обмінний курс від + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 240 + + + + Fee + Комісія + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 306 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 330 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 234 + + + + Oops! Could not get the historical exchange rate from + Упс! Не вдалося отримати історичний обмінний курс від + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 318 + + + + Import Activities + Імпортувати активності + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 46 + + + + Import Dividends + Імпорт дивідендів + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 87 + + + + Importing data... + Імпортуються дані... + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 125 + + + + Import has been completed + Імпорт завершено + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 133 + + + + Validating data... + Перевірка даних... + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 239 + + + + Select Holding + Вибрати актив + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 20 + + + + Select File + Вибрати файл + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 22 + + + + Holding + Актив + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 32 + + + libs/ui/src/lib/assistant/assistant.html + 127 + + + + Load Dividends + Завантажити дивіденди + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 68 + + + + Choose or drop a file here + Виберіть або перетягніть файл сюди + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 84 + + + + The following file formats are supported: + Підтримуються наступні формати файлів: + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 90 + + + + Select Dividends + Вибрати дивіденди + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 113 + + + + Select Activities + Виберіть активності + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 115 + + + + Back + Назад + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 144 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 178 + + + + Import + Імпорт + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 153 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 186 + + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + + + + Allocations + Розподіли + + apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts + 13 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 45 + + + + Allocations + Розподіли + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 4 + + + + Proportion of Net Worth + Частка чистої вартості + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 12 + + + + By Platform + За платформою + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 44 + + + + By Currency + За валютою + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 63 + + + + By Asset Class + За класом активів + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 85 + + + + By Holding + За активом + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 107 + + + + By Sector + За сектором + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 130 + + + + By Continent + За континентом + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 153 + + + + By Market + За ринком + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 175 + + + + Regions + Регіони + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 198 + + + apps/client/src/app/pages/public/public-page.html + 143 + + + + Developed Markets + Розвиті ринки + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 222 + + + apps/client/src/app/pages/public/public-page.html + 160 + + + + Emerging Markets + Ринки, що розвиваються + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 231 + + + apps/client/src/app/pages/public/public-page.html + 169 + + + + Other Markets + Інші ринки + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 240 + + + apps/client/src/app/pages/public/public-page.html + 178 + + + + No data available + Дані недоступні + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 250 + + + apps/client/src/app/pages/public/public-page.html + 188 + + + libs/ui/src/lib/benchmark/benchmark.component.html + 137 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 181 + + + + By Country + За країною + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 264 + + + + By Account + За рахунком + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 286 + + + + By ETF Provider + За постачальником ETF + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 306 + + + + By ETF Holding + За активами ETF + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 333 + + + + Approximation based on the top holdings of each ETF + Наближення на основі провідних активів кожного ETF + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 340 + + + + Analysis + Аналіз + + apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts + 13 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 35 + + + + Dividend + Дивіденд + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 41 + + + libs/ui/src/lib/i18n.ts + 36 + + + + Investment + Інвестиція + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 88 + + + + Monthly + Щомісячно + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 54 + + + + Yearly + Щорічно + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 55 + + + + Analysis + Аналіз + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 2 + + + + Absolute Asset Performance + Абсолютна продуктивність активів + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 60 + + + + Asset Performance + Продуктивність активів + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 81 + + + + Absolute Currency Performance + Абсолютна продуктивність валюти + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Currency Performance + Продуктивність валюти + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 127 + + + + Absolute Net Performance + Абсолютна чиста продуктивність + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 150 + + + + Net Performance + Чиста продуктивність + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 169 + + + + Top + Топ + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 197 + + + + Bottom + Низ + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 246 + + + + Portfolio Evolution + Еволюція портфеля + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 299 + + + + Investment Timeline + Інвестиційний графік + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 326 + + + + Current Streak + Поточна серія + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 347 + + + + Longest Streak + Найдовша серія + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 356 + + + + Dividend Timeline + Графік дивідендів + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 383 + + + + FIRE + Фінансова незалежність, достроковий вихід на пенсію (FIRE) + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 4 + + + + Calculator + Калькулятор + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 7 + + + + 4% Rule + Правило 4% + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + Якщо ви вийдете на пенсію сьогодні, ви зможете знімати на рік або на місяць, виходячи з вашого загального капіталу в та ставкою виведення у 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 67 + + + + Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy. + Ghostfolio X-ray використовує статичний аналіз для виявлення потенційних проблем та ризиків у вашому портфелі. Налаштуйте правила нижче та встановіть індивідуальні пороги, щоб узгодити їх з вашою особистою інвестиційною стратегією. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + out of + з + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + правила узгоджуються з вашим портфелем. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + + + Currency Cluster Risks + Ризики зосередження валюти + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 + + + + Asset Class Cluster Risks + Ризики зосередження класу активів + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Account Cluster Risks + Ризики зосередження рахунків + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 + + + + Economic Market Cluster Risks + Ризики зосередження економічного ринку + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + Inactive + Неактивний + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 + + + + Pricing + Ціни + + apps/client/src/app/pages/pricing/pricing-page-routing.module.ts + 13 + + + + Pricing Plans + Плани цін + + apps/client/src/app/pages/pricing/pricing-page.html + 4 + + + + Our official Ghostfolio Premium cloud offering is the easiest way to get started. Due to the time it saves, this will be the best option for most people. Revenue is used to cover the costs of the hosting infrastructure and to fund ongoing development. + Наша офіційна хмарна пропозиція Ghostfolio Premium - це найпростіший спосіб почати роботу. Завдяки економії часу, це буде найкращим варіантом для більшості людей. Доходи використовуються для покриття витрат на хостинг-інфраструктуру та фінансування постійної розробки. + + apps/client/src/app/pages/pricing/pricing-page.html + 6 + + + + If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. + Якщо ви віддаєте перевагу запускати Ghostfolio на власній інфраструктурі, перейдіть на GitHub для отримання вихідного коду та подальших інструкцій. + + apps/client/src/app/pages/pricing/pricing-page.html + 26 + + + + For tech-savvy investors who prefer to run Ghostfolio on their own infrastructure. + Для технікознавих інвесторів, які віддають перевагу запуску Ghostfolio на власній інфраструктурі. + + apps/client/src/app/pages/pricing/pricing-page.html + 38 + + + + Unlimited Transactions + Необмежені транзакції + + apps/client/src/app/pages/pricing/pricing-page.html + 45 + + + apps/client/src/app/pages/pricing/pricing-page.html + 134 + + + apps/client/src/app/pages/pricing/pricing-page.html + 206 + + + + Unlimited Accounts + Необмежена кількість рахунків + + apps/client/src/app/pages/pricing/pricing-page.html + 49 + + + apps/client/src/app/pages/pricing/pricing-page.html + 138 + + + apps/client/src/app/pages/pricing/pricing-page.html + 210 + + + + Portfolio Performance + Продуктивність портфеля + + apps/client/src/app/pages/pricing/pricing-page.html + 53 + + + apps/client/src/app/pages/pricing/pricing-page.html + 142 + + + apps/client/src/app/pages/pricing/pricing-page.html + 214 + + + + Data Import and Export + Імпорт та експорт даних + + apps/client/src/app/pages/pricing/pricing-page.html + 73 + + + apps/client/src/app/pages/pricing/pricing-page.html + 146 + + + apps/client/src/app/pages/pricing/pricing-page.html + 234 + + + + Community Support + Підтримка спільноти + + apps/client/src/app/pages/pricing/pricing-page.html + 90 + + + + Self-hosted, update manually. + Самохостинг, оновлення вручну. + + apps/client/src/app/pages/pricing/pricing-page.html + 94 + + + + Free + Безкоштовно + + apps/client/src/app/pages/pricing/pricing-page.html + 95 + + + apps/client/src/app/pages/pricing/pricing-page.html + 158 + + + + For new investors who are just getting started with trading. + Для нових інвесторів, які тільки починають з торгівлі. + + apps/client/src/app/pages/pricing/pricing-page.html + 128 + + + + Fully managed Ghostfolio cloud offering. + Повністю керована хмарна пропозиція Ghostfolio. + + apps/client/src/app/pages/pricing/pricing-page.html + 157 + + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + + + For ambitious investors who need the full picture of their financial assets. + Для амбітних інвесторів, яким потрібна повна картина їхніх фінансових активів. + + apps/client/src/app/pages/pricing/pricing-page.html + 199 + + + + Email and Chat Support + Підтримка електронної пошти та чату + + apps/client/src/app/pages/pricing/pricing-page.html + 262 + + + + One-time payment, no auto-renewal. + Разова оплата, без автоматичного поновлення. + + apps/client/src/app/pages/pricing/pricing-page.html + 303 + + + + It’s free. + Це безкоштовно. + + apps/client/src/app/pages/pricing/pricing-page.html + 332 + + + + Hello, has shared a Portfolio with you! + Привіт, поділився з вами Портфелем! + + apps/client/src/app/pages/public/public-page.html + 4 + + + + Today + Сьогодні + + apps/client/src/app/pages/public/public-page.html + 24 + + + + This year + Цього року + + apps/client/src/app/pages/public/public-page.html + 42 + + + + From the beginning + З початку + + apps/client/src/app/pages/public/public-page.html + 60 + + + + Currencies + Валюти + + apps/client/src/app/pages/public/public-page.html + 88 + + + + Continents + Континенти + + apps/client/src/app/pages/public/public-page.html + 124 + + + + Would you like to refine your personal investment strategy? + Чи хотіли б ви удосконалити вашу особисту інвестиційну стратегію? + + apps/client/src/app/pages/public/public-page.html + 211 + + + + Ghostfolio empowers you to keep track of your wealth. + Ghostfolio надає можливість вам стежити за вашим багатством. + + apps/client/src/app/pages/public/public-page.html + 215 + + + + Registration + Реєстрація + + apps/client/src/app/pages/register/register-page-routing.module.ts + 13 + + + + Continue with Internet Identity + Продовжити з Інтернет-Ідентичністю + + apps/client/src/app/pages/register/register-page.html + 42 + + + + Continue with Google + Продовжити з Google + + apps/client/src/app/pages/register/register-page.html + 53 + + + + Copy to clipboard + Копіювати в буфер обміну + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 26 + + + + I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. + Я погоджуюся зберігати свій Секретний Токен у безпечному місці. Якщо я його втрачу, я не зможу відновити свій акаунт. + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 32 + + + + Agree and continue + Погоджуюся і продовжую + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 45 + + + + Glossary + Глосарій + + apps/client/src/app/pages/resources/glossary/resources-glossary-routing.module.ts + 10 + + + apps/client/src/app/pages/resources/resources-page.component.ts + 32 + + + + Glossary + Глосарій + + apps/client/src/app/pages/resources/glossary/resources-glossary.component.html + 4 + + + + Guides + Посібники + + apps/client/src/app/pages/resources/guides/resources-guides-routing.module.ts + 10 + + + apps/client/src/app/pages/resources/resources-page.component.ts + 22 + + + + Guides + Посібники + + apps/client/src/app/pages/resources/guides/resources-guides.component.html + 4 + + + + guides + guides + snake-case + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 23 + + + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 28 + + + + glossary + glossary + snake-case + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 41 + + + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 21 + + + + Personal Finance Tools + Інструменти особистих фінансів + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts + 14 + + + + open-source-alternative-to + відкритий-альтернативний-для + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 14 + + + + Open Source Alternative to + Альтернатива з відкритим кодом для + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts + 27 + + + + Discover Open Source Alternatives for Personal Finance Tools + Відкрийте для себе альтернативи з відкритим кодом для інструментів особистих фінансів + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 4 + + + + This overview page features a curated collection of personal finance tools compared to the open source alternative Ghostfolio. If you value transparency, data privacy, and community collaboration, Ghostfolio provides an excellent opportunity to take control of your financial management. + Ця сторінка огляду містить добірку інструментів особистих фінансів, порівняних з відкритою альтернативою Ghostfolio. Якщо ви цінуєте прозорість, конфіденційність даних та співпрацю в спільноті, Ghostfolio надає чудову можливість взяти під контроль ваше фінансове управління. + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 8 + + + + Explore the links below to compare a variety of personal finance tools with Ghostfolio. + Ознайомтеся з посиланнями нижче, щоб порівняти різні інструменти особистих фінансів з Ghostfolio. + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 16 + + + + Open Source Alternative to + Відкрита альтернатива для + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 42 + + + + Switzerland + Швейцарія + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 59 + + + libs/ui/src/lib/i18n.ts + 90 + + + + Global + Глобальний + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 60 + + + libs/ui/src/lib/i18n.ts + 16 + + + + Alternative + Альтернатива + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 82 + + + + App + Додаток + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + Budgeting + Бюджетування + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Community + Спільнота + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Family Office + Сімейний офіс + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Investor + Інвестор + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + + + + Open Source + Відкритий код + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Personal Finance + Особисті фінанси + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 92 + + + + Privacy + Конфіденційність + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Software + Програмне забезпечення + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + + + + Tool + Інструмент + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + User Experience + Користувацький досвід + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + Wealth + Багатство + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth Management + Управління багатством + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + The Open Source Alternative to + Відкрита альтернатива до + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 8 + + + + This page has been archived. + Цю сторінку було архівовано. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 14 + + + + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. + Ви шукаєте відкриту альтернативу для ? Ghostfolio є потужним інструментом управління портфелем, який надає індивідуумам комплексну платформу для відстеження, аналізу та оптимізації їхніх інвестицій. Незалежно від того, чи ви досвідчений інвестор, чи тільки починаєте, Ghostfolio пропонує зручний інтерфейс користувача та широкий спектр функціональностей для допомоги вам у прийнятті обґрунтованих рішень та взятті під контроль вашого фінансового майбутнього. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 18 + + + + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. + Ghostfolio є відкритим програмним забезпеченням (OSS), що надає економічно ефективну альтернативу для , роблячи його особливо підходящим для тих, хто обмежений у бюджеті, таких як прагнення до фінансової незалежності, раннього виходу на пенсію (FIRE). Використовуючи колективні зусилля спільноти розробників та ентузіастів особистих фінансів, Ghostfolio постійно покращує свої можливості, безпеку та користувацький досвід. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 32 + + + + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. + Давайте заглибимося у детальну порівняльну таблицю Ghostfolio проти нижче, щоб отримати повне розуміння того, як Ghostfolio позиціонує себе відносно . Ми дослідимо різні аспекти, такі як функції, конфіденційність даних, ціни тощо, що дозволить вам зробити добре обдуманий вибір для ваших особистих потреб. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 43 + + + + Ghostfolio vs comparison table + Порівняльна таблиця Ghostfolio проти + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 54 + + + + Founded + Засновано + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 77 + + + + Origin + Походження + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 82 + + + + Region + Регіон + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 87 + + + + Available in + Доступно в + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 108 + + + + is Open Source Software + є відкритим програмним забезпеченням + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 139 + + + + ✅ Yes + ✅ Так + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 235 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 257 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 274 + + + + is not Open Source Software + не є відкритим програмним забезпеченням + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 146 + + + + ❌ No + ❌ Ні + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 147 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 242 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 264 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 281 + + + + is Open Source Software + є відкритим програмним забезпеченням + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 156 + + + + is not Open Source Software + не є відкритим програмним забезпеченням + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 163 + + + + Self-Hosting + Самохостинг + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 170 + + + + can be self-hosted + може бути self-hosted + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 178 + + + + cannot be self-hosted + не може бути self-hosted + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 185 + + + + can be self-hosted + може бути self-hosted + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 195 + + + + cannot be self-hosted + не може бути self-hosted + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 202 + + + + Use anonymously + Використовувати анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 209 + + + + can be used anonymously + може використовуватися анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 217 + + + + cannot be used anonymously + не може використовуватися анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 224 + + + + can be used anonymously + може використовуватися анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 234 + + + + cannot be used anonymously + не може використовуватися анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 241 + + + + Free Plan + Безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 248 + + + + offers a free plan + пропонує безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 256 + + + + does not offer a free plan + не пропонує безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 263 + + + + offers a free plan + пропонує безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 273 + + + + does not offer a free plan + не пропонує безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 280 + + + + Starting from + Починаючи з + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 289 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 294 + + + + year + рік + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 290 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 296 + + + + Notes + Примітки + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 302 + + + + Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. + Зазначаємо, що інформація, надана в порівняльній таблиці Ghostfolio проти базується на нашому незалежному дослідженні та аналізі. Цей веб-сайт не пов'язаний з або будь-яким іншим продуктом, згаданим у порівнянні. Оскільки ландшафт інструментів особистих фінансів еволюціонує, важливо перевіряти будь-які конкретні деталі або зміни безпосередньо на сторінці відповідного продукту. Потрібно оновити дані? Допоможіть нам підтримувати точні дані на GitHub. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 311 + + + + Ready to take your investments to the next level? + Готові підняти ваші інвестиції на наступний рівень? + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 324 + + + + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. + Легко відстежуйте, аналізуйте та візуалізуйте ваше багатство з Ghostfolio. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 328 + + + + Get Started + Почати + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 333 + + + + Personal Finance Tools + Інструменти особистих фінансів + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 351 + + + + Resources + Ресурси + + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 50 + + + + Membership + Членство + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 23 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 41 + + + + Access + Доступ + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 28 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 47 + + + + My Ghostfolio + Мій Ghostfolio + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 33 + + + + Oops, authentication has failed. + Упс, аутентифікація не вдалася. + + apps/client/src/app/pages/webauthn/webauthn-page.html + 19 + + + + Try again + Спробуйте ще раз + + apps/client/src/app/pages/webauthn/webauthn-page.html + 27 + + + + Go back to Home Page + Повернутися на головну сторінку + + apps/client/src/app/pages/webauthn/webauthn-page.html + 31 + + + + Do you really want to delete this account balance? + Ви дійсно хочете видалити цей рахунок? + + libs/ui/src/lib/account-balances/account-balances.component.ts + 109 + + + + Import Activities + Імпортувати активності + + libs/ui/src/lib/activities-table/activities-table.component.html + 9 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 371 + + + + Import Dividends + Імпорт дивідендів + + libs/ui/src/lib/activities-table/activities-table.component.html + 29 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 383 + + + + Export Activities + Експорт активності + + libs/ui/src/lib/activities-table/activities-table.component.html + 41 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 396 + + + + Export Drafts as ICS + Експортувати чернетки як ICS + + libs/ui/src/lib/activities-table/activities-table.component.html + 54 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 409 + + + + Delete Activities + Видалити активності + + libs/ui/src/lib/activities-table/activities-table.component.html + 67 + + + + Draft + Чернетка + + libs/ui/src/lib/activities-table/activities-table.component.html + 145 + + + + Clone + Клонувати + + libs/ui/src/lib/activities-table/activities-table.component.html + 436 + + + + Export Draft as ICS + Експортувати чернетку як ICS + + libs/ui/src/lib/activities-table/activities-table.component.html + 446 + + + + Do you really want to delete these activities? + Ви дійсно хочете видалити ці дії? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 218 + + + + Do you really want to delete this activity? + Ви дійсно хочете видалити цю активність? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 228 + + + + Find holding... + Знайти актив... + + libs/ui/src/lib/assistant/assistant.component.ts + 143 + + + + Week to date + Тиждень до дати + + libs/ui/src/lib/assistant/assistant.component.ts + 222 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 222 + + + + Month to date + Місяць до дати + + libs/ui/src/lib/assistant/assistant.component.ts + 226 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 226 + + + + Year to date + Рік до дати + + libs/ui/src/lib/assistant/assistant.component.ts + 230 + + + + year + рік + + libs/ui/src/lib/assistant/assistant.component.ts + 234 + + + + years + роки + + libs/ui/src/lib/assistant/assistant.component.ts + 256 + + + + No entries... + Немає записів... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profiles + Профілі активів + + libs/ui/src/lib/assistant/assistant.html + 67 + + + + Date Range + Діапазон дат + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Tag + Тег + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + Reset Filters + Скинути фільтри + + libs/ui/src/lib/assistant/assistant.html + 185 + + + + Apply Filters + Застосувати фільтри + + libs/ui/src/lib/assistant/assistant.html + 195 + + + + Index + Індекс + + libs/ui/src/lib/benchmark/benchmark.component.html + 3 + + + + 50-Day Trend + Тренд на 50 днів + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + Тренд на 200 днів + + libs/ui/src/lib/benchmark/benchmark.component.html + 40 + + + + Last All Time High + Останній рекордний максимум + + libs/ui/src/lib/benchmark/benchmark.component.html + 65 + + + + Change from All Time High + Зміна від рекордного максимуму + + libs/ui/src/lib/benchmark/benchmark.component.html + 81 + + + + from ATH + від РМ + + libs/ui/src/lib/benchmark/benchmark.component.html + 83 + + + + Market data provided by + Ринкові дані надані + + libs/ui/src/lib/data-provider-credits/data-provider-credits.component.html + 2 + + + + Savings Rate per Month + Ставка заощаджень на місяць + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 10 + + + + Annual Interest Rate + Річна процентна ставка + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 21 + + + + Retirement Date + Дата виходу на пенсію + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 32 + + + + Projected Total Amount + Прогнозована загальна сума + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 57 + + + + Deposit + Депозит + + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 360 + + + + Interest + Відсотки + + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 370 + + + libs/ui/src/lib/i18n.ts + 38 + + + + Savings + Заощадження + + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 380 + + + + Details for + Деталі для + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 2 + + + + Oops! Could not parse historical data. + Упс! Не вдалося отримати історичні дані. + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 262 + + + + Allocation + Алоція + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 98 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 + + + + Change + Змінити + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 119 + + + + Show all + Показати все + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 197 + + + + Account + Рахунок + + libs/ui/src/lib/i18n.ts + 4 + + + + Asia-Pacific + Азія-Тихоокеанський регіон + + libs/ui/src/lib/i18n.ts + 5 + + + + Asset Class + Клас активів + + libs/ui/src/lib/i18n.ts + 6 + + + + Asset Sub Class + Підклас активів + + libs/ui/src/lib/i18n.ts + 7 + + + + Buy and sell + Купити та продати + + libs/ui/src/lib/i18n.ts + 8 + + + + Cancel + Скасувати + + libs/ui/src/lib/i18n.ts + 9 + + + + Core + Ядро + + libs/ui/src/lib/i18n.ts + 10 + + + + Close + Закрити + + libs/ui/src/lib/i18n.ts + 11 + + + + Switch to Ghostfolio Premium or Ghostfolio Open Source easily + Переключитися на Ghostfolio Premium або Ghostfolio з відкритим вихідним кодом легко + + libs/ui/src/lib/i18n.ts + 12 + + + + Switch to Ghostfolio Premium easily + Переключитися на Ghostfolio Premium легко + + libs/ui/src/lib/i18n.ts + 13 + + + + Switch to Ghostfolio Open Source or Ghostfolio Basic easily + Переключитися на Ghostfolio Open Source або Ghostfolio Basic легко + + libs/ui/src/lib/i18n.ts + 14 + + + + Emergency Fund + Резервний фонд + + libs/ui/src/lib/i18n.ts + 15 + + + + Grant + Грант + + libs/ui/src/lib/i18n.ts + 17 + + + + Higher Risk + Вищий ризик + + libs/ui/src/lib/i18n.ts + 18 + + + + This activity already exists. + Така активність вже існує. + + libs/ui/src/lib/i18n.ts + 19 + + + + Lower Risk + Нижчий ризик + + libs/ui/src/lib/i18n.ts + 20 + + + + Month + Місяць + + libs/ui/src/lib/i18n.ts + 21 + + + + Months + Місяців + + libs/ui/src/lib/i18n.ts + 22 + + + + Other + Інші + + libs/ui/src/lib/i18n.ts + 23 + + + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 402 + + + + Get access to 100’000+ tickers from over 50 exchanges + Отримайте доступ до 100 000+ тікерів з понад 50 бірж + + libs/ui/src/lib/i18n.ts + 24 + + + + Preset + Пресет + + libs/ui/src/lib/i18n.ts + 25 + + + + Retirement Provision + Пенсійне накопичення + + libs/ui/src/lib/i18n.ts + 26 + + + + Satellite + Супутник + + libs/ui/src/lib/i18n.ts + 27 + + + + Symbol + Символ + + libs/ui/src/lib/i18n.ts + 28 + + + + Tag + Тег + + libs/ui/src/lib/i18n.ts + 29 + + + + Year + Рік + + libs/ui/src/lib/i18n.ts + 30 + + + + Years + Роки + + libs/ui/src/lib/i18n.ts + 31 + + + + Yes + Так + + libs/ui/src/lib/i18n.ts + 32 + + + + Buy + Купити + + libs/ui/src/lib/i18n.ts + 35 + + + + Fee + Комісія + + libs/ui/src/lib/i18n.ts + 37 + + + + Valuable + Цінний + + libs/ui/src/lib/i18n.ts + 39 + + + + Liability + Зобов'язання + + libs/ui/src/lib/i18n.ts + 40 + + + + Sell + Продати + + libs/ui/src/lib/i18n.ts + 41 + + + + Cash + Готівка + + libs/ui/src/lib/i18n.ts + 44 + + + + Commodity + Товар + + libs/ui/src/lib/i18n.ts + 45 + + + + Equity + Капітал + + libs/ui/src/lib/i18n.ts + 46 + + + + Fixed Income + Фіксований дохід + + libs/ui/src/lib/i18n.ts + 47 + + + + Liquidity + Ліквідність + + libs/ui/src/lib/i18n.ts + 48 + + + + Real Estate + Нерухомість + + libs/ui/src/lib/i18n.ts + 49 + + + + Bond + Облігація + + libs/ui/src/lib/i18n.ts + 52 + + + + Cryptocurrency + Криптовалюта + + libs/ui/src/lib/i18n.ts + 53 + + + + ETF + ETF + + libs/ui/src/lib/i18n.ts + 54 + + + + Mutual Fund + Взаємний фонд + + libs/ui/src/lib/i18n.ts + 55 + + + + Precious Metal + Дорогоцінний метал + + libs/ui/src/lib/i18n.ts + 56 + + + + Private Equity + Приватний капітал + + libs/ui/src/lib/i18n.ts + 57 + + + + Stock + Акція + + libs/ui/src/lib/i18n.ts + 58 + + + + Africa + Африка + + libs/ui/src/lib/i18n.ts + 65 + + + + Asia + Азія + + libs/ui/src/lib/i18n.ts + 66 + + + + Europe + Європа + + libs/ui/src/lib/i18n.ts + 67 + + + + North America + Північна Америка + + libs/ui/src/lib/i18n.ts + 68 + + + + Oceania + Океанія + + libs/ui/src/lib/i18n.ts + 69 + + + + South America + Південна Америка + + libs/ui/src/lib/i18n.ts + 70 + + + + Australia + Австралія + + libs/ui/src/lib/i18n.ts + 73 + + + + Austria + Австрія + + libs/ui/src/lib/i18n.ts + 74 + + + + Belgium + Бельгія + + libs/ui/src/lib/i18n.ts + 75 + + + + Bulgaria + Болгарія + + libs/ui/src/lib/i18n.ts + 76 + + + + Canada + Канада + + libs/ui/src/lib/i18n.ts + 77 + + + + Czech Republic + Чеська Республіка + + libs/ui/src/lib/i18n.ts + 78 + + + + Finland + Фінляндія + + libs/ui/src/lib/i18n.ts + 79 + + + + France + Франція + + libs/ui/src/lib/i18n.ts + 80 + + + + Germany + Німеччина + + libs/ui/src/lib/i18n.ts + 81 + + + + India + Індія + + libs/ui/src/lib/i18n.ts + 82 + + + + Italy + Італія + + libs/ui/src/lib/i18n.ts + 83 + + + + Japan + Японія + + libs/ui/src/lib/i18n.ts + 84 + + + + Netherlands + Нідерланди + + libs/ui/src/lib/i18n.ts + 85 + + + + New Zealand + Нова Зеландія + + libs/ui/src/lib/i18n.ts + 86 + + + + Poland + Польща + + libs/ui/src/lib/i18n.ts + 87 + + + + Romania + Румунія + + libs/ui/src/lib/i18n.ts + 88 + + + + South Africa + Південна Африка + + libs/ui/src/lib/i18n.ts + 89 + + + + Thailand + Таїланд + + libs/ui/src/lib/i18n.ts + 91 + + + + Ukraine + Україна + + libs/ui/src/lib/i18n.ts + 92 + + + + United States + Сполучені Штати + + libs/ui/src/lib/i18n.ts + 93 + + + + Extreme Fear + Екстремальний страх + + libs/ui/src/lib/i18n.ts + 96 + + + + Extreme Greed + Екстремальна жадібність + + libs/ui/src/lib/i18n.ts + 97 + + + + Neutral + Нейтрально + + libs/ui/src/lib/i18n.ts + 100 + + + + API Key + Ключ API + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Згенерувати ключ API для постачальника даних Ghostfolio Premium для self-hosted середовищ... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + + + Membership + Членство + + libs/ui/src/lib/membership-card/membership-card.component.html + 37 + + + + Time to add your first activity. + Час додати першу активність. + + libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html + 12 + + + + No data available + Дані недоступні + + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 404 + + + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 417 + + + + Oops! Could not find any assets. + Упс! Не вдалося знайти жодного активу. + + libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html + 40 + + + + Show more + Показати більше + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 174 + + + + AI prompt has been copied to the clipboard + Запит AI скопійовано в буфер обміну + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Скопіюйте запит AI в буфер обміну + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 03def343..bf686e32 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -183,7 +183,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -371,7 +371,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -739,16 +739,20 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 200 + 205 @@ -806,7 +810,7 @@ Do you really want to revoke this granted access? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -2184,7 +2188,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -2326,7 +2330,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2648,7 +2652,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -2667,7 +2671,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -2682,7 +2686,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -2697,7 +2701,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -2708,7 +2712,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -2723,7 +2727,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -2756,7 +2760,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -2871,7 +2875,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -2899,7 +2903,7 @@ Do you really want to remove this sign in method? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -2941,49 +2945,49 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 Appearance apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 Light apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 Dark apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 Zen Mode apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -2994,35 +2998,35 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 Sign in with fingerprint apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3033,14 +3037,14 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -3436,14 +3440,14 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 280 Get Started apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -3546,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -4286,7 +4290,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -4304,14 +4308,14 @@ Monthly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 Yearly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -4325,49 +4329,49 @@ Top apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 Bottom apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 Portfolio Evolution apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 Investment Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -4471,7 +4475,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -4486,7 +4490,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -4501,7 +4505,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -4516,7 +4520,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -4559,21 +4563,21 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 For ambitious investors who need the full picture of their financial assets. apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 Email and Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -4588,14 +4592,14 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 One-time payment, no auto-renewal. apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -4609,7 +4613,7 @@ It’s free. apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -5743,32 +5747,32 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -5779,21 +5783,21 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6040,21 +6044,21 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6082,7 +6086,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -6908,6 +6912,27 @@ 59 + + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 44ba3578..45104052 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -186,7 +186,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -379,7 +379,7 @@ apps/client/src/app/pages/pricing/pricing-page.component.ts - 43 + 44 @@ -762,9 +762,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 114 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 119 + apps/client/src/app/pages/features/features-page.html - 259 + 261 @@ -772,7 +776,7 @@ 交易损失的风险可能很大。不建议将短期内可能需要的资金进行投资。 apps/client/src/app/app.component.html - 200 + 205 @@ -836,7 +840,7 @@ 您真的要撤销此授予的访问权限吗? apps/client/src/app/components/access-table/access-table.component.ts - 68 + 78 @@ -2332,7 +2336,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 158 + 159 @@ -2492,7 +2496,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 257 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2848,7 +2852,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 213 + 218 @@ -2868,7 +2872,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 217 + 222 @@ -2884,7 +2888,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 221 + 226 @@ -2900,7 +2904,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 225 + 230 @@ -2912,7 +2916,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 240 + 245 @@ -2928,7 +2932,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 252 + 257 @@ -2964,7 +2968,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 288 + 293 @@ -3092,7 +3096,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 274 + 279 @@ -3124,7 +3128,7 @@ 您确实要删除此登录方法吗? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 247 + 248 @@ -3172,7 +3176,7 @@ 语言环境 apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 129 @@ -3180,7 +3184,7 @@ 日期和数字格式 apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 131 @@ -3188,7 +3192,7 @@ 外貌 apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 154 @@ -3196,7 +3200,7 @@ 自动 apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 168 @@ -3204,7 +3208,7 @@ 明亮 apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 169 @@ -3212,7 +3216,7 @@ 黑暗 apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 170 @@ -3220,7 +3224,7 @@ 极简模式 apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 179 apps/client/src/app/pages/features/features-page.html @@ -3232,7 +3236,7 @@ 动荡时期的无干扰体验 apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 180 @@ -3240,7 +3244,7 @@ 生物识别认证 apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 196 @@ -3248,7 +3252,7 @@ 使用指纹登录 apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 197 @@ -3256,7 +3260,7 @@ 实验性功能 apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 213 @@ -3264,7 +3268,7 @@ 预览即将推出的功能 apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 214 @@ -3276,7 +3280,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 230 @@ -3284,7 +3288,7 @@ 导出数据 apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 238 @@ -3724,7 +3728,7 @@ 开源软件 apps/client/src/app/pages/features/features-page.html - 278 + 280 @@ -3732,7 +3736,7 @@ 立即开始 apps/client/src/app/pages/features/features-page.html - 303 + 305 apps/client/src/app/pages/public/public-page.html @@ -3844,7 +3848,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 324 + 329 @@ -4676,7 +4680,7 @@ 股息 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 38 + 41 libs/ui/src/lib/i18n.ts @@ -4696,7 +4700,7 @@ 每月 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 54 @@ -4704,7 +4708,7 @@ 每年 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 51 + 55 @@ -4720,7 +4724,7 @@ 顶部 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -4728,7 +4732,7 @@ 底部 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -4736,7 +4740,7 @@ 投资组合演变 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -4744,7 +4748,7 @@ 投资时间表 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -4752,7 +4756,7 @@ 当前连胜 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4760,7 +4764,7 @@ 最长连续纪录 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4768,7 +4772,7 @@ 股息时间表 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -4884,7 +4888,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 201 + 206 @@ -4900,7 +4904,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 205 + 210 @@ -4916,7 +4920,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 209 + 214 @@ -4932,7 +4936,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 229 + 234 @@ -4980,7 +4984,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 261 + 266 @@ -4988,7 +4992,7 @@ 适合需要全面了解其金融资产的雄心勃勃的投资者。 apps/client/src/app/pages/pricing/pricing-page.html - 194 + 199 @@ -4996,7 +5000,7 @@ 电子邮件和聊天支持 apps/client/src/app/pages/pricing/pricing-page.html - 257 + 262 @@ -5012,7 +5016,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 294 + 299 @@ -5020,7 +5024,7 @@ 一次性付款,无自动续订。 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 303 @@ -5036,7 +5040,7 @@ 免费。 apps/client/src/app/pages/pricing/pricing-page.html - 327 + 332 @@ -6312,7 +6316,7 @@ 绝对货币表现 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6320,7 +6324,7 @@ 绝对净性能 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6328,7 +6332,7 @@ 绝对资产绩效 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6336,11 +6340,11 @@ 投资 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 42 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 56 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -6352,7 +6356,7 @@ 资产绩效 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6360,7 +6364,7 @@ 净绩效 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6368,7 +6372,7 @@ 货币表现 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6648,7 +6652,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 173 + 174 @@ -6656,7 +6660,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 250 @@ -6664,7 +6668,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 285 @@ -6696,7 +6700,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 301 + 302 @@ -7637,6 +7641,30 @@ 59 + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index 7608e43a..edfe7fa6 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -164,6 +164,7 @@ export const SUPPORTED_LANGUAGE_CODES = [ 'pl', 'pt', 'tr', + 'uk', 'zh' ]; diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index a7cf59a1..dd07c23f 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -1,6 +1,6 @@ import * as currencies from '@dinero.js/currencies'; import { NumberParser } from '@internationalized/number'; -import { DataSource, MarketData, Type as ActivityType } from '@prisma/client'; +import { Type as ActivityType, DataSource, MarketData } from '@prisma/client'; import { Big } from 'big.js'; import { getDate, @@ -11,7 +11,7 @@ import { parseISO, subDays } from 'date-fns'; -import { ca, de, es, fr, it, nl, pl, pt, tr, zhCN } from 'date-fns/locale'; +import { ca, de, es, fr, it, nl, pl, pt, tr, uk, zhCN } from 'date-fns/locale'; import { DEFAULT_CURRENCY, @@ -192,6 +192,8 @@ export function getDateFnsLocale(aLanguageCode: string) { return pt; } else if (aLanguageCode === 'tr') { return tr; + } else if (aLanguageCode === 'uk') { + return uk; } else if (aLanguageCode === 'zh') { return zhCN; } diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index fa5eb25a..7ad4948d 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -38,6 +38,7 @@ import type { PortfolioSummary } from './portfolio-summary.interface'; import type { Position } from './position.interface'; import type { Product } from './product'; import type { AccountBalancesResponse } from './responses/account-balances-response.interface'; +import type { AiPromptResponse } from './responses/ai-prompt-response.interface'; import type { ApiKeyResponse } from './responses/api-key-response.interface'; import type { BenchmarkResponse } from './responses/benchmark-response.interface'; import type { DataProviderGhostfolioStatusResponse } from './responses/data-provider-ghostfolio-status-response.interface'; @@ -74,6 +75,7 @@ export { AdminMarketDataDetails, AdminMarketDataItem, AdminUsers, + AiPromptResponse, ApiKeyResponse, AssetProfileIdentifier, Benchmark, diff --git a/libs/common/src/lib/interfaces/responses/ai-prompt-response.interface.ts b/libs/common/src/lib/interfaces/responses/ai-prompt-response.interface.ts new file mode 100644 index 00000000..4b95bc87 --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/ai-prompt-response.interface.ts @@ -0,0 +1,3 @@ +export interface AiPromptResponse { + prompt: string; +} diff --git a/libs/common/src/lib/interfaces/subscription-offer.interface.ts b/libs/common/src/lib/interfaces/subscription-offer.interface.ts index 8db91da6..9ffe96a5 100644 --- a/libs/common/src/lib/interfaces/subscription-offer.interface.ts +++ b/libs/common/src/lib/interfaces/subscription-offer.interface.ts @@ -4,6 +4,7 @@ export interface SubscriptionOffer { coupon?: number; couponId?: string; durationExtension?: StringValue; + label?: string; price: number; priceId: string; } diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts index d6676ec4..d19b8daf 100644 --- a/libs/common/src/lib/permissions.ts +++ b/libs/common/src/lib/permissions.ts @@ -35,6 +35,7 @@ export const permissions = { enableSubscriptionInterstitial: 'enableSubscriptionInterstitial', enableSystemMessage: 'enableSystemMessage', impersonateAllUsers: 'impersonateAllUsers', + readAiPrompt: 'readAiPrompt', readMarketData: 'readMarketData', readMarketDataOfOwnAssetProfile: 'readMarketDataOfOwnAssetProfile', readPlatforms: 'readPlatforms', @@ -76,6 +77,7 @@ export function getPermissions(aRole: Role): string[] { permissions.deletePlatform, permissions.deleteTag, permissions.deleteUser, + permissions.readAiPrompt, permissions.readMarketData, permissions.readMarketDataOfOwnAssetProfile, permissions.readPlatforms, @@ -95,7 +97,8 @@ export function getPermissions(aRole: Role): string[] { return [ permissions.accessAssistant, permissions.accessHoldingsChart, - permissions.createUserAccount + permissions.createUserAccount, + permissions.readAiPrompt ]; case 'USER': @@ -113,6 +116,7 @@ export function getPermissions(aRole: Role): string[] { permissions.deleteAuthDevice, permissions.deleteOrder, permissions.deleteOwnUser, + permissions.readAiPrompt, permissions.readMarketDataOfOwnAssetProfile, permissions.updateAccount, permissions.updateAuthDevice, diff --git a/package-lock.json b/package-lock.json index b0bcd1e0..53d23d93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.132.0", + "version": "2.134.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.132.0", + "version": "2.134.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { @@ -40,7 +40,7 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "6.1.0", + "@prisma/client": "6.2.1", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", "@stripe/stripe-js": "5.4.0", @@ -149,7 +149,7 @@ "nx": "20.3.0", "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.1.0", + "prisma": "6.2.1", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "8.3.0", @@ -9142,9 +9142,9 @@ "license": "MIT" }, "node_modules/@prisma/client": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.1.0.tgz", - "integrity": "sha512-AbQYc5+EJKm1Ydfq3KxwcGiy7wIbm4/QbjCKWWoNROtvy7d6a3gmAGkKjK0iUCzh+rHV8xDhD5Cge8ke/kiy5Q==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.2.1.tgz", + "integrity": "sha512-msKY2iRLISN8t5X0Tj7hU0UWet1u0KuxSPHWuf3IRkB4J95mCvGpyQBfQ6ufcmvKNOMQSq90O2iUmJEN2e5fiA==", "hasInstallScript": true, "license": "Apache-2.0", "engines": { @@ -9160,53 +9160,53 @@ } }, "node_modules/@prisma/debug": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.1.0.tgz", - "integrity": "sha512-0himsvcM4DGBTtvXkd2Tggv6sl2JyUYLzEGXXleFY+7Kp6rZeSS3hiTW9mwtUlXrwYbJP6pwlVNB7jYElrjWUg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.2.1.tgz", + "integrity": "sha512-0KItvt39CmQxWkEw6oW+RQMD6RZ43SJWgEUnzxN8VC9ixMysa7MzZCZf22LCK5DSooiLNf8vM3LHZm/I/Ni7bQ==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/engines": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.1.0.tgz", - "integrity": "sha512-GnYJbCiep3Vyr1P/415ReYrgJUjP79fBNc1wCo7NP6Eia0CzL2Ot9vK7Infczv3oK7JLrCcawOSAxFxNFsAERQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.2.1.tgz", + "integrity": "sha512-lTBNLJBCxVT9iP5I7Mn6GlwqAxTpS5qMERrhebkUhtXpGVkBNd/jHnNJBZQW4kGDCKaQg/r2vlJYkzOHnAb7ZQ==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.1.0", - "@prisma/engines-version": "6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959", - "@prisma/fetch-engine": "6.1.0", - "@prisma/get-platform": "6.1.0" + "@prisma/debug": "6.2.1", + "@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", + "@prisma/fetch-engine": "6.2.1", + "@prisma/get-platform": "6.2.1" } }, "node_modules/@prisma/engines-version": { - "version": "6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959.tgz", - "integrity": "sha512-PdJqmYM2Fd8K0weOOtQThWylwjsDlTig+8Pcg47/jszMuLL9iLIaygC3cjWJLda69siRW4STlCTMSgOjZzvKPQ==", + "version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69.tgz", + "integrity": "sha512-7tw1qs/9GWSX6qbZs4He09TOTg1ff3gYsB3ubaVNN0Pp1zLm9NC5C5MZShtkz7TyQjx7blhpknB7HwEhlG+PrQ==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/fetch-engine": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.1.0.tgz", - "integrity": "sha512-asdFi7TvPlEZ8CzSZ/+Du5wZ27q6OJbRSXh+S8ISZguu+S9KtS/gP7NeXceZyb1Jv1SM1S5YfiCv+STDsG6rrg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.2.1.tgz", + "integrity": "sha512-OO7O9d6Mrx2F9i+Gu1LW+DGXXyUFkP7OE5aj9iBfA/2jjDXEJjqa9X0ZmM9NZNo8Uo7ql6zKm6yjDcbAcRrw1A==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.1.0", - "@prisma/engines-version": "6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959", - "@prisma/get-platform": "6.1.0" + "@prisma/debug": "6.2.1", + "@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", + "@prisma/get-platform": "6.2.1" } }, "node_modules/@prisma/get-platform": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.1.0.tgz", - "integrity": "sha512-ia8bNjboBoHkmKGGaWtqtlgQOhCi7+f85aOkPJKgNwWvYrT6l78KgojLekE8zMhVk0R9lWcifV0Pf8l3/15V0Q==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.2.1.tgz", + "integrity": "sha512-zp53yvroPl5m5/gXYLz7tGCNG33bhG+JYCm74ohxOq1pPnrL47VQYFfF3RbTZ7TzGWCrR3EtoiYMywUBw7UK6Q==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.1.0" + "@prisma/debug": "6.2.1" } }, "node_modules/@redis/bloom": { @@ -28249,14 +28249,14 @@ } }, "node_modules/prisma": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.1.0.tgz", - "integrity": "sha512-aFI3Yi+ApUxkwCJJwyQSwpyzUX7YX3ihzuHNHOyv4GJg3X5tQsmRaJEnZ+ZyfHpMtnyahhmXVfbTZ+lS8ZtfKw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.2.1.tgz", + "integrity": "sha512-hhyM0H13pQleQ+br4CkzGizS5I0oInoeTw3JfLw1BRZduBSQxPILlJLwi+46wZzj9Je7ndyQEMGw/n5cN2fknA==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/engines": "6.1.0" + "@prisma/engines": "6.2.1" }, "bin": { "prisma": "build/index.js" diff --git a/package.json b/package.json index 1ee59953..8045097e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.132.0", + "version": "2.134.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", @@ -86,7 +86,7 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "6.1.0", + "@prisma/client": "6.2.1", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", "@stripe/stripe-js": "5.4.0", @@ -195,7 +195,7 @@ "nx": "20.3.0", "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.1.0", + "prisma": "6.2.1", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "8.3.0",