Browse Source

Merge remote-tracking branch 'upstream/main' into bugfix/average-unit-price-line-alignment

# Conflicts:
#	CHANGELOG.md
pull/7937/head
GabeSilvaDev 7 days ago
parent
commit
7016c6a12d
  1. 16
      CHANGELOG.md
  2. 2
      README.md
  3. 4
      apps/api/src/app/endpoints/benchmarks/benchmarks.service.ts
  4. 2
      apps/api/src/app/endpoints/mcp/mcp.controller.ts
  5. 162
      apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
  6. 92
      apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts
  7. 166
      apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy-with-dividend.spec.ts
  8. 153
      apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-fee-and-dividend.spec.ts
  9. 53
      apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts
  10. 185
      apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.spec.ts
  11. 231
      apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts
  12. 6
      apps/api/src/app/portfolio/interfaces/average-investment-item.interface.ts
  13. 3
      apps/api/src/app/portfolio/interfaces/holding-performance.interface.ts
  14. 1
      apps/api/src/app/portfolio/interfaces/holding-valuation.interface.ts
  15. 8
      apps/api/src/app/portfolio/interfaces/weighted-investment.interface.ts
  16. 2
      apps/api/src/app/portfolio/portfolio.controller.ts
  17. 3
      apps/api/src/app/portfolio/portfolio.service.spec.ts
  18. 6
      apps/api/src/app/portfolio/portfolio.service.ts
  19. 6
      apps/api/src/helper/security-headers.helper.spec.ts
  20. 1
      apps/api/src/helper/security-headers.helper.ts
  21. 8
      apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
  22. 69
      apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
  23. 30
      apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
  24. 4
      apps/client/src/app/pages/faq/overview/faq-overview-page.html
  25. 35
      apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
  26. 84
      apps/client/src/app/pages/portfolio/analysis/analysis-page.html
  27. 180
      apps/client/src/locales/messages.ca.xlf
  28. 180
      apps/client/src/locales/messages.de.xlf
  29. 180
      apps/client/src/locales/messages.es.xlf
  30. 180
      apps/client/src/locales/messages.fr.xlf
  31. 180
      apps/client/src/locales/messages.it.xlf
  32. 180
      apps/client/src/locales/messages.ja.xlf
  33. 180
      apps/client/src/locales/messages.ko.xlf
  34. 180
      apps/client/src/locales/messages.nl.xlf
  35. 180
      apps/client/src/locales/messages.pl.xlf
  36. 180
      apps/client/src/locales/messages.pt.xlf
  37. 422
      apps/client/src/locales/messages.tr.xlf
  38. 180
      apps/client/src/locales/messages.uk.xlf
  39. 175
      apps/client/src/locales/messages.xlf
  40. 180
      apps/client/src/locales/messages.zh.xlf
  41. 2
      apps/client/tsconfig.json
  42. 8
      libs/ui/src/lib/accounts-table/accounts-table.component.ts
  43. 32
      libs/ui/src/lib/activities-table/activities-table.component.ts
  44. 1
      libs/ui/src/lib/activities-table/index.ts
  45. 21
      libs/ui/src/lib/activities-table/interfaces/interfaces.ts
  46. 2
      libs/ui/src/lib/benchmark/benchmark-detail-dialog/benchmark-detail-dialog.html
  47. 6
      libs/ui/src/lib/dialog-header/dialog-header.component.html
  48. 15
      libs/ui/src/lib/dialog-header/dialog-header.component.ts
  49. 22
      libs/ui/src/lib/holdings-table/holdings-table.component.ts
  50. 1
      libs/ui/src/lib/holdings-table/index.ts
  51. 17
      libs/ui/src/lib/holdings-table/interfaces/interfaces.ts
  52. 4
      package-lock.json
  53. 2
      package.json

16
CHANGELOG.md

@ -9,9 +9,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Fixed the alignment of the average price in the chart of the holding detail dialog for custom asset profiles
## 3.81.0 - 2026-10-07
### Changed
- Moved the performance calculation including dividends (total return) from experimental to general availability
- Improved the language localization for German (`de`)
- Improved the language localization for Turkish (`tr`)
### Fixed
- Fixed the visibility of the asset class, asset sub class, fee and quantity fields of a valuable in the create activity dialog
- Fixed the missing mapping for Aland Islands in the country weightings of the _Financial Modeling Prep_ service
- Fixed the alignment of the average price in the chart of the holding detail dialog for custom asset profiles
- Fixed the net performance percentage of date ranges in the portfolio performance calculation by weighting the average investment by the number of days between the chart dates
- Fixed the start date of calendar year date ranges in the portfolio performance calculation
- Fixed an issue where the Content Security Policy in HTTP security headers blocked the status check of the Ghostfolio data provider when `ENABLE_FEATURE_SECURITY_HEADERS` was enabled (experimental)
## 3.80.2 - 2026-10-06

2
README.md

@ -47,7 +47,7 @@ Ghostfolio is for you if you are...
- ✅ Create, update and delete transactions
- ✅ Multi account management
- ✅ Portfolio performance: Return on Average Investment (ROAI) for `Today`, `WTD`, `MTD`, `YTD`, `1Y`, `5Y`, `Max`
- ✅ Portfolio performance: Return on Average Investment (ROAI) including dividends (total return) for `Today`, `WTD`, `MTD`, `YTD`, `1Y`, `5Y`, `Max`
- ✅ Various charts
- ✅ Static analysis to identify potential risks in your portfolio
- ✅ Import and export transactions

4
apps/api/src/app/endpoints/benchmarks/benchmarks.service.ts

