Browse Source

Merge remote-tracking branch 'origin/main' into task/enforce-module-boundaries-for-api-common

pull/5925/head
KenTandrian 1 month ago
parent
commit
9260d93dcf
  1. 9
      CHANGELOG.md
  2. 8
      apps/api/src/app/account/account.controller.ts
  3. 19
      apps/api/src/app/import/import.service.ts
  4. 421
      apps/api/src/app/portfolio/portfolio.service.ts
  5. 12
      apps/client/src/app/app.component.ts
  6. 9
      apps/client/src/app/components/user-account-membership/user-account-membership.html
  7. 1
      apps/client/src/app/pages/pricing/pricing-page.html
  8. 4
      apps/client/src/app/services/data.service.ts
  9. 52
      apps/client/src/locales/messages.ca.xlf
  10. 52
      apps/client/src/locales/messages.de.xlf
  11. 52
      apps/client/src/locales/messages.es.xlf
  12. 52
      apps/client/src/locales/messages.fr.xlf
  13. 52
      apps/client/src/locales/messages.it.xlf
  14. 52
      apps/client/src/locales/messages.nl.xlf
  15. 52
      apps/client/src/locales/messages.pl.xlf
  16. 52
      apps/client/src/locales/messages.pt.xlf
  17. 52
      apps/client/src/locales/messages.tr.xlf
  18. 52
      apps/client/src/locales/messages.uk.xlf
  19. 50
      apps/client/src/locales/messages.xlf
  20. 170
      apps/client/src/locales/messages.zh.xlf
  21. 9
      apps/client/src/styles.scss
  22. 2
      apps/client/src/styles/variables.scss
  23. 2
      libs/common/src/lib/interfaces/index.ts
  24. 3
      libs/common/src/lib/interfaces/responses/account-response.interface.ts
  25. 12
      package-lock.json
  26. 4
      package.json

9
CHANGELOG.md

@ -9,7 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Refactored the get holding functionality in the portfolio service
- Improved the language localization for German (`de`)
## 2.216.0 - 2025-11-10
### Changed
- Improved the language localization for Chinese (`zh`)
- Upgraded `chart.js` from version `4.5.0` to `4.5.1`
- Upgraded `svgmap` from version `2.12.2` to `2.14.0`
## 2.215.0 - 2025-11-06

8
apps/api/src/app/account/account.controller.ts

@ -9,13 +9,11 @@ import { ImpersonationService } from '@ghostfolio/api/services/impersonation/imp
import { HEADER_KEY_IMPERSONATION } from '@ghostfolio/common/config';
import {
AccountBalancesResponse,
AccountResponse,
AccountsResponse
} from '@ghostfolio/common/interfaces';
import { permissions } from '@ghostfolio/common/permissions';
import type {
AccountWithValue,
RequestWithUser
} from '@ghostfolio/common/types';
import type { RequestWithUser } from '@ghostfolio/common/types';
import {
Body,
@ -114,7 +112,7 @@ export class AccountController {
public async getAccountById(
@Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string,
@Param('id') id: string
): Promise<AccountWithValue> {
): Promise<AccountResponse> {
const impersonationUserId =
await this.impersonationService.validateImpersonationId(impersonationId);

19
apps/api/src/app/import/import.service.ts

@ -58,13 +58,18 @@ export class ImportService {
userId
}: AssetProfileIdentifier & { userId: string }): Promise<Activity[]> {
try {
const { activities, firstBuyDate, historicalData } =
await this.portfolioService.getHolding({
dataSource,
symbol,
userId,
impersonationId: undefined
});
const holding = await this.portfolioService.getHolding({
dataSource,
symbol,
userId,
impersonationId: undefined
});
if (!holding) {
return [];
}
const { activities, firstBuyDate, historicalData } = holding;
const [[assetProfile], dividends] = await Promise.all([
this.symbolProfileService.getSymbolProfiles([

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

@ -88,7 +88,6 @@ import {
parseISO,
set
} from 'date-fns';
import { isEmpty } from 'lodash';
import { PortfolioCalculator } from './calculator/portfolio-calculator';
import { PortfolioCalculatorFactory } from './calculator/portfolio-calculator.factory';
@ -776,35 +775,7 @@ export class PortfolioService {
});
if (activities.length === 0) {
return {
activities: [],
activitiesCount: 0,
averagePrice: undefined,
dataProviderInfo: undefined,
dividendInBaseCurrency: undefined,
dividendYieldPercent: undefined,
dividendYieldPercentWithCurrencyEffect: undefined,
feeInBaseCurrency: undefined,
firstBuyDate: undefined,
grossPerformance: undefined,
grossPerformancePercent: undefined,
grossPerformancePercentWithCurrencyEffect: undefined,
grossPerformanceWithCurrencyEffect: undefined,
historicalData: [],
investmentInBaseCurrencyWithCurrencyEffect: undefined,
marketPrice: undefined,
marketPriceMax: undefined,
marketPriceMin: undefined,
netPerformance: undefined,
netPerformancePercent: undefined,
netPerformancePercentWithCurrencyEffect: undefined,
netPerformanceWithCurrencyEffect: undefined,
performances: undefined,
quantity: undefined,
SymbolProfile: undefined,
tags: [],
value: undefined
};
return undefined;
}
const [SymbolProfile] = await this.symbolProfileService.getSymbolProfiles([
@ -818,7 +789,6 @@ export class PortfolioService {
currency: userCurrency
});
const portfolioStart = portfolioCalculator.getStartDate();
const transactionPoints = portfolioCalculator.getTransactionPoints();
const { positions } = await portfolioCalculator.getSnapshot();
@ -827,225 +797,108 @@ export class PortfolioService {
return position.dataSource === dataSource && position.symbol === symbol;
});
if (holding) {
const {
averagePrice,
currency,
dividendInBaseCurrency,
fee,
firstBuyDate,
grossPerformance,
grossPerformancePercentage,
grossPerformancePercentageWithCurrencyEffect,
grossPerformanceWithCurrencyEffect,
investmentWithCurrencyEffect,
marketPrice,
netPerformance,
netPerformancePercentage,
netPerformancePercentageWithCurrencyEffectMap,
netPerformanceWithCurrencyEffectMap,
quantity,
tags,
timeWeightedInvestment,
timeWeightedInvestmentWithCurrencyEffect,
transactionCount
} = holding;
const activitiesOfHolding = activities.filter(({ SymbolProfile }) => {
return (
SymbolProfile.dataSource === dataSource &&
SymbolProfile.symbol === symbol
);
});
const dividendYieldPercent = getAnnualizedPerformancePercent({
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)),
netPerformancePercentage: timeWeightedInvestment.eq(0)
? new Big(0)
: dividendInBaseCurrency.div(timeWeightedInvestment)
});
const dividendYieldPercentWithCurrencyEffect =
getAnnualizedPerformancePercent({
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)),
netPerformancePercentage: timeWeightedInvestmentWithCurrencyEffect.eq(
0
)
? new Big(0)
: dividendInBaseCurrency.div(
timeWeightedInvestmentWithCurrencyEffect
)
});
if (!holding) {
return undefined;
}
const historicalData = await this.dataProviderService.getHistorical(
[{ dataSource, symbol }],
'day',
parseISO(firstBuyDate),
new Date()
);
const {
averagePrice,
currency,
dividendInBaseCurrency,
fee,
firstBuyDate,
grossPerformance,
grossPerformancePercentage,
grossPerformancePercentageWithCurrencyEffect,
grossPerformanceWithCurrencyEffect,
investmentWithCurrencyEffect,
marketPrice,
netPerformance,
netPerformancePercentage,
netPerformancePercentageWithCurrencyEffectMap,
netPerformanceWithCurrencyEffectMap,
quantity,
tags,
timeWeightedInvestment,
timeWeightedInvestmentWithCurrencyEffect,
transactionCount
} = holding;
const historicalDataArray: HistoricalDataItem[] = [];
let marketPriceMax = Math.max(
activitiesOfHolding[0].unitPriceInAssetProfileCurrency,
marketPrice
);
let marketPriceMaxDate =
marketPrice > activitiesOfHolding[0].unitPriceInAssetProfileCurrency
? new Date()
: activitiesOfHolding[0].date;
let marketPriceMin = Math.min(
activitiesOfHolding[0].unitPriceInAssetProfileCurrency,
marketPrice
const activitiesOfHolding = activities.filter(({ SymbolProfile }) => {
return (
SymbolProfile.dataSource === dataSource &&
SymbolProfile.symbol === symbol
);
});
if (historicalData[symbol]) {
let j = -1;
for (const [date, { marketPrice }] of Object.entries(
historicalData[symbol]
)) {
while (
j + 1 < transactionPoints.length &&
!isAfter(parseDate(transactionPoints[j + 1].date), parseDate(date))
) {
j++;
}
let currentAveragePrice = 0;
let currentQuantity = 0;
const dividendYieldPercent = getAnnualizedPerformancePercent({
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)),
netPerformancePercentage: timeWeightedInvestment.eq(0)
? new Big(0)
: dividendInBaseCurrency.div(timeWeightedInvestment)
});
const currentSymbol = transactionPoints[j]?.items.find(
(transactionPointSymbol) => {
return transactionPointSymbol.symbol === symbol;
}
);
const dividendYieldPercentWithCurrencyEffect =
getAnnualizedPerformancePercent({
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)),
netPerformancePercentage: timeWeightedInvestmentWithCurrencyEffect.eq(0)
? new Big(0)
: dividendInBaseCurrency.div(timeWeightedInvestmentWithCurrencyEffect)
});
if (currentSymbol) {
currentAveragePrice = currentSymbol.averagePrice.toNumber();
currentQuantity = currentSymbol.quantity.toNumber();
}
const historicalData = await this.dataProviderService.getHistorical(
[{ dataSource, symbol }],
'day',
parseISO(firstBuyDate),
new Date()
);
historicalDataArray.push({
date,
averagePrice: currentAveragePrice,
marketPrice:
historicalDataArray.length > 0
? marketPrice
: currentAveragePrice,
quantity: currentQuantity
});
const historicalDataArray: HistoricalDataItem[] = [];
let marketPriceMax = Math.max(
activitiesOfHolding[0].unitPriceInAssetProfileCurrency,
marketPrice
);
let marketPriceMaxDate =
marketPrice > activitiesOfHolding[0].unitPriceInAssetProfileCurrency
? new Date()
: activitiesOfHolding[0].date;
let marketPriceMin = Math.min(
activitiesOfHolding[0].unitPriceInAssetProfileCurrency,
marketPrice
);
if (marketPrice > marketPriceMax) {
marketPriceMax = marketPrice;
marketPriceMaxDate = parseISO(date);
}
marketPriceMin = Math.min(
marketPrice ?? Number.MAX_SAFE_INTEGER,
marketPriceMin
);
if (historicalData[symbol]) {
let j = -1;
for (const [date, { marketPrice }] of Object.entries(
historicalData[symbol]
)) {
while (
j + 1 < transactionPoints.length &&
!isAfter(parseDate(transactionPoints[j + 1].date), parseDate(date))
) {
j++;
}
} else {
// Add historical entry for buy date, if no historical data available
historicalDataArray.push({
averagePrice: activitiesOfHolding[0].unitPriceInAssetProfileCurrency,
date: firstBuyDate,
marketPrice: activitiesOfHolding[0].unitPriceInAssetProfileCurrency,
quantity: activitiesOfHolding[0].quantity
});
}
const performancePercent =
this.benchmarkService.calculateChangeInPercentage(
marketPriceMax,
marketPrice
);
let currentAveragePrice = 0;
let currentQuantity = 0;
return {
firstBuyDate,
marketPrice,
marketPriceMax,
marketPriceMin,
SymbolProfile,
tags,
activities: activitiesOfHolding,
activitiesCount: transactionCount,
averagePrice: averagePrice.toNumber(),
dataProviderInfo: portfolioCalculator.getDataProviderInfos()?.[0],
dividendInBaseCurrency: dividendInBaseCurrency.toNumber(),
dividendYieldPercent: dividendYieldPercent.toNumber(),
dividendYieldPercentWithCurrencyEffect:
dividendYieldPercentWithCurrencyEffect.toNumber(),
feeInBaseCurrency: this.exchangeRateDataService.toCurrency(
fee.toNumber(),
SymbolProfile.currency,
userCurrency
),
grossPerformance: grossPerformance?.toNumber(),
grossPerformancePercent: grossPerformancePercentage?.toNumber(),
grossPerformancePercentWithCurrencyEffect:
grossPerformancePercentageWithCurrencyEffect?.toNumber(),
grossPerformanceWithCurrencyEffect:
grossPerformanceWithCurrencyEffect?.toNumber(),
historicalData: historicalDataArray,
investmentInBaseCurrencyWithCurrencyEffect:
investmentWithCurrencyEffect?.toNumber(),
netPerformance: netPerformance?.toNumber(),
netPerformancePercent: netPerformancePercentage?.toNumber(),
netPerformancePercentWithCurrencyEffect:
netPerformancePercentageWithCurrencyEffectMap?.['max']?.toNumber(),
netPerformanceWithCurrencyEffect:
netPerformanceWithCurrencyEffectMap?.['max']?.toNumber(),
performances: {
allTimeHigh: {
performancePercent,
date: marketPriceMaxDate
const currentSymbol = transactionPoints[j]?.items.find(
(transactionPointSymbol) => {
return transactionPointSymbol.symbol === symbol;
}
},
quantity: quantity.toNumber(),
value: this.exchangeRateDataService.toCurrency(
quantity.mul(marketPrice ?? 0).toNumber(),
currency,
userCurrency
)
};
} else {
const currentData = await this.dataProviderService.getQuotes({
user,
items: [{ symbol, dataSource: DataSource.YAHOO }]
});
const marketPrice = currentData[symbol]?.marketPrice;
let historicalData = await this.dataProviderService.getHistorical(
[{ symbol, dataSource: DataSource.YAHOO }],
'day',
portfolioStart,
new Date()
);
);
if (isEmpty(historicalData)) {
try {
historicalData = await this.dataProviderService.getHistoricalRaw({
assetProfileIdentifiers: [{ symbol, dataSource: DataSource.YAHOO }],
from: portfolioStart,
to: new Date()
});
} catch {
historicalData = {
[symbol]: {}
};
if (currentSymbol) {
currentAveragePrice = currentSymbol.averagePrice.toNumber();
currentQuantity = currentSymbol.quantity.toNumber();
}
}
const historicalDataArray: HistoricalDataItem[] = [];
let marketPriceMax = marketPrice;
let marketPriceMaxDate = new Date();
let marketPriceMin = marketPrice;
for (const [date, { marketPrice }] of Object.entries(
historicalData[symbol]
)) {
historicalDataArray.push({
date,
value: marketPrice
averagePrice: currentAveragePrice,
marketPrice:
historicalDataArray.length > 0 ? marketPrice : currentAveragePrice,
quantity: currentQuantity
});
if (marketPrice > marketPriceMax) {
@ -1057,48 +910,70 @@ export class PortfolioService {
marketPriceMin
);
}
} else {
// Add historical entry for buy date, if no historical data available
historicalDataArray.push({
averagePrice: activitiesOfHolding[0].unitPriceInAssetProfileCurrency,
date: firstBuyDate,
marketPrice: activitiesOfHolding[0].unitPriceInAssetProfileCurrency,
quantity: activitiesOfHolding[0].quantity
});
}
const performancePercent =
this.benchmarkService.calculateChangeInPercentage(
marketPriceMax,
marketPrice
);
return {
marketPrice,
const performancePercent =
this.benchmarkService.calculateChangeInPercentage(
marketPriceMax,
marketPriceMin,
SymbolProfile,
activities: [],
activitiesCount: 0,
averagePrice: 0,
dataProviderInfo: undefined,
dividendInBaseCurrency: 0,
dividendYieldPercent: 0,
dividendYieldPercentWithCurrencyEffect: 0,
feeInBaseCurrency: 0,
firstBuyDate: undefined,
grossPerformance: undefined,
grossPerformancePercent: undefined,
grossPerformancePercentWithCurrencyEffect: undefined,
grossPerformanceWithCurrencyEffect: undefined,
historicalData: historicalDataArray,
investmentInBaseCurrencyWithCurrencyEffect: 0,
netPerformance: undefined,
netPerformancePercent: undefined,
netPerformancePercentWithCurrencyEffect: undefined,
netPerformanceWithCurrencyEffect: undefined,
performances: {
allTimeHigh: {
performancePercent,
date: marketPriceMaxDate
}
},
quantity: 0,
tags: [],
value: 0
};
}
marketPrice
);
return {
firstBuyDate,
marketPrice,
marketPriceMax,
marketPriceMin,
SymbolProfile,
tags,
activities: activitiesOfHolding,
activitiesCount: transactionCount,
averagePrice: averagePrice.toNumber(),
dataProviderInfo: portfolioCalculator.getDataProviderInfos()?.[0],
dividendInBaseCurrency: dividendInBaseCurrency.toNumber(),
dividendYieldPercent: dividendYieldPercent.toNumber(),
dividendYieldPercentWithCurrencyEffect:
dividendYieldPercentWithCurrencyEffect.toNumber(),
feeInBaseCurrency: this.exchangeRateDataService.toCurrency(
fee.toNumber(),
SymbolProfile.currency,
userCurrency
),
grossPerformance: grossPerformance?.toNumber(),
grossPerformancePercent: grossPerformancePercentage?.toNumber(),
grossPerformancePercentWithCurrencyEffect:
grossPerformancePercentageWithCurrencyEffect?.toNumber(),
grossPerformanceWithCurrencyEffect:
grossPerformanceWithCurrencyEffect?.toNumber(),
historicalData: historicalDataArray,
investmentInBaseCurrencyWithCurrencyEffect:
investmentWithCurrencyEffect?.toNumber(),
netPerformance: netPerformance?.toNumber(),
netPerformancePercent: netPerformancePercentage?.toNumber(),
netPerformancePercentWithCurrencyEffect:
netPerformancePercentageWithCurrencyEffectMap?.['max']?.toNumber(),
netPerformanceWithCurrencyEffect:
netPerformanceWithCurrencyEffectMap?.['max']?.toNumber(),
performances: {
allTimeHigh: {
performancePercent,
date: marketPriceMaxDate
}
},
quantity: quantity.toNumber(),
value: this.exchangeRateDataService.toCurrency(
quantity.mul(marketPrice ?? 0).toNumber(),
currency,
userCurrency
)
};
}
public async getPerformance({

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

@ -110,10 +110,6 @@ export class GfAppComponent implements OnDestroy, OnInit {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
this.info = this.dataService.fetchInfo();
this.hasPromotion =
!!this.info?.subscriptionOffer?.coupon ||
!!this.info?.subscriptionOffer?.durationExtension;
this.impersonationStorageService
.onChangeHasImpersonation()
.pipe(takeUntil(this.unsubscribeSubject))
@ -217,9 +213,11 @@ export class GfAppComponent implements OnDestroy, OnInit {
this.hasInfoMessage =
this.canCreateAccount || !!this.user?.systemMessage;
this.hasPromotion =
!!this.user?.subscription?.offer?.coupon ||
!!this.user?.subscription?.offer?.durationExtension;
this.hasPromotion = this.user
? !!this.user.subscription?.offer?.coupon ||
!!this.user.subscription?.offer?.durationExtension
: !!this.info?.subscriptionOffer?.coupon ||
!!this.info?.subscriptionOffer?.durationExtension;
this.initializeTheme(this.user?.settings.colorScheme);

9
apps/client/src/app/components/user-account-membership/user-account-membership.html

@ -37,8 +37,11 @@
<div
class="badge badge-pill badge-warning font-weight-normal px-2 py-1"
>
<strong>Limited Offer!</strong> Get
{{ durationExtension }} extra
<strong i18n>Limited Offer!</strong>
<ng-container>&nbsp;</ng-container>
<ng-container i18n
>Get {{ durationExtension }} extra</ng-container
>
</div>
</div>
}
@ -67,7 +70,7 @@
</div>
} @else {
<div class="mt-3 text-muted">
<small i18n>No auto-renewal.</small>
<small i18n>No auto-renewal on membership.</small>
</div>
}
</div>

1
apps/client/src/app/pages/pricing/pricing-page.html

@ -310,6 +310,7 @@
class="badge badge-warning font-weight-normal line-height-1 p-3 w-100"
>
<strong i18n>Limited Offer!</strong>
<ng-container>&nbsp;</ng-container>
<ng-container i18n
>Get {{ durationExtension }} extra</ng-container
>

4
apps/client/src/app/services/data.service.ts

@ -21,6 +21,7 @@ import {
Access,
AccessTokenResponse,
AccountBalancesResponse,
AccountResponse,
AccountsResponse,
ActivitiesResponse,
ActivityResponse,
@ -55,7 +56,6 @@ import {
} from '@ghostfolio/common/interfaces';
import { filterGlobalPermissions } from '@ghostfolio/common/permissions';
import type {
AccountWithValue,
AiPromptMode,
DateRange,
GroupBy
@ -187,7 +187,7 @@ export class DataService {
}
public fetchAccount(aAccountId: string) {
return this.http.get<AccountWithValue>(`/api/v1/account/${aAccountId}`);
return this.http.get<AccountResponse>(`/api/v1/account/${aAccountId}`);
}
public fetchAccountBalances(aAccountId: string) {

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

@ -295,7 +295,7 @@
<target state="new">please</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="837553826328586238" datatype="html">
@ -1486,6 +1486,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">Implicació per Dia</target>
@ -1995,7 +2003,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -2459,7 +2467,7 @@
<target state="translated">Prova Premium</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -2467,7 +2475,7 @@
<target state="translated">Bescanviar el cupó</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="616064537937996961" datatype="html">
@ -3344,7 +3352,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -3816,7 +3824,7 @@
<target state="new">with your university e-mail address</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="4808791512433987109" datatype="html">
@ -4372,7 +4380,7 @@
<target state="new">Looking for a student discount?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -4436,7 +4444,7 @@
<target state="new">here</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -4788,7 +4796,7 @@
<target state="translated">És gratuït.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5342721262799645301" datatype="html">
@ -5217,7 +5225,7 @@
<target state="new">Request it</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -5505,7 +5513,7 @@
<target state="new">contact us</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -6745,7 +6753,7 @@
<target state="new">If you plan to open an account at</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6788,14 +6796,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="new">No auto-renewal.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="new">This year</target>
@ -6857,7 +6857,7 @@
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7909,6 +7909,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="new">Limited Offer!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7917,9 +7921,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="new">Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -42,7 +42,7 @@
<target state="translated">bitte</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -669,6 +669,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="translated">Keine automatische Erneuerung der Mitgliedschaft.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">Engagement pro Tag</target>
@ -726,7 +734,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -854,7 +862,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -1230,7 +1238,7 @@
<target state="translated">Premium ausprobieren</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -1238,7 +1246,7 @@
<target state="translated">Gutschein einlösen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="385370743150031888" datatype="html">
@ -2290,7 +2298,7 @@
<target state="translated">kontaktiere uns</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -3058,7 +3066,7 @@
<target state="translated">Suchst du nach einem Studentenrabatt?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -3550,7 +3558,7 @@
<target state="translated">Es ist kostenlos.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5012084291992448490" datatype="html">
@ -5264,7 +5272,7 @@
<target state="translated">mit deiner Universitäts-E-Mail-Adresse</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="7029006507527852669" datatype="html">
@ -5444,7 +5452,7 @@
<target state="translated">Fordere ihn an</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -5768,7 +5776,7 @@
<target state="translated">hier</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6769,7 +6777,7 @@
<target state="translated">Wenn du die Eröffnung eines Kontos planst bei</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6812,14 +6820,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">Keine automatische Erneuerung.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="translated">Dieses Jahr</target>
@ -6881,7 +6881,7 @@
<target state="translated">um unseren Empfehlungslink zu verwenden und ein Ghostfolio Premium-Abonnement für ein Jahr zu erhalten</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7909,6 +7909,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="translated">Begrenztes Angebot!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7917,9 +7921,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="translated">Erhalte <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -43,7 +43,7 @@
<target state="new">please</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -654,6 +654,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">Contratación diaria</target>
@ -711,7 +719,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -839,7 +847,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -1215,7 +1223,7 @@
<target state="translated">Prueba Premium</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -1223,7 +1231,7 @@
<target state="translated">Canjea el cupón</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="385370743150031888" datatype="html">
@ -2275,7 +2283,7 @@
<target state="new">contact us</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -3035,7 +3043,7 @@
<target state="new">Looking for a student discount?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -3535,7 +3543,7 @@
<target state="translated">Es gratis.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5012084291992448490" datatype="html">
@ -5241,7 +5249,7 @@
<target state="new">with your university e-mail address</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="7029006507527852669" datatype="html">
@ -5421,7 +5429,7 @@
<target state="new">Request it</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -5745,7 +5753,7 @@
<target state="new">here</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6746,7 +6754,7 @@
<target state="new">If you plan to open an account at</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6789,14 +6797,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">Sin renovación automática.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="translated">Este año</target>
@ -6858,7 +6858,7 @@
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7910,6 +7910,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="translated">¡Oferta limitada!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7918,9 +7922,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="translated">Obtén <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -34,7 +34,7 @@
<target state="new">please</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -861,6 +861,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">Engagement par Jour</target>
@ -1106,7 +1114,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -1494,7 +1502,7 @@
<target state="translated">Essayer Premium</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -1502,7 +1510,7 @@
<target state="translated">Utiliser un Code Promotionnel</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="385370743150031888" datatype="html">
@ -2322,7 +2330,7 @@
<target state="new">Looking for a student discount?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -2514,7 +2522,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -2742,7 +2750,7 @@
<target state="new">contact us</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -3534,7 +3542,7 @@
<target state="translated">C’est gratuit.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5012084291992448490" datatype="html">
@ -5240,7 +5248,7 @@
<target state="new">with your university e-mail address</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="7029006507527852669" datatype="html">
@ -5420,7 +5428,7 @@
<target state="new">Request it</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -5744,7 +5752,7 @@
<target state="new">here</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6745,7 +6753,7 @@
<target state="new">If you plan to open an account at</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6788,14 +6796,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">Pas de renouvellement automatique.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="translated">Cette année</target>
@ -6857,7 +6857,7 @@
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7909,6 +7909,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="translated">Offre Limitée !</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7917,9 +7921,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="translated">Obtenez <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> supplémentaires</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -43,7 +43,7 @@
<target state="new">please</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -654,6 +654,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">Partecipazione giornaliera</target>
@ -711,7 +719,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -839,7 +847,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -1215,7 +1223,7 @@
<target state="translated">Prova Premium</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -1223,7 +1231,7 @@
<target state="translated">Riscatta il buono</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="385370743150031888" datatype="html">
@ -2275,7 +2283,7 @@
<target state="new">contact us</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -3035,7 +3043,7 @@
<target state="new">Looking for a student discount?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -3535,7 +3543,7 @@
<target state="translated">È gratuito.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5012084291992448490" datatype="html">
@ -5241,7 +5249,7 @@
<target state="new">with your university e-mail address</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="7029006507527852669" datatype="html">
@ -5421,7 +5429,7 @@
<target state="new">Request it</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -5745,7 +5753,7 @@
<target state="new">here</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6746,7 +6754,7 @@
<target state="new">If you plan to open an account at</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6789,14 +6797,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">No rinnovo automatico.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="translated">Anno corrente</target>
@ -6858,7 +6858,7 @@
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7910,6 +7910,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="translated">Offerta limitata!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7918,9 +7922,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="new">Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -42,7 +42,7 @@
<target state="new">please</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -653,6 +653,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">Betrokkenheid per dag</target>
@ -710,7 +718,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -838,7 +846,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -1214,7 +1222,7 @@
<target state="translated">Probeer Premium</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -1222,7 +1230,7 @@
<target state="translated">Coupon inwisselen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="385370743150031888" datatype="html">
@ -2274,7 +2282,7 @@
<target state="new">contact us</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -3034,7 +3042,7 @@
<target state="new">Looking for a student discount?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -3534,7 +3542,7 @@
<target state="translated">Het is gratis.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5012084291992448490" datatype="html">
@ -5240,7 +5248,7 @@
<target state="new">with your university e-mail address</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="7029006507527852669" datatype="html">
@ -5420,7 +5428,7 @@
<target state="new">Request it</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -5744,7 +5752,7 @@
<target state="new">here</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6745,7 +6753,7 @@
<target state="new">If you plan to open an account at</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6788,14 +6796,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">Geen automatische verlenging.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="translated">Dit jaar</target>
@ -6857,7 +6857,7 @@
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7909,6 +7909,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="translated">Beperkt aanbod!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7917,9 +7921,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="translated">Krijg <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -243,7 +243,7 @@
<target state="new">please</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -1314,6 +1314,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">Zaangażowanie na Dzień</target>
@ -1691,7 +1699,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -2179,7 +2187,7 @@
<target state="translated">Wypróbuj Premium</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -2187,7 +2195,7 @@
<target state="translated">Wykorzystaj kupon</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="616064537937996961" datatype="html">
@ -2979,7 +2987,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -3435,7 +3443,7 @@
<target state="new">with your university e-mail address</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="4808791512433987109" datatype="html">
@ -3983,7 +3991,7 @@
<target state="new">Looking for a student discount?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -4335,7 +4343,7 @@
<target state="translated">Jest bezpłatny.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5342721262799645301" datatype="html">
@ -4744,7 +4752,7 @@
<target state="new">Request it</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -4888,7 +4896,7 @@
<target state="new">contact us</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -5744,7 +5752,7 @@
<target state="new">here</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6745,7 +6753,7 @@
<target state="new">If you plan to open an account at</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6788,14 +6796,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">Bez automatycznego odnawiania.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="translated">W tym roku</target>
@ -6857,7 +6857,7 @@
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7909,6 +7909,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="translated">Oferta ograniczona czasowo!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7917,9 +7921,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="translated">Uzyskaj <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> dodatkowo</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -34,7 +34,7 @@
<target state="new">please</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -733,6 +733,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">Envolvimento por Dia</target>
@ -986,7 +994,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -1482,7 +1490,7 @@
<target state="translated">Experimentar Premium</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -1490,7 +1498,7 @@
<target state="translated">Resgatar Cupão</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="385370743150031888" datatype="html">
@ -2450,7 +2458,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -2642,7 +2650,7 @@
<target state="new">contact us</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -3098,7 +3106,7 @@
<target state="new">Looking for a student discount?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -3534,7 +3542,7 @@
<target state="translated">É gratuito.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5012084291992448490" datatype="html">
@ -5240,7 +5248,7 @@
<target state="new">with your university e-mail address</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="7029006507527852669" datatype="html">
@ -5420,7 +5428,7 @@
<target state="new">Request it</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -5744,7 +5752,7 @@
<target state="new">here</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6745,7 +6753,7 @@
<target state="new">If you plan to open an account at</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6788,14 +6796,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">Sem renovação automática.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="translated">Este ano</target>
@ -6857,7 +6857,7 @@
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7909,6 +7909,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="new">Limited Offer!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7917,9 +7921,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="new">Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -215,7 +215,7 @@
<target state="new">please</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -1182,6 +1182,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">Günlük etkileşim</target>
@ -1551,7 +1559,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -2563,7 +2571,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -3475,7 +3483,7 @@
<target state="new">Looking for a student discount?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -3827,7 +3835,7 @@
<target state="translated">Ücretsiz.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5342721262799645301" datatype="html">
@ -4336,7 +4344,7 @@
<target state="translated">Premium’u Deneyin</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -4344,7 +4352,7 @@
<target state="translated">Kupon Kullan</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="385370743150031888" datatype="html">
@ -4584,7 +4592,7 @@
<target state="new">contact us</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -5248,7 +5256,7 @@
<target state="new">with your university e-mail address</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="7029006507527852669" datatype="html">
@ -5420,7 +5428,7 @@
<target state="new">Request it</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -5744,7 +5752,7 @@
<target state="new">here</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
@ -6745,7 +6753,7 @@
<target state="new">If you plan to open an account at</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6788,14 +6796,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">Otomatik yenileme yok.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="translated">Bu yıl</target>
@ -6857,7 +6857,7 @@
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7909,6 +7909,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="translated">Sınırlı Teklif!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7917,9 +7921,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="new">Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -295,7 +295,7 @@
<target state="new">please</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="837553826328586238" datatype="html">
@ -1527,7 +1527,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -1558,6 +1558,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="6013411263593168734" datatype="html">
<source>Do you really want to delete this tag?</source>
<target state="translated">Ви дійсно хочете видалити цей тег?</target>
@ -1783,7 +1791,7 @@
<target state="new">If you plan to open an account at</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -2751,7 +2759,7 @@
<target state="translated">Спробуйте Premium</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -2759,15 +2767,7 @@
<target state="translated">Обміняти купон</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">Без автоматичного поновлення.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="616064537937996961" datatype="html">
@ -3636,7 +3636,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -4108,7 +4108,7 @@
<target state="new">with your university e-mail address</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="4808791512433987109" datatype="html">
@ -4700,7 +4700,7 @@
<target state="new">Looking for a student discount?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -4764,7 +4764,7 @@
<target state="new">here</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="6762743264882388498" datatype="html">
@ -5156,7 +5156,7 @@
<target state="translated">Це безкоштовно.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5342721262799645301" datatype="html">
@ -5763,7 +5763,7 @@
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -5955,7 +5955,7 @@
<target state="new">Request it</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -6243,7 +6243,7 @@
<target state="new">contact us</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -7909,6 +7909,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="new">Limited Offer!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7917,9 +7921,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="new">Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">

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

@ -228,7 +228,7 @@
<source>please</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -1239,6 +1239,13 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<context-group purpose="location">
@ -1583,7 +1590,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -2027,14 +2034,14 @@
<source>Try Premium</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
<source>Redeem Coupon</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="616064537937996961" datatype="html">
@ -2763,7 +2770,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -3172,7 +3179,7 @@
<source>with your university e-mail address</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="4808791512433987109" datatype="html">
@ -3665,7 +3672,7 @@
<source>Looking for a student discount?</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -3985,7 +3992,7 @@
<source>It’s free.</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5342721262799645301" datatype="html">
@ -4366,7 +4373,7 @@
<source>Request it</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -4515,7 +4522,7 @@
<source>contact us</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -5277,7 +5284,7 @@
<source>here</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1501828122056907560" datatype="html">
@ -6155,7 +6162,7 @@
<source>If you plan to open an account at</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6186,13 +6193,6 @@
<context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="6351408992301482473" datatype="html">
<source>From the beginning</source>
<context-group purpose="location">
@ -6240,7 +6240,7 @@
<source>to use our referral link and get a Ghostfolio Premium membership for one year</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -7167,6 +7167,10 @@
</trans-unit>
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7174,9 +7178,13 @@
</trans-unit>
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="5643561794785412000" datatype="html">

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

@ -241,10 +241,10 @@
</trans-unit>
<trans-unit id="9153520284278555926" datatype="html">
<source>please</source>
<target state="new">please</target>
<target state="translated">请</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">350</context>
<context context-type="linenumber">351</context>
</context-group>
</trans-unit>
<trans-unit id="8650499415827640724" datatype="html">
@ -285,7 +285,7 @@
</trans-unit>
<trans-unit id="1351814922314683865" datatype="html">
<source>with</source>
<target state="new">with</target>
<target state="translated">和</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html</context>
<context context-type="linenumber">87</context>
@ -665,7 +665,7 @@
</trans-unit>
<trans-unit id="5611965261696422586" datatype="html">
<source>and is driven by the efforts of its <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://github.com/ghostfolio/ghostfolio/graphs/contributors&quot; title=&quot;Contributors to Ghostfolio&quot; &gt;"/>contributors<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></source>
<target state="new">and is driven by the efforts of its <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://github.com/ghostfolio/ghostfolio/graphs/contributors&quot; title=&quot;Contributors to Ghostfolio&quot; &gt;"/>contributors<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></target>
<target state="translated">并且得益于其 <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://github.com/ghostfolio/ghostfolio/graphs/contributors&quot; title=&quot;Contributors to Ghostfolio&quot; &gt;"/>贡献者<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">49</context>
@ -965,7 +965,7 @@
</trans-unit>
<trans-unit id="577204259483334667" datatype="html">
<source>and we share aggregated <x id="START_LINK" ctype="x-a" equiv-text="&lt;a title=&quot;Open Startup&quot; [routerLink]=&quot;routerLinkOpenStartup&quot; &gt;"/>key metrics<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/> of the platform’s performance</source>
<target state="new">and we share aggregated <x id="START_LINK" ctype="x-a" equiv-text="&lt;a title=&quot;Open Startup&quot; [routerLink]=&quot;routerLinkOpenStartup&quot; &gt;"/>key metrics<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/> of the platform’s performance</target>
<target state="translated">并且我们分享平台性能的聚合 <x id="START_LINK" ctype="x-a" equiv-text="&lt;a title=&quot;Open Startup&quot; [routerLink]=&quot;routerLinkOpenStartup&quot; &gt;"/>关键指标<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">32</context>
@ -1181,7 +1181,7 @@
</trans-unit>
<trans-unit id="8119836022359386797" datatype="html">
<source>Activities</source>
<target state="new">Activities</target>
<target state="translated">活动</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
<context context-type="linenumber">61</context>
@ -1233,7 +1233,7 @@
</trans-unit>
<trans-unit id="4340477809050781416" datatype="html">
<source>Current year</source>
<target state="new">Current year</target>
<target state="translated">当前年份</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts</context>
<context context-type="linenumber">204</context>
@ -1323,6 +1323,14 @@
<context context-type="linenumber">231</context>
</context-group>
</trans-unit>
<trans-unit id="2395205455607568422" datatype="html">
<source>No auto-renewal on membership.</source>
<target state="new">No auto-renewal on membership.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">73</context>
</context-group>
</trans-unit>
<trans-unit id="5209005842640458222" datatype="html">
<source>Engagement per Day</source>
<target state="translated">每天的参与度</target>
@ -1545,7 +1553,7 @@
</trans-unit>
<trans-unit id="5289957034780335504" datatype="html">
<source>The source code is fully available as <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://github.com/ghostfolio/ghostfolio&quot; title=&quot;Find Ghostfolio on GitHub&quot; &gt;"/>open source software<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/> (OSS) under the <x id="START_LINK_1" equiv-text="&lt;a href=&quot;https://www.gnu.org/licenses/agpl-3.0.html&quot; title=&quot;GNU Affero General Public License&quot; &gt;"/>AGPL-3.0 license<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></source>
<target state="new">The source code is fully available as <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://github.com/ghostfolio/ghostfolio&quot; title=&quot;Find Ghostfolio on GitHub&quot; &gt;"/>open source software<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/> (OSS) under the <x id="START_LINK_1" equiv-text="&lt;a href=&quot;https://www.gnu.org/licenses/agpl-3.0.html&quot; title=&quot;GNU Affero General Public License&quot; &gt;"/>AGPL-3.0 license<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></target>
<target state="translated">源代码完全可用,作为<x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://github.com/ghostfolio/ghostfolio&quot; title=&quot;Find Ghostfolio on GitHub&quot; &gt;"/>开源软件<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/> (OSS),遵循<x id="START_LINK_1" equiv-text="&lt;a href=&quot;https://www.gnu.org/licenses/agpl-3.0.html&quot; title=&quot;GNU Affero General Public License&quot; &gt;"/>AGPL-3.0许可证<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">16</context>
@ -1609,7 +1617,7 @@
</trans-unit>
<trans-unit id="6004588582437169024" datatype="html">
<source>Current week</source>
<target state="new">Current week</target>
<target state="translated">当前周</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts</context>
<context context-type="linenumber">196</context>
@ -1700,7 +1708,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">343</context>
<context context-type="linenumber">344</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
@ -2188,7 +2196,7 @@
<target state="translated">尝试高级版</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="5779112962677150663" datatype="html">
@ -2196,7 +2204,7 @@
<target state="translated">兑换优惠券</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">63</context>
<context context-type="linenumber">66</context>
</context-group>
</trans-unit>
<trans-unit id="616064537937996961" datatype="html">
@ -2517,7 +2525,7 @@
</trans-unit>
<trans-unit id="8553460997100418147" datatype="html">
<source>for</source>
<target state="new">for</target>
<target state="translated">用于</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html</context>
<context context-type="linenumber">128</context>
@ -2953,7 +2961,7 @@
</trans-unit>
<trans-unit id="3556628518893194463" datatype="html">
<source>per week</source>
<target state="new">per week</target>
<target state="translated">每周</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html</context>
<context context-type="linenumber">130</context>
@ -2988,7 +2996,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">377</context>
<context context-type="linenumber">378</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
@ -3129,7 +3137,7 @@
</trans-unit>
<trans-unit id="9187635907883145155" datatype="html">
<source>Edit access</source>
<target state="new">Edit access</target>
<target state="translated">编辑权限</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html</context>
<context context-type="linenumber">11</context>
@ -3233,7 +3241,7 @@
</trans-unit>
<trans-unit id="8984201769958269296" datatype="html">
<source>Get access to 80’000+ tickers from over 50 exchanges</source>
<target state="new">Get access to 80’000+ tickers from over 50 exchanges</target>
<target state="translated">获取来自 50 多个交易所的 80,000 多个行情的访问权限</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html</context>
<context context-type="linenumber">84</context>
@ -3369,7 +3377,7 @@
</trans-unit>
<trans-unit id="8014012170270529279" datatype="html">
<source>less than</source>
<target state="new">less than</target>
<target state="translated">少于</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html</context>
<context context-type="linenumber">129</context>
@ -3433,7 +3441,7 @@
</trans-unit>
<trans-unit id="4257439615478050183" datatype="html">
<source>Ghostfolio Status</source>
<target state="new">Ghostfolio Status</target>
<target state="translated">Ghostfolio 状态</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">62</context>
@ -3441,10 +3449,10 @@
</trans-unit>
<trans-unit id="4275978599610634089" datatype="html">
<source>with your university e-mail address</source>
<target state="new">with your university e-mail address</target>
<target state="translated">使用您的学校电子邮件地址</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">365</context>
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="4808791512433987109" datatype="html">
@ -3473,7 +3481,7 @@
</trans-unit>
<trans-unit id="70768492340592330" datatype="html">
<source>and a safe withdrawal rate (SWR) of</source>
<target state="new">and a safe withdrawal rate (SWR) of</target>
<target state="translated">和安全取款率 (SWR) 为</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/fire/fire-page.html</context>
<context context-type="linenumber">107</context>
@ -3497,7 +3505,7 @@
</trans-unit>
<trans-unit id="3627006945295714424" datatype="html">
<source>Job ID</source>
<target state="new">Job ID</target>
<target state="translated">作业 ID</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-jobs/admin-jobs.html</context>
<context context-type="linenumber">34</context>
@ -3709,7 +3717,7 @@
</trans-unit>
<trans-unit id="7500665368930738879" datatype="html">
<source>or start a discussion at</source>
<target state="new">or start a discussion at</target>
<target state="translated">或在以下位置开始讨论</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">94</context>
@ -3897,7 +3905,7 @@
</trans-unit>
<trans-unit id="79310201207169632" datatype="html">
<source>Exclude from Analysis</source>
<target state="new">Exclude from Analysis</target>
<target state="translated">排除在分析之外</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html</context>
<context context-type="linenumber">90</context>
@ -3921,7 +3929,7 @@
</trans-unit>
<trans-unit id="7934616470747135563" datatype="html">
<source>Latest activities</source>
<target state="new">Latest activities</target>
<target state="translated">最新活动</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
<context context-type="linenumber">211</context>
@ -3989,10 +3997,10 @@
</trans-unit>
<trans-unit id="7763941937414903315" datatype="html">
<source>Looking for a student discount?</source>
<target state="new">Looking for a student discount?</target>
<target state="translated">寻找学生折扣?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">359</context>
<context context-type="linenumber">360</context>
</context-group>
</trans-unit>
<trans-unit id="7765499580020598783" datatype="html">
@ -4165,7 +4173,7 @@
</trans-unit>
<trans-unit id="6962217007874959362" datatype="html">
<source>Our official Ghostfolio Premium cloud offering is the easiest way to get started. Due to the time it saves, this will be the best option for most people. Revenue is used to cover operational costs for the hosting infrastructure and professional data providers, and to fund ongoing development.</source>
<target state="new">我们的官方 Ghostfolio Premium 云产品是最简单的入门方法。由于它节省了时间,这对于大多数人来说将是最佳选择。收入用于支付托管基础设施的成本和资助持续开发。</target>
<target state="translated">我们的官方 Ghostfolio Premium 云产品是最简单的入门方法。由于它节省了时间,这对于大多数人来说将是最佳选择。收入用于支付托管基础设施的成本和资助持续开发。</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">7</context>
@ -4344,7 +4352,7 @@
<target state="translated">免费。</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">379</context>
<context context-type="linenumber">380</context>
</context-group>
</trans-unit>
<trans-unit id="5342721262799645301" datatype="html">
@ -4365,7 +4373,7 @@
</trans-unit>
<trans-unit id="2003818202621229370" datatype="html">
<source>Sustainable retirement income</source>
<target state="new">Sustainable retirement income</target>
<target state="translated">可持续的退休收入</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/fire/fire-page.html</context>
<context context-type="linenumber">40</context>
@ -4498,7 +4506,7 @@
</trans-unit>
<trans-unit id="4905798562247431262" datatype="html">
<source>per month</source>
<target state="new">per month</target>
<target state="translated">每月</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/fire/fire-page.html</context>
<context context-type="linenumber">92</context>
@ -4514,7 +4522,7 @@
</trans-unit>
<trans-unit id="5271053765919315173" datatype="html">
<source>Website of Thomas Kaul</source>
<target state="new">Website of Thomas Kaul</target>
<target state="translated">Thomas Kaul 的网站</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">44</context>
@ -4642,7 +4650,7 @@
</trans-unit>
<trans-unit id="1434671461968858301" datatype="html">
<source>User ID</source>
<target state="new">User ID</target>
<target state="translated">用户 ID</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
<context context-type="linenumber">12</context>
@ -4762,10 +4770,10 @@
</trans-unit>
<trans-unit id="5276907121760788823" datatype="html">
<source>Request it</source>
<target state="new">Request it</target>
<target state="translated">请求它</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">361</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="5278627882107105833" datatype="html">
@ -4906,7 +4914,7 @@
</trans-unit>
<trans-unit id="3302046820145091217" datatype="html">
<source>,</source>
<target state="new">,</target>
<target state="translated">,</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/fire/fire-page.html</context>
<context context-type="linenumber">93</context>
@ -4930,10 +4938,10 @@
</trans-unit>
<trans-unit id="1531212547408073567" datatype="html">
<source>contact us</source>
<target state="new">contact us</target>
<target state="translated">联系我们</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">353</context>
<context context-type="linenumber">354</context>
</context-group>
</trans-unit>
<trans-unit id="1533391340482659699" datatype="html">
@ -5318,7 +5326,7 @@
</trans-unit>
<trans-unit id="1468015720862673946" datatype="html">
<source>View Details</source>
<target state="new">View Details</target>
<target state="translated">查看详细信息</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-users/admin-users.html</context>
<context context-type="linenumber">225</context>
@ -5526,7 +5534,7 @@
</trans-unit>
<trans-unit id="3227075298129844075" datatype="html">
<source>If you retire today, you would be able to withdraw</source>
<target state="new">If you retire today, you would be able to withdraw</target>
<target state="translated">如果您今天退休,您将能够提取</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/fire/fire-page.html</context>
<context context-type="linenumber">66</context>
@ -5662,7 +5670,7 @@
</trans-unit>
<trans-unit id="2575998129003872734" datatype="html">
<source>Argentina</source>
<target state="new">Argentina</target>
<target state="translated">阿根廷</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">78</context>
@ -5734,7 +5742,7 @@
</trans-unit>
<trans-unit id="1600023202562292052" datatype="html">
<source>Close Holding</source>
<target state="new">Close Holding</target>
<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">442</context>
@ -5774,10 +5782,10 @@
</trans-unit>
<trans-unit id="858192247408211331" datatype="html">
<source>here</source>
<target state="new">here</target>
<target state="translated">这里</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">364</context>
<context context-type="linenumber">365</context>
</context-group>
</trans-unit>
<trans-unit id="1501828122056907560" datatype="html">
@ -6011,7 +6019,7 @@
</trans-unit>
<trans-unit id="5303806780432428245" datatype="html">
<source>Indonesia</source>
<target state="new">Indonesia</target>
<target state="translated">印度尼西亚</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">90</context>
@ -6147,7 +6155,7 @@
</trans-unit>
<trans-unit id="5707368132268957392" datatype="html">
<source>Include in</source>
<target state="new">Include in</target>
<target state="translated">包含在</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">369</context>
@ -6427,7 +6435,7 @@
</trans-unit>
<trans-unit id="3477953895055172777" datatype="html">
<source>View Holding</source>
<target state="new">View Holding</target>
<target state="translated">查看持仓</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
<context context-type="linenumber">444</context>
@ -6571,7 +6579,7 @@
</trans-unit>
<trans-unit id="4762855117875399861" datatype="html">
<source>Oops! Could not update access.</source>
<target state="new">Oops! Could not update access.</target>
<target state="translated">哎呀!无法更新访问权限。</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts</context>
<context context-type="linenumber">179</context>
@ -6579,7 +6587,7 @@
</trans-unit>
<trans-unit id="184247710717595241" datatype="html">
<source>based on your total assets of</source>
<target state="new">based on your total assets of</target>
<target state="translated">基于您总资产的</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/fire/fire-page.html</context>
<context context-type="linenumber">95</context>
@ -6695,7 +6703,7 @@
</trans-unit>
<trans-unit id="2803298218425845065" datatype="html">
<source>Role</source>
<target state="new">Role</target>
<target state="translated">角色</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
<context context-type="linenumber">31</context>
@ -6711,7 +6719,7 @@
</trans-unit>
<trans-unit id="6574710269679413520" datatype="html">
<source>Accounts</source>
<target state="new">Accounts</target>
<target state="translated">账户</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
<context context-type="linenumber">51</context>
@ -6743,10 +6751,10 @@
</trans-unit>
<trans-unit id="6602358241522477056" datatype="html">
<source>If you plan to open an account at</source>
<target state="new">If you plan to open an account at</target>
<target state="translated">如果您计划开通账户在</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">329</context>
<context context-type="linenumber">330</context>
</context-group>
</trans-unit>
<trans-unit id="6608617124920241143" datatype="html">
@ -6775,7 +6783,7 @@
</trans-unit>
<trans-unit id="6664504469290651320" datatype="html">
<source>send an e-mail to</source>
<target state="new">send an e-mail to</target>
<target state="translated">发送电子邮件至</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">87</context>
@ -6789,14 +6797,6 @@
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="1442341407847672405" datatype="html">
<source>No auto-renewal.</source>
<target state="translated">不自动续订。</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">70</context>
</context-group>
</trans-unit>
<trans-unit id="8462417627724236320" datatype="html">
<source>This year</source>
<target state="translated">今年</target>
@ -6855,10 +6855,10 @@
</trans-unit>
<trans-unit id="7522916136412124285" datatype="html">
<source>to use our referral link and get a Ghostfolio Premium membership for one year</source>
<target state="new">to use our referral link and get a Ghostfolio Premium membership for one year</target>
<target state="translated">使用我们的推荐链接并获得一年的Ghostfolio Premium会员资格</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">357</context>
<context context-type="linenumber">358</context>
</context-group>
</trans-unit>
<trans-unit id="7530176451725943586" datatype="html">
@ -6935,7 +6935,7 @@
</trans-unit>
<trans-unit id="3528767106831563012" datatype="html">
<source>Ghostfolio is a lightweight wealth management application for individuals to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.</source>
<target state="new">Ghostfolio is a lightweight wealth management application for individuals to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.</target>
<target state="translated">Ghostfolio 是一款轻量级的财富管理应用程序,旨在帮助个人跟踪股票、ETF 或加密货币,并做出基于数据的稳健投资决策。</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">10</context>
@ -7007,7 +7007,7 @@
</trans-unit>
<trans-unit id="7417020438124538834" datatype="html">
<source>Engagement per Day</source>
<target state="new">Engagement per Day</target>
<target state="translated">每日参与度</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
<context context-type="linenumber">76</context>
@ -7153,7 +7153,7 @@
</trans-unit>
<trans-unit id="8514765519764380399" datatype="html">
<source>Country</source>
<target state="new">Country</target>
<target state="translated">国家</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
<context context-type="linenumber">37</context>
@ -7261,7 +7261,7 @@
</trans-unit>
<trans-unit id="1789421195684815451" datatype="html">
<source>Check the system status at</source>
<target state="new">Check the system status at</target>
<target state="translated">检查系统状态</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">57</context>
@ -7309,7 +7309,7 @@
</trans-unit>
<trans-unit id="8214324091109908102" datatype="html">
<source>API Requests Today</source>
<target state="new">API Requests Today</target>
<target state="translated">今日 API 请求</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
<context context-type="linenumber">86</context>
@ -7417,7 +7417,7 @@
</trans-unit>
<trans-unit id="1325095699053123251" datatype="html">
<source>The project has been initiated by</source>
<target state="new">The project has been initiated by</target>
<target state="translated">该项目发起于</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">40</context>
@ -7525,7 +7525,7 @@
</trans-unit>
<trans-unit id="6752851341939241310" datatype="html">
<source>Find account, holding or page...</source>
<target state="new">Find account, holding or page...</target>
<target state="translated">查找账户、持仓或页面...</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.component.ts</context>
<context context-type="linenumber">152</context>
@ -7910,6 +7910,10 @@
<trans-unit id="5743832581969115624" datatype="html">
<source>Limited Offer!</source>
<target state="translated">限时优惠!</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">312</context>
@ -7918,9 +7922,13 @@
<trans-unit id="2415916442984615985" datatype="html">
<source>Get <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/> extra</source>
<target state="translated">获取额外 <x id="INTERPOLATION" equiv-text="{{ durationExtension }}"/></target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-membership/user-account-membership.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
<context context-type="linenumber">314</context>
<context context-type="linenumber">315</context>
</context-group>
</trans-unit>
<trans-unit id="3955868613858648955" datatype="html">
@ -7941,7 +7949,7 @@
</trans-unit>
<trans-unit id="7383756232563820625" datatype="html">
<source>Current month</source>
<target state="new">Current month</target>
<target state="translated">当前月份</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts</context>
<context context-type="linenumber">200</context>
@ -8126,7 +8134,7 @@
</trans-unit>
<trans-unit id="5199695670214400859" datatype="html">
<source>If you encounter a bug, would like to suggest an improvement or a new <x id="START_LINK" ctype="x-a" equiv-text="&lt;a [routerLink]=&quot;routerLinkFeatures&quot;&gt;"/>feature<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/>, please join the Ghostfolio <x id="START_LINK_1" equiv-text="&lt;a href=&quot;https://join.slack.com/t/ghostfolio/shared_invite/zt-vsaan64h-F_I0fEo5M0P88lP9ibCxFg&quot; title=&quot;Join the Ghostfolio Slack community&quot; &gt;"/>Slack<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/> community, post to <x id="START_LINK_2" equiv-text="&lt;a href=&quot;https://x.com/ghostfolio_&quot; title=&quot;Post to Ghostfolio on X (formerly Twitter)&quot; &gt;"/>@ghostfolio_<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></source>
<target state="new">If you encounter a bug, would like to suggest an improvement or a new <x id="START_LINK" ctype="x-a" equiv-text="&lt;a [routerLink]=&quot;routerLinkFeatures&quot;&gt;"/>feature<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/>, please join the Ghostfolio <x id="START_LINK_1" equiv-text="&lt;a href=&quot;https://join.slack.com/t/ghostfolio/shared_invite/zt-vsaan64h-F_I0fEo5M0P88lP9ibCxFg&quot; title=&quot;Join the Ghostfolio Slack community&quot; &gt;"/>Slack<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/> community, post to <x id="START_LINK_2" equiv-text="&lt;a href=&quot;https://x.com/ghostfolio_&quot; title=&quot;Post to Ghostfolio on X (formerly Twitter)&quot; &gt;"/>@ghostfolio_<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></target>
<target state="translated">如果您遇到错误,想要建议改进或新<x id="START_LINK" ctype="x-a" equiv-text="&lt;a [routerLink]=&quot;routerLinkFeatures&quot;&gt;"/>功能<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/>,请加入 Ghostfolio <x id="START_LINK_1" equiv-text="&lt;a href=&quot;https://join.slack.com/t/ghostfolio/shared_invite/zt-vsaan64h-F_I0fEo5M0P88lP9ibCxFg&quot; title=&quot;Join the Ghostfolio Slack community&quot; &gt;"/>Slack<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/> 社区,发布到 <x id="START_LINK_2" equiv-text="&lt;a href=&quot;https://x.com/ghostfolio_&quot; title=&quot;Post to Ghostfolio on X (formerly Twitter)&quot; &gt;"/>@ghostfolio_<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/></target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">69</context>
@ -8250,7 +8258,7 @@
</trans-unit>
<trans-unit id="rule.liquidity.category" datatype="html">
<source>Liquidity</source>
<target state="new">Liquidity</target>
<target state="translated">流动性</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">70</context>
@ -8258,7 +8266,7 @@
</trans-unit>
<trans-unit id="rule.liquidityBuyingPower" datatype="html">
<source>Buying Power</source>
<target state="new">Buying Power</target>
<target state="translated">购买力</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">71</context>
@ -8266,7 +8274,7 @@
</trans-unit>
<trans-unit id="rule.liquidityBuyingPower.false.min" datatype="html">
<source>Your buying power is below ${thresholdMin} ${baseCurrency}</source>
<target state="new">Your buying power is below ${thresholdMin} ${baseCurrency}</target>
<target state="translated">您的购买力低于 ${thresholdMin} ${baseCurrency}</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">73</context>
@ -8274,7 +8282,7 @@
</trans-unit>
<trans-unit id="rule.liquidityBuyingPower.false.zero" datatype="html">
<source>Your buying power is 0 ${baseCurrency}</source>
<target state="new">Your buying power is 0 ${baseCurrency}</target>
<target state="translated">您的购买力为 0 ${baseCurrency}</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">77</context>
@ -8282,7 +8290,7 @@
</trans-unit>
<trans-unit id="rule.liquidityBuyingPower.true" datatype="html">
<source>Your buying power exceeds ${thresholdMin} ${baseCurrency}</source>
<target state="new">Your buying power exceeds ${thresholdMin} ${baseCurrency}</target>
<target state="translated">您的购买力超过了 ${thresholdMin} ${baseCurrency}</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">80</context>
@ -8586,7 +8594,7 @@
</trans-unit>
<trans-unit id="889243574476657449" datatype="html">
<source>Registration Date</source>
<target state="new">Registration Date</target>
<target state="translated">注册日期</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html</context>
<context context-type="linenumber">23</context>

9
apps/client/src/styles.scss

@ -1,5 +1,6 @@
@import './styles/bootstrap';
@import './styles/table';
@import './styles/variables';
@import 'svgmap/dist/svgMap';
@ -8,14 +9,18 @@
--font-family-sans-serif: 'Inter', Roboto, 'Helvetica Neue', sans-serif;
--light-background: rgb(255, 255, 255);
--dark-primary-text: 0, 0, 0, 0.87;
--dark-primary-text:
#{red($dark-primary-text)}, #{green($dark-primary-text)},
#{blue($dark-primary-text)}, #{alpha($dark-primary-text)};
--dark-secondary-text: 0, 0, 0, 0.54;
--dark-accent-text: 0, 0, 0, 0.87;
--dark-warn-text: 0, 0, 0, 0.87;
--dark-disabled-text: 0, 0, 0, 0.38;
--dark-dividers: 0, 0, 0, 0.12;
--dark-focused: 0, 0, 0, 0.12;
--light-primary-text: 255, 255, 255, 1;
--light-primary-text:
#{red($light-primary-text)}, #{green($light-primary-text)},
#{blue($light-primary-text)}, #{alpha($light-primary-text)};
--light-secondary-text: 255, 255, 255, 0.7;
--light-accent-text: 255, 255, 255, 1;
--light-warn-text: 255, 255, 255, 1;

2
apps/client/src/styles/variables.scss

@ -1,4 +1,4 @@
$dark-primary-text: rgba(black, 0.87);
$light-primary-text: white;
$light-primary-text: rgba(white, 1);
$mat-css-dark-theme-selector: '.theme-dark';

2
libs/common/src/lib/interfaces/index.ts

@ -37,6 +37,7 @@ import type { Position } from './position.interface';
import type { Product } from './product';
import type { AccessTokenResponse } from './responses/access-token-response.interface';
import type { AccountBalancesResponse } from './responses/account-balances-response.interface';
import type { AccountResponse } from './responses/account-response.interface';
import type { AccountsResponse } from './responses/accounts-response.interface';
import type { ActivitiesResponse } from './responses/activities-response.interface';
import type { ActivityResponse } from './responses/activity-response.interface';
@ -92,6 +93,7 @@ export {
AccessTokenResponse,
AccountBalance,
AccountBalancesResponse,
AccountResponse,
AccountsResponse,
ActivitiesResponse,
Activity,

3
libs/common/src/lib/interfaces/responses/account-response.interface.ts

@ -0,0 +1,3 @@
import { AccountWithValue } from '@ghostfolio/common/types';
export interface AccountResponse extends AccountWithValue {}

12
package-lock.json

@ -1,12 +1,12 @@
{
"name": "ghostfolio",
"version": "2.215.0",
"version": "2.216.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ghostfolio",
"version": "2.215.0",
"version": "2.216.0",
"hasInstallScript": true,
"license": "AGPL-3.0",
"dependencies": {
@ -86,7 +86,7 @@
"reflect-metadata": "0.2.2",
"rxjs": "7.8.1",
"stripe": "18.5.0",
"svgmap": "2.12.2",
"svgmap": "2.14.0",
"tablemark": "4.1.0",
"twitter-api-v2": "1.27.0",
"uuid": "11.1.0",
@ -38794,9 +38794,9 @@
"license": "BSD-2-Clause"
},
"node_modules/svgmap": {
"version": "2.12.2",
"resolved": "https://registry.npmjs.org/svgmap/-/svgmap-2.12.2.tgz",
"integrity": "sha512-SCX1Oys3v1dz3mTEbQha+6lrHGyu3LwXBhcgW0HlTh7waQDMFqNUKD8hADvDaPkPapRvNCLMnXaVD1Pbxbnhow==",
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/svgmap/-/svgmap-2.14.0.tgz",
"integrity": "sha512-+Vklx4DO1uv1SFq6wnJWl/dRjX4uRT9CcsIHuADxAcZ+h5X1OSyDVbNdIu837fx5TtYYuaGRhWuFCXIioN/1ww==",
"license": "MIT",
"dependencies": {
"svg-pan-zoom": "^3.6.2"

4
package.json

@ -1,6 +1,6 @@
{
"name": "ghostfolio",
"version": "2.215.0",
"version": "2.216.0",
"homepage": "https://ghostfol.io",
"license": "AGPL-3.0",
"repository": "https://github.com/ghostfolio/ghostfolio",
@ -132,7 +132,7 @@
"reflect-metadata": "0.2.2",
"rxjs": "7.8.1",
"stripe": "18.5.0",
"svgmap": "2.12.2",
"svgmap": "2.14.0",
"tablemark": "4.1.0",
"twitter-api-v2": "1.27.0",
"uuid": "11.1.0",

Loading…
Cancel
Save