@ -13,7 +13,7 @@ import {
import { DateRange } from '@ghostfolio/common/types';
import { Injectable, Logger } from '@nestjs/common';
import { format, isSameDay } from 'date-fns';
import { format, isSameDay, min } from 'date-fns';
import { isNumber } from 'lodash-es';
@Injectable()
@ -96,8 +96,8 @@ export class BenchmarksService {
const exchangeRates =
await this.exchangeRateDataService.getExchangeRatesByCurrency({
startDate,
currencies: [currentSymbolItem.currency],
startDate: min([baselineDate, startDate]),
targetCurrency: userCurrency
});

2
apps/api/src/app/endpoints/mcp/mcp.controller.ts

@ -79,7 +79,7 @@ export class GhostfolioMcpController {
},
description: `Gives the performance of the portfolio in the date range with these columns: ${PortfolioTableService.getPerformanceTableColumnNames().join(
', '
)}. The asset performance excludes the effect of the exchange rates, the currency performance is that effect, and the net performance is the sum of both in the base currency of the user. Each performance is the return on average investment (ROAI) and excludes the dividends. The accounts and the activities which are excluded from analysis are not part of the performance. The parameters limit the performance to the holdings of the accounts, of the asset classes or of the asset profile.`,
)}. The asset performance excludes the effect of the exchange rates, the currency performance is that effect, and the net performance is the sum of both in the base currency of the user. Each performance is the return on average investment (ROAI) and includes the dividends (total return). The accounts and the activities which are excluded from analysis are not part of the performance. The parameters limit the performance to the holdings of the accounts, of the asset classes or of the asset profile.`,
name: 'get-performance',
parameters: GET_PERFORMANCE_PARAMETERS
})

162
apps/api/src/app/portfolio/calculator/portfolio-calculator.ts

@ -64,6 +64,7 @@ import {
format,
isAfter,
isBefore,
isEqual,
isFuture,
isPast,
isWithinInterval,
@ -223,19 +224,15 @@ export abstract class PortfolioCalculator {
): PortfolioSnapshot;
protected abstract calculatePerformancePercentages({
accumulatedValuesByDate,
holdings
accumulatedValuesByDate
}: {
accumulatedValuesByDate: { [date: string]: AccumulatedValues };
holdings: PortfolioSnapshotHolding[];
}): { [date: string]: PerformancePercentages };
protected abstract calculatePerformancePercentagesForDateRange({
historicalDataItems,
holdings
historicalDataItems
}: {
historicalDataItems: HistoricalDataItem[];
holdings: PortfolioSnapshotHolding[];
}): { [date: string]: PerformancePercentages };
@LogPerformance
@ -366,6 +363,18 @@ export abstract class PortfolioCalculator {
return chartDate;
});
// The chart dates are the same for each holding and each date range. Thus
// calculate the number of days until the next chart date one time only.
const parsedChartDates = chartDates.map((chartDate) => {
return parseDate(chartDate);
});
const daysUntilNextChartDate = parsedChartDates
.slice(1)
.map((nextChartDate, index) => {
return differenceInDays(nextChartDate, parsedChartDates[index]);
});
const errors: ResponseError['errors'] = [];
let hasAnyHoldingPerformanceErrors = false;
@ -381,6 +390,7 @@ export abstract class PortfolioCalculator {
averageInvestmentValuesWithCurrencyEffect: { [date: string]: Big };
currentValues: { [date: string]: Big };
currentValuesWithCurrencyEffect: { [date: string]: Big };
dividendValuesWithCurrencyEffect: { [date: string]: Big };
investmentValuesAccumulated: { [date: string]: Big };
investmentValuesAccumulatedWithCurrencyEffect: { [date: string]: Big };
investmentValuesWithCurrencyEffect: { [date: string]: Big };
@ -416,6 +426,7 @@ export abstract class PortfolioCalculator {
averageInvestmentWithCurrencyEffect,
currentValues,
currentValuesWithCurrencyEffect,
dividendValuesWithCurrencyEffect,
dividendYieldPercent,
dividendYieldPercentWithCurrencyEffect,
grossPerformance,
@ -440,6 +451,7 @@ export abstract class PortfolioCalculator {
totalLiabilitiesInBaseCurrency
} = this.getHoldingPerformance({
chartDates,
daysUntilNextChartDate,
marketSymbolMap,
dataSource: item.dataSource,
end: this.endDate,
@ -463,6 +475,7 @@ export abstract class PortfolioCalculator {
averageInvestmentValuesWithCurrencyEffect: {},
currentValues: {},
currentValuesWithCurrencyEffect: {},
dividendValuesWithCurrencyEffect: {},
investmentValuesAccumulated: {},
investmentValuesAccumulatedWithCurrencyEffect: {},
investmentValuesWithCurrencyEffect: {},
@ -475,6 +488,7 @@ export abstract class PortfolioCalculator {
averageInvestmentValuesWithCurrencyEffect,
currentValues,
currentValuesWithCurrencyEffect,
dividendValuesWithCurrencyEffect,
investmentValuesAccumulated,
investmentValuesAccumulatedWithCurrencyEffect,
investmentValuesWithCurrencyEffect,
@ -558,13 +572,6 @@ export abstract class PortfolioCalculator {
}
}
const totalDividendValueWithCurrencyEffectByDate =
this.getTotalDividendValueWithCurrencyEffectByDate({
chartDates,
exchangeRatesByCurrency,
holdings: positions
});
const assetProfileIdentifiers = Object.keys(valuesByAssetProfileIdentifier);
for (const dateString of chartDates) {
@ -579,6 +586,10 @@ export abstract class PortfolioCalculator {
assetProfileValues.currentValuesWithCurrencyEffect?.[dateString] ??
new Big(0);
const dividendValueWithCurrencyEffect =
assetProfileValues.dividendValuesWithCurrencyEffect?.[dateString] ??
new Big(0);
const investmentValueAccumulated =
assetProfileValues.investmentValuesAccumulated?.[dateString] ??
new Big(0);
@ -641,8 +652,10 @@ export abstract class PortfolioCalculator {
accumulatedValuesByDate[dateString]
?.totalCurrentValueWithCurrencyEffect ?? new Big(0)
).add(currentValueWithCurrencyEffect),
totalDividendValueWithCurrencyEffect:
totalDividendValueWithCurrencyEffectByDate[dateString],
totalDividendValueWithCurrencyEffect: (
accumulatedValuesByDate[dateString]
?.totalDividendValueWithCurrencyEffect ?? new Big(0)
).add(dividendValueWithCurrencyEffect),
totalInvestmentValue: (
accumulatedValuesByDate[dateString]?.totalInvestmentValue ??
new Big(0)
@ -677,8 +690,7 @@ export abstract class PortfolioCalculator {
});
const performancePercentagesByDate = this.calculatePerformancePercentages({
accumulatedValuesByDate,
holdings: positionsIncludedInHoldings
accumulatedValuesByDate
});
const historicalData: HistoricalDataItem[] = Object.entries(
@ -880,12 +892,6 @@ export abstract class PortfolioCalculator {
return this.dataProviderInfos;
}
public async getDividendInBaseCurrency() {
await this.snapshotPromise;
return this.getDividendInBaseCurrencyOfHoldings(this.snapshot.positions);
}
protected getDividendInBaseCurrencyOfHoldings(
holdings: PortfolioSnapshotHolding[]
) {
@ -904,6 +910,7 @@ export abstract class PortfolioCalculator {
averageInvestmentWithCurrencyEffect: new Big(0),
currentValues: {},
currentValuesWithCurrencyEffect: {},
dividendValuesWithCurrencyEffect: {},
dividendYieldPercent: new Big(0),
dividendYieldPercentWithCurrencyEffect: new Big(0),
grossPerformance: new Big(0),
@ -942,6 +949,7 @@ export abstract class PortfolioCalculator {
protected abstract getHoldingPerformance({
chartDates,
dataSource,
daysUntilNextChartDate,
end,
exchangeRates,
marketSymbolMap,
@ -949,6 +957,7 @@ export abstract class PortfolioCalculator {
symbol
}: {
chartDates: string[];
daysUntilNextChartDate: number[];
end: Date;
exchangeRates: { [dateString: string]: number };
marketSymbolMap: {
@ -969,6 +978,10 @@ export abstract class PortfolioCalculator {
const currentExchangeRate = exchangeRates[format(new Date(), DATE_FORMAT)];
const currentValues: { [date: string]: Big } = {};
const currentValuesWithCurrencyEffect: { [date: string]: Big } = {};
const dividendValuesWithCurrencyEffect: { [date: string]: Big } = {};
let dividends = new Big(0);
let dividendsAtStartDateWithCurrencyEffect = new Big(0);
let dividendsWithCurrencyEffect = new Big(0);
let fees = new Big(0);
let feesAtStartDate = new Big(0);
let feesAtStartDateWithCurrencyEffect = new Big(0);
@ -1211,14 +1224,26 @@ export abstract class PortfolioCalculator {
);
}
if (activity.type === 'DIVIDEND') {
const dividend = activity.quantity.mul(activity.unitPrice);
dividends = dividends.plus(dividend.mul(currentExchangeRate ?? 1));
dividendsWithCurrencyEffect = dividendsWithCurrencyEffect.plus(
dividend.mul(exchangeRateAtActivityDate ?? 1)
);
}
const newGrossPerformance = valueOfInvestment
.minus(totalInvestment)
.plus(grossPerformanceFromSells);
.plus(grossPerformanceFromSells)
.plus(dividends);
const newGrossPerformanceWithCurrencyEffect =
valueOfInvestmentWithCurrencyEffect
.minus(totalInvestmentWithCurrencyEffect)
.plus(grossPerformanceFromSellsWithCurrencyEffect);
.plus(grossPerformanceFromSellsWithCurrencyEffect)
.plus(dividendsWithCurrencyEffect);
grossPerformance = newGrossPerformance;
@ -1226,6 +1251,7 @@ export abstract class PortfolioCalculator {
newGrossPerformanceWithCurrencyEffect;
if (activity.itemType === 'start') {
dividendsAtStartDateWithCurrencyEffect = dividendsWithCurrencyEffect;
feesAtStartDate = fees;
feesAtStartDateWithCurrencyEffect = feesWithCurrencyEffect;
grossPerformanceAtStartDate = grossPerformance;
@ -1240,6 +1266,11 @@ export abstract class PortfolioCalculator {
currentValuesWithCurrencyEffect[activity.date] =
valueOfInvestmentWithCurrencyEffect;
dividendValuesWithCurrencyEffect[activity.date] =
dividendsWithCurrencyEffect.minus(
dividendsAtStartDateWithCurrencyEffect
);
netPerformanceValues[activity.date] = grossPerformance
.minus(grossPerformanceAtStartDate)
.minus(fees.minus(feesAtStartDate));
@ -1313,6 +1344,7 @@ export abstract class PortfolioCalculator {
return {
currentValues,
currentValuesWithCurrencyEffect,
dividendValuesWithCurrencyEffect,
initialValue,
investmentValuesAccumulated,
investmentValuesAccumulatedWithCurrencyEffect,
@ -1386,10 +1418,14 @@ export abstract class PortfolioCalculator {
let netPerformanceAtStartDate: number;
let netPerformanceWithCurrencyEffectAtStartDate: number;
const startDate = isEqual(start, endOfDay(start))
? resetHours(start)
: start;
for (const historicalDataItem of historicalData) {
const date = resetHours(parseDate(historicalDataItem.date));
if (!isBefore(date, start) && !isAfter(date, end)) {
if (!isBefore(date, startDate) && !isAfter(date, end)) {
// Take the values at the start date from the first day of the date
// range
if (historicalDataItemsOfDateRange.length === 0) {
@ -1422,8 +1458,7 @@ export abstract class PortfolioCalculator {
const performancePercentagesByDate =
this.calculatePerformancePercentagesForDateRange({
historicalDataItems: historicalDataItemsOfDateRange,
holdings: this.snapshot.positions
historicalDataItems: historicalDataItemsOfDateRange
});
const chart = historicalDataItemsOfDateRange.map((historicalDataItem) => {
@ -1785,77 +1820,6 @@ export abstract class PortfolioCalculator {
return chartDateMap;
}
private getTotalDividendValueWithCurrencyEffectByDate({
chartDates,
exchangeRatesByCurrency,
holdings
}: {
chartDates: string[];
exchangeRatesByCurrency: {
[currencyPair: string]: { [dateString: string]: number };
};
holdings: PortfolioCalculatorHolding[];
}): { [date: string]: Big } {
// Take the dividend from the same holdings as the portfolio summary, so
// that the response shows one dividend only
const assetProfileIdentifiersIncludedInHoldings = new Set(
holdings
.filter(({ includeInHoldings }) => {
return includeInHoldings;
})
.map(({ dataSource, symbol }) => {
return getAssetProfileIdentifier({ dataSource, symbol });
})
);
const dividendActivities = this.activities.filter(
({ assetProfile, type }) => {
return (
type === 'DIVIDEND' &&
assetProfileIdentifiersIncludedInHoldings.has(
getAssetProfileIdentifier(assetProfile)
)
);
}
);
const totalDividendValueWithCurrencyEffectByDate: { [date: string]: Big } =
{};
let index = 0;
let totalDividendValueWithCurrencyEffect = new Big(0);
// The activities and the chart dates are sorted by date, so one pass over
// both gives the dividends received up to each chart date
for (const chartDate of chartDates) {
while (
index < dividendActivities.length &&
dividendActivities[index].date <= chartDate
) {
const { assetProfile, date, quantity, unitPrice } =
dividendActivities[index];
totalDividendValueWithCurrencyEffect =
totalDividendValueWithCurrencyEffect.plus(
quantity
.mul(unitPrice)
.mul(
exchangeRatesByCurrency[
`${assetProfile.currency}${this.currency}`
]?.[date] ?? 1
)
);
index++;
}
totalDividendValueWithCurrencyEffectByDate[chartDate] =
totalDividendValueWithCurrencyEffect;
}
return totalDividendValueWithCurrencyEffectByDate;
}
@LogPerformance
private async initialize(attempt = 1) {
const startTimeTotal = performance.now();

92
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts

@ -13,6 +13,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
import { ExchangeRateDataServiceMock } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service.mock';
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper';
import { parseDate } from '@ghostfolio/common/helper';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
@ -112,7 +113,7 @@ describe('PortfolioCalculator', () => {
const performanceByDateRange = await getPerformanceByDateRange({
portfolioCalculator,
dateRanges: ['1d', 'max', 'ytd']
dateRanges: ['1d', '2017', 'max', 'ytd']
});
const investments = portfolioCalculator.getInvestments();
@ -162,11 +163,13 @@ describe('PortfolioCalculator', () => {
netPerformancePercentage: new Big('42.41978276196153750666'),
netPerformancePercentageWithCurrencyEffectMap: {
'1d': new Big('-0.04016229506406263535'),
max: new Big('41.72313811883729606471'),
'2017': new Big('43.14843430282283692638'),
max: new Big('41.65910103572163194783'),
ytd: new Big('-0.04016229506406263535')
},
netPerformanceWithCurrencyEffectMap: {
'1d': new Big('-556.443324'),
'2017': new Big('27081.23736'),
max: new Big('26516.208701400000064086'),
ytd: new Big('-556.443324')
},
@ -258,11 +261,20 @@ describe('PortfolioCalculator', () => {
totalInvestmentValueWithCurrencyEffect: 318.54266729999995,
valueWithCurrencyEffect: 13298.425356
},
'2017': {
date: '2017-12-31',
netPerformance: 26957.033439,
netPerformanceInPercentage: 44.10965416175668,
netPerformanceInPercentageWithCurrencyEffect: 43.148434302822835,
netPerformanceWithCurrencyEffect: 27081.23736,
totalInvestmentValueWithCurrencyEffect: 318.54266729999995,
valueWithCurrencyEffect: 13854.86868
},
max: {
date: '2018-01-01',
netPerformance: 26458.9121202,
netPerformanceInPercentage: 42.50435329547954,
netPerformanceInPercentageWithCurrencyEffect: 41.72313811883715,
netPerformanceInPercentage: 42.439117195620575,
netPerformanceInPercentageWithCurrencyEffect: 41.65910103572163,
netPerformanceWithCurrencyEffect: 26516.2087014,
totalInvestmentValueWithCurrencyEffect: 318.54266729999995,
valueWithCurrencyEffect: 13298.425356
@ -277,6 +289,78 @@ describe('PortfolioCalculator', () => {
valueWithCurrencyEffect: 13298.425356
}
});
const { endDate, startDate } = getIntervalFromDateRange({
dateRange: '2017'
});
const { chart } = await portfolioCalculator.getPerformance({
end: endDate,
start: startDate
});
expect(chart[0].date).toBe('2016-12-31');
});
it.only('with BTCUSD buy and sell partially and fewer chart items', async () => {
jest.useFakeTimers().setSystemTime(parseDate('2018-01-01').getTime());
const environmentConfigurationService = new ConfigurationService();
// Fewer chart items give fewer chart dates, which must not change the
// average investment. The range 2017 starts with a gross performance
// and ends with the sell.
jest.spyOn(configurationService, 'get').mockImplementation((key) => {
return key === 'MAX_CHART_ITEMS'
? 50
: environmentConfigurationService.get(key);
});
const { activities, userCurrency } = loadActivitiesFromExportFile(
'btcusd-buy-and-sell-partially.json'
);
const portfolioCalculator = portfolioCalculatorFactory.createCalculator({
activities,
calculationType: PerformanceCalculationType.ROAI,
currency: userCurrency,
usePortfolioSnapshotCache: false,
userId: userDummyData.id
});
const portfolioSnapshot = await portfolioCalculator.computeSnapshot();
const performanceByDateRange = await getPerformanceByDateRange({
portfolioCalculator,
dateRanges: ['2017', 'max']
});
expect(
portfolioSnapshot.positions[0]
.netPerformancePercentageWithCurrencyEffectMap
).toMatchObject({
'2017': new Big('43.14843430282283692638'),
max: new Big('41.65910103572163194783')
});
// Other weights give another rounding of the floating point numbers
expect(
performanceByDateRange['2017'].netPerformanceInPercentage
).toBeCloseTo(44.10965416175668, 10);
expect(
performanceByDateRange['2017']
.netPerformanceInPercentageWithCurrencyEffect
).toBeCloseTo(43.148434302822835, 10);
expect(performanceByDateRange.max.netPerformanceInPercentage).toBeCloseTo(
42.439117195620575,
10
);
expect(
performanceByDateRange.max.netPerformanceInPercentageWithCurrencyEffect
).toBeCloseTo(41.65910103572163, 10);
});
});
});

166
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy-with-dividend.spec.ts

@ -0,0 +1,166 @@
import {
activityDummyData,
assetProfileDummyData,
userDummyData
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
import { RedisCacheServiceMock } from '@ghostfolio/api/app/redis-cache/redis-cache.service.mock';
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { ExchangeRateDataServiceMock } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service.mock';
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
import { parseDate } from '@ghostfolio/common/helper';
import { Activity } from '@ghostfolio/common/interfaces';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
import { Big } from 'big.js';
jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => {
return {
CurrentRateService: jest.fn().mockImplementation(() => {
return CurrentRateServiceMock;
})
};
});
jest.mock(
'@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service',
() => {
return {
PortfolioSnapshotService: jest.fn().mockImplementation(() => {
return PortfolioSnapshotServiceMock;
})
};
}
);
jest.mock('@ghostfolio/api/app/redis-cache/redis-cache.service', () => {
return {
RedisCacheService: jest.fn().mockImplementation(() => {
return RedisCacheServiceMock;
})
};
});
jest.mock(
'@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service',
() => {
return {
ExchangeRateDataService: jest.fn().mockImplementation(() => {
return ExchangeRateDataServiceMock;
})
};
}
);
describe('PortfolioCalculator', () => {
let configurationService: ConfigurationService;
let currentRateService: CurrentRateService;
let exchangeRateDataService: ExchangeRateDataService;
let portfolioCalculatorFactory: PortfolioCalculatorFactory;
let portfolioSnapshotService: PortfolioSnapshotService;
let redisCacheService: RedisCacheService;
beforeEach(() => {
PortfolioSnapshotServiceMock.reset();
RedisCacheServiceMock.reset();
configurationService = new ConfigurationService();
currentRateService = new CurrentRateService(null, null, null);
exchangeRateDataService = new ExchangeRateDataService(
null,
null,
null,
null
);
portfolioSnapshotService = new PortfolioSnapshotService(null, null);
redisCacheService = new RedisCacheService(null, null);
portfolioCalculatorFactory = new PortfolioCalculatorFactory(
configurationService,
currentRateService,
exchangeRateDataService,
portfolioSnapshotService,
redisCacheService
);
});
describe('get current positions', () => {
it('with GOOGL buy and dividend', async () => {
jest.useFakeTimers().setSystemTime(parseDate('2023-07-10').getTime());
const activities: Activity[] = [
{
...activityDummyData,
assetProfile: {
...assetProfileDummyData,
currency: 'USD',
dataSource: 'YAHOO',
name: 'Alphabet Inc.',
symbol: 'GOOGL'
},
date: new Date('2023-01-03'),
feeInAssetProfileCurrency: 1,
feeInBaseCurrency: 0.9238,
quantity: 1,
type: 'BUY',
unitPriceInAssetProfileCurrency: 89.12
},
{
...activityDummyData,
assetProfile: {
...assetProfileDummyData,
currency: 'USD',
dataSource: 'YAHOO',
name: 'Alphabet Inc.',
symbol: 'GOOGL'
},
date: new Date('2023-01-03'),
feeInAssetProfileCurrency: 0,
feeInBaseCurrency: 0,
quantity: 1,
type: 'DIVIDEND',
unitPriceInAssetProfileCurrency: 5
}
];
const portfolioCalculator = portfolioCalculatorFactory.createCalculator({
activities,
calculationType: PerformanceCalculationType.ROAI,
currency: 'CHF',
userId: userDummyData.id
});
const portfolioSnapshot = await portfolioCalculator.computeSnapshot();
// The asset performance takes the dividend at the current exchange rate
// (0.8854), the net performance at the exchange rate of the payment date
// (0.9238)
expect(portfolioSnapshot.positions).toMatchObject([
{
dividendInBaseCurrency: new Big('5').mul(0.9238),
grossPerformance: new Big('32.33').mul(0.8854),
grossPerformanceWithCurrencyEffect: new Big('25.394774'),
netPerformance: new Big('31.33').mul(0.8854),
netPerformanceWithCurrencyEffectMap: {
max: new Big('24.470974')
}
}
]);
expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject({
dividendInBaseCurrency: 4.619,
netPerformance: new Big('31.33').mul(0.8854).toNumber(),
netPerformanceWithCurrencyEffect: 24.470974
});
});
});
});

153
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-fee-and-dividend.spec.ts

@ -122,8 +122,9 @@ describe('PortfolioCalculator', () => {
{
// The first activity of this asset profile is a fee, which is not an
// investment activity. Thus the holding is not included in the
// holdings of the portfolio summary, and its dividend must not be
// included in the chart
// holdings of the portfolio summary. But its fee and its dividend are
// part of the net performance, and thus its dividend is part of the
// dividend of the chart
...activityDummyData,
assetProfile: {
...assetProfileDummyData,
@ -167,8 +168,10 @@ describe('PortfolioCalculator', () => {
const portfolioSnapshot = await portfolioCalculator.computeSnapshot();
const dividendInBaseCurrency =
await portfolioCalculator.getDividendInBaseCurrency();
const performanceByDateRange = await getPerformanceByDateRange({
portfolioCalculator,
dateRanges: ['max']
});
expect(
portfolioSnapshot.positions.map(({ symbol }) => {
@ -176,12 +179,25 @@ describe('PortfolioCalculator', () => {
})
).toEqual(['MSFT']);
// The chart and the portfolio summary must show the same dividend
expect(dividendInBaseCurrency).toEqual(new Big('0.62'));
expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject({
dividendInBaseCurrency: 5.62,
dividendInPercentageWithCurrencyEffect: 0.01882242615044544,
netPerformance: 18.87,
netPerformanceInPercentage: 0.06319914260834618
});
expect(
portfolioSnapshot.historicalData.at(-1).dividendInBaseCurrency
).toEqual(0.62);
// The portfolio summary takes the dividend of the date range max
expect(performanceByDateRange).toMatchObject({
max: {
dividendInBaseCurrency: 5.62,
dividendInPercentageWithCurrencyEffect: expect.closeTo(
0.01882242615044535,
10
),
netPerformance: 18.87,
netPerformanceInPercentage: expect.closeTo(0.06319914260834586, 10)
}
});
});
it('with GOOGL dividend without investment', async () => {
@ -221,8 +237,8 @@ describe('PortfolioCalculator', () => {
unitPriceInAssetProfileCurrency: 0.62
},
{
// The holding has a dividend, but no average investment. Thus the
// dividend percentage stays 0, like the dividend yield
// The holding has a dividend, but no average investment. Its dividend
// is part of the net performance, and thus of the dividend percentage
...activityDummyData,
assetProfile: {
...assetProfileDummyData,
@ -261,13 +277,114 @@ describe('PortfolioCalculator', () => {
expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject({
dividendInBaseCurrency: 5.62,
dividendInPercentageWithCurrencyEffect: 0
dividendInPercentageWithCurrencyEffect: 0.01882242615044544,
netPerformance: 19.87,
netPerformanceInPercentage: 0.06654832875611226
});
expect(performanceByDateRange).toMatchObject({
max: {
dividendInBaseCurrency: 5.62,
dividendInPercentageWithCurrencyEffect: 0
dividendInPercentageWithCurrencyEffect: expect.closeTo(
0.01882242615044535,
10
),
netPerformance: 19.87,
netPerformanceInPercentage: expect.closeTo(0.06654832875611194, 10)
}
});
});
it('with dividend of a holding without market price', async () => {
jest.useFakeTimers().setSystemTime(parseDate('2023-07-10').getTime());
const activities: Activity[] = [
{
...activityDummyData,
assetProfile: {
...assetProfileDummyData,
currency: 'USD',
dataSource: 'YAHOO',
name: 'Microsoft Inc.',
symbol: 'MSFT'
},
date: new Date('2021-09-16'),
feeInAssetProfileCurrency: 19,
feeInBaseCurrency: 19,
quantity: 1,
type: 'BUY',
unitPriceInAssetProfileCurrency: 298.58
},
{
...activityDummyData,
assetProfile: {
...assetProfileDummyData,
currency: 'USD',
dataSource: 'YAHOO',
name: 'Microsoft Inc.',
symbol: 'MSFT'
},
date: new Date('2021-11-16'),
feeInAssetProfileCurrency: 0,
feeInBaseCurrency: 0,
quantity: 1,
type: 'DIVIDEND',
unitPriceInAssetProfileCurrency: 0.62
},
{
// The holding has no market price, thus it has no value. Its dividend
// is not part of the net performance (unlike the dividend in the
// scenario above), and thus not part of the dividend of the chart
...activityDummyData,
assetProfile: {
...assetProfileDummyData,
currency: 'USD',
dataSource: 'MANUAL',
name: 'Private Equity Fund',
symbol: '3b5ba4a5-4c8e-4bd5-9b4c-5e0d5e7cfc3f'
},
date: new Date('2023-07-10'),
feeInAssetProfileCurrency: 0,
feeInBaseCurrency: 0,
quantity: 1,
type: 'DIVIDEND',
unitPriceInAssetProfileCurrency: 5
}
];
const portfolioCalculator = portfolioCalculatorFactory.createCalculator({
activities,
calculationType: PerformanceCalculationType.ROAI,
currency: 'USD',
usePortfolioSnapshotCache: false,
userId: userDummyData.id
});
const portfolioSnapshot = await portfolioCalculator.computeSnapshot();
const performanceByDateRange = await getPerformanceByDateRange({
portfolioCalculator,
dateRanges: ['max']
});
expect(portfolioSnapshot.hasErrors).toBe(false);
expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject({
dividendInBaseCurrency: 0.62,
dividendInPercentageWithCurrencyEffect: 0.0020764954116149776,
netPerformance: 14.87,
netPerformanceInPercentage: 0.0498023980172818
});
expect(performanceByDateRange).toMatchObject({
max: {
dividendInBaseCurrency: 0.62,
dividendInPercentageWithCurrencyEffect: expect.closeTo(
0.002076495411614967,
10
),
netPerformance: 14.87,
netPerformanceInPercentage: expect.closeTo(0.049802398017281556, 10)
}
});
});
@ -350,11 +467,17 @@ describe('PortfolioCalculator', () => {
},
max: {
dividendInBaseCurrency: 1.3,
dividendInPercentageWithCurrencyEffect: 0.004353941992095899
dividendInPercentageWithCurrencyEffect: expect.closeTo(
0.004353941992095899,
10
)
},
ytd: {
dividendInBaseCurrency: 0.68,
dividendInPercentageWithCurrencyEffect: 0.002002886512915673
dividendInPercentageWithCurrencyEffect: expect.closeTo(
0.002002886512915673,
10
)
}
});
});

53
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts

@ -122,25 +122,25 @@ describe('PortfolioCalculator', () => {
'0.001144362748184'
),
fee: new Big('19'),
grossPerformance: new Big('33.25'),
grossPerformancePercentage: new Big('0.11136043941322258691'),
grossPerformance: new Big('33.87'),
grossPerformancePercentage: new Big('0.11343693482483756447'),
grossPerformancePercentageWithCurrencyEffect: new Big(
'0.11136043941322258691'
'0.11343693482483756447'
),
grossPerformanceWithCurrencyEffect: new Big('33.25'),
grossPerformanceWithCurrencyEffect: new Big('33.87'),
investment: new Big('298.58'),
investmentWithCurrencyEffect: new Big('298.58'),
marketPrice: 331.83,
marketPriceInBaseCurrency: 331.83,
netPerformance: new Big('14.25'),
netPerformancePercentage: new Big('0.04772590260566682296'),
netPerformance: new Big('14.87'),
netPerformancePercentage: new Big('0.04980239801728180052'),
netPerformancePercentageWithCurrencyEffectMap: {
max: new Big('0.04772590260566682296')
max: new Big('0.04980239801728180052')
},
netPerformanceWithCurrencyEffectMap: {
'1d': new Big('-5.39'),
'5y': new Big('14.25'),
max: new Big('14.25'),
'5y': new Big('14.87'),
max: new Big('14.87'),
wtd: new Big('-5.39')
},
quantity: new Big('1'),
@ -167,21 +167,27 @@ describe('PortfolioCalculator', () => {
date: '2023-07-10',
dividendInBaseCurrency: 0,
dividendInPercentageWithCurrencyEffect: 0,
netPerformance: -5.390000000000001,
netPerformanceInPercentage: -0.015983630864124312,
netPerformanceInPercentageWithCurrencyEffect: -0.015983630864124312,
netPerformanceWithCurrencyEffect: -5.390000000000001,
netPerformance: -5.390000000000002,
netPerformanceInPercentage: -0.015983630864124316,
netPerformanceInPercentageWithCurrencyEffect: -0.015983630864124316,
netPerformanceWithCurrencyEffect: -5.390000000000002,
totalInvestmentValueWithCurrencyEffect: 298.58,
valueWithCurrencyEffect: 331.83
},
max: {
date: '2023-07-10',
dividendInBaseCurrency: 0.62,
dividendInPercentageWithCurrencyEffect: 0.002076495411614967,
netPerformance: 14.25,
netPerformanceInPercentage: 0.04772590260566659,
netPerformanceInPercentageWithCurrencyEffect: 0.04772590260566659,
netPerformanceWithCurrencyEffect: 14.25,
dividendInPercentageWithCurrencyEffect: expect.closeTo(
0.002076495411614967,
10
),
netPerformance: 14.87,
netPerformanceInPercentage: expect.closeTo(0.049802398017281556, 10),
netPerformanceInPercentageWithCurrencyEffect: expect.closeTo(
0.049802398017281556,
10
),
netPerformanceWithCurrencyEffect: 14.87,
totalInvestmentValueWithCurrencyEffect: 298.58,
valueWithCurrencyEffect: 331.83
},
@ -189,10 +195,13 @@ describe('PortfolioCalculator', () => {
date: '2023-07-10',
dividendInBaseCurrency: 0,
dividendInPercentageWithCurrencyEffect: 0,
netPerformance: -7.68,
netPerformanceInPercentage: -0.022620835910577012,
netPerformanceInPercentageWithCurrencyEffect: -0.022620835910577012,
netPerformanceWithCurrencyEffect: -7.68,
netPerformance: -7.6800000000000015,
netPerformanceInPercentage: expect.closeTo(-0.022620835910577015, 10),
netPerformanceInPercentageWithCurrencyEffect: expect.closeTo(
-0.022620835910577015,
10
),
netPerformanceWithCurrencyEffect: -7.6800000000000015,
totalInvestmentValueWithCurrencyEffect: 298.58,
valueWithCurrencyEffect: 331.83
}

185
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.spec.ts

@ -1,3 +1,186 @@
import { PortfolioCalculator } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator';
import { userDummyData } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
import { RedisCacheServiceMock } from '@ghostfolio/api/app/redis-cache/redis-cache.service.mock';
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
import { HistoricalDataItem } from '@ghostfolio/common/interfaces';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => {
return {
CurrentRateService: jest.fn().mockImplementation(() => {
return CurrentRateServiceMock;
})
};
});
jest.mock(
'@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service',
() => {
return {
PortfolioSnapshotService: jest.fn().mockImplementation(() => {
return PortfolioSnapshotServiceMock;
})
};
}
);
jest.mock('@ghostfolio/api/app/redis-cache/redis-cache.service', () => {
return {
RedisCacheService: jest.fn().mockImplementation(() => {
return RedisCacheServiceMock;
})
};
});
function getHistoricalDataItem({
date,
investment,
netPerformance
}: {
date: string;
investment: number;
netPerformance: number;
}): HistoricalDataItem {
return {
date,
netPerformance,
dividendInBaseCurrency: 0,
netPerformanceWithCurrencyEffect: netPerformance,
totalInvestment: investment,
totalInvestmentValueWithCurrencyEffect: investment,
value: investment + netPerformance,
valueWithCurrencyEffect: investment + netPerformance
};
}
describe('PortfolioCalculator', () => {
test.skip('Skip empty test', () => 1);
let configurationService: ConfigurationService;
let currentRateService: CurrentRateService;
let exchangeRateDataService: ExchangeRateDataService;
let portfolioCalculator: PortfolioCalculator;
let portfolioCalculatorFactory: PortfolioCalculatorFactory;
let portfolioSnapshotService: PortfolioSnapshotService;
let redisCacheService: RedisCacheService;
beforeEach(() => {
PortfolioSnapshotServiceMock.reset();
RedisCacheServiceMock.reset();
configurationService = new ConfigurationService();
currentRateService = new CurrentRateService(null, null, null);
exchangeRateDataService = new ExchangeRateDataService(
null,
null,
null,
null
);
portfolioSnapshotService = new PortfolioSnapshotService(null, null);
redisCacheService = new RedisCacheService(null, null);
portfolioCalculatorFactory = new PortfolioCalculatorFactory(
configurationService,
currentRateService,
exchangeRateDataService,
portfolioSnapshotService,
redisCacheService
);
portfolioCalculator = portfolioCalculatorFactory.createCalculator({
activities: [],
calculationType: PerformanceCalculationType.ROAI,
currency: 'USD',
userId: userDummyData.id
});
});
describe('calculate performance percentages for date range', () => {
it('with a buy followed by a gap between chart dates', () => {
const performancePercentagesByDate = portfolioCalculator[
'calculatePerformancePercentagesForDateRange'
]({
historicalDataItems: [
getHistoricalDataItem({
date: '2017-01-01',
investment: 100,
netPerformance: 0
}),
// Buy, followed by a gap of 21 days until the next chart date
getHistoricalDataItem({
date: '2017-01-02',
investment: 200,
netPerformance: 0
}),
// Sell
getHistoricalDataItem({
date: '2017-01-23',
investment: 100,
netPerformance: 44
})
]
});
// The investment of each chart date applies to each day until the next
// chart date. The investment of the last chart date counts for this day
// only: (1 * 100 + 21 * 200 + 1 * 100) / 23 = 4400 / 23
expect(
performancePercentagesByDate['2017-01-23'].netPerformanceInPercentage
).toBeCloseTo(0.23, 10);
expect(
performancePercentagesByDate['2017-01-23']
.netPerformanceInPercentageWithCurrencyEffect
).toBeCloseTo(0.23, 10);
});
it('with an additional chart date of the same investment', () => {
const performancePercentagesByDate = portfolioCalculator[
'calculatePerformancePercentagesForDateRange'
]({
historicalDataItems: [
getHistoricalDataItem({
date: '2017-01-01',
investment: 100,
netPerformance: 0
}),
getHistoricalDataItem({
date: '2017-01-02',
investment: 200,
netPerformance: 0
}),
// An additional chart date splits the gap but must not change the
// average investment
getHistoricalDataItem({
date: '2017-01-12',
investment: 200,
netPerformance: 20
}),
getHistoricalDataItem({
date: '2017-01-23',
investment: 100,
netPerformance: 44
})
]
});
expect(
performancePercentagesByDate['2017-01-23'].netPerformanceInPercentage
).toBeCloseTo(0.23, 10);
expect(
performancePercentagesByDate['2017-01-23']
.netPerformanceInPercentageWithCurrencyEffect
).toBeCloseTo(0.23, 10);
});
});
});

231
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts

@ -1,8 +1,10 @@
import { PortfolioCalculator } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator';
import { AccumulatedValues } from '@ghostfolio/api/app/portfolio/interfaces/accumulated-values.interface';
import { AverageInvestmentItem } from '@ghostfolio/api/app/portfolio/interfaces/average-investment-item.interface';
import { HoldingPerformance } from '@ghostfolio/api/app/portfolio/interfaces/holding-performance.interface';
import { PortfolioCalculatorActivityItem } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-calculator-activity-item.interface';
import { PortfolioCalculatorHolding } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-calculator-holding.interface';
import { WeightedInvestment } from '@ghostfolio/api/app/portfolio/interfaces/weighted-investment.interface';
import { PerformancePercentages } from '@ghostfolio/api/app/portfolio/types/performance-percentages.type';
import {
getAnnualizedPerformancePercent,
@ -17,10 +19,7 @@ import {
AssetProfileIdentifier,
HistoricalDataItem
} from '@ghostfolio/common/interfaces';
import {
PortfolioSnapshot,
PortfolioSnapshotHolding
} from '@ghostfolio/common/models';
import { PortfolioSnapshot } from '@ghostfolio/common/models';
import { DateRange } from '@ghostfolio/common/types';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
@ -32,7 +31,7 @@ import {
isBefore,
isThisYear
} from 'date-fns';
import { sum } from 'lodash-es';
import { sortedIndex } from 'lodash-es';
export class RoaiPortfolioCalculator extends PortfolioCalculator {
protected calculateOverallPerformance(
@ -108,8 +107,6 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
? differenceInDays(new Date(), dateOfFirstActivity)
: 0;
// Take the dividend from the same source as the portfolio summary, so
// that the response shows one dividend only
const totalDividendInBaseCurrency =
this.getDividendInBaseCurrencyOfHoldings(positions);
@ -168,15 +165,10 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
}
protected calculatePerformancePercentages({
accumulatedValuesByDate,
holdings
accumulatedValuesByDate
}: {
accumulatedValuesByDate: { [date: string]: AccumulatedValues };
holdings: PortfolioSnapshotHolding[];
}): { [date: string]: PerformancePercentages } {
const hasDividendWithoutAverageInvestment =
this.hasDividendWithoutAverageInvestment(holdings);
const performancePercentagesByDate: {
[date: string]: PerformancePercentages;
} = {};
@ -193,7 +185,6 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
] of Object.entries(accumulatedValuesByDate)) {
performancePercentagesByDate[date] = {
dividendInPercentageWithCurrencyEffect:
hasDividendWithoutAverageInvestment ||
totalAverageInvestmentValueWithCurrencyEffect.eq(0)
? 0
: totalDividendValueWithCurrencyEffect
@ -217,66 +208,67 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
}
protected calculatePerformancePercentagesForDateRange({
historicalDataItems,
holdings
historicalDataItems
}: {
historicalDataItems: HistoricalDataItem[];
holdings: PortfolioSnapshotHolding[];
}): { [date: string]: PerformancePercentages } {
const hasDividendWithoutAverageInvestment =
this.hasDividendWithoutAverageInvestment(holdings);
const averageInvestmentValues: number[] = [];
const averageInvestmentValuesWithCurrencyEffect: number[] = [];
let grossPerformanceAtStartDate: number;
let grossPerformanceWithCurrencyEffectAtStartDate: number;
const performancePercentagesByDate: {
[date: string]: PerformancePercentages;
} = {};
for (const [index, historicalDataItem] of historicalDataItems.entries()) {
// Take the values at the start date from the first day of the date
// range
if (index === 0) {
grossPerformanceAtStartDate =
historicalDataItem.value - historicalDataItem.totalInvestment;
grossPerformanceWithCurrencyEffectAtStartDate =
historicalDataItem.valueWithCurrencyEffect -
historicalDataItem.totalInvestmentValueWithCurrencyEffect;
}
if (historicalDataItems.length === 0) {
return performancePercentagesByDate;
}
// Add the gross performance at the start date of the range to the
// investment of each day. Thus the range starts with the value of its
// first day, and subsequent buy and sell activities stay included.
if (historicalDataItem.totalInvestment > 0) {
averageInvestmentValues.push(
historicalDataItem.totalInvestment + grossPerformanceAtStartDate
);
}
const parsedDates = historicalDataItems.map(({ date }) => {
return parseDate(date);
});
if (historicalDataItem.totalInvestmentValueWithCurrencyEffect > 0) {
averageInvestmentValuesWithCurrencyEffect.push(
historicalDataItem.totalInvestmentValueWithCurrencyEffect +
grossPerformanceWithCurrencyEffectAtStartDate
);
}
const daysUntilNextItem = parsedDates.slice(1).map((nextDate, index) => {
return differenceInDays(nextDate, parsedDates[index]);
});
// Take the values at the start date from the first day of the date range
const [firstHistoricalDataItem] = historicalDataItems;
const weightedInvestments = this.getWeightedInvestments({
grossPerformanceAtStartDate: new Big(firstHistoricalDataItem.value).minus(
firstHistoricalDataItem.totalInvestment
),
items: historicalDataItems.map(({ totalInvestment }, index) => {
return {
daysUntilNextItem: daysUntilNextItem[index],
investment: new Big(totalInvestment)
};
})
});
const averageInvestmentValue =
averageInvestmentValues.length > 0
? sum(averageInvestmentValues) / averageInvestmentValues.length
: 0;
const weightedInvestmentsWithCurrencyEffect = this.getWeightedInvestments({
grossPerformanceAtStartDate: new Big(
firstHistoricalDataItem.valueWithCurrencyEffect
).minus(firstHistoricalDataItem.totalInvestmentValueWithCurrencyEffect),
items: historicalDataItems.map(
({ totalInvestmentValueWithCurrencyEffect }, index) => {
return {
daysUntilNextItem: daysUntilNextItem[index],
investment: new Big(totalInvestmentValueWithCurrencyEffect)
};
}
)
});
for (const [index, historicalDataItem] of historicalDataItems.entries()) {
const averageInvestmentValue = this.getAverageInvestment(
weightedInvestments[index]
).toNumber();
const averageInvestmentValueWithCurrencyEffect =
averageInvestmentValuesWithCurrencyEffect.length > 0
? sum(averageInvestmentValuesWithCurrencyEffect) /
averageInvestmentValuesWithCurrencyEffect.length
: 0;
this.getAverageInvestment(
weightedInvestmentsWithCurrencyEffect[index]
).toNumber();
performancePercentagesByDate[historicalDataItem.date] = {
dividendInPercentageWithCurrencyEffect:
!hasDividendWithoutAverageInvestment &&
averageInvestmentValueWithCurrencyEffect > 0
? historicalDataItem.dividendInBaseCurrency /
averageInvestmentValueWithCurrencyEffect
@ -299,6 +291,7 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
protected getHoldingPerformance({
chartDates,
dataSource,
daysUntilNextChartDate,
end,
exchangeRates,
marketSymbolMap,
@ -306,6 +299,7 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
symbol
}: {
chartDates: string[];
daysUntilNextChartDate: number[];
end: Date;
exchangeRates: { [dateString: string]: number };
marketSymbolMap: {
@ -403,6 +397,7 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
const {
currentValues,
currentValuesWithCurrencyEffect,
dividendValuesWithCurrencyEffect,
initialValue,
investmentValuesAccumulated,
investmentValuesAccumulatedWithCurrencyEffect,
@ -646,35 +641,35 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
investmentValuesAccumulatedAtStartDateWithCurrencyEffect
);
let average = new Big(0);
let dayCount = 0;
const averageInvestmentItems: AverageInvestmentItem[] = [];
for (let i = chartDates.length - 1; i >= 0; i -= 1) {
for (
let i = sortedIndex(chartDates, rangeStartDateString);
i < chartDates.length;
i += 1
) {
const date = chartDates[i];
if (date > rangeEndDateString) {
continue;
} else if (date < rangeStartDateString) {
break;
}
if (
investmentValuesAccumulatedWithCurrencyEffect[date] instanceof Big &&
investmentValuesAccumulatedWithCurrencyEffect[date].gt(0)
) {
average = average.add(
investmentValuesAccumulatedWithCurrencyEffect[date].add(
grossPerformanceAtDateRangeStartWithCurrencyEffect
)
);
dayCount++;
}
averageInvestmentItems.push({
daysUntilNextItem: daysUntilNextChartDate[i],
investment:
investmentValuesAccumulatedWithCurrencyEffect[date] ?? new Big(0)
});
}
if (dayCount > 0) {
average = average.div(dayCount);
}
const weightedInvestment = this.getWeightedInvestments({
grossPerformanceAtStartDate:
grossPerformanceAtDateRangeStartWithCurrencyEffect,
items: averageInvestmentItems
}).at(-1);
const average = weightedInvestment
? this.getAverageInvestment(weightedInvestment)
: new Big(0);
netPerformanceWithCurrencyEffectMap[dateRange] =
netPerformanceValuesWithCurrencyEffect[rangeEndDateString]?.minus(
@ -736,6 +731,7 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
averageInvestmentValuesWithCurrencyEffect,
currentValues,
currentValuesWithCurrencyEffect,
dividendValuesWithCurrencyEffect,
dividendYieldPercent,
dividendYieldPercentWithCurrencyEffect,
grossPerformancePercentage,
@ -769,20 +765,69 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
return PerformanceCalculationType.ROAI;
}
private hasDividendWithoutAverageInvestment(
holdings: PortfolioSnapshotHolding[]
) {
// A holding with a dividend only (without a buy activity), and a holding
// without a market price, gives a dividend but no average investment.
// Such a holding makes the dividend percentage too high. Therefore the
// dividend percentage stays 0 in this case, like the dividend yield.
return holdings.some(
({ averageInvestmentWithCurrencyEffect, dividendInBaseCurrency }) => {
return (
!dividendInBaseCurrency.eq(0) &&
averageInvestmentWithCurrencyEffect.eq(0)
);
private getAverageInvestment({
grossPerformanceAtStartDate,
investment,
sumOfWeightedInvestments,
totalInvestmentDays
}: WeightedInvestment) {
// The investment of the current item counts for this day only
if (investment.gt(0)) {
return sumOfWeightedInvestments
.add(investment.add(grossPerformanceAtStartDate))
.div(totalInvestmentDays + 1);
}
return totalInvestmentDays > 0
? sumOfWeightedInvestments.div(totalInvestmentDays)
: new Big(0);
}
/**
* Returns the sum of the weighted investments and the number of investment
* days before each item of a date range. The chart dates are not evenly
* spaced, and the investment changes on a chart date only. Thus the
* investment of an item applies to each day until the next item.
*
* The gross performance at the start date of the range is added to each
* investment. Thus the range starts with the value of its first day, and
* subsequent buy and sell activities stay included.
*/
private getWeightedInvestments({
grossPerformanceAtStartDate,
items
}: {
grossPerformanceAtStartDate: Big;
items: AverageInvestmentItem[];
}) {
const weightedInvestments: WeightedInvestment[] = [];
let sumOfWeightedInvestments = new Big(0);
let totalInvestmentDays = 0;
for (const [index, { investment }] of items.entries()) {
if (index > 0) {
const previousItem = items[index - 1];
if (previousItem.investment.gt(0)) {
sumOfWeightedInvestments = sumOfWeightedInvestments.add(
previousItem.investment
.add(grossPerformanceAtStartDate)
.mul(previousItem.daysUntilNextItem)
);
totalInvestmentDays += previousItem.daysUntilNextItem;
}
}
);
weightedInvestments.push({
grossPerformanceAtStartDate,
investment,
sumOfWeightedInvestments,
totalInvestmentDays
});
}
return weightedInvestments;
}
}

6
apps/api/src/app/portfolio/interfaces/average-investment-item.interface.ts

@ -0,0 +1,6 @@
import { Big } from 'big.js';
export interface AverageInvestmentItem {
daysUntilNextItem: number;
investment: Big;
}

3
apps/api/src/app/portfolio/interfaces/holding-performance.interface.ts

@ -17,6 +17,9 @@ export interface HoldingPerformance {
currentValuesWithCurrencyEffect: {
[date: string]: Big;
};
dividendValuesWithCurrencyEffect: {
[date: string]: Big;
};
dividendYieldPercent: Big;
dividendYieldPercentWithCurrencyEffect: Big;
grossPerformance: Big;

1
apps/api/src/app/portfolio/interfaces/holding-valuation.interface.ts

@ -5,6 +5,7 @@ import { HoldingValuationItem } from './holding-valuation-item.interface';
export interface HoldingValuation {
currentValues: { [date: string]: Big };
currentValuesWithCurrencyEffect: { [date: string]: Big };
dividendValuesWithCurrencyEffect: { [date: string]: Big };
initialValue?: Big;
investmentValuesAccumulated: { [date: string]: Big };
investmentValuesAccumulatedWithCurrencyEffect: { [date: string]: Big };

8
apps/api/src/app/portfolio/interfaces/weighted-investment.interface.ts

@ -0,0 +1,8 @@
import { Big } from 'big.js';
export interface WeightedInvestment {
grossPerformanceAtStartDate: Big;
investment: Big;
sumOfWeightedInvestments: Big;
totalInvestmentDays: number;
}

2
apps/api/src/app/portfolio/portfolio.controller.ts

@ -524,6 +524,7 @@ export class PortfolioController {
performanceInformation.chart = performanceInformation.chart.map(
({
date,
dividendInPercentageWithCurrencyEffect,
netPerformanceInPercentage,
netPerformanceInPercentageWithCurrencyEffect,
netWorth,
@ -532,6 +533,7 @@ export class PortfolioController {
}) => {
return {
date,
dividendInPercentageWithCurrencyEffect,
netPerformanceInPercentage,
netPerformanceInPercentageWithCurrencyEffect,
netWorthInPercentage:

3
apps/api/src/app/portfolio/portfolio.service.spec.ts

@ -865,7 +865,6 @@ describe('PortfolioService', () => {
function createPortfolioCalculator() {
return {
getDividendInBaseCurrency: jest.fn().mockResolvedValue(new Big(0)),
getFeesInBaseCurrency: jest.fn().mockResolvedValue(new Big(0)),
getInterestInBaseCurrency: jest.fn().mockResolvedValue(new Big(0)),
getLiabilitiesInBaseCurrency: jest.fn().mockResolvedValue(new Big(0)),
@ -891,6 +890,7 @@ describe('PortfolioService', () => {
jest.spyOn(portfolioService, 'getPerformance').mockResolvedValue({
performance: {
currentValueInBaseCurrency: 3000,
dividendInBaseCurrency: 50,
netPerformance: 500,
netPerformancePercentage: 0.2,
netPerformancePercentageWithCurrencyEffect: 0.2,
@ -926,6 +926,7 @@ describe('PortfolioService', () => {
});
expect(summary.cash).toBe(1000);
expect(summary.dividendInBaseCurrency).toBe(50);
expect(summary.emergencyFund.total).toBe(0);
expect(summary.excludedAccountsAndActivities).toBe(0);
expect(summary.totalAssetsInBaseCurrency).toBe(3000);

6
apps/api/src/app/portfolio/portfolio.service.ts

@ -2140,6 +2140,7 @@ export class PortfolioService {
const {
currentValueInBaseCurrency,
dividendInBaseCurrency,
dividendPercentageWithCurrencyEffect,
netPerformance,
netPerformancePercentage,
@ -2154,9 +2155,6 @@ export class PortfolioService {
const dateOfFirstActivity = portfolioCalculator.getStartDate();
const dividendInBaseCurrency =
await portfolioCalculator.getDividendInBaseCurrency();
const fees = await portfolioCalculator.getFeesInBaseCurrency();
const interest = await portfolioCalculator.getInterestInBaseCurrency();
@ -2237,6 +2235,7 @@ export class PortfolioService {
cash,
currentValueInBaseCurrency,
dateOfFirstActivity,
dividendInBaseCurrency,
dividendPercentageWithCurrencyEffect,
excludedAccountsAndActivities,
netPerformance,
@ -2248,7 +2247,6 @@ export class PortfolioService {
activityCount: activities.filter(({ type }) => {
return ['BUY', 'SELL'].includes(type);
}).length,
dividendInBaseCurrency: dividendInBaseCurrency.toNumber(),
// TODO: Remove the fallback to 0 with the next release, when each
// cached portfolio snapshot contains the dividend yield
dividendYieldPercent: dividendYieldPercent?.toNumber() ?? 0,

6
apps/api/src/helper/security-headers.helper.spec.ts

@ -52,6 +52,12 @@ describe('getHelmetOptions', () => {
);
});
it('should allow connections to ghostfol.io for the status check of the Ghostfolio data provider', () => {
expect(headers.get('content-security-policy')).toContain(
"connect-src 'self' https://ghostfol.io"
);
});
it('should not upgrade insecure requests', () => {
expect(headers.get('content-security-policy')).not.toContain(
'upgrade-insecure-requests'

1
apps/api/src/helper/security-headers.helper.ts

@ -25,6 +25,7 @@ export function getHelmetOptions({
return {
contentSecurityPolicy: {
directives: {
connectSrc: ["'self'", 'https://ghostfol.io'], // Allow connections to ghostfol.io for the status check of the Ghostfolio data provider
scriptSrc: ["'self'", "'unsafe-inline'"], // Allow inline scripts
scriptSrcAttr: ["'self'", "'unsafe-inline'"], // Allow inline event handlers
styleSrc: ["'self'", "'unsafe-inline'"], // Allow inline styles

8
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts

@ -72,7 +72,13 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
public readonly benchmarks = input<Partial<SymbolProfile>[]>();
public readonly colorScheme = input<ColorScheme>();
public readonly isLoading = input<boolean>();
public readonly locale = input(getLocale());
public readonly locale = input(getLocale(), {
transform: (value?: string) => {
return value ?? getLocale();
}
});
public readonly performanceDataItems = input.required<LineChartItem[]>();
public readonly user = input<User>();

69
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html

@ -98,25 +98,20 @@
/>
</div>
</div>
@if (user?.settings?.isExperimentalFeatures) {
<div class="flex-nowrap px-3 py-1 row">
<div class="flex-grow-1 text-truncate" i18n>Dividend</div>
<div class="d-flex justify-content-end">
@if (isNumber(summary?.dividendInBaseCurrency)) {
<span class="mr-1">+</span>
}
<gf-value
class="justify-content-end"
[isCurrency]="true"
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
[unit]="displayedCurrency"
[value]="summary?.dividendInBaseCurrency"
/>
</div>
<div class="flex-nowrap px-3 py-1 row text-muted">
<div class="flex-grow-1 indent-1 text-truncate" i18n>thereof Dividend</div>
<div class="justify-content-end">
<gf-value
class="justify-content-end"
[isCurrency]="true"
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
[unit]="displayedCurrency"
[value]="summary?.dividendInBaseCurrency"
/>
</div>
}
</div>
<div class="flex-nowrap px-3 py-1 row">
<div class="flex-grow-1 text-truncate" i18n>Fees</div>
<div class="d-flex justify-content-end">
@ -147,7 +142,7 @@
[locale]="locale"
[precision]="precision"
[unit]="displayedCurrency"
[value]="netPerformanceWithCurrencyEffect"
[value]="summary?.netPerformanceWithCurrencyEffect"
/>
</div>
</div>
@ -160,7 +155,8 @@
) {
<abbr
class="d-none d-sm-inline-block initialism ml-2 text-muted"
title="Return on Average Investment"
i18n-title
title="Return on Average Investment (total return with dividends)"
>(ROAI)</abbr
>
}
@ -173,7 +169,22 @@
[isLoading]="isLoading"
[isPercent]="true"
[locale]="locale"
[value]="netPerformancePercentageWithCurrencyEffect"
[value]="summary?.netPerformancePercentageWithCurrencyEffect"
/>
</div>
</div>
<div class="flex-nowrap px-3 py-1 row text-muted">
<div class="flex-grow-1 indent-2 text-truncate">
<ng-container i18n>thereof Dividend Performance</ng-container>
</div>
<div class="flex-column flex-wrap justify-content-end">
<gf-value
class="justify-content-end"
position="end"
[isLoading]="isLoading"
[isPercent]="true"
[locale]="locale"
[value]="summary?.dividendPercentageWithCurrencyEffect"
/>
</div>
</div>
@ -506,20 +517,4 @@
/>
</div>
</div>
@if (!user?.settings?.isExperimentalFeatures) {
<div class="flex-nowrap px-3 py-1 row">
<div class="flex-grow-1 text-truncate" i18n>Dividend</div>
<div class="justify-content-end">
<gf-value
class="justify-content-end"
[isCurrency]="true"
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
[unit]="displayedCurrency"
[value]="summary?.dividendInBaseCurrency"
/>
</div>
</div>
}
</div>

30
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts

@ -137,36 +137,6 @@ export class GfPortfolioSummaryComponent implements OnChanges {
);
}
protected get netPerformancePercentageWithCurrencyEffect() {
if (
!this.user?.settings?.isExperimentalFeatures ||
!isNumber(this.summary?.netPerformancePercentageWithCurrencyEffect)
) {
return this.summary?.netPerformancePercentageWithCurrencyEffect;
}
// Include the dividends (total return)
return (
this.summary.netPerformancePercentageWithCurrencyEffect +
(this.summary.dividendPercentageWithCurrencyEffect ?? 0)
);
}
protected get netPerformanceWithCurrencyEffect() {
if (
!this.user?.settings?.isExperimentalFeatures ||
!isNumber(this.summary?.netPerformanceWithCurrencyEffect)
) {
return this.summary?.netPerformanceWithCurrencyEffect;
}
// Include the dividends (total return)
return (
this.summary.netPerformanceWithCurrencyEffect +
this.summary.dividendInBaseCurrency
);
}
public ngOnChanges() {
if (this.summary) {
if (

4
apps/client/src/app/pages/faq/overview/faq-overview-page.html

@ -52,8 +52,8 @@
calculation method based on the average amount of capital invested
over time. ROAI aims to provide a more insightful view of investment
performance than simpler approaches, especially when contributions are
made over time. Dividends are not part of the
calculation.</mat-card-content
made over time. Dividends are included in the calculation (total
return).</mat-card-content
>
</mat-card>
<mat-card appearance="outlined" class="mb-3">

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

@ -133,36 +133,6 @@ export class GfAnalysisPageComponent implements OnInit {
addIcons({ copyOutline, ellipsisVertical });
}
protected get netPerformancePercentageWithCurrencyEffect() {
if (
!this.user?.settings?.isExperimentalFeatures ||
!isNumber(this.performance?.netPerformancePercentageWithCurrencyEffect)
) {
return this.performance?.netPerformancePercentageWithCurrencyEffect;
}
// Include the dividends (total return)
return (
this.performance.netPerformancePercentageWithCurrencyEffect +
(this.performance.dividendPercentageWithCurrencyEffect ?? 0)
);
}
protected get netPerformanceWithCurrencyEffect() {
if (
!this.user?.settings?.isExperimentalFeatures ||
!isNumber(this.performance?.netPerformanceWithCurrencyEffect)
) {
return this.performance?.netPerformanceWithCurrencyEffect;
}
// Include the dividends (total return)
return (
this.performance.netPerformanceWithCurrencyEffect +
this.performance.dividendInBaseCurrency
);
}
get savingsRate() {
if (!this.savingsRatePerMonth) {
return undefined;
@ -363,6 +333,7 @@ export class GfAnalysisPageComponent implements OnInit {
index,
{
date,
dividendInPercentageWithCurrencyEffect,
netPerformanceInPercentageWithCurrencyEffect,
totalInvestmentValueWithCurrencyEffect,
valueInPercentage,
@ -393,7 +364,9 @@ export class GfAnalysisPageComponent implements OnInit {
if (isNumber(netPerformanceInPercentageWithCurrencyEffect)) {
this.performanceDataItemsInPercentage.push({
date,
value: netPerformanceInPercentageWithCurrencyEffect
value:
netPerformanceInPercentageWithCurrencyEffect -
(dividendInPercentageWithCurrencyEffect ?? 0)
});
}
}

84
apps/client/src/app/pages/portfolio/analysis/analysis-page.html

@ -187,45 +187,6 @@
/>
</div>
</div>
@if (user?.settings?.isExperimentalFeatures) {
<div class="d-flex py-1">
<div
class="align-items-center d-flex flex-grow-1 mr-2 text-truncate"
>
<span i18n>Absolute Dividend Performance</span>
@if (user?.subscription?.type === 'Basic') {
<gf-premium-indicator class="ml-1" />
}
</div>
<div class="d-flex justify-content-end">
<gf-value
class="justify-content-end"
position="end"
[isCurrency]="true"
[isLoading]="isLoadingInvestmentChart"
[locale]="user?.settings?.locale"
[unit]="user?.settings?.baseCurrency"
[value]="performance?.dividendInBaseCurrency"
/>
</div>
</div>
<div class="d-flex mb-3 ml-3 py-1">
<div class="flex-grow-1 mr-2 text-truncate">
<ng-container i18n>Dividend Performance</ng-container>
</div>
<div class="d-flex justify-content-end">
<gf-value
class="justify-content-end"
position="end"
[colorizeSign]="true"
[isLoading]="isLoadingInvestmentChart"
[isPercent]="true"
[locale]="user?.settings?.locale"
[value]="performance?.dividendPercentageWithCurrencyEffect"
/>
</div>
</div>
}
<div class="d-flex py-1">
<div
class="align-items-center d-flex flex-grow-1 mr-2 text-truncate"
@ -286,7 +247,7 @@
[isLoading]="isLoadingInvestmentChart"
[locale]="user?.settings?.locale"
[unit]="user?.settings?.baseCurrency"
[value]="netPerformanceWithCurrencyEffect"
[value]="performance?.netPerformanceWithCurrencyEffect"
/>
</div>
</div>
@ -299,7 +260,8 @@
) {
<abbr
class="d-none d-sm-inline-block initialism ml-2 text-muted"
title="Return on Average Investment"
i18n-title
title="Return on Average Investment (total return with dividends)"
>(ROAI)</abbr
>
}
@ -312,7 +274,45 @@
[isLoading]="isLoadingInvestmentChart"
[isPercent]="true"
[locale]="user?.settings?.locale"
[value]="netPerformancePercentageWithCurrencyEffect"
[value]="
performance?.netPerformancePercentageWithCurrencyEffect
"
/>
</div>
</div>
<div class="d-flex ml-3 py-1 text-muted">
<div
class="align-items-center d-flex flex-grow-1 mr-2 text-truncate"
>
<span i18n>thereof Dividend</span>
@if (user?.subscription?.type === 'Basic') {
<gf-premium-indicator class="ml-1" />
}
</div>
<div class="d-flex justify-content-end">
<gf-value
class="justify-content-end"
position="end"
[isCurrency]="true"
[isLoading]="isLoadingInvestmentChart"
[locale]="user?.settings?.locale"
[unit]="user?.settings?.baseCurrency"
[value]="performance?.dividendInBaseCurrency"
/>
</div>
</div>
<div class="d-flex ml-3 py-1 text-muted">
<div class="flex-grow-1 mr-2 text-truncate">
<ng-container i18n>thereof Dividend Performance</ng-container>
</div>
<div class="d-flex justify-content-end">
<gf-value
class="justify-content-end"
position="end"
[isLoading]="isLoadingInvestmentChart"
[isPercent]="true"
[locale]="user?.settings?.locale"
[value]="performance?.dividendPercentageWithCurrencyEffect"
/>
</div>
</div>

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

@ -1039,7 +1039,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -1207,7 +1207,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -1223,7 +1223,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -1243,7 +1243,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1263,7 +1263,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="8749037557473547440" datatype="html">
@ -1459,7 +1459,7 @@
<target state="translated">Està segur qeu vol eliminar aquest cupó?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="297546430113071258" datatype="html">
@ -1467,7 +1467,7 @@
<target state="translated">Està segur que vol eliminar aquest missatge del sistema?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -1475,7 +1475,7 @@
<target state="translated">Està segur que vol depurar el cache?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -1483,7 +1483,7 @@
<target state="translated">Si us plau, afegeixi el seu missatge del sistema:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="2724055831234181057" datatype="html">
@ -1499,7 +1499,7 @@
<target state="translated">per Usuari</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="8455870515256854977" datatype="html">
@ -1679,7 +1679,7 @@
<target state="translated">La memòria cau s’ha buidat.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="7966917302907632321" datatype="html">
@ -1991,7 +1991,7 @@
<target state="translated">Rendiment del Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5012084291992448490" datatype="html">
@ -1999,11 +1999,11 @@
<target state="translated">Comissions</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="5306473977542913614" datatype="html">
@ -2015,7 +2015,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="5376727317218692773" datatype="html">
@ -2023,7 +2023,7 @@
<target state="translated">Informar d’un Problema amb les Dades</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="8204176479746810612" datatype="html">
@ -2391,11 +2391,11 @@
<target state="translated">Rendiment net absolut</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -2403,11 +2403,11 @@
<target state="translated">Rendiment net</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -2415,7 +2415,7 @@
<target state="translated">Actius totals</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -2423,7 +2423,7 @@
<target state="translated">Poder adquisitiu</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="2105957921933737059" datatype="html">
@ -2431,7 +2431,7 @@
<target state="translated">Exclòs de l’anàlisi</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="5003799027167349722" datatype="html">
@ -2439,7 +2439,7 @@
<target state="translated">Passius</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -2451,7 +2451,7 @@
<target state="translated">Valor net</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -2459,7 +2459,7 @@
<target state="translated">Rendiment anualitzat</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -2467,7 +2467,7 @@
<target state="translated">Definiu l’import del vostre fons d’emergència.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="5451369123952965511" datatype="html">
@ -3051,7 +3051,7 @@
<target state="new">Investments</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="3014406080070038652" datatype="html">
@ -3311,7 +3311,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -3427,7 +3427,7 @@
<target state="translated">Dades de mercat</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3896,7 +3896,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -4664,11 +4664,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -4747,6 +4747,18 @@
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">Actualitzar el saldo d’efectiu</target>
@ -4867,14 +4879,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="4164773401836100336" datatype="html">
<source>Choose or drop a file here</source>
<target state="translated">Trieu o deixeu anar un fitxer aquí</target>
@ -5164,15 +5168,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -5240,7 +5236,7 @@
<target state="new">Close Holding</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -5264,7 +5260,7 @@
<target state="translated">Rendiment absolut de la moneda</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="104509087727626192" datatype="html">
@ -5272,7 +5268,7 @@
<target state="translated">Rendiment de la moneda</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="6293970137138896363" datatype="html">
@ -5813,7 +5809,7 @@
<target state="new">Coupon <x id="PH" equiv-text="newCoupon.code"/> has been created</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -6085,7 +6081,7 @@
<target state="translated">Realment voleu eliminar el saldo d’aquest compte?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="5388209493122807655" datatype="html">
@ -6409,7 +6405,7 @@
<target state="translated">Dipòsit</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="3441715041566940420" datatype="html">
@ -6421,11 +6417,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -6437,7 +6433,7 @@
<target state="translated">Estalvi</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -6521,7 +6517,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -6553,7 +6549,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -6601,15 +6597,15 @@
<target state="translated">Fons d’emergència</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -6753,7 +6749,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -6885,7 +6881,7 @@
<target state="translated">Efectiu</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -6912,14 +6908,6 @@
<context context-type="linenumber">78</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">Àfrica</target>
@ -7404,6 +7392,18 @@
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="new">Close</target>
@ -7565,11 +7565,11 @@
<target state="new"><x id="PH" equiv-text="newCoupon.code"/> has been copied to the clipboard</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -8015,7 +8015,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8095,7 +8095,7 @@
<target state="new">AI prompt has been copied to the clipboard</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8183,7 +8183,7 @@
<target state="new">Open Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8203,7 +8203,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8243,11 +8243,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8565,7 +8565,7 @@
<target state="new">Demo user account has been synced.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9040,7 +9040,7 @@
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9151,6 +9151,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="new">No results found...</target>

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

@ -566,7 +566,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -590,7 +590,7 @@
<target state="translated">Möchtest du diesen Gutscheincode wirklich löschen?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -598,7 +598,7 @@
<target state="translated">Möchtest du den Cache wirklich leeren?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -606,7 +606,7 @@
<target state="translated">Bitte gebe deine Systemmeldung ein:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="378542251607647500" datatype="html">
@ -614,7 +614,7 @@
<target state="translated">pro Benutzer</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="4396995010887588291" datatype="html">
@ -1050,11 +1050,11 @@
<target state="translated">Absolute Netto Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -1062,11 +1062,11 @@
<target state="translated">Netto Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -1074,7 +1074,7 @@
<target state="translated">Gesamtanlagevermögen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -1082,7 +1082,7 @@
<target state="translated">Kaufkraft</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="7969271348484693017" datatype="html">
@ -1090,7 +1090,7 @@
<target state="translated">Gesamtvermögen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -1098,7 +1098,7 @@
<target state="translated">Performance pro Jahr</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -1106,7 +1106,7 @@
<target state="translated">Bitte setze den Betrag deines Notfallfonds.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="4136685477767543249" datatype="html">
@ -1122,7 +1122,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1142,7 +1142,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="7886570921510760899" datatype="html">
@ -1166,7 +1166,7 @@
<target state="translated">Datenfehler melden</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -1578,7 +1578,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2142,7 +2142,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -2326,11 +2326,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2730,7 +2730,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -2746,7 +2746,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2826,7 +2826,7 @@
<target state="translated">Einlage</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="3441715041566940420" datatype="html">
@ -2838,11 +2838,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -2854,7 +2854,7 @@
<target state="translated">Ersparnisse</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="3720539089813177542" datatype="html">
@ -2994,7 +2994,7 @@
<target state="translated">Von der Analyse ausgenommen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="616064537937996961" datatype="html">
@ -3130,7 +3130,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3166,7 +3166,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -3198,7 +3198,7 @@
<target state="translated">Bargeld</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -3230,15 +3230,15 @@
<target state="translated">Notfallfonds</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3301,14 +3301,6 @@
<context context-type="linenumber">79</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="translated">Absolute Dividendenperformance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">Afrika</target>
@ -3494,15 +3486,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3546,7 +3530,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3594,7 +3578,7 @@
<target state="translated">Marktdaten</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3661,14 +3645,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="translated">Dividendenperformance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="8036977202721714375" datatype="html">
<source>Yearly</source>
<target state="translated">Jährlich</target>
@ -3790,7 +3766,7 @@
<target state="translated">Investitionen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="6268497822578092660" datatype="html">
@ -4066,11 +4042,11 @@
<target state="translated">Gebühren</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="296005715452289357" datatype="html">
@ -4298,7 +4274,7 @@
<target state="translated">Der Cache wurde geleert.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="8308045076391224954" datatype="html">
@ -4353,6 +4329,18 @@
<context context-type="linenumber">232</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="translated">davon Dividenden Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">Cash-Bestand aktualisieren</target>
@ -4546,7 +4534,7 @@
<target state="translated">Verbindlichkeiten</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4814,7 +4802,7 @@
<target state="translated">Gutschein <x id="PH" equiv-text="newCoupon.code"/> wurde erstellt</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -6456,7 +6444,7 @@
<target state="translated">Möchtest du diese Systemmeldung wirklich löschen?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="9028573429495160158" datatype="html">
@ -6508,7 +6496,7 @@
<target state="translated">Möchtest du diesen Cash-Bestand wirklich löschen?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="3401045354658415524" datatype="html">
@ -6624,7 +6612,7 @@
<target state="translated">Position abschliessen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6648,7 +6636,7 @@
<target state="translated">Absolute Währungsperformance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="104509087727626192" datatype="html">
@ -6656,7 +6644,7 @@
<target state="translated">Währungsperformance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="3105754554141014845" datatype="html">
@ -6909,7 +6897,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6917,7 +6905,7 @@
<target state="translated">Dividendenrendite</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7428,6 +7416,18 @@
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="translated">davon Dividenden</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">Schliessen</target>
@ -7589,11 +7589,11 @@
<target state="translated"><x id="PH" equiv-text="newCoupon.code"/> wurde in die Zwischenablage kopiert</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -8039,7 +8039,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8119,7 +8119,7 @@
<target state="translated">KI-Anweisung wurde in die Zwischenablage kopiert</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8207,7 +8207,7 @@
<target state="translated">Öffne Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8227,7 +8227,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8267,11 +8267,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8565,7 +8565,7 @@
<target state="translated">Demo Benutzerkonto wurde synchronisiert.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9040,7 +9040,7 @@
<target state="translated">Anlageprofil verwalten</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9151,6 +9151,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="translated">Rendite auf die durchschnittliche Investition (Gesamtrendite inklusive Dividenden)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="translated">Keine Ergebnisse gefunden...</target>

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

@ -567,7 +567,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -591,7 +591,7 @@
<target state="translated">¿Seguro que quieres eliminar este cupón?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -599,7 +599,7 @@
<target state="translated">¿Seguro que quieres limpiar la caché?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -607,7 +607,7 @@
<target state="translated">Por favor, establece tu mensaje del sistema:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="378542251607647500" datatype="html">
@ -615,7 +615,7 @@
<target state="translated">por usuario</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="5274897475180636586" datatype="html">
@ -1035,11 +1035,11 @@
<target state="translated">Rendimiento neto absoluto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -1047,11 +1047,11 @@
<target state="translated">Rendimiento neto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -1059,7 +1059,7 @@
<target state="translated">Total de activos</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -1067,7 +1067,7 @@
<target state="translated">Poder adquisitivo</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="7969271348484693017" datatype="html">
@ -1075,7 +1075,7 @@
<target state="translated">Patrimonio neto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -1083,7 +1083,7 @@
<target state="translated">Rendimiento anualizado</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -1091,7 +1091,7 @@
<target state="translated">Por favor, ingresa la cantidad de tu fondo de emergencia.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="4136685477767543249" datatype="html">
@ -1107,7 +1107,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1127,7 +1127,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="7886570921510760899" datatype="html">
@ -1151,7 +1151,7 @@
<target state="translated">Reportar anomalía en los datos</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -1563,7 +1563,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2127,7 +2127,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -2311,11 +2311,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2759,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -2775,7 +2775,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2803,7 +2803,7 @@
<target state="translated">Ahorros</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="3441715041566940420" datatype="html">
@ -2815,11 +2815,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -2831,7 +2831,7 @@
<target state="translated">Depósito</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -2979,7 +2979,7 @@
<target state="translated">Excluido del análisis</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="616064537937996961" datatype="html">
@ -3115,7 +3115,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3151,7 +3151,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -3183,7 +3183,7 @@
<target state="translated">Efectivo</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -3215,15 +3215,15 @@
<target state="translated">Fondo de emergencia</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3286,14 +3286,6 @@
<context context-type="linenumber">79</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">África</target>
@ -3471,15 +3463,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3531,7 +3515,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3579,7 +3563,7 @@
<target state="translated">Datos del mercado</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3646,14 +3630,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="8036977202721714375" datatype="html">
<source>Yearly</source>
<target state="translated">Anual</target>
@ -3775,7 +3751,7 @@
<target state="translated">Inversiones</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="6268497822578092660" datatype="html">
@ -4051,11 +4027,11 @@
<target state="translated">Comisiones</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="296005715452289357" datatype="html">
@ -4275,7 +4251,7 @@
<target state="translated">Caché vaciada.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="8308045076391224954" datatype="html">
@ -4330,6 +4306,18 @@
<context context-type="linenumber">232</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">Actualizar saldo en efectivo</target>
@ -4523,7 +4511,7 @@
<target state="translated">Pasivos</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4791,7 +4779,7 @@
<target state="translated">El cupón <x id="PH" equiv-text="newCoupon.code"/> ha sido creado</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -6433,7 +6421,7 @@
<target state="translated">¿Seguro que quieres eliminar este mensaje del sistema?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="9028573429495160158" datatype="html">
@ -6485,7 +6473,7 @@
<target state="translated">¿Seguro que quieres eliminar el saldo de esta cuenta?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="3401045354658415524" datatype="html">
@ -6601,7 +6589,7 @@
<target state="translated">Cerrar posición</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6625,7 +6613,7 @@
<target state="translated">Rendimiento absoluto de las divisas</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="104509087727626192" datatype="html">
@ -6633,7 +6621,7 @@
<target state="translated">Rendimiento de la divisa</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="3105754554141014845" datatype="html">
@ -6886,7 +6874,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6894,7 +6882,7 @@
<target state="translated">Rendimiento por dividendo</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7405,6 +7393,18 @@
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">Cerrar</target>
@ -7566,11 +7566,11 @@
<target state="translated"><x id="PH" equiv-text="newCoupon.code"/> ha sido copiado al portapapeles</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -8016,7 +8016,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8096,7 +8096,7 @@
<target state="translated">El prompt para la IA ha sido copiado al portapapeles</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8184,7 +8184,7 @@
<target state="translated">Abrir Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8204,7 +8204,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8244,11 +8244,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8566,7 +8566,7 @@
<target state="translated">La cuenta de usuario de demostración se ha sincronizado.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9041,7 +9041,7 @@
<target state="translated">Gestionar perfil de activo</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9152,6 +9152,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="translated">No se encontraron resultados...</target>

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

@ -638,7 +638,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -754,7 +754,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -770,7 +770,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -790,7 +790,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -810,7 +810,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="8749037557473547440" datatype="html">
@ -850,7 +850,7 @@
<target state="translated">Voulez-vous vraiment supprimer ce code promotionnel ?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -858,7 +858,7 @@
<target state="translated">Voulez-vous vraiment vider le cache ?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -866,7 +866,7 @@
<target state="translated">Veuillez définir votre message système :</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="378542251607647500" datatype="html">
@ -874,7 +874,7 @@
<target state="translated">par Utilisateur</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="8455870515256854977" datatype="html">
@ -1366,11 +1366,11 @@
<target state="translated">Performance Absolue Nette</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -1378,11 +1378,11 @@
<target state="translated">Performance nette</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -1390,7 +1390,7 @@
<target state="translated">Actifs Totaux</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -1398,7 +1398,7 @@
<target state="translated">Pouvoir d’Achat</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="2105957921933737059" datatype="html">
@ -1406,7 +1406,7 @@
<target state="translated">Exclus de l’Analyse</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="7969271348484693017" datatype="html">
@ -1414,7 +1414,7 @@
<target state="translated">Fortune</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -1422,7 +1422,7 @@
<target state="translated">Performance annualisée</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -1430,7 +1430,7 @@
<target state="translated">Veuillez entrer le montant de votre fonds d’urgence :</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="2067863610333602482" datatype="html">
@ -1478,7 +1478,7 @@
<target state="translated">Signaler une Erreur de Données</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="6048892649018070225" datatype="html">
@ -1970,7 +1970,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2026,7 +2026,7 @@
<target state="translated">Données du marché</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -2262,7 +2262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -2378,11 +2378,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2754,15 +2754,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -2794,7 +2786,7 @@
<target state="translated">Dépôt</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -3246,11 +3238,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -3262,7 +3254,7 @@
<target state="translated">Épargne</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -3338,7 +3330,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3370,7 +3362,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3386,15 +3378,15 @@
<target state="translated">Fonds d’Urgence</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3442,7 +3434,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -3474,7 +3466,7 @@
<target state="translated">Cash</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -3501,14 +3493,6 @@
<context context-type="linenumber">78</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">Afrique</target>
@ -3645,14 +3629,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="8036977202721714375" datatype="html">
<source>Yearly</source>
<target state="translated">Annuel</target>
@ -3774,7 +3750,7 @@
<target state="new">Investments</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="6268497822578092660" datatype="html">
@ -4050,11 +4026,11 @@
<target state="translated">Frais</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="296005715452289357" datatype="html">
@ -4274,7 +4250,7 @@
<target state="new">Cache has been flushed.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="8308045076391224954" datatype="html">
@ -4329,6 +4305,18 @@
<context context-type="linenumber">232</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">Mettre à jour le Solde</target>
@ -4522,7 +4510,7 @@
<target state="translated">Dettes</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4790,7 +4778,7 @@
<target state="new">Coupon <x id="PH" equiv-text="newCoupon.code"/> has been created</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -6432,7 +6420,7 @@
<target state="translated">Confirmer la suppresion de ce message système?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="9028573429495160158" datatype="html">
@ -6484,7 +6472,7 @@
<target state="translated">Voulez-vous vraiment supprimer ce solde de compte ?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="3401045354658415524" datatype="html">
@ -6600,7 +6588,7 @@
<target state="translated">Clôturer la Position</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6624,7 +6612,7 @@
<target state="translated">Performance des devises en valeur absolue</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="104509087727626192" datatype="html">
@ -6632,7 +6620,7 @@
<target state="translated">Performance des devises</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="3105754554141014845" datatype="html">
@ -6885,7 +6873,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6893,7 +6881,7 @@
<target state="translated">Rendement en Dividende</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7404,6 +7392,18 @@
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">Fermer</target>
@ -7565,11 +7565,11 @@
<target state="new"><x id="PH" equiv-text="codeToCopy"/> a été copié dans le presse-papiers</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -8015,7 +8015,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8095,7 +8095,7 @@
<target state="translated">Le prompt IA a été copié dans le presse-papiers</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8183,7 +8183,7 @@
<target state="translated">Ouvrir Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8203,7 +8203,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8243,11 +8243,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8565,7 +8565,7 @@
<target state="translated">Le compte utilisateur de démonstration a été synchronisé.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9040,7 +9040,7 @@
<target state="translated">Gérer le profil d’actif</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9151,6 +9151,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="translated">Aucun résultat trouvé...</target>

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

@ -567,7 +567,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -591,7 +591,7 @@
<target state="translated">Vuoi davvero eliminare questo buono?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -599,7 +599,7 @@
<target state="translated">Vuoi davvero svuotare la cache?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -607,7 +607,7 @@
<target state="translated">Imposta il messaggio di sistema:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="378542251607647500" datatype="html">
@ -615,7 +615,7 @@
<target state="translated">per utente</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="5274897475180636586" datatype="html">
@ -1035,11 +1035,11 @@
<target state="translated">Prestazioni nette assolute</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -1047,11 +1047,11 @@
<target state="translated">Prestazioni nette</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -1059,7 +1059,7 @@
<target state="translated">Asset totali</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -1067,7 +1067,7 @@
<target state="translated">Potere d’acquisto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="7969271348484693017" datatype="html">
@ -1075,7 +1075,7 @@
<target state="translated">Patrimonio netto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -1083,7 +1083,7 @@
<target state="translated">Prestazioni annualizzate</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -1091,7 +1091,7 @@
<target state="translated">Inserisci l’importo del tuo fondo di emergenza:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="4136685477767543249" datatype="html">
@ -1107,7 +1107,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1127,7 +1127,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="7886570921510760899" datatype="html">
@ -1151,7 +1151,7 @@
<target state="translated">Segnala un’anomalia dei dati</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -1563,7 +1563,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2127,7 +2127,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -2311,11 +2311,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2759,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -2775,7 +2775,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2803,7 +2803,7 @@
<target state="translated">Risparmio</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="3441715041566940420" datatype="html">
@ -2815,11 +2815,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -2831,7 +2831,7 @@
<target state="translated">Deposito</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -2979,7 +2979,7 @@
<target state="translated">Escluso dall’analisi</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="616064537937996961" datatype="html">
@ -3115,7 +3115,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3151,7 +3151,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -3183,7 +3183,7 @@
<target state="translated">Contanti</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -3215,15 +3215,15 @@
<target state="translated">Fondo di emergenza</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3286,14 +3286,6 @@
<context context-type="linenumber">79</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">Africa</target>
@ -3471,15 +3463,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3531,7 +3515,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3579,7 +3563,7 @@
<target state="translated">Dati del mercato</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3646,14 +3630,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="8036977202721714375" datatype="html">
<source>Yearly</source>
<target state="translated">Annuale</target>
@ -3775,7 +3751,7 @@
<target state="new">Investments</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="6268497822578092660" datatype="html">
@ -4051,11 +4027,11 @@
<target state="translated">Commissioni</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="296005715452289357" datatype="html">
@ -4275,7 +4251,7 @@
<target state="new">Cache has been flushed.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="8308045076391224954" datatype="html">
@ -4330,6 +4306,18 @@
<context context-type="linenumber">232</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">Aggiornamento del saldo di cassa</target>
@ -4523,7 +4511,7 @@
<target state="translated">Passività</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4791,7 +4779,7 @@
<target state="new">Coupon <x id="PH" equiv-text="newCoupon.code"/> has been created</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -6433,7 +6421,7 @@
<target state="translated">Confermi di voler cancellare questo messaggio di sistema?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="9028573429495160158" datatype="html">
@ -6485,7 +6473,7 @@
<target state="translated">Vuoi veramente elimnare il saldo di questo conto?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="3401045354658415524" datatype="html">
@ -6601,7 +6589,7 @@
<target state="new">Close Holding</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6625,7 +6613,7 @@
<target state="translated">Rendimento assoluto della Valuta</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="104509087727626192" datatype="html">
@ -6633,7 +6621,7 @@
<target state="translated">Rendimento della Valuta</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="3105754554141014845" datatype="html">
@ -6886,7 +6874,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6894,7 +6882,7 @@
<target state="translated">Rendimento da Dividendi</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7405,6 +7393,18 @@
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">Chiudi</target>
@ -7566,11 +7566,11 @@
<target state="new"><x id="PH" equiv-text="newCoupon.code"/> has been copied to the clipboard</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -8016,7 +8016,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8096,7 +8096,7 @@
<target state="translated">L’AI prompt è stato copiato negli appunti</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8184,7 +8184,7 @@
<target state="translated">Apri Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8204,7 +8204,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8244,11 +8244,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8566,7 +8566,7 @@
<target state="translated">L’account utente demo è stato sincronizzato.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9041,7 +9041,7 @@
<target state="translated">Gestisci profilo risorsa</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9152,6 +9152,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="new">No results found...</target>

180
apps/client/src/locales/messages.ja.xlf

@ -928,7 +928,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -1100,7 +1100,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -1116,7 +1116,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -1136,7 +1136,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1156,7 +1156,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="8749037557473547440" datatype="html">
@ -1308,7 +1308,7 @@
<target state="translated">このクーポンを削除してもよろしいですか?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="297546430113071258" datatype="html">
@ -1316,7 +1316,7 @@
<target state="translated">本当にこのシステムメッセージを削除しますか?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -1324,7 +1324,7 @@
<target state="translated">キャッシュをクリアしてもよろしいですか?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -1332,7 +1332,7 @@
<target state="translated">システムメッセージを設定してください:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="2724055831234181057" datatype="html">
@ -1348,7 +1348,7 @@
<target state="translated">ユーザーあたり</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="8455870515256854977" datatype="html">
@ -1544,7 +1544,7 @@
<target state="new">Cache has been flushed.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="7966917302907632321" datatype="html">
@ -2096,11 +2096,11 @@
<target state="translated">手数料</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="4072809765904753879" datatype="html">
@ -2108,11 +2108,11 @@
<target state="translated">実質純パフォーマンス</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -2120,11 +2120,11 @@
<target state="translated">純パフォーマンス</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -2132,7 +2132,7 @@
<target state="translated">総資産</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -2140,7 +2140,7 @@
<target state="translated">購買力</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="2105957921933737059" datatype="html">
@ -2148,7 +2148,7 @@
<target state="translated">分析から除外</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="5003799027167349722" datatype="html">
@ -2156,7 +2156,7 @@
<target state="translated">負債</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -2168,7 +2168,7 @@
<target state="translated">純資産(ネットワース)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -2176,7 +2176,7 @@
<target state="translated">年率換算パフォーマンス</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -2184,7 +2184,7 @@
<target state="translated">緊急用資金の金額を設定してください。</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="2067863610333602482" datatype="html">
@ -2232,7 +2232,7 @@
<target state="translated">データグリッチの報告</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="5451369123952965511" datatype="html">
@ -2756,7 +2756,7 @@
<target state="new">Investments</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="3014406080070038652" datatype="html">
@ -2992,7 +2992,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -3096,7 +3096,7 @@
<target state="translated">マーケットデータ</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3548,7 +3548,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -4308,11 +4308,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -4391,6 +4391,18 @@
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">現金残高を更新</target>
@ -4511,14 +4523,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="4164773401836100336" datatype="html">
<source>Choose or drop a file here</source>
<target state="translated">ここでファイルを選択またはドロップ</target>
@ -4792,15 +4796,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4832,7 +4828,7 @@
<target state="translated">入金</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -5377,7 +5373,7 @@
<target state="new">Coupon <x id="PH" equiv-text="newCoupon.code"/> has been created</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -5669,7 +5665,7 @@
<target state="translated">この口座残高を本当に削除しますか?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="5388209493122807655" datatype="html">
@ -5877,11 +5873,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -5893,7 +5889,7 @@
<target state="translated">貯蓄</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -5977,7 +5973,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -6009,7 +6005,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -6049,15 +6045,15 @@
<target state="translated">緊急資金</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -6193,7 +6189,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -6325,7 +6321,7 @@
<target state="translated">現金</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -6352,14 +6348,6 @@
<context context-type="linenumber">78</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">アフリカ</target>
@ -6605,7 +6593,7 @@
<target state="translated">絶対通貨パフォーマンス</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6613,7 +6601,7 @@
<target state="new">Close Holding</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6657,7 +6645,7 @@
<target state="translated">通貨パフォーマンス</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="2593751087640318641" datatype="html">
@ -6910,7 +6898,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6918,7 +6906,7 @@
<target state="translated">配当利回り</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7421,6 +7409,18 @@
<context context-type="linenumber">92</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="new">Close</target>
@ -7606,11 +7606,11 @@
<target state="new"><x id="PH" equiv-text="newCoupon.code"/> has been copied to the clipboard</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="7305671611654052345" datatype="html">
@ -8040,7 +8040,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8120,7 +8120,7 @@
<target state="new">AI prompt has been copied to the clipboard</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8208,7 +8208,7 @@
<target state="new">Open Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8228,7 +8228,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8268,11 +8268,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8574,7 +8574,7 @@
<target state="new">Demo user account has been synced.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="rule.emergencyFundCoverage" datatype="html">
@ -9041,7 +9041,7 @@
<target state="new">Manage Asset Profile</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9056,6 +9056,18 @@
<context context-type="linenumber">106</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="new">No results found...</target>

180
apps/client/src/locales/messages.ko.xlf

@ -928,7 +928,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -1100,7 +1100,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -1116,7 +1116,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -1136,7 +1136,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1156,7 +1156,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="8749037557473547440" datatype="html">
@ -1308,7 +1308,7 @@
<target state="translated">이 쿠폰을 정말 삭제하시겠습니까?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="297546430113071258" datatype="html">
@ -1316,7 +1316,7 @@
<target state="translated">이 시스템 메시지를 정말 삭제하시겠습니까?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -1324,7 +1324,7 @@
<target state="translated">정말로 캐시를 플러시하시겠습니까?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -1332,7 +1332,7 @@
<target state="translated">시스템 메시지를 설정하십시오:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="2724055831234181057" datatype="html">
@ -1348,7 +1348,7 @@
<target state="translated">사용자당</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="8455870515256854977" datatype="html">
@ -1544,7 +1544,7 @@
<target state="new">Cache has been flushed.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="7966917302907632321" datatype="html">
@ -2096,11 +2096,11 @@
<target state="translated">수수료</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="4072809765904753879" datatype="html">
@ -2108,11 +2108,11 @@
<target state="translated">절대 순 성과</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -2120,11 +2120,11 @@
<target state="translated">순 성과</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -2132,7 +2132,7 @@
<target state="translated">총자산</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -2140,7 +2140,7 @@
<target state="translated">매수 가능 금액</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="2105957921933737059" datatype="html">
@ -2148,7 +2148,7 @@
<target state="translated">분석에서 제외됨</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="5003799027167349722" datatype="html">
@ -2156,7 +2156,7 @@
<target state="translated">부채</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -2168,7 +2168,7 @@
<target state="translated">순자산</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -2176,7 +2176,7 @@
<target state="translated">연환산 성과</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -2184,7 +2184,7 @@
<target state="translated">비상금 금액을 설정해 주세요.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="2067863610333602482" datatype="html">
@ -2232,7 +2232,7 @@
<target state="translated">데이터 결함 보고</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="5451369123952965511" datatype="html">
@ -2756,7 +2756,7 @@
<target state="new">Investments</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="3014406080070038652" datatype="html">
@ -2992,7 +2992,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -3096,7 +3096,7 @@
<target state="translated">시장 데이터</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3548,7 +3548,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -4300,11 +4300,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -4383,6 +4383,18 @@
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">현금 잔액 업데이트</target>
@ -4503,14 +4515,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="4164773401836100336" datatype="html">
<source>Choose or drop a file here</source>
<target state="translated">여기에 파일을 선택하거나 드롭하세요.</target>
@ -4784,15 +4788,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4824,7 +4820,7 @@
<target state="translated">보증금</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -5369,7 +5365,7 @@
<target state="new">Coupon <x id="PH" equiv-text="newCoupon.code"/> has been created</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -5661,7 +5657,7 @@
<target state="translated">정말로 이 계좌 잔액을 삭제하시겠습니까?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="5388209493122807655" datatype="html">
@ -5869,11 +5865,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -5885,7 +5881,7 @@
<target state="translated">저금</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -5969,7 +5965,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -6001,7 +5997,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -6041,15 +6037,15 @@
<target state="translated">비상자금</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -6193,7 +6189,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -6325,7 +6321,7 @@
<target state="translated">현금</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -6352,14 +6348,6 @@
<context context-type="linenumber">78</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">아프리카</target>
@ -6605,7 +6593,7 @@
<target state="translated">절대적인 통화 성과</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6613,7 +6601,7 @@
<target state="translated">보유 포지션 종료</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6657,7 +6645,7 @@
<target state="translated">통화 성과</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="2593751087640318641" datatype="html">
@ -6910,7 +6898,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6918,7 +6906,7 @@
<target state="translated">배당수익률</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7421,6 +7409,18 @@
<context context-type="linenumber">92</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">닫다</target>
@ -7606,11 +7606,11 @@
<target state="new"><x id="PH" equiv-text="codeToCopy"/>가 클립보드에 복사되었습니다.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="7305671611654052345" datatype="html">
@ -8040,7 +8040,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8120,7 +8120,7 @@
<target state="translated">AI 프롬프트가 클립보드에 복사되었습니다.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8208,7 +8208,7 @@
<target state="translated">오픈 Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8228,7 +8228,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8268,11 +8268,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8574,7 +8574,7 @@
<target state="translated">데모 사용자 계정이 동기화되었습니다.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="rule.emergencyFundCoverage" datatype="html">
@ -9041,7 +9041,7 @@
<target state="translated">자산 프로필 관리</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9056,6 +9056,18 @@
<context context-type="linenumber">106</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="translated">검색된 결과가 없습니다...</target>

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

@ -566,7 +566,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -590,7 +590,7 @@
<target state="translated">Wil je deze coupon echt verwijderen?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -598,7 +598,7 @@
<target state="translated">Wil je echt de cache legen?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -606,7 +606,7 @@
<target state="translated">Stel je systeemboodschap in:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="378542251607647500" datatype="html">
@ -614,7 +614,7 @@
<target state="translated">per gebruiker</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="5274897475180636586" datatype="html">
@ -1034,11 +1034,11 @@
<target state="translated">Absoluut netto rendement</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -1046,11 +1046,11 @@
<target state="translated">Netto rendement</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -1058,7 +1058,7 @@
<target state="translated">Totaal Activa</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -1066,7 +1066,7 @@
<target state="translated">Koopkracht</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="7969271348484693017" datatype="html">
@ -1074,7 +1074,7 @@
<target state="translated">Netto waarde</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -1082,7 +1082,7 @@
<target state="translated">Rendement per jaar</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -1090,7 +1090,7 @@
<target state="translated">Voer het bedrag van je noodfonds in:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="4136685477767543249" datatype="html">
@ -1106,7 +1106,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1126,7 +1126,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="7886570921510760899" datatype="html">
@ -1150,7 +1150,7 @@
<target state="translated">Gegevensstoring melden</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -1562,7 +1562,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2126,7 +2126,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -2310,11 +2310,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2758,7 +2758,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -2774,7 +2774,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2802,7 +2802,7 @@
<target state="translated">Besparingen</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="3441715041566940420" datatype="html">
@ -2814,11 +2814,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -2830,7 +2830,7 @@
<target state="translated">Storting</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -2978,7 +2978,7 @@
<target state="translated">Uitgesloten van analyse</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="616064537937996961" datatype="html">
@ -3114,7 +3114,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3150,7 +3150,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -3182,7 +3182,7 @@
<target state="translated">Contant geld</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -3214,15 +3214,15 @@
<target state="translated">Noodfonds</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3285,14 +3285,6 @@
<context context-type="linenumber">79</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">Afrika</target>
@ -3470,15 +3462,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3530,7 +3514,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3578,7 +3562,7 @@
<target state="translated">Marktgegevens</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3645,14 +3629,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="8036977202721714375" datatype="html">
<source>Yearly</source>
<target state="translated">Jaarlijks</target>
@ -3774,7 +3750,7 @@
<target state="new">Investments</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="6268497822578092660" datatype="html">
@ -4050,11 +4026,11 @@
<target state="translated">Kosten</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="296005715452289357" datatype="html">
@ -4274,7 +4250,7 @@
<target state="new">Cache has been flushed.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="8308045076391224954" datatype="html">
@ -4329,6 +4305,18 @@
<context context-type="linenumber">232</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">Saldo bijwerken</target>
@ -4522,7 +4510,7 @@
<target state="translated">Verplichtingen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4790,7 +4778,7 @@
<target state="new">Coupon <x id="PH" equiv-text="newCoupon.code"/> has been created</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -6432,7 +6420,7 @@
<target state="translated">Wilt u dit systeembericht echt verwijderen?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="9028573429495160158" datatype="html">
@ -6484,7 +6472,7 @@
<target state="translated">Wilt u dit rekeningsaldo echt verwijderen?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="3401045354658415524" datatype="html">
@ -6600,7 +6588,7 @@
<target state="translated">Sluit Holding</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6624,7 +6612,7 @@
<target state="translated">Absolute Valutaprestaties</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="104509087727626192" datatype="html">
@ -6632,7 +6620,7 @@
<target state="translated">Valutaprestaties</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="3105754554141014845" datatype="html">
@ -6885,7 +6873,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6893,7 +6881,7 @@
<target state="translated">Dividendrendement</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7404,6 +7392,18 @@
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">Sluiten</target>
@ -7565,11 +7565,11 @@
<target state="new"><x id="PH" equiv-text="codeToCopy"/> is naar het klembord gekopieerd</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -8015,7 +8015,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8095,7 +8095,7 @@
<target state="translated">AI-prompt is naar het klembord gekopieerd</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8183,7 +8183,7 @@
<target state="translated">Open Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8203,7 +8203,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8243,11 +8243,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8565,7 +8565,7 @@
<target state="translated">Demo-gebruikersaccount is gesynchroniseerd.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9040,7 +9040,7 @@
<target state="translated">Beheer activaprofiel</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9151,6 +9151,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="translated">Geen resultaten gevonden...</target>

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

@ -919,7 +919,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -1067,7 +1067,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -1083,7 +1083,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -1103,7 +1103,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1123,7 +1123,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="8749037557473547440" datatype="html">
@ -1275,7 +1275,7 @@
<target state="translated">Czy naprawdę chcesz usunąć ten kupon?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="297546430113071258" datatype="html">
@ -1283,7 +1283,7 @@
<target state="translated">Czy naprawdę chcesz usunąć tę wiadomość systemową?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -1291,7 +1291,7 @@
<target state="translated">Czy naprawdę chcesz wyczyścić pamięć podręczną?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -1299,7 +1299,7 @@
<target state="translated">Proszę ustawić swoją wiadomość systemową:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="2724055831234181057" datatype="html">
@ -1315,7 +1315,7 @@
<target state="translated">na Użytkownika</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="8455870515256854977" datatype="html">
@ -1511,7 +1511,7 @@
<target state="new">Cache has been flushed.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="7966917302907632321" datatype="html">
@ -2063,11 +2063,11 @@
<target state="translated">Opłaty</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="4072809765904753879" datatype="html">
@ -2075,11 +2075,11 @@
<target state="translated">Bezwzględne Osiągi Netto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -2087,11 +2087,11 @@
<target state="translated">Osiągi Netto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -2099,7 +2099,7 @@
<target state="translated">Suma Aktywów</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -2107,7 +2107,7 @@
<target state="translated">Siła Nabywcza</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="2105957921933737059" datatype="html">
@ -2115,7 +2115,7 @@
<target state="translated">Wykluczone z Analizy</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="5003799027167349722" datatype="html">
@ -2123,7 +2123,7 @@
<target state="translated">Pasywa (Zobowiązania Finansowe)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -2135,7 +2135,7 @@
<target state="translated">Wartość Netto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -2143,7 +2143,7 @@
<target state="translated">Osiągi w Ujęciu Rocznym</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -2151,7 +2151,7 @@
<target state="translated">Wprowadź wysokość funduszu rezerwowego:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="2067863610333602482" datatype="html">
@ -2199,7 +2199,7 @@
<target state="translated">Zgłoś Błąd Danych</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="5451369123952965511" datatype="html">
@ -2723,7 +2723,7 @@
<target state="new">Investments</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="3014406080070038652" datatype="html">
@ -2959,7 +2959,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -3063,7 +3063,7 @@
<target state="translated">Dane Rynkowe</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3515,7 +3515,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -4267,11 +4267,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -4350,6 +4350,18 @@
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">Zaktualizuj Saldo Gotówkowe</target>
@ -4470,14 +4482,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="4164773401836100336" datatype="html">
<source>Choose or drop a file here</source>
<target state="translated">Wybierz lub przeciągnij plik tutaj</target>
@ -4751,15 +4755,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4791,7 +4787,7 @@
<target state="translated">Depozyt</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -5336,7 +5332,7 @@
<target state="new">Coupon <x id="PH" equiv-text="newCoupon.code"/> has been created</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -5792,11 +5788,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -5808,7 +5804,7 @@
<target state="translated">Oszczędności</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -5892,7 +5888,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -5924,7 +5920,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -5964,15 +5960,15 @@
<target state="translated">Fundusz Rezerwowy</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -6116,7 +6112,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -6248,7 +6244,7 @@
<target state="translated">Gotówka</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -6275,14 +6271,6 @@
<context context-type="linenumber">78</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">Afryka</target>
@ -6484,7 +6472,7 @@
<target state="translated">Czy na pewno chcesz usunąć saldo tego konta?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="3401045354658415524" datatype="html">
@ -6600,7 +6588,7 @@
<target state="translated">Zamknij pozycję</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6624,7 +6612,7 @@
<target state="translated">Łączny wynik walut</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="104509087727626192" datatype="html">
@ -6632,7 +6620,7 @@
<target state="translated">Wynik walut</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="3105754554141014845" datatype="html">
@ -6885,7 +6873,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6893,7 +6881,7 @@
<target state="translated">Dochód z Dywidendy</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7404,6 +7392,18 @@
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">Zamknij</target>
@ -7565,11 +7565,11 @@
<target state="new"><x id="PH" equiv-text="newCoupon.code"/> has been copied to the clipboard</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -8015,7 +8015,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8095,7 +8095,7 @@
<target state="translated">Prompt AI został skopiowany do schowka</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8183,7 +8183,7 @@
<target state="translated">Otwórz Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8203,7 +8203,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8243,11 +8243,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8565,7 +8565,7 @@
<target state="translated">Konto użytkownika demonstracyjnego zostało zsynchronizowane.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9040,7 +9040,7 @@
<target state="translated">Zarządzaj profilem aktywów</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9151,6 +9151,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="translated">Nie znaleziono wyników...</target>

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

@ -638,7 +638,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -706,7 +706,7 @@
<target state="translated">Deseja realmente eliminar este cupão?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -714,7 +714,7 @@
<target state="translated">Deseja realmente limpar a cache?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -722,7 +722,7 @@
<target state="translated">Por favor, defina a sua mensagem do sistema:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="378542251607647500" datatype="html">
@ -730,7 +730,7 @@
<target state="translated">por Utilizador</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="8455870515256854977" datatype="html">
@ -1058,7 +1058,7 @@
<target state="translated">Depósito</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="112783260724635106" datatype="html">
@ -1206,11 +1206,11 @@
<target state="translated">Desempenho Líquido Absoluto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -1218,11 +1218,11 @@
<target state="translated">Desempenho Líquido</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -1230,7 +1230,7 @@
<target state="translated">Ativos Totais</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -1238,7 +1238,7 @@
<target state="translated">Poder de Compra</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="2105957921933737059" datatype="html">
@ -1246,7 +1246,7 @@
<target state="translated">Excluído da Análise</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="7969271348484693017" datatype="html">
@ -1254,7 +1254,7 @@
<target state="translated">Valor Líquido</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -1262,7 +1262,7 @@
<target state="translated">Desempenho Anual</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -1270,7 +1270,7 @@
<target state="translated">Por favor, insira o valor do seu fundo de emergência:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="2067863610333602482" datatype="html">
@ -1330,7 +1330,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -1346,7 +1346,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -1366,7 +1366,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1386,7 +1386,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="7886570921510760899" datatype="html">
@ -1410,7 +1410,7 @@
<target state="translated">Dados do Relatório com Problema</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -1950,7 +1950,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2310,11 +2310,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2742,7 +2742,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -3106,11 +3106,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -3122,7 +3122,7 @@
<target state="translated">Poupanças</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="4086606389696938932" datatype="html">
@ -3162,7 +3162,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3182,15 +3182,15 @@
<target state="translated">Fundo de Emergência</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3238,7 +3238,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -3270,7 +3270,7 @@
<target state="translated">Dinheiro</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -3297,14 +3297,6 @@
<context context-type="linenumber">78</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">África</target>
@ -3478,7 +3470,7 @@
<target state="translated">Dados de Mercado</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3554,15 +3546,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -3614,7 +3598,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -3645,14 +3629,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="8036977202721714375" datatype="html">
<source>Yearly</source>
<target state="translated">Anualmente</target>
@ -3774,7 +3750,7 @@
<target state="new">Investments</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="6268497822578092660" datatype="html">
@ -4050,11 +4026,11 @@
<target state="translated">Taxas</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="296005715452289357" datatype="html">
@ -4274,7 +4250,7 @@
<target state="new">Cache has been flushed.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="8308045076391224954" datatype="html">
@ -4329,6 +4305,18 @@
<context context-type="linenumber">232</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">Atualizar saldo em Dinheiro</target>
@ -4522,7 +4510,7 @@
<target state="translated">Responsabilidades</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4790,7 +4778,7 @@
<target state="new">Coupon <x id="PH" equiv-text="newCoupon.code"/> has been created</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -6432,7 +6420,7 @@
<target state="translated">Você realmente deseja excluir esta mensagem do sistema?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="9028573429495160158" datatype="html">
@ -6484,7 +6472,7 @@
<target state="translated">Você realmente deseja excluir o saldo desta conta?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="3401045354658415524" datatype="html">
@ -6600,7 +6588,7 @@
<target state="new">Close Holding</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6624,7 +6612,7 @@
<target state="translated">Desempenho absoluto da moeda</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="104509087727626192" datatype="html">
@ -6632,7 +6620,7 @@
<target state="translated">Desempenho da moeda</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="3105754554141014845" datatype="html">
@ -6885,7 +6873,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6893,7 +6881,7 @@
<target state="translated">Rendimento de dividendos</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7404,6 +7392,18 @@
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">Fechar</target>
@ -7565,11 +7565,11 @@
<target state="new"><x id="PH" equiv-text="newCoupon.code"/> has been copied to the clipboard</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -8015,7 +8015,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8095,7 +8095,7 @@
<target state="new">AI prompt has been copied to the clipboard</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8183,7 +8183,7 @@
<target state="new">Open Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8203,7 +8203,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8243,11 +8243,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8565,7 +8565,7 @@
<target state="new">Demo user account has been synced.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9040,7 +9040,7 @@
<target state="translated">Gerenciar perfil de ativos</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9151,6 +9151,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="translated">Nenhum resultado encontrado...</target>

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

File diff suppressed because it is too large

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

@ -1027,7 +1027,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -1187,7 +1187,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -1203,7 +1203,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -1223,7 +1223,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1243,7 +1243,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="8749037557473547440" datatype="html">
@ -1455,7 +1455,7 @@
<target state="translated">Ви дійсно хочете видалити цей купон?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="297546430113071258" datatype="html">
@ -1463,7 +1463,7 @@
<target state="translated">Ви дійсно хочете видалити це системне повідомлення?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -1471,7 +1471,7 @@
<target state="translated">Ви дійсно хочете очистити кеш?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -1479,7 +1479,7 @@
<target state="translated">Будь ласка, встановіть ваше системне повідомлення:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="2724055831234181057" datatype="html">
@ -1495,7 +1495,7 @@
<target state="translated">на користувача</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="3577962162959289117" datatype="html">
@ -1667,7 +1667,7 @@
<target state="new">Cache has been flushed.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="6492469646212732514" datatype="html">
@ -2139,7 +2139,7 @@
<target state="translated">Дохідність дивіденду</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5012084291992448490" datatype="html">
@ -2147,11 +2147,11 @@
<target state="translated">Комісії</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="5306473977542913614" datatype="html">
@ -2163,7 +2163,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="5376727317218692773" datatype="html">
@ -2171,7 +2171,7 @@
<target state="translated">Повідомити про збій даних</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="8204176479746810612" datatype="html">
@ -2491,11 +2491,11 @@
<target state="translated">Абсолютний чистий прибуток</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -2503,11 +2503,11 @@
<target state="translated">Чистий прибуток</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -2515,7 +2515,7 @@
<target state="translated">Загальні активи</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -2523,7 +2523,7 @@
<target state="translated">Купівельна спроможність</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="2105957921933737059" datatype="html">
@ -2531,7 +2531,7 @@
<target state="translated">Виключено з аналізу</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="5003799027167349722" datatype="html">
@ -2539,7 +2539,7 @@
<target state="translated">Зобов’язання</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -2551,7 +2551,7 @@
<target state="translated">Чиста вартість</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -2559,7 +2559,7 @@
<target state="translated">Річна доходність</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="3768927257183755959" datatype="html">
@ -2587,7 +2587,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -2615,7 +2615,7 @@
<target state="translated">Будь ласка, встановіть суму вашого резервного фонду.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="6044768969177890700" datatype="html">
@ -3359,7 +3359,7 @@
<target state="translated">Інвестиції</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="3014406080070038652" datatype="html">
@ -3607,7 +3607,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -3723,7 +3723,7 @@
<target state="translated">Ринкові дані</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -4200,7 +4200,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -4968,11 +4968,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -5051,6 +5051,18 @@
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">Оновити баланс готівки</target>
@ -5207,14 +5219,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="4164773401836100336" datatype="html">
<source>Choose or drop a file here</source>
<target state="translated">Виберіть або перетягніть файл сюди</target>
@ -5520,15 +5524,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -5596,7 +5592,7 @@
<target state="translated">Закрити позицію</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -5620,7 +5616,7 @@
<target state="translated">Абсолютна прибутковість валюти</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="104509087727626192" datatype="html">
@ -5628,7 +5624,7 @@
<target state="translated">Прибутковість валюти</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="6293970137138896363" datatype="html">
@ -5980,11 +5976,11 @@
<target state="translated"><x id="PH" equiv-text="newCoupon.code"/> скопійовано в буфер обміну</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -6499,7 +6495,7 @@
<target state="translated">Купон <x id="PH" equiv-text="newCoupon.code"/> створено</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -6919,7 +6915,7 @@
<target state="translated">Ви дійсно хочете видалити цей рахунок?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="5388209493122807655" datatype="html">
@ -7243,7 +7239,7 @@
<target state="translated">Депозит</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="3441715041566940420" datatype="html">
@ -7255,11 +7251,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -7271,7 +7267,7 @@
<target state="translated">Заощадження</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="6293078117617468574" datatype="html">
@ -7379,7 +7375,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -7411,7 +7407,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -7494,6 +7490,18 @@
<context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">Закрити</target>
@ -7567,15 +7575,15 @@
<target state="translated">Резервний фонд</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -7727,7 +7735,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -7875,7 +7883,7 @@
<target state="translated">Готівка</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -7902,14 +7910,6 @@
<context context-type="linenumber">78</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">Африка</target>
@ -8103,7 +8103,7 @@
<target state="translated">Запит AI скопійовано в буфер обміну</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="8540986733881734625" datatype="html">
@ -8183,7 +8183,7 @@
<target state="translated">Відкрити Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8203,7 +8203,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8243,11 +8243,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8565,7 +8565,7 @@
<target state="translated">Обліковий запис демо-користувача синхронізовано.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9040,7 +9040,7 @@
<target state="translated">Керувати профілем активу</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9151,6 +9151,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="translated">Результатів не знайдено...</target>

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

@ -865,7 +865,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -1019,7 +1019,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -1034,7 +1034,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -1053,7 +1053,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1072,7 +1072,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="8749037557473547440" datatype="html">
@ -1209,28 +1209,28 @@
<source>Do you really want to delete this coupon?</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="297546430113071258" datatype="html">
<source>Do you really want to delete this system message?</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
<source>Do you really want to flush the cache?</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
<source>Please set your system message:</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="2724055831234181057" datatype="html">
@ -1244,7 +1244,7 @@
<source>per User</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="8455870515256854977" datatype="html">
@ -1418,7 +1418,7 @@
<source>Cache has been flushed.</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="7966917302907632321" datatype="html">
@ -1918,61 +1918,61 @@
<source>Fees</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="4072809765904753879" datatype="html">
<source>Absolute Net Performance</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
<source>Net Performance</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
<source>Total Assets</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
<source>Buying Power</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="2105957921933737059" datatype="html">
<source>Excluded from Analysis</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="5003799027167349722" datatype="html">
<source>Liabilities</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -1983,21 +1983,21 @@
<source>Net Worth</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
<source>Annualized Performance</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
<source>Please set the amount of your emergency fund.</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="2067863610333602482" datatype="html">
@ -2041,7 +2041,7 @@
<source>Report Data Glitch</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="5451369123952965511" datatype="html">
@ -2516,7 +2516,7 @@
<source>Investments</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="3014406080070038652" datatype="html">
@ -2733,7 +2733,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -2827,7 +2827,7 @@
<source>Market Data</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3250,7 +3250,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -3927,11 +3927,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -4003,6 +4003,17 @@
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<context-group purpose="location">
@ -4111,13 +4122,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="4164773401836100336" datatype="html">
<source>Choose or drop a file here</source>
<context-group purpose="location">
@ -4361,15 +4365,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4399,7 +4395,7 @@
<source>Deposit</source>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -4886,7 +4882,7 @@
<source>Coupon <x id="PH" equiv-text="newCoupon.code"/> has been created</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -5153,7 +5149,7 @@
<source>Do you really want to delete this account balance?</source>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="5388209493122807655" datatype="html">
@ -5338,11 +5334,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -5353,7 +5349,7 @@
<source>Savings</source>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -5432,7 +5428,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -5463,7 +5459,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -5499,15 +5495,15 @@
<source>Emergency Fund</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -5630,7 +5626,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -5749,7 +5745,7 @@
<source>Cash</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -5773,13 +5769,6 @@
<context context-type="linenumber">78</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<context-group purpose="location">
@ -5999,14 +5988,14 @@
<source>Absolute Currency Performance</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
<source>Close Holding</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6045,7 +6034,7 @@
<source>Currency Performance</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="2593751087640318641" datatype="html">
@ -6272,14 +6261,14 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
<source>Dividend Yield</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -6734,6 +6723,17 @@
<context context-type="linenumber">92</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<context-group purpose="location">
@ -6901,11 +6901,11 @@
<source><x id="PH" equiv-text="newCoupon.code"/> has been copied to the clipboard</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="7305671611654052345" datatype="html">
@ -7292,7 +7292,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -7365,7 +7365,7 @@
<source>AI prompt has been copied to the clipboard</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -7442,7 +7442,7 @@
<source>Open Duck.ai</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -7460,7 +7460,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -7497,11 +7497,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -7769,7 +7769,7 @@
<source>Demo user account has been synced.</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="rule.emergencyFundCoverage" datatype="html">
@ -8183,7 +8183,7 @@
<source>Manage Asset Profile</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -8197,6 +8197,17 @@
<context context-type="linenumber">106</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<context-group purpose="location">

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

@ -928,7 +928,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">235</context>
<context context-type="linenumber">233</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
@ -1076,7 +1076,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">285</context>
<context context-type="linenumber">283</context>
</context-group>
</trans-unit>
<trans-unit id="516176798986294299" datatype="html">
@ -1092,7 +1092,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">299</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -1112,7 +1112,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">305</context>
<context context-type="linenumber">303</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -1132,7 +1132,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">317</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="8749037557473547440" datatype="html">
@ -1284,7 +1284,7 @@
<target state="translated">您确实要删除此优惠券吗?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">227</context>
<context context-type="linenumber">228</context>
</context-group>
</trans-unit>
<trans-unit id="297546430113071258" datatype="html">
@ -1292,7 +1292,7 @@
<target state="translated">您真的要删除这条系统消息吗?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">240</context>
<context context-type="linenumber">241</context>
</context-group>
</trans-unit>
<trans-unit id="6470890277760887814" datatype="html">
@ -1300,7 +1300,7 @@
<target state="translated">您真的要刷新缓存吗?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">270</context>
<context context-type="linenumber">271</context>
</context-group>
</trans-unit>
<trans-unit id="2712770700065625080" datatype="html">
@ -1308,7 +1308,7 @@
<target state="translated">请设置您的系统消息:</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">290</context>
<context context-type="linenumber">291</context>
</context-group>
</trans-unit>
<trans-unit id="2724055831234181057" datatype="html">
@ -1324,7 +1324,7 @@
<target state="translated">每位用户</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">176</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="8455870515256854977" datatype="html">
@ -1520,7 +1520,7 @@
<target state="translated">缓存已刷新。</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">262</context>
</context-group>
</trans-unit>
<trans-unit id="7966917302907632321" datatype="html">
@ -2072,11 +2072,11 @@
<target state="translated">费用</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">223</context>
<context context-type="linenumber">221</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">116</context>
</context-group>
</trans-unit>
<trans-unit id="4072809765904753879" datatype="html">
@ -2084,11 +2084,11 @@
<target state="translated">绝对净绩效</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">136</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">279</context>
<context context-type="linenumber">240</context>
</context-group>
</trans-unit>
<trans-unit id="3118565567530464051" datatype="html">
@ -2096,11 +2096,11 @@
<target state="translated">净绩效</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">151</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">295</context>
<context context-type="linenumber">256</context>
</context-group>
</trans-unit>
<trans-unit id="4980697492087090765" datatype="html">
@ -2108,7 +2108,7 @@
<target state="translated">总资产</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">184</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="4993097165849036956" datatype="html">
@ -2116,7 +2116,7 @@
<target state="translated">购买力</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">324</context>
<context context-type="linenumber">335</context>
</context-group>
</trans-unit>
<trans-unit id="2105957921933737059" datatype="html">
@ -2124,7 +2124,7 @@
<target state="translated">从分析中排除</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">356</context>
<context context-type="linenumber">367</context>
</context-group>
</trans-unit>
<trans-unit id="5003799027167349722" datatype="html">
@ -2132,7 +2132,7 @@
<target state="translated">负债</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">387</context>
<context context-type="linenumber">398</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -2144,7 +2144,7 @@
<target state="translated">净值</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">407</context>
<context context-type="linenumber">418</context>
</context-group>
</trans-unit>
<trans-unit id="293512063893966488" datatype="html">
@ -2152,7 +2152,7 @@
<target state="translated">年化业绩</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">422</context>
<context context-type="linenumber">433</context>
</context-group>
</trans-unit>
<trans-unit id="5403336912114537863" datatype="html">
@ -2160,7 +2160,7 @@
<target state="translated">请输入您的应急基金金额。</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">204</context>
<context context-type="linenumber">174</context>
</context-group>
</trans-unit>
<trans-unit id="2067863610333602482" datatype="html">
@ -2208,7 +2208,7 @@
<target state="translated">报告数据故障</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">480</context>
<context context-type="linenumber">478</context>
</context-group>
</trans-unit>
<trans-unit id="5451369123952965511" datatype="html">
@ -2732,7 +2732,7 @@
<target state="translated">投资</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">257</context>
</context-group>
</trans-unit>
<trans-unit id="3014406080070038652" datatype="html">
@ -2968,7 +2968,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">411</context>
<context context-type="linenumber">409</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -3072,7 +3072,7 @@
<target state="translated">市场数据</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">431</context>
<context context-type="linenumber">429</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/common/src/lib/routes/routes.ts</context>
@ -3524,7 +3524,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">215</context>
<context context-type="linenumber">226</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -4284,11 +4284,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">246</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">376</context>
<context context-type="linenumber">374</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
@ -4367,6 +4367,18 @@
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5176578390795646240" datatype="html">
<source>thereof Dividend Performance</source>
<target state="new">thereof Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">178</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">306</context>
</context-group>
</trans-unit>
<trans-unit id="5180854365496977862" datatype="html">
<source>Update Cash Balance</source>
<target state="translated">更新现金余额</target>
@ -4487,14 +4499,6 @@
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8717427042493194723" datatype="html">
<source>Dividend Performance</source>
<target state="new">Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">214</context>
</context-group>
</trans-unit>
<trans-unit id="4164773401836100336" datatype="html">
<source>Choose or drop a file here</source>
<target state="translated">在此处选择或放置文件</target>
@ -4768,15 +4772,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">199</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">511</context>
<context context-type="linenumber">197</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -4808,7 +4804,7 @@
<target state="translated">存款</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">444</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -5353,7 +5349,7 @@
<target state="translated">优惠券 <x id="PH" equiv-text="newCoupon.code"/> 已创建</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">209</context>
<context context-type="linenumber">210</context>
</context-group>
</trans-unit>
<trans-unit id="6809703125566042287" datatype="html">
@ -5645,7 +5641,7 @@
<target state="translated">您确实要删除该帐户余额吗?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="5388209493122807655" datatype="html">
@ -5853,11 +5849,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">496</context>
<context context-type="linenumber">507</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">454</context>
<context context-type="linenumber">456</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -5869,7 +5865,7 @@
<target state="translated">储蓄</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
<context context-type="linenumber">464</context>
<context context-type="linenumber">466</context>
</context-group>
</trans-unit>
<trans-unit id="8927080808898221200" datatype="html">
@ -5953,7 +5949,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">259</context>
<context context-type="linenumber">257</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -5985,7 +5981,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">266</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
@ -6025,15 +6021,15 @@
<target state="translated">应急基金</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">261</context>
<context context-type="linenumber">272</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">339</context>
<context context-type="linenumber">350</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">452</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
@ -6169,7 +6165,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">337</context>
<context context-type="linenumber">335</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
@ -6301,7 +6297,7 @@
<target state="translated">现金</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">293</context>
<context context-type="linenumber">304</context>
</context-group>
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
@ -6328,14 +6324,6 @@
<context context-type="linenumber">78</context>
</context-group>
</trans-unit>
<trans-unit id="1400496117963702686" datatype="html">
<source>Absolute Dividend Performance</source>
<target state="new">Absolute Dividend Performance</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">195</context>
</context-group>
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="translated">非洲</target>
@ -6581,7 +6569,7 @@
<target state="translated">绝对货币表现</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">233</context>
<context context-type="linenumber">194</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6589,7 +6577,7 @@
<target state="translated">关闭持仓</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">467</context>
<context context-type="linenumber">465</context>
</context-group>
</trans-unit>
<trans-unit id="1605678350626749943" datatype="html">
@ -6633,7 +6621,7 @@
<target state="translated">货币表现</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">257</context>
<context context-type="linenumber">218</context>
</context-group>
</trans-unit>
<trans-unit id="2593751087640318641" datatype="html">
@ -6886,7 +6874,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">246</context>
<context context-type="linenumber">244</context>
</context-group>
</trans-unit>
<trans-unit id="1999364180941264642" datatype="html">
@ -6894,7 +6882,7 @@
<target state="translated">股息收益率</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="8871342657187208008" datatype="html">
@ -7405,6 +7393,18 @@
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="7803225195017107428" datatype="html">
<source>thereof Dividend</source>
<target state="new">thereof Dividend</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">287</context>
</context-group>
</trans-unit>
<trans-unit id="7819314041543176992" datatype="html">
<source>Close</source>
<target state="translated">关闭</target>
@ -7566,11 +7566,11 @@
<target state="translated"><x id="PH" equiv-text="codeToCopy"/> 已复制到剪贴板</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/value/value.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">205</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
@ -8016,7 +8016,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts</context>
<context context-type="linenumber">202</context>
<context context-type="linenumber">172</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html</context>
@ -8096,7 +8096,7 @@
<target state="translated">AI 提示已复制到剪贴板</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">237</context>
<context context-type="linenumber">207</context>
</context-group>
</trans-unit>
<trans-unit id="1616747898909934803" datatype="html">
@ -8184,7 +8184,7 @@
<target state="translated">打开 Duck.ai</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
<context context-type="linenumber">238</context>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
<trans-unit id="5674286808255988565" datatype="html">
@ -8204,7 +8204,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
</trans-unit>
<trans-unit id="1237494164624005096" datatype="html">
@ -8244,11 +8244,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">423</context>
<context context-type="linenumber">430</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/treemap-chart/treemap-chart.component.ts</context>
<context context-type="linenumber">436</context>
<context context-type="linenumber">445</context>
</context-group>
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
@ -8566,7 +8566,7 @@
<target state="translated">演示用户账户已同步。</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5342678948449903412" datatype="html">
@ -9041,7 +9041,7 @@
<target state="translated">管理资产概况</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
<context context-type="linenumber">495</context>
<context context-type="linenumber">493</context>
</context-group>
</trans-unit>
<trans-unit id="5053948923184155554" datatype="html">
@ -9152,6 +9152,18 @@
<context context-type="linenumber">181</context>
</context-group>
</trans-unit>
<trans-unit id="5814001514445505929" datatype="html">
<source>Return on Average Investment (total return with dividends)</source>
<target state="new">Return on Average Investment (total return with dividends)</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
<context context-type="linenumber">159</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
<context context-type="linenumber">264</context>
</context-group>
</trans-unit>
<trans-unit id="5815936665222001383" datatype="html">
<source>No results found...</source>
<target state="translated">未找到结果...</target>

2
apps/client/tsconfig.json

@ -21,7 +21,7 @@
"strictDomEventTypes": true,
"strictDomLocalRefTypes": true,
"strictInputAccessModifiers": true,
"strictInputTypes": false,
"strictInputTypes": true,
"strictLiteralTypes": true,
"strictNullInputTypes": true,
"strictOutputEventTypes": true,

8
libs/ui/src/lib/accounts-table/accounts-table.component.ts

@ -62,7 +62,13 @@ export class GfAccountsTableComponent {
public readonly hasPermissionToDeleteAccount = input<boolean>();
public readonly hasPermissionToOpenDetails = input(true);
public readonly hasPermissionToUpdateAccount = input<boolean>();
public readonly locale = input(getLocale());
public readonly locale = input(getLocale(), {
transform: (value?: string) => {
return value ?? getLocale();
}
});
public readonly showActions = input<boolean>();
public readonly showActivitiesCount = input(true);
public readonly showAllocationInPercentage = input<boolean>();

32
libs/ui/src/lib/activities-table/activities-table.component.ts

@ -71,6 +71,7 @@ import { GfActivityTypeComponent } from '../activity-type/activity-type.componen
import { GfEntityLogoComponent } from '../entity-logo/entity-logo.component';
import { GfNoActivitiesInfoComponent } from '../no-activities-info/no-activities-info.component';
import { GfValueComponent } from '../value/value.component';
import { ActivitiesTableItem } from './interfaces/interfaces';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
@ -99,7 +100,11 @@ import { GfValueComponent } from '../value/value.component';
styleUrls: ['./activities-table.component.scss'],
templateUrl: './activities-table.component.html'
})
export class GfActivitiesTableComponent implements AfterViewInit, OnInit {
export class GfActivitiesTableComponent<
T extends ActivitiesTableItem = Activity
>
implements AfterViewInit, OnInit
{
@Input() public baseCurrency?: string;
@Input() public deviceType: string;
@Input() public hasActivities: boolean;
@ -127,7 +132,7 @@ export class GfActivitiesTableComponent implements AfterViewInit, OnInit {
@Output() import = new EventEmitter<void>();
@Output() importDividends = new EventEmitter<AssetProfileIdentifier>();
@Output() pageChanged = new EventEmitter<PageEvent>();
@Output() selectedActivities = new EventEmitter<Activity[]>();
@Output() selectedActivities = new EventEmitter<T[]>();
@Output() sortChanged = new EventEmitter<Sort>();
@Output() typesFilterChanged = new EventEmitter<string[]>();
@ -138,12 +143,12 @@ export class GfActivitiesTableComponent implements AfterViewInit, OnInit {
public hasErrors = false;
public isDraftActivity = isDraftActivity;
public isUUID = isUUID;
public selectedRows = new SelectionModel<Activity>(true, []);
public selectedRows = new SelectionModel<T>(true, []);
public typesFilter = new FormControl<string[]>([]);
public readonly activityTypes = input<ActivityType[]>([]);
public readonly dataSource = input.required<
MatTableDataSource<Activity> | undefined
MatTableDataSource<T> | undefined
>();
public readonly showAccountColumn = input(true);
public readonly showCheckbox = input(false);
@ -158,11 +163,13 @@ export class GfActivitiesTableComponent implements AfterViewInit, OnInit {
{ clone: string[]; update: string[] }
>();
for (const { id } of this.dataSource()?.data ?? []) {
routerLinks.set(id, {
clone: clone.routerLink(id),
update: update.routerLink(id)
});
for (const activity of this.dataSource()?.data ?? []) {
if (activity.id) {
routerLinks.set(activity.id, {
clone: clone.routerLink(activity.id),
update: update.routerLink(activity.id)
});
}
}
return routerLinks;
@ -276,7 +283,7 @@ export class GfActivitiesTableComponent implements AfterViewInit, OnInit {
return numSelectedRows === numTotalRows;
}
public canClickActivity(activity: Activity) {
public canClickActivity(activity: T) {
return (
this.hasPermissionToOpenDetails &&
isDraftActivity(activity) === false &&
@ -302,7 +309,7 @@ export class GfActivitiesTableComponent implements AfterViewInit, OnInit {
this.pageChanged.emit(page);
}
public onClickActivity(activity: Activity) {
public onClickActivity(activity: T) {
if (this.showCheckbox()) {
if (!activity.error) {
this.selectedRows.toggle(activity);
@ -355,6 +362,9 @@ export class GfActivitiesTableComponent implements AfterViewInit, OnInit {
.map((activity) => {
return activity.id;
})
.filter((id): id is string => {
return !!id;
})
);
}

1
libs/ui/src/lib/activities-table/index.ts

@ -1 +1,2 @@
export * from './activities-table.component';
export * from './interfaces/interfaces';

21
libs/ui/src/lib/activities-table/interfaces/interfaces.ts

@ -0,0 +1,21 @@
import { Activity, EnhancedAssetProfile } from '@ghostfolio/common/interfaces';
export interface ActivitiesTableItem
extends
Pick<
Activity,
| 'currency'
| 'date'
| 'fee'
| 'quantity'
| 'type'
| 'unitPrice'
| 'value'
| 'valueInBaseCurrency'
>,
Partial<Pick<Activity, 'account' | 'comment' | 'error' | 'id' | 'tags'>> {
assetProfile: Pick<
EnhancedAssetProfile,
'currency' | 'dataSource' | 'name' | 'symbol'
>;
}

2
libs/ui/src/lib/benchmark/benchmark-detail-dialog/benchmark-detail-dialog.html

@ -1,7 +1,7 @@
<gf-dialog-header
position="center"
[deviceType]="data.deviceType"
[title]="assetProfile?.name ?? assetProfile?.symbol ?? ''"
[title]="assetProfile?.name ?? assetProfile?.symbol"
(closeButtonClicked)="onClose()"
/>

6
libs/ui/src/lib/dialog-header/dialog-header.component.html

@ -1,10 +1,10 @@
<div class="d-flex" mat-dialog-title>
<span
class="flex-grow-1 text-truncate"
[class.text-center]="position === 'center'"
>{{ title }}</span
[class.text-center]="position() === 'center'"
>{{ title() }}</span
>
@if (deviceType !== 'mobile') {
@if (deviceType() !== 'mobile') {
<button class="no-min-width px-0" mat-button (click)="onClickCloseButton()">
<ion-icon name="close" size="large" />
</button>

15
libs/ui/src/lib/dialog-header/dialog-header.component.ts

@ -1,9 +1,8 @@
import {
ChangeDetectionStrategy,
Component,
EventEmitter,
Input,
Output
input,
output
} from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatDialogModule } from '@angular/material/dialog';
@ -20,17 +19,17 @@ import { close } from 'ionicons/icons';
templateUrl: './dialog-header.component.html'
})
export class GfDialogHeaderComponent {
@Input() deviceType: string;
@Input() position: 'center' | 'left' = 'left';
@Input() title: string;
public readonly deviceType = input<string>();
public readonly position = input<'center' | 'left'>('left');
public readonly title = input.required<string | null | undefined>();
@Output() closeButtonClicked = new EventEmitter<void>();
public readonly closeButtonClicked = output<void>();
public constructor() {
addIcons({ close });
}
public onClickCloseButton() {
protected onClickCloseButton() {
this.closeButtonClicked.emit();
}
}

22
libs/ui/src/lib/holdings-table/holdings-table.component.ts

@ -6,10 +6,7 @@ import {
getLowercase,
isCashPosition
} from '@ghostfolio/common/helper';
import {
AssetProfileIdentifier,
PortfolioPosition
} from '@ghostfolio/common/interfaces';
import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces';
import {
CUSTOM_ELEMENTS_SCHEMA,
@ -31,6 +28,7 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
import { GfEntityLogoComponent } from '../entity-logo/entity-logo.component';
import { GfValueComponent } from '../value/value.component';
import { HoldingsTableItem } from './interfaces/interfaces';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
@ -53,8 +51,14 @@ export class GfHoldingsTableComponent {
public readonly hasPermissionToOpenDetails = input(true);
public readonly hasPermissionToShowQuantities = input(true);
public readonly hasPermissionToShowValues = input(true);
public readonly holdings = input.required<PortfolioPosition[] | undefined>();
public readonly locale = input(getLocale());
public readonly holdings = input.required<HoldingsTableItem[] | undefined>();
public readonly locale = input(getLocale(), {
transform: (value?: string) => {
return value ?? getLocale();
}
});
public readonly mode = input<'default' | 'simple'>('default');
public readonly pageSize = model(Number.MAX_SAFE_INTEGER);
@ -63,7 +67,7 @@ export class GfHoldingsTableComponent {
protected readonly paginator = viewChild.required(MatPaginator);
protected readonly sort = viewChild.required(MatSort);
protected readonly dataSource = new MatTableDataSource<PortfolioPosition>([]);
protected readonly dataSource = new MatTableDataSource<HoldingsTableItem>([]);
protected readonly displayedColumns = computed(() => {
if (this.mode() === 'simple') {
@ -128,13 +132,13 @@ export class GfHoldingsTableComponent {
});
}
protected canShowDetails(holding: PortfolioPosition): boolean {
protected canShowDetails(holding: HoldingsTableItem): boolean {
return this.hasPermissionToOpenDetails() && canOpenHoldingDetail(holding);
}
protected getCountryCodeForCashPosition({
assetProfile
}: PortfolioPosition): string {
}: HoldingsTableItem): string {
return isCashPosition(assetProfile)
? getCountryCodeFromCurrency(assetProfile.currency)
: '';

1
libs/ui/src/lib/holdings-table/index.ts

@ -1 +1,2 @@
export * from './holdings-table.component';
export * from './interfaces/interfaces';

17
libs/ui/src/lib/holdings-table/interfaces/interfaces.ts

@ -0,0 +1,17 @@
import { PortfolioPosition } from '@ghostfolio/common/interfaces';
export interface HoldingsTableItem
extends
Pick<
PortfolioPosition,
| 'allocationInPercentage'
| 'assetProfile'
| 'dateOfFirstActivity'
| 'netPerformancePercentWithCurrencyEffect'
>,
Partial<
Pick<
PortfolioPosition,
'netPerformanceWithCurrencyEffect' | 'quantity' | 'valueInBaseCurrency'
>
> {}

4
package-lock.json

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

2
package.json

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

Loading…
Cancel
Save